{"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":"deposits","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"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":"_messenger","type":"address","internalType":"contract CrossDomainMessenger"},{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"}],"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":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"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":"0x60806040523480156200001157600080fd5b506200001f60008062000025565b62000234565b600054610100900460ff1615808015620000465750600054600160ff909116105b8062000076575062000063306200018a60201b62000b141760201c565b15801562000076575060005460ff166001145b620000df5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000103576000805461ff0019166101001790555b603280546001600160a01b0319166001600160a01b0384161790556200013e8373420000000000000000000000000000000000001462000199565b801562000185576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620002065760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d6565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6113e980620002446000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80635d93a3fc11610081578063927ede2d1161005b578063927ede2d14610231578063aa5574521461024f578063c89701a21461026257600080fd5b80635d93a3fc146101cc578063761f4493146102005780637f46ddb21461021357600080fd5b8063485cc955116100b2578063485cc9551461015857806354fd4d501461016b5780635c975abb146101b457600080fd5b806335e80ab3146100d95780633687011a146101235780633cb747bf14610138575b600080fd5b6032546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610136610131366004610fe1565b610282565b005b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b610136610166366004611064565b61032e565b6101a76040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161011a9190611108565b6101bc610518565b604051901515815260200161011a565b6101bc6101da366004611122565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61013661020e366004611163565b6105b1565b60025473ffffffffffffffffffffffffffffffffffffffff166100f9565b60015473ffffffffffffffffffffffffffffffffffffffff166100f9565b61013661025d3660046111fb565b610a58565b6002546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b333b15610316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103268686333388888888610b30565b505050505050565b600054610100900460ff161580801561034e5750600054600160ff909116105b806103685750303b158015610368575060005460ff166001145b6103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161030d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556104b083734200000000000000000000000000000000000014610e70565b801561051357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611272565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156106865750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611294565b73ffffffffffffffffffffffffffffffffffffffff16145b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161030d565b61071a610518565b15610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a2070617573656400000000000000000000604482015260640161030d565b3073ffffffffffffffffffffffffffffffffffffffff881603610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff1615156001146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c312042726964676500000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610a4794939291906112fa565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161030d565b610b0b8787338888888888610b30565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161030d565b600063761f449360e01b888a8989898888604051602401610bfa979695949392919061133a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000959095169490941790935273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603186528381208e8416825286528381208b82529095529382902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590517f23b872dd000000000000000000000000000000000000000000000000000000008152908a166004820152306024820152604481018890529092506323b872dd90606401600060405180830381600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b9350610db1929091169085908990600401611397565b600060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a589898888604051610e5d94939291906112fa565b60405180910390a4505050505050505050565b600054610100900460ff16610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030d565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff81168114610f7c57600080fd5b50565b803563ffffffff81168114610f9357600080fd5b919050565b60008083601f840112610faa57600080fd5b50813567ffffffffffffffff811115610fc257600080fd5b602083019150836020828501011115610fda57600080fd5b9250929050565b60008060008060008060a08789031215610ffa57600080fd5b863561100581610f5a565b9550602087013561101581610f5a565b94506040870135935061102a60608801610f7f565b9250608087013567ffffffffffffffff81111561104657600080fd5b61105289828a01610f98565b979a9699509497509295939492505050565b6000806040838503121561107757600080fd5b823561108281610f5a565b9150602083013561109281610f5a565b809150509250929050565b6000815180845260005b818110156110c3576020818501810151868301820152016110a7565b818111156110d5576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061111b602083018461109d565b9392505050565b60008060006060848603121561113757600080fd5b833561114281610f5a565b9250602084013561115281610f5a565b929592945050506040919091013590565b600080600080600080600060c0888a03121561117e57600080fd5b873561118981610f5a565b9650602088013561119981610f5a565b955060408801356111a981610f5a565b945060608801356111b981610f5a565b93506080880135925060a088013567ffffffffffffffff8111156111dc57600080fd5b6111e88a828b01610f98565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561121657600080fd5b873561122181610f5a565b9650602088013561123181610f5a565b9550604088013561124181610f5a565b94506060880135935061125660808901610f7f565b925060a088013567ffffffffffffffff8111156111dc57600080fd5b60006020828403121561128457600080fd5b8151801515811461111b57600080fd5b6000602082840312156112a657600080fd5b815161111b81610f5a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006113306060830184866112b1565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261138a60c0830184866112b1565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006113c6606083018561109d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"922:4498:142:-:0;;;1492:155;;;;;;;;;-1:-1:-1;1531:109:142::1;1585:1;::::0;1531:10:::1;:109::i;:::-;922:4498:::0;;1869:318;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;1987:16:142::1;:36:::0;;-1:-1:-1;;;;;;1987:36:142::1;-1:-1:-1::0;;;;;1987:36:142;::::1;;::::0;;2033:147:::1;2079:10:::0;2680:42:222::1;2033:19:142;:147::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;1869:318:142;;:::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:-;922:4498:142;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80635d93a3fc11610081578063927ede2d1161005b578063927ede2d14610231578063aa5574521461024f578063c89701a21461026257600080fd5b80635d93a3fc146101cc578063761f4493146102005780637f46ddb21461021357600080fd5b8063485cc955116100b2578063485cc9551461015857806354fd4d501461016b5780635c975abb146101b457600080fd5b806335e80ab3146100d95780633687011a146101235780633cb747bf14610138575b600080fd5b6032546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610136610131366004610fe1565b610282565b005b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b610136610166366004611064565b61032e565b6101a76040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161011a9190611108565b6101bc610518565b604051901515815260200161011a565b6101bc6101da366004611122565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61013661020e366004611163565b6105b1565b60025473ffffffffffffffffffffffffffffffffffffffff166100f9565b60015473ffffffffffffffffffffffffffffffffffffffff166100f9565b61013661025d3660046111fb565b610a58565b6002546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b333b15610316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103268686333388888888610b30565b505050505050565b600054610100900460ff161580801561034e5750600054600160ff909116105b806103685750303b158015610368575060005460ff166001145b6103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161030d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556104b083734200000000000000000000000000000000000014610e70565b801561051357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611272565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156106865750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611294565b73ffffffffffffffffffffffffffffffffffffffff16145b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161030d565b61071a610518565b15610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a2070617573656400000000000000000000604482015260640161030d565b3073ffffffffffffffffffffffffffffffffffffffff881603610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff1615156001146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c312042726964676500000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610a4794939291906112fa565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161030d565b610b0b8787338888888888610b30565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161030d565b600063761f449360e01b888a8989898888604051602401610bfa979695949392919061133a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000959095169490941790935273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603186528381208e8416825286528381208b82529095529382902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590517f23b872dd000000000000000000000000000000000000000000000000000000008152908a166004820152306024820152604481018890529092506323b872dd90606401600060405180830381600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b9350610db1929091169085908990600401611397565b600060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a589898888604051610e5d94939291906112fa565b60405180910390a4505050505050505050565b600054610100900460ff16610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030d565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff81168114610f7c57600080fd5b50565b803563ffffffff81168114610f9357600080fd5b919050565b60008083601f840112610faa57600080fd5b50813567ffffffffffffffff811115610fc257600080fd5b602083019150836020828501011115610fda57600080fd5b9250929050565b60008060008060008060a08789031215610ffa57600080fd5b863561100581610f5a565b9550602087013561101581610f5a565b94506040870135935061102a60608801610f7f565b9250608087013567ffffffffffffffff81111561104657600080fd5b61105289828a01610f98565b979a9699509497509295939492505050565b6000806040838503121561107757600080fd5b823561108281610f5a565b9150602083013561109281610f5a565b809150509250929050565b6000815180845260005b818110156110c3576020818501810151868301820152016110a7565b818111156110d5576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061111b602083018461109d565b9392505050565b60008060006060848603121561113757600080fd5b833561114281610f5a565b9250602084013561115281610f5a565b929592945050506040919091013590565b600080600080600080600060c0888a03121561117e57600080fd5b873561118981610f5a565b9650602088013561119981610f5a565b955060408801356111a981610f5a565b945060608801356111b981610f5a565b93506080880135925060a088013567ffffffffffffffff8111156111dc57600080fd5b6111e88a828b01610f98565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561121657600080fd5b873561122181610f5a565b9650602088013561123181610f5a565b9550604088013561124181610f5a565b94506060880135935061125660808901610f7f565b925060a088013567ffffffffffffffff8111156111dc57600080fd5b60006020828403121561128457600080fd5b8151801515811461111b57600080fd5b6000602082840312156112a657600080fd5b815161111b81610f5a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006113306060830184866112b1565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261138a60c0830184866112b1565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006113c6606083018561109d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"922:4498:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1279:40;;;;;;;;;;;;216:42:416;204:55;;;186:74;;174:2;159:18;1279:40:142;;;;;;;;5688:971:268;;;;;;:::i;:::-;;:::i;:::-;;829:37;;;;;;;;;1869:318:142;;;;;;:::i;:::-;;:::i;1389:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2226:103::-;;;:::i;:::-;;;3420:14:416;;3413:22;3395:41;;3383:2;3368:18;2226:103:142;3255:187:416;1134:80:142;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3096:1207;;;;;;:::i;:::-;;:::i;3858:98:268:-;3938:11;;;;3858:98;;3511:99;3594:9;;;;3511:99;;7885:428;;;;;;:::i;:::-;;:::i;967:33::-;;;;;;;;;5688:971;6472:10;1465:19:64;:23;6444:89:268;;;;;;;6391:2:416;6444:89:268;;;6373:21:416;6430:2;6410:18;;;6403:30;6469:34;6449:18;;;6442:62;6540:15;6520:18;;;6513:43;6573: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;1869:318:142:-;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;;;;;;;6805:2:416;3146:190:48;;;6787:21:416;6844:2;6824:18;;;6817:30;6883:34;6863:18;;;6856:62;6954:16;6934:18;;;6927:44;6988:19;;3146:190:48;6603:410:416;3146:190:48;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;1987:16:142::1;:36:::0;;;::::1;;::::0;::::1;;::::0;;2033:147:::1;2079:10:::0;2680:42:222::1;2033:19:142;:147::i;:::-;3461:14:48::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;7170:36:416;;3531:14:48;;7158:2:416;7143:18;3531:14:48;;;;;;;3457:99;3090:472;1869:318:142;;:::o;2226:103::-;2297:16;;:25;;;;;;;;2274:4;;2297:16;;;:23;;:25;;;;;;;;;;;;;;:16;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2290:32;;2226:103;:::o;3096:1207::-;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;;;;;;;7957:2:416;2626:202:268;;;7939:21:416;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;8106:33;8086:18;;;8079:61;8157:19;;2626:202:268;7755:427:416;2626:202:268;3359:8:142::1;:6;:8::i;:::-;:17;3351:52;;;::::0;::::1;::::0;;8389:2:416;3351:52:142::1;::::0;::::1;8371:21:416::0;8428:2;8408:18;;;8401:30;8467:24;8447:18;;;8440:52;8509:18;;3351:52:142::1;8187:346:416::0;3351:52:142::1;3444:4;3421:28;::::0;::::1;::::0;3413:83:::1;;;::::0;::::1;::::0;;8740:2:416;3413:83:142::1;::::0;::::1;8722:21:416::0;8779:2;8759:18;;;8752:30;8818:34;8798:18;;;8791:62;8889:12;8869:18;;;8862:40;8919:19;;3413:83:142::1;8538:406:416::0;3413:83:142::1;3620:21;::::0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;;:45;;;;;;;::::1;;:53;;:45:::0;:53:::1;3599:157;;;::::0;::::1;::::0;;9151:2:416;3599:157:142::1;::::0;::::1;9133:21:416::0;9190:2;9170:18;;;9163:30;9229:34;9209:18;;;9202:62;9300:27;9280:18;;;9273:55;9345:19;;3599:157:142::1;8949:421:416::0;3599:157:142::1;3878:21;::::0;;::::1;3926:5;3878:21:::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;:45;;;;;;;;;;:53;;;::::1;::::0;;4053:90;;;;4107:4:::1;4053:90;::::0;::::1;9638:34:416::0;9708:15;;;9688:18;;;9681:43;9740:18;;;9733:34;;;3878:21:142;4053:37:::1;::::0;9550:18:416;;4053:90:142::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4263:5;4214:82;;4249:12;4214:82;;4236:11;4214:82;;;4270:3;4275:8;4285:10;;4214:82;;;;;;;;;:::i;:::-;;;;;;;;3096:1207:::0;;;;;;;:::o;7885:428:268:-;8124:17;;;8116:78;;;;;;;10750:2:416;8116:78:268;;;10732:21:416;10789:2;10769:18;;;10762:30;10828:34;10808:18;;;10801:62;10899:18;10879;;;10872:46;10935:19;;8116:78:268;10548: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;1175:320:64:-;1465:19;;;:23;;;1175:320::o;4342:1076:142:-;4628:26;;;4620:88;;;;;;;11167:2:416;4620:88:142;;;11149:21:416;11206:2;11186:18;;;11179:30;11245:34;11225:18;;;11218:62;11316:19;11296:18;;;11289:47;11353:19;;4620:88:142;10965:413:416;4620:88:142;4798:20;4857:44;;;4903:12;4917:11;4930:5;4937:3;4942:8;4952:10;;4821:151;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5017:21;;;;-1:-1:-1;5017:21:142;;;:8;:21;;;;;:35;;;;;;;;;;:45;;;;;;;;;;:52;;;;5065:4;5017:52;;;5079:88;;;;;9656:15:416;;;5079:88:142;;;9638:34:416;5140:4:142;9688:18:416;;;9681:43;9740:18;;;9733:34;;;4821:151:142;;-1:-1:-1;5079:33:142;;9550:18:416;;5079:88:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5211:9:142;;5252:11;;5211:103;;;;;:9;;;;;-1:-1:-1;5211:21:142;;-1:-1:-1;5211:103:142;;5252:11;;;;5276:7;;5299:12;;5211:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5378:5;5329:82;;5364:12;5329:82;;5351:11;5329:82;;;5385:3;5390:8;5400:10;;5329:82;;;;;;;;;:::i;:::-;;;;;;;;4610:808;4342:1076;;;;;;;;:::o;3043:234:268:-;4888:13:48;;;;;;;4880:69;;;;;;;12719:2:416;4880:69:48;;;12701:21:416;12758:2;12738:18;;;12731:30;12797:34;12777:18;;;12770:62;12868:13;12848:18;;;12841:41;12899:19;;4880:69:48;12517: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;271:154:416:-;357:42;350:5;346:54;339:5;336:65;326:93;;415:1;412;405:12;326:93;271:154;:::o;430:163::-;497:20;;557:10;546:22;;536:33;;526:61;;583:1;580;573:12;526:61;430:163;;;:::o;598:347::-;649:8;659:6;713:3;706:4;698:6;694:17;690:27;680:55;;731:1;728;721:12;680:55;-1:-1:-1;754:20:416;;797:18;786:30;;783:50;;;829:1;826;819:12;783:50;866:4;858:6;854:17;842:29;;918:3;911:4;902:6;894;890:19;886:30;883:39;880:59;;;935:1;932;925:12;880:59;598:347;;;;;:::o;950:827::-;1055:6;1063;1071;1079;1087;1095;1148:3;1136:9;1127:7;1123:23;1119:33;1116:53;;;1165:1;1162;1155:12;1116:53;1204:9;1191:23;1223:31;1248:5;1223:31;:::i;:::-;1273:5;-1:-1:-1;1330:2:416;1315:18;;1302:32;1343:33;1302:32;1343:33;:::i;:::-;1395:7;-1:-1:-1;1449:2:416;1434:18;;1421:32;;-1:-1:-1;1472:37:416;1505:2;1490:18;;1472:37;:::i;:::-;1462:47;;1560:3;1549:9;1545:19;1532:33;1588:18;1580:6;1577:30;1574:50;;;1620:1;1617;1610:12;1574:50;1659:58;1709:7;1700:6;1689:9;1685:22;1659:58;:::i;:::-;950:827;;;;-1:-1:-1;950:827:416;;-1:-1:-1;950:827:416;;1736:8;;950:827;-1:-1:-1;;;950:827:416:o;2044:445::-;2169:6;2177;2230:2;2218:9;2209:7;2205:23;2201:32;2198:52;;;2246:1;2243;2236:12;2198:52;2285:9;2272:23;2304:31;2329:5;2304:31;:::i;:::-;2354:5;-1:-1:-1;2411:2:416;2396:18;;2383:32;2424:33;2383:32;2424:33;:::i;:::-;2476:7;2466:17;;;2044:445;;;;;:::o;2494:531::-;2536:3;2574:5;2568:12;2601:6;2596:3;2589:19;2626:1;2636:162;2650:6;2647:1;2644:13;2636:162;;;2712:4;2768:13;;;2764:22;;2758:29;2740:11;;;2736:20;;2729:59;2665:12;2636:162;;;2816:6;2813:1;2810:13;2807:87;;;2882:1;2875:4;2866:6;2861:3;2857:16;2853:27;2846:38;2807:87;-1:-1:-1;2939:2:416;2927:15;2944:66;2923:88;2914:98;;;;3014:4;2910:109;;2494:531;-1:-1:-1;;2494:531:416:o;3030:220::-;3179:2;3168:9;3161:21;3142:4;3199:45;3240:2;3229:9;3225:18;3217:6;3199:45;:::i;:::-;3191:53;3030:220;-1:-1:-1;;;3030:220:416:o;3447:456::-;3524:6;3532;3540;3593:2;3581:9;3572:7;3568:23;3564:32;3561:52;;;3609:1;3606;3599:12;3561:52;3648:9;3635:23;3667:31;3692:5;3667:31;:::i;:::-;3717:5;-1:-1:-1;3774:2:416;3759:18;;3746:32;3787:33;3746:32;3787:33;:::i;:::-;3447:456;;3839:7;;-1:-1:-1;;;3893:2:416;3878:18;;;;3865:32;;3447:456::o;3908:1038::-;4023:6;4031;4039;4047;4055;4063;4071;4124:3;4112:9;4103:7;4099:23;4095:33;4092:53;;;4141:1;4138;4131:12;4092:53;4180:9;4167:23;4199:31;4224:5;4199:31;:::i;:::-;4249:5;-1:-1:-1;4306:2:416;4291:18;;4278:32;4319:33;4278:32;4319:33;:::i;:::-;4371:7;-1:-1:-1;4430:2:416;4415:18;;4402:32;4443:33;4402:32;4443:33;:::i;:::-;4495:7;-1:-1:-1;4554:2:416;4539:18;;4526:32;4567:33;4526:32;4567:33;:::i;:::-;4619:7;-1:-1:-1;4673:3:416;4658:19;;4645:33;;-1:-1:-1;4729:3:416;4714:19;;4701:33;4757:18;4746:30;;4743:50;;;4789:1;4786;4779:12;4743:50;4828:58;4878:7;4869:6;4858:9;4854:22;4828:58;:::i;:::-;3908:1038;;;;-1:-1:-1;3908:1038:416;;-1:-1:-1;3908:1038:416;;;;4802:84;;-1:-1:-1;;;3908:1038:416:o;5215:969::-;5329:6;5337;5345;5353;5361;5369;5377;5430:3;5418:9;5409:7;5405:23;5401:33;5398:53;;;5447:1;5444;5437:12;5398:53;5486:9;5473:23;5505:31;5530:5;5505:31;:::i;:::-;5555:5;-1:-1:-1;5612:2:416;5597:18;;5584:32;5625:33;5584:32;5625:33;:::i;:::-;5677:7;-1:-1:-1;5736:2:416;5721:18;;5708:32;5749:33;5708:32;5749:33;:::i;:::-;5801:7;-1:-1:-1;5855:2:416;5840:18;;5827:32;;-1:-1:-1;5878:38:416;5911:3;5896:19;;5878:38;:::i;:::-;5868:48;;5967:3;5956:9;5952:19;5939:33;5995:18;5987:6;5984:30;5981:50;;;6027:1;6024;6017:12;7217:277;7284:6;7337:2;7325:9;7316:7;7312:23;7308:32;7305:52;;;7353:1;7350;7343:12;7305:52;7385:9;7379:16;7438:5;7431:13;7424:21;7417:5;7414:32;7404:60;;7460:1;7457;7450:12;7499:251;7569:6;7622:2;7610:9;7601:7;7597:23;7593:32;7590:52;;;7638:1;7635;7628:12;7590:52;7670:9;7664:16;7689:31;7714:5;7689:31;:::i;9778:325::-;9866:6;9861:3;9854:19;9918:6;9911:5;9904:4;9899:3;9895:14;9882:43;;9970:1;9963:4;9954:6;9949:3;9945:16;9941:27;9934:38;9836:3;10092:4;10022:66;10017:2;10009:6;10005:15;10001:88;9996:3;9992:98;9988:109;9981:116;;9778:325;;;;:::o;10108:435::-;10333:42;10325:6;10321:55;10310:9;10303:74;10413:6;10408:2;10397:9;10393:18;10386:34;10456:2;10451;10440:9;10436:18;10429:30;10284:4;10476:61;10533:2;10522:9;10518:18;10510:6;10502;10476:61;:::i;:::-;10468:69;10108:435;-1:-1:-1;;;;;;10108:435:416:o;11383:700::-;11643:4;11672:42;11753:2;11745:6;11741:15;11730:9;11723:34;11805:2;11797:6;11793:15;11788:2;11777:9;11773:18;11766:43;11857:2;11849:6;11845:15;11840:2;11829:9;11825:18;11818:43;11909:2;11901:6;11897:15;11892:2;11881:9;11877:18;11870:43;;11950:6;11944:3;11933:9;11929:19;11922:35;11994:3;11988;11977:9;11973:19;11966:32;12015:62;12072:3;12061:9;12057:19;12049:6;12041;12015:62;:::i;:::-;12007:70;11383:700;-1:-1:-1;;;;;;;;;11383:700:416:o;12088:424::-;12301:42;12293:6;12289:55;12278:9;12271:74;12381:2;12376;12365:9;12361:18;12354:30;12252:4;12401:45;12442:2;12431:9;12427:18;12419:6;12401:45;:::i;:::-;12393:53;;12494:10;12486:6;12482:23;12477:2;12466:9;12462:18;12455:51;12088:424;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC721(address,address,uint256,uint32,bytes)":"3687011a","bridgeERC721To(address,address,address,uint256,uint32,bytes)":"aa557452","deposits(address,address,uint256)":"5d93a3fc","finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","initialize(address,address)":"485cc955","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","superchainConfig()":"35e80ab3","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\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"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\":\"contract CrossDomainMessenger\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"contract SuperchainConfig\",\"name\":\"_superchainConfig\",\"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\":\"superchainConfig\",\"outputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"\",\"type\":\"address\"}],\"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 L2.                     Data supplied here will not be used to execute any code on L2 and is                     only emitted as extra data for the convenience of off-chain tooling.\",\"_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,address)\":{\"params\":{\"_messenger\":\"Contract of the CrossDomainMessenger on this network.\",\"_superchainConfig\":\"Contract of the SuperchainConfig contract on this network.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"2.1.0\"}},\"title\":\"L1ERC721Bridge\",\"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 L1ERC721Bridge contract.\"},\"deposits(address,address,uint256)\":{\"notice\":\"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token         by ID was deposited for a given L2 token.\"},\"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,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.\"},\"superchainConfig()\":{\"notice\":\"Address of the SuperchainConfig contract.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to         make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract         acts as an escrow for ERC721 tokens deposited into L2.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/L1ERC721Bridge.sol\":\"L1ERC721Bridge\"},\"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":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"contract CrossDomainMessenger","name":"_messenger","type":"address"},{"internalType":"contract SuperchainConfig","name":"_superchainConfig","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":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"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 L2.                     Data supplied here will not be used to execute any code on L2 and is                     only emitted as extra data for the convenience of off-chain tooling.","_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,address)":{"params":{"_messenger":"Contract of the CrossDomainMessenger on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this 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 L1ERC721Bridge contract."},"deposits(address,address,uint256)":{"notice":"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token         by ID was deposited for a given L2 token."},"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,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."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L1ERC721Bridge.sol":"L1ERC721Bridge"},"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/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":50148,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":121807,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":121811,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"messenger","offset":0,"slot":"1","type":"t_contract(CrossDomainMessenger)121789"},{"astId":121815,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"otherBridge","offset":0,"slot":"2","type":"t_contract(StandardBridge)124636"},{"astId":121820,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)46_storage"},{"astId":88158,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"deposits","offset":0,"slot":"49","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_uint256,t_bool)))"},{"astId":88162,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"superchainConfig","offset":0,"slot":"50","type":"t_contract(SuperchainConfig)94870"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"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_contract(SuperchainConfig)94870":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_uint256,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(uint256 => bool)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_uint256,t_bool))"},"t_mapping(t_address,t_mapping(t_uint256,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_bool)"},"t_mapping(t_uint256,t_bool)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bool)","numberOfBytes":"32","value":"t_bool"},"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 L1ERC721Bridge contract."},"deposits(address,address,uint256)":{"notice":"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token         by ID was deposited for a given L2 token."},"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,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."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"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 L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to         make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract         acts as an escrow for ERC721 tokens deposited into 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 L2.                     Data supplied here will not be used to execute any code on L2 and is                     only emitted as extra data for the convenience of off-chain tooling.","_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,address)":{"params":{"_messenger":"Contract of the CrossDomainMessenger on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"title":"L1ERC721Bridge"},"ast":{"absolutePath":"src/L1/L1ERC721Bridge.sol","id":88398,"exportedSymbols":{"Constants":[112830],"CrossDomainMessenger":[121789],"ERC721Bridge":[122019],"IERC721":[53171],"ISemver":[122319],"L1ERC721Bridge":[88397],"L2ERC721Bridge":[97858],"Predeploys":[114341],"StandardBridge":[124636],"SuperchainConfig":[94870]},"nodeType":"SourceUnit","src":"32:5389:142","nodes":[{"id":88126,"nodeType":"PragmaDirective","src":"32:23:142","nodes":[],"literals":["solidity","0.8",".15"]},{"id":88128,"nodeType":"ImportDirective","src":"57:62:142","nodes":[],"absolutePath":"src/universal/ERC721Bridge.sol","file":"src/universal/ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":122020,"symbolAliases":[{"foreign":{"id":88127,"name":"ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122019,"src":"66:12:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88130,"nodeType":"ImportDirective","src":"120:75:142","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":53172,"symbolAliases":[{"foreign":{"id":88129,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53171,"src":"129:7:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88132,"nodeType":"ImportDirective","src":"196:59:142","nodes":[],"absolutePath":"src/L2/L2ERC721Bridge.sol","file":"src/L2/L2ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":97859,"symbolAliases":[{"foreign":{"id":88131,"name":"L2ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97858,"src":"205:14:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88134,"nodeType":"ImportDirective","src":"256:52:142","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":122320,"symbolAliases":[{"foreign":{"id":88133,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122319,"src":"265:7:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88136,"nodeType":"ImportDirective","src":"309:58:142","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":114342,"symbolAliases":[{"foreign":{"id":88135,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114341,"src":"318:10:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88138,"nodeType":"ImportDirective","src":"368:78:142","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":121790,"symbolAliases":[{"foreign":{"id":88137,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121789,"src":"377:20:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88140,"nodeType":"ImportDirective","src":"447:66:142","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":124637,"symbolAliases":[{"foreign":{"id":88139,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124636,"src":"456:14:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88142,"nodeType":"ImportDirective","src":"514:56:142","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":112831,"symbolAliases":[{"foreign":{"id":88141,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"523:9:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88144,"nodeType":"ImportDirective","src":"571:63:142","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":88398,"sourceUnit":94871,"symbolAliases":[{"foreign":{"id":88143,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94870,"src":"580:16:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88397,"nodeType":"ContractDefinition","src":"922:4498:142","nodes":[{"id":88158,"nodeType":"VariableDeclaration","src":"1134:80:142","nodes":[],"constant":false,"documentation":{"id":88150,"nodeType":"StructuredDocumentation","src":"977:152:142","text":"@notice Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token\n         by ID was deposited for a given L2 token."},"functionSelector":"5d93a3fc","mutability":"mutable","name":"deposits","nameLocation":"1206:8:142","scope":88397,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"},"typeName":{"id":88157,"keyType":{"id":88151,"name":"address","nodeType":"ElementaryTypeName","src":"1142:7:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1134:64:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"},"valueType":{"id":88156,"keyType":{"id":88152,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1153:44:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"valueType":{"id":88155,"keyType":{"id":88153,"name":"uint256","nodeType":"ElementaryTypeName","src":"1180:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1172:24:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueType":{"id":88154,"name":"bool","nodeType":"ElementaryTypeName","src":"1191:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}}},"visibility":"public"},{"id":88162,"nodeType":"VariableDeclaration","src":"1279:40:142","nodes":[],"constant":false,"documentation":{"id":88159,"nodeType":"StructuredDocumentation","src":"1221:53:142","text":"@notice Address of the SuperchainConfig contract."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"1303:16:142","scope":88397,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"},"typeName":{"id":88161,"nodeType":"UserDefinedTypeName","pathNode":{"id":88160,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":94870,"src":"1279:16:142"},"referencedDeclaration":94870,"src":"1279:16:142","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":88166,"nodeType":"VariableDeclaration","src":"1389:40:142","nodes":[],"baseFunctions":[122318],"constant":true,"documentation":{"id":88163,"nodeType":"StructuredDocumentation","src":"1326:58:142","text":"@notice Semantic version.\n @custom:semver 2.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1412:7:142","scope":88397,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":88164,"name":"string","nodeType":"ElementaryTypeName","src":"1389:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e312e30","id":88165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1422:7:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bb4aeded157fe72f9bc813a9dc1bd69961c5b5f35dafc6dc601ab742eacac6b","typeString":"literal_string \"2.1.0\""},"value":"2.1.0"},"visibility":"public"},{"id":88188,"nodeType":"FunctionDefinition","src":"1492:155:142","nodes":[],"body":{"id":88187,"nodeType":"Block","src":"1521:126:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":88176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:142","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":88175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1577:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88174,"name":"address","nodeType":"ElementaryTypeName","src":"1577:7:142","typeDescriptions":{}}},"id":88177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1577:10:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88173,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121789,"src":"1556:20:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$121789_$","typeString":"type(contract CrossDomainMessenger)"}},"id":88178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1556:32:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"hexValue":"30","id":88182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:142","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":88181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1626:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88180,"name":"address","nodeType":"ElementaryTypeName","src":"1626:7:142","typeDescriptions":{}}},"id":88183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:10:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88179,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94870,"src":"1609:16:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$94870_$","typeString":"type(contract SuperchainConfig)"}},"id":88184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1609:28:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}],"id":88172,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88216,"src":"1531:10:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$121789_$_t_contract$_SuperchainConfig_$94870_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract SuperchainConfig)"}},"id":88185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_superchainConfig"],"nodeType":"FunctionCall","src":"1531:109:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88186,"nodeType":"ExpressionStatement","src":"1531:109:142"}]},"documentation":{"id":88167,"nodeType":"StructuredDocumentation","src":"1436:51:142","text":"@notice Constructs the L1ERC721Bridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":88170,"kind":"baseConstructorSpecifier","modifierName":{"id":88169,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":122019,"src":"1506:12:142"},"nodeType":"ModifierInvocation","src":"1506:14:142"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":88168,"nodeType":"ParameterList","parameters":[],"src":"1503:2:142"},"returnParameters":{"id":88171,"nodeType":"ParameterList","parameters":[],"src":"1521:0:142"},"scope":88397,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":88216,"nodeType":"FunctionDefinition","src":"1869:318:142","nodes":[],"body":{"id":88215,"nodeType":"Block","src":"1977:210:142","nodes":[],"statements":[{"expression":{"id":88202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":88200,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88162,"src":"1987:16:142","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":88201,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88195,"src":"2006:17:142","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}},"src":"1987:36:142","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}},"id":88203,"nodeType":"ExpressionStatement","src":"1987:36:142"},{"expression":{"arguments":[{"id":88205,"name":"_messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88192,"src":"2079:10:142","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"expression":{"id":88209,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114341,"src":"2140:10:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$114341_$","typeString":"type(library Predeploys)"}},"id":88210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_ERC721_BRIDGE","nodeType":"MemberAccess","referencedDeclaration":113894,"src":"2140:27:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2132:8:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":88207,"name":"address","nodeType":"ElementaryTypeName","src":"2132:8:142","stateMutability":"payable","typeDescriptions":{}}},"id":88211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2132:36:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":88206,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124636,"src":"2117:14:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$124636_$","typeString":"type(contract StandardBridge)"}},"id":88212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2117:52:142","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":88204,"name":"__ERC721Bridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121896,"src":"2033:19:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$121789_$_t_contract$_StandardBridge_$124636_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":88213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"2033:147:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88214,"nodeType":"ExpressionStatement","src":"2033:147:142"}]},"documentation":{"id":88189,"nodeType":"StructuredDocumentation","src":"1653:211:142","text":"@notice Initializes the contract.\n @param _messenger   Contract of the CrossDomainMessenger on this network.\n @param _superchainConfig Contract of the SuperchainConfig contract on this network."},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":88198,"kind":"modifierInvocation","modifierName":{"id":88197,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":50209,"src":"1965:11:142"},"nodeType":"ModifierInvocation","src":"1965:11:142"}],"name":"initialize","nameLocation":"1878:10:142","parameters":{"id":88196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88192,"mutability":"mutable","name":"_messenger","nameLocation":"1910:10:142","nodeType":"VariableDeclaration","scope":88216,"src":"1889:31:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},"typeName":{"id":88191,"nodeType":"UserDefinedTypeName","pathNode":{"id":88190,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":121789,"src":"1889:20:142"},"referencedDeclaration":121789,"src":"1889:20:142","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"},{"constant":false,"id":88195,"mutability":"mutable","name":"_superchainConfig","nameLocation":"1939:17:142","nodeType":"VariableDeclaration","scope":88216,"src":"1922:34:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"},"typeName":{"id":88194,"nodeType":"UserDefinedTypeName","pathNode":{"id":88193,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":94870,"src":"1922:16:142"},"referencedDeclaration":94870,"src":"1922:16:142","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}},"visibility":"internal"}],"src":"1888:69:142"},"returnParameters":{"id":88199,"nodeType":"ParameterList","parameters":[],"src":"1977:0:142"},"scope":88397,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":88228,"nodeType":"FunctionDefinition","src":"2226:103:142","nodes":[],"body":{"id":88227,"nodeType":"Block","src":"2280:49:142","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":88223,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88162,"src":"2297:16:142","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$94870","typeString":"contract SuperchainConfig"}},"id":88224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":94784,"src":"2297:23:142","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":88225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2297:25:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":88222,"id":88226,"nodeType":"Return","src":"2290:32:142"}]},"baseFunctions":[121925],"documentation":{"id":88217,"nodeType":"StructuredDocumentation","src":"2193:28:142","text":"@inheritdoc ERC721Bridge"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"2235:6:142","overrides":{"id":88219,"nodeType":"OverrideSpecifier","overrides":[],"src":"2256:8:142"},"parameters":{"id":88218,"nodeType":"ParameterList","parameters":[],"src":"2241:2:142"},"returnParameters":{"id":88222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":88228,"src":"2274:4:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":88220,"name":"bool","nodeType":"ElementaryTypeName","src":"2274:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2273:6:142"},"scope":88397,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":88309,"nodeType":"FunctionDefinition","src":"3096:1207:142","nodes":[],"body":{"id":88308,"nodeType":"Block","src":"3341:962:142","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":88250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":88247,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[88228],"referencedDeclaration":88228,"src":"3359:6:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":88248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3359:8:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":88249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3371:5:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3359:17:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a20706175736564","id":88251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3378:24:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_0547274687a86ca0a34590eabb05ad0a44aae82bbc5d30b7acda91288e349519","typeString":"literal_string \"L1ERC721Bridge: paused\""},"value":"L1ERC721Bridge: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0547274687a86ca0a34590eabb05ad0a44aae82bbc5d30b7acda91288e349519","typeString":"literal_string \"L1ERC721Bridge: paused\""}],"id":88246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3351:7:142","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":88252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3351:52:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88253,"nodeType":"ExpressionStatement","src":"3351:52:142"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":88260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":88255,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88231,"src":"3421:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":88258,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3444:4:142","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$88397","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$88397","typeString":"contract L1ERC721Bridge"}],"id":88257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3436:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88256,"name":"address","nodeType":"ElementaryTypeName","src":"3436:7:142","typeDescriptions":{}}},"id":88259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3436:13:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3421:28:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e6f742062652073656c66","id":88261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3451:44:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_218d51cceb2e9e86022eea81b17e23e1e964bba3aa5268e422fe8d05e54eb832","typeString":"literal_string \"L1ERC721Bridge: local token cannot be self\""},"value":"L1ERC721Bridge: local token cannot be self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_218d51cceb2e9e86022eea81b17e23e1e964bba3aa5268e422fe8d05e54eb832","typeString":"literal_string \"L1ERC721Bridge: local token cannot be self\""}],"id":88254,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3413:7:142","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":88262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3413:83:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88263,"nodeType":"ExpressionStatement","src":"3413:83:142"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":88273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":88265,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88158,"src":"3620:8:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":88267,"indexExpression":{"id":88266,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88231,"src":"3629:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:21:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":88269,"indexExpression":{"id":88268,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88233,"src":"3642:12:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:35:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":88271,"indexExpression":{"id":88270,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88239,"src":"3656:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:45:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":88272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3669:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3620:53:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a20546f6b656e204944206973206e6f7420657363726f77656420696e20746865204c3120427269646765","id":88274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3687:59:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_bee7d98e66133cf40de344b202cc1df78b20213eed80aaf4210604281fdaa6af","typeString":"literal_string \"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge\""},"value":"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bee7d98e66133cf40de344b202cc1df78b20213eed80aaf4210604281fdaa6af","typeString":"literal_string \"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge\""}],"id":88264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3599:7:142","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":88275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3599:157:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88276,"nodeType":"ExpressionStatement","src":"3599:157:142"},{"expression":{"id":88285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":88277,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88158,"src":"3878:8:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":88281,"indexExpression":{"id":88278,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88231,"src":"3887:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3878:21:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":88282,"indexExpression":{"id":88279,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88233,"src":"3900:12:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3878:35:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":88283,"indexExpression":{"id":88280,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88239,"src":"3914:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3878:45:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":88284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3926:5:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3878:53:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":88286,"nodeType":"ExpressionStatement","src":"3878:53:142"},{"expression":{"arguments":[{"arguments":[{"id":88293,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4107:4:142","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$88397","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$88397","typeString":"contract L1ERC721Bridge"}],"id":88292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4099:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88291,"name":"address","nodeType":"ElementaryTypeName","src":"4099:7:142","typeDescriptions":{}}},"id":88294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4099:13:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88295,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88237,"src":"4118:3:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88296,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88239,"src":"4132:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":88288,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88231,"src":"4061:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88287,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53171,"src":"4053:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$53171_$","typeString":"type(contract IERC721)"}},"id":88289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4053:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$53171","typeString":"contract IERC721"}},"id":88290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":53126,"src":"4053:37:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":88297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["from","to","tokenId"],"nodeType":"FunctionCall","src":"4053:90:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88298,"nodeType":"ExpressionStatement","src":"4053:90:142"},{"eventCall":{"arguments":[{"id":88300,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88231,"src":"4236:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88301,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88233,"src":"4249:12:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88302,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88235,"src":"4263:5:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88303,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88237,"src":"4270:3:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88304,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88239,"src":"4275:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":88305,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88241,"src":"4285:10:142","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":88299,"name":"ERC721BridgeFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121850,"src":"4214:21:142","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":88306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:82:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88307,"nodeType":"EmitStatement","src":"4209:87:142"}]},"documentation":{"id":88229,"nodeType":"StructuredDocumentation","src":"2335:756:142","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 L2.\n                     Data supplied here will not be used to execute any code on L2 and is\n                     only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"761f4493","implemented":true,"kind":"function","modifiers":[{"id":88244,"kind":"modifierInvocation","modifierName":{"id":88243,"name":"onlyOtherBridge","nodeType":"IdentifierPath","referencedDeclaration":121875,"src":"3321:15:142"},"nodeType":"ModifierInvocation","src":"3321:15:142"}],"name":"finalizeBridgeERC721","nameLocation":"3105:20:142","parameters":{"id":88242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88231,"mutability":"mutable","name":"_localToken","nameLocation":"3143:11:142","nodeType":"VariableDeclaration","scope":88309,"src":"3135:19:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88230,"name":"address","nodeType":"ElementaryTypeName","src":"3135:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88233,"mutability":"mutable","name":"_remoteToken","nameLocation":"3172:12:142","nodeType":"VariableDeclaration","scope":88309,"src":"3164:20:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88232,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88235,"mutability":"mutable","name":"_from","nameLocation":"3202:5:142","nodeType":"VariableDeclaration","scope":88309,"src":"3194:13:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88234,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88237,"mutability":"mutable","name":"_to","nameLocation":"3225:3:142","nodeType":"VariableDeclaration","scope":88309,"src":"3217:11:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88236,"name":"address","nodeType":"ElementaryTypeName","src":"3217:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88239,"mutability":"mutable","name":"_tokenId","nameLocation":"3246:8:142","nodeType":"VariableDeclaration","scope":88309,"src":"3238:16:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88238,"name":"uint256","nodeType":"ElementaryTypeName","src":"3238:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":88241,"mutability":"mutable","name":"_extraData","nameLocation":"3279:10:142","nodeType":"VariableDeclaration","scope":88309,"src":"3264:25:142","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":88240,"name":"bytes","nodeType":"ElementaryTypeName","src":"3264:5:142","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3125:170:142"},"returnParameters":{"id":88245,"nodeType":"ParameterList","parameters":[],"src":"3341:0:142"},"scope":88397,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":88396,"nodeType":"FunctionDefinition","src":"4342:1076:142","nodes":[],"body":{"id":88395,"nodeType":"Block","src":"4610:808:142","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":88334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":88329,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88314,"src":"4628:12:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":88332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4652:1:142","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":88331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4644:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88330,"name":"address","nodeType":"ElementaryTypeName","src":"4644:7:142","typeDescriptions":{}}},"id":88333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4644:10:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4628:26:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e6e6f742062652061646472657373283029","id":88335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4656:51:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_14e51418e54e820a40fc2643b1167465f7abe28f86e3d4e777c562f03e420dd1","typeString":"literal_string \"L1ERC721Bridge: remote token cannot be address(0)\""},"value":"L1ERC721Bridge: remote token cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14e51418e54e820a40fc2643b1167465f7abe28f86e3d4e777c562f03e420dd1","typeString":"literal_string \"L1ERC721Bridge: remote token cannot be address(0)\""}],"id":88328,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4620:7:142","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":88336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4620:88:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88337,"nodeType":"ExpressionStatement","src":"4620:88:142"},{"assignments":[88339],"declarations":[{"constant":false,"id":88339,"mutability":"mutable","name":"message","nameLocation":"4811:7:142","nodeType":"VariableDeclaration","scope":88395,"src":"4798:20:142","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":88338,"name":"bytes","nodeType":"ElementaryTypeName","src":"4798:5:142","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":88352,"initialValue":{"arguments":[{"expression":{"expression":{"id":88342,"name":"L2ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97858,"src":"4857:14:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2ERC721Bridge_$97858_$","typeString":"type(contract L2ERC721Bridge)"}},"id":88343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeBridgeERC721","nodeType":"MemberAccess","referencedDeclaration":97757,"src":"4857:35:142","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function L2ERC721Bridge.finalizeBridgeERC721(address,address,address,address,uint256,bytes calldata)"}},"id":88344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4857:44:142","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":88345,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88314,"src":"4903:12:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88346,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88312,"src":"4917:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88347,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88316,"src":"4930:5:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88348,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88318,"src":"4937:3:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88349,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88320,"src":"4942:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":88350,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88324,"src":"4952:10:142","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":88340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4821:3:142","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":88341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4821:22:142","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":88351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4821:151:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4798:174:142"},{"expression":{"id":88361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":88353,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88158,"src":"5017:8:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":88357,"indexExpression":{"id":88354,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88312,"src":"5026:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5017:21:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":88358,"indexExpression":{"id":88355,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88314,"src":"5039:12:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5017:35:142","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":88359,"indexExpression":{"id":88356,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88320,"src":"5053:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5017:45:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":88360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5065:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5017:52:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":88362,"nodeType":"ExpressionStatement","src":"5017:52:142"},{"expression":{"arguments":[{"id":88367,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88316,"src":"5121:5:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":88370,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5140:4:142","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$88397","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$88397","typeString":"contract L1ERC721Bridge"}],"id":88369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5132:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88368,"name":"address","nodeType":"ElementaryTypeName","src":"5132:7:142","typeDescriptions":{}}},"id":88371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5132:13:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88372,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88320,"src":"5156:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":88364,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88312,"src":"5087:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88363,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53171,"src":"5079:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$53171_$","typeString":"type(contract IERC721)"}},"id":88365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5079:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$53171","typeString":"contract IERC721"}},"id":88366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":53136,"src":"5079:33:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":88373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["from","to","tokenId"],"nodeType":"FunctionCall","src":"5079:88:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88374,"nodeType":"ExpressionStatement","src":"5079:88:142"},{"expression":{"arguments":[{"arguments":[{"id":88380,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121815,"src":"5252:11:142","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}],"id":88379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5244:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88378,"name":"address","nodeType":"ElementaryTypeName","src":"5244:7:142","typeDescriptions":{}}},"id":88381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5244:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88382,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88339,"src":"5276:7:142","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":88383,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88322,"src":"5299:12:142","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":88375,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121811,"src":"5211:9:142","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"id":88377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":121412,"src":"5211:21:142","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) payable external"}},"id":88384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_target","_message","_minGasLimit"],"nodeType":"FunctionCall","src":"5211:103:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88385,"nodeType":"ExpressionStatement","src":"5211:103:142"},{"eventCall":{"arguments":[{"id":88387,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88312,"src":"5351:11:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88388,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88314,"src":"5364:12:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88389,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88316,"src":"5378:5:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88390,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88318,"src":"5385:3:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88391,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88320,"src":"5390:8:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":88392,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88324,"src":"5400:10:142","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":88386,"name":"ERC721BridgeInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121835,"src":"5329:21:142","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":88393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5329:82:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88394,"nodeType":"EmitStatement","src":"5324:87:142"}]},"baseFunctions":[122018],"documentation":{"id":88310,"nodeType":"StructuredDocumentation","src":"4309:28:142","text":"@inheritdoc ERC721Bridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateBridgeERC721","nameLocation":"4351:21:142","overrides":{"id":88326,"nodeType":"OverrideSpecifier","overrides":[],"src":"4597:8:142"},"parameters":{"id":88325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88312,"mutability":"mutable","name":"_localToken","nameLocation":"4390:11:142","nodeType":"VariableDeclaration","scope":88396,"src":"4382:19:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88311,"name":"address","nodeType":"ElementaryTypeName","src":"4382:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88314,"mutability":"mutable","name":"_remoteToken","nameLocation":"4419:12:142","nodeType":"VariableDeclaration","scope":88396,"src":"4411:20:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88313,"name":"address","nodeType":"ElementaryTypeName","src":"4411:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88316,"mutability":"mutable","name":"_from","nameLocation":"4449:5:142","nodeType":"VariableDeclaration","scope":88396,"src":"4441:13:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88315,"name":"address","nodeType":"ElementaryTypeName","src":"4441:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88318,"mutability":"mutable","name":"_to","nameLocation":"4472:3:142","nodeType":"VariableDeclaration","scope":88396,"src":"4464:11:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88317,"name":"address","nodeType":"ElementaryTypeName","src":"4464:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88320,"mutability":"mutable","name":"_tokenId","nameLocation":"4493:8:142","nodeType":"VariableDeclaration","scope":88396,"src":"4485:16:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88319,"name":"uint256","nodeType":"ElementaryTypeName","src":"4485:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":88322,"mutability":"mutable","name":"_minGasLimit","nameLocation":"4518:12:142","nodeType":"VariableDeclaration","scope":88396,"src":"4511:19:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":88321,"name":"uint32","nodeType":"ElementaryTypeName","src":"4511:6:142","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":88324,"mutability":"mutable","name":"_extraData","nameLocation":"4555:10:142","nodeType":"VariableDeclaration","scope":88396,"src":"4540:25:142","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":88323,"name":"bytes","nodeType":"ElementaryTypeName","src":"4540:5:142","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4372:199:142"},"returnParameters":{"id":88327,"nodeType":"ParameterList","parameters":[],"src":"4610:0:142"},"scope":88397,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":88146,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":122019,"src":"949:12:142"},"id":88147,"nodeType":"InheritanceSpecifier","src":"949:12:142"},{"baseName":{"id":88148,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":122319,"src":"963:7:142"},"id":88149,"nodeType":"InheritanceSpecifier","src":"963:7:142"}],"canonicalName":"L1ERC721Bridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":88145,"nodeType":"StructuredDocumentation","src":"636:286:142","text":"@title L1ERC721Bridge\n @notice The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to\n         make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract\n         acts as an escrow for ERC721 tokens deposited into L2."},"fullyImplemented":true,"linearizedBaseContracts":[88397,122319,122019,50289],"name":"L1ERC721Bridge","nameLocation":"931:14:142","scope":88398,"usedErrors":[]}],"license":"MIT"},"id":142}