UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 489 kB
{"abi":[{"type":"function","name":"addMinter","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isMinter","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceMinter","inputs":[],"outputs":[],"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":"MinterAdded","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MinterRemoved","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"}],"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":"0x608060405234801561001057600080fd5b5061001a3361001f565b610172565b61003781600361006e60201b6104bb1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61007882826100ef565b156100ca5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064015b60405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166101525760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016100c1565b506001600160a01b03166000908152602091909152604090205460ff1690565b610fce806101816000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063983b2d5611610081578063a9059cbb1161005b578063a9059cbb146101b2578063aa271e1a146101c5578063dd62ed3e146101d857600080fd5b8063983b2d56146101825780639865027514610197578063a457c2d71461019f57600080fd5b806339509351116100b2578063395093511461012657806340c10f191461013957806370a082311461014c57600080fd5b8063095ea7b3146100d957806318160ddd1461010157806323b872dd14610113575b600080fd5b6100ec6100e7366004610dc9565b61021e565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100f8565b6100ec610121366004610df3565b610234565b6100ec610134366004610dc9565b6102aa565b6100ec610147366004610dc9565b6102ed565b61010561015a366004610e2f565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610195610190366004610e2f565b610393565b005b610195610434565b6100ec6101ad366004610dc9565b61043f565b6100ec6101c0366004610dc9565b61049b565b6100ec6101d3366004610e2f565b6104a8565b6101056101e6366004610e4a565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600061022b33848461057c565b50600192915050565b6000610241848484610730565b6102a0843361029b85604051806060016040528060288152602001610f756028913973ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320338452909152902054919061095a565b61057c565b5060019392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161022b91859061029b90866109ae565b60006102f8336104a8565b610389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c650000000000000000000000000000000060648201526084015b60405180910390fd5b61022b8383610a2e565b61039c336104a8565b610428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c65000000000000000000000000000000006064820152608401610380565b61043181610b4d565b50565b61043d33610b9c565b565b600061022b338461029b85604051806060016040528060258152602001610f9d6025913933600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d168452909152902054919061095a565b600061022b338484610730565b60006104b5600383610beb565b92915050565b6104c58282610beb565b1561052c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610380565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff831661061e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff82166106c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166107d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff8216610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610380565b6108c081604051806060016040528060268152602001610f4f6026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919061095a565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604080822093909355908416815220546108fc90826109ae565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610723565b60008184841115610998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103809190610e7d565b5060006109a58486610f1f565b95945050505050565b6000806109bb8385610f36565b905083811015610a27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610380565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610aab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610380565b600254610ab890826109ae565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610aeb90826109ae565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b610b586003826104bb565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610ba7600382610cbd565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600073ffffffffffffffffffffffffffffffffffffffff8216610c90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610380565b5073ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff1690565b610cc78282610beb565b610d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610dc457600080fd5b919050565b60008060408385031215610ddc57600080fd5b610de583610da0565b946020939093013593505050565b600080600060608486031215610e0857600080fd5b610e1184610da0565b9250610e1f60208501610da0565b9150604084013590509250925092565b600060208284031215610e4157600080fd5b610a2782610da0565b60008060408385031215610e5d57600080fd5b610e6683610da0565b9150610e7460208401610da0565b90509250929050565b600060208083528351808285015260005b81811015610eaa57858101830151858201604001528201610e8e565b81811115610ebc576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610f3157610f31610ef0565b500390565b60008219821115610f4957610f49610ef0565b50019056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300080f000a","sourceMap":"22337:322:144:-:0;;;;;;;;;;;;-1:-1:-1;21311:24:144;984:10;21311;:24::i;:::-;22337:322;;21779:119;21835:21;21848:7;21835:8;:12;;;;;;:21;;;;:::i;:::-;21871:20;;-1:-1:-1;;;;;21871:20:144;;;;;;;;21779:119;:::o;20291:175::-;20368:18;20372:4;20378:7;20368:3;:18::i;:::-;20367:19;20359:63;;;;-1:-1:-1;;;20359:63:144;;216:2:416;20359:63:144;;;198:21:416;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;20359:63:144;;;;;;;;;-1:-1:-1;;;;;20432:20:144;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;20432:27:144;20455:4;20432:27;;;20291:175::o;20810:200::-;20882:4;-1:-1:-1;;;;;20906:21:144;;20898:68;;;;-1:-1:-1;;;20898:68:144;;576:2:416;20898:68:144;;;558:21:416;615:2;595:18;;;588:30;654:34;634:18;;;627:62;-1:-1:-1;;;705:18:416;;;698:32;747:19;;20898:68:144;374:398:416;20898:68:144;-1:-1:-1;;;;;;20983:20:144;:11;:20;;;;;;;;;;;;;;;20810:200::o;374:398:416:-;22337:322:144;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063983b2d5611610081578063a9059cbb1161005b578063a9059cbb146101b2578063aa271e1a146101c5578063dd62ed3e146101d857600080fd5b8063983b2d56146101825780639865027514610197578063a457c2d71461019f57600080fd5b806339509351116100b2578063395093511461012657806340c10f191461013957806370a082311461014c57600080fd5b8063095ea7b3146100d957806318160ddd1461010157806323b872dd14610113575b600080fd5b6100ec6100e7366004610dc9565b61021e565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100f8565b6100ec610121366004610df3565b610234565b6100ec610134366004610dc9565b6102aa565b6100ec610147366004610dc9565b6102ed565b61010561015a366004610e2f565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610195610190366004610e2f565b610393565b005b610195610434565b6100ec6101ad366004610dc9565b61043f565b6100ec6101c0366004610dc9565b61049b565b6100ec6101d3366004610e2f565b6104a8565b6101056101e6366004610e4a565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600061022b33848461057c565b50600192915050565b6000610241848484610730565b6102a0843361029b85604051806060016040528060288152602001610f756028913973ffffffffffffffffffffffffffffffffffffffff8a166000908152600160209081526040808320338452909152902054919061095a565b61057c565b5060019392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161022b91859061029b90866109ae565b60006102f8336104a8565b610389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c650000000000000000000000000000000060648201526084015b60405180910390fd5b61022b8383610a2e565b61039c336104a8565b610428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c65000000000000000000000000000000006064820152608401610380565b61043181610b4d565b50565b61043d33610b9c565b565b600061022b338461029b85604051806060016040528060258152602001610f9d6025913933600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d168452909152902054919061095a565b600061022b338484610730565b60006104b5600383610beb565b92915050565b6104c58282610beb565b1561052c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610380565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff831661061e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff82166106c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166107d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff8216610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610380565b6108c081604051806060016040528060268152602001610f4f6026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919061095a565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604080822093909355908416815220546108fc90826109ae565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610723565b60008184841115610998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103809190610e7d565b5060006109a58486610f1f565b95945050505050565b6000806109bb8385610f36565b905083811015610a27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610380565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610aab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610380565b600254610ab890826109ae565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610aeb90826109ae565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b610b586003826104bb565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610ba7600382610cbd565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600073ffffffffffffffffffffffffffffffffffffffff8216610c90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610380565b5073ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff1690565b610cc78282610beb565b610d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610380565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b803573ffffffffffffffffffffffffffffffffffffffff81168114610dc457600080fd5b919050565b60008060408385031215610ddc57600080fd5b610de583610da0565b946020939093013593505050565b600080600060608486031215610e0857600080fd5b610e1184610da0565b9250610e1f60208501610da0565b9150604084013590509250925092565b600060208284031215610e4157600080fd5b610a2782610da0565b60008060408385031215610e5d57600080fd5b610e6683610da0565b9150610e7460208401610da0565b90509250929050565b600060208083528351808285015260005b81811015610eaa57858101830151858201604001528201610e8e565b81811115610ebc576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610f3157610f31610ef0565b500390565b60008219821115610f4957610f49610ef0565b50019056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300080f000a","sourceMap":"22337:322: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;22517:140::-;;;;;;:::i;:::-;;:::i;13426:108::-;;;;;;:::i;:::-;13509:18;;13483:7;13509:18;;;;;;;;;;;;13426:108;21600:90;;;;;;:::i;:::-;;:::i;:::-;;21696:77;;;:::i;16278:304::-;;;;;;:::i;:::-;;:::i;13737:155::-;;;;;;:::i;:::-;;:::i;21487:107::-;;;;;;:::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;22517:140::-;22591:4;21388:22;984:10;21487:107;:::i;21388:22::-;21380:83;;;;;;;1839:2:416;21380:83:144;;;1821:21:416;1878:2;1858:18;;;1851:30;1917:34;1897:18;;;1890:62;1988:18;1968;;;1961:46;2024:19;;21380:83:144;;;;;;;;;22607:22:::1;22613:7;22622:6;22607:5;:22::i;21600:90::-:0;21388:22;984:10;21487:107;:::i;21388:22::-;21380:83;;;;;;;1839:2:416;21380:83:144;;;1821:21:416;1878:2;1858:18;;;1851:30;1917:34;1897:18;;;1890:62;1988:18;1968;;;1961:46;2024:19;;21380:83:144;1637:412:416;21380:83:144;21664:19:::1;21675:7;21664:10;:19::i;:::-;21600:90:::0;:::o;21696:77::-;21739:27;984:10;21739:13;:27::i;:::-;21696:77::o;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;21487:107::-;21543:4;21566:21;:8;21579:7;21566:12;:21::i;:::-;21559:28;21487:107;-1:-1:-1;;21487:107:144:o;20291:175::-;20368:18;20372:4;20378:7;20368:3;:18::i;:::-;20367:19;20359:63;;;;;;;2256:2:416;20359:63:144;;;2238:21:416;2295:2;2275:18;;;2268:30;2334:33;2314:18;;;2307:61;2385:18;;20359:63:144;2054:355:416;20359:63:144;20432:20;;:11;:20;;;;;;;;;;;:27;;;;20455:4;20432:27;;;20291:175::o;19209:332::-;19302:19;;;19294:68;;;;;;;2616:2:416;19294:68:144;;;2598:21:416;2655:2;2635:18;;;2628:30;2694:34;2674:18;;;2667:62;2765:6;2745:18;;;2738:34;2789:19;;19294:68:144;2414:400:416;19294:68:144;19380:21;;;19372:68;;;;;;;3021:2:416;19372:68:144;;;3003:21:416;3060:2;3040:18;;;3033:30;3099:34;3079:18;;;3072:62;3170:4;3150:18;;;3143:32;3192:19;;19372:68:144;2819: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;;;;;;;3424:2:416;17153:70:144;;;3406:21:416;3463:2;3443:18;;;3436:30;3502:34;3482:18;;;3475:62;3573:7;3553:18;;;3546:35;3598:19;;17153:70:144;3222:401:416;17153:70:144;17241:23;;;17233:71;;;;;;;3830:2:416;17233:71:144;;;3812:21:416;3869:2;3849:18;;;3842:30;3908:34;3888:18;;;3881:62;3979:5;3959:18;;;3952:33;4002:19;;17233:71:144;3628: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;;;;;;;5347:2:416;7413:46:144;;;5329:21:416;5386:2;5366:18;;;5359:30;5425:29;5405:18;;;5398:57;5472:18;;7413:46:144;5145:351:416;7413:46:144;7477:1;7309:176;-1:-1:-1;;;7309:176:144:o;17805:310::-;17888:21;;;17880:65;;;;;;;5703:2:416;17880:65:144;;;5685:21:416;5742:2;5722:18;;;5715:30;5781:33;5761:18;;;5754:61;5832:18;;17880:65:144;5501:355:416;17880:65:144;17971:12;;:24;;17988:6;17971:16;:24::i;:::-;17956:12;:39;18026:18;;;:9;:18;;;;;;;;;;;:30;;18049:6;18026:22;:30::i;:::-;18005:18;;;:9;:18;;;;;;;;;;;:51;;;;18071:37;;812:25:416;;;18005:18:144;;:9;;18071:37;;785:18:416;18071:37:144;;;;;;;17805:310;;:::o;21779:119::-;21835:21;:8;21848:7;21835:12;:21::i;:::-;21871:20;;;;;;;;;;;21779:119;:::o;21904:127::-;21963:24;:8;21979:7;21963:15;:24::i;:::-;22002:22;;;;;;;;;;;21904:127;:::o;20810:200::-;20882:4;20906:21;;;20898:68;;;;;;;6063:2:416;20898:68:144;;;6045:21:416;6102:2;6082:18;;;6075:30;6141:34;6121:18;;;6114:62;6212:4;6192:18;;;6185:32;6234:19;;20898:68:144;5861:398:416;20898:68:144;-1:-1:-1;20983:20:144;;:11;:20;;;;;;;;;;;;;;;20810:200::o;20541:180::-;20620:18;20624:4;20630:7;20620:3;:18::i;:::-;20612:64;;;;;;;6466:2:416;20612:64:144;;;6448:21:416;6505:2;6485:18;;;6478:30;6544:34;6524:18;;;6517:62;6615:3;6595:18;;;6588:31;6636:19;;20612:64:144;6264:397:416;20612:64:144;20686:20;;20709:5;20686:20;;;;;;;;;;;:28;;;;;;20541:180::o;14:196:416:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:254::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;459:2;444:18;;;;431:32;;-1:-1:-1;;;215:254:416:o;848:328::-;925:6;933;941;994:2;982:9;973:7;969:23;965:32;962:52;;;1010:1;1007;1000:12;962:52;1033:29;1052:9;1033:29;:::i;:::-;1023:39;;1081:38;1115:2;1104:9;1100:18;1081:38;:::i;:::-;1071:48;;1166:2;1155:9;1151:18;1138:32;1128:42;;848:328;;;;;:::o;1181:186::-;1240:6;1293:2;1281:9;1272:7;1268:23;1264:32;1261:52;;;1309:1;1306;1299:12;1261:52;1332:29;1351:9;1332:29;:::i;1372:260::-;1440:6;1448;1501:2;1489:9;1480:7;1476:23;1472:32;1469:52;;;1517:1;1514;1507:12;1469:52;1540:29;1559:9;1540:29;:::i;:::-;1530:39;;1588:38;1622:2;1611:9;1607:18;1588:38;:::i;:::-;1578:48;;1372:260;;;;;:::o;4032:656::-;4144:4;4173:2;4202;4191:9;4184:21;4234:6;4228:13;4277:6;4272:2;4261:9;4257:18;4250:34;4302:1;4312:140;4326:6;4323:1;4320:13;4312:140;;;4421:14;;;4417:23;;4411:30;4387:17;;;4406:2;4383:26;4376:66;4341:10;;4312:140;;;4470:6;4467:1;4464:13;4461:91;;;4540:1;4535:2;4526:6;4515:9;4511:22;4507:31;4500:42;4461:91;-1:-1:-1;4604:2:416;4592:15;4609:66;4588:88;4573:104;;;;4679:2;4569:113;;4032:656;-1:-1:-1;;;4032:656:416:o;4693:184::-;4745:77;4742:1;4735:88;4842:4;4839:1;4832:15;4866:4;4863:1;4856:15;4882:125;4922:4;4950:1;4947;4944:8;4941:34;;;4955:18;;:::i;:::-;-1:-1:-1;4992:9:416;;4882:125::o;5012:128::-;5052:3;5083:1;5079:6;5076:1;5073:13;5070:39;;;5089:18;;:::i;:::-;-1:-1:-1;5125:9:416;;5012:128::o","linkReferences":{}},"methodIdentifiers":{"addMinter(address)":"983b2d56","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","isMinter(address)":"aa271e1a","mint(address,uint256)":"40c10f19","renounceMinter()":"98650275","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\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"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\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that adds a set of accounts with the {MinterRole}, which have permission to mint (create) new tokens as they see fit. At construction, the deployer of the contract is the only minter.\",\"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.\"},\"mint(address,uint256)\":{\"details\":\"See {ERC20-_mint}. Requirements: - the caller must have the {MinterRole}.\"},\"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\":\"ERC20Mintable\"},\"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":"account","type":"address","indexed":true}],"type":"event","name":"MinterAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true}],"type":"event","name":"MinterRemoved","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":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addMinter"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceMinter"},{"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."},"mint(address,uint256)":{"details":"See {ERC20-_mint}. Requirements: - the caller must have the {MinterRole}."},"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":"ERC20Mintable"},"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:ERC20Mintable","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":89769,"contract":"src/L1/L2NativeToken.sol:ERC20Mintable","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":89771,"contract":"src/L1/L2NativeToken.sol:ERC20Mintable","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":90277,"contract":"src/L1/L2NativeToken.sol:ERC20Mintable","label":"_minters","offset":0,"slot":"3","type":"t_struct(Role)90179_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"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_struct(Role)90179_storage":{"encoding":"inplace","label":"struct Roles.Role","numberOfBytes":"32","members":[{"astId":90178,"contract":"src/L1/L2NativeToken.sol:ERC20Mintable","label":"bearer","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Extension of {ERC20} that adds a set of accounts with the {MinterRole}, which have permission to mint (create) new tokens as they see fit. At construction, the deployer of the contract is the only minter.","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."},"mint(address,uint256)":{"details":"See {ERC20-_mint}. Requirements: - the caller must have the {MinterRole}."},"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","