@tokamak-network/thanos-contracts
Version:
1 lines • 152 kB
JSON
{"abi":[{"type":"function","name":"EIP712_DOMAIN_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"consumeNonce","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"currentNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDigestWithEIP712Domain","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]},{"name":"_name","type":"bytes","internalType":"bytes"},{"name":"_version","type":"bytes","internalType":"bytes"},{"name":"_chainid","type":"uint256","internalType":"uint256"},{"name":"_verifyingContract","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getProofStructHash","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506105bd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"6570:2488:284:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"6570:2488:284:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7345:119;;;:::i;:::-;;;160:25:416;;;148:2;133:18;7345:119:284;;;;;;;7611:205;;;;;;:::i;:::-;7766:16;;7784:12;;;;;7798:9;;;;;7739:69;;6691:62;7739:69;;;3715:25:416;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;7739:69:284;;;;;;;;;;3687:19:416;;;;7739:69:284;;;7729:80;;;;;;7611:205;6650:103;;6691:62;6650:103;;7103:27;;;;;;8512:544;;;;;;:::i;:::-;;:::i;6861:152::-;;6918:95;6861:152;;7345:119;7385:7;7440:14;;7385:7;;7440:14;;;:::i;:::-;;;;;7429:26;;;;;;160:25:416;;148:2;133:18;;14:177;7429:26:284;;;;;;;;;;;;;7419:37;;;;;;7404:53;;7345:119;:::o;8512:544::-;8877:16;;;;;;;;;;8895:19;;;;;;8842:103;;;6918:95;8842:103;;;4188:25:416;;;;4229:18;;4222:34;;;;4272:18;;;4265:34;4315:18;;;4308:34;;;4391:42;4379:55;;4358:19;;;4351:84;8770:7:284;;;;4160:19:416;;8842:103:284;;;;;;;;;;;;8819:136;;;;;;8793:162;;8972:77;9005:15;9022:26;9041:6;7766:16;;7784:12;;;;;7798:9;;;;;7739:69;;6691:62;7739:69;;;3715:25:416;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;7739:69:284;;;;;;;;;;3687:19:416;;;;7739:69:284;;;7729:80;;;;;;7611:205;9022:26;8710:57:41;;4716:66:416;8710:57:41;;;4704:79:416;4799:11;;;4792:27;;;4835:12;;;4828:28;;;8674:7:41;;4872:12:416;;8710:57:41;;;;;;;;;;;;8700:68;;;;;;8693:75;;8581:194;;;;;8972:77:284;8965:84;8512:544;-1:-1:-1;;;;;;;8512:544:284:o;196:184:416:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:196;453:20;;513:42;502:54;;492:65;;482:93;;571:1;568;561:12;482:93;385:196;;;:::o;586:542::-;638:5;686:4;674:9;669:3;665:19;661:30;658:50;;;704:1;701;694:12;658:50;737:2;731:9;779:4;771:6;767:17;850:6;838:10;835:22;814:18;802:10;799:34;796:62;793:88;;;861:18;;:::i;:::-;897:2;890:22;930:6;-1:-1:-1;930:6:416;960:29;979:9;960:29;:::i;:::-;952:6;945:45;1051:2;1040:9;1036:18;1023:32;1018:2;1010:6;1006:15;999:57;1117:2;1106:9;1102:18;1089:32;1084:2;1076:6;1072:15;1065:57;;586:542;;;;:::o;1133:225::-;1217:6;1270:2;1258:9;1249:7;1245:23;1241:32;1238:52;;;1286:1;1283;1276:12;1238:52;1309:43;1344:7;1333:9;1309:43;:::i;:::-;1299:53;1133:225;-1:-1:-1;;;1133:225:416:o;1545:777::-;1587:5;1640:3;1633:4;1625:6;1621:17;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:6;1681:20;1720:18;1757:2;1753;1750:10;1747:36;;;1763:18;;:::i;:::-;1897:2;1891:9;1959:4;1951:13;;1802:66;1947:22;;;1971:2;1943:31;1939:40;1927:53;;;1995:18;;;2015:22;;;1992:46;1989:72;;;2041:18;;:::i;:::-;2081:10;2077:2;2070:22;2116:2;2108:6;2101:18;2162:3;2155:4;2150:2;2142:6;2138:15;2134:26;2131:35;2128:55;;;2179:1;2176;2169:12;2128:55;2243:2;2236:4;2228:6;2224:17;2217:4;2209:6;2205:17;2192:54;2290:1;2283:4;2278:2;2270:6;2266:15;2262:26;2255:37;2310:6;2301:15;;;;;;1545:777;;;;:::o;2327:798::-;2465:6;2473;2481;2489;2497;2550:3;2538:9;2529:7;2525:23;2521:33;2518:53;;;2567:1;2564;2557:12;2518:53;2590:43;2625:7;2614:9;2590:43;:::i;:::-;2580:53;;2684:2;2673:9;2669:18;2656:32;2707:18;2748:2;2740:6;2737:14;2734:34;;;2764:1;2761;2754:12;2734:34;2787:49;2828:7;2819:6;2808:9;2804:22;2787:49;:::i;:::-;2777:59;;2889:3;2878:9;2874:19;2861:33;2845:49;;2919:2;2909:8;2906:16;2903:36;;;2935:1;2932;2925:12;2903:36;;2958:51;3001:7;2990:8;2979:9;2975:24;2958:51;:::i;:::-;2948:61;;;3056:3;3045:9;3041:19;3028:33;3018:43;;3080:39;3114:3;3103:9;3099:19;3080:39;:::i;:::-;3070:49;;2327:798;;;;;;;;:::o;3130:349::-;3169:3;3200:66;3193:5;3190:77;3187:257;;3300:77;3297:1;3290:88;3401:4;3398:1;3391:15;3429:4;3426:1;3419:15;3187:257;-1:-1:-1;3471:1:416;3460:13;;3130:349::o","linkReferences":{}},"methodIdentifiers":{"EIP712_DOMAIN_TYPEHASH()":"c7977be7","PROOF_TYPEHASH()":"8b3e3bf6","consumeNonce()":"34b15118","currentNonce()":"adb610a3","getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":"b163a6b8","getProofStructHash((address,bytes32,bytes32))":"796dfbfa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EIP712_DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consumeNonce\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_version\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_chainid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_verifyingContract\",\"type\":\"address\"}],\"name\":\"getDigestWithEIP712Domain\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"getProofStructHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"consumeNonce()\":{\"returns\":{\"_0\":\"Nonce that should be used as part of drip parameters.\"}},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"params\":{\"_chainid\":\"Chain ID to use in the EIP712 domain.\",\"_name\":\"Contract name to use in the EIP712 domain.\",\"_proof\":\"Proof struct to hash.\",\"_verifyingContract\":\"Address to use in the EIP712 domain.\",\"_version\":\"Contract version to use in the EIP712 domain.\"},\"returns\":{\"_0\":\"EIP-712 compatible digest.\"}},\"getProofStructHash((address,bytes32,bytes32))\":{\"params\":{\"_proof\":\"Proof struct to hash.\"},\"returns\":{\"_0\":\"EIP-712 typed struct hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"EIP712_DOMAIN_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the EIP712Domain type that is included as part of the signature.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"consumeNonce()\":{\"notice\":\"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces.\"},\"currentNonce()\":{\"notice\":\"Keeps track of current nonce to generate new nonces for each drip.\"},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"notice\":\"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail.\"},\"getProofStructHash((address,bytes32,bytes32))\":{\"notice\":\"Returns the hash of the struct Proof.\"}},\"notice\":\"Simple helper contract that helps with testing the Faucet contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Helpers.sol\":\"FaucetHelper\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":{\"keccak256\":\"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94\",\"dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solmate/src/tokens/ERC721.sol\":{\"keccak256\":\"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408\",\"dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9\",\"dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]},\"src/periphery/op-nft/AttestationStation.sol\":{\"keccak256\":\"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef\",\"dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK\"]},\"src/periphery/op-nft/OptimistInviter.sol\":{\"keccak256\":\"0x9d798824a1bdd45ffc46123f3fd8fd1e7855a05df52dcfc134f5f10db6fa57eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bc646a72c4db3f3b68c5935cfd8d067897af83f7d788c2cdeb47bf9f3ced2c9\",\"dweb:/ipfs/QmQjRhFArSuWgMmCbS8ZLrAr1njHort2dMBpa1eDx4Geu7\"]},\"src/periphery/op-nft/libraries/OptimistConstants.sol\":{\"keccak256\":\"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268\",\"dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"test/Helpers.sol\":{\"keccak256\":\"0x022e89924ead94001a5c3d775a986baf574481b48e5fe0c35bdf60433115103d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b75d63ab2d869ab4ab5dedce511be2a5c7a91dc6a75da6a698a23f77d903e03f\",\"dweb:/ipfs/QmUu7Sf9mmbEYV7FaPYQc1JgtLfjLv1D4UaEMRfanbDFDd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"EIP712_DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"consumeNonce","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]},{"internalType":"bytes","name":"_name","type":"bytes"},{"internalType":"bytes","name":"_version","type":"bytes"},{"internalType":"uint256","name":"_chainid","type":"uint256"},{"internalType":"address","name":"_verifyingContract","type":"address"}],"stateMutability":"pure","type":"function","name":"getDigestWithEIP712Domain","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]}],"stateMutability":"pure","type":"function","name":"getProofStructHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/Helpers.sol":"FaucetHelper"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":{"keccak256":"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc","urls":["bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94","dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solmate/src/tokens/ERC721.sol":{"keccak256":"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075","urls":["bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408","dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0xb5002cc0394afe46a9244b8f65a5b5601ee177be55867c52773a1bf789124cb3","urls":["bzz-raw://673f34da6c815b00c8d9e2fb6c57e4a087d02f9aad453d626515cb21999558d9","dweb:/ipfs/QmQ7hzya1TSV8iMuS64eYukSzNKebeAq7EPpnXMeV4phN9"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"},"src/periphery/op-nft/AttestationStation.sol":{"keccak256":"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208","urls":["bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef","dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK"],"license":"MIT"},"src/periphery/op-nft/OptimistInviter.sol":{"keccak256":"0x9d798824a1bdd45ffc46123f3fd8fd1e7855a05df52dcfc134f5f10db6fa57eb","urls":["bzz-raw://7bc646a72c4db3f3b68c5935cfd8d067897af83f7d788c2cdeb47bf9f3ced2c9","dweb:/ipfs/QmQjRhFArSuWgMmCbS8ZLrAr1njHort2dMBpa1eDx4Geu7"],"license":"MIT"},"src/periphery/op-nft/libraries/OptimistConstants.sol":{"keccak256":"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c","urls":["bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268","dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"test/Helpers.sol":{"keccak256":"0x022e89924ead94001a5c3d775a986baf574481b48e5fe0c35bdf60433115103d","urls":["bzz-raw://b75d63ab2d869ab4ab5dedce511be2a5c7a91dc6a75da6a698a23f77d903e03f","dweb:/ipfs/QmUu7Sf9mmbEYV7FaPYQc1JgtLfjLv1D4UaEMRfanbDFDd"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":126158,"contract":"test/Helpers.sol:FaucetHelper","label":"currentNonce","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"notice":"Simple helper contract that helps with testing the Faucet contract."},"devdoc":{"version":1,"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}}},"ast":{"absolutePath":"test/Helpers.sol","id":126244,"exportedSymbols":{"AdminFaucetAuthModule":[118281],"CallRecorder":[125888],"ECDSA":[54590],"ECDSAUpgradeable":[49727],"ERC20":[65189],"ERC721":[65733],"FaucetHelper":[126243],"IERC1271":[50138],"OptimistInviter":[119183],"OptimistInviterHelper":[126098],"Ownable":[50046],"Reverter":[125897],"SimpleStorage":[125928],"TestERC1271Wallet":[126142],"TestERC20":[125810],"TestERC721":[125843]},"nodeType":"SourceUnit","src":"32:9027:284","nodes":[{"id":125769,"nodeType":"PragmaDirective","src":"32:23:284","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":125771,"nodeType":"ImportDirective","src":"57:67:284","nodes":[],"absolutePath":"lib/solmate/src/tokens/ERC20.sol","file":"@rari-capital/solmate/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":65190,"symbolAliases":[{"foreign":{"id":125770,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65189,"src":"66:5:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125773,"nodeType":"ImportDirective","src":"125:69:284","nodes":[],"absolutePath":"lib/solmate/src/tokens/ERC721.sol","file":"@rari-capital/solmate/src/tokens/ERC721.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":65754,"symbolAliases":[{"foreign":{"id":125772,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65733,"src":"134:6:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125775,"nodeType":"ImportDirective","src":"195:77:284","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":54591,"symbolAliases":[{"foreign":{"id":125774,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54590,"src":"204:5:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125777,"nodeType":"ImportDirective","src":"273:75:284","nodes":[],"absolutePath":"src/periphery/op-nft/OptimistInviter.sol","file":"src/periphery/op-nft/OptimistInviter.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":119184,"symbolAliases":[{"foreign":{"id":125776,"name":"OptimistInviter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119183,"src":"282:15:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125779,"nodeType":"ImportDirective","src":"349:75:284","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","file":"@openzeppelin/contracts/interfaces/IERC1271.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":50139,"symbolAliases":[{"foreign":{"id":125778,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50138,"src":"358:8:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125781,"nodeType":"ImportDirective","src":"425:69:284","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":50047,"symbolAliases":[{"foreign":{"id":125780,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50046,"src":"434:7:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125783,"nodeType":"ImportDirective","src":"495:111:284","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":49728,"symbolAliases":[{"foreign":{"id":125782,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49727,"src":"504:16:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125785,"nodeType":"ImportDirective","src":"607:99:284","nodes":[],"absolutePath":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","file":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","nameLocation":"-1:-1:-1","scope":126244,"sourceUnit":118282,"symbolAliases":[{"foreign":{"id":125784,"name":"AdminFaucetAuthModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118281,"src":"616:21:284","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":125810,"nodeType":"ContractDefinition","src":"708:165:284","nodes":[{"id":125796,"nodeType":"FunctionDefinition","src":"742:42:284","nodes":[],"body":{"id":125795,"nodeType":"Block","src":"781:3:284","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"54455354","id":125790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"762:6:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_852daa74cc3c31fe64542bb9b8764cfb91cc30f9acf9389071ffb44a9eefde46","typeString":"literal_string \"TEST\""},"value":"TEST"},{"hexValue":"545354","id":125791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"770:5:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"3138","id":125792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"777:2:284","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"id":125793,"kind":"baseConstructorSpecifier","modifierName":{"id":125789,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":65189,"src":"756:5:284"},"nodeType":"ModifierInvocation","src":"756:24:284"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":125788,"nodeType":"ParameterList","parameters":[],"src":"753:2:284"},"returnParameters":{"id":125794,"nodeType":"ParameterList","parameters":[],"src":"781:0:284"},"scope":125810,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":125809,"nodeType":"FunctionDefinition","src":"790:81:284","nodes":[],"body":{"id":125808,"nodeType":"Block","src":"838:33:284","nodes":[],"statements":[{"expression":{"arguments":[{"id":125804,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125798,"src":"854:2:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":125805,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125800,"src":"858:5:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":125803,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65160,"src":"848:5:284","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":125806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"848:16:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":125807,"nodeType":"ExpressionStatement","src":"848:16:284"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"799:4:284","parameters":{"id":125801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125798,"mutability":"mutable","name":"to","nameLocation":"812:2:284","nodeType":"VariableDeclaration","scope":125809,"src":"804:10:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125797,"name":"address","nodeType":"ElementaryTypeName","src":"804:7:284","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":125800,"mutability":"mutable","name":"value","nameLocation":"824:5:284","nodeType":"VariableDeclaration","scope":125809,"src":"816:13:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125799,"name":"uint256","nodeType":"ElementaryTypeName","src":"816:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"803:27:284"},"returnParameters":{"id":125802,"nodeType":"ParameterList","parameters":[],"src":"838:0:284"},"scope":125810,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":125786,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":65189,"src":"730:5:284"},"id":125787,"nodeType":"InheritanceSpecifier","src":"730:5:284"}],"canonicalName":"TestERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[125810,65189],"name":"TestERC20","nameLocation":"717:9:284","scope":126244,"usedErrors":[]},{"id":125843,"nodeType":"ContractDefinition","src":"875:257:284","nodes":[{"id":125820,"nodeType":"FunctionDefinition","src":"911:39:284","nodes":[],"body":{"id":125819,"nodeType":"Block","src":"947:3:284","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"54455354","id":125815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"932:6:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_852daa74cc3c31fe64542bb9b8764cfb91cc30f9acf9389071ffb44a9eefde46","typeString":"literal_string \"TEST\""},"value":"TEST"},{"hexValue":"545354","id":125816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"940:5:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"}],"id":125817,"kind":"baseConstructorSpecifier","modifierName":{"id":125814,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":65733,"src":"925:6:284"},"nodeType":"ModifierInvocation","src":"925:21:284"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":125813,"nodeType":"ParameterList","parameters":[],"src":"922:2:284"},"returnParameters":{"id":125818,"nodeType":"ParameterList","parameters":[],"src":"947:0:284"},"scope":125843,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":125833,"nodeType":"FunctionDefinition","src":"956:85:284","nodes":[],"body":{"id":125832,"nodeType":"Block","src":"1006:35:284","nodes":[],"statements":[{"expression":{"arguments":[{"id":125828,"name":"to","n