{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC721To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_l1ERC721Bridge","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ERC721BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC721BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000217565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016d60201b62000a3e1760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b62000122734200000000000000000000000000000000000007836200017c565b801562000169576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b61160c80620002276000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80637f46ddb211610076578063aa5574521161005b578063aa557452146101c9578063c4d66de8146101dc578063c89701a2146101ef57600080fd5b80637f46ddb21461018d578063927ede2d146101ab57600080fd5b806354fd4d50116100a757806354fd4d50146101225780635c975abb1461016b578063761f44931461017a57600080fd5b80633687011a146100c35780633cb747bf146100d8575b600080fd5b6100d66100d136600461128a565b61020f565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015e6040518060400160405280600581526020017f312e372e3000000000000000000000000000000000000000000000000000000081525081565b6040516101199190611378565b60405160008152602001610119565b6100d661018836600461138b565b6102bb565b60025473ffffffffffffffffffffffffffffffffffffffff166100f8565b60015473ffffffffffffffffffffffffffffffffffffffff166100f8565b6100d66101d7366004611423565b6107d9565b6100d66101ea36600461149a565b610895565b6002546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b333b156102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b38686333388888888610a5a565b505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156103905750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906114b7565b73ffffffffffffffffffffffffffffffffffffffff16145b61041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161029a565b3073ffffffffffffffffffffffffffffffffffffffff8816036104c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161029a565b6104eb877f74259ebf00000000000000000000000000000000000000000000000000000000610fc2565b610577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e20696e746560448201527f7266616365206973206e6f7420636f6d706c69616e7400000000000000000000606482015260840161029a565b8673ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e691906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433732312060648201527f6c6f63616c20746f6b656e000000000000000000000000000000000000000000608482015260a40161029a565b6040517fa144819400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905288169063a144819490604401600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac878787876040516107c8949392919061151d565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff851661087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161029a565b61088c8787338888888888610a5a565b50505050505050565b600054610100900460ff16158080156108b55750600054600160ff909116105b806108cf5750303b1580156108cf575060005460ff166001145b61095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161029a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109d773420000000000000000000000000000000000000783610fe5565b8015610a3a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161029a565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff891690636352211e90602401602060405180830381865afa158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c91906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324552433732314272696467653a205769746864726177616c206973206e6f60448201527f74206265696e6720696e69746961746564206279204e4654206f776e65720000606482015260840161029a565b60008873ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb791906114b7565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6560448201527f73206e6f74206d6174636820676976656e2076616c7565000000000000000000606482015260840161029a565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018790528a1690639dc29fac90604401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b50505050600063761f449360e01b828b8a8a8a8989604051602401610e23979695949392919061155d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260015460025492517f3dbb202b00000000000000000000000000000000000000000000000000000000815291935073ffffffffffffffffffffffffffffffffffffffff90811692633dbb202b92610f0292919091169085908a906004016115ba565b600060405180830381600087803b158015610f1c57600080fd5b505af1158015610f30573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a58a8a8989604051610fae949392919061151d565b60405180910390a450505050505050505050565b6000610fcd836110cf565b8015610fde5750610fde8383611134565b9392505050565b600054610100900460ff1661107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161029a565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b60006110fb827f01ffc9a700000000000000000000000000000000000000000000000000000000611134565b801561112e575061112c827fffffffff00000000000000000000000000000000000000000000000000000000611134565b155b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156111ec575060208210155b80156111f85750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461122557600080fd5b50565b803563ffffffff8116811461123c57600080fd5b919050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b60208301915083602082850101111561128357600080fd5b9250929050565b60008060008060008060a087890312156112a357600080fd5b86356112ae81611203565b955060208701356112be81611203565b9450604087013593506112d360608801611228565b9250608087013567ffffffffffffffff8111156112ef57600080fd5b6112fb89828a01611241565b979a9699509497509295939492505050565b6000815180845260005b8181101561133357602081850181015186830182015201611317565b81811115611345576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610fde602083018461130d565b600080600080600080600060c0888a0312156113a657600080fd5b87356113b181611203565b965060208801356113c181611203565b955060408801356113d181611203565b945060608801356113e181611203565b93506080880135925060a088013567ffffffffffffffff81111561140457600080fd5b6114108a828b01611241565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561143e57600080fd5b873561144981611203565b9650602088013561145981611203565b9550604088013561146981611203565b94506060880135935061147e60808901611228565b925060a088013567ffffffffffffffff81111561140457600080fd5b6000602082840312156114ac57600080fd5b8135610fde81611203565b6000602082840312156114c957600080fd5b8151610fde81611203565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006115536060830184866114d4565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526115ad60c0830184866114d4565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006115e9606083018561130d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"1389:4507:165:-:0;;;1576:98;;;;;;;;;-1:-1:-1;1615:52:165::1;1661:1;1615:10;:52::i;:::-;1389:4507:::0;;1813:263;3100:19:48;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:48;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:48;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:48;;216:2:416;3146:190:48;;;198:21:416;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:416;;;338:44;399:19;;3146:190:48;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:48;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:48;;;;;3372:65;1895:174:165::1;1491:42:222;2042:15:165::0;1895:19:::1;:174::i;:::-;3461:14:48::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:48;;;3531:14;;-1:-1:-1;581:36:416;;3531:14:48;;569:2:416;554:18;3531:14:48;;;;;;;3457:99;3090:472;1813:263:165;:::o;1175:320:64:-;-1:-1:-1;;;;;1465:19:64;;:23;;;1175:320::o;3043:234:268:-;4888:13:48;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:48;;830:2:416;4880:69:48;;;812:21:416;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:416;;;952:41;1010:19;;4880:69:48;628:407:416;4880:69:48;3212:9:268::1;:22:::0;;-1:-1:-1;;;;;3212:22:268;;::::1;-1:-1:-1::0;;;;;;3212:22:268;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;628:407:416:-;1389:4507:165;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80637f46ddb211610076578063aa5574521161005b578063aa557452146101c9578063c4d66de8146101dc578063c89701a2146101ef57600080fd5b80637f46ddb21461018d578063927ede2d146101ab57600080fd5b806354fd4d50116100a757806354fd4d50146101225780635c975abb1461016b578063761f44931461017a57600080fd5b80633687011a146100c35780633cb747bf146100d8575b600080fd5b6100d66100d136600461128a565b61020f565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015e6040518060400160405280600581526020017f312e372e3000000000000000000000000000000000000000000000000000000081525081565b6040516101199190611378565b60405160008152602001610119565b6100d661018836600461138b565b6102bb565b60025473ffffffffffffffffffffffffffffffffffffffff166100f8565b60015473ffffffffffffffffffffffffffffffffffffffff166100f8565b6100d66101d7366004611423565b6107d9565b6100d66101ea36600461149a565b610895565b6002546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b333b156102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b38686333388888888610a5a565b505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156103905750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906114b7565b73ffffffffffffffffffffffffffffffffffffffff16145b61041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161029a565b3073ffffffffffffffffffffffffffffffffffffffff8816036104c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161029a565b6104eb877f74259ebf00000000000000000000000000000000000000000000000000000000610fc2565b610577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e20696e746560448201527f7266616365206973206e6f7420636f6d706c69616e7400000000000000000000606482015260840161029a565b8673ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e691906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433732312060648201527f6c6f63616c20746f6b656e000000000000000000000000000000000000000000608482015260a40161029a565b6040517fa144819400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905288169063a144819490604401600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac878787876040516107c8949392919061151d565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff851661087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161029a565b61088c8787338888888888610a5a565b50505050505050565b600054610100900460ff16158080156108b55750600054600160ff909116105b806108cf5750303b1580156108cf575060005460ff166001145b61095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161029a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109d773420000000000000000000000000000000000000783610fe5565b8015610a3a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161029a565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff891690636352211e90602401602060405180830381865afa158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c91906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324552433732314272696467653a205769746864726177616c206973206e6f60448201527f74206265696e6720696e69746961746564206279204e4654206f776e65720000606482015260840161029a565b60008873ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb791906114b7565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6560448201527f73206e6f74206d6174636820676976656e2076616c7565000000000000000000606482015260840161029a565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018790528a1690639dc29fac90604401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b50505050600063761f449360e01b828b8a8a8a8989604051602401610e23979695949392919061155d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260015460025492517f3dbb202b00000000000000000000000000000000000000000000000000000000815291935073ffffffffffffffffffffffffffffffffffffffff90811692633dbb202b92610f0292919091169085908a906004016115ba565b600060405180830381600087803b158015610f1c57600080fd5b505af1158015610f30573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a58a8a8989604051610fae949392919061151d565b60405180910390a450505050505050505050565b6000610fcd836110cf565b8015610fde5750610fde8383611134565b9392505050565b600054610100900460ff1661107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161029a565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b60006110fb827f01ffc9a700000000000000000000000000000000000000000000000000000000611134565b801561112e575061112c827fffffffff00000000000000000000000000000000000000000000000000000000611134565b155b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156111ec575060208210155b80156111f85750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461122557600080fd5b50565b803563ffffffff8116811461123c57600080fd5b919050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b60208301915083602082850101111561128357600080fd5b9250929050565b60008060008060008060a087890312156112a357600080fd5b86356112ae81611203565b955060208701356112be81611203565b9450604087013593506112d360608801611228565b9250608087013567ffffffffffffffff8111156112ef57600080fd5b6112fb89828a01611241565b979a9699509497509295939492505050565b6000815180845260005b8181101561133357602081850181015186830182015201611317565b81811115611345576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610fde602083018461130d565b600080600080600080600060c0888a0312156113a657600080fd5b87356113b181611203565b965060208801356113c181611203565b955060408801356113d181611203565b945060608801356113e181611203565b93506080880135925060a088013567ffffffffffffffff81111561140457600080fd5b6114108a828b01611241565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561143e57600080fd5b873561144981611203565b9650602088013561145981611203565b9550604088013561146981611203565b94506060880135935061147e60808901611228565b925060a088013567ffffffffffffffff81111561140457600080fd5b6000602082840312156114ac57600080fd5b8135610fde81611203565b6000602082840312156114c957600080fd5b8151610fde81611203565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006115536060830184866114d4565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526115ad60c0830184866114d4565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006115e9606083018561130d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"1389:4507:165:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5688:971:268;;;;;;:::i;:::-;;:::i;:::-;;829:37;;;;;;;;;;;;1732:42:416;1720:55;;;1702:74;;1690:2;1675:18;829:37:268;;;;;;;;1473:40:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4239:82:268:-;;;4286:4;2688:41:416;;2676:2;2661:18;4239:82:268;2548:187:416;2843:1275:165;;;;;;:::i;:::-;;:::i;3858:98:268:-;3938:11;;;;3858:98;;3511:99;3594:9;;;;3511:99;;7885:428;;;;;;:::i;:::-;;:::i;1813:263:165:-;;;;;;:::i;:::-;;:::i;967:33:268:-;;;;;;;;;5688:971;6472:10;1465:19:64;:23;6444:89:268;;;;;;;5483:2:416;6444:89:268;;;5465:21:416;5522:2;5502:18;;;5495:30;5561:34;5541:18;;;5534:62;5632:15;5612:18;;;5605:43;5665:19;;6444:89:268;;;;;;;;;6544:108;6566:11;6579:12;6593:10;6605;6617:8;6627:12;6641:10;;6544:21;:108::i;:::-;5688:971;;;;;;:::o;2843:1275:165:-;2669:9:268;;;;2647:10;:32;:92;;;;-1:-1:-1;2727:11:268;;;2683:9;:32;;;;;;;;2727:11;;;;;2683:9;;;;:30;;:32;;;;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;2647:92;2626:202;;;;;;;6153:2:416;2626:202:268;;;6135:21:416;6192:2;6172:18;;;6165:30;6231:34;6211:18;;;6204:62;6302:33;6282:18;;;6275:61;6353:19;;2626:202:268;5951:427:416;2626:202:268;3129:4:165::1;3106:28;::::0;::::1;::::0;3098:83:::1;;;::::0;::::1;::::0;;6585:2:416;3098:83:165::1;::::0;::::1;6567:21:416::0;6624:2;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6734:12;6714:18;;;6707:40;6764:19;;3098:83:165::1;6383:406:416::0;3098:83:165::1;3331:87;3363:11;3376:41;3331:31;:87::i;:::-;3310:188;;;::::0;::::1;::::0;;6996:2:416;3310:188:165::1;::::0;::::1;6978:21:416::0;7035:2;7015:18;;;7008:30;7074:34;7054:18;;;7047:62;7145:24;7125:18;;;7118:52;7187:19;;3310:188:165::1;6794:418:416::0;3310:188:165::1;3570:11;3546:48;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3530:66;;:12;:66;;;3509:188;;;::::0;::::1;::::0;;7419:2:416;3509:188:165::1;::::0;::::1;7401:21:416::0;7458:2;7438:18;;;7431:30;7497:34;7477:18;;;7470:62;7568:34;7548:18;;;7541:62;7640:13;7619:19;;;7612:42;7671:19;;3509:188:165::1;7217:479:416::0;3509:188:165::1;3898:60;::::0;;;;:45:::1;7893:55:416::0;;;3898:60:165::1;::::0;::::1;7875:74:416::0;7965:18;;;7958:34;;;3898:45:165;::::1;::::0;::::1;::::0;7848:18:416;;3898:60:165::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4078:5;4029:82;;4064:12;4029:82;;4051:11;4029:82;;;4085:3;4090:8;4100:10;;4029:82;;;;;;;;;:::i;:::-;;;;;;;;2843:1275:::0;;;;;;;:::o;7885:428:268:-;8124:17;;;8116:78;;;;;;;8975:2:416;8116:78:268;;;8957:21:416;9014:2;8994:18;;;8987:30;9053:34;9033:18;;;9026:62;9124:18;9104;;;9097:46;9160:19;;8116:78:268;8773:412:416;8116:78:268;8205:101;8227:11;8240:12;8254:10;8266:3;8271:8;8281:12;8295:10;;8205:21;:101::i;:::-;7885:428;;;;;;;:::o;1813:263:165:-;3100:19:48;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:48;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:48;1465:19:64;:23;;;3208:55:48;;-1:-1:-1;3246:12:48;;;;;:17;3208:55;3146:190;;;;;;;9392:2:416;3146:190:48;;;9374:21:416;9431:2;9411:18;;;9404:30;9470:34;9450:18;;;9443:62;9541:16;9521:18;;;9514:44;9575:19;;3146:190:48;9190:410:416;3146:190:48;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;1895:174:165::1;1491:42:222;2042:15:165;1895:19;:174::i;:::-;3461:14:48::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;9757:36:416;;3531:14:48;;9745:2:416;9730:18;3531:14:48;;;;;;;3457:99;3090:472;1813:263:165;:::o;1175:320:64:-;1465:19;;;:23;;;1175:320::o;4157:1737:165:-;4443:26;;;4435:88;;;;;;;10006:2:416;4435:88:165;;;9988:21:416;10045:2;10025:18;;;10018:30;10084:34;10064:18;;;10057:62;10155:19;10135:18;;;10128:47;10192:19;;4435:88:165;9804:413:416;4435:88:165;4637:54;;;;;;;;10368:25:416;;;4637:44:165;;;;;;10341:18:416;;4637:54:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4628:63;;:5;:63;;;4607:172;;;;;;;10606:2:416;4607:172:165;;;10588:21:416;10645:2;10625:18;;;10618:30;10684:34;10664:18;;;10657:62;10755:32;10735:18;;;10728:60;10805:19;;4607:172:165;10404:426:416;4607:172:165;4930:19;4976:11;4952:48;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4930:72;;5035:12;5020:27;;:11;:27;;;5012:95;;;;;;;11037:2:416;5012:95:165;;;11019:21:416;11076:2;11056:18;;;11049:30;11115:34;11095:18;;;11088:62;11186:25;11166:18;;;11159:53;11229:19;;5012:95:165;10835:419:416;5012:95:165;5287:58;;;;;:41;7893:55:416;;;5287:58:165;;;7875:74:416;7965:18;;;7958:34;;;5287:41:165;;;;;7848:18:416;;5287:58:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5356:20;5415:44;;;5461:11;5474;5487:5;5494:3;5499:8;5509:10;;5379:150;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5632:9;;5673:11;;5632:103;;;;;5379:150;;-1:-1:-1;5632:9:165;;;;;:21;;:103;;5673:11;;;;;5379:150;;5720:12;;5632:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5854:5;5806:81;;5841:11;5806:81;;5828:11;5806:81;;;5861:3;5866:8;5876:10;;5806:81;;;;;;;;;:::i;:::-;;;;;;;;4425:1469;;4157:1737;;;;;;;;:::o;1333:274:72:-;1420:4;1527:23;1542:7;1527:14;:23::i;:::-;:73;;;;;1554:46;1579:7;1588:11;1554:24;:46::i;:::-;1520:80;1333:274;-1:-1:-1;;;1333:274:72:o;3043:234:268:-;4888:13:48;;;;;;;4880:69;;;;;;;12595:2:416;4880:69:48;;;12577:21:416;12634:2;12614:18;;;12607:30;12673:34;12653:18;;;12646:62;12744:13;12724:18;;;12717:41;12775:19;;4880:69:48;12393:407:416;4880:69:48;3212:9:268::1;:22:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;704:411:72:-;768:4;975:60;1000:7;1009:25;975:24;:60::i;:::-;:133;;;;-1:-1:-1;1052:56:72;1077:7;1086:21;1052:24;:56::i;:::-;1051:57;975:133;956:152;704:411;-1:-1:-1;;704:411:72:o;4223:638::-;4385:71;;;12979:66:416;12967:79;;4385:71:72;;;;12949:98:416;;;;4385:71:72;;;;;;;;;;12922:18:416;;;;4385:71:72;;;;;;;;;;;4408:34;4385:71;;;4664:20;;4316:4;;4385:71;4316:4;;;;;;4385:71;4316:4;;4664:20;4629:7;4622:5;4611:86;4600:97;;4724:16;4710:30;;4774:4;4768:11;4753:26;;4806:7;:29;;;;;4831:4;4817:10;:18;;4806:29;:48;;;;;4853:1;4839:11;:15;4806:48;4799:55;4223:638;-1:-1:-1;;;;;;;4223:638:72:o;14:154:416:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:163::-;240:20;;300:10;289:22;;279:33;;269:61;;326:1;323;316:12;269:61;173:163;;;:::o;341:347::-;392:8;402:6;456:3;449:4;441:6;437:17;433:27;423:55;;474:1;471;464:12;423:55;-1:-1:-1;497:20:416;;540:18;529:30;;526:50;;;572:1;569;562:12;526:50;609:4;601:6;597:17;585:29;;661:3;654:4;645:6;637;633:19;629:30;626:39;623:59;;;678:1;675;668:12;623:59;341:347;;;;;:::o;693:827::-;798:6;806;814;822;830;838;891:3;879:9;870:7;866:23;862:33;859:53;;;908:1;905;898:12;859:53;947:9;934:23;966:31;991:5;966:31;:::i;:::-;1016:5;-1:-1:-1;1073:2:416;1058:18;;1045:32;1086:33;1045:32;1086:33;:::i;:::-;1138:7;-1:-1:-1;1192:2:416;1177:18;;1164:32;;-1:-1:-1;1215:37:416;1248:2;1233:18;;1215:37;:::i;:::-;1205:47;;1303:3;1292:9;1288:19;1275:33;1331:18;1323:6;1320:30;1317:50;;;1363:1;1360;1353:12;1317:50;1402:58;1452:7;1443:6;1432:9;1428:22;1402:58;:::i;:::-;693:827;;;;-1:-1:-1;693:827:416;;-1:-1:-1;693:827:416;;1479:8;;693:827;-1:-1:-1;;;693:827:416:o;1787:531::-;1829:3;1867:5;1861:12;1894:6;1889:3;1882:19;1919:1;1929:162;1943:6;1940:1;1937:13;1929:162;;;2005:4;2061:13;;;2057:22;;2051:29;2033:11;;;2029:20;;2022:59;1958:12;1929:162;;;2109:6;2106:1;2103:13;2100:87;;;2175:1;2168:4;2159:6;2154:3;2150:16;2146:27;2139:38;2100:87;-1:-1:-1;2232:2:416;2220:15;2237:66;2216:88;2207:98;;;;2307:4;2203:109;;1787:531;-1:-1:-1;;1787:531:416:o;2323:220::-;2472:2;2461:9;2454:21;2435:4;2492:45;2533:2;2522:9;2518:18;2510:6;2492:45;:::i;2740:1038::-;2855:6;2863;2871;2879;2887;2895;2903;2956:3;2944:9;2935:7;2931:23;2927:33;2924:53;;;2973:1;2970;2963:12;2924:53;3012:9;2999:23;3031:31;3056:5;3031:31;:::i;:::-;3081:5;-1:-1:-1;3138:2:416;3123:18;;3110:32;3151:33;3110:32;3151:33;:::i;:::-;3203:7;-1:-1:-1;3262:2:416;3247:18;;3234:32;3275:33;3234:32;3275:33;:::i;:::-;3327:7;-1:-1:-1;3386:2:416;3371:18;;3358:32;3399:33;3358:32;3399:33;:::i;:::-;3451:7;-1:-1:-1;3505:3:416;3490:19;;3477:33;;-1:-1:-1;3561:3:416;3546:19;;3533:33;3589:18;3578:30;;3575:50;;;3621:1;3618;3611:12;3575:50;3660:58;3710:7;3701:6;3690:9;3686:22;3660:58;:::i;:::-;2740:1038;;;;-1:-1:-1;2740:1038:416;;-1:-1:-1;2740:1038:416;;;;3634:84;;-1:-1:-1;;;2740:1038:416:o;4047:969::-;4161:6;4169;4177;4185;4193;4201;4209;4262:3;4250:9;4241:7;4237:23;4233:33;4230:53;;;4279:1;4276;4269:12;4230:53;4318:9;4305:23;4337:31;4362:5;4337:31;:::i;:::-;4387:5;-1:-1:-1;4444:2:416;4429:18;;4416:32;4457:33;4416:32;4457:33;:::i;:::-;4509:7;-1:-1:-1;4568:2:416;4553:18;;4540:32;4581:33;4540:32;4581:33;:::i;:::-;4633:7;-1:-1:-1;4687:2:416;4672:18;;4659:32;;-1:-1:-1;4710:38:416;4743:3;4728:19;;4710:38;:::i;:::-;4700:48;;4799:3;4788:9;4784:19;4771:33;4827:18;4819:6;4816:30;4813:50;;;4859:1;4856;4849:12;5021:255;5088:6;5141:2;5129:9;5120:7;5116:23;5112:32;5109:52;;;5157:1;5154;5147:12;5109:52;5196:9;5183:23;5215:31;5240:5;5215:31;:::i;5695:251::-;5765:6;5818:2;5806:9;5797:7;5793:23;5789:32;5786:52;;;5834:1;5831;5824:12;5786:52;5866:9;5860:16;5885:31;5910:5;5885:31;:::i;8003:325::-;8091:6;8086:3;8079:19;8143:6;8136:5;8129:4;8124:3;8120:14;8107:43;;8195:1;8188:4;8179:6;8174:3;8170:16;8166:27;8159:38;8061:3;8317:4;8247:66;8242:2;8234:6;8230:15;8226:88;8221:3;8217:98;8213:109;8206:116;;8003:325;;;;:::o;8333:435::-;8558:42;8550:6;8546:55;8535:9;8528:74;8638:6;8633:2;8622:9;8618:18;8611:34;8681:2;8676;8665:9;8661:18;8654:30;8509:4;8701:61;8758:2;8747:9;8743:18;8735:6;8727;8701:61;:::i;:::-;8693:69;8333:435;-1:-1:-1;;;;;;8333:435:416:o;11259:700::-;11519:4;11548:42;11629:2;11621:6;11617:15;11606:9;11599:34;11681:2;11673:6;11669:15;11664:2;11653:9;11649:18;11642:43;11733:2;11725:6;11721:15;11716:2;11705:9;11701:18;11694:43;11785:2;11777:6;11773:15;11768:2;11757:9;11753:18;11746:43;;11826:6;11820:3;11809:9;11805:19;11798:35;11870:3;11864;11853:9;11849:19;11842:32;11891:62;11948:3;11937:9;11933:19;11925:6;11917;11891:62;:::i;:::-;11883:70;11259:700;-1:-1:-1;;;;;;;;;11259:700:416:o;11964:424::-;12177:42;12169:6;12165:55;12154:9;12147:74;12257:2;12252;12241:9;12237:18;12230:30;12128:4;12277:45;12318:2;12307:9;12303:18;12295:6;12277:45;:::i;:::-;12269:53;;12370:10;12362:6;12358:23;12353:2;12342:9;12338:18;12331:51;11964:424;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC721(address,address,uint256,uint32,bytes)":"3687011a","bridgeERC721To(address,address,address,uint256,uint32,bytes)":"aa557452","finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","initialize(address)":"c4d66de8","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_BRIDGE\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_l1ERC721Bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Messenger contract on this domain.\"}},\"OTHER_BRIDGE()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the bridge on the other network.\"}},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_to\":\"Address to receive the token on the other domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to L1.                     Data supplied here will not be used to execute any code on L1 and is                     only emitted as extra data for the convenience of off-chain tooling.\",\"_from\":\"Address that triggered the bridge on the other domain.\",\"_localToken\":\"Address of the ERC721 token on this domain.\",\"_remoteToken\":\"Address of the ERC721 token on the other domain.\",\"_to\":\"Address to receive the token on this domain.\",\"_tokenId\":\"ID of the token being deposited.\"}},\"initialize(address)\":{\"params\":{\"_l1ERC721Bridge\":\"Address of the ERC721 bridge contract on the other network.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.7.0\"}},\"title\":\"L2ERC721Bridge\",\"version\":1},\"userdoc\":{\"events\":{\"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge from the other network is finalized.\"},\"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge to the other network is initiated.\"}},\"kind\":\"user\",\"methods\":{\"MESSENGER()\":{\"notice\":\"Legacy getter for messenger contract.         Public getter is legacy and will be removed in the future. Use `messenger` instead.\"},\"OTHER_BRIDGE()\":{\"notice\":\"Legacy getter for other bridge address.         Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\"},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to the caller's account on the other chain. Note that         this function can only be called by EOAs. Smart contract wallets should use the         `bridgeERC721To` function after ensuring that the recipient address on the remote         chain exists. Also note that the current owner of the token on this chain must         approve this contract to operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2.\"},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to some recipient's account on the other chain. Note         that the current owner of the token on this chain must approve this contract to         operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2.\"},\"constructor\":{\"notice\":\"Constructs the L2ERC721Bridge contract.\"},\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\":{\"notice\":\"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the         recipient on this domain.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract.\"},\"messenger()\":{\"notice\":\"Messenger contract on this domain.\"},\"otherBridge()\":{\"notice\":\"Contract of the bridge on the other network.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op.\"}},\"notice\":\"The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to         make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract         acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge.         This contract also acts as a burner for tokens being withdrawn.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L2ERC721Bridge.sol\":\"L2ERC721Bridge\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L1ERC721Bridge.sol\":{\"keccak256\":\"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db\",\"dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/L2/L2ERC721Bridge.sol\":{\"keccak256\":\"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f\",\"dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x8676782233b8ee5735e9f09225a40acb8d9bdcb6b223ef356fda91058c24ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53956d4ade06cd8c76b81c71a35a5d3f139c4f992753deac68edb3232bfe5265\",\"dweb:/ipfs/QmX9H6eVXpUNDEXcGDYgTAksR2quinGXDds275svLRt2fd\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x0a52edff4eb90806c5fd570e9c4be2e04327facb9af24e8d15c6cdea9f7a6395\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b009c00e43bfc2794ee8954a57e37084eb6fdc05c215aab19f8d697d1a86ca5\",\"dweb:/ipfs/QmQNzUfs95W6dLVPrHj8ik51uhiD5acihYcxZBDhpTCw4f\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3\",\"dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xc6a6b5488294c0e36fd830f412cb0b3f40039a70a9b194a3795b4a29683419f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e92cd0f6faa2f2654a80dd86d7cbbdb1d9be424f1977e83c301dd65705c32163\",\"dweb:/ipfs/QmVv3EhKikz2vmK4NWi6xEBVusaAs4nWM3owoRV7wgba8V\"]},\"src/universal/ERC721Bridge.sol\":{\"keccak256\":\"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb\",\"dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/IOptimismMintableERC721.sol\":{\"keccak256\":\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\",\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x5ff7c876bb5c2eb6651969f4b7eec64f87482e10de151100805705511572c1e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fd5174801d75a2a1362729cb0f39c4ddf223896cfcc4b2a5f2c0f6ebca14064\",\"dweb:/ipfs/QmUCPkPfsZsA1uj76LtfAxPddZQEqvdcpSdpFdRhYtD9Fz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721To"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[{"internalType":"address payable","name":"_l1ERC721Bridge","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L1.                     Data supplied here will not be used to execute any code on L1 and is                     only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address)":{"params":{"_l1ERC721Bridge":"Address of the ERC721 bridge contract on the other network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract.         Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address.         Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that         this function can only be called by EOAs. Smart contract wallets should use the         `bridgeERC721To` function after ensuring that the recipient address on the remote         chain exists. Also note that the current owner of the token on this chain must         approve this contract to operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note         that the current owner of the token on this chain must approve this contract to         operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"constructor":{"notice":"Constructs the L2ERC721Bridge contract."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the         recipient on this domain."},"initialize(address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2ERC721Bridge.sol":"L2ERC721Bridge"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1ERC721Bridge.sol":{"keccak256":"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd","urls":["bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db","dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L2/L2ERC721Bridge.sol":{"keccak256":"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9","urls":["bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f","dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x8676782233b8ee5735e9f09225a40acb8d9bdcb6b223ef356fda91058c24ed14","urls":["bzz-raw://53956d4ade06cd8c76b81c71a35a5d3f139c4f992753deac68edb3232bfe5265","dweb:/ipfs/QmX9H6eVXpUNDEXcGDYgTAksR2quinGXDds275svLRt2fd"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x0a52edff4eb90806c5fd570e9c4be2e04327facb9af24e8d15c6cdea9f7a6395","urls":["bzz-raw://9b009c00e43bfc2794ee8954a57e37084eb6fdc05c215aab19f8d697d1a86ca5","dweb:/ipfs/QmQNzUfs95W6dLVPrHj8ik51uhiD5acihYcxZBDhpTCw4f"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0xbc21e07126b325cf053f1c5a26968f02fb0a0da503634044a8e84c9d642acb8f","urls":["bzz-raw://7af279cd7b3b12189894ae43f33d19ba84931670ba10b78c108b9d31b767c6b3","dweb:/ipfs/QmWA4qha4WjQToAYhQbqVPe8WrniBAoktVNSSxCCqBraH3"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xc6a6b5488294c0e36fd830f412cb0b3f40039a70a9b194a3795b4a29683419f2","urls":["bzz-raw://e92cd0f6faa2f2654a80dd86d7cbbdb1d9be424f1977e83c301dd65705c32163","dweb:/ipfs/QmVv3EhKikz2vmK4NWi6xEBVusaAs4nWM3owoRV7wgba8V"],"license":"MIT"},"src/universal/ERC721Bridge.sol":{"keccak256":"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f","urls":["bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb","dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x5ff7c876bb5c2eb6651969f4b7eec64f87482e10de151100805705511572c1e7","urls":["bzz-raw://4fd5174801d75a2a1362729cb0f39c4ddf223896cfcc4b2a5f2c0f6ebca14064","dweb:/ipfs/QmUCPkPfsZsA1uj76LtfAxPddZQEqvdcpSdpFdRhYtD9Fz"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":50145,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":50148,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":121807,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":121811,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"messenger","offset":0,"slot":"1","type":"t_contract(CrossDomainMessenger)121789"},{"astId":121815,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"otherBridge","offset":0,"slot":"2","type":"t_contract(StandardBridge)124636"},{"astId":121820,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)46_storage"}],"types":{"t_array(t_uint256)46_storage":{"encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)121789":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)124636":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract.         Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address.         Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that         this function can only be called by EOAs. Smart contract wallets should use the         `bridgeERC721To` function after ensuring that the recipient address on the remote         chain exists. Also note that the current owner of the token on this chain must         approve this contract to operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note         that the current owner of the token on this chain must approve this contract to         operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"constructor":{"notice":"Constructs the L2ERC721Bridge contract."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the         recipient on this domain."},"initialize(address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op."}},"events":{"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge from the other network is finalized."},"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge to the other network is initiated."}},"notice":"The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to         make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract         acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge.         This contract also acts as a burner for tokens being withdrawn.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L1.                     Data supplied here will not be used to execute any code on L1 and is                     only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address)":{"params":{"_l1ERC721Bridge":"Address of the ERC721 bridge contract on the other network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"title":"L2ERC721Bridge"},"ast":{"absolutePath":"src/L2/L2ERC721Bridge.sol","id":97859,"exportedSymbols":{"Constants":[112830],"CrossDomainMessenger":[121789],"ERC165Checker":[55045],"ERC721Bridge":[122019],"IOptimismMintableERC721":[122309],"ISemver":[122319],"L1ERC721Bridge":[88397],"L2ERC721Bridge":[97858],"Predeploys":[114341],"StandardBridge":[124636]},"nodeType":"SourceUnit","src":"32:5865:165","nodes":[{"id":97625,"nodeType":"PragmaDirective","src":"32:23:165","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97627,"nodeType":"ImportDirective","src":"57:62:165","nodes":[],"absolutePath":"src/universal/ERC721Bridge.sol","file":"src/universal/ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":122020,"symbolAliases":[{"foreign":{"id":97626,"name":"ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122019,"src":"66:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97629,"nodeType":"ImportDirective","src":"120:94:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":55046,"symbolAliases":[{"foreign":{"id":97628,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55045,"src":"129:13:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97631,"nodeType":"ImportDirective","src":"215:59:165","nodes":[],"absolutePath":"src/L1/L1ERC721Bridge.sol","file":"src/L1/L1ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":88398,"symbolAliases":[{"foreign":{"id":97630,"name":"L1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88397,"src":"224:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97633,"nodeType":"ImportDirective","src":"275:84:165","nodes":[],"absolutePath":"src/universal/IOptimismMintableERC721.sol","file":"src/universal/IOptimismMintableERC721.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":122310,"symbolAliases":[{"foreign":{"id":97632,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"284:23:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97635,"nodeType":"ImportDirective","src":"360:78:165","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":121790,"symbolAliases":[{"foreign":{"id":97634,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121789,"src":"369:20:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97637,"nodeType":"ImportDirective","src":"439:66:165","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":124637,"symbolAliases":[{"foreign":{"id":97636,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124636,"src":"448:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97639,"nodeType":"ImportDirective","src":"506:52:165","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":122320,"symbolAliases":[{"foreign":{"id":97638,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122319,"src":"515:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97641,"nodeType":"ImportDirective","src":"559:56:165","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":112831,"symbolAliases":[{"foreign":{"id":97640,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"568:9:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97643,"nodeType":"ImportDirective","src":"616:58:165","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":97859,"sourceUnit":114342,"symbolAliases":[{"foreign":{"id":97642,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114341,"src":"625:10:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97858,"nodeType":"ContractDefinition","src":"1389:4507:165","nodes":[{"id":97652,"nodeType":"VariableDeclaration","src":"1473:40:165","nodes":[],"baseFunctions":[122318],"constant":true,"documentation":{"id":97649,"nodeType":"StructuredDocumentation","src":"1444:24:165","text":"@custom:semver 1.7.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1496:7:165","scope":97858,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97650,"name":"string","nodeType":"ElementaryTypeName","src":"1473:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e372e30","id":97651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1506:7:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcd77289efc7773aa152b2b29fc41f05d9109a509f3f68a18547b233f97c1fdc","typeString":"literal_string \"1.7.0\""},"value":"1.7.0"},"visibility":"public"},{"id":97669,"nodeType":"FunctionDefinition","src":"1576:98:165","nodes":[],"body":{"id":97668,"nodeType":"Block","src":"1605:69:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":97663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1661:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":97662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1653:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97661,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:165","typeDescriptions":{}}},"id":97664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1653:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1645:8:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":97659,"name":"address","nodeType":"ElementaryTypeName","src":"1645:8:165","stateMutability":"payable","typeDescriptions":{}}},"id":97665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1645:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":97658,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97688,"src":"1615:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":97666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_l1ERC721Bridge"],"nodeType":"FunctionCall","src":"1615:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97667,"nodeType":"ExpressionStatement","src":"1615:52:165"}]},"documentation":{"id":97653,"nodeType":"StructuredDocumentation","src":"1520:51:165","text":"@notice Constructs the L2ERC721Bridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":97656,"kind":"baseConstructorSpecifier","modifierName":{"id":97655,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":122019,"src":"1590:12:165"},"nodeType":"ModifierInvocation","src":"1590:14:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":97654,"nodeType":"ParameterList","parameters":[],"src":"1587:2:165"},"returnParameters":{"id":97657,"nodeType":"ParameterList","parameters":[],"src":"1605:0:165"},"scope":97858,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97688,"nodeType":"FunctionDefinition","src":"1813:263:165","nodes":[],"body":{"id":97687,"nodeType":"Block","src":"1885:191:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":97679,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114341,"src":"1962:10:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$114341_$","typeString":"type(library Predeploys)"}},"id":97680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":113871,"src":"1962:36:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97678,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121789,"src":"1941:20:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$121789_$","typeString":"type(contract CrossDomainMessenger)"}},"id":97681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1941:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"id":97683,"name":"_l1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97672,"src":"2042:15:165","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":97682,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124636,"src":"2027:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$124636_$","typeString":"type(contract StandardBridge)"}},"id":97684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2027:31:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}],"id":97677,"name":"__ERC721Bridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121896,"src":"1895:19:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$121789_$_t_contract$_StandardBridge_$124636_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":97685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"1895:174:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97686,"nodeType":"ExpressionStatement","src":"1895:174:165"}]},"documentation":{"id":97670,"nodeType":"StructuredDocumentation","src":"1680:128:165","text":"@notice Initializes the contract.\n @param _l1ERC721Bridge Address of the ERC721 bridge contract on the other network."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":97675,"kind":"modifierInvocation","modifierName":{"id":97674,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":50209,"src":"1873:11:165"},"nodeType":"ModifierInvocation","src":"1873:11:165"}],"name":"initialize","nameLocation":"1822:10:165","parameters":{"id":97673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97672,"mutability":"mutable","name":"_l1ERC721Bridge","nameLocation":"1849:15:165","nodeType":"VariableDeclaration","scope":97688,"src":"1833:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":97671,"name":"address","nodeType":"ElementaryTypeName","src":"1833:15:165","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"1832:33:165"},"returnParameters":{"id":97676,"nodeType":"ParameterList","parameters":[],"src":"1885:0:165"},"scope":97858,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97757,"nodeType":"FunctionDefinition","src":"2843:1275:165","nodes":[],"body":{"id":97756,"nodeType":"Block","src":"3088:1030:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":97712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97707,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97691,"src":"3106:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":97710,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3129:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_L2ERC721Bridge_$97858","typeString":"contract L2ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2ERC721Bridge_$97858","typeString":"contract L2ERC721Bridge"}],"id":97709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3121:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97708,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:165","typeDescriptions":{}}},"id":97711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3121:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3106:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e6f742062652073656c66","id":97713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:44:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e18be074e522c384c2b459d3f552ca9fb14628371ea9e81c37dfc2875bec911","typeString":"literal_string \"L2ERC721Bridge: local token cannot be self\""},"value":"L2ERC721Bridge: local token cannot be self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e18be074e522c384c2b459d3f552ca9fb14628371ea9e81c37dfc2875bec911","typeString":"literal_string \"L2ERC721Bridge: local token cannot be self\""}],"id":97706,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3098:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":97714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3098:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97715,"nodeType":"ExpressionStatement","src":"3098:83:165"},{"expression":{"arguments":[{"arguments":[{"id":97719,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97691,"src":"3363:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":97721,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"3381:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}],"id":97720,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3376:4:165","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":97722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3376:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IOptimismMintableERC721_$122309","typeString":"type(contract IOptimismMintableERC721)"}},"id":97723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3376:41:165","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":97717,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55045,"src":"3331:13:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC165Checker_$55045_$","typeString":"type(library ERC165Checker)"}},"id":97718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":54901,"src":"3331:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":97724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3331:87:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a206c6f63616c20746f6b656e20696e74657266616365206973206e6f7420636f6d706c69616e74","id":97725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3432:56:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_07efea2f6062b2acb6eac32db41367de7f7d64803f2496130d2183dc5a0651ad","typeString":"literal_string \"L2ERC721Bridge: local token interface is not compliant\""},"value":"L2ERC721Bridge: local token interface is not compliant"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_07efea2f6062b2acb6eac32db41367de7f7d64803f2496130d2183dc5a0651ad","typeString":"literal_string \"L2ERC721Bridge: local token interface is not compliant\""}],"id":97716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3310:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":97726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3310:188:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97727,"nodeType":"ExpressionStatement","src":"3310:188:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":97735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97729,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97693,"src":"3530:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":97731,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97691,"src":"3570:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97730,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"3546:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":97732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3546:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$122309","typeString":"contract IOptimismMintableERC721"}},"id":97733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remoteToken","nodeType":"MemberAccess","referencedDeclaration":122302,"src":"3546:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":97734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3546:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3530:66:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b656e20666f72204f7074696d69736d204d696e7461626c6520455243373231206c6f63616c20746f6b656e","id":97736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3610:77:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_a297b13cacd808a47e4a8cb030741295c70e2e66399d9c0dd47e18d6f766c6dd","typeString":"literal_string \"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token\""},"value":"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a297b13cacd808a47e4a8cb030741295c70e2e66399d9c0dd47e18d6f766c6dd","typeString":"literal_string \"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token\""}],"id":97728,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3509:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":97737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3509:188:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97738,"nodeType":"ExpressionStatement","src":"3509:188:165"},{"expression":{"arguments":[{"id":97743,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97697,"src":"3944:3:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97744,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97699,"src":"3949:8:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":97740,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97691,"src":"3922:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97739,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"3898:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":97741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$122309","typeString":"contract IOptimismMintableERC721"}},"id":97742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeMint","nodeType":"MemberAccess","referencedDeclaration":122264,"src":"3898:45:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":97745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97746,"nodeType":"ExpressionStatement","src":"3898:60:165"},{"eventCall":{"arguments":[{"id":97748,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97691,"src":"4051:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97749,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97693,"src":"4064:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97750,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97695,"src":"4078:5:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97751,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97697,"src":"4085:3:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97752,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97699,"src":"4090:8:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":97753,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97701,"src":"4100:10:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":97747,"name":"ERC721BridgeFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121850,"src":"4029:21:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":97754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4029:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97755,"nodeType":"EmitStatement","src":"4024:87:165"}]},"documentation":{"id":97689,"nodeType":"StructuredDocumentation","src":"2082:756:165","text":"@notice Completes an ERC721 bridge from the other domain and sends the ERC721 token to the\n         recipient on this domain.\n @param _localToken  Address of the ERC721 token on this domain.\n @param _remoteToken Address of the ERC721 token on the other domain.\n @param _from        Address that triggered the bridge on the other domain.\n @param _to          Address to receive the token on this domain.\n @param _tokenId     ID of the token being deposited.\n @param _extraData   Optional data to forward to L1.\n                     Data supplied here will not be used to execute any code on L1 and is\n                     only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"761f4493","implemented":true,"kind":"function","modifiers":[{"id":97704,"kind":"modifierInvocation","modifierName":{"id":97703,"name":"onlyOtherBridge","nodeType":"IdentifierPath","referencedDeclaration":121875,"src":"3068:15:165"},"nodeType":"ModifierInvocation","src":"3068:15:165"}],"name":"finalizeBridgeERC721","nameLocation":"2852:20:165","parameters":{"id":97702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97691,"mutability":"mutable","name":"_localToken","nameLocation":"2890:11:165","nodeType":"VariableDeclaration","scope":97757,"src":"2882:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97690,"name":"address","nodeType":"ElementaryTypeName","src":"2882:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97693,"mutability":"mutable","name":"_remoteToken","nameLocation":"2919:12:165","nodeType":"VariableDeclaration","scope":97757,"src":"2911:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97692,"name":"address","nodeType":"ElementaryTypeName","src":"2911:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97695,"mutability":"mutable","name":"_from","nameLocation":"2949:5:165","nodeType":"VariableDeclaration","scope":97757,"src":"2941:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97694,"name":"address","nodeType":"ElementaryTypeName","src":"2941:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97697,"mutability":"mutable","name":"_to","nameLocation":"2972:3:165","nodeType":"VariableDeclaration","scope":97757,"src":"2964:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97696,"name":"address","nodeType":"ElementaryTypeName","src":"2964:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97699,"mutability":"mutable","name":"_tokenId","nameLocation":"2993:8:165","nodeType":"VariableDeclaration","scope":97757,"src":"2985:16:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97698,"name":"uint256","nodeType":"ElementaryTypeName","src":"2985:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97701,"mutability":"mutable","name":"_extraData","nameLocation":"3026:10:165","nodeType":"VariableDeclaration","scope":97757,"src":"3011:25:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97700,"name":"bytes","nodeType":"ElementaryTypeName","src":"3011:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2872:170:165"},"returnParameters":{"id":97705,"nodeType":"ParameterList","parameters":[],"src":"3088:0:165"},"scope":97858,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":97857,"nodeType":"FunctionDefinition","src":"4157:1737:165","nodes":[],"body":{"id":97856,"nodeType":"Block","src":"4425:1469:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":97782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97777,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97762,"src":"4443:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":97780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":97779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4459:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97778,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:165","typeDescriptions":{}}},"id":97781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:26:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e6e6f742062652061646472657373283029","id":97783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4471:51:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_dda13b674104cff93529fc9113589ef9eda6a9e3d2414ccc2ce12f79952de0f9","typeString":"literal_string \"L2ERC721Bridge: remote token cannot be address(0)\""},"value":"L2ERC721Bridge: remote token cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dda13b674104cff93529fc9113589ef9eda6a9e3d2414ccc2ce12f79952de0f9","typeString":"literal_string \"L2ERC721Bridge: remote token cannot be address(0)\""}],"id":97776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4435:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":97784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:88:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97785,"nodeType":"ExpressionStatement","src":"4435:88:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":97794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97787,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97764,"src":"4628:5:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":97792,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97768,"src":"4682:8:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":97789,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97760,"src":"4661:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97788,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"4637:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":97790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4637:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$122309","typeString":"contract IOptimismMintableERC721"}},"id":97791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":53104,"src":"4637:44:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":97793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4637:54:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4628:63:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a205769746864726177616c206973206e6f74206265696e6720696e69746961746564206279204e4654206f776e6572","id":97795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4705:64:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ee75d9b9b0c7320a30e3101dd31a8695dfeba929ef037ce562e2025d1f1db7f","typeString":"literal_string \"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner\""},"value":"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ee75d9b9b0c7320a30e3101dd31a8695dfeba929ef037ce562e2025d1f1db7f","typeString":"literal_string \"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner\""}],"id":97786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4607:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":97796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4607:172:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97797,"nodeType":"ExpressionStatement","src":"4607:172:165"},{"assignments":[97799],"declarations":[{"constant":false,"id":97799,"mutability":"mutable","name":"remoteToken","nameLocation":"4938:11:165","nodeType":"VariableDeclaration","scope":97856,"src":"4930:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97798,"name":"address","nodeType":"ElementaryTypeName","src":"4930:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":97805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":97801,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97760,"src":"4976:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97800,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"4952:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":97802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4952:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$122309","typeString":"contract IOptimismMintableERC721"}},"id":97803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remoteToken","nodeType":"MemberAccess","referencedDeclaration":122302,"src":"4952:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":97804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4952:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4930:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":97809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97807,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97799,"src":"5020:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":97808,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97762,"src":"5035:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5020:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6573206e6f74206d6174636820676976656e2076616c7565","id":97810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5049:57:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a41ad0de9429285711503556faaaf7a96337a91d3717dc15ffb9a52d12e98d9","typeString":"literal_string \"L2ERC721Bridge: remote token does not match given value\""},"value":"L2ERC721Bridge: remote token does not match given value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3a41ad0de9429285711503556faaaf7a96337a91d3717dc15ffb9a52d12e98d9","typeString":"literal_string \"L2ERC721Bridge: remote token does not match given value\""}],"id":97806,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5012:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":97811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5012:95:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97812,"nodeType":"ExpressionStatement","src":"5012:95:165"},{"expression":{"arguments":[{"id":97817,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97764,"src":"5329:5:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97818,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97768,"src":"5336:8:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":97814,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97760,"src":"5311:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97813,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"5287:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":97815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$122309","typeString":"contract IOptimismMintableERC721"}},"id":97816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":122272,"src":"5287:41:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":97819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97820,"nodeType":"ExpressionStatement","src":"5287:58:165"},{"assignments":[97822],"declarations":[{"constant":false,"id":97822,"mutability":"mutable","name":"message","nameLocation":"5369:7:165","nodeType":"VariableDeclaration","scope":97856,"src":"5356:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97821,"name":"bytes","nodeType":"ElementaryTypeName","src":"5356:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":97835,"initialValue":{"arguments":[{"expression":{"expression":{"id":97825,"name":"L1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88397,"src":"5415:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1ERC721Bridge_$88397_$","typeString":"type(contract L1ERC721Bridge)"}},"id":97826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeBridgeERC721","nodeType":"MemberAccess","referencedDeclaration":88309,"src":"5415:35:165","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function L1ERC721Bridge.finalizeBridgeERC721(address,address,address,address,uint256,bytes calldata)"}},"id":97827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"5415:44:165","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":97828,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97799,"src":"5461:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97829,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97760,"src":"5474:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97830,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97764,"src":"5487:5:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97831,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97766,"src":"5494:3:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97832,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97768,"src":"5499:8:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":97833,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97772,"src":"5509:10:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":97823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5379:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":97824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5379:22:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":97834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5379:150:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5356:173:165"},{"expression":{"arguments":[{"arguments":[{"id":97841,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121815,"src":"5673:11:165","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}],"id":97840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5665:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97839,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:165","typeDescriptions":{}}},"id":97842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5665:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97843,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97822,"src":"5697:7:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":97844,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97770,"src":"5720:12:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":97836,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121811,"src":"5632:9:165","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"id":97838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":121412,"src":"5632:21:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) payable external"}},"id":97845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_target","_message","_minGasLimit"],"nodeType":"FunctionCall","src":"5632:103:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97846,"nodeType":"ExpressionStatement","src":"5632:103:165"},{"eventCall":{"arguments":[{"id":97848,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97760,"src":"5828:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97849,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97799,"src":"5841:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97850,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97764,"src":"5854:5:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97851,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97766,"src":"5861:3:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97852,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97768,"src":"5866:8:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":97853,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97772,"src":"5876:10:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":97847,"name":"ERC721BridgeInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121835,"src":"5806:21:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":97854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5806:81:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97855,"nodeType":"EmitStatement","src":"5801:86:165"}]},"baseFunctions":[122018],"documentation":{"id":97758,"nodeType":"StructuredDocumentation","src":"4124:28:165","text":"@inheritdoc ERC721Bridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateBridgeERC721","nameLocation":"4166:21:165","overrides":{"id":97774,"nodeType":"OverrideSpecifier","overrides":[],"src":"4412:8:165"},"parameters":{"id":97773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97760,"mutability":"mutable","name":"_localToken","nameLocation":"4205:11:165","nodeType":"VariableDeclaration","scope":97857,"src":"4197:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97759,"name":"address","nodeType":"ElementaryTypeName","src":"4197:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97762,"mutability":"mutable","name":"_remoteToken","nameLocation":"4234:12:165","nodeType":"VariableDeclaration","scope":97857,"src":"4226:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97761,"name":"address","nodeType":"ElementaryTypeName","src":"4226:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97764,"mutability":"mutable","name":"_from","nameLocation":"4264:5:165","nodeType":"VariableDeclaration","scope":97857,"src":"4256:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97763,"name":"address","nodeType":"ElementaryTypeName","src":"4256:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97766,"mutability":"mutable","name":"_to","nameLocation":"4287:3:165","nodeType":"VariableDeclaration","scope":97857,"src":"4279:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97765,"name":"address","nodeType":"ElementaryTypeName","src":"4279:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97768,"mutability":"mutable","name":"_tokenId","nameLocation":"4308:8:165","nodeType":"VariableDeclaration","scope":97857,"src":"4300:16:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97767,"name":"uint256","nodeType":"ElementaryTypeName","src":"4300:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97770,"mutability":"mutable","name":"_minGasLimit","nameLocation":"4333:12:165","nodeType":"VariableDeclaration","scope":97857,"src":"4326:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":97769,"name":"uint32","nodeType":"ElementaryTypeName","src":"4326:6:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":97772,"mutability":"mutable","name":"_extraData","nameLocation":"4370:10:165","nodeType":"VariableDeclaration","scope":97857,"src":"4355:25:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97771,"name":"bytes","nodeType":"ElementaryTypeName","src":"4355:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4187:199:165"},"returnParameters":{"id":97775,"nodeType":"ParameterList","parameters":[],"src":"4425:0:165"},"scope":97858,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":97645,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":122019,"src":"1416:12:165"},"id":97646,"nodeType":"InheritanceSpecifier","src":"1416:12:165"},{"baseName":{"id":97647,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":122319,"src":"1430:7:165"},"id":97648,"nodeType":"InheritanceSpecifier","src":"1430:7:165"}],"canonicalName":"L2ERC721Bridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":97644,"nodeType":"StructuredDocumentation","src":"676:713:165","text":"@title L2ERC721Bridge\n @notice The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to\n         make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract\n         acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge.\n         This contract also acts as a burner for tokens being withdrawn.\n         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This\n         bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to\n         wait for the one-week challenge period to elapse before their Optimism-native NFT\n         can be refunded on L2."},"fullyImplemented":true,"linearizedBaseContracts":[97858,122319,122019,50289],"name":"L2ERC721Bridge","nameLocation":"1398:14:165","scope":97859,"usedErrors":[]}],"license":"MIT"},"id":165}