{"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"}},"metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20Approve","name":"imd_","type":"address"},{"internalType":"contract IStacker","name":"stacker_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"creditTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"imd","outputs":[{"internalType":"contract IERC20Approve","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stacker","outputs":[{"internalType":"contract IStacker","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"title":"SelfCredit","version":1},"userdoc":{"kind":"user","methods":{"creditTo(address[],uint256)":{"notice":"Credits `amount` of this contract's own IMD to each of `wallets`. No trade happens."}},"notice":"A negative case for the imd/acc ProjectRegistry trial on Sepolia. It is not a trading venue: there are no trades and no fees. Its owner credits the contract's own test IMD to any wallets the owner picks. The registry's oracle panel is expected to refuse to list it.","version":1}},"settings":{"compilationTarget":{"src/SelfCredit.sol":"SelfCredit"},"evmVersion":"cancun","libraries":{},"metadata":{"bytecodeHash":"none"},"optimizer":{"enabled":true,"runs":10000},"remappings":[]},"sources":{"src/SelfCredit.sol":{"keccak256":"0xed1371b604c41294802174c3ffbefce3c87ba0ea1d2a760b648bc02e8df5daf6","license":"MIT","urls":["bzz-raw://b2934b378cb9ca18dc2168a34555626aa2f8bc281ee171ac2396c637e285d3b4","dweb:/ipfs/QmcqKgdGvTdEznnjYAijMYPEKsNHspNmWkjNGRdKdFM19z"]}},"version":1},"matchId":"55927833","creationMatch":"match","runtimeMatch":"match","verifiedAt":"2026-10-11T13:48:25Z","match":"match","chainId":"11155111","address":"0x3D1778bE5f9E55f0dF35ACAF64A13Efe2FE81488"}