{"sources":{"src/SelfCredit.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.26;\n\ninterface IERC20Approve {\n    function approve(address spender, uint256 amount) external returns (bool);\n}\n\ninterface IStacker {\n    function credit(address trader, uint256 imdAmount) external returns (uint256 shares);\n}\n\n/// @title SelfCredit\n/// @notice A negative case for the imd/acc ProjectRegistry trial on Sepolia. It is not a trading\n/// venue: there are no trades and no fees. Its owner credits the contract's own test IMD to any\n/// wallets the owner picks. The registry's oracle panel is expected to refuse to list it.\ncontract SelfCredit {\n    IERC20Approve public immutable imd;\n    IStacker public immutable stacker;\n    address public immutable owner;\n\n    constructor(IERC20Approve imd_, IStacker stacker_) {\n        imd = imd_;\n        stacker = stacker_;\n        owner = msg.sender;\n        imd_.approve(address(stacker_), type(uint256).max);\n    }\n\n    /// @notice Credits `amount` of this contract's own IMD to each of `wallets`. No trade happens.\n    function creditTo(address[] calldata wallets, uint256 amount) external {\n        require(msg.sender == owner, \"not owner\");\n        for (uint256 i; i < wallets.length; ++i) {\n            stacker.credit(wallets[i], amount);\n        }\n    }\n}\n"}},"abi":[{"type":"constructor","inputs":[{"name":"imd_","type":"address","internalType":"contract IERC20Approve"},{"name":"stacker_","type":"address","internalType":"contract IStacker"}],"stateMutability":"nonpayable"},{"name":"creditTo","type":"function","inputs":[{"name":"wallets","type":"address[]","internalType":"address[]"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"imd","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20Approve"}],"stateMutability":"view"},{"name":"owner","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"stacker","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStacker"}],"stateMutability":"view"}],"matchId":"55927833","creationMatch":"match","runtimeMatch":"match","verifiedAt":"2026-10-11T13:48:25Z","match":"match","chainId":"11155111","address":"0x3D1778bE5f9E55f0dF35ACAF64A13Efe2FE81488"}