{"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","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125822,"src":"1022:2:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":125829,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125824,"src":"1026:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":125827,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65603,"src":"1016:5:284","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":125830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1016:18:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":125831,"nodeType":"ExpressionStatement","src":"1016:18:284"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"965:4:284","parameters":{"id":125825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125822,"mutability":"mutable","name":"to","nameLocation":"978:2:284","nodeType":"VariableDeclaration","scope":125833,"src":"970:10:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125821,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:284","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":125824,"mutability":"mutable","name":"tokenId","nameLocation":"990:7:284","nodeType":"VariableDeclaration","scope":125833,"src":"982:15:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125823,"name":"uint256","nodeType":"ElementaryTypeName","src":"982:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"969:29:284"},"returnParameters":{"id":125826,"nodeType":"ParameterList","parameters":[],"src":"1006:0:284"},"scope":125843,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":125842,"nodeType":"FunctionDefinition","src":"1047:83:284","nodes":[],"body":{"id":125841,"nodeType":"Block","src":"1127:3:284","nodes":[],"statements":[]},"baseFunctions":[65227],"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1056:8:284","overrides":{"id":125837,"nodeType":"OverrideSpecifier","overrides":[],"src":"1094:8:284"},"parameters":{"id":125836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":125842,"src":"1065:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125834,"name":"uint256","nodeType":"ElementaryTypeName","src":"1065:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1064:9:284"},"returnParameters":{"id":125840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":125842,"src":"1112:13:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":125838,"name":"string","nodeType":"ElementaryTypeName","src":"1112:6:284","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1111:15:284"},"scope":125843,"stateMutability":"pure","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":125811,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":65733,"src":"898:6:284"},"id":125812,"nodeType":"InheritanceSpecifier","src":"898:6:284"}],"canonicalName":"TestERC721","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[125843,65733],"name":"TestERC721","nameLocation":"884:10:284","scope":126244,"usedErrors":[]},{"id":125888,"nodeType":"ContractDefinition","src":"1134:360:284","nodes":[{"id":125852,"nodeType":"StructDefinition","src":"1162:111:284","nodes":[],"canonicalName":"CallRecorder.CallInfo","members":[{"constant":false,"id":125845,"mutability":"mutable","name":"sender","nameLocation":"1196:6:284","nodeType":"VariableDeclaration","scope":125852,"src":"1188:14:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125844,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:284","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":125847,"mutability":"mutable","name":"data","nameLocation":"1218:4:284","nodeType":"VariableDeclaration","scope":125852,"src":"1212:10:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":125846,"name":"bytes","nodeType":"ElementaryTypeName","src":"1212:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":125849,"mutability":"mutable","name":"gas","nameLocation":"1240:3:284","nodeType":"VariableDeclaration","scope":125852,"src":"1232:11:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125848,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":125851,"mutability":"mutable","name":"value","nameLocation":"1261:5:284","nodeType":"VariableDeclaration","scope":125852,"src":"1253:13:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125850,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CallInfo","nameLocation":"1169:8:284","scope":125888,"visibility":"public"},{"id":125855,"nodeType":"VariableDeclaration","src":"1279:24:284","nodes":[],"constant":false,"functionSelector":"da516aa9","mutability":"mutable","name":"lastCall","nameLocation":"1295:8:284","scope":125888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$125852_storage","typeString":"struct CallRecorder.CallInfo"},"typeName":{"id":125854,"nodeType":"UserDefinedTypeName","pathNode":{"id":125853,"name":"CallInfo","nodeType":"IdentifierPath","referencedDeclaration":125852,"src":"1279:8:284"},"referencedDeclaration":125852,"src":"1279:8:284","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$125852_storage_ptr","typeString":"struct CallRecorder.CallInfo"}},"visibility":"public"},{"id":125887,"nodeType":"FunctionDefinition","src":"1310:182:284","nodes":[],"body":{"id":125886,"nodeType":"Block","src":"1343:149:284","nodes":[],"statements":[{"expression":{"id":125863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":125858,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125855,"src":"1353:8:284","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$125852_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":125860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":125845,"src":"1353:15:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":125861,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1371:3:284","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":125862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1371:10:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1353:28:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":125864,"nodeType":"ExpressionStatement","src":"1353:28:284"},{"expression":{"id":125870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":125865,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125855,"src":"1391:8:284","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$125852_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":125867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":125847,"src":"1391:13:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":125868,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1407:3:284","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":125869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"1407:8:284","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"1391:24:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":125871,"nodeType":"ExpressionStatement","src":"1391:24:284"},{"expression":{"id":125877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":125872,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125855,"src":"1425:8:284","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$125852_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":125874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":125849,"src":"1425:12:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":125875,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1440:7:284","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":125876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1440:9:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1425:24:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":125878,"nodeType":"ExpressionStatement","src":"1425:24:284"},{"expression":{"id":125884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":125879,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125855,"src":"1459:8:284","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$125852_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":125881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":125851,"src":"1459:14:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":125882,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1476:3:284","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":125883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"1476:9:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1459:26:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":125885,"nodeType":"ExpressionStatement","src":"1459:26:284"}]},"functionSelector":"266cf109","implemented":true,"kind":"function","modifiers":[],"name":"record","nameLocation":"1319:6:284","parameters":{"id":125856,"nodeType":"ParameterList","parameters":[],"src":"1325:2:284"},"returnParameters":{"id":125857,"nodeType":"ParameterList","parameters":[],"src":"1343:0:284"},"scope":125888,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CallRecorder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[125888],"name":"CallRecorder","nameLocation":"1143:12:284","scope":126244,"usedErrors":[]},{"id":125897,"nodeType":"ContractDefinition","src":"1496:102:284","nodes":[{"id":125896,"nodeType":"FunctionDefinition","src":"1520:76:284","nodes":[],"body":{"id":125895,"nodeType":"Block","src":"1552:44:284","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5265766572746572207265766572746564","id":125892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1569:19:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""},"value":"Reverter reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""}],"id":125891,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1562:6:284","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":125893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1562:27:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":125894,"nodeType":"ExpressionStatement","src":"1562:27:284"}]},"functionSelector":"afc874d2","implemented":true,"kind":"function","modifiers":[],"name":"doRevert","nameLocation":"1529:8:284","parameters":{"id":125889,"nodeType":"ParameterList","parameters":[],"src":"1537:2:284"},"returnParameters":{"id":125890,"nodeType":"ParameterList","parameters":[],"src":"1552:0:284"},"scope":125897,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Reverter","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[125897],"name":"Reverter","nameLocation":"1505:8:284","scope":126244,"usedErrors":[]},{"id":125928,"nodeType":"ContractDefinition","src":"1600:262:284","nodes":[{"id":125901,"nodeType":"VariableDeclaration","src":"1629:37:284","nodes":[],"constant":false,"functionSelector":"ecf265bc","mutability":"mutable","name":"db","nameLocation":"1664:2:284","scope":125928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"typeName":{"id":125900,"keyType":{"id":125898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1637:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1629:27:284","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"valueType":{"id":125899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1648:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"id":125915,"nodeType":"FunctionDefinition","src":"1673:92:284","nodes":[],"body":{"id":125914,"nodeType":"Block","src":"1731:34:284","nodes":[],"statements":[{"expression":{"id":125912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":125908,"name":"db","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125901,"src":"1741:2:284","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":125910,"indexExpression":{"id":125909,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125903,"src":"1744:4:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1741:8:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":125911,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125905,"src":"1752:6:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1741:17:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":125913,"nodeType":"ExpressionStatement","src":"1741:17:284"}]},"functionSelector":"f71f7a25","implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"1682:3:284","parameters":{"id":125906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125903,"mutability":"mutable","name":"_key","nameLocation":"1694:4:284","nodeType":"VariableDeclaration","scope":125915,"src":"1686:12:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1686:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":125905,"mutability":"mutable","name":"_value","nameLocation":"1708:6:284","nodeType":"VariableDeclaration","scope":125915,"src":"1700:14:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1700:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1685:30:284"},"returnParameters":{"id":125907,"nodeType":"ParameterList","parameters":[],"src":"1731:0:284"},"scope":125928,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":125927,"nodeType":"FunctionDefinition","src":"1771:89:284","nodes":[],"body":{"id":125926,"nodeType":"Block","src":"1828:32:284","nodes":[],"statements":[{"expression":{"baseExpression":{"id":125922,"name":"db","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125901,"src":"1845:2:284","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":125924,"indexExpression":{"id":125923,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125917,"src":"1848:4:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1845:8:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":125921,"id":125925,"nodeType":"Return","src":"1838:15:284"}]},"functionSelector":"8eaa6ac0","implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"1780:3:284","parameters":{"id":125918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125917,"mutability":"mutable","name":"_key","nameLocation":"1792:4:284","nodeType":"VariableDeclaration","scope":125927,"src":"1784:12:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1784:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1783:14:284"},"returnParameters":{"id":125921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":125927,"src":"1819:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125919,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1819:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1818:9:284"},"scope":125928,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SimpleStorage","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[125928],"name":"SimpleStorage","nameLocation":"1609:13:284","scope":126244,"usedErrors":[]},{"id":126098,"nodeType":"ContractDefinition","src":"2089:3808:284","nodes":[{"id":125935,"nodeType":"VariableDeclaration","src":"2188:110:284","nodes":[],"constant":true,"documentation":{"id":125930,"nodeType":"StructuredDocumentation","src":"2126:57:284","text":"@notice EIP712 typehash for the ClaimableInvite type."},"functionSelector":"c4fc453d","mutability":"constant","name":"CLAIMABLE_INVITE_TYPEHASH","nameLocation":"2212:25:284","scope":126098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2188:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"436c61696d61626c65496e766974652861646472657373206973737565722c62797465733332206e6f6e636529","id":125933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2250:47:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_6529fd129351e725d7bcbc468b0b0b4675477e56b58514e69ab7e66ddfd20fce","typeString":"literal_string \"ClaimableInvite(address issuer,bytes32 nonce)\""},"value":"ClaimableInvite(address issuer,bytes32 nonce)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6529fd129351e725d7bcbc468b0b0b4675477e56b58514e69ab7e66ddfd20fce","typeString":"literal_string \"ClaimableInvite(address issuer,bytes32 nonce)\""}],"id":125932,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2240:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":125934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2240:58:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":125941,"nodeType":"VariableDeclaration","src":"2406:152:284","nodes":[],"constant":true,"documentation":{"id":125936,"nodeType":"StructuredDocumentation","src":"2305:96:284","text":"@notice EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"functionSelector":"c7977be7","mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"2430:22:284","scope":126098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2406:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":125939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2473:84:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":125938,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2463:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":125940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2463:95:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":125945,"nodeType":"VariableDeclaration","src":"2633:38:284","nodes":[],"constant":false,"documentation":{"id":125942,"nodeType":"StructuredDocumentation","src":"2565:63:284","text":"@notice Address of OptimistInviter contract we are testing."},"functionSelector":"d1829907","mutability":"mutable","name":"optimistInviter","nameLocation":"2656:15:284","scope":126098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"},"typeName":{"id":125944,"nodeType":"UserDefinedTypeName","pathNode":{"id":125943,"name":"OptimistInviter","nodeType":"IdentifierPath","referencedDeclaration":119183,"src":"2633:15:284"},"referencedDeclaration":119183,"src":"2633:15:284","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}},"visibility":"public"},{"id":125948,"nodeType":"VariableDeclaration","src":"2763:18:284","nodes":[],"constant":false,"documentation":{"id":125946,"nodeType":"StructuredDocumentation","src":"2678:80:284","text":"@notice OptimistInviter contract name. Used to construct the EIP-712 domain."},"functionSelector":"06fdde03","mutability":"mutable","name":"name","nameLocation":"2777:4:284","scope":126098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":125947,"name":"string","nodeType":"ElementaryTypeName","src":"2763:6:284","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":125951,"nodeType":"VariableDeclaration","src":"2873:27:284","nodes":[],"constant":false,"documentation":{"id":125949,"nodeType":"StructuredDocumentation","src":"2788:80:284","text":"@notice Keeps track of current nonce to generate new nonces for each invite."},"functionSelector":"adb610a3","mutability":"mutable","name":"currentNonce","nameLocation":"2888:12:284","scope":126098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125950,"name":"uint256","nodeType":"ElementaryTypeName","src":"2873:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":125968,"nodeType":"FunctionDefinition","src":"2907:140:284","nodes":[],"body":{"id":125967,"nodeType":"Block","src":"2974:73:284","nodes":[],"statements":[{"expression":{"id":125961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":125959,"name":"optimistInviter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125945,"src":"2984:15:284","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":125960,"name":"_optimistInviter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125954,"src":"3002:16:284","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}},"src":"2984:34:284","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}},"id":125962,"nodeType":"ExpressionStatement","src":"2984:34:284"},{"expression":{"id":125965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":125963,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125948,"src":"3028:4:284","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":125964,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125956,"src":"3035:5:284","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3028:12:284","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":125966,"nodeType":"ExpressionStatement","src":"3028:12:284"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":125957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125954,"mutability":"mutable","name":"_optimistInviter","nameLocation":"2935:16:284","nodeType":"VariableDeclaration","scope":125968,"src":"2919:32:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"},"typeName":{"id":125953,"nodeType":"UserDefinedTypeName","pathNode":{"id":125952,"name":"OptimistInviter","nodeType":"IdentifierPath","referencedDeclaration":119183,"src":"2919:15:284"},"referencedDeclaration":119183,"src":"2919:15:284","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}},"visibility":"internal"},{"constant":false,"id":125956,"mutability":"mutable","name":"_name","nameLocation":"2967:5:284","nodeType":"VariableDeclaration","scope":125968,"src":"2953:19:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":125955,"name":"string","nodeType":"ElementaryTypeName","src":"2953:6:284","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2918:55:284"},"returnParameters":{"id":125958,"nodeType":"ParameterList","parameters":[],"src":"2974:0:284"},"scope":126098,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":125989,"nodeType":"FunctionDefinition","src":"3224:274:284","nodes":[],"body":{"id":125988,"nodeType":"Block","src":"3377:121:284","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":125980,"name":"CLAIMABLE_INVITE_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125935,"src":"3415:25:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":125981,"name":"_claimableInvite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125972,"src":"3442:16:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_memory_ptr","typeString":"struct OptimistInviter.ClaimableInvite memory"}},"id":125982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"issuer","nodeType":"MemberAccess","referencedDeclaration":118899,"src":"3442:23:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":125983,"name":"_claimableInvite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125972,"src":"3467:16:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_memory_ptr","typeString":"struct OptimistInviter.ClaimableInvite memory"}},"id":125984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":118901,"src":"3467:22:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":125978,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3404:3:284","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":125979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3404:10:284","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":125985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3404:86:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":125977,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3394:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":125986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3394:97:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":125976,"id":125987,"nodeType":"Return","src":"3387:104:284"}]},"documentation":{"id":125969,"nodeType":"StructuredDocumentation","src":"3053:166:284","text":"@notice Returns the hash of the struct ClaimableInvite.\n @param _claimableInvite ClaimableInvite struct to hash.\n @return EIP-712 typed struct hash."},"functionSelector":"eb1df626","implemented":true,"kind":"function","modifiers":[],"name":"getClaimableInviteStructHash","nameLocation":"3233:28:284","parameters":{"id":125973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125972,"mutability":"mutable","name":"_claimableInvite","nameLocation":"3301:16:284","nodeType":"VariableDeclaration","scope":125989,"src":"3262:55:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_memory_ptr","typeString":"struct OptimistInviter.ClaimableInvite"},"typeName":{"id":125971,"nodeType":"UserDefinedTypeName","pathNode":{"id":125970,"name":"OptimistInviter.ClaimableInvite","nodeType":"IdentifierPath","referencedDeclaration":118902,"src":"3262:31:284"},"referencedDeclaration":118902,"src":"3262:31:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_storage_ptr","typeString":"struct OptimistInviter.ClaimableInvite"}},"visibility":"internal"}],"src":"3261:57:284"},"returnParameters":{"id":125976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":125989,"src":"3364:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125974,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3364:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3363:9:284"},"scope":126098,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":126007,"nodeType":"FunctionDefinition","src":"3712:119:284","nodes":[],"body":{"id":126006,"nodeType":"Block","src":"3761:70:284","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":126001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3807:14:284","subExpression":{"id":126000,"name":"currentNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125951,"src":"3807:12:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":125998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3796:3:284","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":125999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3796:10:284","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":126002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3796:26:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":125997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3786:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3786:37:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":125996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3778:7:284","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":125995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3778:7:284","typeDescriptions":{}}},"id":126004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3778:46:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":125994,"id":126005,"nodeType":"Return","src":"3771:53:284"}]},"documentation":{"id":125990,"nodeType":"StructuredDocumentation","src":"3504:203:284","text":"@notice Returns a bytes32 nonce that should change everytime. In practice, people should use\n         pseudorandom nonces.\n @return Nonce that should be used as part of ClaimableInvite."},"functionSelector":"34b15118","implemented":true,"kind":"function","modifiers":[],"name":"consumeNonce","nameLocation":"3721:12:284","parameters":{"id":125991,"nodeType":"ParameterList","parameters":[],"src":"3733:2:284"},"returnParameters":{"id":125994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126007,"src":"3752:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125992,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3752:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3751:9:284"},"scope":126098,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":126024,"nodeType":"FunctionDefinition","src":"4040:193:284","nodes":[],"body":{"id":126023,"nodeType":"Block","src":"4153:80:284","nodes":[],"statements":[{"expression":{"arguments":[{"id":126018,"name":"_issuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126010,"src":"4202:7:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":126019,"name":"consumeNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126007,"src":"4211:12:284","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bytes32_$","typeString":"function () returns (bytes32)"}},"id":126020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4211:14:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":126016,"name":"OptimistInviter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119183,"src":"4170:15:284","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OptimistInviter_$119183_$","typeString":"type(contract OptimistInviter)"}},"id":126017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ClaimableInvite","nodeType":"MemberAccess","referencedDeclaration":118902,"src":"4170:31:284","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimableInvite_$118902_storage_ptr_$","typeString":"type(struct OptimistInviter.ClaimableInvite storage pointer)"}},"id":126021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4170:56:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_memory_ptr","typeString":"struct OptimistInviter.ClaimableInvite memory"}},"functionReturnParameters":126015,"id":126022,"nodeType":"Return","src":"4163:63:284"}]},"documentation":{"id":126008,"nodeType":"StructuredDocumentation","src":"3837:198:284","text":"@notice Returns a ClaimableInvite with the issuer and current nonce.\n @param _issuer Issuer to include in the ClaimableInvite.\n @return ClaimableInvite that can be hashed & signed."},"functionSelector":"8ebe24e5","implemented":true,"kind":"function","modifiers":[],"name":"getClaimableInviteWithNewNonce","nameLocation":"4049:30:284","parameters":{"id":126011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126010,"mutability":"mutable","name":"_issuer","nameLocation":"4088:7:284","nodeType":"VariableDeclaration","scope":126024,"src":"4080:15:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":126009,"name":"address","nodeType":"ElementaryTypeName","src":"4080:7:284","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4079:17:284"},"returnParameters":{"id":126015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126024,"src":"4113:38:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_memory_ptr","typeString":"struct OptimistInviter.ClaimableInvite"},"typeName":{"id":126013,"nodeType":"UserDefinedTypeName","pathNode":{"id":126012,"name":"OptimistInviter.ClaimableInvite","nodeType":"IdentifierPath","referencedDeclaration":118902,"src":"4113:31:284"},"referencedDeclaration":118902,"src":"4113:31:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_storage_ptr","typeString":"struct OptimistInviter.ClaimableInvite"}},"visibility":"internal"}],"src":"4112:40:284"},"scope":126098,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":126054,"nodeType":"FunctionDefinition","src":"4422:340:284","nodes":[],"body":{"id":126053,"nodeType":"Block","src":"4530:232:284","nodes":[],"statements":[{"expression":{"arguments":[{"id":126034,"name":"_claimableInvite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126028,"src":"4586:16:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_calldata_ptr","typeString":"struct OptimistInviter.ClaimableInvite calldata"}},{"arguments":[{"id":126037,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125948,"src":"4622:4:284","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":126036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4616:5:284","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":126035,"name":"bytes","nodeType":"ElementaryTypeName","src":"4616:5:284","typeDescriptions":{}}},"id":126038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4616:11:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":126041,"name":"optimistInviter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125945,"src":"4647:15:284","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}},"id":126042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"EIP712_VERSION","nodeType":"MemberAccess","referencedDeclaration":118873,"src":"4647:30:284","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":126043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4647:32:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":126040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4641:5:284","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":126039,"name":"bytes","nodeType":"ElementaryTypeName","src":"4641:5:284","typeDescriptions":{}}},"id":126044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4641:39:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":126045,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4694:5:284","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":126046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"4694:13:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":126049,"name":"optimistInviter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125945,"src":"4729:15:284","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimistInviter_$119183","typeString":"contract OptimistInviter"}],"id":126048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4721:7:284","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":126047,"name":"address","nodeType":"ElementaryTypeName","src":"4721:7:284","typeDescriptions":{}}},"id":126050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4721:24:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_calldata_ptr","typeString":"struct OptimistInviter.ClaimableInvite calldata"},{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":126033,"name":"getDigestWithEIP712Domain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126097,"src":"4547:25:284","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ClaimableInvite_$118902_calldata_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (struct OptimistInviter.ClaimableInvite calldata,bytes memory,bytes memory,uint256,address) pure returns (bytes32)"}},"id":126051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4547:208:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":126032,"id":126052,"nodeType":"Return","src":"4540:215:284"}]},"documentation":{"id":126025,"nodeType":"StructuredDocumentation","src":"4239:178:284","text":"@notice Computes the EIP712 digest with default correct parameters.\n @param _claimableInvite ClaimableInvite struct to hash.\n @return EIP-712 compatible digest."},"functionSelector":"1c6e7f25","implemented":true,"kind":"function","modifiers":[],"name":"getDigest","nameLocation":"4431:9:284","parameters":{"id":126029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126028,"mutability":"mutable","name":"_claimableInvite","nameLocation":"4482:16:284","nodeType":"VariableDeclaration","scope":126054,"src":"4441:57:284","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_calldata_ptr","typeString":"struct OptimistInviter.ClaimableInvite"},"typeName":{"id":126027,"nodeType":"UserDefinedTypeName","pathNode":{"id":126026,"name":"OptimistInviter.ClaimableInvite","nodeType":"IdentifierPath","referencedDeclaration":118902,"src":"4441:31:284"},"referencedDeclaration":118902,"src":"4441:31:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_storage_ptr","typeString":"struct OptimistInviter.ClaimableInvite"}},"visibility":"internal"}],"src":"4440:59:284"},"returnParameters":{"id":126032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126054,"src":"4521:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4521:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4520:9:284"},"scope":126098,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":126097,"nodeType":"FunctionDefinition","src":"5326:569:284","nodes":[],"body":{"id":126096,"nodeType":"Block","src":"5613:282:284","nodes":[],"statements":[{"assignments":[126072],"declarations":[{"constant":false,"id":126072,"mutability":"mutable","name":"domainSeparator","nameLocation":"5631:15:284","nodeType":"VariableDeclaration","scope":126096,"src":"5623:23:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5623:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":126087,"initialValue":{"arguments":[{"arguments":[{"id":126076,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125941,"src":"5683:22:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":126078,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126060,"src":"5717:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126077,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5707:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5707:16:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":126081,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126062,"src":"5735:8:284","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126080,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5725:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5725:19:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":126083,"name":"_chainid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126064,"src":"5746:8:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":126084,"name":"_verifyingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126066,"src":"5756:18:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":126074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5672:3:284","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5672:10:284","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":126085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5672:103:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126073,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5649:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5649:136:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5623:162:284"},{"expression":{"arguments":[{"id":126090,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126072,"src":"5824:15:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":126092,"name":"_claimableInvite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126058,"src":"5870:16:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_calldata_ptr","typeString":"struct OptimistInviter.ClaimableInvite calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_calldata_ptr","typeString":"struct OptimistInviter.ClaimableInvite calldata"}],"id":126091,"name":"getClaimableInviteStructHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125989,"src":"5841:28:284","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ClaimableInvite_$118902_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct OptimistInviter.ClaimableInvite memory) pure returns (bytes32)"}},"id":126093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5841:46:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":126088,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54590,"src":"5802:5:284","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$54590_$","typeString":"type(library ECDSA)"}},"id":126089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":54589,"src":"5802:21:284","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":126094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5802:86:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":126070,"id":126095,"nodeType":"Return","src":"5795:93:284"}]},"documentation":{"id":126055,"nodeType":"StructuredDocumentation","src":"4768:553:284","text":"@notice Computes the EIP712 digest with the given domain parameters.\n         Used for testing that different domain parameters fail.\n @param _claimableInvite   ClaimableInvite struct to hash.\n @param _name              Contract name to use in the EIP712 domain.\n @param _version           Contract version to use in the EIP712 domain.\n @param _chainid           Chain ID to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @return EIP-712 compatible digest."},"functionSelector":"019a4f49","implemented":true,"kind":"function","modifiers":[],"name":"getDigestWithEIP712Domain","nameLocation":"5335:25:284","parameters":{"id":126067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126058,"mutability":"mutable","name":"_claimableInvite","nameLocation":"5411:16:284","nodeType":"VariableDeclaration","scope":126097,"src":"5370:57:284","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_calldata_ptr","typeString":"struct OptimistInviter.ClaimableInvite"},"typeName":{"id":126057,"nodeType":"UserDefinedTypeName","pathNode":{"id":126056,"name":"OptimistInviter.ClaimableInvite","nodeType":"IdentifierPath","referencedDeclaration":118902,"src":"5370:31:284"},"referencedDeclaration":118902,"src":"5370:31:284","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimableInvite_$118902_storage_ptr","typeString":"struct OptimistInviter.ClaimableInvite"}},"visibility":"internal"},{"constant":false,"id":126060,"mutability":"mutable","name":"_name","nameLocation":"5450:5:284","nodeType":"VariableDeclaration","scope":126097,"src":"5437:18:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126059,"name":"bytes","nodeType":"ElementaryTypeName","src":"5437:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":126062,"mutability":"mutable","name":"_version","nameLocation":"5478:8:284","nodeType":"VariableDeclaration","scope":126097,"src":"5465:21:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126061,"name":"bytes","nodeType":"ElementaryTypeName","src":"5465:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":126064,"mutability":"mutable","name":"_chainid","nameLocation":"5504:8:284","nodeType":"VariableDeclaration","scope":126097,"src":"5496:16:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":126063,"name":"uint256","nodeType":"ElementaryTypeName","src":"5496:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":126066,"mutability":"mutable","name":"_verifyingContract","nameLocation":"5530:18:284","nodeType":"VariableDeclaration","scope":126097,"src":"5522:26:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":126065,"name":"address","nodeType":"ElementaryTypeName","src":"5522:7:284","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5360:194:284"},"returnParameters":{"id":126070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126097,"src":"5600:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5600:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5599:9:284"},"scope":126098,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"OptimistInviterHelper","contractDependencies":[],"contractKind":"contract","documentation":{"id":125929,"nodeType":"StructuredDocumentation","src":"1864:225:284","text":"@notice Simple helper contract that helps with testing flow and signature for\n         OptimistInviter contract. Made this a separate contract instead of including\n         in OptimistInviter.t.sol for reusability."},"fullyImplemented":true,"linearizedBaseContracts":[126098],"name":"OptimistInviterHelper","nameLocation":"2098:21:284","scope":126244,"usedErrors":[]},{"id":126142,"nodeType":"ContractDefinition","src":"6119:369:284","nodes":[{"id":126113,"nodeType":"FunctionDefinition","src":"6173:84:284","nodes":[],"body":{"id":126112,"nodeType":"Block","src":"6208:49:284","nodes":[],"statements":[{"expression":{"arguments":[{"id":126109,"name":"originalOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126105,"src":"6236:13:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":126108,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50025,"src":"6218:17:284","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":126110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6218:32:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":126111,"nodeType":"ExpressionStatement","src":"6218:32:284"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":126106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126105,"mutability":"mutable","name":"originalOwner","nameLocation":"6193:13:284","nodeType":"VariableDeclaration","scope":126113,"src":"6185:21:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":126104,"name":"address","nodeType":"ElementaryTypeName","src":"6185:7:284","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6184:23:284"},"returnParameters":{"id":126107,"nodeType":"ParameterList","parameters":[],"src":"6208:0:284"},"scope":126142,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":126141,"nodeType":"FunctionDefinition","src":"6263:223:284","nodes":[],"body":{"id":126140,"nodeType":"Block","src":"6376:110:284","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":126130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":126125,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126115,"src":"6407:4:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":126126,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126117,"src":"6413:9:284","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":126123,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54590,"src":"6393:5:284","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$54590_$","typeString":"type(library ECDSA)"}},"id":126124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":54339,"src":"6393:13:284","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":126127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6393:30:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":126128,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"6427:5:284","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":126129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6427:7:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6393:41:284","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":126136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6477:1:284","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":126135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6470:6:284","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":126134,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6470:6:284","typeDescriptions":{}}},"id":126137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6470:9:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":126138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6393:86:284","trueExpression":{"expression":{"expression":{"id":126131,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6437:4:284","typeDescriptions":{"typeIdentifier":"t_contract$_TestERC1271Wallet_$126142","typeString":"contract TestERC1271Wallet"}},"id":126132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":126141,"src":"6437:21:284","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes32,bytes memory) view external returns (bytes4)"}},"id":126133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"6437:30:284","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":126122,"id":126139,"nodeType":"Return","src":"6386:93:284"}]},"baseFunctions":[50137],"functionSelector":"1626ba7e","implemented":true,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"6272:16:284","overrides":{"id":126119,"nodeType":"OverrideSpecifier","overrides":[],"src":"6339:8:284"},"parameters":{"id":126118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126115,"mutability":"mutable","name":"hash","nameLocation":"6297:4:284","nodeType":"VariableDeclaration","scope":126141,"src":"6289:12:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6289:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":126117,"mutability":"mutable","name":"signature","nameLocation":"6316:9:284","nodeType":"VariableDeclaration","scope":126141,"src":"6303:22:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126116,"name":"bytes","nodeType":"ElementaryTypeName","src":"6303:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6288:38:284"},"returnParameters":{"id":126122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126121,"mutability":"mutable","name":"magicValue","nameLocation":"6364:10:284","nodeType":"VariableDeclaration","scope":126141,"src":"6357:17:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":126120,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6357:6:284","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6356:19:284"},"scope":126142,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":126100,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":50046,"src":"6149:7:284"},"id":126101,"nodeType":"InheritanceSpecifier","src":"6149:7:284"},{"baseName":{"id":126102,"name":"IERC1271","nodeType":"IdentifierPath","referencedDeclaration":50138,"src":"6158:8:284"},"id":126103,"nodeType":"InheritanceSpecifier","src":"6158:8:284"}],"canonicalName":"TestERC1271Wallet","contractDependencies":[],"contractKind":"contract","documentation":{"id":126099,"nodeType":"StructuredDocumentation","src":"5899:220:284","text":"@notice Simple ERC1271 wallet that can be used to test the ERC1271 signature checker.\n @notice https://github.com/OpenZeppelin/openzeppelin-contracts/\n         blob/master/contracts/mocks/ERC1271WalletMock.sol"},"fullyImplemented":true,"linearizedBaseContracts":[126142,50138,50046,53902],"name":"TestERC1271Wallet","nameLocation":"6128:17:284","scope":126244,"usedErrors":[]},{"id":126243,"nodeType":"ContractDefinition","src":"6570:2488:284","nodes":[{"id":126149,"nodeType":"VariableDeclaration","src":"6650:103:284","nodes":[],"constant":true,"documentation":{"id":126144,"nodeType":"StructuredDocumentation","src":"6598:47:284","text":"@notice EIP712 typehash for the Proof type."},"functionSelector":"8b3e3bf6","mutability":"constant","name":"PROOF_TYPEHASH","nameLocation":"6674:14:284","scope":126243,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6650:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50726f6f66286164647265737320726563697069656e742c62797465733332206e6f6e63652c6279746573333220696429","id":126147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6701:51:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""},"value":"Proof(address recipient,bytes32 nonce,bytes32 id)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""}],"id":126146,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6691:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6691:62:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":126155,"nodeType":"VariableDeclaration","src":"6861:152:284","nodes":[],"constant":true,"documentation":{"id":126150,"nodeType":"StructuredDocumentation","src":"6760:96:284","text":"@notice EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"functionSelector":"c7977be7","mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"6885:22:284","scope":126243,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6861:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":126153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6928:84:284","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":126152,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6918:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6918:95:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":126158,"nodeType":"VariableDeclaration","src":"7103:27:284","nodes":[],"constant":false,"documentation":{"id":126156,"nodeType":"StructuredDocumentation","src":"7020:78:284","text":"@notice Keeps track of current nonce to generate new nonces for each drip."},"functionSelector":"adb610a3","mutability":"mutable","name":"currentNonce","nameLocation":"7118:12:284","scope":126243,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":126157,"name":"uint256","nodeType":"ElementaryTypeName","src":"7103:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":126176,"nodeType":"FunctionDefinition","src":"7345:119:284","nodes":[],"body":{"id":126175,"nodeType":"Block","src":"7394:70:284","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":126170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7440:14:284","subExpression":{"id":126169,"name":"currentNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126158,"src":"7440:12:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":126167,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7429:3:284","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7429:10:284","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":126171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7429:26:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126166,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7419:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7419:37:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":126165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7411:7:284","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":126164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7411:7:284","typeDescriptions":{}}},"id":126173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7411:46:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":126163,"id":126174,"nodeType":"Return","src":"7404:53:284"}]},"documentation":{"id":126159,"nodeType":"StructuredDocumentation","src":"7137:203:284","text":"@notice Returns a bytes32 nonce that should change everytime. In practice, people should use\n         pseudorandom nonces.\n @return Nonce that should be used as part of drip parameters."},"functionSelector":"34b15118","implemented":true,"kind":"function","modifiers":[],"name":"consumeNonce","nameLocation":"7354:12:284","parameters":{"id":126160,"nodeType":"ParameterList","parameters":[],"src":"7366:2:284"},"returnParameters":{"id":126163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126176,"src":"7385:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7385:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7384:9:284"},"scope":126243,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":126199,"nodeType":"FunctionDefinition","src":"7611:205:284","nodes":[],"body":{"id":126198,"nodeType":"Block","src":"7712:104:284","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":126188,"name":"PROOF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126149,"src":"7750:14:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":126189,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126180,"src":"7766:6:284","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":126190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":118221,"src":"7766:16:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":126191,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126180,"src":"7784:6:284","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":126192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":118223,"src":"7784:12:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":126193,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126180,"src":"7798:6:284","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":126194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":118225,"src":"7798:9:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":126186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7739:3:284","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7739:10:284","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":126195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7739:69:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126185,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7729:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7729:80:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":126184,"id":126197,"nodeType":"Return","src":"7722:87:284"}]},"documentation":{"id":126177,"nodeType":"StructuredDocumentation","src":"7470:136:284","text":"@notice Returns the hash of the struct Proof.\n @param _proof Proof struct to hash.\n @return EIP-712 typed struct hash."},"functionSelector":"796dfbfa","implemented":true,"kind":"function","modifiers":[],"name":"getProofStructHash","nameLocation":"7620:18:284","parameters":{"id":126181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126180,"mutability":"mutable","name":"_proof","nameLocation":"7674:6:284","nodeType":"VariableDeclaration","scope":126199,"src":"7639:41:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof"},"typeName":{"id":126179,"nodeType":"UserDefinedTypeName","pathNode":{"id":126178,"name":"AdminFaucetAuthModule.Proof","nodeType":"IdentifierPath","referencedDeclaration":118226,"src":"7639:27:284"},"referencedDeclaration":118226,"src":"7639:27:284","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_storage_ptr","typeString":"struct AdminFaucetAuthModule.Proof"}},"visibility":"internal"}],"src":"7638:43:284"},"returnParameters":{"id":126184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126199,"src":"7703:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7703:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7702:9:284"},"scope":126243,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":126242,"nodeType":"FunctionDefinition","src":"8512:544:284","nodes":[],"body":{"id":126241,"nodeType":"Block","src":"8783:273:284","nodes":[],"statements":[{"assignments":[126217],"declarations":[{"constant":false,"id":126217,"mutability":"mutable","name":"domainSeparator","nameLocation":"8801:15:284","nodeType":"VariableDeclaration","scope":126241,"src":"8793:23:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8793:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":126232,"initialValue":{"arguments":[{"arguments":[{"id":126221,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126155,"src":"8853:22:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":126223,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126205,"src":"8887:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126222,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8877:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8877:16:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":126226,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126207,"src":"8905:8:284","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126225,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8895:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8895:19:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":126228,"name":"_chainid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126209,"src":"8916:8:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":126229,"name":"_verifyingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126211,"src":"8926:18:284","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":126219,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8842:3:284","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"8842:10:284","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":126230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8842:103:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":126218,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8819:9:284","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":126231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8819:136:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8793:162:284"},{"expression":{"arguments":[{"id":126235,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126217,"src":"9005:15:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":126237,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126203,"src":"9041:6:284","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proof_$118226_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}],"id":126236,"name":"getProofStructHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126199,"src":"9022:18:284","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Proof_$118226_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct AdminFaucetAuthModule.Proof memory) pure returns (bytes32)"}},"id":126238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9022:26:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":126233,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49727,"src":"8972:16:284","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSAUpgradeable_$49727_$","typeString":"type(library ECDSAUpgradeable)"}},"id":126234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":49726,"src":"8972:32:284","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":126239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8972:77:284","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":126215,"id":126240,"nodeType":"Return","src":"8965:84:284"}]},"documentation":{"id":126200,"nodeType":"StructuredDocumentation","src":"7822:685:284","text":"@notice Computes the EIP712 digest with the given domain parameters.\n         Used for testing that different domain parameters fail.\n @param _proof             Proof struct to hash.\n @param _name              Contract name to use in the EIP712 domain.\n @param _version           Contract version to use in the EIP712 domain.\n @param _chainid           Chain ID to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @return EIP-712 compatible digest."},"functionSelector":"b163a6b8","implemented":true,"kind":"function","modifiers":[],"name":"getDigestWithEIP712Domain","nameLocation":"8521:25:284","parameters":{"id":126212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126203,"mutability":"mutable","name":"_proof","nameLocation":"8591:6:284","nodeType":"VariableDeclaration","scope":126242,"src":"8556:41:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof"},"typeName":{"id":126202,"nodeType":"UserDefinedTypeName","pathNode":{"id":126201,"name":"AdminFaucetAuthModule.Proof","nodeType":"IdentifierPath","referencedDeclaration":118226,"src":"8556:27:284"},"referencedDeclaration":118226,"src":"8556:27:284","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$118226_storage_ptr","typeString":"struct AdminFaucetAuthModule.Proof"}},"visibility":"internal"},{"constant":false,"id":126205,"mutability":"mutable","name":"_name","nameLocation":"8620:5:284","nodeType":"VariableDeclaration","scope":126242,"src":"8607:18:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126204,"name":"bytes","nodeType":"ElementaryTypeName","src":"8607:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":126207,"mutability":"mutable","name":"_version","nameLocation":"8648:8:284","nodeType":"VariableDeclaration","scope":126242,"src":"8635:21:284","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126206,"name":"bytes","nodeType":"ElementaryTypeName","src":"8635:5:284","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":126209,"mutability":"mutable","name":"_chainid","nameLocation":"8674:8:284","nodeType":"VariableDeclaration","scope":126242,"src":"8666:16:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":126208,"name":"uint256","nodeType":"ElementaryTypeName","src":"8666:7:284","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":126211,"mutability":"mutable","name":"_verifyingContract","nameLocation":"8700:18:284","nodeType":"VariableDeclaration","scope":126242,"src":"8692:26:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":126210,"name":"address","nodeType":"ElementaryTypeName","src":"8692:7:284","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8546:178:284"},"returnParameters":{"id":126215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126242,"src":"8770:7:284","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8770:7:284","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8769:9:284"},"scope":126243,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"FaucetHelper","contractDependencies":[],"contractKind":"contract","documentation":{"id":126143,"nodeType":"StructuredDocumentation","src":"6490:80:284","text":"@notice Simple helper contract that helps with testing the Faucet contract."},"fullyImplemented":true,"linearizedBaseContracts":[126243],"name":"FaucetHelper","nameLocation":"6579:12:284","scope":126244,"usedErrors":[]}],"license":"MIT"},"id":284}