UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 137 kB
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC20","inputs":[{"name":"_l1Token","type":"address","internalType":"address"},{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC20To","inputs":[{"name":"_l1Token","type":"address","internalType":"address"},{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"finalizeERC20Withdrawal","inputs":[{"name":"_l1Token","type":"address","internalType":"address"},{"name":"_l2Token","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1Usdc","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"l2TokenBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"l2Usdc","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"ERC20DepositInitiated","inputs":[{"name":"l1Token","type":"address","indexed":true,"internalType":"address"},{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC20WithdrawalFinalized","inputs":[{"name":"l1Token","type":"address","indexed":true,"internalType":"address"},{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b5061110c8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c80638f601f6611610072578063a1b4bc0411610058578063a1b4bc041461018a578063a9f9e675146101aa578063c89701a2146101bd575f80fd5b80638f601f661461013457806391c49bf81461016c575f80fd5b80633cb747bf146100a3578063540abf73146100ec57806356c3b587146101015780638708762314610121575b5f80fd5b5f546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100ff6100fa366004610d0b565b6101dd565b005b6002546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b6100ff61012f366004610d9b565b6101f6565b61015e610142366004610e19565b600460209081525f928352604080842090915290825290205481565b6040519081526020016100e3565b60015473ffffffffffffffffffffffffffffffffffffffff166100c2565b6003546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b6100ff6101b8366004610e50565b6102a2565b6001546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b6101ed878733888888888861063e565b50505050505050565b333b1561028a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b61029a868633338888888861063e565b505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314801561037357506001545f54604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610ec3565b73ffffffffffffffffffffffffffffffffffffffff16145b610425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610281565b600254879073ffffffffffffffffffffffffffffffffffffffff8083169116146104ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610281565b600354879073ffffffffffffffffffffffffffffffffffffffff808316911614610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610281565b73ffffffffffffffffffffffffffffffffffffffff808a165f908152600460209081526040808320938c168352929052205461056e908690610f0b565b73ffffffffffffffffffffffffffffffffffffffff808b165f818152600460209081526040808320948e16835293905291909120919091556105b190878761097c565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b38989898960405161062b9493929190610f65565b60405180910390a4505050505050505050565b600254889073ffffffffffffffffffffffffffffffffffffffff8083169116146106c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610281565b600354889073ffffffffffffffffffffffffffffffffffffffff80831691161461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610281565b61076c73ffffffffffffffffffffffffffffffffffffffff8b16893089610a02565b73ffffffffffffffffffffffffffffffffffffffff808b165f908152600460209081526040808320938d16835292905220546107a9908790610fa4565b73ffffffffffffffffffffffffffffffffffffffff808c165f9081526004602090815260408083208e851684529091528082209390935554600154925190821692633dbb202b9216907f662a633a000000000000000000000000000000000000000000000000000000009061082e908f908f908f908f908f908e908e90602401610fb7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526108c192918a9060040161104d565b5f604051808303815f87803b1580156108d8575f80fd5b505af11580156108ea573d5f803e3d5ffd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d03968a8a89896040516109689493929190610f65565b60405180910390a450505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526109fd91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610a4e565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff8481166024830152838116604483015260648201839052610a489186918216906323b872dd906084016109b6565b50505050565b5f610a6f73ffffffffffffffffffffffffffffffffffffffff841683610ae2565b905080515f14158015610a93575080806020019051810190610a9191906110ca565b155b156109fd576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610281565b6060610aef83835f610af8565b90505b92915050565b606081471015610b36576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610281565b5f808573ffffffffffffffffffffffffffffffffffffffff168486604051610b5e91906110e9565b5f6040518083038185875af1925050503d805f8114610b98576040519150601f19603f3d011682016040523d82523d5f602084013e610b9d565b606091505b5091509150610bad868383610bb9565b925050505b9392505050565b606082610bce57610bc982610c48565b610bb2565b8151158015610bf2575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610c41576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610281565b5080610bb2565b805115610c585780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff81168114610c8a575f80fd5b803563ffffffff81168114610cc1575f80fd5b919050565b5f8083601f840112610cd6575f80fd5b50813567ffffffffffffffff811115610ced575f80fd5b602083019150836020828501011115610d04575f80fd5b9250929050565b5f805f805f805f60c0888a031215610d21575f80fd5b8735610d2c81610c8d565b96506020880135610d3c81610c8d565b95506040880135610d4c81610c8d565b945060608801359350610d6160808901610cae565b925060a088013567ffffffffffffffff811115610d7c575f80fd5b610d888a828b01610cc6565b989b979a50959850939692959293505050565b5f805f805f8060a08789031215610db0575f80fd5b8635610dbb81610c8d565b95506020870135610dcb81610c8d565b945060408701359350610de060608801610cae565b9250608087013567ffffffffffffffff811115610dfb575f80fd5b610e0789828a01610cc6565b979a9699509497509295939492505050565b5f8060408385031215610e2a575f80fd5b8235610e3581610c8d565b91506020830135610e4581610c8d565b809150509250929050565b5f805f805f805f60c0888a031215610e66575f80fd5b8735610e7181610c8d565b96506020880135610e8181610c8d565b95506040880135610e9181610c8d565b94506060880135610ea181610c8d565b93506080880135925060a088013567ffffffffffffffff811115610d7c575f80fd5b5f60208284031215610ed3575f80fd5b8151610bb281610c8d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610af257610af2610ede565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201525f610f9a606083018486610f1e565b9695505050505050565b80820180821115610af257610af2610ede565b73ffffffffffffffffffffffffffffffffffffffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015273ffffffffffffffffffffffffffffffffffffffff8616604082015273ffffffffffffffffffffffffffffffffffffffff8516606082015283608082015260c060a08201525f61104060c083018486610f1e565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201525f83518060608401528060208601608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505063ffffffff83166040830152949350505050565b5f602082840312156110da575f80fd5b81518015158114610bb2575f80fd5b5f82518060208501845e5f92019182525091905056fea164736f6c634300081a000a","sourceMap":"735:6954:92:-:0;;;1654:17;;;;;;;;;;735:6954;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061009f575f3560e01c80638f601f6611610072578063a1b4bc0411610058578063a1b4bc041461018a578063a9f9e675146101aa578063c89701a2146101bd575f80fd5b80638f601f661461013457806391c49bf81461016c575f80fd5b80633cb747bf146100a3578063540abf73146100ec57806356c3b587146101015780638708762314610121575b5f80fd5b5f546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100ff6100fa366004610d0b565b6101dd565b005b6002546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b6100ff61012f366004610d9b565b6101f6565b61015e610142366004610e19565b600460209081525f928352604080842090915290825290205481565b6040519081526020016100e3565b60015473ffffffffffffffffffffffffffffffffffffffff166100c2565b6003546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b6100ff6101b8366004610e50565b6102a2565b6001546100c29073ffffffffffffffffffffffffffffffffffffffff1681565b6101ed878733888888888861063e565b50505050505050565b333b1561028a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b61029a868633338888888861063e565b505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314801561037357506001545f54604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610337573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035b9190610ec3565b73ffffffffffffffffffffffffffffffffffffffff16145b610425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610281565b600254879073ffffffffffffffffffffffffffffffffffffffff8083169116146104ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610281565b600354879073ffffffffffffffffffffffffffffffffffffffff808316911614610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610281565b73ffffffffffffffffffffffffffffffffffffffff808a165f908152600460209081526040808320938c168352929052205461056e908690610f0b565b73ffffffffffffffffffffffffffffffffffffffff808b165f818152600460209081526040808320948e16835293905291909120919091556105b190878761097c565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b38989898960405161062b9493929190610f65565b60405180910390a4505050505050505050565b600254889073ffffffffffffffffffffffffffffffffffffffff8083169116146106c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610281565b600354889073ffffffffffffffffffffffffffffffffffffffff80831691161461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610281565b61076c73ffffffffffffffffffffffffffffffffffffffff8b16893089610a02565b73ffffffffffffffffffffffffffffffffffffffff808b165f908152600460209081526040808320938d16835292905220546107a9908790610fa4565b73ffffffffffffffffffffffffffffffffffffffff808c165f9081526004602090815260408083208e851684529091528082209390935554600154925190821692633dbb202b9216907f662a633a000000000000000000000000000000000000000000000000000000009061082e908f908f908f908f908f908e908e90602401610fb7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526108c192918a9060040161104d565b5f604051808303815f87803b1580156108d8575f80fd5b505af11580156108ea573d5f803e3d5ffd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d03968a8a89896040516109689493929190610f65565b60405180910390a450505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526109fd91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610a4e565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff8481166024830152838116604483015260648201839052610a489186918216906323b872dd906084016109b6565b50505050565b5f610a6f73ffffffffffffffffffffffffffffffffffffffff841683610ae2565b905080515f14158015610a93575080806020019051810190610a9191906110ca565b155b156109fd576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610281565b6060610aef83835f610af8565b90505b92915050565b606081471015610b36576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610281565b5f808573ffffffffffffffffffffffffffffffffffffffff168486604051610b5e91906110e9565b5f6040518083038185875af1925050503d805f8114610b98576040519150601f19603f3d011682016040523d82523d5f602084013e610b9d565b606091505b5091509150610bad868383610bb9565b925050505b9392505050565b606082610bce57610bc982610c48565b610bb2565b8151158015610bf2575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610c41576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610281565b5080610bb2565b805115610c585780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff81168114610c8a575f80fd5b803563ffffffff81168114610cc1575f80fd5b919050565b5f8083601f840112610cd6575f80fd5b50813567ffffffffffffffff811115610ced575f80fd5b602083019150836020828501011115610d04575f80fd5b9250929050565b5f805f805f805f60c0888a031215610d21575f80fd5b8735610d2c81610c8d565b96506020880135610d3c81610c8d565b95506040880135610d4c81610c8d565b945060608801359350610d6160808901610cae565b925060a088013567ffffffffffffffff811115610d7c575f80fd5b610d888a828b01610cc6565b989b979a50959850939692959293505050565b5f805f805f8060a08789031215610db0575f80fd5b8635610dbb81610c8d565b95506020870135610dcb81610c8d565b945060408701359350610de060608801610cae565b9250608087013567ffffffffffffffff811115610dfb575f80fd5b610e0789828a01610cc6565b979a9699509497509295939492505050565b5f8060408385031215610e2a575f80fd5b8235610e3581610c8d565b91506020830135610e4581610c8d565b809150509250929050565b5f805f805f805f60c0888a031215610e66575f80fd5b8735610e7181610c8d565b96506020880135610e8181610c8d565b95506040880135610e9181610c8d565b94506060880135610ea181610c8d565b93506080880135925060a088013567ffffffffffffffff811115610d7c575f80fd5b5f60208284031215610ed3575f80fd5b8151610bb281610c8d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610af257610af2610ede565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201525f610f9a606083018486610f1e565b9695505050505050565b80820180821115610af257610af2610ede565b73ffffffffffffffffffffffffffffffffffffffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015273ffffffffffffffffffffffffffffffffffffffff8616604082015273ffffffffffffffffffffffffffffffffffffffff8516606082015283608082015260c060a08201525f61104060c083018486610f1e565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201525f83518060608401528060208601608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505063ffffffff83166040830152949350505050565b5f602082840312156110da575f80fd5b81518015158114610bb2575f80fd5b5f82518060208501845e5f92019182525091905056fea164736f6c634300081a000a","sourceMap":"735:6954:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;94:24:96;;;;;;;;;;;;190:42:100;178:55;;;160:74;;148:2;133:18;94:24:96;;;;;;;;4696:338:92;;;;;;:::i;:::-;;:::i;:::-;;156:21:96;;;;;;;;;3644:338:92;;;;;;:::i;:::-;;:::i;201:63:94:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3373:25:100;;;3361:2;3346:18;201:63:94;3227:177:100;6220:101:92;6302:11;;;;6220:101;;183:21:96;;;;;;;;;5499:529:92;;;;;;:::i;:::-;;:::i;124:26:96:-;;;;;;;;;4696:338:92;4934:93;4956:8;4966;4976:10;4988:3;4993:7;5002:12;5016:10;;4934:21;:93::i;:::-;4696:338;;;;;;;:::o;3644:::-;1186:10;1465:19:95;:23;1158:99:92;;;;;;;4706:2:100;1158:99:92;;;4688:21:100;4745:2;4725:18;;;4718:30;4784:34;4764:18;;;4757:62;4855:25;4835:18;;;4828:53;4898:19;;1158:99:92;;;;;;;;;3875:100:::1;3897:8;3907;3917:10;3929;3941:7;3950:12;3964:10;;3875:21;:100::i;:::-;3644:338:::0;;;;;;:::o;5499:529::-;1456:9;;;;1442:10;:23;:97;;;;-1:-1:-1;1528:11:92;;;1491:9;1469:55;;;;;;;;1528:11;;;;;1491:9;;;;1469:53;;:55;;;;;;;;;;;;;;;1491:9;1469:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:70;;;1442:97;1421:209;;;;;;;5386:2:100;1421:209:92;;;5368:21:100;5425:2;5405:18;;;5398:30;5464:34;5444:18;;;5437:62;5535:34;5515:18;;;5508:62;5607:3;5586:19;;;5579:32;5628:19;;1421:209:92;5184:469:100;1421:209:92;273:6:96::1;::::0;5754:8:92;;273:6:96::1;264:15:::0;;::::1;273:6:::0;::::1;264:15;256:39;;;::::0;::::1;::::0;;5860:2:100;256:39:96::1;::::0;::::1;5842:21:100::0;5899:2;5879:18;;;5872:30;5938:13;5918:18;;;5911:41;5969:18;;256:39:96::1;5658:335:100::0;256:39:96::1;381:6:::2;::::0;5783:8:92;;381:6:96::2;372:15:::0;;::::2;381:6:::0;::::2;372:15;364:39;;;::::0;::::2;::::0;;6200:2:100;364:39:96::2;::::0;::::2;6182:21:100::0;6239:2;6219:18;;;6212:30;6278:13;6258:18;;;6251:41;6309:18;;364:39:96::2;5998:335:100::0;364:39:96::2;5838:18:92::3;::::0;;::::3;;::::0;;;:8:::3;:18;::::0;;;;;;;:28;;::::3;::::0;;;;;;;:38:::3;::::0;5869:7;;5838:38:::3;:::i;:::-;5807:18;::::0;;::::3;;::::0;;;:8:::3;:18;::::0;;;;;;;:28;;::::3;::::0;;;;;;;;;:69;;;;5886:43:::3;::::0;5916:3;5921:7;5886:29:::3;:43::i;:::-;5989:5;5944:77;;5979:8;5944:77;;5969:8;5944:77;;;5996:3;6001:7;6010:10;;5944:77;;;;;;;;;:::i;:::-;;;;;;;;305:1:96::2;1640::92::1;5499:529:::0;;;;;;;:::o;6862:825::-;273:6:96;;7120:8:92;;273:6:96;264:15;;;273:6;;264:15;256:39;;;;;;;5860:2:100;256:39:96;;;5842:21:100;5899:2;5879:18;;;5872:30;5938:13;5918:18;;;5911:41;5969:18;;256:39:96;5658:335:100;256:39:96;381:6:::1;::::0;7149:8:92;;381:6:96::1;372:15:::0;;::::1;381:6:::0;::::1;372:15;364:39;;;::::0;::::1;::::0;;6200:2:100;364:39:96::1;::::0;::::1;6182:21:100::0;6239:2;6219:18;;;6212:30;6278:13;6258:18;;;6251:41;6309:18;;364:39:96::1;5998:335:100::0;364:39:96::1;7173:64:92::2;:33;::::0;::::2;7207:5:::0;7222:4:::2;7229:7:::0;7173:33:::2;:64::i;:::-;7278:18;::::0;;::::2;;::::0;;;:8:::2;:18;::::0;;;;;;;:28;;::::2;::::0;;;;;;;:38:::2;::::0;7309:7;;7278:38:::2;:::i;:::-;7247:18;::::0;;::::2;;::::0;;;:8:::2;:18;::::0;;;;;;;:28;;::::2;::::0;;;;;;;;:69;;;;7349:9;;7385:11;7410:145;;7349:9;;::::2;::::0;7327:44:::2;::::0;7385:11:::2;::::0;7450:38;;7410:145:::2;::::0;7256:8;;7266;;7510:5;;7517:3;;7522:7;;7531:10;;;;7410:145:::2;;;:::i;:::-;;::::0;;;;;::::2;::::0;;;;;;::::2;::::0;::::2;::::0;;::::2;;::::0;;;::::2;;::::0;;7327:264;::::2;::::0;;;;;;;;::::2;::::0;;7569:12;;7327:264:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;7648:5;7606:74;;7638:8;7606:74;;7628:8;7606:74;;;7655:3;7660:7;7669:10;;7606:74;;;;;;;;;:::i;:::-;;;;;;;;305:1:96::1;6862:825:92::0;;;;;;;;;:::o;1282:160:90:-;1391:43;;1406:14;9245:55:100;;;1391:43:90;;;9227:74:100;9317:18;;;9310:34;;;1364:71:90;;1384:5;;1406:14;;;;;9200:18:100;;1391:43:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:19;:71::i;:::-;1282:160;;;:::o;1681:188::-;1808:53;;1823:18;9575:55:100;;;1808:53:90;;;9557:74:100;9667:55;;;9647:18;;;9640:83;9739:18;;;9732:34;;;1781:81:90;;1801:5;;1823:18;;;;;9530::100;;1808:53:90;9355:417:100;1781:81:90;1681:188;;;;:::o;4038:629::-;4457:23;4483:33;:27;;;4511:4;4483:27;:33::i;:::-;4457:59;;4530:10;:17;4551:1;4530:22;;:57;;;;;4568:10;4557:30;;;;;;;;;;;;:::i;:::-;4556:31;4530:57;4526:135;;;4610:40;;;;;190:42:100;178:55;;4610:40:90;;;160:74:100;133:18;;4610:40:90;14:226:100;2719:151:83;2794:12;2825:38;2847:6;2855:4;2861:1;2825:21;:38::i;:::-;2818:45;;2719:151;;;;;:::o;3194:394::-;3293:12;3345:5;3321:21;:29;3317:108;;;3373:41;;;;;3408:4;3373:41;;;160:74:100;133:18;;3373:41:83;14:226:100;3317:108:83;3435:12;3449:23;3476:6;:11;;3496:5;3504:4;3476:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3434:75;;;;3526:55;3553:6;3561:7;3570:10;3526:26;:55::i;:::-;3519:62;;;;3194:394;;;;;;:::o;4641:610::-;4809:12;4842:7;4837:408;;4865:19;4873:10;4865:7;:19::i;:::-;4837:408;;;5089:17;;:22;:49;;;;-1:-1:-1;5115:18:83;;;;:23;5089:49;5085:119;;;5165:24;;;;;190:42:100;178:55;;5165:24:83;;;160:74:100;133:18;;5165:24:83;14:226:100;5085:119:83;-1:-1:-1;5224:10:83;5217:17;;5787:516;5918:17;;:21;5914:383;;6146:10;6140:17;6202:15;6189:10;6185:2;6181:19;6174:44;5914:383;6269:17;;;;;;;;;;;;;;5914:383;5787:516;:::o;245:154:100:-;331:42;324:5;320:54;313:5;310:65;300:93;;389:1;386;379:12;404:163;471:20;;531:10;520:22;;510:33;;500:61;;557:1;554;547:12;500:61;404:163;;;:::o;572:347::-;623:8;633:6;687:3;680:4;672:6;668:17;664:27;654:55;;705:1;702;695:12;654:55;-1:-1:-1;728:20:100;;771:18;760:30;;757:50;;;803:1;800;793:12;757:50;840:4;832:6;828:17;816:29;;892:3;885:4;876:6;868;864:19;860:30;857:39;854:59;;;909:1;906;899:12;854:59;572:347;;;;;:::o;924:1021::-;1038:6;1046;1054;1062;1070;1078;1086;1139:3;1127:9;1118:7;1114:23;1110:33;1107:53;;;1156:1;1153;1146:12;1107:53;1195:9;1182:23;1214:31;1239:5;1214:31;:::i;:::-;1264:5;-1:-1:-1;1321:2:100;1306:18;;1293:32;1334:33;1293:32;1334:33;:::i;:::-;1386:7;-1:-1:-1;1445:2:100;1430:18;;1417:32;1458:33;1417:32;1458:33;:::i;:::-;1510:7;-1:-1:-1;1590:2:100;1575:18;;1562:32;;-1:-1:-1;1639:38:100;1672:3;1657:19;;1639:38;:::i;:::-;1629:48;;1728:3;1717:9;1713:19;1700:33;1756:18;1748:6;1745:30;1742:50;;;1788:1;1785;1778:12;1742:50;1827:58;1877:7;1868:6;1857:9;1853:22;1827:58;:::i;:::-;924:1021;;;;-1:-1:-1;924:1021:100;;-1:-1:-1;924:1021:100;;;;1801:84;;-1:-1:-1;;;924:1021:100:o;1950:879::-;2055:6;2063;2071;2079;2087;2095;2148:3;2136:9;2127:7;2123:23;2119:33;2116:53;;;2165:1;2162;2155:12;2116:53;2204:9;2191:23;2223:31;2248:5;2223:31;:::i;:::-;2273:5;-1:-1:-1;2330:2:100;2315:18;;2302:32;2343:33;2302:32;2343:33;:::i;:::-;2395:7;-1:-1:-1;2475:2:100;2460:18;;2447:32;;-1:-1:-1;2524:37:100;2557:2;2542:18;;2524:37;:::i;:::-;2514:47;;2612:3;2601:9;2597:19;2584:33;2640:18;2632:6;2629:30;2626:50;;;2672:1;2669;2662:12;2626:50;2711:58;2761:7;2752:6;2741:9;2737:22;2711:58;:::i;:::-;1950:879;;;;-1:-1:-1;1950:879:100;;-1:-1:-1;1950:879:100;;2788:8;;1950:879;-1:-1:-1;;;1950:879:100:o;2834:388::-;2902:6;2910;2963:2;2951:9;2942:7;2938:23;2934:32;2931:52;;;2979:1;2976;2969:12;2931:52;3018:9;3005:23;3037:31;3062:5;3037:31;:::i;:::-;3087:5;-1:-1:-1;3144:2:100;3129:18;;3116:32;3157:33;3116:32;3157:33;:::i;:::-;3209:7;3199:17;;;2834:388;;;;;:::o;3409:1090::-;3524:6;3532;3540;3548;3556;3564;3572;3625:3;3613:9;3604:7;3600:23;3596:33;3593:53;;;3642:1;3639;3632:12;3593:53;3681:9;3668:23;3700:31;3725:5;3700:31;:::i;:::-;3750:5;-1:-1:-1;3807:2:100;3792:18;;3779:32;3820:33;3779:32;3820:33;:::i;:::-;3872:7;-1:-1:-1;3931:2:100;3916:18;;3903:32;3944:33;3903:32;3944:33;:::i;:::-;3996:7;-1:-1:-1;4055:2:100;4040:18;;4027:32;4068:33;4027:32;4068:33;:::i;:::-;4120:7;-1:-1:-1;4200:3:100;4185:19;;4172:33;;-1:-1:-1;4282:3:100;4267:19;;4254:33;4310:18;4299:30;;4296:50;;;4342:1;4339;4332:12;4928:251;4998:6;5051:2;5039:9;5030:7;5026:23;5022:32;5019:52;;;5067:1;5064;5057:12;5019:52;5099:9;5093:16;5118:31;5143:5;5118:31;:::i;6338:184::-;6390:77;6387:1;6380:88;6487:4;6484:1;6477:15;6511:4;6508:1;6501:15;6527:128;6594:9;;;6615:11;;;6612:37;;;6629:18;;:::i;6660:325::-;6748:6;6743:3;6736:19;6800:6;6793:5;6786:4;6781:3;6777:14;6764:43;;6852:1;6845:4;6836:6;6831:3;6827:16;6823:27;6816:38;6718:3;6974:4;6904:66;6899:2;6891:6;6887:15;6883:88;6878:3;6874:98;6870:109;6863:116;;6660:325;;;;:::o;6990:435::-;7215:42;7207:6;7203:55;7192:9;7185:74;7295:6;7290:2;7279:9;7275:18;7268:34;7338:2;7333;7322:9;7318:18;7311:30;7166:4;7358:61;7415:2;7404:9;7400:18;7392:6;7384;7358:61;:::i;:::-;7350:69;6990:435;-1:-1:-1;;;;;;6990:435:100:o;7430:125::-;7495:9;;;7516:10;;;7513:36;;;7529:18;;:::i;7560:799::-;7869:42;7861:6;7857:55;7846:9;7839:74;7961:42;7953:6;7949:55;7944:2;7933:9;7929:18;7922:83;8053:42;8045:6;8041:55;8036:2;8025:9;8021:18;8014:83;8145:42;8137:6;8133:55;8128:2;8117:9;8113:18;8106:83;8226:6;8220:3;8209:9;8205:19;8198:35;8270:3;8264;8253:9;8249:19;8242:32;7820:4;8291:62;8348:3;8337:9;8333:19;8325:6;8317;8291:62;:::i;:::-;8283:70;7560:799;-1:-1:-1;;;;;;;;;7560:799:100:o;8364:684::-;8577:42;8569:6;8565:55;8554:9;8547:74;8657:2;8652;8641:9;8637:18;8630:30;8528:4;8689:6;8683:13;8732:6;8727:2;8716:9;8712:18;8705:34;8792:6;8787:2;8779:6;8775:15;8769:3;8758:9;8754:19;8748:51;8849:1;8843:3;8834:6;8823:9;8819:22;8815:32;8808:43;8978:3;8908:66;8903:2;8895:6;8891:15;8887:88;8876:9;8872:104;8868:114;8860:122;;;9030:10;9022:6;9018:23;9013:2;9002:9;8998:18;8991:51;8364:684;;;;;;:::o;9777:277::-;9844:6;9897:2;9885:9;9876:7;9872:23;9868:32;9865:52;;;9913:1;9910;9903:12;9865:52;9945:9;9939:16;9998:5;9991:13;9984:21;9977:5;9974:32;9964:60;;10020:1;10017;10010:12;10059:301;10188:3;10226:6;10220:13;10272:6;10265:4;10257:6;10253:17;10248:3;10242:37;10334:1;10298:16;;10323:13;;;-1:-1:-1;10298:16:100;10059:301;-1:-1:-1;10059:301:100:o","linkReferences":{}},"methodIdentifiers":{"bridgeERC20(address,address,uint256,uint32,bytes)":"87087623","bridgeERC20To(address,address,address,uint256,uint32,bytes)":"540abf73","deposits(address,address)":"8f601f66","finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)":"a9f9e675","l1Usdc()":"56c3b587","l2TokenBridge()":"91c49bf8","l2Usdc()":"a1b4bc04","messenger()":"3cb747bf","otherBridge()":"c89701a2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20DepositInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC20WithdrawalFinalized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC20To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeERC20Withdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Usdc\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2TokenBridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Usdc\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"ERC20DepositInitiated(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever an ERC20 deposit is initiated.\",\"params\":{\"amount\":\"Amount of the ERC20 deposited.\",\"extraData\":\"Extra data attached to the deposit.\",\"from\":\"Address of the depositor.\",\"l1Token\":\"Address of the token on L1.\",\"l2Token\":\"Address of the corresponding token on L2.\",\"to\":\"Address of the recipient on L2.\"}},\"ERC20WithdrawalFinalized(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Emitted whenever an ERC20 withdrawal is finalized.\",\"params\":{\"amount\":\"Amount of the ERC20 withdrawn.\",\"extraData\":\"Extra data attached to the withdrawal.\",\"from\":\"Address of the withdrawer.\",\"l1Token\":\"Address of the token on L1.\",\"l2Token\":\"Address of the corresponding token on L2.\",\"to\":\"Address of the recipient on L1.\"}}},\"kind\":\"dev\",\"methods\":{\"bridgeERC20(address,address,uint256,uint32,bytes)\":{\"custom:legacy\":\"@notice Deposits some amount of ERC20 tokens into the sender's account on L2.\",\"params\":{\"_amount\":\"Amount of the ERC20 to deposit.\",\"_extraData\":\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_l1Token\":\"Address of the L1 token being deposited.\",\"_l2Token\":\"Address of the corresponding token on L2.\",\"_minGasLimit\":\"Minimum gas limit for the deposit message on L2.\"}},\"bridgeERC20To(address,address,address,uint256,uint32,bytes)\":{\"custom:legacy\":\"@notice Deposits some amount of ERC20 tokens into a target account on L2.\",\"params\":{\"_amount\":\"Amount of the ERC20 to deposit.\",\"_extraData\":\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\",\"_l1Token\":\"Address of the L1 token being deposited.\",\"_l2Token\":\"Address of the corresponding token on L2.\",\"_minGasLimit\":\"Minimum gas limit for the deposit message on L2.\",\"_to\":\"Address of the recipient on L2.\"}},\"finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)\":{\"custom:legacy\":\"@notice Finalizes a withdrawal of ERC20 tokens from L2.\",\"params\":{\"_amount\":\"Amount of the ERC20 to withdraw.\",\"_extraData\":\"Optional data forwarded from L2.\",\"_from\":\"Address of the withdrawer on L2.\",\"_l1Token\":\"Address of the token on L1.\",\"_l2Token\":\"Address of the corresponding token on L2.\",\"_to\":\"Address of the recipient on L1.\"}},\"l2TokenBridge()\":{\"custom:legacy\":\"@notice Retrieves the access of the corresponding L2 bridge contract.\",\"returns\":{\"_0\":\"Address of the corresponding L2 bridge contract.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L1/tokamak-UsdcBridge/L1UsdcBridge.sol\":\"L1UsdcBridge\"},\"evmVersion\":\"cancun\",\"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/tokamak-contracts/USDC/L1/libraries/Address.sol\":{\"keccak256\":\"0x7a2becd0fc138ccd81f63dc85f73aa43ac9e16107b1060dfb9bfcbc46e089060\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9cfc1478aba538118b63dca8c71983d8d522b9ac97b96364ae27dc505b675a3\",\"dweb:/ipfs/QmQJnCRPn61XoPbDtykyGGcXS4YYydmMCxcWDymhBTG6JJ\"]},\"src/tokamak-contracts/USDC/L1/libraries/IERC20.sol\":{\"keccak256\":\"0x32fc81940e398095a082754088b43bcd70dda770a819586abc34fe8b387a42b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e2c83e48dbd6c4576400811d11eccbbe8dd44d652fdbaabab22b6fa1188bba\",\"dweb:/ipfs/QmZkWkDCQGwJH44EN61jov9MY34qg15WYtAvJYvkSJusx4\"]},\"src/tokamak-contracts/USDC/L1/libraries/IERC20Permit.sol\":{\"keccak256\":\"0x38fa29834657581cb1cdb1a18762bf9f730e7f68523d63fb181606f6bea7b173\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d2fa77781be9fa115f4837d80d431761f4af463c3dbd9d5b103a4e2dcf8eee1\",\"dweb:/ipfs/QmSHYchPnZBddirEAa5wnGUgFVnBfq6v9gVJ4wdrtYxsrc\"]},\"src/tokamak-contracts/USDC/L1/libraries/SafeERC20.sol\":{\"keccak256\":\"0x1b796214de865837b31080bf4286131652925a25e206d11c1b870ea267742bae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e527f3891bbc917742346bb4cc230893bbf68eb925d2f0c70b475f3b901b3dd\",\"dweb:/ipfs/QmNeJTgxQKX7zvRCGYA81SJRMjkxcNEdemFcqpZsWJ4q9s\"]},\"src/tokamak-contracts/USDC/L1/tokamak-UsdcBridge/L1UsdcBridge.sol\":{\"keccak256\":\"0xbd0042d258b9f10397ccb81dea8fc2ee5d787e5e20bc6d03f28aa62948b8be87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2cdb3bbe78dbcf306b0a49b09f149e94ee6d1c22b16d3e2315d5b5e356dc9\",\"dweb:/ipfs/QmUcRuWcqqzDboPkVLLwdDGqj4vzc83DWp98cxsbZ1pixj\"]},\"src/tokamak-contracts/USDC/L1/tokamak-UsdcBridge/L1UsdcBridgeStorage.sol\":{\"keccak256\":\"0xcca6b8186e534ad59a4878f6756334175cd50aca504c4139d21930fce77e5b00\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4a647cb71c35e41a53248db3c03a3d05ae169180465ee6947b48efd05afd4f5\",\"dweb:/ipfs/Qmf26yXFLCm8LmX4CKCoZ6wg6pGrnJmC3VYXhLFNHsA49i\"]},\"src/tokamak-contracts/USDC/libraries/Address.sol\":{\"keccak256\":\"0x1d1dd930cd27cde1a42984254a481d8edb615a93bcea1a1d188568018751c92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f54df028fb62a3a9ffdedba1b9209391b985b229c7c37a28acf27d7b34478246\",\"dweb:/ipfs/QmdkP1fEBq8mieprvTCMcFTihDfBNzEXwRRAE9teJ8x4nx\"]},\"src/tokamak-contracts/USDC/universal/StandardBridgeStorage.sol\":{\"keccak256\":\"0xc61c40717e55341880ec5ba5c8f7366c7f7cbe045e55cd5bab643dbb60295bac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://237615182e4d1bb0447434f22e494222f5ff9ca97f2673d55b99918eb84bd723\",\"dweb:/ipfs/Qmd8GxkGfN3uhxLQygkQws1c7d47YA6K5p6PSFYM3m8bpT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"l1Token","type":"address","indexed":true},{"internalType":"address","name":"l2Token","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20DepositInitiated","anonymous":false},{"inputs":[{"internalType":"address","name":"l1Token","type":"address","indexed":true},{"internalType":"address","name":"l2Token","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC20WithdrawalFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC20"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC20To"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeERC20Withdrawal"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Usdc","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2Usdc","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"bridgeERC20(address,address,uint256,uint32,bytes)":{"custom:legacy":"@notice Deposits some amount of ERC20 tokens into the sender's account on L2.","params":{"_amount":"Amount of the ERC20 to deposit.","_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_l1Token":"Address of the L1 token being deposited.","_l2Token":"Address of the corresponding token on L2.","_minGasLimit":"Minimum gas limit for the deposit message on L2."}},"bridgeERC20To(address,address,address,uint256,uint32,bytes)":{"custom:legacy":"@notice Deposits some amount of ERC20 tokens into a target account on L2.","params":{"_amount":"Amount of the ERC20 to deposit.","_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_l1Token":"Address of the L1 token being deposited.","_l2Token":"Address of the corresponding token on L2.","_minGasLimit":"Minimum gas limit for the deposit message on L2.","_to":"Address of the recipient on L2."}},"finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)":{"custom:legacy":"@notice Finalizes a withdrawal of ERC20 tokens from L2.","params":{"_amount":"Amount of the ERC20 to withdraw.","_extraData":"Optional data forwarded from L2.","_from":"Address of the withdrawer on L2.","_l1Token":"Address of the token on L1.","_l2Token":"Address of the corresponding token on L2.","_to":"Address of the recipient on L1."}},"l2TokenBridge()":{"custom:legacy":"@notice Retrieves the access of the corresponding L2 bridge contract.","returns":{"_0":"Address of the corresponding L2 bridge contract."}}},"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/cont