@tokamak-network/thanos-contracts
Version:
1 lines • 53.5 kB
JSON
{"abi":[{"type":"function","name":"attest","inputs":[{"name":"_attestations","type":"tuple[]","internalType":"struct AttestationStation.AttestationData[]","components":[{"name":"about","type":"address","internalType":"address"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"val","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"_about","type":"address","internalType":"address"},{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_val","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attestations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AttestationCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"about","type":"address","indexed":true,"internalType":"address"},{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107d9806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:246:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:246:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;720:85;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1246:40;;;;;;;;;;;;;;;;;;;;;1875:375;;;;;;:::i;:::-;;:::i;:::-;;1549:200;;;;;;:::i;:::-;;:::i;720:85::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1875:375::-;1969:13;1952:14;1999:245;2023:6;2019:1;:10;1999:245;;;2046:34;2083:13;;2097:1;2083:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2046:53;;;:::i;:::-;;;2114:59;2121:11;:17;;;2140:11;:15;;;2157:11;:15;;;2114:6;:59::i;:::-;-1:-1:-1;2216:3:246;;1999:245;;;;1942:308;1875:375;;:::o;1549:200::-;1644:10;1631:12;:24;;;;;;;;;;;;:32;;;;;;;;;:38;;;;;;;;:45;1672:4;1631:38;:45;:::i;:::-;;1731:4;1723:6;1692:50;;1711:10;1692:50;;;1737:4;1692:50;;;;;;:::i;:::-;;;;;;;;1549:200;;;:::o;14:196:416:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:328::-;292:6;300;308;361:2;349:9;340:7;336:23;332:32;329:52;;;377:1;374;367:12;329:52;400:29;419:9;400:29;:::i;:::-;390:39;;448:38;482:2;471:9;467:18;448:38;:::i;:::-;438:48;;533:2;522:9;518:18;505:32;495:42;;215:328;;;;;:::o;548:530::-;589:3;627:5;621:12;654:6;649:3;642:19;679:1;689:162;703:6;700:1;697:13;689:162;;;765:4;821:13;;;817:22;;811:29;793:11;;;789:20;;782:59;718:12;689:162;;;869:6;866:1;863:13;860:87;;;935:1;928:4;919:6;914:3;910:16;906:27;899:38;860:87;-1:-1:-1;992:2:416;980:15;997:66;976:88;967:98;;;;1067:4;963:109;;548:530;-1:-1:-1;;548:530:416:o;1083:217::-;1230:2;1219:9;1212:21;1193:4;1250:44;1290:2;1279:9;1275:18;1267:6;1250:44;:::i;:::-;1242:52;1083:217;-1:-1:-1;;;1083:217:416:o;1529:652::-;1652:6;1660;1713:2;1701:9;1692:7;1688:23;1684:32;1681:52;;;1729:1;1726;1719:12;1681:52;1769:9;1756:23;1798:18;1839:2;1831:6;1828:14;1825:34;;;1855:1;1852;1845:12;1825:34;1893:6;1882:9;1878:22;1868:32;;1938:7;1931:4;1927:2;1923:13;1919:27;1909:55;;1960:1;1957;1950:12;1909:55;2000:2;1987:16;2026:2;2018:6;2015:14;2012:34;;;2042:1;2039;2032:12;2012:34;2095:7;2090:2;2080:6;2077:1;2073:14;2069:2;2065:23;2061:32;2058:45;2055:65;;;2116:1;2113;2106:12;2055:65;2147:2;2139:11;;;;;2169:6;;-1:-1:-1;1529:652:416;;-1:-1:-1;;;;1529:652:416:o;2186:184::-;2238:77;2235:1;2228:88;2335:4;2332:1;2325:15;2359:4;2356:1;2349:15;2375:777;2417:5;2470:3;2463:4;2455:6;2451:17;2447:27;2437:55;;2488:1;2485;2478:12;2437:55;2524:6;2511:20;2550:18;2587:2;2583;2580:10;2577:36;;;2593:18;;:::i;:::-;2727:2;2721:9;2789:4;2781:13;;2632:66;2777:22;;;2801:2;2773:31;2769:40;2757:53;;;2825:18;;;2845:22;;;2822:46;2819:72;;;2871:18;;:::i;:::-;2911:10;2907:2;2900:22;2946:2;2938:6;2931:18;2992:3;2985:4;2980:2;2972:6;2968:15;2964:26;2961:35;2958:55;;;3009:1;3006;2999:12;2958:55;3073:2;3066:4;3058:6;3054:17;3047:4;3039:6;3035:17;3022:54;3120:1;3113:4;3108:2;3100:6;3096:15;3092:26;3085:37;3140:6;3131:15;;;;;;2375:777;;;;:::o;3157:462::-;3243:6;3251;3259;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;3351:29;3370:9;3351:29;:::i;:::-;3341:39;;3427:2;3416:9;3412:18;3399:32;3389:42;;3482:2;3471:9;3467:18;3454:32;3509:18;3501:6;3498:30;3495:50;;;3541:1;3538;3531:12;3495:50;3564:49;3605:7;3596:6;3585:9;3581:22;3564:49;:::i;:::-;3554:59;;;3157:462;;;;;:::o;3624:437::-;3703:1;3699:12;;;;3746;;;3767:61;;3821:4;3813:6;3809:17;3799:27;;3767:61;3874:2;3866:6;3863:14;3843:18;3840:38;3837:218;;3911:77;3908:1;3901:88;4012:4;4009:1;4002:15;4040:4;4037:1;4030:15;3837:218;;3624:437;;;:::o;4066:184::-;4118:77;4115:1;4108:88;4215:4;4212:1;4205:15;4239:4;4236:1;4229:15;4255:393;4358:4;4416:11;4403:25;4506:66;4495:8;4479:14;4475:29;4471:102;4451:18;4447:127;4437:155;;4588:1;4585;4578:12;4437:155;4609:33;;;;;4255:393;-1:-1:-1;;4255:393:416:o;4653:754::-;4775:9;4834:4;4826:5;4810:14;4806:26;4802:37;4799:57;;;4852:1;4849;4842:12;4799:57;4885:2;4879:9;4927:4;4919:6;4915:17;4951:18;5019:6;5007:10;5004:22;4999:2;4987:10;4984:18;4981:46;4978:72;;;5030:18;;:::i;:::-;5070:10;5066:2;5059:22;5105:25;5124:5;5105:25;:::i;:::-;5097:6;5090:41;5188:2;5181:5;5177:14;5164:28;5159:2;5151:6;5147:15;5140:53;5240:2;5233:5;5229:14;5216:28;5202:42;;5267:2;5259:6;5256:14;5253:34;;;5283:1;5280;5273:12;5253:34;;5320:52;5357:14;5348:6;5341:5;5337:18;5320:52;:::i;:::-;5315:2;5303:15;;5296:77;-1:-1:-1;5307:6:416;4653:754;-1:-1:-1;;4653:754:416:o;5537:544::-;5638:2;5633:3;5630:11;5627:448;;;5674:1;5699:5;5695:2;5688:17;5744:4;5740:2;5730:19;5814:2;5802:10;5798:19;5795:1;5791:27;5785:4;5781:38;5850:4;5838:10;5835:20;5832:47;;;-1:-1:-1;5873:4:416;5832:47;5928:2;5923:3;5919:12;5916:1;5912:20;5906:4;5902:31;5892:41;;5983:82;6001:2;5994:5;5991:13;5983:82;;;6046:17;;;6027:1;6016:13;5983:82;;;5987:3;;;5627:448;5537:544;;;:::o;6317:1467::-;6441:3;6435:10;6468:18;6460:6;6457:30;6454:56;;;6490:18;;:::i;:::-;6519:96;6608:6;6568:38;6600:4;6594:11;6568:38;:::i;:::-;6562:4;6519:96;:::i;:::-;6670:4;;6734:2;6723:14;;6751:1;6746:781;;;;7571:1;7588:6;7585:89;;;-1:-1:-1;7640:19:416;;;7634:26;7585:89;6223:66;6214:1;6210:11;;;6206:84;6202:89;6192:100;6298:1;6294:11;;;6189:117;7687:81;;6716:1062;;6746:781;5484:1;5477:14;;;5521:4;5508:18;;6794:66;6782:79;;;6958:236;6972:7;6969:1;6966:14;6958:236;;;7061:19;;;7055:26;7040:42;;7153:27;;;;7121:1;7109:14;;;;6988:19;;6958:236;;;6962:3;7222:6;7213:7;7210:19;7207:261;;;7283:19;;;7277:26;7384:66;7366:1;7362:14;;;7378:3;7358:24;7354:97;7350:102;7335:118;7320:134;;7207:261;-1:-1:-1;;;;;7514:1:416;7498:14;;;7494:22;7481:36;;-1:-1:-1;6317:1467:416:o","linkReferences":{}},"methodIdentifiers":{"attest((address,bytes32,bytes)[])":"5eb5ea10","attest(address,bytes32,bytes)":"702b9dee","attestations(address,address,bytes32)":"29b42cb5","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"AttestationCreated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationStation.AttestationData[]\",\"name\":\"_attestations\",\"type\":\"tuple[]\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_val\",\"type\":\"bytes\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"attestations\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Optimism CollectiveGitcoin\",\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"params\":{\"about\":\"Address attestation is about.\",\"creator\":\"Address that made the attestation.\",\"key\":\"Key of the attestation.\",\"val\":\"Value of the attestation.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"params\":{\"_attestations\":\"An array of AttestationData structs.\"}},\"attest(address,bytes32,bytes)\":{\"params\":{\"_about\":\"Address that the attestation is about.\",\"_key\":\"A key used to namespace the attestation.\",\"_val\":\"An arbitrary value stored as part of the attestation.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"AttestationStation\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"notice\":\"Emitted when Attestation is created.\"}},\"kind\":\"user\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"notice\":\"Allows anyone to create attestations.\"},\"attest(address,bytes32,bytes)\":{\"notice\":\"Allows anyone to create an attestation.\"},\"attestations(address,address,bytes32)\":{\"notice\":\"Maps addresses to attestations. Creator => About => Key => Value.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"Where attestations live.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/AttestationStation.sol\":\"AttestationStation\"},\"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\":{\"src/periphery/op-nft/AttestationStation.sol\":{\"keccak256\":\"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef\",\"dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"address","name":"about","type":"address","indexed":true},{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"AttestationCreated","anonymous":false},{"inputs":[{"internalType":"struct AttestationStation.AttestationData[]","name":"_attestations","type":"tuple[]","components":[{"internalType":"address","name":"about","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes","name":"val","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"_about","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes","name":"_val","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"attestations","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"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":{"src/periphery/op-nft/AttestationStation.sol":"AttestationStation"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/periphery/op-nft/AttestationStation.sol":{"keccak256":"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208","urls":["bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef","dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":118323,"contract":"src/periphery/op-nft/AttestationStation.sol:AttestationStation","label":"attestations","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(bytes32 => bytes)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))"},"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => bytes))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bytes_storage)"},"t_mapping(t_bytes32,t_bytes_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"}}},"userdoc":{"version":1,"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"notice":"Emitted when Attestation is created."}},"notice":"Where attestations live."},"devdoc":{"version":1,"kind":"dev","author":"Optimism CollectiveGitcoin","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"params":{"about":"Address attestation is about.","creator":"Address that made the attestation.","key":"Key of the attestation.","val":"Value of the attestation."}}},"title":"AttestationStation"},"ast":{"absolutePath":"src/periphery/op-nft/AttestationStation.sol","id":118413,"exportedSymbols":{"AttestationStation":[118412],"ISemver":[122319]},"nodeType":"SourceUnit","src":"32:2221:246","nodes":[{"id":118302,"nodeType":"PragmaDirective","src":"32:23:246","nodes":[],"literals":["solidity","0.8",".15"]},{"id":118304,"nodeType":"ImportDirective","src":"57:52:246","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":118413,"sourceUnit":122320,"symbolAliases":[{"foreign":{"id":118303,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122319,"src":"66:7:246","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":118412,"nodeType":"ContractDefinition","src":"230:2022:246","nodes":[{"id":118314,"nodeType":"StructDefinition","src":"539:93:246","nodes":[],"canonicalName":"AttestationStation.AttestationData","members":[{"constant":false,"id":118309,"mutability":"mutable","name":"about","nameLocation":"580:5:246","nodeType":"VariableDeclaration","scope":118314,"src":"572:13:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118308,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:246","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118311,"mutability":"mutable","name":"key","nameLocation":"603:3:246","nodeType":"VariableDeclaration","scope":118314,"src":"595:11:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":118310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"595:7:246","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":118313,"mutability":"mutable","name":"val","nameLocation":"622:3:246","nodeType":"VariableDeclaration","scope":118314,"src":"616:9:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":118312,"name":"bytes","nodeType":"ElementaryTypeName","src":"616:5:246","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"AttestationData","nameLocation":"546:15:246","scope":118412,"visibility":"public"},{"id":118323,"nodeType":"VariableDeclaration","src":"720:85:246","nodes":[],"constant":false,"documentation":{"id":118315,"nodeType":"StructuredDocumentation","src":"638:77:246","text":"@notice Maps addresses to attestations. Creator => About => Key => Value."},"functionSelector":"29b42cb5","mutability":"mutable","name":"attestations","nameLocation":"793:12:246","scope":118412,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes)))"},"typeName":{"id":118322,"keyType":{"id":118316,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:246","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"720:65:246","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes)))"},"valueType":{"id":118321,"keyType":{"id":118317,"name":"address","nodeType":"ElementaryTypeName","src":"747:7:246","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"739:45:246","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$","typeString":"mapping(address => mapping(bytes32 => bytes))"},"valueType":{"id":118320,"keyType":{"id":118318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"766:7:246","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"758:25:246","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes_storage_$","typeString":"mapping(bytes32 => bytes)"},"valueType":{"id":118319,"name":"bytes","nodeType":"ElementaryTypeName","src":"777:5:246","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}}},"visibility":"public"},{"id":118334,"nodeType":"EventDefinition","src":"1072:105:246","nodes":[],"anonymous":false,"documentation":{"id":118324,"nodeType":"StructuredDocumentation","src":"812:255:246","text":"@notice Emitted when Attestation is created.\n @param creator Address that made the attestation.\n @param about Address attestation is about.\n @param key Key of the attestation.\n @param val Value of the attestation."},"eventSelector":"28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d85","name":"AttestationCreated","nameLocation":"1078:18:246","parameters":{"id":118333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118326,"indexed":true,"mutability":"mutable","name":"creator","nameLocation":"1113:7:246","nodeType":"VariableDeclaration","scope":118334,"src":"1097:23:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118325,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:246","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118328,"indexed":true,"mutability":"mutable","name":"about","nameLocation":"1138:5:246","nodeType":"VariableDeclaration","scope":118334,"src":"1122:21:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118327,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:246","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118330,"indexed":true,"mutability":"mutable","name":"key","nameLocation":"1161:3:246","nodeType":"VariableDeclaration","scope":118334,"src":"1145:19:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":118329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1145:7:246","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":118332,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1172:3:246","nodeType":"VariableDeclaration","scope":118334,"src":"1166:9:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":118331,"name":"bytes","nodeType":"ElementaryTypeName","src":"1166:5:246","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1096:80:246"}},{"id":118338,"nodeType":"VariableDeclaration","src":"1246:40:246","nodes":[],"baseFunctions":[122318],"constant":true,"documentation":{"id":118335,"nodeType":"StructuredDocumentation","src":"1183:58:246","text":"@notice Semantic version.\n @custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1269:7:246","scope":118412,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118336,"name":"string","nodeType":"ElementaryTypeName","src":"1246:6:246","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":118337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1279:7:246","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":118368,"nodeType":"FunctionDefinition","src":"1549:200:246","nodes":[],"body":{"id":118367,"nodeType":"Block","src":"1621:128:246","nodes":[],"statements":[{"expression":{"id":118357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":118348,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118323,"src":"1631:12:246","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes storage ref)))"}},"id":118353,"indexExpression":{"expression":{"id":118349,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1644:3:246","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":118350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1644:10:246","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1631:24:246","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$","typeString":"mapping(address => mapping(bytes32 => bytes storage ref))"}},"id":118354,"indexExpression":{"id":118351,"name":"_about","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118341,"src":"1656:6:246","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1631:32:246","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes_storage_$","typeString":"mapping(bytes32 => bytes storage ref)"}},"id":118355,"indexExpression":{"id":118352,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118343,"src":"1664:4:246","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1631:38:246","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":118356,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118345,"src":"1672:4:246","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1631:45:246","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":118358,"nodeType":"ExpressionStatement","src":"1631:45:246"},{"eventCall":{"arguments":[{"expression":{"id":118360,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1711:3:246","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":118361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1711:10:246","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":118362,"name":"_about","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118341,"src":"1723:6:246","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":118363,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118343,"src":"1731:4:246","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":118364,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118345,"src":"1737:4:246","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":118359,"name":"AttestationCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118334,"src":"1692:18:246","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,bytes32,bytes memory)"}},"id":118365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1692:50:246","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118366,"nodeType":"EmitStatement","src":"1687:55:246"}]},"documentation":{"id":118339,"nodeType":"StructuredDocumentation","src":"1293:251:246","text":"@notice Allows anyone to create an attestation.\n @param _about Address that the attestation is about.\n @param _key A key used to namespace the attestation.\n @param _val An arbitrary value stored as part of the attestation."},"functionSelector":"702b9dee","implemented":true,"kind":"function","modifiers":[],"name":"attest","nameLocation":"1558:6:246","parameters":{"id":118346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118341,"mutability":"mutable","name":"_about","nameLocation":"1573:6:246","nodeType":"VariableDeclaration","scope":118368,"src":"1565:14:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118340,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:246","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118343,"mutability":"mutable","name":"_key","nameLocation":"1589:4:246","nodeType":"VariableDeclaration","scope":118368,"src":"1581:12:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":118342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1581:7:246","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":118345,"mutability":"mutable","name":"_val","nameLocation":"1608:4:246","nodeType":"VariableDeclaration","scope":118368,"src":"1595:17:246","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":118344,"name":"bytes","nodeType":"ElementaryTypeName","src":"1595:5:246","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1564:49:246"},"returnParameters":{"id":118347,"nodeType":"ParameterList","parameters":[],"src":"1621:0:246"},"scope":118412,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":118411,"nodeType":"FunctionDefinition","src":"1875:375:246","nodes":[],"body":{"id":118410,"nodeType":"Block","src":"1942:308:246","nodes":[],"statements":[{"assignments":[118377],"declarations":[{"constant":false,"id":118377,"mutability":"mutable","name":"length","nameLocation":"1960:6:246","nodeType":"VariableDeclaration","scope":118410,"src":"1952:14:246","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118376,"name":"uint256","nodeType":"ElementaryTypeName","src":"1952:7:246","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":118380,"initialValue":{"expression":{"id":118378,"name":"_attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118373,"src":"1969:13:246","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$118314_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata[] calldata"}},"id":118379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1969:20:246","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1952:37:246"},{"body":{"id":118408,"nodeType":"Block","src":"2032:212:246","statements":[{"assignments":[118390],"declarations":[{"constant":false,"id":118390,"mutability":"mutable","name":"attestation","nameLocation":"2069:11:246","nodeType":"VariableDeclaration","scope":118408,"src":"2046:34:246","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$118314_memory_ptr","typeString":"struct AttestationStation.AttestationData"},"typeName":{"id":118389,"nodeType":"UserDefinedTypeName","pathNode":{"id":118388,"name":"AttestationData","nodeType":"IdentifierPath","referencedDeclaration":118314,"src":"2046:15:246"},"referencedDeclaration":118314,"src":"2046:15:246","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$118314_storage_ptr","typeString":"struct AttestationStation.AttestationData"}},"visibility":"internal"}],"id":118394,"initialValue":{"baseExpression":{"id":118391,"name":"_attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118373,"src":"2083:13:246","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$118314_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata[] calldata"}},"id":118393,"indexExpression":{"id":118392,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118382,"src":"2097:1:246","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2083:16:246","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$118314_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata"}},"nodeType":"VariableDeclarationStatement","src":"2046:53:246"},{"expression":{"arguments":[{"expression":{"id":118396,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118390,"src":"2121:11:246","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$118314_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":118397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"about","nodeType":"MemberAccess","referencedDeclaration":118309,"src":"2121:17:246","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":118398,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118390,"src":"2140:11:246","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$118314_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":118399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"key","nodeType":"MemberAccess","referencedDeclaration":118311,"src":"2140:15:246","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":118400,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118390,"src":"2157:11:246","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$118314_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":118401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"val","nodeType":"MemberAccess","referencedDeclaration":118313,"src":"2157:15:246","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":118395,"name":"attest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118368,"src":"2114:6:246","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory)"}},"id":118402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2114:59:246","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118403,"nodeType":"ExpressionStatement","src":"2114:59:246"},{"id":118407,"nodeType":"UncheckedBlock","src":"2188:46:246","statements":[{"expression":{"id":118405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2216:3:246","subExpression":{"id":118404,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118382,"src":"2218:1:246","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":118406,"nodeType":"ExpressionStatement","src":"2216:3:246"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":118387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":118385,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118382,"src":"2019:1:246","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":118386,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referenc