@tokamak-network/thanos-contracts
Version:
1 lines • 477 kB
JSON
{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506109ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146100ed578063a457c2d714610123578063a9059cbb14610136578063dd62ed3e1461014957600080fd5b8063095ea7b31461008d57806318160ddd146100b557806323b872dd146100c757806339509351146100da575b600080fd5b6100a061009b3660046107a7565b61018f565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100ac565b6100a06100d53660046107d1565b6101a5565b6100a06100e83660046107a7565b61021b565b6100b96100fb36600461080d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100a06101313660046107a7565b61025e565b6100a06101443660046107a7565b6102ba565b6100b9610157366004610828565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600061019c3384846102c7565b50600192915050565b60006101b2848484610480565b610211843361020c856040518060600160405280602881526020016109536028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020908152604080832033845290915290205491906106aa565b6102c7565b5060019392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161019c91859061020c90866106fe565b600061019c338461020c8560405180606001604052806025815260200161097b6025913933600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906106aa565b600061019c338484610480565b73ffffffffffffffffffffffffffffffffffffffff831661036e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610365565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610365565b73ffffffffffffffffffffffffffffffffffffffff82166105c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610365565b6106108160405180606001604052806026815260200161092d6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906106aa565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461064c90826106fe565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610473565b600081848411156106e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610365919061085b565b5060006106f584866108fd565b95945050505050565b60008061070b8385610914565b905083811015610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610365565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107a257600080fd5b919050565b600080604083850312156107ba57600080fd5b6107c38361077e565b946020939093013593505050565b6000806000606084860312156107e657600080fd5b6107ef8461077e565b92506107fd6020850161077e565b9150604084013590509250925092565b60006020828403121561081f57600080fd5b6107778261077e565b6000806040838503121561083b57600080fd5b6108448361077e565b91506108526020840161077e565b90509250929050565b600060208083528351808285015260005b818110156108885785810183015185820160400152820161086c565b8181111561089a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561090f5761090f6108ce565b500390565b60008219821115610927576109276108ce565b50019056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300080f000a","sourceMap":"12991:7005:144:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146100ed578063a457c2d714610123578063a9059cbb14610136578063dd62ed3e1461014957600080fd5b8063095ea7b31461008d57806318160ddd146100b557806323b872dd146100c757806339509351146100da575b600080fd5b6100a061009b3660046107a7565b61018f565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100ac565b6100a06100d53660046107d1565b6101a5565b6100a06100e83660046107a7565b61021b565b6100b96100fb36600461080d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100a06101313660046107a7565b61025e565b6100a06101443660046107a7565b6102ba565b6100b9610157366004610828565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600061019c3384846102c7565b50600192915050565b60006101b2848484610480565b610211843361020c856040518060600160405280602881526020016109536028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020908152604080832033845290915290205491906106aa565b6102c7565b5060019392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161019c91859061020c90866106fe565b600061019c338461020c8560405180606001604052806025815260200161097b6025913933600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906106aa565b600061019c338484610480565b73ffffffffffffffffffffffffffffffffffffffff831661036e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610365565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610365565b73ffffffffffffffffffffffffffffffffffffffff82166105c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610365565b6106108160405180606001604052806026815260200161092d6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906106aa565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461064c90826106fe565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610473565b600081848411156106e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610365919061085b565b5060006106f584866108fd565b95945050505050565b60008061070b8385610914565b905083811015610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610365565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107a257600080fd5b919050565b600080604083850312156107ba57600080fd5b6107c38361077e565b946020939093013593505050565b6000806000606084860312156107e657600080fd5b6107ef8461077e565b92506107fd6020850161077e565b9150604084013590509250925092565b60006020828403121561081f57600080fd5b6107778261077e565b6000806040838503121561083b57600080fd5b6108448361077e565b91506108526020840161077e565b90509250929050565b600060208083528351808285015260005b818110156108885785810183015185820160400152820161086c565b8181111561089a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561090f5761090f6108ce565b500390565b60008219821115610927576109276108ce565b50019056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300080f000a","sourceMap":"12991:7005:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14220:149;;;;;;:::i;:::-;;:::i;:::-;;;639:14:416;;632:22;614:41;;602:2;587:18;14220:149:144;;;;;;;;13279:89;13349:12;;13279:89;;;812:25:416;;;800:2;785:18;13279:89:144;666:177:416;14827:354:144;;;;;;:::i;:::-;;:::i;15576:215::-;;;;;;:::i;:::-;;:::i;13426:108::-;;;;;;:::i;:::-;13509:18;;13483:7;13509:18;;;;;;;;;;;;13426:108;16278:304;;;;;;:::i;:::-;;:::i;13737:155::-;;;;;;:::i;:::-;;:::i;13950:132::-;;;;;;:::i;:::-;14048:18;;;;14022:7;14048:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13950:132;14220:149;14286:4;14302:39;984:10;14325:7;14334:6;14302:8;:39::i;:::-;-1:-1:-1;14358:4:144;14220:149;;;;:::o;14827:354::-;14924:4;14940:36;14950:6;14958:9;14969:6;14940:9;:36::i;:::-;14986:167;15008:6;984:10;15054:89;15092:6;15054:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;;;984:10;15054:33;;;;;;;;;;:37;:89::i;:::-;14986:8;:167::i;:::-;-1:-1:-1;15170:4:144;14827:354;;;;;:::o;15576:215::-;984:10;15664:4;15712:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;15664:4;;15680:83;;15703:7;;15712:50;;15751:10;15712:38;:50::i;16278:304::-;16363:4;16379:175;984:10;16427:7;16448:96;16487:15;16448:96;;;;;;;;;;;;;;;;;984:10;16448:25;;;;:11;:25;;;;;;;;;:34;;;;;;;;;;;;:38;:96::i;13737:155::-;13806:4;13822:42;984:10;13846:9;13857:6;13822:9;:42::i;19209:332::-;19302:19;;;19294:68;;;;;;;1839:2:416;19294:68:144;;;1821:21:416;1878:2;1858:18;;;1851:30;1917:34;1897:18;;;1890:62;1988:6;1968:18;;;1961:34;2012:19;;19294:68:144;;;;;;;;;19380:21;;;19372:68;;;;;;;2244:2:416;19372:68:144;;;2226:21:416;2283:2;2263:18;;;2256:30;2322:34;2302:18;;;2295:62;2393:4;2373:18;;;2366:32;2415:19;;19372:68:144;2042:398:416;19372:68:144;19451:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19502:32;;812:25:416;;;19502:32:144;;785:18:416;19502:32:144;;;;;;;;19209:332;;;:::o;17056:472::-;17161:20;;;17153:70;;;;;;;2647:2:416;17153:70:144;;;2629:21:416;2686:2;2666:18;;;2659:30;2725:34;2705:18;;;2698:62;2796:7;2776:18;;;2769:35;2821:19;;17153:70:144;2445:401:416;17153:70:144;17241:23;;;17233:71;;;;;;;3053:2:416;17233:71:144;;;3035:21:416;3092:2;3072:18;;;3065:30;3131:34;3111:18;;;3104:62;3202:5;3182:18;;;3175:33;3225:19;;17233:71:144;2851:399:416;17233:71:144;17335;17357:6;17335:71;;;;;;;;;;;;;;;;;:17;;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;17315:17;;;;:9;:17;;;;;;;;;;;:91;;;;17439:20;;;;;;;:32;;17464:6;17439:24;:32::i;:::-;17416:20;;;;:9;:20;;;;;;;;;;;;:55;;;;17486:35;812:25:416;;;17416:20:144;;17486:35;;;;;;785:18:416;17486:35:144;666:177:416;8207:187:144;8293:7;8328:12;8320:6;;;;8312:29;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8351:9:144;8363:5;8367:1;8363;:5;:::i;:::-;8351:17;8207:187;-1:-1:-1;;;;;8207:187:144:o;7309:176::-;7367:7;;7398:5;7402:1;7398;:5;:::i;:::-;7386:17;;7426:1;7421;:6;;7413:46;;;;;;;4570:2:416;7413:46:144;;;4552:21:416;4609:2;4589:18;;;4582:30;4648:29;4628:18;;;4621:57;4695:18;;7413:46:144;4368:351:416;7413:46:144;7477:1;7309:176;-1:-1:-1;;;7309:176:144: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:254::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;459:2;444:18;;;;431:32;;-1:-1:-1;;;215:254:416:o;848:328::-;925:6;933;941;994:2;982:9;973:7;969:23;965:32;962:52;;;1010:1;1007;1000:12;962:52;1033:29;1052:9;1033:29;:::i;:::-;1023:39;;1081:38;1115:2;1104:9;1100:18;1081:38;:::i;:::-;1071:48;;1166:2;1155:9;1151:18;1138:32;1128:42;;848:328;;;;;:::o;1181:186::-;1240:6;1293:2;1281:9;1272:7;1268:23;1264:32;1261:52;;;1309:1;1306;1299:12;1261:52;1332:29;1351:9;1332:29;:::i;1372:260::-;1440:6;1448;1501:2;1489:9;1480:7;1476:23;1472:32;1469:52;;;1517:1;1514;1507:12;1469:52;1540:29;1559:9;1540:29;:::i;:::-;1530:39;;1588:38;1622:2;1611:9;1607:18;1588:38;:::i;:::-;1578:48;;1372:260;;;;;:::o;3255:656::-;3367:4;3396:2;3425;3414:9;3407:21;3457:6;3451:13;3500:6;3495:2;3484:9;3480:18;3473:34;3525:1;3535:140;3549:6;3546:1;3543:13;3535:140;;;3644:14;;;3640:23;;3634:30;3610:17;;;3629:2;3606:26;3599:66;3564:10;;3535:140;;;3693:6;3690:1;3687:13;3684:91;;;3763:1;3758:2;3749:6;3738:9;3734:22;3730:31;3723:42;3684:91;-1:-1:-1;3827:2:416;3815:15;3832:66;3811:88;3796:104;;;;3902:2;3792:113;;3255:656;-1:-1:-1;;;3255:656:416:o;3916:184::-;3968:77;3965:1;3958:88;4065:4;4062:1;4055:15;4089:4;4086:1;4079:15;4105:125;4145:4;4173:1;4170;4167:8;4164:34;;;4178:18;;:::i;:::-;-1:-1:-1;4215:9:416;;4105:125::o;4235:128::-;4275:3;4306:1;4302:6;4299:1;4296:13;4293:39;;;4312:18;;:::i;:::-;-1:-1:-1;4348:9:416;;4235:128::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/L2NativeToken.sol\":\"ERC20\"},\"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/L1/L2NativeToken.sol\":{\"keccak256\":\"0x2b590fcd928d3490d29df584242a28990f8ebbbe375b37f7fe430a7b72924f0e\",\"urls\":[\"bzz-raw://9937058f528d8bdcbdee8e0fcc23f6b7a05aca4703937779bd57cc033961caac\",\"dweb:/ipfs/Qmf74TwEkHpA8D6onjwiRfNpnL8wVeLKJfssa7yJ1fUJQa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"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/L1/L2NativeToken.sol":"ERC20"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/L1/L2NativeToken.sol":{"keccak256":"0x2b590fcd928d3490d29df584242a28990f8ebbbe375b37f7fe430a7b72924f0e","urls":["bzz-raw://9937058f528d8bdcbdee8e0fcc23f6b7a05aca4703937779bd57cc033961caac","dweb:/ipfs/Qmf74TwEkHpA8D6onjwiRfNpnL8wVeLKJfssa7yJ1fUJQa"],"license":null}},"version":1},"storageLayout":{"storage":[{"astId":89763,"contract":"src/L1/L2NativeToken.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":89769,"contract":"src/L1/L2NativeToken.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":89771,"contract":"src/L1/L2NativeToken.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."}}},"ast":{"absolutePath":"src/L1/L2NativeToken.sol","id":91279,"exportedSymbols":{"AuthController":[91042],"Context":[89354],"ERC165":[90844],"ERC165Checker":[90619],"ERC20":[90173],"ERC20Detailed":[90451],"ERC20Mintable":[90391],"ERC20OnApprove":[90963],"IERC165":[90791],"IERC20":[89557],"L2NativeToken":[91278],"MinterRole":[90365],"MinterRoleRenounceTarget":[90967],"OnApprove":[90872],"Ownable":[89481],"OwnableTarget":[90980],"PauserRoleRenounceTarget":[90971],"Roles":[90260],"SafeMath":[89751],"SeigManagerI":[90781],"SeigToken":[91237]},"nodeType":"SourceUnit","src":"127:37495:144","nodes":[{"id":89326,"nodeType":"PragmaDirective","src":"127:23:144","nodes":[],"literals":["solidity","0.8",".15"]},{"id":89354,"nodeType":"ContractDefinition","src":"652:595:144","nodes":[{"id":89330,"nodeType":"FunctionDefinition","src":"829:17:144","nodes":[],"body":{"id":89329,"nodeType":"Block","src":"843:3:144","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":89327,"nodeType":"ParameterList","parameters":[],"src":"840:2:144"},"returnParameters":{"id":89328,"nodeType":"ParameterList","parameters":[],"src":"843:0:144"},"scope":89354,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89342,"nodeType":"FunctionDefinition","src":"905:97:144","nodes":[],"body":{"id":89341,"nodeType":"Block","src":"959:43:144","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":89337,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"984:3:144","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":89338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"984:10:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"976:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":89335,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:144","typeDescriptions":{}}},"id":89339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"976:19:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":89334,"id":89340,"nodeType":"Return","src":"969:26:144"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"914:10:144","parameters":{"id":89331,"nodeType":"ParameterList","parameters":[],"src":"924:2:144"},"returnParameters":{"id":89334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89342,"src":"950:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89332,"name":"address","nodeType":"ElementaryTypeName","src":"950:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"949:9:144"},"scope":89354,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":89353,"nodeType":"FunctionDefinition","src":"1008:237:144","nodes":[],"body":{"id":89352,"nodeType":"Block","src":"1065:180:144","nodes":[],"statements":[{"expression":{"id":89347,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1075:4:144","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$89354","typeString":"contract Context"}},"id":89348,"nodeType":"ExpressionStatement","src":"1075:4:144"},{"expression":{"expression":{"id":89349,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1230:3:144","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":89350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"1230:8:144","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":89346,"id":89351,"nodeType":"Return","src":"1223:15:144"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"1017:8:144","parameters":{"id":89343,"nodeType":"ParameterList","parameters":[],"src":"1025:2:144"},"returnParameters":{"id":89346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89353,"src":"1051:12:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":89344,"name":"bytes","nodeType":"ElementaryTypeName","src":"1051:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1050:14:144"},"scope":89354,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[89354],"name":"Context","nameLocation":"661:7:144","scope":91279,"usedErrors":[]},{"id":89481,"nodeType":"ContractDefinition","src":"1674:1980:144","nodes":[{"id":89359,"nodeType":"VariableDeclaration","src":"1708:22:144","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"1724:6:144","scope":89481,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89358,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":89365,"nodeType":"EventDefinition","src":"1737:84:144","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"1743:20:144","parameters":{"id":89364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89361,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1780:13:144","nodeType":"VariableDeclaration","scope":89365,"src":"1764:29:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89360,"name":"address","nodeType":"ElementaryTypeName","src":"1764:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":89363,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1811:8:144","nodeType":"VariableDeclaration","scope":89365,"src":"1795:24:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89362,"name":"address","nodeType":"ElementaryTypeName","src":"1795:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1763:57:144"}},{"id":89387,"nodeType":"FunctionDefinition","src":"1923:149:144","nodes":[],"body":{"id":89386,"nodeType":"Block","src":"1937:135:144","nodes":[],"statements":[{"assignments":[89370],"declarations":[{"constant":false,"id":89370,"mutability":"mutable","name":"msgSender","nameLocation":"1955:9:144","nodeType":"VariableDeclaration","scope":89386,"src":"1947:17:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89369,"name":"address","nodeType":"ElementaryTypeName","src":"1947:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":89373,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":89371,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89342,"src":"1967:10:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":89372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1967:12:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1947:32:144"},{"expression":{"id":89376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89374,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89359,"src":"1989:6:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":89375,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89370,"src":"1998:9:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1989:18:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":89377,"nodeType":"ExpressionStatement","src":"1989:18:144"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":89381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2051:1:144","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":89380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2043:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":89379,"name":"address","nodeType":"ElementaryTypeName","src":"2043:7:144","typeDescriptions":{}}},"id":89382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2043:10:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":89383,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89370,"src":"2055:9:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":89378,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89365,"src":"2022:20:144","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":89384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2022:43:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89385,"nodeType":"EmitStatement","src":"2017:48:144"}]},"documentation":{"id":89366,"nodeType":"StructuredDocumentation","src":"1827:91:144","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":89367,"nodeType":"ParameterList","parameters":[],"src":"1934:2:144"},"returnParameters":{"id":89368,"nodeType":"ParameterList","parameters":[],"src":"1937:0:144"},"scope":89481,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89396,"nodeType":"FunctionDefinition","src":"2148:77:144","nodes":[],"body":{"id":89395,"nodeType":"Block","src":"2195:30:144","nodes":[],"statements":[{"expression":{"id":89393,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89359,"src":"2212:6:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":89392,"id":89394,"nodeType":"Return","src":"2205:13:144"}]},"documentation":{"id":89388,"nodeType":"StructuredDocumentation","src":"2078:65:144","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"2157:5:144","parameters":{"id":89389,"nodeType":"ParameterList","parameters":[],"src":"2162:2:144"},"returnParameters":{"id":89392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89396,"src":"2186:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89390,"name":"address","nodeType":"ElementaryTypeName","src":"2186:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2185:9:144"},"scope":89481,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89407,"nodeType":"ModifierDefinition","src":"2313:103:144","nodes":[],"body":{"id":89406,"nodeType":"Block","src":"2334:82:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":89400,"name":"isOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89419,"src":"2352:7:144","typeDescriptions":{"typeIdentifier":"t_function_