-
Notifications
You must be signed in to change notification settings - Fork 7
/
L1ERC721BridgeV2.json
279 lines (279 loc) · 21 KB
/
L1ERC721BridgeV2.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
{
"_format": "hh-sol-artifact-1",
"contractName": "L1ERC721BridgeV2",
"sourceName": "contracts/oasys/L1/messaging/L1ERC721BridgeV2.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_l1Token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_l2Token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "ERC721DepositInitiated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_l1Token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_l2Token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "ERC721WithdrawalFinalized",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_l1Token",
"type": "address"
},
{
"internalType": "address",
"name": "_l2Token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "_l2Gas",
"type": "uint32"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "depositERC721",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_l1Token",
"type": "address"
},
{
"internalType": "address",
"name": "_l2Token",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "_l2Gas",
"type": "uint32"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "depositERC721To",
"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": "_l1Token",
"type": "address"
},
{
"internalType": "address",
"name": "_l2Token",
"type": "address"
},
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "finalizeERC721Withdrawal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_l1messenger",
"type": "address"
},
{
"internalType": "address",
"name": "_l2ERC721Bridge",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "l2ERC721Bridge",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "messenger",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b0319169055610eef806100306000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80635d93a3fc1161005b5780635d93a3fc146100f45780638f45e47714610138578063c1bcfa4f1461014b578063dbfc9c3f1461015e57600080fd5b806330389967146100825780633cb747bf14610097578063485cc955146100e1575b600080fd5b610095610090366004610b04565b61017e565b005b6000546100b79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100956100ef366004610b87565b610204565b610128610102366004610bc0565b600260209081526000938452604080852082529284528284209052825290205460ff1681565b60405190151581526020016100d8565b610095610146366004610c01565b6102d7565b610095610159366004610c99565b610727565b6001546100b79073ffffffffffffffffffffffffffffffffffffffff1681565b333b156101ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4163636f756e74206e6f7420454f41000000000000000000000000000000000060448201526064015b60405180910390fd5b6101fc8686333388888888610740565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1615610284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e697469616c697a65206f6e6c79206f6e636500000000000000000000000060448201526064016101e3565b6000805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560018054929093169116179055565b60015473ffffffffffffffffffffffffffffffffffffffff1661030f60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016101e3565b8073ffffffffffffffffffffffffffffffffffffffff166103ff60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561044457600080fd5b505afa158015610458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047c9190610d10565b73ffffffffffffffffffffffffffffffffffffffff161461051f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016101e3565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b1683529281528282208783529052205460ff166105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f74206465706f73697465640000000000000000000000000000000000000060448201526064016101e3565b73ffffffffffffffffffffffffffffffffffffffff88811660008181526002602090815260408083208c8616845282528083208984529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f23b872dd000000000000000000000000000000000000000000000000000000008152306004820152918716602483015260448201869052906323b872dd90606401600060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f7fb3671da6a9a3c4b54a15e06575a4fa57d6264ad848930a6ea490e03e7514c1888888886040516107159493929190610d7d565b60405180910390a45050505050505050565b6107378787338888888888610740565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b1683529281528282208783529052205460ff16156107e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f416c7265616479206465706f736974656400000000000000000000000000000060448201526064016101e3565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152306024830152604482018690528916906323b872dd90606401600060405180830381600087803b15801561085b57600080fd5b505af115801561086f573d6000803e3d6000fd5b50505050600063662a633a60e01b8989898989888860405160240161089a9796959493929190610dbd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260015490915061093e9073ffffffffffffffffffffffffffffffffffffffff1685836109f5565b73ffffffffffffffffffffffffffffffffffffffff808a1660008181526002602090815260408083208d86168085529083528184208b85529092529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559051928a16929091907fd660bea642cb3af692ff947912f15e82ec86ad0796523ba971c5f369a6f989c5906109e2908b908b908a908a90610d7d565b60405180910390a4505050505050505050565b6000546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b90610a4f90869085908790600401610e1a565b600060405180830381600087803b158015610a6957600080fd5b505af1158015610737573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a9f57600080fd5b50565b803563ffffffff81168114610ab657600080fd5b919050565b60008083601f840112610acd57600080fd5b50813567ffffffffffffffff811115610ae557600080fd5b602083019150836020828501011115610afd57600080fd5b9250929050565b60008060008060008060a08789031215610b1d57600080fd5b8635610b2881610a7d565b95506020870135610b3881610a7d565b945060408701359350610b4d60608801610aa2565b9250608087013567ffffffffffffffff811115610b6957600080fd5b610b7589828a01610abb565b979a9699509497509295939492505050565b60008060408385031215610b9a57600080fd5b8235610ba581610a7d565b91506020830135610bb581610a7d565b809150509250929050565b600080600060608486031215610bd557600080fd5b8335610be081610a7d565b92506020840135610bf081610a7d565b929592945050506040919091013590565b600080600080600080600060c0888a031215610c1c57600080fd5b8735610c2781610a7d565b96506020880135610c3781610a7d565b95506040880135610c4781610a7d565b94506060880135610c5781610a7d565b93506080880135925060a088013567ffffffffffffffff811115610c7a57600080fd5b610c868a828b01610abb565b989b979a50959850939692959293505050565b600080600080600080600060c0888a031215610cb457600080fd5b8735610cbf81610a7d565b96506020880135610ccf81610a7d565b95506040880135610cdf81610a7d565b945060608801359350610cf460808901610aa2565b925060a088013567ffffffffffffffff811115610c7a57600080fd5b600060208284031215610d2257600080fd5b8151610d2d81610a7d565b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610db3606083018486610d34565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a0830152610e0d60c083018486610d34565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815260006020606081840152845180606085015260005b81811015610e6457868101830151858201608001528201610e48565b81811115610e76576000608083870101525b5063ffffffff9490941660408401525050601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016016080019291505056fea26469706673582212206c2b77a3fea5aa85a79d440bfa071416f63f3deba4bc3abec3d3ca8768451e0164736f6c63430008090033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80635d93a3fc1161005b5780635d93a3fc146100f45780638f45e47714610138578063c1bcfa4f1461014b578063dbfc9c3f1461015e57600080fd5b806330389967146100825780633cb747bf14610097578063485cc955146100e1575b600080fd5b610095610090366004610b04565b61017e565b005b6000546100b79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100956100ef366004610b87565b610204565b610128610102366004610bc0565b600260209081526000938452604080852082529284528284209052825290205460ff1681565b60405190151581526020016100d8565b610095610146366004610c01565b6102d7565b610095610159366004610c99565b610727565b6001546100b79073ffffffffffffffffffffffffffffffffffffffff1681565b333b156101ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4163636f756e74206e6f7420454f41000000000000000000000000000000000060448201526064015b60405180910390fd5b6101fc8686333388888888610740565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1615610284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e697469616c697a65206f6e6c79206f6e636500000000000000000000000060448201526064016101e3565b6000805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560018054929093169116179055565b60015473ffffffffffffffffffffffffffffffffffffffff1661030f60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016101e3565b8073ffffffffffffffffffffffffffffffffffffffff166103ff60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561044457600080fd5b505afa158015610458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047c9190610d10565b73ffffffffffffffffffffffffffffffffffffffff161461051f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016101e3565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b1683529281528282208783529052205460ff166105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f74206465706f73697465640000000000000000000000000000000000000060448201526064016101e3565b73ffffffffffffffffffffffffffffffffffffffff88811660008181526002602090815260408083208c8616845282528083208984529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f23b872dd000000000000000000000000000000000000000000000000000000008152306004820152918716602483015260448201869052906323b872dd90606401600060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f7fb3671da6a9a3c4b54a15e06575a4fa57d6264ad848930a6ea490e03e7514c1888888886040516107159493929190610d7d565b60405180910390a45050505050505050565b6107378787338888888888610740565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b1683529281528282208783529052205460ff16156107e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f416c7265616479206465706f736974656400000000000000000000000000000060448201526064016101e3565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152306024830152604482018690528916906323b872dd90606401600060405180830381600087803b15801561085b57600080fd5b505af115801561086f573d6000803e3d6000fd5b50505050600063662a633a60e01b8989898989888860405160240161089a9796959493929190610dbd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260015490915061093e9073ffffffffffffffffffffffffffffffffffffffff1685836109f5565b73ffffffffffffffffffffffffffffffffffffffff808a1660008181526002602090815260408083208d86168085529083528184208b85529092529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559051928a16929091907fd660bea642cb3af692ff947912f15e82ec86ad0796523ba971c5f369a6f989c5906109e2908b908b908a908a90610d7d565b60405180910390a4505050505050505050565b6000546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b90610a4f90869085908790600401610e1a565b600060405180830381600087803b158015610a6957600080fd5b505af1158015610737573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a9f57600080fd5b50565b803563ffffffff81168114610ab657600080fd5b919050565b60008083601f840112610acd57600080fd5b50813567ffffffffffffffff811115610ae557600080fd5b602083019150836020828501011115610afd57600080fd5b9250929050565b60008060008060008060a08789031215610b1d57600080fd5b8635610b2881610a7d565b95506020870135610b3881610a7d565b945060408701359350610b4d60608801610aa2565b9250608087013567ffffffffffffffff811115610b6957600080fd5b610b7589828a01610abb565b979a9699509497509295939492505050565b60008060408385031215610b9a57600080fd5b8235610ba581610a7d565b91506020830135610bb581610a7d565b809150509250929050565b600080600060608486031215610bd557600080fd5b8335610be081610a7d565b92506020840135610bf081610a7d565b929592945050506040919091013590565b600080600080600080600060c0888a031215610c1c57600080fd5b8735610c2781610a7d565b96506020880135610c3781610a7d565b95506040880135610c4781610a7d565b94506060880135610c5781610a7d565b93506080880135925060a088013567ffffffffffffffff811115610c7a57600080fd5b610c868a828b01610abb565b989b979a50959850939692959293505050565b600080600080600080600060c0888a031215610cb457600080fd5b8735610cbf81610a7d565b96506020880135610ccf81610a7d565b95506040880135610cdf81610a7d565b945060608801359350610cf460808901610aa2565b925060a088013567ffffffffffffffff811115610c7a57600080fd5b600060208284031215610d2257600080fd5b8151610d2d81610a7d565b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610db3606083018486610d34565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a0830152610e0d60c083018486610d34565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815260006020606081840152845180606085015260005b81811015610e6457868101830151858201608001528201610e48565b81811115610e76576000608083870101525b5063ffffffff9490941660408401525050601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016016080019291505056fea26469706673582212206c2b77a3fea5aa85a79d440bfa071416f63f3deba4bc3abec3d3ca8768451e0164736f6c63430008090033",
"linkReferences": {},
"deployedLinkReferences": {}
}