@tokamak-network/thanos-contracts
Version:
1 lines • 486 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":"approveAndCall","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"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":"0x608060405234801561001057600080fd5b50611022806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c806370a0823111610076578063a9059cbb1161005b578063a9059cbb14610151578063cae9ca5114610164578063dd62ed3e1461017757600080fd5b806370a0823114610108578063a457c2d71461013e57600080fd5b8063095ea7b3146100a857806318160ddd146100d057806323b872dd146100e257806339509351146100f5575b600080fd5b6100bb6100b6366004610c64565b6101bd565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100c7565b6100bb6100f0366004610c8e565b6101d3565b6100bb610103366004610c64565b610249565b6100d4610116366004610cca565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100bb61014c366004610c64565b61028c565b6100bb61015f366004610c64565b6102e8565b6100bb610172366004610d14565b6102f5565b6100d4610185366004610dfd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60006101ca338484610316565b50600192915050565b60006101e08484846104cf565b61023f843361023a85604051806060016040528060288152602001610fc96028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020908152604080832033845290915290205491906106f9565b610316565b5060019392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916101ca91859061023a908661074d565b60006101ca338461023a85604051806060016040528060258152602001610ff16025913933600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906106f9565b60006101ca3384846104cf565b600061030184846101bd565b61030a57600080fd5b61023f338585856107cd565b73ffffffffffffffffffffffffffffffffffffffff83166103bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103b4565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103b4565b73ffffffffffffffffffffffffffffffffffffffff8216610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103b4565b61065f81604051806060016040528060268152602001610fa36026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906106f9565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461069b908261074d565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104c2565b60008184841115610737576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b49190610eaa565b5060006107448486610eec565b95945050505050565b60008061075a8385610f03565b9050838110156107c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103b4565b9392505050565b7f4273ca16000000000000000000000000000000000000000000000000000000006107f88482610a5e565b610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f45524332304f6e417070726f76653a207370656e64657220646f65736e27742060448201527f737570706f7274206f6e417070726f766500000000000000000000000000000060648201526084016103b4565b6000808573ffffffffffffffffffffffffffffffffffffffff1683888888886040516024016108b69493929190610f1b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161093f9190610f64565b6000604051808303816000865af19150503d806000811461097c576040519150601f19603f3d011682016040523d82523d6000602084013e610981565b606091505b50915091508181906109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b49190610eaa565b506020810151915081610a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332304f6e417070726f76653a206661696c656420746f2063616c6c206f60448201527f6e417070726f766500000000000000000000000000000000000000000000000060648201526084016103b4565b50505050505050565b6000610a6983610a7a565b80156107c657506107c68383610adf565b6000610aa6827f01ffc9a700000000000000000000000000000000000000000000000000000000610adf565b8015610ad95750610ad7827fffffffff00000000000000000000000000000000000000000000000000000000610adf565b155b92915050565b6000806000610aee8585610b02565b915091508180156107445750949350505050565b604080517fffffffff00000000000000000000000000000000000000000000000000000000831660248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000179052905160009182918290819073ffffffffffffffffffffffffffffffffffffffff881690610bb9908590610f64565b600060405180830381855afa9150503d8060008114610bf4576040519150601f19603f3d011682016040523d82523d6000602084013e610bf9565b606091505b5091509150602081511015610c175760008094509450505050610c34565b8181806020019051810190610c2c9190610f80565b945094505050505b9250929050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c5f57600080fd5b919050565b60008060408385031215610c7757600080fd5b610c8083610c3b565b946020939093013593505050565b600080600060608486031215610ca357600080fd5b610cac84610c3b565b9250610cba60208501610c3b565b9150604084013590509250925092565b600060208284031215610cdc57600080fd5b6107c682610c3b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610d2957600080fd5b610d3284610c3b565b925060208401359150604084013567ffffffffffffffff80821115610d5657600080fd5b818601915086601f830112610d6a57600080fd5b813581811115610d7c57610d7c610ce5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610dc257610dc2610ce5565b81604052828152896020848701011115610ddb57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60008060408385031215610e1057600080fd5b610e1983610c3b565b9150610e2760208401610c3b565b90509250929050565b60005b83811015610e4b578181015183820152602001610e33565b83811115610e5a576000848401525b50505050565b60008151808452610e78816020860160208601610e30565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107c66020830184610e60565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610efe57610efe610ebd565b500390565b60008219821115610f1657610f16610ebd565b500190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152610f5a6080830184610e60565b9695505050505050565b60008251610f76818460208701610e30565b9190910192915050565b600060208284031215610f9257600080fd5b815180151581146107c657600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300080f000a","sourceMap":"33559:1045:144:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100a35760003560e01c806370a0823111610076578063a9059cbb1161005b578063a9059cbb14610151578063cae9ca5114610164578063dd62ed3e1461017757600080fd5b806370a0823114610108578063a457c2d71461013e57600080fd5b8063095ea7b3146100a857806318160ddd146100d057806323b872dd146100e257806339509351146100f5575b600080fd5b6100bb6100b6366004610c64565b6101bd565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100c7565b6100bb6100f0366004610c8e565b6101d3565b6100bb610103366004610c64565b610249565b6100d4610116366004610cca565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100bb61014c366004610c64565b61028c565b6100bb61015f366004610c64565b6102e8565b6100bb610172366004610d14565b6102f5565b6100d4610185366004610dfd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60006101ca338484610316565b50600192915050565b60006101e08484846104cf565b61023f843361023a85604051806060016040528060288152602001610fc96028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020908152604080832033845290915290205491906106f9565b610316565b5060019392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916101ca91859061023a908661074d565b60006101ca338461023a85604051806060016040528060258152602001610ff16025913933600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906106f9565b60006101ca3384846104cf565b600061030184846101bd565b61030a57600080fd5b61023f338585856107cd565b73ffffffffffffffffffffffffffffffffffffffff83166103bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103b4565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103b4565b73ffffffffffffffffffffffffffffffffffffffff8216610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103b4565b61065f81604051806060016040528060268152602001610fa36026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906106f9565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461069b908261074d565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104c2565b60008184841115610737576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b49190610eaa565b5060006107448486610eec565b95945050505050565b60008061075a8385610f03565b9050838110156107c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103b4565b9392505050565b7f4273ca16000000000000000000000000000000000000000000000000000000006107f88482610a5e565b610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f45524332304f6e417070726f76653a207370656e64657220646f65736e27742060448201527f737570706f7274206f6e417070726f766500000000000000000000000000000060648201526084016103b4565b6000808573ffffffffffffffffffffffffffffffffffffffff1683888888886040516024016108b69493929190610f1b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161093f9190610f64565b6000604051808303816000865af19150503d806000811461097c576040519150601f19603f3d011682016040523d82523d6000602084013e610981565b606091505b50915091508181906109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b49190610eaa565b506020810151915081610a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332304f6e417070726f76653a206661696c656420746f2063616c6c206f60448201527f6e417070726f766500000000000000000000000000000000000000000000000060648201526084016103b4565b50505050505050565b6000610a6983610a7a565b80156107c657506107c68383610adf565b6000610aa6827f01ffc9a700000000000000000000000000000000000000000000000000000000610adf565b8015610ad95750610ad7827fffffffff00000000000000000000000000000000000000000000000000000000610adf565b155b92915050565b6000806000610aee8585610b02565b915091508180156107445750949350505050565b604080517fffffffff00000000000000000000000000000000000000000000000000000000831660248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000179052905160009182918290819073ffffffffffffffffffffffffffffffffffffffff881690610bb9908590610f64565b600060405180830381855afa9150503d8060008114610bf4576040519150601f19603f3d011682016040523d82523d6000602084013e610bf9565b606091505b5091509150602081511015610c175760008094509450505050610c34565b8181806020019051810190610c2c9190610f80565b945094505050505b9250929050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c5f57600080fd5b919050565b60008060408385031215610c7757600080fd5b610c8083610c3b565b946020939093013593505050565b600080600060608486031215610ca357600080fd5b610cac84610c3b565b9250610cba60208501610c3b565b9150604084013590509250925092565b600060208284031215610cdc57600080fd5b6107c682610c3b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610d2957600080fd5b610d3284610c3b565b925060208401359150604084013567ffffffffffffffff80821115610d5657600080fd5b818601915086601f830112610d6a57600080fd5b813581811115610d7c57610d7c610ce5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610dc257610dc2610ce5565b81604052828152896020848701011115610ddb57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60008060408385031215610e1057600080fd5b610e1983610c3b565b9150610e2760208401610c3b565b90509250929050565b60005b83811015610e4b578181015183820152602001610e33565b83811115610e5a576000848401525b50505050565b60008151808452610e78816020860160208601610e30565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107c66020830184610e60565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610efe57610efe610ebd565b500390565b60008219821115610f1657610f16610ebd565b500190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152610f5a6080830184610e60565b9695505050505050565b60008251610f76818460208701610e30565b9190910192915050565b600060208284031215610f9257600080fd5b815180151581146107c657600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300080f000a","sourceMap":"33559:1045: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;33598:228::-;;;;;;:::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;33598:228::-;33690:4;33714:24;33722:7;33731:6;33714:7;:24::i;:::-;33706:33;;;;;;33749:49;33764:10;33776:7;33785:6;33793:4;33749:14;:49::i;19209:332::-;19302:19;;;19294:68;;;;;;;3155:2:416;19294:68:144;;;3137:21:416;3194:2;3174:18;;;3167:30;3233:34;3213:18;;;3206:62;3304:6;3284:18;;;3277:34;3328:19;;19294:68:144;;;;;;;;;19380:21;;;19372:68;;;;;;;3560:2:416;19372:68:144;;;3542:21:416;3599:2;3579:18;;;3572:30;3638:34;3618:18;;;3611:62;3709:4;3689:18;;;3682:32;3731:19;;19372:68:144;3358: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;;;;;;;3963:2:416;17153:70:144;;;3945:21:416;4002:2;3982:18;;;3975:30;4041:34;4021:18;;;4014:62;4112:7;4092:18;;;4085:35;4137:19;;17153:70:144;3761:401:416;17153:70:144;17241:23;;;17233:71;;;;;;;4369:2:416;17233:71:144;;;4351:21:416;4408:2;4388:18;;;4381:30;4447:34;4427:18;;;4420:62;4518:5;4498:18;;;4491:33;4541:19;;17233:71:144;4167: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;;;;;;;6035:2:416;7413:46:144;;;6017:21:416;6074:2;6054:18;;;6047:30;6113:29;6093:18;;;6086:57;6160:18;;7413:46:144;5833:351:416;7413:46:144;7477:1;7309:176;-1:-1:-1;;;7309:176:144:o;33832:770::-;33969:37;34038:60;34071:7;33969:37;34038:32;:60::i;:::-;34017:156;;;;;;;6391:2:416;34017:156:144;;;6373:21:416;6430:2;6410:18;;;6403:30;6469:34;6449:18;;;6442:62;6540:19;6520:18;;;6513:47;6577:19;;34017:156:144;6189:413:416;34017:156:144;34185:7;34194:16;34226:7;:12;;34262:17;34281:5;34288:7;34297:6;34305:4;34239:71;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34226:85;;;;34239:71;34226:85;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34184:127;;;;34381:2;34392:3;34373:24;;;;;;;;;;;;;;:::i;:::-;;34452:4;34447:3;34443:14;34437:21;34431:27;;34548:2;34540:55;;;;;;;7605:2:416;34540:55:144;;;7587:21:416;7644:2;7624:18;;;7617:30;7683:34;7663:18;;;7656:62;7754:10;7734:18;;;7727:38;7782:19;;34540:55:144;7403:404:416;34540:55:144;33932:670;;;33832:770;;;;:::o;25609:276::-;25697:4;25804:24;25820:7;25804:15;:24::i;:::-;:74;;;;;25832:46;25857:7;25866:11;25832:24;:46::i;24996:395::-;25061:4;25256:55;25281:7;25290:20;25256:24;:55::i;:::-;:128;;;;-1:-1:-1;25328:56:144;25353:7;25362:21;25328:24;:56::i;:::-;25327:57;25256:128;25249:135;24996:395;-1:-1:-1;;24996:395:144:o;27448:::-;27541:4;27720:12;27734:11;27749:50;27778:7;27787:11;27749:28;:50::i;:::-;27719:80;;;;27818:7;:17;;;;-1:-1:-1;27829:6:144;27810:26;-1:-1:-1;;;;27448:395:144:o;28360:402::-;28508:57;;;7986:66:416;7974:79;;28508:57:144;;;;7956:98:416;;;;28508:57:144;;;;;;;;;;7929:18:416;;;;28508:57:144;;;;;;;;;28531:20;28508:57;;;28613:33;;28457:4;;;;;;;;28613:18;;;;:33;;28508:57;;28613:33;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28575:71;;;;28676:2;28660:6;:13;:18;28656:45;;;28688:5;28695;28680:21;;;;;;;;;28656:45;28719:7;28739:6;28728:26;;;;;;;;;;;;:::i;:::-;28711:44;;;;;;;28360:402;;;;;;:::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:184::-;1424:77;1421:1;1414:88;1521:4;1518:1;1511:15;1545:4;1542:1;1535:15;1561:1122;1647:6;1655;1663;1716:2;1704:9;1695:7;1691:23;1687:32;1684:52;;;1732:1;1729;1722:12;1684:52;1755:29;1774:9;1755:29;:::i;:::-;1745:39;;1831:2;1820:9;1816:18;1803:32;1793:42;;1886:2;1875:9;1871:18;1858:32;1909:18;1950:2;1942:6;1939:14;1936:34;;;1966:1;1963;1956:12;1936:34;2004:6;1993:9;1989:22;1979:32;;2049:7;2042:4;2038:2;2034:13;2030:27;2020:55;;2071:1;2068;2061:12;2020:55;2107:2;2094:16;2129:2;2125;2122:10;2119:36;;;2135:18;;:::i;:::-;2269:2;2263:9;2331:4;2323:13;;2174:66;2319:22;;;2343:2;2315:31;2311:40;2299:53;;;2367:18;;;2387:22;;;2364:46;2361:72;;;2413:18;;:::i;:::-;2453:10;2449:2;2442:22;2488:2;2480:6;2473:18;2528:7;2523:2;2518;2514;2510:11;2506:20;2503:33;2500:53;;;2549:1;2546;2539:12;2500:53;2605:2;2600;2596;2592:11;2587:2;2579:6;2575:15;2562:46;2650:1;2645:2;2640;2632:6;2628:15;2624:24;2617:35;2671:6;2661:16;;;;;;;1561:1122;;;;;:::o;2688:260::-;2756:6;2764;2817:2;2805:9;2796:7;2792:23;2788:32;2785:52;;;2833:1;2830;2823:12;2785:52;2856:29;2875:9;2856:29;:::i;:::-;2846:39;;2904:38;2938:2;2927:9;2923:18;2904:38;:::i;:::-;2894:48;;2688:260;;;;;:::o;4571:258::-;4643:1;4653:113;4667:6;4664:1;4661:13;4653:113;;;4743:11;;;4737:18;4724:11;;;4717:39;4689:2;4682:10;4653:113;;;4784:6;4781:1;4778:13;4775:48;;;4819:1;4810:6;4805:3;4801:16;4794:27;4775:48;;4571:258;;;:::o;4834:317::-;4876:3;4914:5;4908:12;4941:6;4936:3;4929:19;4957:63;5013:6;5006:4;5001:3;4997:14;4990:4;4983:5;4979:16;4957:63;:::i;:::-;5065:2;5053:15;5070:66;5049:88;5040:98;;;;5140:4;5036:109;;4834:317;-1:-1:-1;;4834:317:416:o;5156:220::-;5305:2;5294:9;5287:21;5268:4;5325:45;5366:2;5355:9;5351:18;5343:6;5325:45;:::i;5381:184::-;5433:77;5430:1;5423:88;5530:4;5527:1;5520:15;5554:4;5551:1;5544:15;5570:125;5610:4;5638:1;5635;5632:8;5629:34;;;5643:18;;:::i;:::-;-1:-1:-1;5680:9:416;;5570:125::o;5700:128::-;5740:3;5771:1;5767:6;5764:1;5761:13;5758:39;;;5777:18;;:::i;:::-;-1:-1:-1;5813:9:416;;5700:128::o;6607:512::-;6801:4;6830:42;6911:2;6903:6;6899:15;6888:9;6881:34;6963:2;6955:6;6951:15;6946:2;6935:9;6931:18;6924:43;;7003:6;6998:2;6987:9;6983:18;6976:34;7046:3;7041:2;7030:9;7026:18;7019:31;7067:46;7108:3;7097:9;7093:19;7085:6;7067:46;:::i;:::-;7059:54;6607:512;-1:-1:-1;;;;;;6607:512:416:o;7124:274::-;7253:3;7291:6;7285:13;7307:53;7353:6;7348:3;7341:4;7333:6;7329:17;7307:53;:::i;:::-;7376:16;;;;;7124:274;-1:-1:-1;;7124:274:416:o;8065:277::-;8132:6;8185:2;8173:9;8164:7;8160:23;8156:32;8153:52;;;8201:1;8198;8191:12;8153:52;8233:9;8227:16;8286:5;8279:13;8272:21;8265:5;8262:32;8252:60;;8308:1;8305;8298:12","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","approveAndCall(address,uint256,bytes)":"cae9ca51","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\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"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\":{\"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\":\"ERC20OnApprove\"},\"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":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approveAndCall","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":"ERC20OnApprove"},"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:ERC20OnApprove","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":89769,"contract":"src/L1/L2NativeToken.sol:ERC20OnApprove","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":89771,"contract":"src/L1/L2NativeToken.sol:ERC20OnApprove","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","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","stateVariabl