{"abi":[{"type":"constructor","inputs":[{"name":"_optimistInviter","type":"address","internalType":"contract OptimistInviter"},{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"CLAIMABLE_INVITE_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"EIP712_DOMAIN_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":"getClaimableInviteStructHash","inputs":[{"name":"_claimableInvite","type":"tuple","internalType":"struct OptimistInviter.ClaimableInvite","components":[{"name":"issuer","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getClaimableInviteWithNewNonce","inputs":[{"name":"_issuer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct OptimistInviter.ClaimableInvite","components":[{"name":"issuer","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getDigest","inputs":[{"name":"_claimableInvite","type":"tuple","internalType":"struct OptimistInviter.ClaimableInvite","components":[{"name":"issuer","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getDigestWithEIP712Domain","inputs":[{"name":"_claimableInvite","type":"tuple","internalType":"struct OptimistInviter.ClaimableInvite","components":[{"name":"issuer","type":"address","internalType":"address"},{"name":"nonce","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":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"optimistInviter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimistInviter"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000d3138038062000d3183398101604081905262000034916200007c565b600080546001600160a01b0319166001600160a01b03841617905560016200005d82826200020b565b505050620002d7565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200009057600080fd5b82516001600160a01b0381168114620000a857600080fd5b602084810151919350906001600160401b0380821115620000c857600080fd5b818601915086601f830112620000dd57600080fd5b815181811115620000f257620000f262000066565b604051601f8201601f19908116603f011681019083821181831017156200011d576200011d62000066565b8160405282815289868487010111156200013657600080fd5b600093505b828410156200015a57848401860151818501870152928501926200013b565b828411156200016c5760008684830101525b8096505050505050509250929050565b600181811c908216806200019157607f821691505b602082108103620001b257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200020657600081815260208120601f850160051c81016020861015620001e15750805b601f850160051c820191505b818110156200020257828155600101620001ed565b5050505b505050565b81516001600160401b0381111562000227576200022762000066565b6200023f816200023884546200017c565b84620001b8565b602080601f8311600181146200027757600084156200025e5750858301515b600019600386901b1c1916600185901b17855562000202565b600085815260208120601f198616915b82811015620002a85788860151825594840194600190910190840162000287565b5085821015620002c75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610a4a80620002e76000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063adb610a311610076578063c7977be71161005b578063c7977be71461018d578063d1829907146101b4578063eb1df626146101f957600080fd5b8063adb610a31461015d578063c4fc453d1461016657600080fd5b80631c6e7f25116100a75780631c6e7f25146100fe57806334b15118146101115780638ebe24e51461011957600080fd5b8063019a4f49146100c357806306fdde03146100e9575b600080fd5b6100d66100d1366004610774565b61020c565b6040519081526020015b60405180910390f35b6100f1610315565b6040516100e09190610834565b6100d661010c366004610885565b6103a3565b6100d661050c565b61012c6101273660046108a8565b61054e565b60408051825173ffffffffffffffffffffffffffffffffffffffff16815260209283015192810192909252016100e0565b6100d660025481565b6100d67f6529fd129351e725d7bcbc468b0b0b4675477e56b58514e69ab7e66ddfd20fce81565b6100d67f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6000546101d49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e0565b6100d66102073660046108c3565b610599565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061030a816102af8980360381019061020791906108c3565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b600180546103229061091a565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061091a565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b505050505081565b600061050682600180546103b69061091a565b80601f01602080910402602001604051908101604052809291908181526020018280546103e29061091a565b801561042f5780601f106104045761010080835404028352916020019161042f565b820191906000526020600020905b81548152906001019060200180831161041257829003601f168201915b505060008054604080517feccec5a8000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216955063eccec5a8945060048082019450908290030181865afa1580156104a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104e69190810190610967565b600054469073ffffffffffffffffffffffffffffffffffffffff1661020c565b92915050565b600280546000918261051d836109de565b9190505560405160200161053391815260200190565b60405160208183030381529060405280519060200120905090565b604080518082019091526000808252602082015260405180604001604052808373ffffffffffffffffffffffffffffffffffffffff16815260200161059161050c565b905292915050565b80516020808301516040516000936105fc937f6529fd129351e725d7bcbc468b0b0b4675477e56b58514e69ab7e66ddfd20fce9391920192835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b604051602081830303815290604052805190602001209050919050565b60006040828403121561062b57600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156106a7576106a7610631565b604052919050565b600067ffffffffffffffff8211156106c9576106c9610631565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261070657600080fd5b8135610719610714826106af565b610660565b81815284602083860101111561072e57600080fd5b816020850160208301376000918101602001919091529392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461076f57600080fd5b919050565b600080600080600060c0868803121561078c57600080fd5b6107968787610619565b9450604086013567ffffffffffffffff808211156107b357600080fd5b6107bf89838a016106f5565b955060608801359150808211156107d557600080fd5b506107e2888289016106f5565b935050608086013591506107f860a0870161074b565b90509295509295909350565b60005b8381101561081f578181015183820152602001610807565b8381111561082e576000848401525b50505050565b6020815260008251806020840152610853816040850160208701610804565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006040828403121561089757600080fd5b6108a18383610619565b9392505050565b6000602082840312156108ba57600080fd5b6108a18261074b565b6000604082840312156108d557600080fd5b6040516040810181811067ffffffffffffffff821117156108f8576108f8610631565b6040526109048361074b565b8152602083013560208201528091505092915050565b600181811c9082168061092e57607f821691505b60208210810361062b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006020828403121561097957600080fd5b815167ffffffffffffffff81111561099057600080fd5b8201601f810184136109a157600080fd5b80516109af610714826106af565b8181528560208385010111156109c457600080fd5b6109d5826020830160208601610804565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610a36577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"2089:3808:284:-:0;;;2907:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2984:15;:34;;-1:-1:-1;;;;;;2984:34:284;-1:-1:-1;;;;;2984:34:284;;;;;-1:-1:-1;3028:12:284;3035:5;-1:-1:-1;3028:12:284;:::i;:::-;;2907:140;;2089:3808;;14:127:416;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1280;261:6;269;322:2;310:9;301:7;297:23;293:32;290:52;;;338:1;335;328:12;290:52;364:16;;-1:-1:-1;;;;;409:31:416;;399:42;;389:70;;455:1;452;445:12;389:70;502:2;533:18;;;527:25;478:5;;-1:-1:-1;502:2:416;-1:-1:-1;;;;;601:14:416;;;598:34;;;628:1;625;618:12;598:34;666:6;655:9;651:22;641:32;;711:7;704:4;700:2;696:13;692:27;682:55;;733:1;730;723:12;682:55;762:2;756:9;784:2;780;777:10;774:36;;;790:18;;:::i;:::-;865:2;859:9;833:2;919:13;;-1:-1:-1;;915:22:416;;;939:2;911:31;907:40;895:53;;;963:18;;;983:22;;;960:46;957:72;;;1009:18;;:::i;:::-;1049:10;1045:2;1038:22;1084:2;1076:6;1069:18;1124:7;1119:2;1114;1110;1106:11;1102:20;1099:33;1096:53;;;1145:1;1142;1135:12;1096:53;1167:1;1158:10;;1177:129;1191:2;1188:1;1185:9;1177:129;;;1279:10;;;1275:19;;1269:26;1248:14;;;1244:23;;1237:59;1202:10;;;;1177:129;;;1324:2;1321:1;1318:9;1315:80;;;1383:1;1378:2;1373;1365:6;1361:15;1357:24;1350:35;1315:80;1414:6;1404:16;;;;;;;;146:1280;;;;;:::o;1431:380::-;1510:1;1506:12;;;;1553;;;1574:61;;1628:4;1620:6;1616:17;1606:27;;1574:61;1681:2;1673:6;1670:14;1650:18;1647:38;1644:161;;1727:10;1722:3;1718:20;1715:1;1708:31;1762:4;1759:1;1752:15;1790:4;1787:1;1780:15;1644:161;;1431:380;;;:::o;1942:545::-;2044:2;2039:3;2036:11;2033:448;;;2080:1;2105:5;2101:2;2094:17;2150:4;2146:2;2136:19;2220:2;2208:10;2204:19;2201:1;2197:27;2191:4;2187:38;2256:4;2244:10;2241:20;2238:47;;;-1:-1:-1;2279:4:416;2238:47;2334:2;2329:3;2325:12;2322:1;2318:20;2312:4;2308:31;2298:41;;2389:82;2407:2;2400:5;2397:13;2389:82;;;2452:17;;;2433:1;2422:13;2389:82;;;2393:3;;;2033:448;1942:545;;;:::o;2663:1352::-;2783:10;;-1:-1:-1;;;;;2805:30:416;;2802:56;;;2838:18;;:::i;:::-;2867:97;2957:6;2917:38;2949:4;2943:11;2917:38;:::i;:::-;2911:4;2867:97;:::i;:::-;3019:4;;3083:2;3072:14;;3100:1;3095:663;;;;3802:1;3819:6;3816:89;;;-1:-1:-1;3871:19:416;;;3865:26;3816:89;-1:-1:-1;;2620:1:416;2616:11;;;2612:24;2608:29;2598:40;2644:1;2640:11;;;2595:57;3918:81;;3065:944;;3095:663;1889:1;1882:14;;;1926:4;1913:18;;-1:-1:-1;;3131:20:416;;;3249:236;3263:7;3260:1;3257:14;3249:236;;;3352:19;;;3346:26;3331:42;;3444:27;;;;3412:1;3400:14;;;;3279:19;;3249:236;;;3253:3;3513:6;3504:7;3501:19;3498:201;;;3574:19;;;3568:26;-1:-1:-1;;3657:1:416;3653:14;;;3669:3;3649:24;3645:37;3641:42;3626:58;3611:74;;3498:201;-1:-1:-1;;;;;3745:1:416;3729:14;;;3725:22;3712:36;;-1:-1:-1;2663:1352:416:o;:::-;2089:3808:284;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063adb610a311610076578063c7977be71161005b578063c7977be71461018d578063d1829907146101b4578063eb1df626146101f957600080fd5b8063adb610a31461015d578063c4fc453d1461016657600080fd5b80631c6e7f25116100a75780631c6e7f25146100fe57806334b15118146101115780638ebe24e51461011957600080fd5b8063019a4f49146100c357806306fdde03146100e9575b600080fd5b6100d66100d1366004610774565b61020c565b6040519081526020015b60405180910390f35b6100f1610315565b6040516100e09190610834565b6100d661010c366004610885565b6103a3565b6100d661050c565b61012c6101273660046108a8565b61054e565b60408051825173ffffffffffffffffffffffffffffffffffffffff16815260209283015192810192909252016100e0565b6100d660025481565b6100d67f6529fd129351e725d7bcbc468b0b0b4675477e56b58514e69ab7e66ddfd20fce81565b6100d67f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6000546101d49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e0565b6100d66102073660046108c3565b610599565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061030a816102af8980360381019061020791906108c3565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b600180546103229061091a565b80601f016020809104026020016040519081016040528092919081815260200182805461034e9061091a565b801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b505050505081565b600061050682600180546103b69061091a565b80601f01602080910402602001604051908101604052809291908181526020018280546103e29061091a565b801561042f5780601f106104045761010080835404028352916020019161042f565b820191906000526020600020905b81548152906001019060200180831161041257829003601f168201915b505060008054604080517feccec5a8000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216955063eccec5a8945060048082019450908290030181865afa1580156104a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104e69190810190610967565b600054469073ffffffffffffffffffffffffffffffffffffffff1661020c565b92915050565b600280546000918261051d836109de565b9190505560405160200161053391815260200190565b60405160208183030381529060405280519060200120905090565b604080518082019091526000808252602082015260405180604001604052808373ffffffffffffffffffffffffffffffffffffffff16815260200161059161050c565b905292915050565b80516020808301516040516000936105fc937f6529fd129351e725d7bcbc468b0b0b4675477e56b58514e69ab7e66ddfd20fce9391920192835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b604051602081830303815290604052805190602001209050919050565b60006040828403121561062b57600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156106a7576106a7610631565b604052919050565b600067ffffffffffffffff8211156106c9576106c9610631565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261070657600080fd5b8135610719610714826106af565b610660565b81815284602083860101111561072e57600080fd5b816020850160208301376000918101602001919091529392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461076f57600080fd5b919050565b600080600080600060c0868803121561078c57600080fd5b6107968787610619565b9450604086013567ffffffffffffffff808211156107b357600080fd5b6107bf89838a016106f5565b955060608801359150808211156107d557600080fd5b506107e2888289016106f5565b935050608086013591506107f860a0870161074b565b90509295509295909350565b60005b8381101561081f578181015183820152602001610807565b8381111561082e576000848401525b50505050565b6020815260008251806020840152610853816040850160208701610804565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006040828403121561089757600080fd5b6108a18383610619565b9392505050565b6000602082840312156108ba57600080fd5b6108a18261074b565b6000604082840312156108d557600080fd5b6040516040810181811067ffffffffffffffff821117156108f8576108f8610631565b6040526109048361074b565b8152602083013560208201528091505092915050565b600181811c9082168061092e57607f821691505b60208210810361062b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006020828403121561097957600080fd5b815167ffffffffffffffff81111561099057600080fd5b8201601f810184136109a157600080fd5b80516109af610714826106af565b8181528560208385010111156109c457600080fd5b6109d5826020830160208601610804565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610a36577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"2089:3808:284:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5326:569;;;;;;:::i;:::-;;:::i;:::-;;;2607:25:416;;;2595:2;2580:18;5326:569:284;;;;;;;;2763:18;;;:::i;:::-;;;;;;;:::i;4422:340::-;;;;;;:::i;:::-;;:::i;3712:119::-;;;:::i;4040:193::-;;;;;;:::i;:::-;;:::i;:::-;;;;4043:13:416;;4058:42;4039:62;4021:81;;4158:4;4146:17;;;4140:24;4118:20;;;4111:54;;;;3994:18;4040:193:284;3805:366:416;2873:27:284;;;;;;2188:110;;2240:58;2188:110;;2406:152;;2463:95;2406:152;;2633:38;;;;;;;;;;;;4560:42:416;4548:55;;;4530:74;;4518:2;4503:18;2633:38:284;4358:252:416;3224:274:284;;;;;;:::i;:::-;;:::i;5326:569::-;5707:16;;;;;;;;;;5725:19;;;;;;5672:103;;;2463:95;5672:103;;;5399:25:416;;;;5440:18;;5433:34;;;;5483:18;;;5476:34;5526:18;;;5519:34;;;5602:42;5590:55;;5569:19;;;5562:84;5600:7:284;;;;5371:19:416;;5672:103:284;;;;;;;;;;;;5649:136;;;;;;5623:162;;5802:86;5824:15;5841:46;5870:16;5841:46;;;;;;;;;;:::i;:::-;8677:57:68;;7736:66:416;8677:57:68;;;7724:79:416;7819:11;;;7812:27;;;7855:12;;;7848:28;;;8641:7:68;;7892:12:416;;8677:57:68;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;5802:86:284;5795:93;5326:569;-1:-1:-1;;;;;;;5326:569:284:o;2763:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4422:340::-;4521:7;4547:208;4586:16;4622:4;4547:208;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4647:15:284;;;:32;;;;;;;;:15;;;;;-1:-1:-1;4647:30:284;;-1:-1:-1;4647:32:284;;;;;-1:-1:-1;4647:32:284;;;;;;:15;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4729:15;;4694:13;;4729:15;;4547:25;:208::i;:::-;4540:215;4422:340;-1:-1:-1;;4422:340:284:o;3712:119::-;3807:12;:14;;3752:7;;;3807:14;;;:::i;:::-;;;;;3796:26;;;;;;2607:25:416;;2595:2;2580:18;;2461:177;3796:26:284;;;;;;;;;;;;;3786:37;;;;;;3771:53;;3712:119;:::o;4040:193::-;-1:-1:-1;;;;;;;;;;;;;;;;;4170:56:284;;;;;;;;4202:7;4170:56;;;;;;4211:14;:12;:14::i;:::-;4170:56;;4163:63;4040:193;-1:-1:-1;;4040:193:284:o;3224:274::-;3442:23;;3467:22;;;;;3404:86;;3364:7;;3404:86;;2240:58;;3442:23;;3404:86;7295:25:416;;;7368:42;7356:55;;;;7351:2;7336:18;;7329:83;7443:2;7428:18;;7421:34;7283:2;7268:18;;7093:368;3404:86:284;;;;;;;;;;;;;3394:97;;;;;;3387:104;;3224:274;;;:::o;14:163:416:-;82:5;127:2;118:6;113:3;109:16;105:25;102:45;;;143:1;140;133:12;102:45;-1:-1:-1;165:6:416;14:163;-1:-1:-1;14:163:416:o;182:184::-;234:77;231:1;224:88;331:4;328:1;321:15;355:4;352:1;345:15;371:334;442:2;436:9;498:2;488:13;;503:66;484:86;472:99;;601:18;586:34;;622:22;;;583:62;580:88;;;648:18;;:::i;:::-;684:2;677:22;371:334;;-1:-1:-1;371:334:416:o;710:245::-;758:4;791:18;783:6;780:30;777:56;;;813:18;;:::i;:::-;-1:-1:-1;870:2:416;858:15;875:66;854:88;944:4;850:99;;710:245::o;960:462::-;1002:5;1055:3;1048:4;1040:6;1036:17;1032:27;1022:55;;1073:1;1070;1063:12;1022:55;1109:6;1096:20;1140:48;1156:31;1184:2;1156:31;:::i;:::-;1140:48;:::i;:::-;1213:2;1204:7;1197:19;1259:3;1252:4;1247:2;1239:6;1235:15;1231:26;1228:35;1225:55;;;1276:1;1273;1266:12;1225:55;1341:2;1334:4;1326:6;1322:17;1315:4;1306:7;1302:18;1289:55;1389:1;1364:16;;;1382:4;1360:27;1353:38;;;;1368:7;960:462;-1:-1:-1;;;960:462:416:o;1427:196::-;1495:20;;1555:42;1544:54;;1534:65;;1524:93;;1613:1;1610;1603:12;1524:93;1427:196;;;:::o;1628:828::-;1778:6;1786;1794;1802;1810;1863:3;1851:9;1842:7;1838:23;1834:33;1831:53;;;1880:1;1877;1870:12;1831:53;1903:62;1957:7;1946:9;1903:62;:::i;:::-;1893:72;;2016:2;2005:9;2001:18;1988:32;2039:18;2080:2;2072:6;2069:14;2066:34;;;2096:1;2093;2086:12;2066:34;2119:49;2160:7;2151:6;2140:9;2136:22;2119:49;:::i;:::-;2109:59;;2221:2;2210:9;2206:18;2193:32;2177:48;;2250:2;2240:8;2237:16;2234:36;;;2266:1;2263;2256:12;2234:36;;2289:51;2332:7;2321:8;2310:9;2306:24;2289:51;:::i;:::-;2279:61;;;2387:3;2376:9;2372:19;2359:33;2349:43;;2411:39;2445:3;2434:9;2430:19;2411:39;:::i;:::-;2401:49;;1628:828;;;;;;;;:::o;2643:258::-;2715:1;2725:113;2739:6;2736:1;2733:13;2725:113;;;2815:11;;;2809:18;2796:11;;;2789:39;2761:2;2754:10;2725:113;;;2856:6;2853:1;2850:13;2847:48;;;2891:1;2882:6;2877:3;2873:16;2866:27;2847:48;;2643:258;;;:::o;2906:442::-;3055:2;3044:9;3037:21;3018:4;3087:6;3081:13;3130:6;3125:2;3114:9;3110:18;3103:34;3146:66;3205:6;3200:2;3189:9;3185:18;3180:2;3172:6;3168:15;3146:66;:::i;:::-;3264:2;3252:15;3269:66;3248:88;3233:104;;;;3339:2;3229:113;;2906:442;-1:-1:-1;;2906:442:416:o;3353:256::-;3449:6;3502:2;3490:9;3481:7;3477:23;3473:32;3470:52;;;3518:1;3515;3508:12;3470:52;3541:62;3595:7;3584:9;3541:62;:::i;:::-;3531:72;3353:256;-1:-1:-1;;;3353:256:416:o;3614:186::-;3673:6;3726:2;3714:9;3705:7;3701:23;3697:32;3694:52;;;3742:1;3739;3732:12;3694:52;3765:29;3784:9;3765:29;:::i;4615:520::-;4709:6;4762:2;4750:9;4741:7;4737:23;4733:32;4730:52;;;4778:1;4775;4768:12;4730:52;4811:2;4805:9;4853:2;4845:6;4841:15;4922:6;4910:10;4907:22;4886:18;4874:10;4871:34;4868:62;4865:88;;;4933:18;;:::i;:::-;4969:2;4962:22;5008:29;5027:9;5008:29;:::i;:::-;5000:6;4993:45;5099:2;5088:9;5084:18;5071:32;5066:2;5058:6;5054:15;5047:57;5123:6;5113:16;;;4615:520;;;;:::o;5657:437::-;5736:1;5732:12;;;;5779;;;5800:61;;5854:4;5846:6;5842:17;5832:27;;5800:61;5907:2;5899:6;5896:14;5876:18;5873:38;5870:218;;5944:77;5941:1;5934:88;6045:4;6042:1;6035:15;6073:4;6070:1;6063:15;6099:635;6179:6;6232:2;6220:9;6211:7;6207:23;6203:32;6200:52;;;6248:1;6245;6238:12;6200:52;6281:9;6275:16;6314:18;6306:6;6303:30;6300:50;;;6346:1;6343;6336:12;6300:50;6369:22;;6422:4;6414:13;;6410:27;-1:-1:-1;6400:55:416;;6451:1;6448;6441:12;6400:55;6480:2;6474:9;6505:48;6521:31;6549:2;6521:31;:::i;6505:48::-;6576:2;6569:5;6562:17;6616:7;6611:2;6606;6602;6598:11;6594:20;6591:33;6588:53;;;6637:1;6634;6627:12;6588:53;6650:54;6701:2;6696;6689:5;6685:14;6680:2;6676;6672:11;6650:54;:::i;:::-;6723:5;6099:635;-1:-1:-1;;;;;6099:635:416:o;6739:349::-;6778:3;6809:66;6802:5;6799:77;6796:257;;6909:77;6906:1;6899:88;7010:4;7007:1;7000:15;7038:4;7035:1;7028:15;6796:257;-1:-1:-1;7080:1:416;7069:13;;6739:349::o","linkReferences":{}},"methodIdentifiers":{"CLAIMABLE_INVITE_TYPEHASH()":"c4fc453d","EIP712_DOMAIN_TYPEHASH()":"c7977be7","consumeNonce()":"34b15118","currentNonce()":"adb610a3","getClaimableInviteStructHash((address,bytes32))":"eb1df626","getClaimableInviteWithNewNonce(address)":"8ebe24e5","getDigest((address,bytes32))":"1c6e7f25","getDigestWithEIP712Domain((address,bytes32),bytes,bytes,uint256,address)":"019a4f49","name()":"06fdde03","optimistInviter()":"d1829907"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract OptimistInviter\",\"name\":\"_optimistInviter\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CLAIMABLE_INVITE_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EIP712_DOMAIN_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\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct OptimistInviter.ClaimableInvite\",\"name\":\"_claimableInvite\",\"type\":\"tuple\"}],\"name\":\"getClaimableInviteStructHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"getClaimableInviteWithNewNonce\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct OptimistInviter.ClaimableInvite\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct OptimistInviter.ClaimableInvite\",\"name\":\"_claimableInvite\",\"type\":\"tuple\"}],\"name\":\"getDigest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct OptimistInviter.ClaimableInvite\",\"name\":\"_claimableInvite\",\"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\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"optimistInviter\",\"outputs\":[{\"internalType\":\"contract OptimistInviter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"consumeNonce()\":{\"returns\":{\"_0\":\"Nonce that should be used as part of ClaimableInvite.\"}},\"getClaimableInviteStructHash((address,bytes32))\":{\"params\":{\"_claimableInvite\":\"ClaimableInvite struct to hash.\"},\"returns\":{\"_0\":\"EIP-712 typed struct hash.\"}},\"getClaimableInviteWithNewNonce(address)\":{\"params\":{\"_issuer\":\"Issuer to include in the ClaimableInvite.\"},\"returns\":{\"_0\":\"ClaimableInvite that can be hashed & signed.\"}},\"getDigest((address,bytes32))\":{\"params\":{\"_claimableInvite\":\"ClaimableInvite struct to hash.\"},\"returns\":{\"_0\":\"EIP-712 compatible digest.\"}},\"getDigestWithEIP712Domain((address,bytes32),bytes,bytes,uint256,address)\":{\"params\":{\"_chainid\":\"Chain ID to use in the EIP712 domain.\",\"_claimableInvite\":\"ClaimableInvite struct to hash.\",\"_name\":\"Contract name to use in the EIP712 domain.\",\"_verifyingContract\":\"Address to use in the EIP712 domain.\",\"_version\":\"Contract version to use in the EIP712 domain.\"},\"returns\":{\"_0\":\"EIP-712 compatible digest.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"CLAIMABLE_INVITE_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the ClaimableInvite type.\"},\"EIP712_DOMAIN_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the EIP712Domain type that is included as part of the signature.\"},\"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 invite.\"},\"getClaimableInviteStructHash((address,bytes32))\":{\"notice\":\"Returns the hash of the struct ClaimableInvite.\"},\"getClaimableInviteWithNewNonce(address)\":{\"notice\":\"Returns a ClaimableInvite with the issuer and current nonce.\"},\"getDigest((address,bytes32))\":{\"notice\":\"Computes the EIP712 digest with default correct parameters.\"},\"getDigestWithEIP712Domain((address,bytes32),bytes,bytes,uint256,address)\":{\"notice\":\"Computes the EIP712 digest with the given domain parameters.         Used for testing that different domain parameters fail.\"},\"name()\":{\"notice\":\"OptimistInviter contract name. Used to construct the EIP-712 domain.\"},\"optimistInviter()\":{\"notice\":\"Address of OptimistInviter contract we are testing.\"}},\"notice\":\"Simple helper contract that helps with testing flow and signature for         OptimistInviter contract. Made this a separate contract instead of including         in OptimistInviter.t.sol for reusability.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Helpers.sol\":\"OptimistInviterHelper\"},\"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":[{"internalType":"contract OptimistInviter","name":"_optimistInviter","type":"address"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"CLAIMABLE_INVITE_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EIP712_DOMAIN_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 OptimistInviter.ClaimableInvite","name":"_claimableInvite","type":"tuple","components":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]}],"stateMutability":"pure","type":"function","name":"getClaimableInviteStructHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_issuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getClaimableInviteWithNewNonce","outputs":[{"internalType":"struct OptimistInviter.ClaimableInvite","name":"","type":"tuple","components":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]}]},{"inputs":[{"internalType":"struct OptimistInviter.ClaimableInvite","name":"_claimableInvite","type":"tuple","components":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]}],"stateMutability":"view","type":"function","name":"getDigest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct OptimistInviter.ClaimableInvite","name":"_claimableInvite","type":"tuple","components":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"bytes32","name":"nonce","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":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"optimistInviter","outputs":[{"internalType":"contract OptimistInviter","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of ClaimableInvite."}},"getClaimableInviteStructHash((address,bytes32))":{"params":{"_claimableInvite":"ClaimableInvite struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}},"getClaimableInviteWithNewNonce(address)":{"params":{"_issuer":"Issuer to include in the ClaimableInvite."},"returns":{"_0":"ClaimableInvite that can be hashed & signed."}},"getDigest((address,bytes32))":{"params":{"_claimableInvite":"ClaimableInvite struct to hash."},"returns":{"_0":"EIP-712 compatible digest."}},"getDigestWithEIP712Domain((address,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_claimableInvite":"ClaimableInvite struct to hash.","_name":"Contract name to use in the EIP712 domain.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}}},"version":1},"userdoc":{"kind":"user","methods":{"CLAIMABLE_INVITE_TYPEHASH()":{"notice":"EIP712 typehash for the ClaimableInvite type."},"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"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 invite."},"getClaimableInviteStructHash((address,bytes32))":{"notice":"Returns the hash of the struct ClaimableInvite."},"getClaimableInviteWithNewNonce(address)":{"notice":"Returns a ClaimableInvite with the issuer and current nonce."},"getDigest((address,bytes32))":{"notice":"Computes the EIP712 digest with default correct parameters."},"getDigestWithEIP712Domain((address,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters.         Used for testing that different domain parameters fail."},"name()":{"notice":"OptimistInviter contract name. Used to construct the EIP-712 domain."},"optimistInviter()":{"notice":"Address of OptimistInviter contract we are testing."}},"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":"OptimistInviterHelper"},"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":125945,"contract":"test/Helpers.sol:OptimistInviterHelper","label":"optimistInviter","offset":0,"slot":"0","type":"t_contract(OptimistInviter)119183"},{"astId":125948,"contract":"test/Helpers.sol:OptimistInviterHelper","label":"name","offset":0,"slot":"1","type":"t_string_storage"},{"astId":125951,"contract":"test/Helpers.sol:OptimistInviterHelper","label":"currentNonce","offset":0,"slot":"2","type":"t_uint256"}],"types":{"t_contract(OptimistInviter)119183":{"encoding":"inplace","label":"contract OptimistInviter","numberOfBytes":"20"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"CLAIMABLE_INVITE_TYPEHASH()":{"notice":"EIP712 typehash for the ClaimableInvite type."},"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"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 invite."},"getClaimableInviteStructHash((address,bytes32))":{"notice":"Returns the hash of the struct ClaimableInvite."},"getClaimableInviteWithNewNonce(address)":{"notice":"Returns a ClaimableInvite with the issuer and current nonce."},"getDigest((address,bytes32))":{"notice":"Computes the EIP712 digest with default correct parameters."},"getDigestWithEIP712Domain((address,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters.         Used for testing that different domain parameters fail."},"name()":{"notice":"OptimistInviter contract name. Used to construct the EIP-712 domain."},"optimistInviter()":{"notice":"Address of OptimistInviter contract we are testing."}},"notice":"Simple helper contract that helps with testing flow and signature for         OptimistInviter contract. Made this a separate contract instead of including         in OptimistInviter.t.sol for reusability."},"devdoc":{"version":1,"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of ClaimableInvite."}},"getClaimableInviteStructHash((address,bytes32))":{"params":{"_claimableInvite":"ClaimableInvite struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}},"getClaimableInviteWithNewNonce(address)":{"params":{"_issuer":"Issuer to include in the ClaimableInvite."},"returns":{"_0":"ClaimableInvite that can be hashed & signed."}},"getDigest((address,bytes32))":{"params":{"_claimableInvite":"ClaimableInvite struct to hash."},"returns":{"_0":"EIP-712 compatible digest."}},"getDigestWithEIP712Domain((address,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_claimableInvite":"ClaimableInvite struct to hash.","_name":"Contract name to use in the EIP712 domain.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}}}},"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}