{"file_path":"src/SelfCredit.sol","creation_status":"success","source_code":"// 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","deployed_bytecode":"0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c80636a8bf5351461004e5780638da5cb5b14610063578063dd02e154146100b3578063e6fd6bd5146100da575b5f80fd5b61006161005c3660046102b3565b610101565b005b61008a7f0000000000000000000000004b91078b2374c956a65f7af0999cae0a935e682181565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61008a7f0000000000000000000000002b69099e59b05901faa1dd164fabf098bf831e8281565b61008a7f0000000000000000000000000457276d7b036818b3eddc1a4a3fceda61e9314d81565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000004b91078b2374c956a65f7af0999cae0a935e682116146101a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015260640160405180910390fd5b5f5b828110156102ad577f0000000000000000000000000457276d7b036818b3eddc1a4a3fceda61e9314d73ffffffffffffffffffffffffffffffffffffffff1663ef6506db8585848181106101fc576101fc610328565b90506020020160208101906102119190610355565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018590526044016020604051808303815f875af1158015610280573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a4919061038f565b506001016101a6565b50505050565b5f805f604084860312156102c5575f80fd5b833567ffffffffffffffff8111156102db575f80fd5b8401601f810186136102eb575f80fd5b803567ffffffffffffffff811115610301575f80fd5b8660208260051b8401011115610315575f80fd5b6020918201979096509401359392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610365575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610388575f80fd5b9392505050565b5f6020828403121561039f575f80fd5b505191905056fea164736f6c634300081a000a","optimization_enabled":true,"verified_twin_address_hash":null,"is_verified":true,"compiler_settings":{"evmVersion":"cancun","libraries":{},"metadata":{"appendCBOR":true,"bytecodeHash":"none","useLiteralContent":false},"optimizer":{"enabled":true,"runs":10000},"viaIR":false},"optimization_runs":10000,"sourcify_repo_url":null,"decoded_constructor_args":[["0x2B69099E59b05901faA1DD164fabf098bf831E82",{"internalType":"contract IERC20Approve","name":"imd_","type":"address"}],["0x0457276D7b036818B3EddC1A4A3FCeda61e9314d",{"internalType":"contract IStacker","name":"stacker_","type":"address"}]],"compiler_version":"0.8.26+commit.8a97fa7a","is_verified_via_verifier_alliance":true,"verified_at":"2026-10-11T13:49:01.789251Z","implementations":[],"proxy_type":null,"external_libraries":[],"creation_bytecode":"0x60e060405234801561000f575f80fd5b5060405161051438038061051483398101604081905261002e916100ce565b6001600160a01b03828116608081905290821660a08190523360c05260405163095ea7b360e01b815260048101919091525f19602482015263095ea7b3906044016020604051808303815f875af115801561008b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100af9190610106565b50505061012c565b6001600160a01b03811681146100cb575f80fd5b50565b5f80604083850312156100df575f80fd5b82516100ea816100b7565b60208401519092506100fb816100b7565b809150509250929050565b5f60208284031215610116575f80fd5b81518015158114610125575f80fd5b9392505050565b60805160a05160c0516103b36101615f395f81816068015261011901525f818160df01526101b001525f60b801526103b35ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80636a8bf5351461004e5780638da5cb5b14610063578063dd02e154146100b3578063e6fd6bd5146100da575b5f80fd5b61006161005c3660046102b3565b610101565b005b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015260640160405180910390fd5b5f5b828110156102ad577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef6506db8585848181106101fc576101fc610328565b90506020020160208101906102119190610355565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018590526044016020604051808303815f875af1158015610280573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a4919061038f565b506001016101a6565b50505050565b5f805f604084860312156102c5575f80fd5b833567ffffffffffffffff8111156102db575f80fd5b8401601f810186136102eb575f80fd5b803567ffffffffffffffff811115610301575f80fd5b8660208260051b8401011115610315575f80fd5b6020918201979096509401359392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610365575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610388575f80fd5b9392505050565b5f6020828403121561039f575f80fd5b505191905056fea164736f6c634300081a000a0000000000000000000000002b69099e59b05901faa1dd164fabf098bf831e820000000000000000000000000457276d7b036818b3eddc1a4a3fceda61e9314d","name":"SelfCredit","is_blueprint":false,"license_type":"none","is_fully_verified":false,"is_verified_via_eth_bytecode_db":true,"language":"solidity","evm_version":"cancun","can_be_visualized_via_sol2uml":true,"is_verified_via_sourcify":false,"additional_sources":[],"certified":false,"conflicting_implementations":null,"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"}],"is_changed_bytecode":false,"is_partially_verified":true,"constructor_args":"0x0000000000000000000000002b69099e59b05901faa1dd164fabf098bf831e820000000000000000000000000457276d7b036818b3eddc1a4a3fceda61e9314d"}