@tokamak-network/thanos-contracts
Version:
1 lines • 137 kB
JSON
{"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":"0x608060405234801561001057600080fd5b5061113d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80638f601f6611610076578063a1b4bc041161005b578063a1b4bc0414610191578063a9f9e675146101b1578063c89701a2146101c457600080fd5b80638f601f661461013a57806391c49bf81461017357600080fd5b80633cb747bf146100a8578063540abf73146100f257806356c3b587146101075780638708762314610127575b600080fd5b6000546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610105610100366004610d28565b6101e4565b005b6002546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b610105610135366004610dbe565b6101fd565b610165610148366004610e41565b600460209081526000928352604080842090915290825290205481565b6040519081526020016100e9565b60015473ffffffffffffffffffffffffffffffffffffffff166100c8565b6003546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b6101056101bf366004610e7a565b6102a9565b6001546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b6101f4878733888888888861064b565b50505050505050565b333b15610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6102a1868633338888888861064b565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314801561037e5750600154600054604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103669190610ef3565b73ffffffffffffffffffffffffffffffffffffffff16145b610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610288565b600254879073ffffffffffffffffffffffffffffffffffffffff8083169116146104b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610288565b600354879073ffffffffffffffffffffffffffffffffffffffff80831691161461053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610288565b73ffffffffffffffffffffffffffffffffffffffff808a166000908152600460209081526040808320938c168352929052205461057a908690610f3f565b73ffffffffffffffffffffffffffffffffffffffff808b166000818152600460209081526040808320948e16835293905291909120919091556105be908787610990565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b3898989896040516106389493929190610f9f565b60405180910390a4505050505050505050565b600254889073ffffffffffffffffffffffffffffffffffffffff8083169116146106d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610288565b600354889073ffffffffffffffffffffffffffffffffffffffff808316911614610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610288565b61077973ffffffffffffffffffffffffffffffffffffffff8b16893089610a16565b73ffffffffffffffffffffffffffffffffffffffff808b166000908152600460209081526040808320938d16835292905220546107b7908790610fd5565b73ffffffffffffffffffffffffffffffffffffffff808c1660009081526004602090815260408083208e851684529091528082209390935554600154925190821692633dbb202b9216907f662a633a000000000000000000000000000000000000000000000000000000009061083d908f908f908f908f908f908e908e90602401610fed565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526108d092918a90600401611076565b600060405180830381600087803b1580156108ea57600080fd5b505af11580156108fe573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d03968a8a898960405161097c9493929190610f9f565b60405180910390a450505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff838116602483015260448201839052610a1191859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610a62565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff8481166024830152838116604483015260648201839052610a5c9186918216906323b872dd906084016109ca565b50505050565b6000610a8473ffffffffffffffffffffffffffffffffffffffff841683610af8565b90508051600014158015610aa9575080806020019051810190610aa791906110f2565b155b15610a11576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610288565b6060610b0683836000610b0d565b9392505050565b606081471015610b4b576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610288565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610b749190611114565b60006040518083038185875af1925050503d8060008114610bb1576040519150601f19603f3d011682016040523d82523d6000602084013e610bb6565b606091505b5091509150610bc6868383610bd0565b9695505050505050565b606082610be557610be082610c5f565b610b06565b8151158015610c09575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610c58576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610288565b5080610b06565b805115610c6f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff81168114610ca157600080fd5b803563ffffffff81168114610cda57600080fd5b919050565b60008083601f840112610cf157600080fd5b50813567ffffffffffffffff811115610d0957600080fd5b602083019150836020828501011115610d2157600080fd5b9250929050565b600080600080600080600060c0888a031215610d4357600080fd5b8735610d4e81610ca4565b96506020880135610d5e81610ca4565b95506040880135610d6e81610ca4565b945060608801359350610d8360808901610cc6565b925060a088013567ffffffffffffffff811115610d9f57600080fd5b610dab8a828b01610cdf565b989b979a50959850939692959293505050565b60008060008060008060a08789031215610dd757600080fd5b8635610de281610ca4565b95506020870135610df281610ca4565b945060408701359350610e0760608801610cc6565b9250608087013567ffffffffffffffff811115610e2357600080fd5b610e2f89828a01610cdf565b979a9699509497509295939492505050565b60008060408385031215610e5457600080fd5b8235610e5f81610ca4565b91506020830135610e6f81610ca4565b809150509250929050565b600080600080600080600060c0888a031215610e9557600080fd5b8735610ea081610ca4565b96506020880135610eb081610ca4565b95506040880135610ec081610ca4565b94506060880135610ed081610ca4565b93506080880135925060a088013567ffffffffffffffff811115610d9f57600080fd5b600060208284031215610f0557600080fd5b8151610b0681610ca4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610f5157610f51610f10565b500390565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610bc6606083018486610f56565b60008219821115610fe857610fe8610f10565b500190565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261103d60c083018486610f56565b9998505050505050505050565b60005b8381101561106557818101518382015260200161104d565b83811115610a5c5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8416815260606020820152600083518060608401526110b181608085016020880161104a565b63ffffffff93909316604083015250601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160160800192915050565b60006020828403121561110457600080fd5b81518015158114610b0657600080fd5b6000825161112681846020870161104a565b919091019291505056fea164736f6c634300080f000a","sourceMap":"735:6954:251:-:0;;;1654:17;;;;;;;;;;735:6954;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80638f601f6611610076578063a1b4bc041161005b578063a1b4bc0414610191578063a9f9e675146101b1578063c89701a2146101c457600080fd5b80638f601f661461013a57806391c49bf81461017357600080fd5b80633cb747bf146100a8578063540abf73146100f257806356c3b587146101075780638708762314610127575b600080fd5b6000546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610105610100366004610d28565b6101e4565b005b6002546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b610105610135366004610dbe565b6101fd565b610165610148366004610e41565b600460209081526000928352604080842090915290825290205481565b6040519081526020016100e9565b60015473ffffffffffffffffffffffffffffffffffffffff166100c8565b6003546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b6101056101bf366004610e7a565b6102a9565b6001546100c89073ffffffffffffffffffffffffffffffffffffffff1681565b6101f4878733888888888861064b565b50505050505050565b333b15610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6102a1868633338888888861064b565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314801561037e5750600154600054604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103669190610ef3565b73ffffffffffffffffffffffffffffffffffffffff16145b610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a401610288565b600254879073ffffffffffffffffffffffffffffffffffffffff8083169116146104b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610288565b600354879073ffffffffffffffffffffffffffffffffffffffff80831691161461053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610288565b73ffffffffffffffffffffffffffffffffffffffff808a166000908152600460209081526040808320938c168352929052205461057a908690610f3f565b73ffffffffffffffffffffffffffffffffffffffff808b166000818152600460209081526040808320948e16835293905291909120919091556105be908787610990565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b3898989896040516106389493929190610f9f565b60405180910390a4505050505050505050565b600254889073ffffffffffffffffffffffffffffffffffffffff8083169116146106d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3120757364630000000000000000000000000000000000000000006044820152606401610288565b600354889073ffffffffffffffffffffffffffffffffffffffff808316911614610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f74204c3220757364630000000000000000000000000000000000000000006044820152606401610288565b61077973ffffffffffffffffffffffffffffffffffffffff8b16893089610a16565b73ffffffffffffffffffffffffffffffffffffffff808b166000908152600460209081526040808320938d16835292905220546107b7908790610fd5565b73ffffffffffffffffffffffffffffffffffffffff808c1660009081526004602090815260408083208e851684529091528082209390935554600154925190821692633dbb202b9216907f662a633a000000000000000000000000000000000000000000000000000000009061083d908f908f908f908f908f908e908e90602401610fed565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526108d092918a90600401611076565b600060405180830381600087803b1580156108ea57600080fd5b505af11580156108fe573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d03968a8a898960405161097c9493929190610f9f565b60405180910390a450505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff838116602483015260448201839052610a1191859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610a62565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff8481166024830152838116604483015260648201839052610a5c9186918216906323b872dd906084016109ca565b50505050565b6000610a8473ffffffffffffffffffffffffffffffffffffffff841683610af8565b90508051600014158015610aa9575080806020019051810190610aa791906110f2565b155b15610a11576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610288565b6060610b0683836000610b0d565b9392505050565b606081471015610b4b576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610288565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610b749190611114565b60006040518083038185875af1925050503d8060008114610bb1576040519150601f19603f3d011682016040523d82523d6000602084013e610bb6565b606091505b5091509150610bc6868383610bd0565b9695505050505050565b606082610be557610be082610c5f565b610b06565b8151158015610c09575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610c58576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610288565b5080610b06565b805115610c6f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff81168114610ca157600080fd5b803563ffffffff81168114610cda57600080fd5b919050565b60008083601f840112610cf157600080fd5b50813567ffffffffffffffff811115610d0957600080fd5b602083019150836020828501011115610d2157600080fd5b9250929050565b600080600080600080600060c0888a031215610d4357600080fd5b8735610d4e81610ca4565b96506020880135610d5e81610ca4565b95506040880135610d6e81610ca4565b945060608801359350610d8360808901610cc6565b925060a088013567ffffffffffffffff811115610d9f57600080fd5b610dab8a828b01610cdf565b989b979a50959850939692959293505050565b60008060008060008060a08789031215610dd757600080fd5b8635610de281610ca4565b95506020870135610df281610ca4565b945060408701359350610e0760608801610cc6565b9250608087013567ffffffffffffffff811115610e2357600080fd5b610e2f89828a01610cdf565b979a9699509497509295939492505050565b60008060408385031215610e5457600080fd5b8235610e5f81610ca4565b91506020830135610e6f81610ca4565b809150509250929050565b600080600080600080600060c0888a031215610e9557600080fd5b8735610ea081610ca4565b96506020880135610eb081610ca4565b95506040880135610ec081610ca4565b94506060880135610ed081610ca4565b93506080880135925060a088013567ffffffffffffffff811115610d9f57600080fd5b600060208284031215610f0557600080fd5b8151610b0681610ca4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610f5157610f51610f10565b500390565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610bc6606083018486610f56565b60008219821115610fe857610fe8610f10565b500190565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261103d60c083018486610f56565b9998505050505050505050565b60005b8381101561106557818101518382015260200161104d565b83811115610a5c5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8416815260606020820152600083518060608401526110b181608085016020880161104a565b63ffffffff93909316604083015250601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160160800192915050565b60006020828403121561110457600080fd5b81518015158114610b0657600080fd5b6000825161112681846020870161104a565b919091019291505056fea164736f6c634300080f000a","sourceMap":"735:6954:251:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;94:24:266;;;;;;;;;;;;190:42:416;178:55;;;160:74;;148:2;133:18;94:24:266;;;;;;;;4696:338:251;;;;;;:::i;:::-;;:::i;:::-;;156:21:266;;;;;;;;;3644:338:251;;;;;;:::i;:::-;;:::i;201:63:252:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3269:25:416;;;3257:2;3242:18;201:63:252;3123:177:416;6220:101:251;6302:11;;;;6220:101;;183:21:266;;;;;;;;;5499:529:251;;;;;;:::i;:::-;;:::i;124:26:266:-;;;;;;;;;4696:338:251;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:265;:23;1158:99:251;;;;;;;4550:2:416;1158:99:251;;;4532:21:416;4589:2;4569:18;;;4562:30;4628:34;4608:18;;;4601:62;4699:25;4679:18;;;4672:53;4742:19;;1158:99:251;;;;;;;;;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:251;;;1491:9;1469:55;;;;;;;;1528:11;;;;;1491:9;;;;1469:53;;:55;;;;;;;;;;;;;;;1491:9;1469:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:70;;;1442:97;1421:209;;;;;;;5230:2:416;1421:209:251;;;5212:21:416;5269:2;5249:18;;;5242:30;5308:34;5288:18;;;5281:62;5379:34;5359:18;;;5352:62;5451:3;5430:19;;;5423:32;5472:19;;1421:209:251;5028:469:416;1421:209:251;273:6:266::1;::::0;5754:8:251;;273:6:266::1;264:15:::0;;::::1;273:6:::0;::::1;264:15;256:39;;;::::0;::::1;::::0;;5704:2:416;256:39:266::1;::::0;::::1;5686:21:416::0;5743:2;5723:18;;;5716:30;5782:13;5762:18;;;5755:41;5813:18;;256:39:266::1;5502:335:416::0;256:39:266::1;381:6:::2;::::0;5783:8:251;;381:6:266::2;372:15:::0;;::::2;381:6:::0;::::2;372:15;364:39;;;::::0;::::2;::::0;;6044:2:416;364:39:266::2;::::0;::::2;6026:21:416::0;6083:2;6063:18;;;6056:30;6122:13;6102:18;;;6095:41;6153:18;;364:39:266::2;5842:335:416::0;364:39:266::2;5838:18:251::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:266::2;1640::251::1;5499:529:::0;;;;;;;:::o;6862:825::-;273:6:266;;7120:8:251;;273:6:266;264:15;;;273:6;;264:15;256:39;;;;;;;5704:2:416;256:39:266;;;5686:21:416;5743:2;5723:18;;;5716:30;5782:13;5762:18;;;5755:41;5813:18;;256:39:266;5502:335:416;256:39:266;381:6:::1;::::0;7149:8:251;;381:6:266::1;372:15:::0;;::::1;381:6:::0;::::1;372:15;364:39;;;::::0;::::1;::::0;;6044:2:416;364:39:266::1;::::0;::::1;6026:21:416::0;6083:2;6063:18;;;6056:30;6122:13;6102:18;;;6095:41;6153:18;;364:39:266::1;5842:335:416::0;364:39:266::1;7173:64:251::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:266::1;6862:825:251::0;;;;;;;;;:::o;1282:160:260:-;1391:43;;1406:14;9217:55:416;;;1391:43:260;;;9199:74:416;9289:18;;;9282:34;;;1364:71:260;;1384:5;;1406:14;;;;;9172:18:416;;1391:43:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:19;:71::i;:::-;1282:160;;;:::o;1681:188::-;1808:53;;1823:18;9608:15:416;;;1808:53:260;;;9590:34:416;9660:15;;;9640:18;;;9633:43;9692:18;;;9685:34;;;1781:81:260;;1801:5;;1823:18;;;;;9502::416;;1808:53:260;9327:398:416;1781:81:260;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:416;178:55;;4610:40:260;;;160:74:416;133:18;;4610:40:260;14:226:416;2719:151:253;2794:12;2825:38;2847:6;2855:4;2861:1;2825:21;:38::i;:::-;2818:45;2719:151;-1:-1:-1;;;2719:151:253:o;3194:394::-;3293:12;3345:5;3321:21;:29;3317:108;;;3373:41;;;;;3408:4;3373:41;;;160:74:416;133:18;;3373:41:253;14:226:416;3317:108:253;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;-1:-1:-1;;;;;;3194:394:253: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:253;;;;:23;5089:49;5085:119;;;5165:24;;;;;190:42:416;178:55;;5165:24:253;;;160:74:416;133:18;;5165:24:253;14:226:416;5085:119:253;-1:-1:-1;5224:10:253;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:416:-;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:416;;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:969::-;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:416;1306:18;;1293:32;1334:33;1293:32;1334:33;:::i;:::-;1386:7;-1:-1:-1;1445:2:416;1430:18;;1417:32;1458:33;1417:32;1458:33;:::i;:::-;1510:7;-1:-1:-1;1564:2:416;1549:18;;1536:32;;-1:-1:-1;1587:38:416;1620:3;1605:19;;1587:38;:::i;:::-;1577:48;;1676:3;1665:9;1661:19;1648:33;1704:18;1696:6;1693:30;1690:50;;;1736:1;1733;1726:12;1690:50;1775:58;1825:7;1816:6;1805:9;1801:22;1775:58;:::i;:::-;924:969;;;;-1:-1:-1;924:969:416;;-1:-1:-1;924:969:416;;;;1749:84;;-1:-1:-1;;;924:969:416:o;1898:827::-;2003:6;2011;2019;2027;2035;2043;2096:3;2084:9;2075:7;2071:23;2067:33;2064:53;;;2113:1;2110;2103:12;2064:53;2152:9;2139:23;2171:31;2196:5;2171:31;:::i;:::-;2221:5;-1:-1:-1;2278:2:416;2263:18;;2250:32;2291:33;2250:32;2291:33;:::i;:::-;2343:7;-1:-1:-1;2397:2:416;2382:18;;2369:32;;-1:-1:-1;2420:37:416;2453:2;2438:18;;2420:37;:::i;:::-;2410:47;;2508:3;2497:9;2493:19;2480:33;2536:18;2528:6;2525:30;2522:50;;;2568:1;2565;2558:12;2522:50;2607:58;2657:7;2648:6;2637:9;2633:22;2607:58;:::i;:::-;1898:827;;;;-1:-1:-1;1898:827:416;;-1:-1:-1;1898:827:416;;2684:8;;1898:827;-1:-1:-1;;;1898:827:416:o;2730:388::-;2798:6;2806;2859:2;2847:9;2838:7;2834:23;2830:32;2827:52;;;2875:1;2872;2865:12;2827:52;2914:9;2901:23;2933:31;2958:5;2933:31;:::i;:::-;2983:5;-1:-1:-1;3040:2:416;3025:18;;3012:32;3053:33;3012:32;3053:33;:::i;:::-;3105:7;3095:17;;;2730:388;;;;;:::o;3305:1038::-;3420:6;3428;3436;3444;3452;3460;3468;3521:3;3509:9;3500:7;3496:23;3492:33;3489:53;;;3538:1;3535;3528:12;3489:53;3577:9;3564:23;3596:31;3621:5;3596:31;:::i;:::-;3646:5;-1:-1:-1;3703:2:416;3688:18;;3675:32;3716:33;3675:32;3716:33;:::i;:::-;3768:7;-1:-1:-1;3827:2:416;3812:18;;3799:32;3840:33;3799:32;3840:33;:::i;:::-;3892:7;-1:-1:-1;3951:2:416;3936:18;;3923:32;3964:33;3923:32;3964:33;:::i;:::-;4016:7;-1:-1:-1;4070:3:416;4055:19;;4042:33;;-1:-1:-1;4126:3:416;4111:19;;4098:33;4154:18;4143:30;;4140:50;;;4186:1;4183;4176:12;4772:251;4842:6;4895:2;4883:9;4874:7;4870:23;4866:32;4863:52;;;4911:1;4908;4901:12;4863:52;4943:9;4937:16;4962:31;4987:5;4962:31;:::i;6182:184::-;6234:77;6231:1;6224:88;6331:4;6328:1;6321:15;6355:4;6352:1;6345:15;6371:125;6411:4;6439:1;6436;6433:8;6430:34;;;6444:18;;:::i;:::-;-1:-1:-1;6481:9:416;;6371:125::o;6501:325::-;6589:6;6584:3;6577:19;6641:6;6634:5;6627:4;6622:3;6618:14;6605:43;;6693:1;6686:4;6677:6;6672:3;6668:16;6664:27;6657:38;6559:3;6815:4;6745:66;6740:2;6732:6;6728:15;6724:88;6719:3;6715:98;6711:109;6704:116;;6501:325;;;;:::o;6831:435::-;7056:42;7048:6;7044:55;7033:9;7026:74;7136:6;7131:2;7120:9;7116:18;7109:34;7179:2;7174;7163:9;7159:18;7152:30;7007:4;7199:61;7256:2;7245:9;7241:18;7233:6;7225;7199:61;:::i;7271:128::-;7311:3;7342:1;7338:6;7335:1;7332:13;7329:39;;;7348:18;;:::i;:::-;-1:-1:-1;7384:9:416;;7271:128::o;7404:700::-;7664:4;7693:42;7774:2;7766:6;7762:15;7751:9;7744:34;7826:2;7818:6;7814:15;7809:2;7798:9;7794:18;7787:43;7878:2;7870:6;7866:15;7861:2;7850:9;7846:18;7839:43;7930:2;7922:6;7918:15;7913:2;7902:9;7898:18;7891:43;;7971:6;7965:3;7954:9;7950:19;7943:35;8015:3;8009;7998:9;7994:19;7987:32;8036:62;8093:3;8082:9;8078:19;8070:6;8062;8036:62;:::i;:::-;8028:70;7404:700;-1:-1:-1;;;;;;;;;7404:700:416:o;8109:258::-;8181:1;8191:113;8205:6;8202:1;8199:13;8191:113;;;8281:11;;;8275:18;8262:11;;;8255:39;8227:2;8220:10;8191:113;;;8322:6;8319:1;8316:13;8313:48;;;-1:-1:-1;;8357:1:416;8339:16;;8332:27;8109:258::o;8372:648::-;8585:42;8577:6;8573:55;8562:9;8555:74;8665:2;8660;8649:9;8645:18;8638:30;8536:4;8697:6;8691:13;8740:6;8735:2;8724:9;8720:18;8713:34;8756:67;8816:6;8810:3;8799:9;8795:19;8790:2;8782:6;8778:15;8756:67;:::i;:::-;9002:10;8990:23;;;;8985:2;8970:18;;8963:51;-1:-1:-1;8875:2:416;8863:15;;;;8880:66;8859:88;8844:104;8950:3;8840:114;;8372:648;-1:-1:-1;;8372:648:416:o;9730:277::-;9797:6;9850:2;9838:9;9829:7;9825:23;9821:32;9818:52;;;9866:1;9863;9856:12;9818:52;9898:9;9892:16;9951:5;9944:13;9937:21;9930:5;9927:32;9917:60;;9973:1;9970;9963:12;10012:274;10141:3;10179:6;10173:13;10195:53;10241:6;10236:3;10229:4;10221:6;10217:17;10195:53;:::i;:::-;10264:16;;;;;10012:274;-1:-1:-1;;10012:274:416: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.15+commit.e14f2714\"},\"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\":\"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/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/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/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.15+commit.e14f2714"},"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":"Add