{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_who","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"l1Token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"l2Bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"Burn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","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":"0x60e06040523480156200001157600080fd5b5073420000000000000000000000000000000000001060006040518060400160405280600581526020016422ba3432b960d91b8152506040518060400160405280600381526020016208aa8960eb1b81525060128282816003908162000078919062000152565b50600462000087828262000152565b5050506001600160a01b039384166080529390921660a052505060ff1660c0526200021e565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000d857607f821691505b602082108103620000f957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200014d57600081815260208120601f850160051c81016020861015620001285750805b601f850160051c820191505b81811015620001495782815560010162000134565b5050505b505050565b81516001600160401b038111156200016e576200016e620000ad565b62000186816200017f8454620000c3565b84620000ff565b602080601f831160018114620001be5760008415620001a55750858301515b600019600386901b1c1916600185901b17855562000149565b600085815260208120601f198616915b82811015620001ef57888601518255948401946001909101908401620001ce565b50858210156200020e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c051610b4b6200025c600039600061024401526000818161033d01526103d20152600081816101a901526103630152610b4b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610387578063e78cea921461033b578063ee9a31a2146103cd57600080fd5b8063ae1f6aaf1461033b578063c01e1bd614610361578063d6c0b2c41461036157600080fd5b80639dc29fac116100bd5780639dc29fac14610302578063a457c2d714610315578063a9059cbb1461032857600080fd5b806370a08231146102d257806395d89b41146102fa57600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a366004610952565b6103f4565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104e5565b60405161019b919061099b565b61018f610213366004610a37565b610577565b6002545b60405190815260200161019b565b61018f610238366004610a61565b610607565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004610a37565b610692565b61029461028f366004610a37565b61071d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e0366004610a9d565b73ffffffffffffffffffffffffffffffffffffffff163190565b6101f86107a5565b610294610310366004610a37565b6107b4565b61018f610323366004610a37565b61083c565b61018f610336366004610a37565b6108c7565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c610395366004610ab8565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104ad57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104dc57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b6060600380546104f490610aeb565b80601f016020809104026020016040519081016040528092919081815260200182805461052090610aeb565b801561056d5780601f106105425761010080835404028352916020019161056d565b820191906000526020600020905b81548152906001019060200180831161055057829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4c656761637945524332304e6174697665546f6b656e3a20617070726f76652060448201527f69732064697361626c656400000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c656761637945524332304e6174697665546f6b656e3a207472616e7366657260448201527f46726f6d2069732064697361626c65640000000000000000000000000000000060648201526000906084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c656761637945524332304e6174697665546f6b656e3a20696e63726561736560448201527f416c6c6f77616e63652069732064697361626c6564000000000000000000000060648201526000906084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4c656761637945524332304e6174697665546f6b656e3a206d696e742069732060448201527f64697361626c656400000000000000000000000000000000000000000000000060648201526084016105fe565b6060600480546104f490610aeb565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4c656761637945524332304e6174697665546f6b656e3a206275726e2069732060448201527f64697361626c656400000000000000000000000000000000000000000000000060648201526084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c656761637945524332304e6174697665546f6b656e3a20646563726561736560448201527f416c6c6f77616e63652069732064697361626c6564000000000000000000000060648201526000906084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4c656761637945524332304e6174697665546f6b656e3a207472616e7366657260448201527f2069732064697361626c6564000000000000000000000000000000000000000060648201526000906084016105fe565b60006020828403121561096457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461099457600080fd5b9392505050565b600060208083528351808285015260005b818110156109c8578581018301518582016040015282016109ac565b818111156109da576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a3257600080fd5b919050565b60008060408385031215610a4a57600080fd5b610a5383610a0e565b946020939093013593505050565b600080600060608486031215610a7657600080fd5b610a7f84610a0e565b9250610a8d60208501610a0e565b9150604084013590509250925092565b600060208284031215610aaf57600080fd5b61099482610a0e565b60008060408385031215610acb57600080fd5b610ad483610a0e565b9150610ae260208401610a0e565b90509250929050565b600181811c90821680610aff57607f821691505b602082108103610b38577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea164736f6c634300080f000a","sourceMap":"713:2372:208:-:0;;;848:102;;;;;;;;;;1903:42:222;923:1:208;2268:292:273;;;;;;;;;;;;;-1:-1:-1;;;2268:292:273;;;;;;;;;;;;;;;;-1:-1:-1;;;2268:292:273;;;943:2:208;2440:5:273;2447:7;2052:5:50;2044;:13;;;;;;:::i;:::-;-1:-1:-1;2067:7:50;:17;2077:7;2067;:17;:::i;:::-;-1:-1:-1;;;;;;;;2470:27:273;;::::1;;::::0;2507:16;;;::::1;;::::0;-1:-1:-1;;2533:20:273::1;;;::::0;713:2372:208;;14:127:416;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:416;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:416;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:416;;;2580:26;2531:89;-1:-1:-1;;1335:1:416;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:416;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:416;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:416;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:416:o;:::-;713:2372:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610387578063e78cea921461033b578063ee9a31a2146103cd57600080fd5b8063ae1f6aaf1461033b578063c01e1bd614610361578063d6c0b2c41461036157600080fd5b80639dc29fac116100bd5780639dc29fac14610302578063a457c2d714610315578063a9059cbb1461032857600080fd5b806370a08231146102d257806395d89b41146102fa57600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a366004610952565b6103f4565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104e5565b60405161019b919061099b565b61018f610213366004610a37565b610577565b6002545b60405190815260200161019b565b61018f610238366004610a61565b610607565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004610a37565b610692565b61029461028f366004610a37565b61071d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e0366004610a9d565b73ffffffffffffffffffffffffffffffffffffffff163190565b6101f86107a5565b610294610310366004610a37565b6107b4565b61018f610323366004610a37565b61083c565b61018f610336366004610a37565b6108c7565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c610395366004610ab8565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104ad57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104dc57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b6060600380546104f490610aeb565b80601f016020809104026020016040519081016040528092919081815260200182805461052090610aeb565b801561056d5780601f106105425761010080835404028352916020019161056d565b820191906000526020600020905b81548152906001019060200180831161055057829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4c656761637945524332304e6174697665546f6b656e3a20617070726f76652060448201527f69732064697361626c656400000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c656761637945524332304e6174697665546f6b656e3a207472616e7366657260448201527f46726f6d2069732064697361626c65640000000000000000000000000000000060648201526000906084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c656761637945524332304e6174697665546f6b656e3a20696e63726561736560448201527f416c6c6f77616e63652069732064697361626c6564000000000000000000000060648201526000906084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4c656761637945524332304e6174697665546f6b656e3a206d696e742069732060448201527f64697361626c656400000000000000000000000000000000000000000000000060648201526084016105fe565b6060600480546104f490610aeb565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4c656761637945524332304e6174697665546f6b656e3a206275726e2069732060448201527f64697361626c656400000000000000000000000000000000000000000000000060648201526084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c656761637945524332304e6174697665546f6b656e3a20646563726561736560448201527f416c6c6f77616e63652069732064697361626c6564000000000000000000000060648201526000906084016105fe565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4c656761637945524332304e6174697665546f6b656e3a207472616e7366657260448201527f2069732064697361626c6564000000000000000000000000000000000000000060648201526000906084016105fe565b60006020828403121561096457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461099457600080fd5b9392505050565b600060208083528351808285015260005b818110156109c8578581018301518582016040015282016109ac565b818111156109da576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a3257600080fd5b919050565b60008060408385031215610a4a57600080fd5b610a5383610a0e565b946020939093013593505050565b600080600060608486031215610a7657600080fd5b610a7f84610a0e565b9250610a8d60208501610a0e565b9150604084013590509250925092565b600060208284031215610aaf57600080fd5b61099482610a0e565b60008060408385031215610acb57600080fd5b610ad483610a0e565b9150610ae260208401610a0e565b90509250929050565b600181811c90821680610aff57607f821691505b602082108103610b38577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea164736f6c634300080f000a","sourceMap":"713:2372:208:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3616:519:273;;;;;;:::i;:::-;;:::i;:::-;;;516:14:416;;509:22;491:41;;479:2;464:18;3616:519:273;;;;;;;;1022:37;;;;;;;;719:42:416;707:55;;;689:74;;677:2;662:18;1022:37:273;543:226:416;2156:98:50;;;:::i;:::-;;;;;;;:::i;2192:144:208:-;;;;;;:::i;:::-;;:::i;3244:106:50:-;3331:12;;3244:106;;;2041:25:416;;;2029:2;2014:18;3244:106:50;1895:177:416;2424:163:208;;;;;;:::i;:::-;;:::i;5252:89:273:-;;;2582:4:416;5326:8:273;2570:17:416;2552:36;;2540:2;2525:18;5252:89:273;2410:184:416;2671:164:208;;;;;;:::i;:::-;;:::i;1534:123::-;;;;;;:::i;:::-;;:::i;:::-;;2009:40:273;;;;;;;;;;;;;;;;;;;;;1329:125:208;;;;;;:::i;:::-;1426:21;;;;1329:125;2367:102:50;;;:::i;1737:123:208:-;;;;;;:::i;:::-;;:::i;2919:164::-;;;;;;:::i;:::-;;:::i;1944:146::-;;;;;;:::i;:::-;;:::i;4434:80:273:-;4501:6;4434:80;;4248:85;4314:12;4248:85;;3976:149:50;;;;;;:::i;:::-;4091:18;;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;1129:31:273;;;;;3616:519;3695:4;3727:25;3844:38;3997:40;4054:22;;;;;;:48;;-1:-1:-1;4080:22:273;;;;;;;;4054:48;:74;;;-1:-1:-1;4106:22:273;;;;;;;;4054:74;4047:81;3616:519;-1:-1:-1;;;;;3616:519:273:o;2156:98:50:-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;2192:144:208:-;2276:53;;;;;3699:2:416;2276:53:208;;;3681:21:416;3738:2;3718:18;;;3711:30;3777:34;3757:18;;;3750:62;3848:13;3828:18;;;3821:41;2260:4:208;;3879:19:416;;2276:53:208;;;;;;;;2424:163;2522:58;;;;;4111:2:416;2522:58:208;;;4093:21:416;4150:2;4130:18;;;4123:30;4189:34;4169:18;;;4162:62;4260:18;4240;;;4233:46;2506:4:208;;4296:19:416;;2522:58:208;3909:412:416;2671:164:208;2765:63;;;;;4528:2:416;2765:63:208;;;4510:21:416;4567:2;4547:18;;;4540:30;4606:34;4586:18;;;4579:62;4677:23;4657:18;;;4650:51;2749:4:208;;4718:19:416;;2765:63:208;4326:417:416;1534:123:208;1600:50;;;;;4950:2:416;1600:50:208;;;4932:21:416;4989:2;4969:18;;;4962:30;5028:34;5008:18;;;5001:62;5099:10;5079:18;;;5072:38;5127:19;;1600:50:208;4748:404:416;2367:102:50;2423:13;2455:7;2448:14;;;;;:::i;1737:123:208:-;1803:50;;;;;5359:2:416;1803:50:208;;;5341:21:416;5398:2;5378:18;;;5371:30;5437:34;5417:18;;;5410:62;5508:10;5488:18;;;5481:38;5536:19;;1803:50:208;5157:404:416;2919:164:208;3013:63;;;;;5768:2:416;3013:63:208;;;5750:21:416;5807:2;5787:18;;;5780:30;5846:34;5826:18;;;5819:62;5917:23;5897:18;;;5890:51;2997:4:208;;5958:19:416;;3013:63:208;5566:417:416;1944:146:208;2029:54;;;;;6190:2:416;2029:54:208;;;6172:21:416;6229:2;6209:18;;;6202:30;6268:34;6248:18;;;6241:62;6339:14;6319:18;;;6312:42;2013:4:208;;6371:19:416;;2029:54:208;5988:408:416;14:332;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:416:o;774:656::-;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1212:6;1209:1;1206:13;1203:91;;;1282:1;1277:2;1268:6;1257:9;1253:22;1249:31;1242:42;1203:91;-1:-1:-1;1346:2:416;1334:15;1351:66;1330:88;1315:104;;;;1421:2;1311:113;;774:656;-1:-1:-1;;;774:656:416:o;1435:196::-;1503:20;;1563:42;1552:54;;1542:65;;1532:93;;1621:1;1618;1611:12;1532:93;1435:196;;;:::o;1636:254::-;1704:6;1712;1765:2;1753:9;1744:7;1740:23;1736:32;1733:52;;;1781:1;1778;1771:12;1733:52;1804:29;1823:9;1804:29;:::i;:::-;1794:39;1880:2;1865:18;;;;1852:32;;-1:-1:-1;;;1636:254:416:o;2077:328::-;2154:6;2162;2170;2223:2;2211:9;2202:7;2198:23;2194:32;2191:52;;;2239:1;2236;2229:12;2191:52;2262:29;2281:9;2262:29;:::i;:::-;2252:39;;2310:38;2344:2;2333:9;2329:18;2310:38;:::i;:::-;2300:48;;2395:2;2384:9;2380:18;2367:32;2357:42;;2077:328;;;;;:::o;2599:186::-;2658:6;2711:2;2699:9;2690:7;2686:23;2682:32;2679:52;;;2727:1;2724;2717:12;2679:52;2750:29;2769:9;2750:29;:::i;2790:260::-;2858:6;2866;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;2958:29;2977:9;2958:29;:::i;:::-;2948:39;;3006:38;3040:2;3029:9;3025:18;3006:38;:::i;:::-;2996:48;;2790:260;;;;;:::o;3055:437::-;3134:1;3130:12;;;;3177;;;3198:61;;3252:4;3244:6;3240:17;3230:27;;3198:61;3305:2;3297:6;3294:14;3274:18;3271:38;3268:218;;3342:77;3339:1;3332:88;3443:4;3440:1;3433:15;3471:4;3468:1;3461:15;3268:218;;3055:437;;;:::o","linkReferences":{},"immutableReferences":{"122342":[{"start":425,"length":32},{"start":867,"length":32}],"122345":[{"start":829,"length":32},{"start":978,"length":32}],"122348":[{"start":580,"length":32}]}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","REMOTE_TOKEN()":"033964be","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","l1Token()":"c01e1bd6","l2Bridge()":"ae1f6aaf","mint(address,uint256)":"40c10f19","name()":"06fdde03","remoteToken()":"d6c0b2c4","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"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\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"custom:blocked\":\"@notice Approves a spender to spend some amount of NativeToken.\"},\"balanceOf(address)\":{\"params\":{\"_who\":\"Address of the account to query.\"},\"returns\":{\"_0\":\"The NativeToken balance of the target account.\"}},\"bridge()\":{\"custom:legacy\":\"@notice Legacy getter for BRIDGE.\"},\"burn(address,uint256)\":{\"custom:blocked\":\"@notice Burns some amount of NativeToken.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"custom:blocked\":\"@notice Decreases the allowance of a spender.\"},\"increaseAllowance(address,uint256)\":{\"custom:blocked\":\"@notice Increases the allowance of a spender.\"},\"l1Token()\":{\"custom:legacy\":\"@notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward.\"},\"l2Bridge()\":{\"custom:legacy\":\"@notice Legacy getter for the bridge. Use BRIDGE going forward.\"},\"mint(address,uint256)\":{\"custom:blocked\":\"@notice Mints some amount of NativeToken.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"remoteToken()\":{\"custom:legacy\":\"@notice Legacy getter for REMOTE_TOKEN.\"},\"supportsInterface(bytes4)\":{\"params\":{\"_interfaceId\":\"Interface ID to check.\"},\"returns\":{\"_0\":\"Whether or not the interface is supported by this contract.\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"custom:blocked\":\"@notice Transfers some amount of NativeToken.\"},\"transferFrom(address,address,uint256)\":{\"custom:blocked\":\"@notice Transfers funds from some sender account.\"}},\"title\":\"LegacyERC20NativeToken\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,uint256)\":{\"notice\":\"Emitted whenever tokens are burned from an account.\"},\"Mint(address,uint256)\":{\"notice\":\"Emitted whenever tokens are minted for an account.\"}},\"kind\":\"user\",\"methods\":{\"BRIDGE()\":{\"notice\":\"Address of the StandardBridge on this network.\"},\"REMOTE_TOKEN()\":{\"notice\":\"Address of the corresponding version of this token on the remote chain.\"},\"balanceOf(address)\":{\"notice\":\"Returns the NativeToken balance of the target account. Overrides the base behavior of the         contract to preserve the invariant that the balance within this contract always         matches the balance in the state trie.\"},\"constructor\":{\"notice\":\"Initializes the contract as an Optimism Mintable ERC20.\"},\"supportsInterface(bytes4)\":{\"notice\":\"ERC165 interface check function.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"LegacyERC20NativeToken is a legacy contract that held NativeToken balances before the Bedrock upgrade.         All NativeToken balances held within this contract were migrated to the state trie as part of         the Bedrock upgrade. Functions within this contract that mutate state were already         disabled as part of the EVM equivalence upgrade.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/LegacyERC20NativeToken.sol\":\"LegacyERC20NativeToken\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/legacy/LegacyERC20NativeToken.sol\":{\"keccak256\":\"0x8c2645341ee556de2091e893cf5981a24a3ede548ec5cf9f35d97e1964cd2485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://209c8a7f27f6a41124374e6229d550e3910a07d745ca65ab3f633adad6e27b6a\",\"dweb:/ipfs/QmTifDqpMReieFuAQjaRHi1hQcDr24cPyeioZ91tYXNWKt\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3\",\"dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Mint","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":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2Bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"custom:blocked":"@notice Approves a spender to spend some amount of NativeToken."},"balanceOf(address)":{"params":{"_who":"Address of the account to query."},"returns":{"_0":"The NativeToken balance of the target account."}},"bridge()":{"custom:legacy":"@notice Legacy getter for BRIDGE."},"burn(address,uint256)":{"custom:blocked":"@notice Burns some amount of NativeToken."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"custom:blocked":"@notice Decreases the allowance of a spender."},"increaseAllowance(address,uint256)":{"custom:blocked":"@notice Increases the allowance of a spender."},"l1Token()":{"custom:legacy":"@notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward."},"l2Bridge()":{"custom:legacy":"@notice Legacy getter for the bridge. Use BRIDGE going forward."},"mint(address,uint256)":{"custom:blocked":"@notice Mints some amount of NativeToken."},"name()":{"details":"Returns the name of the token."},"remoteToken()":{"custom:legacy":"@notice Legacy getter for REMOTE_TOKEN."},"supportsInterface(bytes4)":{"params":{"_interfaceId":"Interface ID to check."},"returns":{"_0":"Whether or not the interface is supported by this contract."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"custom:blocked":"@notice Transfers some amount of NativeToken."},"transferFrom(address,address,uint256)":{"custom:blocked":"@notice Transfers funds from some sender account."}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the StandardBridge on this network."},"REMOTE_TOKEN()":{"notice":"Address of the corresponding version of this token on the remote chain."},"balanceOf(address)":{"notice":"Returns the NativeToken balance of the target account. Overrides the base behavior of the         contract to preserve the invariant that the balance within this contract always         matches the balance in the state trie."},"constructor":{"notice":"Initializes the contract as an Optimism Mintable ERC20."},"supportsInterface(bytes4)":{"notice":"ERC165 interface check function."},"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/legacy/LegacyERC20NativeToken.sol":"LegacyERC20NativeToken"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/legacy/LegacyERC20NativeToken.sol":{"keccak256":"0x8c2645341ee556de2091e893cf5981a24a3ede548ec5cf9f35d97e1964cd2485","urls":["bzz-raw://209c8a7f27f6a41124374e6229d550e3910a07d745ca65ab3f633adad6e27b6a","dweb:/ipfs/QmTifDqpMReieFuAQjaRHi1hQcDr24cPyeioZ91tYXNWKt"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f","urls":["bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3","dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":50345,"contract":"src/legacy/LegacyERC20NativeToken.sol:LegacyERC20NativeToken","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":50351,"contract":"src/legacy/LegacyERC20NativeToken.sol:LegacyERC20NativeToken","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":50353,"contract":"src/legacy/LegacyERC20NativeToken.sol:LegacyERC20NativeToken","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":50355,"contract":"src/legacy/LegacyERC20NativeToken.sol:LegacyERC20NativeToken","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":50357,"contract":"src/legacy/LegacyERC20NativeToken.sol:LegacyERC20NativeToken","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"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_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the StandardBridge on this network."},"REMOTE_TOKEN()":{"notice":"Address of the corresponding version of this token on the remote chain."},"balanceOf(address)":{"notice":"Returns the NativeToken balance of the target account. Overrides the base behavior of the         contract to preserve the invariant that the balance within this contract always         matches the balance in the state trie."},"constructor":{"notice":"Initializes the contract as an Optimism Mintable ERC20."},"supportsInterface(bytes4)":{"notice":"ERC165 interface check function."},"version()":{"notice":"Semantic version."}},"events":{"Burn(address,uint256)":{"notice":"Emitted whenever tokens are burned from an account."},"Mint(address,uint256)":{"notice":"Emitted whenever tokens are minted for an account."}},"notice":"LegacyERC20NativeToken is a legacy contract that held NativeToken balances before the Bedrock upgrade.         All NativeToken balances held within this contract were migrated to the state trie as part of         the Bedrock upgrade. Functions within this contract that mutate state were already         disabled as part of the EVM equivalence upgrade."},"devdoc":{"version":1,"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{},"balanceOf(address)":{"params":{"_who":"Address of the account to query."},"returns":{"_0":"The NativeToken balance of the target account."}},"bridge()":{},"burn(address,uint256)":{},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{},"increaseAllowance(address,uint256)":{},"l1Token()":{},"l2Bridge()":{},"mint(address,uint256)":{},"name()":{"details":"Returns the name of the token."},"remoteToken()":{},"supportsInterface(bytes4)":{"params":{"_interfaceId":"Interface ID to check."},"returns":{"_0":"Whether or not the interface is supported by this contract."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{},"transferFrom(address,address,uint256)":{}},"title":"LegacyERC20NativeToken"},"ast":{"absolutePath":"src/legacy/LegacyERC20NativeToken.sol","id":112239,"exportedSymbols":{"LegacyERC20NativeToken":[112238],"OptimismMintableERC20":[122547],"Predeploys":[114341]},"nodeType":"SourceUnit","src":"32:3054:208","nodes":[{"id":112088,"nodeType":"PragmaDirective","src":"32:23:208","nodes":[],"literals":["solidity","0.8",".15"]},{"id":112090,"nodeType":"ImportDirective","src":"57:58:208","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":112239,"sourceUnit":114342,"symbolAliases":[{"foreign":{"id":112089,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114341,"src":"66:10:208","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":112092,"nodeType":"ImportDirective","src":"116:80:208","nodes":[],"absolutePath":"src/universal/OptimismMintableERC20.sol","file":"src/universal/OptimismMintableERC20.sol","nameLocation":"-1:-1:-1","scope":112239,"sourceUnit":122548,"symbolAliases":[{"foreign":{"id":112091,"name":"OptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122547,"src":"125:21:208","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":112238,"nodeType":"ContractDefinition","src":"713:2372:208","nodes":[{"id":112111,"nodeType":"FunctionDefinition","src":"848:102:208","nodes":[],"body":{"id":112110,"nodeType":"Block","src":"947:3:208","nodes":[],"statements":[]},"documentation":{"id":112096,"nodeType":"StructuredDocumentation","src":"776:67:208","text":"@notice Initializes the contract as an Optimism Mintable ERC20."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":112099,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114341,"src":"884:10:208","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$114341_$","typeString":"type(library Predeploys)"}},"id":112100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_STANDARD_BRIDGE","nodeType":"MemberAccess","referencedDeclaration":113879,"src":"884:29:208","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":112103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"923:1:208","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":112102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:7:208","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":112101,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:208","typeDescriptions":{}}},"id":112104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"915:10:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"4574686572","id":112105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"927:7:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_a234e09165f88967a714e2a476288e4c6d88b4b69fe7c300a03190b858990bfc","typeString":"literal_string \"Ether\""},"value":"Ether"},{"hexValue":"455448","id":112106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"936:5:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4","typeString":"literal_string \"ETH\""},"value":"ETH"},{"hexValue":"3138","id":112107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"943:2:208","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"id":112108,"kind":"baseConstructorSpecifier","modifierName":{"id":112098,"name":"OptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":122547,"src":"862:21:208"},"nodeType":"ModifierInvocation","src":"862:84:208"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":112097,"nodeType":"ParameterList","parameters":[],"src":"859:2:208"},"returnParameters":{"id":112109,"nodeType":"ParameterList","parameters":[],"src":"947:0:208"},"scope":112238,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":112127,"nodeType":"FunctionDefinition","src":"1329:125:208","nodes":[],"body":{"id":112126,"nodeType":"Block","src":"1409:45:208","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":112122,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112114,"src":"1434:4:208","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":112121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1426:7:208","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":112120,"name":"address","nodeType":"ElementaryTypeName","src":"1426:7:208","typeDescriptions":{}}},"id":112123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1426:13:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":112124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"1426:21:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":112119,"id":112125,"nodeType":"Return","src":"1419:28:208"}]},"baseFunctions":[50428],"documentation":{"id":112112,"nodeType":"StructuredDocumentation","src":"956:368:208","text":"@notice Returns the NativeToken balance of the target account. Overrides the base behavior of the\n         contract to preserve the invariant that the balance within this contract always\n         matches the balance in the state trie.\n @param _who Address of the account to query.\n @return The NativeToken balance of the target account."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1338:9:208","overrides":{"id":112116,"nodeType":"OverrideSpecifier","overrides":[],"src":"1382:8:208"},"parameters":{"id":112115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112114,"mutability":"mutable","name":"_who","nameLocation":"1356:4:208","nodeType":"VariableDeclaration","scope":112127,"src":"1348:12:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112113,"name":"address","nodeType":"ElementaryTypeName","src":"1348:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1347:14:208"},"returnParameters":{"id":112119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112127,"src":"1400:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112117,"name":"uint256","nodeType":"ElementaryTypeName","src":"1400:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1399:9:208"},"scope":112238,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":112141,"nodeType":"FunctionDefinition","src":"1534:123:208","nodes":[],"body":{"id":112140,"nodeType":"Block","src":"1590:67:208","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4c656761637945524332304e6174697665546f6b656e3a206d696e742069732064697361626c6564","id":112137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1607:42:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_f234d08c61d997ffdf15ce2f73c8bcfb5ec0f8a38ffca0fb05bae05bfa373fa0","typeString":"literal_string \"LegacyERC20NativeToken: mint is disabled\""},"value":"LegacyERC20NativeToken: mint is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f234d08c61d997ffdf15ce2f73c8bcfb5ec0f8a38ffca0fb05bae05bfa373fa0","typeString":"literal_string \"LegacyERC20NativeToken: mint is disabled\""}],"id":112136,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1600:6:208","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":112138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1600:50:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":112139,"nodeType":"ExpressionStatement","src":"1600:50:208"}]},"baseFunctions":[122434],"documentation":{"id":112128,"nodeType":"StructuredDocumentation","src":"1460:69:208","text":"@custom:blocked\n @notice Mints some amount of NativeToken."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1543:4:208","overrides":{"id":112134,"nodeType":"OverrideSpecifier","overrides":[],"src":"1581:8:208"},"parameters":{"id":112133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112141,"src":"1548:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112129,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112141,"src":"1557:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112131,"name":"uint256","nodeType":"ElementaryTypeName","src":"1557:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1547:18:208"},"returnParameters":{"id":112135,"nodeType":"ParameterList","parameters":[],"src":"1590:0:208"},"scope":112238,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":112155,"nodeType":"FunctionDefinition","src":"1737:123:208","nodes":[],"body":{"id":112154,"nodeType":"Block","src":"1793:67:208","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4c656761637945524332304e6174697665546f6b656e3a206275726e2069732064697361626c6564","id":112151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1810:42:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfd5b7a97e989864daad25e55d55fb359a0f44dd222d254b5e65aec8aacd2b8b","typeString":"literal_string \"LegacyERC20NativeToken: burn is disabled\""},"value":"LegacyERC20NativeToken: burn is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cfd5b7a97e989864daad25e55d55fb359a0f44dd222d254b5e65aec8aacd2b8b","typeString":"literal_string \"LegacyERC20NativeToken: burn is disabled\""}],"id":112150,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1803:6:208","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":112152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1803:50:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":112153,"nodeType":"ExpressionStatement","src":"1803:50:208"}]},"baseFunctions":[122458],"documentation":{"id":112142,"nodeType":"StructuredDocumentation","src":"1663:69:208","text":"@custom:blocked\n @notice Burns some amount of NativeToken."},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1746:4:208","overrides":{"id":112148,"nodeType":"OverrideSpecifier","overrides":[],"src":"1784:8:208"},"parameters":{"id":112147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112155,"src":"1751:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112143,"name":"address","nodeType":"ElementaryTypeName","src":"1751:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112155,"src":"1760:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1760:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1750:18:208"},"returnParameters":{"id":112149,"nodeType":"ParameterList","parameters":[],"src":"1793:0:208"},"scope":112238,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":112171,"nodeType":"FunctionDefinition","src":"1944:146:208","nodes":[],"body":{"id":112170,"nodeType":"Block","src":"2019:71:208","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4c656761637945524332304e6174697665546f6b656e3a207472616e736665722069732064697361626c6564","id":112167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2036:46:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa59cab4bf050e87617c8db973a58d545931ba3b91db255ea3fd02acb8e95e7b","typeString":"literal_string \"LegacyERC20NativeToken: transfer is disabled\""},"value":"LegacyERC20NativeToken: transfer is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa59cab4bf050e87617c8db973a58d545931ba3b91db255ea3fd02acb8e95e7b","typeString":"literal_string \"LegacyERC20NativeToken: transfer is disabled\""}],"id":112166,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2029:6:208","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":112168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2029:54:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":112169,"nodeType":"ExpressionStatement","src":"2029:54:208"}]},"baseFunctions":[50453],"documentation":{"id":112156,"nodeType":"StructuredDocumentation","src":"1866:73:208","text":"@custom:blocked\n @notice Transfers some amount of NativeToken."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1953:8:208","overrides":{"id":112162,"nodeType":"OverrideSpecifier","overrides":[],"src":"1995:8:208"},"parameters":{"id":112161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112171,"src":"1962:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112157,"name":"address","nodeType":"ElementaryTypeName","src":"1962:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112171,"src":"1971:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1961:18:208"},"returnParameters":{"id":112165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112164,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112171,"src":"2013:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":112163,"name":"bool","nodeType":"ElementaryTypeName","src":"2013:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2012:6:208"},"scope":112238,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":112187,"nodeType":"FunctionDefinition","src":"2192:144:208","nodes":[],"body":{"id":112186,"nodeType":"Block","src":"2266:70:208","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4c656761637945524332304e6174697665546f6b656e3a20617070726f76652069732064697361626c6564","id":112183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2283:45:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e9c2b09bf68cd832223eebb9d603b90d8187ab260e5dc43c55dc0cc1a94293c","typeString":"literal_string \"LegacyERC20NativeToken: approve is disabled\""},"value":"LegacyERC20NativeToken: approve is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e9c2b09bf68cd832223eebb9d603b90d8187ab260e5dc43c55dc0cc1a94293c","typeString":"literal_string \"LegacyERC20NativeToken: approve is disabled\""}],"id":112182,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2276:6:208","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":112184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2276:53:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":112185,"nodeType":"ExpressionStatement","src":"2276:53:208"}]},"baseFunctions":[50496],"documentation":{"id":112172,"nodeType":"StructuredDocumentation","src":"2096:91:208","text":"@custom:blocked\n @notice Approves a spender to spend some amount of NativeToken."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2201:7:208","overrides":{"id":112178,"nodeType":"OverrideSpecifier","overrides":[],"src":"2242:8:208"},"parameters":{"id":112177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112187,"src":"2209:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112173,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112187,"src":"2218:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112175,"name":"uint256","nodeType":"ElementaryTypeName","src":"2218:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2208:18:208"},"returnParameters":{"id":112181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112187,"src":"2260:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":112179,"name":"bool","nodeType":"ElementaryTypeName","src":"2260:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2259:6:208"},"scope":112238,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":112205,"nodeType":"FunctionDefinition","src":"2424:163:208","nodes":[],"body":{"id":112204,"nodeType":"Block","src":"2512:75:208","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4c656761637945524332304e6174697665546f6b656e3a207472616e7366657246726f6d2069732064697361626c6564","id":112201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2529:50:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_809cec4b44ef76a496d7915ea9334e65acf99068dfa8dba19ec1b062c0ec6196","typeString":"literal_string \"LegacyERC20NativeToken: transferFrom is disabled\""},"value":"LegacyERC20NativeToken: transferFrom is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_809cec4b44ef76a496d7915ea9334e65acf99068dfa8dba19ec1b062c0ec6196","typeString":"literal_string \"LegacyERC20NativeToken: transferFrom is disabled\""}],"id":112200,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2522:6:208","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":112202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2522:58:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":112203,"nodeType":"ExpressionStatement","src":"2522:58:208"}]},"baseFunctions":[50529],"documentation":{"id":112188,"nodeType":"StructuredDocumentation","src":"2342:77:208","text":"@custom:blocked\n @notice Transfers funds from some sender account."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2433:12:208","overrides":{"id":112196,"nodeType":"OverrideSpecifier","overrides":[],"src":"2488:8:208"},"parameters":{"id":112195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112205,"src":"2446:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112189,"name":"address","nodeType":"ElementaryTypeName","src":"2446:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112205,"src":"2455:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112191,"name":"address","nodeType":"ElementaryTypeName","src":"2455:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112205,"src":"2464:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112193,"name":"uint256","nodeType":"ElementaryTypeName","src":"2464:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2445:27:208"},"returnParameters":{"id":112199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112205,"src":"2506:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":112197,"name":"bool","nodeType":"ElementaryTypeName","src":"2506:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2505:6:208"},"scope":112238,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":112221,"nodeType":"FunctionDefinition","src":"2671:164:208","nodes":[],"body":{"id":112220,"nodeType":"Block","src":"2755:80:208","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4c656761637945524332304e6174697665546f6b656e3a20696e637265617365416c6c6f77616e63652069732064697361626c6564","id":112217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2772:55:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd030a4091fb2539955b88331b45f69fc23917379dbb255a919b1920951214bd","typeString":"literal_string \"LegacyERC20NativeToken: increaseAllowance is disabled\""},"value":"LegacyERC20NativeToken: increaseAllowance is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bd030a4091fb2539955b88331b45f69fc23917379dbb255a919b1920951214bd","typeString":"literal_string \"LegacyERC20NativeToken: increaseAllowance is disabled\""}],"id":112216,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2765:6:208","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":112218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:63:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":112219,"nodeType":"ExpressionStatement","src":"2765:63:208"}]},"baseFunctions":[50558],"documentation":{"id":112206,"nodeType":"StructuredDocumentation","src":"2593:73:208","text":"@custom:blocked\n @notice Increases the allowance of a spender."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"2680:17:208","overrides":{"id":112212,"nodeType":"OverrideSpecifier","overrides":[],"src":"2731:8:208"},"parameters":{"id":112211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112221,"src":"2698:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112207,"name":"address","nodeType":"ElementaryTypeName","src":"2698:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112221,"src":"2707:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112209,"name":"uint256","nodeType":"ElementaryTypeName","src":"2707:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2697:18:208"},"returnParameters":{"id":112215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112221,"src":"2749:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":112213,"name":"bool","nodeType":"ElementaryTypeName","src":"2749:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2748:6:208"},"scope":112238,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":112237,"nodeType":"FunctionDefinition","src":"2919:164:208","nodes":[],"body":{"id":112236,"nodeType":"Block","src":"3003:80:208","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4c656761637945524332304e6174697665546f6b656e3a206465637265617365416c6c6f77616e63652069732064697361626c6564","id":112233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3020:55:208","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cbaa74846316598815840f77e6c27972536f0b47c9fc9feaed560a9baf25a08","typeString":"literal_string \"LegacyERC20NativeToken: decreaseAllowance is disabled\""},"value":"LegacyERC20NativeToken: decreaseAllowance is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cbaa74846316598815840f77e6c27972536f0b47c9fc9feaed560a9baf25a08","typeString":"literal_string \"LegacyERC20NativeToken: decreaseAllowance is disabled\""}],"id":112232,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3013:6:208","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":112234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3013:63:208","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":112235,"nodeType":"ExpressionStatement","src":"3013:63:208"}]},"baseFunctions":[50599],"documentation":{"id":112222,"nodeType":"StructuredDocumentation","src":"2841:73:208","text":"@custom:blocked\n @notice Decreases the allowance of a spender."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"2928:17:208","overrides":{"id":112228,"nodeType":"OverrideSpecifier","overrides":[],"src":"2979:8:208"},"parameters":{"id":112227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112237,"src":"2946:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112223,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:208","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":112226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112237,"src":"2955:7:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112225,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:208","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2945:18:208"},"returnParameters":{"id":112231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112237,"src":"2997:4:208","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":112229,"name":"bool","nodeType":"ElementaryTypeName","src":"2997:4:208","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2996:6:208"},"scope":112238,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":112094,"name":"OptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":122547,"src":"748:21:208"},"id":112095,"nodeType":"InheritanceSpecifier","src":"748:21:208"}],"canonicalName":"LegacyERC20NativeToken","contractDependencies":[],"contractKind":"contract","documentation":{"id":112093,"nodeType":"StructuredDocumentation","src":"198:515:208","text":"@custom:legacy\n @custom:proxied\n @custom:predeploy 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000\n @title LegacyERC20NativeToken\n @notice LegacyERC20NativeToken is a legacy contract that held NativeToken balances before the Bedrock upgrade.\n         All NativeToken balances held within this contract were migrated to the state trie as part of\n         the Bedrock upgrade. Functions within this contract that mutate state were already\n         disabled as part of the EVM equivalence upgrade."},"fullyImplemented":true,"linearizedBaseContracts":[112238,122547,122319,50915,51699,50993,53902,122235,122212,55057],"name":"LegacyERC20NativeToken","nameLocation":"722:22:208","scope":112239,"usedErrors":[]}],"license":"MIT"},"id":208}