@layerzerolabs/lz-evm-oapp-v2 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/artifacts/contracts/oapp/OApp.sol/OApp.json +332 -0
  2. package/artifacts/contracts/oapp/OAppCore.sol/OAppCore.json +195 -0
  3. package/artifacts/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +316 -0
  4. package/artifacts/contracts/oapp/OAppSender.sol/OAppSender.json +211 -0
  5. package/artifacts/contracts/oapp/examples/OmniCounter.sol/MsgCodec.json +10 -0
  6. package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +874 -0
  7. package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +373 -0
  8. package/artifacts/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  9. package/artifacts/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +143 -0
  10. package/artifacts/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  11. package/artifacts/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  12. package/artifacts/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  13. package/artifacts/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  14. package/artifacts/contracts/oft/OFT.sol/OFT.json +1466 -0
  15. package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1204 -0
  16. package/artifacts/contracts/oft/OFTCore.sol/OFTCore.json +1170 -0
  17. package/artifacts/contracts/oft/interfaces/IOFT.sol/IOFT.json +472 -0
  18. package/artifacts/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  19. package/artifacts/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  20. package/artifacts/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  21. package/artifacts/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  22. package/artifacts/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  23. package/artifacts/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  24. package/artifacts/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  25. package/artifacts/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  26. package/contracts/oapp/OApp.sol +39 -0
  27. package/contracts/oapp/OAppCore.sol +68 -0
  28. package/contracts/oapp/OAppReceiver.sol +101 -0
  29. package/contracts/oapp/OAppSender.sol +124 -0
  30. package/contracts/oapp/examples/OmniCounter.sol +283 -0
  31. package/contracts/oapp/examples/OmniCounterPreCrime.sol +102 -0
  32. package/contracts/oapp/interfaces/IOAppComposer.sol +12 -0
  33. package/contracts/oapp/interfaces/IOAppCore.sol +51 -0
  34. package/contracts/oapp/interfaces/IOAppMsgInspector.sol +22 -0
  35. package/contracts/oapp/interfaces/IOAppOptionsType3.sol +43 -0
  36. package/contracts/oapp/libs/OAppOptionsType3.sol +82 -0
  37. package/contracts/oapp/libs/OptionsBuilder.sol +200 -0
  38. package/contracts/oft/OFT.sol +116 -0
  39. package/contracts/oft/OFTAdapter.sol +131 -0
  40. package/contracts/oft/OFTCore.sol +456 -0
  41. package/contracts/oft/OFTPrecrime.sol +99 -0
  42. package/contracts/oft/interfaces/IOFT.sol +168 -0
  43. package/contracts/oft/libs/OFTComposeMsgCodec.sol +91 -0
  44. package/contracts/oft/libs/OFTMsgCodec.sol +83 -0
  45. package/contracts/precrime/OAppPreCrimeSimulator.sol +125 -0
  46. package/contracts/precrime/PreCrime.sol +208 -0
  47. package/contracts/precrime/extensions/PreCrimeE1.sol +30 -0
  48. package/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol +55 -0
  49. package/contracts/precrime/interfaces/IPreCrime.sol +40 -0
  50. package/contracts/precrime/libs/Packet.sol +61 -0
  51. package/package.json +35 -0
@@ -0,0 +1,373 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OmniCounterPreCrime",
4
+ "sourceName": "contracts/oapp/examples/OmniCounterPreCrime.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_counter",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_owner",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "bytes",
31
+ "name": "crime",
32
+ "type": "bytes"
33
+ }
34
+ ],
35
+ "name": "CrimeFound",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "uint32",
42
+ "name": "eid",
43
+ "type": "uint32"
44
+ },
45
+ {
46
+ "internalType": "bytes",
47
+ "name": "reason",
48
+ "type": "bytes"
49
+ }
50
+ ],
51
+ "name": "InvalidSimulationResult",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [],
56
+ "name": "OnlyOffChain",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "max",
64
+ "type": "uint256"
65
+ },
66
+ {
67
+ "internalType": "uint256",
68
+ "name": "actual",
69
+ "type": "uint256"
70
+ }
71
+ ],
72
+ "name": "PacketOversize",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [],
77
+ "name": "PacketUnsorted",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "bytes",
84
+ "name": "reason",
85
+ "type": "bytes"
86
+ }
87
+ ],
88
+ "name": "SimulationFailed",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "uint32",
95
+ "name": "eid",
96
+ "type": "uint32"
97
+ }
98
+ ],
99
+ "name": "SimulationResultNotFound",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "anonymous": false,
104
+ "inputs": [
105
+ {
106
+ "indexed": true,
107
+ "internalType": "address",
108
+ "name": "previousOwner",
109
+ "type": "address"
110
+ },
111
+ {
112
+ "indexed": true,
113
+ "internalType": "address",
114
+ "name": "newOwner",
115
+ "type": "address"
116
+ }
117
+ ],
118
+ "name": "OwnershipTransferred",
119
+ "type": "event"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "buildSimulationResult",
124
+ "outputs": [
125
+ {
126
+ "internalType": "bytes",
127
+ "name": "",
128
+ "type": "bytes"
129
+ }
130
+ ],
131
+ "stateMutability": "view",
132
+ "type": "function"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "bytes[]",
138
+ "name": "_packets",
139
+ "type": "bytes[]"
140
+ },
141
+ {
142
+ "internalType": "uint256[]",
143
+ "name": "_packetMsgValues",
144
+ "type": "uint256[]"
145
+ }
146
+ ],
147
+ "name": "getConfig",
148
+ "outputs": [
149
+ {
150
+ "internalType": "bytes",
151
+ "name": "",
152
+ "type": "bytes"
153
+ }
154
+ ],
155
+ "stateMutability": "nonpayable",
156
+ "type": "function"
157
+ },
158
+ {
159
+ "inputs": [],
160
+ "name": "getPreCrimePeers",
161
+ "outputs": [
162
+ {
163
+ "components": [
164
+ {
165
+ "internalType": "uint32",
166
+ "name": "eid",
167
+ "type": "uint32"
168
+ },
169
+ {
170
+ "internalType": "bytes32",
171
+ "name": "preCrime",
172
+ "type": "bytes32"
173
+ },
174
+ {
175
+ "internalType": "bytes32",
176
+ "name": "oApp",
177
+ "type": "bytes32"
178
+ }
179
+ ],
180
+ "internalType": "struct PreCrimePeer[]",
181
+ "name": "",
182
+ "type": "tuple[]"
183
+ }
184
+ ],
185
+ "stateMutability": "view",
186
+ "type": "function"
187
+ },
188
+ {
189
+ "inputs": [],
190
+ "name": "maxBatchSize",
191
+ "outputs": [
192
+ {
193
+ "internalType": "uint64",
194
+ "name": "",
195
+ "type": "uint64"
196
+ }
197
+ ],
198
+ "stateMutability": "view",
199
+ "type": "function"
200
+ },
201
+ {
202
+ "inputs": [],
203
+ "name": "oApp",
204
+ "outputs": [
205
+ {
206
+ "internalType": "address",
207
+ "name": "",
208
+ "type": "address"
209
+ }
210
+ ],
211
+ "stateMutability": "view",
212
+ "type": "function"
213
+ },
214
+ {
215
+ "inputs": [],
216
+ "name": "owner",
217
+ "outputs": [
218
+ {
219
+ "internalType": "address",
220
+ "name": "",
221
+ "type": "address"
222
+ }
223
+ ],
224
+ "stateMutability": "view",
225
+ "type": "function"
226
+ },
227
+ {
228
+ "inputs": [
229
+ {
230
+ "internalType": "bytes[]",
231
+ "name": "_packets",
232
+ "type": "bytes[]"
233
+ },
234
+ {
235
+ "internalType": "uint256[]",
236
+ "name": "_packetMsgValues",
237
+ "type": "uint256[]"
238
+ },
239
+ {
240
+ "internalType": "bytes[]",
241
+ "name": "_simulations",
242
+ "type": "bytes[]"
243
+ }
244
+ ],
245
+ "name": "preCrime",
246
+ "outputs": [],
247
+ "stateMutability": "nonpayable",
248
+ "type": "function"
249
+ },
250
+ {
251
+ "inputs": [],
252
+ "name": "renounceOwnership",
253
+ "outputs": [],
254
+ "stateMutability": "nonpayable",
255
+ "type": "function"
256
+ },
257
+ {
258
+ "inputs": [
259
+ {
260
+ "internalType": "uint64",
261
+ "name": "_maxBatchSize",
262
+ "type": "uint64"
263
+ }
264
+ ],
265
+ "name": "setMaxBatchSize",
266
+ "outputs": [],
267
+ "stateMutability": "nonpayable",
268
+ "type": "function"
269
+ },
270
+ {
271
+ "inputs": [
272
+ {
273
+ "components": [
274
+ {
275
+ "internalType": "uint32",
276
+ "name": "eid",
277
+ "type": "uint32"
278
+ },
279
+ {
280
+ "internalType": "bytes32",
281
+ "name": "preCrime",
282
+ "type": "bytes32"
283
+ },
284
+ {
285
+ "internalType": "bytes32",
286
+ "name": "oApp",
287
+ "type": "bytes32"
288
+ }
289
+ ],
290
+ "internalType": "struct PreCrimePeer[]",
291
+ "name": "_preCrimePeers",
292
+ "type": "tuple[]"
293
+ }
294
+ ],
295
+ "name": "setPreCrimePeers",
296
+ "outputs": [],
297
+ "stateMutability": "nonpayable",
298
+ "type": "function"
299
+ },
300
+ {
301
+ "inputs": [
302
+ {
303
+ "internalType": "bytes[]",
304
+ "name": "_packets",
305
+ "type": "bytes[]"
306
+ },
307
+ {
308
+ "internalType": "uint256[]",
309
+ "name": "_packetMsgValues",
310
+ "type": "uint256[]"
311
+ }
312
+ ],
313
+ "name": "simulate",
314
+ "outputs": [
315
+ {
316
+ "internalType": "bytes",
317
+ "name": "",
318
+ "type": "bytes"
319
+ }
320
+ ],
321
+ "stateMutability": "payable",
322
+ "type": "function"
323
+ },
324
+ {
325
+ "inputs": [],
326
+ "name": "simulator",
327
+ "outputs": [
328
+ {
329
+ "internalType": "address",
330
+ "name": "",
331
+ "type": "address"
332
+ }
333
+ ],
334
+ "stateMutability": "view",
335
+ "type": "function"
336
+ },
337
+ {
338
+ "inputs": [
339
+ {
340
+ "internalType": "address",
341
+ "name": "newOwner",
342
+ "type": "address"
343
+ }
344
+ ],
345
+ "name": "transferOwnership",
346
+ "outputs": [],
347
+ "stateMutability": "nonpayable",
348
+ "type": "function"
349
+ },
350
+ {
351
+ "inputs": [],
352
+ "name": "version",
353
+ "outputs": [
354
+ {
355
+ "internalType": "uint64",
356
+ "name": "major",
357
+ "type": "uint64"
358
+ },
359
+ {
360
+ "internalType": "uint8",
361
+ "name": "minor",
362
+ "type": "uint8"
363
+ }
364
+ ],
365
+ "stateMutability": "pure",
366
+ "type": "function"
367
+ }
368
+ ],
369
+ "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002d5a38038062002d5a83398101604081905262000034916200014a565b8282826200004233620000dd565b6200004d81620000dd565b6001600160a01b03808416608052821660a0819052604080516352ae287960e01b815290516352ae2879916004808201926020929091908290030181865afa1580156200009e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c4919062000194565b6001600160a01b031660c05250620001b9945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014557600080fd5b919050565b6000806000606084860312156200016057600080fd5b6200016b846200012d565b92506200017b602085016200012d565b91506200018b604085016200012d565b90509250925092565b600060208284031215620001a757600080fd5b620001b2826200012d565b9392505050565b60805160a05160c051612b4e6200020c6000396000818161018d0152611b3201526000818161029f015281816105f0015281816111d9015261131b0152600081816119c60152611b700152612b4e6000f3fe6080604052600436106100dd5760003560e01c80638e9e70991161007f578063bf7b5d7a11610059578063bf7b5d7a1461028d578063f0cd3836146102c1578063f2fde38b146102e1578063f8bcddf61461030157600080fd5b80638e9e709914610236578063afea44ef1461024b578063b9a1f5e71461026b57600080fd5b806352ae2879116100bb57806352ae28791461017b57806354fd4d50146101d4578063715018a6146101f65780638da5cb5b1461020b57600080fd5b806310f9cf3a146100e25780632913daa01461010457806350dfa9371461015b575b600080fd5b3480156100ee57600080fd5b506101026100fd366004612058565b610321565b005b34801561011057600080fd5b5060005461013d9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b61016e6101693660046120f2565b610539565b60405161015291906121cc565b34801561018757600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b3480156101e057600080fd5b5060408051600281526000602082015201610152565b34801561020257600080fd5b506101026105d4565b34801561021757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101af565b34801561024257600080fd5b5061016e6105e8565b34801561025757600080fd5b506101026102663660046121f5565b610859565b34801561027757600080fd5b506102806108b4565b6040516101529190612212565b34801561029957600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102cd57600080fd5b5061016e6102dc3660046120f2565b610933565b3480156102ed57600080fd5b506101026102fc366004612271565b610bd0565b34801561030d57600080fd5b5061010261031c3660046122a7565b610c8c565b3361dead1461035c576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061039c8787878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b905060008267ffffffffffffffff8111156103b9576103b961231c565b6040519080825280602002602001820160405280156103e2578160200160208202803683370190505b50905060008367ffffffffffffffff8111156104005761040061231c565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b84811015610518573660008787848181106104565761045661234b565b9050602002810190610468919061237a565b909250905061047b6004600083856123df565b61048491612409565b60e01c8584815181106104995761049961234b565b63ffffffff909216602092830291909101909101526104bb81600481856123df565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050865187925086915081106105035761050361234b565b60209081029190910101525050600101610439565b506105238383610e6a565b61052e838383610f54565b505050505050505050565b60603361dead14610576576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105b68686868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b90506105c1816110d2565b6105ca81611314565b9695505050505050565b6105dc61147b565b6105e660006114fc565b565b6001546060907f000000000000000000000000000000000000000000000000000000000000000090819060009067ffffffffffffffff81111561062d5761062d61231c565b60405190808252806020026020018201604052801561068857816020015b6106756040518060600160405280600063ffffffff16815260200160008152602001600081525090565b81526020019060019003908161064b5790505b50905060005b600154811015610830576000600182815481106106ad576106ad61234b565b600091825260209182902060039190910201546040805160608101825263ffffffff90921680835290517f56a4728900000000000000000000000000000000000000000000000000000000815260048101829052909350909182019073ffffffffffffffffffffffffffffffffffffffff8716906356a4728990602401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190612451565b81526040517f622f17f600000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260209091019073ffffffffffffffffffffffffffffffffffffffff87169063622f17f690602401602060405180830381865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108079190612451565b81525083838151811061081c5761081c61234b565b60209081029190910101525060010161068e565b50806040516020016108429190612212565b604051602081830303815290604052935050505090565b61086161147b565b6000805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561092a5760008481526020908190206040805160608101825260038602909201805463ffffffff168352600180820154848601526002909101549183019190915290835290920191016108d8565b50505050905090565b60603361dead14610970576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517e0200000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022820152602a01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060008515610a6557610a60610a5b8888888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b611571565b610ade565b6001805480602002602001604051908101604052809291908181526020016000905b82821015610ad95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101610a87565b505050505b805190915015610bc6578051604051610afd908490839060200161246a565b604051602081830303815290604052925060005b8161ffff16811015610bc35783838281518110610b3057610b3061234b565b602002602001015160000151848381518110610b4e57610b4e61234b565b602002602001015160200151858481518110610b6c57610b6c61234b565b602002602001015160400151604051602001610b8b94939291906124b4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529350600101610b11565b50505b5095945050505050565b610bd861147b565b73ffffffffffffffffffffffffffffffffffffffff8116610c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610c89816114fc565b50565b610c9461147b565b610ca060016000611fae565b60005b81811015610cf7576001838383818110610cbf57610cbf61234b565b835460018101855560009485526020909420606090910292909201926003029091019050610ced828261251d565b5050600101610ca3565b505050565b60608267ffffffffffffffff811115610d1757610d1761231c565b604051908082528060200260200182016040528015610dbd57816020015b604080516101608101825260006101008201818152610120830182905261014083018290528252602080830182905292820181905260608083018290526080830182905260a083019190915260c0820181905260e082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d355790505b50905060005b83811015610e6257366000868684818110610de057610de061234b565b9050602002810190610df2919061237a565b91509150610e008282611838565b848481518110610e1257610e1261234b565b6020026020010181905250848381518110610e2f57610e2f61234b565b6020026020010151848481518110610e4957610e4961234b565b6020908102919091010151608001525050600101610dc3565b509392505050565b815115610f00576000610e7c83611571565b905060005b8151811015610efd576000828281518110610e9e57610e9e61234b565b6020026020010151600001519050610eb6848261196b565b610ef4576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b50600101610e81565b50505b6000610f0a6119c2565b9050610f16828261196b565b610cf7576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b6000610f5e6119c2565b9050606060005b8451811015610fd6578263ffffffff16858281518110610f8757610f8761234b565b602002602001015163ffffffff1603610fce57838181518110610fac57610fac61234b565b6020026020010151806020019051810190610fc791906125e7565b9150610fd6565b600101610f65565b5060005b84518110156110ca576000858281518110610ff757610ff761234b565b6020026020010151905060008583815181106110155761101561234b565b602002602001015180602001905181019061103091906125e7565b9050600061103e8584611a58565b509050600061104d8388611a58565b915050808211156110ba576040517f1915975700000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e626f756e64436f756e74203e206f7574626f756e64436f756e74000000006044820152606401610c77565b505060019092019150610fda9050565b505050505050565b60005481517401000000000000000000000000000000000000000090910467ffffffffffffffff1610156111605760005481516040517f9db086050000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090920467ffffffffffffffff1660048301526024820152604401610c77565b805115610c895760008080805b845181101561130d57600085828151811061118a5761118a61234b565b602090810291909101810151805180519201516040517f5a0dfe4d00000000000000000000000000000000000000000000000000000000815263ffffffff9093166004840152602483015291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635a0dfe4d90604401602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906126c4565b6112635750611305565b80515163ffffffff868116911614158061128257508051602001518414155b156112a3578051805160209091015190955093506112a08585611af5565b92505b6112ac83612715565b92508267ffffffffffffffff1681600001516040015167ffffffffffffffff1614611303576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60010161116d565b5050505050565b60606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163463bd815db060e01b8660405160240161136a919061273c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516113f391906128a2565b60006040518083038185875af1925050503d8060008114611430576040519150601f19603f3d011682016040523d82523d6000602084013e611435565b606091505b509150915060006114468383611be4565b90506114506119c2565b816040516020016114629291906128be565b6040516020818303038152906040529350505050919050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c77565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006001805480602002602001604051908101604052809291908181526020016000905b828210156115e95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101611597565b5050505090506000835167ffffffffffffffff81111561160b5761160b61231c565b60405190808252806020026020018201604052801561167457816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116295790505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b85518110156117465760008682815181106116b8576116b861234b565b60200260200101516000015160000151905060006116d68683611d03565b9050600081121580156116f2575060006116f08684611d03565b125b1561173c578361170181612909565b9450508581815181106117165761171661234b565b60200260200101518585815181106117305761173061234b565b60200260200101819052505b505060010161169b565b506000811261183057600061175c826001612941565b90508067ffffffffffffffff8111156117775761177761231c565b6040519080825280602002602001820160405280156117e057816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816117955790505b50945060005b8181101561182d578381815181106118005761180061234b565b602002602001015186828151811061181a5761181a61234b565b60209081029190910101526001016117e6565b50505b505050919050565b6040805161016081018252600061010082018181526101208301829052610140830182905282526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e081019190915260405180606001604052806118a78585611d78565b63ffffffff1681526020016118bc8585611d9b565b81526020016118cb8585611db4565b67ffffffffffffffff16905281526118e38383611dd7565b63ffffffff1660208201526118f88383611de7565b73ffffffffffffffffffffffffffffffffffffffff16604082015261191d8383611df9565b606082015261192c8383611e09565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c082015292915050565b6000805b83518110156119b6578263ffffffff168482815181106119915761199161234b565b602002602001015163ffffffff16036119ae5760019150506119bc565b60010161196f565b50600090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a539190612954565b905090565b60008060005b8451811015611ae5578363ffffffff16858281518110611a8057611a8061234b565b60200260200101516000015163ffffffff1603611add57848181518110611aa957611aa961234b565b602002602001015160200151858281518110611ac757611ac761234b565b6020026020010151604001519250925050611aee565b600101611a5e565b50600080915091505b9250929050565b6040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015263ffffffff84166024830152604482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a0dd43fc90606401602060405180830381865afa158015611bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdd9190612971565b9392505050565b60608215611c4e576040517f614cbd8a00000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2072657665727400000000000000000000000000000000000000000000006044820152606401610c77565b7f8351eea700000000000000000000000000000000000000000000000000000000611c788361298e565b7fffffffff000000000000000000000000000000000000000000000000000000001614611cd357816040517f614cbd8a000000000000000000000000000000000000000000000000000000008152600401610c7791906121cc565b611ced6004808451611ce591906129da565b849190611e24565b905080806020019051810190611bdd91906129ed565b6000805b8351811015611d4f578263ffffffff16848281518110611d2957611d2961234b565b60200260200101516000015163ffffffff1603611d475790506119bc565b600101611d07565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9392505050565b6000611d88600d600984866123df565b611d9191612409565b60e01c9392505050565b6000611dab602d600d84866123df565b611bdd91612a96565b6000611dc46009600184866123df565b611dcd91612ad2565b60c01c9392505050565b6000611d886031602d84866123df565b6000611bdd611df68484611f9e565b90565b6000611dab6071605184866123df565b366000611e1983607181876123df565b915091509250929050565b606081611e3281601f612941565b1015611e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610c77565b611ea48284612941565b84511015611f0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610c77565b606082158015611f2d5760405191506000825260208201604052611f95565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611f66578051835260209283019201611f4e565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000611dab6051603184866123df565b5080546000825560030290600052602060002090810190610c8991905b8082111561200f5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001681556000600182018190556002820155600301611fcb565b5090565b60008083601f84011261202557600080fd5b50813567ffffffffffffffff81111561203d57600080fd5b6020830191508360208260051b8501011115611aee57600080fd5b6000806000806000806060878903121561207157600080fd5b863567ffffffffffffffff8082111561208957600080fd5b6120958a838b01612013565b909850965060208901359150808211156120ae57600080fd5b6120ba8a838b01612013565b909650945060408901359150808211156120d357600080fd5b506120e089828a01612013565b979a9699509497509295939492505050565b6000806000806040858703121561210857600080fd5b843567ffffffffffffffff8082111561212057600080fd5b61212c88838901612013565b9096509450602087013591508082111561214557600080fd5b5061215287828801612013565b95989497509550505050565b60005b83811015612179578181015183820152602001612161565b50506000910152565b6000815180845261219a81602086016020860161215e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bdd6020830184612182565b67ffffffffffffffff81168114610c8957600080fd5b60006020828403121561220757600080fd5b8135611bdd816121df565b602080825282518282018190526000919060409081850190868401855b82811015612264578151805163ffffffff1685528681015187860152850151858501526060909301929085019060010161222f565b5091979650505050505050565b60006020828403121561228357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114611bdd57600080fd5b600080602083850312156122ba57600080fd5b823567ffffffffffffffff808211156122d257600080fd5b818501915085601f8301126122e657600080fd5b8135818111156122f557600080fd5b86602060608302850101111561230a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126123af57600080fd5b83018035915067ffffffffffffffff8211156123ca57600080fd5b602001915036819003821315611aee57600080fd5b600080858511156123ef57600080fd5b838611156123fc57600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156124495780818660040360031b1b83161692505b505092915050565b60006020828403121561246357600080fd5b5051919050565b6000835161247c81846020880161215e565b60f09390931b7fffff000000000000000000000000000000000000000000000000000000000000169190920190815260020192915050565b600085516124c6818460208a0161215e565b60e09590951b7fffffffff0000000000000000000000000000000000000000000000000000000016919094019081526004810192909252602482015260440192915050565b63ffffffff81168114610c8957600080fd5b81356125288161250b565b63ffffffff81167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008354161782555060208201356001820155604082013560028201555050565b6040516060810167ffffffffffffffff811182821017156125925761259261231c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156125df576125df61231c565b604052919050565b600060208083850312156125fa57600080fd5b825167ffffffffffffffff8082111561261257600080fd5b818501915085601f83011261262657600080fd5b8151818111156126385761263861231c565b612646848260051b01612598565b8181528481019250606091820284018501918883111561266557600080fd5b938501935b828510156126b85780858a0312156126825760008081fd5b61268a61256f565b85516126958161250b565b81528587015187820152604080870151908201528452938401939285019261266a565b50979650505050505050565b6000602082840312156126d657600080fd5b81518015158114611bdd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818103612732576127326126e6565b6001019392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015612894577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089840301855281516101406127c8858351805163ffffffff1682526020808201519083015260409081015167ffffffffffffffff16910152565b8882015160606127df8188018363ffffffff169052565b89840151915060806128088189018473ffffffffffffffffffffffffffffffffffffffff169052565b9084015160a0888101919091529084015160c08089019190915290840151915060e09061284c8289018473ffffffffffffffffffffffffffffffffffffffff169052565b8401516101008801849052915061286587840183612182565b93015186840361012088015292915061288090508183612182565b968901969450505090860190600101612765565b509098975050505050505050565b600082516128b481846020870161215e565b9190910192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008360e01b168152600082516128fb81600485016020870161215e565b919091016004019392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361293a5761293a6126e6565b5060010190565b808201808211156119bc576119bc6126e6565b60006020828403121561296657600080fd5b8151611bdd8161250b565b60006020828403121561298357600080fd5b8151611bdd816121df565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156118305760049290920360031b82901b161692915050565b818103818111156119bc576119bc6126e6565b6000602082840312156129ff57600080fd5b815167ffffffffffffffff80821115612a1757600080fd5b818401915084601f830112612a2b57600080fd5b815181811115612a3d57612a3d61231c565b612a6e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612598565b9150808252856020828501011115612a8557600080fd5b611f9581602084016020860161215e565b803560208310156119bc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156124495760089490940360031b84901b169092169291505056fea2646970667358221220924f0b656799b5d011e54af23d5b5a25d2d515d40e1e2c491fe43db8d66603e464736f6c63430008160033",
370
+ "deployedBytecode": "0x6080604052600436106100dd5760003560e01c80638e9e70991161007f578063bf7b5d7a11610059578063bf7b5d7a1461028d578063f0cd3836146102c1578063f2fde38b146102e1578063f8bcddf61461030157600080fd5b80638e9e709914610236578063afea44ef1461024b578063b9a1f5e71461026b57600080fd5b806352ae2879116100bb57806352ae28791461017b57806354fd4d50146101d4578063715018a6146101f65780638da5cb5b1461020b57600080fd5b806310f9cf3a146100e25780632913daa01461010457806350dfa9371461015b575b600080fd5b3480156100ee57600080fd5b506101026100fd366004612058565b610321565b005b34801561011057600080fd5b5060005461013d9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b61016e6101693660046120f2565b610539565b60405161015291906121cc565b34801561018757600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b3480156101e057600080fd5b5060408051600281526000602082015201610152565b34801561020257600080fd5b506101026105d4565b34801561021757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101af565b34801561024257600080fd5b5061016e6105e8565b34801561025757600080fd5b506101026102663660046121f5565b610859565b34801561027757600080fd5b506102806108b4565b6040516101529190612212565b34801561029957600080fd5b506101af7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102cd57600080fd5b5061016e6102dc3660046120f2565b610933565b3480156102ed57600080fd5b506101026102fc366004612271565b610bd0565b34801561030d57600080fd5b5061010261031c3660046122a7565b610c8c565b3361dead1461035c576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061039c8787878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b905060008267ffffffffffffffff8111156103b9576103b961231c565b6040519080825280602002602001820160405280156103e2578160200160208202803683370190505b50905060008367ffffffffffffffff8111156104005761040061231c565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b84811015610518573660008787848181106104565761045661234b565b9050602002810190610468919061237a565b909250905061047b6004600083856123df565b61048491612409565b60e01c8584815181106104995761049961234b565b63ffffffff909216602092830291909101909101526104bb81600481856123df565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050865187925086915081106105035761050361234b565b60209081029190910101525050600101610439565b506105238383610e6a565b61052e838383610f54565b505050505050505050565b60603361dead14610576576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105b68686868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b90506105c1816110d2565b6105ca81611314565b9695505050505050565b6105dc61147b565b6105e660006114fc565b565b6001546060907f000000000000000000000000000000000000000000000000000000000000000090819060009067ffffffffffffffff81111561062d5761062d61231c565b60405190808252806020026020018201604052801561068857816020015b6106756040518060600160405280600063ffffffff16815260200160008152602001600081525090565b81526020019060019003908161064b5790505b50905060005b600154811015610830576000600182815481106106ad576106ad61234b565b600091825260209182902060039190910201546040805160608101825263ffffffff90921680835290517f56a4728900000000000000000000000000000000000000000000000000000000815260048101829052909350909182019073ffffffffffffffffffffffffffffffffffffffff8716906356a4728990602401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190612451565b81526040517f622f17f600000000000000000000000000000000000000000000000000000000815263ffffffff8416600482015260209091019073ffffffffffffffffffffffffffffffffffffffff87169063622f17f690602401602060405180830381865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108079190612451565b81525083838151811061081c5761081c61234b565b60209081029190910101525060010161068e565b50806040516020016108429190612212565b604051602081830303815290604052935050505090565b61086161147b565b6000805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561092a5760008481526020908190206040805160608101825260038602909201805463ffffffff168352600180820154848601526002909101549183019190915290835290920191016108d8565b50505050905090565b60603361dead14610970576040517f9cbfe06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517e0200000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022820152602a01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060008515610a6557610a60610a5b8888888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610cfc92505050565b611571565b610ade565b6001805480602002602001604051908101604052809291908181526020016000905b82821015610ad95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101610a87565b505050505b805190915015610bc6578051604051610afd908490839060200161246a565b604051602081830303815290604052925060005b8161ffff16811015610bc35783838281518110610b3057610b3061234b565b602002602001015160000151848381518110610b4e57610b4e61234b565b602002602001015160200151858481518110610b6c57610b6c61234b565b602002602001015160400151604051602001610b8b94939291906124b4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529350600101610b11565b50505b5095945050505050565b610bd861147b565b73ffffffffffffffffffffffffffffffffffffffff8116610c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610c89816114fc565b50565b610c9461147b565b610ca060016000611fae565b60005b81811015610cf7576001838383818110610cbf57610cbf61234b565b835460018101855560009485526020909420606090910292909201926003029091019050610ced828261251d565b5050600101610ca3565b505050565b60608267ffffffffffffffff811115610d1757610d1761231c565b604051908082528060200260200182016040528015610dbd57816020015b604080516101608101825260006101008201818152610120830182905261014083018290528252602080830182905292820181905260608083018290526080830182905260a083019190915260c0820181905260e082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d355790505b50905060005b83811015610e6257366000868684818110610de057610de061234b565b9050602002810190610df2919061237a565b91509150610e008282611838565b848481518110610e1257610e1261234b565b6020026020010181905250848381518110610e2f57610e2f61234b565b6020026020010151848481518110610e4957610e4961234b565b6020908102919091010151608001525050600101610dc3565b509392505050565b815115610f00576000610e7c83611571565b905060005b8151811015610efd576000828281518110610e9e57610e9e61234b565b6020026020010151600001519050610eb6848261196b565b610ef4576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b50600101610e81565b50505b6000610f0a6119c2565b9050610f16828261196b565b610cf7576040517f01992f2a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c77565b6000610f5e6119c2565b9050606060005b8451811015610fd6578263ffffffff16858281518110610f8757610f8761234b565b602002602001015163ffffffff1603610fce57838181518110610fac57610fac61234b565b6020026020010151806020019051810190610fc791906125e7565b9150610fd6565b600101610f65565b5060005b84518110156110ca576000858281518110610ff757610ff761234b565b6020026020010151905060008583815181106110155761101561234b565b602002602001015180602001905181019061103091906125e7565b9050600061103e8584611a58565b509050600061104d8388611a58565b915050808211156110ba576040517f1915975700000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e626f756e64436f756e74203e206f7574626f756e64436f756e74000000006044820152606401610c77565b505060019092019150610fda9050565b505050505050565b60005481517401000000000000000000000000000000000000000090910467ffffffffffffffff1610156111605760005481516040517f9db086050000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090920467ffffffffffffffff1660048301526024820152604401610c77565b805115610c895760008080805b845181101561130d57600085828151811061118a5761118a61234b565b602090810291909101810151805180519201516040517f5a0dfe4d00000000000000000000000000000000000000000000000000000000815263ffffffff9093166004840152602483015291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635a0dfe4d90604401602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906126c4565b6112635750611305565b80515163ffffffff868116911614158061128257508051602001518414155b156112a3578051805160209091015190955093506112a08585611af5565b92505b6112ac83612715565b92508267ffffffffffffffff1681600001516040015167ffffffffffffffff1614611303576040517f50823c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60010161116d565b5050505050565b60606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163463bd815db060e01b8660405160240161136a919061273c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516113f391906128a2565b60006040518083038185875af1925050503d8060008114611430576040519150601f19603f3d011682016040523d82523d6000602084013e611435565b606091505b509150915060006114468383611be4565b90506114506119c2565b816040516020016114629291906128be565b6040516020818303038152906040529350505050919050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c77565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006001805480602002602001604051908101604052809291908181526020016000905b828210156115e95760008481526020908190206040805160608101825260038602909201805463ffffffff16835260018082015484860152600290910154918301919091529083529092019101611597565b5050505090506000835167ffffffffffffffff81111561160b5761160b61231c565b60405190808252806020026020018201604052801561167457816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116295790505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b85518110156117465760008682815181106116b8576116b861234b565b60200260200101516000015160000151905060006116d68683611d03565b9050600081121580156116f2575060006116f08684611d03565b125b1561173c578361170181612909565b9450508581815181106117165761171661234b565b60200260200101518585815181106117305761173061234b565b60200260200101819052505b505060010161169b565b506000811261183057600061175c826001612941565b90508067ffffffffffffffff8111156117775761177761231c565b6040519080825280602002602001820160405280156117e057816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816117955790505b50945060005b8181101561182d578381815181106118005761180061234b565b602002602001015186828151811061181a5761181a61234b565b60209081029190910101526001016117e6565b50505b505050919050565b6040805161016081018252600061010082018181526101208301829052610140830182905282526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e081019190915260405180606001604052806118a78585611d78565b63ffffffff1681526020016118bc8585611d9b565b81526020016118cb8585611db4565b67ffffffffffffffff16905281526118e38383611dd7565b63ffffffff1660208201526118f88383611de7565b73ffffffffffffffffffffffffffffffffffffffff16604082015261191d8383611df9565b606082015261192c8383611e09565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c082015292915050565b6000805b83518110156119b6578263ffffffff168482815181106119915761199161234b565b602002602001015163ffffffff16036119ae5760019150506119bc565b60010161196f565b50600090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a539190612954565b905090565b60008060005b8451811015611ae5578363ffffffff16858281518110611a8057611a8061234b565b60200260200101516000015163ffffffff1603611add57848181518110611aa957611aa961234b565b602002602001015160200151858281518110611ac757611ac761234b565b6020026020010151604001519250925050611aee565b600101611a5e565b50600080915091505b9250929050565b6040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015263ffffffff84166024830152604482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a0dd43fc90606401602060405180830381865afa158015611bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdd9190612971565b9392505050565b60608215611c4e576040517f614cbd8a00000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2072657665727400000000000000000000000000000000000000000000006044820152606401610c77565b7f8351eea700000000000000000000000000000000000000000000000000000000611c788361298e565b7fffffffff000000000000000000000000000000000000000000000000000000001614611cd357816040517f614cbd8a000000000000000000000000000000000000000000000000000000008152600401610c7791906121cc565b611ced6004808451611ce591906129da565b849190611e24565b905080806020019051810190611bdd91906129ed565b6000805b8351811015611d4f578263ffffffff16848281518110611d2957611d2961234b565b60200260200101516000015163ffffffff1603611d475790506119bc565b600101611d07565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9392505050565b6000611d88600d600984866123df565b611d9191612409565b60e01c9392505050565b6000611dab602d600d84866123df565b611bdd91612a96565b6000611dc46009600184866123df565b611dcd91612ad2565b60c01c9392505050565b6000611d886031602d84866123df565b6000611bdd611df68484611f9e565b90565b6000611dab6071605184866123df565b366000611e1983607181876123df565b915091509250929050565b606081611e3281601f612941565b1015611e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610c77565b611ea48284612941565b84511015611f0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610c77565b606082158015611f2d5760405191506000825260208201604052611f95565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611f66578051835260209283019201611f4e565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000611dab6051603184866123df565b5080546000825560030290600052602060002090810190610c8991905b8082111561200f5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001681556000600182018190556002820155600301611fcb565b5090565b60008083601f84011261202557600080fd5b50813567ffffffffffffffff81111561203d57600080fd5b6020830191508360208260051b8501011115611aee57600080fd5b6000806000806000806060878903121561207157600080fd5b863567ffffffffffffffff8082111561208957600080fd5b6120958a838b01612013565b909850965060208901359150808211156120ae57600080fd5b6120ba8a838b01612013565b909650945060408901359150808211156120d357600080fd5b506120e089828a01612013565b979a9699509497509295939492505050565b6000806000806040858703121561210857600080fd5b843567ffffffffffffffff8082111561212057600080fd5b61212c88838901612013565b9096509450602087013591508082111561214557600080fd5b5061215287828801612013565b95989497509550505050565b60005b83811015612179578181015183820152602001612161565b50506000910152565b6000815180845261219a81602086016020860161215e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bdd6020830184612182565b67ffffffffffffffff81168114610c8957600080fd5b60006020828403121561220757600080fd5b8135611bdd816121df565b602080825282518282018190526000919060409081850190868401855b82811015612264578151805163ffffffff1685528681015187860152850151858501526060909301929085019060010161222f565b5091979650505050505050565b60006020828403121561228357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114611bdd57600080fd5b600080602083850312156122ba57600080fd5b823567ffffffffffffffff808211156122d257600080fd5b818501915085601f8301126122e657600080fd5b8135818111156122f557600080fd5b86602060608302850101111561230a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126123af57600080fd5b83018035915067ffffffffffffffff8211156123ca57600080fd5b602001915036819003821315611aee57600080fd5b600080858511156123ef57600080fd5b838611156123fc57600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156124495780818660040360031b1b83161692505b505092915050565b60006020828403121561246357600080fd5b5051919050565b6000835161247c81846020880161215e565b60f09390931b7fffff000000000000000000000000000000000000000000000000000000000000169190920190815260020192915050565b600085516124c6818460208a0161215e565b60e09590951b7fffffffff0000000000000000000000000000000000000000000000000000000016919094019081526004810192909252602482015260440192915050565b63ffffffff81168114610c8957600080fd5b81356125288161250b565b63ffffffff81167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008354161782555060208201356001820155604082013560028201555050565b6040516060810167ffffffffffffffff811182821017156125925761259261231c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156125df576125df61231c565b604052919050565b600060208083850312156125fa57600080fd5b825167ffffffffffffffff8082111561261257600080fd5b818501915085601f83011261262657600080fd5b8151818111156126385761263861231c565b612646848260051b01612598565b8181528481019250606091820284018501918883111561266557600080fd5b938501935b828510156126b85780858a0312156126825760008081fd5b61268a61256f565b85516126958161250b565b81528587015187820152604080870151908201528452938401939285019261266a565b50979650505050505050565b6000602082840312156126d657600080fd5b81518015158114611bdd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818103612732576127326126e6565b6001019392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015612894577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089840301855281516101406127c8858351805163ffffffff1682526020808201519083015260409081015167ffffffffffffffff16910152565b8882015160606127df8188018363ffffffff169052565b89840151915060806128088189018473ffffffffffffffffffffffffffffffffffffffff169052565b9084015160a0888101919091529084015160c08089019190915290840151915060e09061284c8289018473ffffffffffffffffffffffffffffffffffffffff169052565b8401516101008801849052915061286587840183612182565b93015186840361012088015292915061288090508183612182565b968901969450505090860190600101612765565b509098975050505050505050565b600082516128b481846020870161215e565b9190910192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008360e01b168152600082516128fb81600485016020870161215e565b919091016004019392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361293a5761293a6126e6565b5060010190565b808201808211156119bc576119bc6126e6565b60006020828403121561296657600080fd5b8151611bdd8161250b565b60006020828403121561298357600080fd5b8151611bdd816121df565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156118305760049290920360031b82901b161692915050565b818103818111156119bc576119bc6126e6565b6000602082840312156129ff57600080fd5b815167ffffffffffffffff80821115612a1757600080fd5b818401915084601f830112612a2b57600080fd5b815181811115612a3d57612a3d61231c565b612a6e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612598565b9150808252856020828501011115612a8557600080fd5b611f9581602084016020860161215e565b803560208310156119bc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156124495760089490940360031b84901b169092169291505056fea2646970667358221220924f0b656799b5d011e54af23d5b5a25d2d515d40e1e2c491fe43db8d66603e464736f6c63430008160033",
371
+ "linkReferences": {},
372
+ "deployedLinkReferences": {}
373
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IOAppComposer",
4
+ "sourceName": "contracts/oapp/interfaces/IOAppComposer.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_from",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "bytes32",
15
+ "name": "_guid",
16
+ "type": "bytes32"
17
+ },
18
+ {
19
+ "internalType": "bytes",
20
+ "name": "_message",
21
+ "type": "bytes"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_executor",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "bytes",
30
+ "name": "_extraData",
31
+ "type": "bytes"
32
+ }
33
+ ],
34
+ "name": "lzCompose",
35
+ "outputs": [],
36
+ "stateMutability": "payable",
37
+ "type": "function"
38
+ }
39
+ ],
40
+ "bytecode": "0x",
41
+ "deployedBytecode": "0x",
42
+ "linkReferences": {},
43
+ "deployedLinkReferences": {}
44
+ }
@@ -0,0 +1,143 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IOAppCore",
4
+ "sourceName": "contracts/oapp/interfaces/IOAppCore.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "InvalidEndpointCall",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "uint32",
15
+ "name": "eid",
16
+ "type": "uint32"
17
+ }
18
+ ],
19
+ "name": "NoPeer",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "eid",
27
+ "type": "uint32"
28
+ },
29
+ {
30
+ "internalType": "bytes32",
31
+ "name": "sender",
32
+ "type": "bytes32"
33
+ }
34
+ ],
35
+ "name": "OnlyPeer",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "uint32",
44
+ "name": "eid",
45
+ "type": "uint32"
46
+ },
47
+ {
48
+ "indexed": false,
49
+ "internalType": "bytes32",
50
+ "name": "peer",
51
+ "type": "bytes32"
52
+ }
53
+ ],
54
+ "name": "PeerSet",
55
+ "type": "event"
56
+ },
57
+ {
58
+ "inputs": [],
59
+ "name": "endpoint",
60
+ "outputs": [
61
+ {
62
+ "internalType": "contract ILayerZeroEndpointV2",
63
+ "name": "iEndpoint",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "stateMutability": "view",
68
+ "type": "function"
69
+ },
70
+ {
71
+ "inputs": [],
72
+ "name": "oAppVersion",
73
+ "outputs": [
74
+ {
75
+ "internalType": "uint64",
76
+ "name": "senderVersion",
77
+ "type": "uint64"
78
+ },
79
+ {
80
+ "internalType": "uint64",
81
+ "name": "receiverVersion",
82
+ "type": "uint64"
83
+ }
84
+ ],
85
+ "stateMutability": "view",
86
+ "type": "function"
87
+ },
88
+ {
89
+ "inputs": [
90
+ {
91
+ "internalType": "uint32",
92
+ "name": "_eid",
93
+ "type": "uint32"
94
+ }
95
+ ],
96
+ "name": "peers",
97
+ "outputs": [
98
+ {
99
+ "internalType": "bytes32",
100
+ "name": "peer",
101
+ "type": "bytes32"
102
+ }
103
+ ],
104
+ "stateMutability": "view",
105
+ "type": "function"
106
+ },
107
+ {
108
+ "inputs": [
109
+ {
110
+ "internalType": "address",
111
+ "name": "_delegate",
112
+ "type": "address"
113
+ }
114
+ ],
115
+ "name": "setDelegate",
116
+ "outputs": [],
117
+ "stateMutability": "nonpayable",
118
+ "type": "function"
119
+ },
120
+ {
121
+ "inputs": [
122
+ {
123
+ "internalType": "uint32",
124
+ "name": "_eid",
125
+ "type": "uint32"
126
+ },
127
+ {
128
+ "internalType": "bytes32",
129
+ "name": "_peer",
130
+ "type": "bytes32"
131
+ }
132
+ ],
133
+ "name": "setPeer",
134
+ "outputs": [],
135
+ "stateMutability": "nonpayable",
136
+ "type": "function"
137
+ }
138
+ ],
139
+ "bytecode": "0x",
140
+ "deployedBytecode": "0x",
141
+ "linkReferences": {},
142
+ "deployedLinkReferences": {}
143
+ }