@layerzerolabs/lz-evm-sdk-v2 2.1.21 → 2.1.22

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 (88) hide show
  1. package/artifacts/contracts/EndpointV2.sol/EndpointV2.json +2 -2
  2. package/artifacts/contracts/EndpointV2Alt.sol/EndpointV2Alt.json +2 -2
  3. package/artifacts/contracts/EndpointV2View.sol/EndpointV2View.json +2 -2
  4. package/artifacts/contracts/EndpointV2ViewUpgradeable.sol/EndpointV2ViewUpgradeable.json +2 -2
  5. package/artifacts/contracts/libs/AddressCast.sol/AddressCast.json +2 -2
  6. package/artifacts/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json +2 -2
  7. package/artifacts/contracts/libs/Errors.sol/Errors.json +2 -2
  8. package/artifacts/contracts/libs/GUID.sol/GUID.json +2 -2
  9. package/artifacts/contracts/libs/Transfer.sol/Transfer.json +2 -2
  10. package/artifacts/contracts/messagelib/BlockedMessageLib.sol/BlockedMessageLib.json +2 -2
  11. package/artifacts/contracts/messagelib/SimpleMessageLib.sol/SimpleMessageLib.json +2 -2
  12. package/artifacts/contracts/messagelib/libs/BitMaps.sol/BitMaps.json +2 -2
  13. package/artifacts/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +2 -2
  14. package/artifacts/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +2 -2
  15. package/artifacts/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
  16. package/deployments/hedera-testnet/DVN.json +1929 -0
  17. package/deployments/hedera-testnet/DVNFeeLib.json +398 -0
  18. package/deployments/hedera-testnet/DefaultProxyAdmin.json +258 -0
  19. package/deployments/hedera-testnet/EndpointV2.json +2946 -0
  20. package/deployments/hedera-testnet/EndpointV2View.json +429 -0
  21. package/deployments/hedera-testnet/EndpointV2View_Implementation.json +313 -0
  22. package/deployments/hedera-testnet/EndpointV2View_Proxy.json +230 -0
  23. package/deployments/hedera-testnet/Executor.json +1532 -0
  24. package/deployments/hedera-testnet/ExecutorFeeLib.json +423 -0
  25. package/deployments/hedera-testnet/ExecutorProxyAdmin.json +283 -0
  26. package/deployments/hedera-testnet/Executor_Implementation.json +1591 -0
  27. package/deployments/hedera-testnet/Executor_Proxy.json +365 -0
  28. package/deployments/hedera-testnet/LzExecutor.json +757 -0
  29. package/deployments/hedera-testnet/LzExecutor_Implementation.json +703 -0
  30. package/deployments/hedera-testnet/LzExecutor_Proxy.json +244 -0
  31. package/deployments/hedera-testnet/ReceiveUln301.json +1292 -0
  32. package/deployments/hedera-testnet/ReceiveUln301View.json +354 -0
  33. package/deployments/hedera-testnet/ReceiveUln301View_Implementation.json +231 -0
  34. package/deployments/hedera-testnet/ReceiveUln301View_Proxy.json +230 -0
  35. package/deployments/hedera-testnet/ReceiveUln302.json +1006 -0
  36. package/deployments/hedera-testnet/ReceiveUln302View.json +478 -0
  37. package/deployments/hedera-testnet/ReceiveUln302View_Implementation.json +384 -0
  38. package/deployments/hedera-testnet/ReceiveUln302View_Proxy.json +230 -0
  39. package/deployments/hedera-testnet/SendUln301.json +1569 -0
  40. package/deployments/hedera-testnet/SendUln302.json +1527 -0
  41. package/deployments/hedera-testnet/Treasury.json +412 -0
  42. package/deployments/hedera-testnet/TreasuryFeeHandler.json +125 -0
  43. package/deployments/merlin-testnet/DVN.json +1929 -0
  44. package/deployments/merlin-testnet/DVNFeeLib.json +398 -0
  45. package/deployments/merlin-testnet/DefaultProxyAdmin.json +258 -0
  46. package/deployments/merlin-testnet/EndpointV2.json +3001 -0
  47. package/deployments/merlin-testnet/EndpointV2View.json +435 -0
  48. package/deployments/merlin-testnet/EndpointV2View_Implementation.json +313 -0
  49. package/deployments/merlin-testnet/EndpointV2View_Proxy.json +230 -0
  50. package/deployments/merlin-testnet/Executor.json +1532 -0
  51. package/deployments/merlin-testnet/ExecutorFeeLib.json +423 -0
  52. package/deployments/merlin-testnet/ExecutorProxyAdmin.json +283 -0
  53. package/deployments/merlin-testnet/Executor_Implementation.json +1591 -0
  54. package/deployments/merlin-testnet/Executor_Proxy.json +365 -0
  55. package/deployments/merlin-testnet/LzExecutor.json +757 -0
  56. package/deployments/merlin-testnet/LzExecutor_Implementation.json +703 -0
  57. package/deployments/merlin-testnet/LzExecutor_Proxy.json +244 -0
  58. package/deployments/merlin-testnet/PriceFeed.json +934 -0
  59. package/deployments/merlin-testnet/PriceFeedProxyAdmin.json +283 -0
  60. package/deployments/merlin-testnet/PriceFeed_Implementation.json +976 -0
  61. package/deployments/merlin-testnet/PriceFeed_Proxy.json +244 -0
  62. package/deployments/merlin-testnet/ReceiveUln301.json +1292 -0
  63. package/deployments/merlin-testnet/ReceiveUln301View.json +354 -0
  64. package/deployments/merlin-testnet/ReceiveUln301View_Implementation.json +231 -0
  65. package/deployments/merlin-testnet/ReceiveUln301View_Proxy.json +230 -0
  66. package/deployments/merlin-testnet/ReceiveUln302.json +1006 -0
  67. package/deployments/merlin-testnet/ReceiveUln302View.json +478 -0
  68. package/deployments/merlin-testnet/ReceiveUln302View_Implementation.json +384 -0
  69. package/deployments/merlin-testnet/ReceiveUln302View_Proxy.json +230 -0
  70. package/deployments/merlin-testnet/SendUln301.json +1569 -0
  71. package/deployments/merlin-testnet/SendUln302.json +1527 -0
  72. package/deployments/merlin-testnet/Treasury.json +412 -0
  73. package/deployments/merlin-testnet/TreasuryFeeHandler.json +125 -0
  74. package/dist/{index-VXKdRwxd.d.mts → index-QJVkaD-8.d.mts} +11 -11
  75. package/dist/{index-VXKdRwxd.d.ts → index-QJVkaD-8.d.ts} +11 -11
  76. package/dist/index.browser.cjs +11 -11
  77. package/dist/index.browser.cjs.map +1 -1
  78. package/dist/index.browser.d.mts +1 -1
  79. package/dist/index.browser.d.ts +1 -1
  80. package/dist/index.browser.mjs +11 -11
  81. package/dist/index.browser.mjs.map +1 -1
  82. package/dist/index.cjs +11 -11
  83. package/dist/index.cjs.map +1 -1
  84. package/dist/index.d.mts +1 -1
  85. package/dist/index.d.ts +1 -1
  86. package/dist/index.mjs +11 -11
  87. package/dist/index.mjs.map +1 -1
  88. package/package.json +9 -9
@@ -0,0 +1,703 @@
1
+ {
2
+ "address": "0x701f3927871EfcEa1235dB722f9E608aE120d243",
3
+ "abi": [
4
+ {
5
+ "inputs": [],
6
+ "name": "LzExecutor_Executed",
7
+ "type": "error"
8
+ },
9
+ {
10
+ "inputs": [],
11
+ "name": "LzExecutor_ReceiveLibViewNotSet",
12
+ "type": "error"
13
+ },
14
+ {
15
+ "inputs": [],
16
+ "name": "LzExecutor_Verifying",
17
+ "type": "error"
18
+ },
19
+ {
20
+ "inputs": [
21
+ {
22
+ "internalType": "address",
23
+ "name": "_to",
24
+ "type": "address"
25
+ },
26
+ {
27
+ "internalType": "uint256",
28
+ "name": "_value",
29
+ "type": "uint256"
30
+ }
31
+ ],
32
+ "name": "Transfer_NativeFailed",
33
+ "type": "error"
34
+ },
35
+ {
36
+ "inputs": [],
37
+ "name": "Transfer_ToAddressIsZero",
38
+ "type": "error"
39
+ },
40
+ {
41
+ "anonymous": false,
42
+ "inputs": [
43
+ {
44
+ "indexed": false,
45
+ "internalType": "uint8",
46
+ "name": "version",
47
+ "type": "uint8"
48
+ }
49
+ ],
50
+ "name": "Initialized",
51
+ "type": "event"
52
+ },
53
+ {
54
+ "anonymous": false,
55
+ "inputs": [
56
+ {
57
+ "indexed": false,
58
+ "internalType": "address",
59
+ "name": "_to",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "indexed": false,
64
+ "internalType": "uint256",
65
+ "name": "_amount",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "NativeWithdrawn",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "anonymous": false,
74
+ "inputs": [
75
+ {
76
+ "indexed": true,
77
+ "internalType": "address",
78
+ "name": "previousOwner",
79
+ "type": "address"
80
+ },
81
+ {
82
+ "indexed": true,
83
+ "internalType": "address",
84
+ "name": "newOwner",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "OwnershipTransferred",
89
+ "type": "event"
90
+ },
91
+ {
92
+ "anonymous": false,
93
+ "inputs": [
94
+ {
95
+ "indexed": false,
96
+ "internalType": "address",
97
+ "name": "_receiveLib",
98
+ "type": "address"
99
+ },
100
+ {
101
+ "indexed": false,
102
+ "internalType": "address",
103
+ "name": "_receiveLibView",
104
+ "type": "address"
105
+ }
106
+ ],
107
+ "name": "ReceiveLibViewSet",
108
+ "type": "event"
109
+ },
110
+ {
111
+ "inputs": [],
112
+ "name": "EMPTY_PAYLOAD_HASH",
113
+ "outputs": [
114
+ {
115
+ "internalType": "bytes32",
116
+ "name": "",
117
+ "type": "bytes32"
118
+ }
119
+ ],
120
+ "stateMutability": "view",
121
+ "type": "function"
122
+ },
123
+ {
124
+ "inputs": [],
125
+ "name": "NIL_PAYLOAD_HASH",
126
+ "outputs": [
127
+ {
128
+ "internalType": "bytes32",
129
+ "name": "",
130
+ "type": "bytes32"
131
+ }
132
+ ],
133
+ "stateMutability": "view",
134
+ "type": "function"
135
+ },
136
+ {
137
+ "inputs": [
138
+ {
139
+ "internalType": "address",
140
+ "name": "_receiveLib",
141
+ "type": "address"
142
+ },
143
+ {
144
+ "components": [
145
+ {
146
+ "components": [
147
+ {
148
+ "internalType": "uint32",
149
+ "name": "srcEid",
150
+ "type": "uint32"
151
+ },
152
+ {
153
+ "internalType": "bytes32",
154
+ "name": "sender",
155
+ "type": "bytes32"
156
+ },
157
+ {
158
+ "internalType": "uint64",
159
+ "name": "nonce",
160
+ "type": "uint64"
161
+ }
162
+ ],
163
+ "internalType": "struct Origin",
164
+ "name": "origin",
165
+ "type": "tuple"
166
+ },
167
+ {
168
+ "internalType": "address",
169
+ "name": "receiver",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "internalType": "bytes32",
174
+ "name": "guid",
175
+ "type": "bytes32"
176
+ },
177
+ {
178
+ "internalType": "bytes",
179
+ "name": "message",
180
+ "type": "bytes"
181
+ },
182
+ {
183
+ "internalType": "bytes",
184
+ "name": "extraData",
185
+ "type": "bytes"
186
+ },
187
+ {
188
+ "internalType": "uint256",
189
+ "name": "gas",
190
+ "type": "uint256"
191
+ },
192
+ {
193
+ "internalType": "uint256",
194
+ "name": "value",
195
+ "type": "uint256"
196
+ }
197
+ ],
198
+ "internalType": "struct LzReceiveParam",
199
+ "name": "_lzReceiveParam",
200
+ "type": "tuple"
201
+ },
202
+ {
203
+ "components": [
204
+ {
205
+ "internalType": "address",
206
+ "name": "_receiver",
207
+ "type": "address"
208
+ },
209
+ {
210
+ "internalType": "uint256",
211
+ "name": "_amount",
212
+ "type": "uint256"
213
+ }
214
+ ],
215
+ "internalType": "struct NativeDropParam[]",
216
+ "name": "_nativeDropParams",
217
+ "type": "tuple[]"
218
+ }
219
+ ],
220
+ "name": "commitAndExecute",
221
+ "outputs": [],
222
+ "stateMutability": "payable",
223
+ "type": "function"
224
+ },
225
+ {
226
+ "inputs": [],
227
+ "name": "endpoint",
228
+ "outputs": [
229
+ {
230
+ "internalType": "contract ILayerZeroEndpointV2",
231
+ "name": "",
232
+ "type": "address"
233
+ }
234
+ ],
235
+ "stateMutability": "view",
236
+ "type": "function"
237
+ },
238
+ {
239
+ "inputs": [
240
+ {
241
+ "components": [
242
+ {
243
+ "internalType": "uint32",
244
+ "name": "srcEid",
245
+ "type": "uint32"
246
+ },
247
+ {
248
+ "internalType": "bytes32",
249
+ "name": "sender",
250
+ "type": "bytes32"
251
+ },
252
+ {
253
+ "internalType": "uint64",
254
+ "name": "nonce",
255
+ "type": "uint64"
256
+ }
257
+ ],
258
+ "internalType": "struct Origin",
259
+ "name": "_origin",
260
+ "type": "tuple"
261
+ },
262
+ {
263
+ "internalType": "address",
264
+ "name": "_receiver",
265
+ "type": "address"
266
+ }
267
+ ],
268
+ "name": "executable",
269
+ "outputs": [
270
+ {
271
+ "internalType": "enum ExecutionState",
272
+ "name": "",
273
+ "type": "uint8"
274
+ }
275
+ ],
276
+ "stateMutability": "view",
277
+ "type": "function"
278
+ },
279
+ {
280
+ "inputs": [
281
+ {
282
+ "components": [
283
+ {
284
+ "internalType": "uint32",
285
+ "name": "srcEid",
286
+ "type": "uint32"
287
+ },
288
+ {
289
+ "internalType": "bytes32",
290
+ "name": "sender",
291
+ "type": "bytes32"
292
+ },
293
+ {
294
+ "internalType": "uint64",
295
+ "name": "nonce",
296
+ "type": "uint64"
297
+ }
298
+ ],
299
+ "internalType": "struct Origin",
300
+ "name": "_origin",
301
+ "type": "tuple"
302
+ },
303
+ {
304
+ "internalType": "address",
305
+ "name": "_receiver",
306
+ "type": "address"
307
+ }
308
+ ],
309
+ "name": "initializable",
310
+ "outputs": [
311
+ {
312
+ "internalType": "bool",
313
+ "name": "",
314
+ "type": "bool"
315
+ }
316
+ ],
317
+ "stateMutability": "view",
318
+ "type": "function"
319
+ },
320
+ {
321
+ "inputs": [
322
+ {
323
+ "internalType": "address",
324
+ "name": "_receiveUln302",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "internalType": "address",
329
+ "name": "_receiveUln302View",
330
+ "type": "address"
331
+ },
332
+ {
333
+ "internalType": "address",
334
+ "name": "_endpoint",
335
+ "type": "address"
336
+ }
337
+ ],
338
+ "name": "initialize",
339
+ "outputs": [],
340
+ "stateMutability": "nonpayable",
341
+ "type": "function"
342
+ },
343
+ {
344
+ "inputs": [],
345
+ "name": "localEid",
346
+ "outputs": [
347
+ {
348
+ "internalType": "uint32",
349
+ "name": "",
350
+ "type": "uint32"
351
+ }
352
+ ],
353
+ "stateMutability": "view",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [],
358
+ "name": "owner",
359
+ "outputs": [
360
+ {
361
+ "internalType": "address",
362
+ "name": "",
363
+ "type": "address"
364
+ }
365
+ ],
366
+ "stateMutability": "view",
367
+ "type": "function"
368
+ },
369
+ {
370
+ "inputs": [
371
+ {
372
+ "internalType": "address",
373
+ "name": "receiveLib",
374
+ "type": "address"
375
+ }
376
+ ],
377
+ "name": "receiveLibToView",
378
+ "outputs": [
379
+ {
380
+ "internalType": "address",
381
+ "name": "receiveLibView",
382
+ "type": "address"
383
+ }
384
+ ],
385
+ "stateMutability": "view",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "inputs": [],
390
+ "name": "receiveUln302",
391
+ "outputs": [
392
+ {
393
+ "internalType": "address",
394
+ "name": "",
395
+ "type": "address"
396
+ }
397
+ ],
398
+ "stateMutability": "view",
399
+ "type": "function"
400
+ },
401
+ {
402
+ "inputs": [],
403
+ "name": "renounceOwnership",
404
+ "outputs": [],
405
+ "stateMutability": "nonpayable",
406
+ "type": "function"
407
+ },
408
+ {
409
+ "inputs": [
410
+ {
411
+ "internalType": "address",
412
+ "name": "_receiveLib",
413
+ "type": "address"
414
+ },
415
+ {
416
+ "internalType": "address",
417
+ "name": "_receiveLibView",
418
+ "type": "address"
419
+ }
420
+ ],
421
+ "name": "setReceiveLibView",
422
+ "outputs": [],
423
+ "stateMutability": "nonpayable",
424
+ "type": "function"
425
+ },
426
+ {
427
+ "inputs": [
428
+ {
429
+ "internalType": "address",
430
+ "name": "newOwner",
431
+ "type": "address"
432
+ }
433
+ ],
434
+ "name": "transferOwnership",
435
+ "outputs": [],
436
+ "stateMutability": "nonpayable",
437
+ "type": "function"
438
+ },
439
+ {
440
+ "inputs": [
441
+ {
442
+ "components": [
443
+ {
444
+ "internalType": "uint32",
445
+ "name": "srcEid",
446
+ "type": "uint32"
447
+ },
448
+ {
449
+ "internalType": "bytes32",
450
+ "name": "sender",
451
+ "type": "bytes32"
452
+ },
453
+ {
454
+ "internalType": "uint64",
455
+ "name": "nonce",
456
+ "type": "uint64"
457
+ }
458
+ ],
459
+ "internalType": "struct Origin",
460
+ "name": "_origin",
461
+ "type": "tuple"
462
+ },
463
+ {
464
+ "internalType": "address",
465
+ "name": "_receiver",
466
+ "type": "address"
467
+ },
468
+ {
469
+ "internalType": "address",
470
+ "name": "_receiveLib",
471
+ "type": "address"
472
+ },
473
+ {
474
+ "internalType": "bytes32",
475
+ "name": "_payloadHash",
476
+ "type": "bytes32"
477
+ }
478
+ ],
479
+ "name": "verifiable",
480
+ "outputs": [
481
+ {
482
+ "internalType": "bool",
483
+ "name": "",
484
+ "type": "bool"
485
+ }
486
+ ],
487
+ "stateMutability": "view",
488
+ "type": "function"
489
+ },
490
+ {
491
+ "inputs": [
492
+ {
493
+ "internalType": "address",
494
+ "name": "_to",
495
+ "type": "address"
496
+ },
497
+ {
498
+ "internalType": "uint256",
499
+ "name": "_amount",
500
+ "type": "uint256"
501
+ }
502
+ ],
503
+ "name": "withdrawNative",
504
+ "outputs": [],
505
+ "stateMutability": "nonpayable",
506
+ "type": "function"
507
+ }
508
+ ],
509
+ "transactionHash": "0x7394af587f4311a989c9352aec95ddcb84b07c78b87286b4a13257f5e44cb15e",
510
+ "receipt": {
511
+ "to": null,
512
+ "from": "0xc13b65f7c53Cd6db2EA205a4b574b4a0858720A6",
513
+ "contractAddress": "0x701f3927871EfcEa1235dB722f9E608aE120d243",
514
+ "transactionIndex": 0,
515
+ "gasUsed": "1763253",
516
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
517
+ "blockHash": "0x751a7528eeb013162ba48ea6540b027387d8a5cd7fdfa279c06c2403224d7b04",
518
+ "transactionHash": "0x7394af587f4311a989c9352aec95ddcb84b07c78b87286b4a13257f5e44cb15e",
519
+ "logs": [],
520
+ "blockNumber": 3601331,
521
+ "cumulativeGasUsed": "1763253",
522
+ "status": 1,
523
+ "byzantium": true
524
+ },
525
+ "args": [],
526
+ "numDeployments": 1,
527
+ "solcInputHash": "e99abdea457424a4de696bf7316bac06",
528
+ "bytecode": "0x608060405234801561001057600080fd5b50611f29806100206000396000f3fe6080604052600436106100f35760003560e01c8063861e1ca51161008a578063d73d37c611610059578063d73d37c61461033f578063dcfdeb601461035f578063e1e3a7df14610372578063f2fde38b1461039257600080fd5b8063861e1ca5146102af5780638da5cb5b146102df578063c0c53b8b1461030a578063cb5026b91461032a57600080fd5b80636f178835116100c65780636f178835146101e0578063715018a6146102235780637260753714610238578063843c7b0e1461028257600080fd5b806307b18bde146100f85780632baf0be71461011a5780634b4b2efb146101615780635e280f111461018e575b600080fd5b34801561010457600080fd5b506101186101133660046118ed565b6103b2565b005b34801561012657600080fd5b5061014e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b6040519081526020015b60405180910390f35b34801561016d57600080fd5b5061018161017c3660046119d3565b610418565b6040516101589190611a36565b34801561019a57600080fd5b506065546101bb9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610158565b3480156101ec57600080fd5b506101bb6101fb366004611a77565b60986020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561022f57600080fd5b50610118610713565b34801561024457600080fd5b5060975461026d9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610158565b34801561028e57600080fd5b506097546101bb9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102bb57600080fd5b506102cf6102ca3660046119d3565b610727565b6040519015158152602001610158565b3480156102eb57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166101bb565b34801561031657600080fd5b50610118610325366004611a99565b610810565b34801561033657600080fd5b5061014e600081565b34801561034b57600080fd5b5061011861035a366004611adc565b610bbf565b61011861036d366004611b06565b610c50565b34801561037e57600080fd5b506102cf61038d366004611bb4565b6111ae565b34801561039e57600080fd5b506101186103ad366004611a77565b61134d565b6103ba611404565b6103c48282611485565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fc303ca808382409472acbbf899c316cf439f409f6584aae22df86dfa3c9ed50491015b60405180910390a15050565b6065548251602084015160408086015190517fc9fc7bcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015263ffffffff9094166024820152604481019290925267ffffffffffffffff1660648201526000928392169063c9fc7bcd90608401602060405180830381865afa1580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611c00565b9050801580156105b55750606554845160208601516040517f5b17bb7000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff90931660248201526044810191909152911690635b17bb7090606401602060405180830381865afa158015610575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105999190611c19565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b156105c457600391505061070d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81148015906106ba5750606554845160208601516040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff9093166024820152604481019190915291169063a0dd43fc90606401602060405180830381865afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069e9190611c19565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b156106c957600291505061070d565b80158015906106f857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561070757600191505061070d565b60009150505b92915050565b61071b611404565b6107256000611590565b565b606554604080517f861e1ca5000000000000000000000000000000000000000000000000000000008152845163ffffffff166004820152602085015160248201529084015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff8381166064830152600092169063861e1ca590608401602060405180830381865afa9250505080156107fd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526107fa91810190611c36565b60015b6108095750600061070d565b905061070d565b600061083a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81166108935773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103556108b5565b3373ffffffffffffffffffffffffffffffffffffffff8216146108b557600080fd5b600054610100900460ff16158080156108d55750600054600160ff909116105b806108ef5750303b1580156108ef575060005460ff166001145b610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109de57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109e6611607565b6109ef836116a6565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691909117909155606554604080517f416ecebf0000000000000000000000000000000000000000000000000000000081529051919092169163416ecebf9160048083019260209291908290030181865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190611c58565b609780547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff939093169290920291909117905573ffffffffffffffffffffffffffffffffffffffff858116600090815260986020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169186169190911790558015610bb857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610bc7611404565b73ffffffffffffffffffffffffffffffffffffffff82811660008181526098602090815260409182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016948616948517905581519283528201929092527f142c46535a86ac791981f3f16bdfd58291f3f03fc3fd111646f3f0e4eb326b63910161040c565b6000610c74610c6436869003860186611c75565b61017c6080870160608801611a77565b90506003816003811115610c8a57610c8a611a07565b03610cc1576040517f3fd387de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002816003811115610cd557610cd5611a07565b146110ac5760975460009073ffffffffffffffffffffffffffffffffffffffff1615610d195760975473ffffffffffffffffffffffffffffffffffffffff16610d1b565b855b905060006001610d316060880160408901611c91565b610d3e6020890189611cae565b60975460208a01359074010000000000000000000000000000000000000000900463ffffffff16610d7560808c0160608d01611a77565b60405160f89690961b7fff0000000000000000000000000000000000000000000000000000000000000016602087015260c09490941b7fffffffffffffffff00000000000000000000000000000000000000000000000016602186015260e092831b7fffffffff000000000000000000000000000000000000000000000000000000009081166029870152602d86019290925290911b16604d83015273ffffffffffffffffffffffffffffffffffffffff166051820152607101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060006080870135610e7360a0890189611ccb565b604051602001610e8593929190611d37565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012073ffffffffffffffffffffffffffffffffffffffff8087166000908152609890945291909220549192501680610f1d576040517f1bbb68a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f27d12cd900000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906327d12cd990610f749087908790600401611d51565b602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190611dc4565b90506001816003811115610fcb57610fcb611a07565b0361105b576040517f0894edf100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690630894edf1906110249087908790600401611d51565b600060405180830381600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b505050506110a6565b600081600381111561106f5761106f611a07565b036110a6576040517f0dea846600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505b60005b828110156110f857368484838181106110ca576110ca611de5565b6040029190910191506110ef90506110e56020830183611a77565b8260200135611485565b506001016110af565b5060655473ffffffffffffffffffffffffffffffffffffffff16630c0c389e60e0860135610100870135876111336080820160608301611a77565b60808a013561114560a08c018c611ccb565b61115260c08e018e611ccb565b6040518a63ffffffff1660e01b81526004016111749796959493929190611e5d565b6000604051808303818589803b15801561118d57600080fd5b5088f11580156111a1573d6000803e3d6000fd5b5050505050505050505050565b60655484516040517f9d7f977500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015263ffffffff909216602482015284821660448201526000929190911690639d7f977590606401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d9190611c36565b61126957506000611345565b606554604080517fc9a54a99000000000000000000000000000000000000000000000000000000008152875163ffffffff166004820152602088015160248201529087015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff86811660648301529091169063c9a54a9990608401602060405180830381865afa158015611304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113289190611c36565b61133457506000611345565b8161134157506000611345565b5060015b949350505050565b611355611404565b73ffffffffffffffffffffffffffffffffffffffff81166113f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610977565b61140181611590565b50565b60335473ffffffffffffffffffffffffffffffffffffffff163314610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610977565b73ffffffffffffffffffffffffffffffffffffffff82166114d2576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461152c576040519150601f19603f3d011682016040523d82523d6000602084013e611531565b606091505b505090508061158b576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610977565b505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b610725611746565b600054610100900460ff1661173d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b611401816117e6565b600054610100900460ff166117dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b61072533611590565b600054610100900460ff1661187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803573ffffffffffffffffffffffffffffffffffffffff811681146118e857600080fd5b919050565b6000806040838503121561190057600080fd5b611909836118c4565b946020939093013593505050565b63ffffffff8116811461140157600080fd5b67ffffffffffffffff8116811461140157600080fd5b60006060828403121561195157600080fd5b6040516060810181811067ffffffffffffffff8211171561199b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290508082356119ac81611917565b81526020838101359082015260408301356119c681611929565b6040919091015292915050565b600080608083850312156119e657600080fd5b6119f0848461193f565b91506119fe606084016118c4565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160048310611a71577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060208284031215611a8957600080fd5b611a92826118c4565b9392505050565b600080600060608486031215611aae57600080fd5b611ab7846118c4565b9250611ac5602085016118c4565b9150611ad3604085016118c4565b90509250925092565b60008060408385031215611aef57600080fd5b611af8836118c4565b91506119fe602084016118c4565b60008060008060608587031215611b1c57600080fd5b611b25856118c4565b9350602085013567ffffffffffffffff80821115611b4257600080fd5b908601906101208289031215611b5757600080fd5b90935060408601359080821115611b6d57600080fd5b818701915087601f830112611b8157600080fd5b813581811115611b9057600080fd5b8860208260061b8501011115611ba557600080fd5b95989497505060200194505050565b60008060008060c08587031215611bca57600080fd5b611bd4868661193f565b9350611be2606086016118c4565b9250611bf0608086016118c4565b9396929550929360a00135925050565b600060208284031215611c1257600080fd5b5051919050565b600060208284031215611c2b57600080fd5b8151611a9281611929565b600060208284031215611c4857600080fd5b81518015158114611a9257600080fd5b600060208284031215611c6a57600080fd5b8151611a9281611917565b600060608284031215611c8757600080fd5b611a92838361193f565b600060208284031215611ca357600080fd5b8135611a9281611929565b600060208284031215611cc057600080fd5b8135611a9281611917565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d0057600080fd5b83018035915067ffffffffffffffff821115611d1b57600080fd5b602001915036819003821315611d3057600080fd5b9250929050565b838152818360208301376000910160200190815292915050565b604081526000835180604084015260005b81811015611d7f5760208187018101516060868401015201611d62565b5060006060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150508260208301529392505050565b600060208284031215611dd657600080fd5b815160048110611a9257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008835611e6a81611917565b63ffffffff168252602089810135908301526040890135611e8a81611929565b67ffffffffffffffff811660408401525073ffffffffffffffffffffffffffffffffffffffff8816606083015286608083015260e060a0830152611ed260e083018688611e14565b82810360c0840152611ee5818587611e14565b9a995050505050505050505056fea264697066735822122045c9752924d3abd339cca33e923daad1b7ea14fbea68adc96457127ea868011064736f6c63430008160033",
529
+ "deployedBytecode": "0x6080604052600436106100f35760003560e01c8063861e1ca51161008a578063d73d37c611610059578063d73d37c61461033f578063dcfdeb601461035f578063e1e3a7df14610372578063f2fde38b1461039257600080fd5b8063861e1ca5146102af5780638da5cb5b146102df578063c0c53b8b1461030a578063cb5026b91461032a57600080fd5b80636f178835116100c65780636f178835146101e0578063715018a6146102235780637260753714610238578063843c7b0e1461028257600080fd5b806307b18bde146100f85780632baf0be71461011a5780634b4b2efb146101615780635e280f111461018e575b600080fd5b34801561010457600080fd5b506101186101133660046118ed565b6103b2565b005b34801561012657600080fd5b5061014e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b6040519081526020015b60405180910390f35b34801561016d57600080fd5b5061018161017c3660046119d3565b610418565b6040516101589190611a36565b34801561019a57600080fd5b506065546101bb9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610158565b3480156101ec57600080fd5b506101bb6101fb366004611a77565b60986020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561022f57600080fd5b50610118610713565b34801561024457600080fd5b5060975461026d9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610158565b34801561028e57600080fd5b506097546101bb9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102bb57600080fd5b506102cf6102ca3660046119d3565b610727565b6040519015158152602001610158565b3480156102eb57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166101bb565b34801561031657600080fd5b50610118610325366004611a99565b610810565b34801561033657600080fd5b5061014e600081565b34801561034b57600080fd5b5061011861035a366004611adc565b610bbf565b61011861036d366004611b06565b610c50565b34801561037e57600080fd5b506102cf61038d366004611bb4565b6111ae565b34801561039e57600080fd5b506101186103ad366004611a77565b61134d565b6103ba611404565b6103c48282611485565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fc303ca808382409472acbbf899c316cf439f409f6584aae22df86dfa3c9ed50491015b60405180910390a15050565b6065548251602084015160408086015190517fc9fc7bcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015263ffffffff9094166024820152604481019290925267ffffffffffffffff1660648201526000928392169063c9fc7bcd90608401602060405180830381865afa1580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611c00565b9050801580156105b55750606554845160208601516040517f5b17bb7000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff90931660248201526044810191909152911690635b17bb7090606401602060405180830381865afa158015610575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105999190611c19565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b156105c457600391505061070d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81148015906106ba5750606554845160208601516040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff9093166024820152604481019190915291169063a0dd43fc90606401602060405180830381865afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069e9190611c19565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b156106c957600291505061070d565b80158015906106f857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561070757600191505061070d565b60009150505b92915050565b61071b611404565b6107256000611590565b565b606554604080517f861e1ca5000000000000000000000000000000000000000000000000000000008152845163ffffffff166004820152602085015160248201529084015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff8381166064830152600092169063861e1ca590608401602060405180830381865afa9250505080156107fd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526107fa91810190611c36565b60015b6108095750600061070d565b905061070d565b600061083a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81166108935773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103556108b5565b3373ffffffffffffffffffffffffffffffffffffffff8216146108b557600080fd5b600054610100900460ff16158080156108d55750600054600160ff909116105b806108ef5750303b1580156108ef575060005460ff166001145b610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109de57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109e6611607565b6109ef836116a6565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691909117909155606554604080517f416ecebf0000000000000000000000000000000000000000000000000000000081529051919092169163416ecebf9160048083019260209291908290030181865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190611c58565b609780547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff939093169290920291909117905573ffffffffffffffffffffffffffffffffffffffff858116600090815260986020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169186169190911790558015610bb857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610bc7611404565b73ffffffffffffffffffffffffffffffffffffffff82811660008181526098602090815260409182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016948616948517905581519283528201929092527f142c46535a86ac791981f3f16bdfd58291f3f03fc3fd111646f3f0e4eb326b63910161040c565b6000610c74610c6436869003860186611c75565b61017c6080870160608801611a77565b90506003816003811115610c8a57610c8a611a07565b03610cc1576040517f3fd387de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002816003811115610cd557610cd5611a07565b146110ac5760975460009073ffffffffffffffffffffffffffffffffffffffff1615610d195760975473ffffffffffffffffffffffffffffffffffffffff16610d1b565b855b905060006001610d316060880160408901611c91565b610d3e6020890189611cae565b60975460208a01359074010000000000000000000000000000000000000000900463ffffffff16610d7560808c0160608d01611a77565b60405160f89690961b7fff0000000000000000000000000000000000000000000000000000000000000016602087015260c09490941b7fffffffffffffffff00000000000000000000000000000000000000000000000016602186015260e092831b7fffffffff000000000000000000000000000000000000000000000000000000009081166029870152602d86019290925290911b16604d83015273ffffffffffffffffffffffffffffffffffffffff166051820152607101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060006080870135610e7360a0890189611ccb565b604051602001610e8593929190611d37565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012073ffffffffffffffffffffffffffffffffffffffff8087166000908152609890945291909220549192501680610f1d576040517f1bbb68a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f27d12cd900000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906327d12cd990610f749087908790600401611d51565b602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190611dc4565b90506001816003811115610fcb57610fcb611a07565b0361105b576040517f0894edf100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690630894edf1906110249087908790600401611d51565b600060405180830381600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b505050506110a6565b600081600381111561106f5761106f611a07565b036110a6576040517f0dea846600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505b60005b828110156110f857368484838181106110ca576110ca611de5565b6040029190910191506110ef90506110e56020830183611a77565b8260200135611485565b506001016110af565b5060655473ffffffffffffffffffffffffffffffffffffffff16630c0c389e60e0860135610100870135876111336080820160608301611a77565b60808a013561114560a08c018c611ccb565b61115260c08e018e611ccb565b6040518a63ffffffff1660e01b81526004016111749796959493929190611e5d565b6000604051808303818589803b15801561118d57600080fd5b5088f11580156111a1573d6000803e3d6000fd5b5050505050505050505050565b60655484516040517f9d7f977500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015263ffffffff909216602482015284821660448201526000929190911690639d7f977590606401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d9190611c36565b61126957506000611345565b606554604080517fc9a54a99000000000000000000000000000000000000000000000000000000008152875163ffffffff166004820152602088015160248201529087015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff86811660648301529091169063c9a54a9990608401602060405180830381865afa158015611304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113289190611c36565b61133457506000611345565b8161134157506000611345565b5060015b949350505050565b611355611404565b73ffffffffffffffffffffffffffffffffffffffff81166113f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610977565b61140181611590565b50565b60335473ffffffffffffffffffffffffffffffffffffffff163314610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610977565b73ffffffffffffffffffffffffffffffffffffffff82166114d2576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461152c576040519150601f19603f3d011682016040523d82523d6000602084013e611531565b606091505b505090508061158b576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610977565b505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b610725611746565b600054610100900460ff1661173d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b611401816117e6565b600054610100900460ff166117dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b61072533611590565b600054610100900460ff1661187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610977565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803573ffffffffffffffffffffffffffffffffffffffff811681146118e857600080fd5b919050565b6000806040838503121561190057600080fd5b611909836118c4565b946020939093013593505050565b63ffffffff8116811461140157600080fd5b67ffffffffffffffff8116811461140157600080fd5b60006060828403121561195157600080fd5b6040516060810181811067ffffffffffffffff8211171561199b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290508082356119ac81611917565b81526020838101359082015260408301356119c681611929565b6040919091015292915050565b600080608083850312156119e657600080fd5b6119f0848461193f565b91506119fe606084016118c4565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160048310611a71577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060208284031215611a8957600080fd5b611a92826118c4565b9392505050565b600080600060608486031215611aae57600080fd5b611ab7846118c4565b9250611ac5602085016118c4565b9150611ad3604085016118c4565b90509250925092565b60008060408385031215611aef57600080fd5b611af8836118c4565b91506119fe602084016118c4565b60008060008060608587031215611b1c57600080fd5b611b25856118c4565b9350602085013567ffffffffffffffff80821115611b4257600080fd5b908601906101208289031215611b5757600080fd5b90935060408601359080821115611b6d57600080fd5b818701915087601f830112611b8157600080fd5b813581811115611b9057600080fd5b8860208260061b8501011115611ba557600080fd5b95989497505060200194505050565b60008060008060c08587031215611bca57600080fd5b611bd4868661193f565b9350611be2606086016118c4565b9250611bf0608086016118c4565b9396929550929360a00135925050565b600060208284031215611c1257600080fd5b5051919050565b600060208284031215611c2b57600080fd5b8151611a9281611929565b600060208284031215611c4857600080fd5b81518015158114611a9257600080fd5b600060208284031215611c6a57600080fd5b8151611a9281611917565b600060608284031215611c8757600080fd5b611a92838361193f565b600060208284031215611ca357600080fd5b8135611a9281611929565b600060208284031215611cc057600080fd5b8135611a9281611917565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d0057600080fd5b83018035915067ffffffffffffffff821115611d1b57600080fd5b602001915036819003821315611d3057600080fd5b9250929050565b838152818360208301376000910160200190815292915050565b604081526000835180604084015260005b81811015611d7f5760208187018101516060868401015201611d62565b5060006060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150508260208301529392505050565b600060208284031215611dd657600080fd5b815160048110611a9257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008835611e6a81611917565b63ffffffff168252602089810135908301526040890135611e8a81611929565b67ffffffffffffffff811660408401525073ffffffffffffffffffffffffffffffffffffffff8816606083015286608083015260e060a0830152611ed260e083018688611e14565b82810360c0840152611ee5818587611e14565b9a995050505050505050505056fea264697066735822122045c9752924d3abd339cca33e923daad1b7ea14fbea68adc96457127ea868011064736f6c63430008160033",
530
+ "devdoc": {
531
+ "events": {
532
+ "Initialized(uint8)": {
533
+ "details": "Triggered when the contract has been initialized or reinitialized."
534
+ }
535
+ },
536
+ "kind": "dev",
537
+ "methods": {
538
+ "executable((uint32,bytes32,uint64),address)": {
539
+ "details": "check if a message is executable.",
540
+ "returns": {
541
+ "_0": "ExecutionState of Executed, Executable, or NotExecutable"
542
+ }
543
+ },
544
+ "owner()": {
545
+ "details": "Returns the address of the current owner."
546
+ },
547
+ "renounceOwnership()": {
548
+ "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
549
+ },
550
+ "transferOwnership(address)": {
551
+ "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
552
+ },
553
+ "verifiable((uint32,bytes32,uint64),address,address,bytes32)": {
554
+ "details": "check if a message is verifiable."
555
+ }
556
+ },
557
+ "version": 1
558
+ },
559
+ "userdoc": {
560
+ "kind": "user",
561
+ "methods": {
562
+ "commitAndExecute(address,((uint32,bytes32,uint64),address,bytes32,bytes,bytes,uint256,uint256),(address,uint256)[])": {
563
+ "notice": "process for commit and execute 1. check if executable, revert if executed, execute if executable 2. check if verifiable, revert if verifying, commit if verifiable 3. native drop 4. try execute, will revert if not executable"
564
+ }
565
+ },
566
+ "version": 1
567
+ },
568
+ "storageLayout": {
569
+ "storage": [
570
+ {
571
+ "astId": 5398,
572
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
573
+ "label": "_initialized",
574
+ "offset": 0,
575
+ "slot": "0",
576
+ "type": "t_uint8"
577
+ },
578
+ {
579
+ "astId": 5401,
580
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
581
+ "label": "_initializing",
582
+ "offset": 1,
583
+ "slot": "0",
584
+ "type": "t_bool"
585
+ },
586
+ {
587
+ "astId": 6153,
588
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
589
+ "label": "__gap",
590
+ "offset": 0,
591
+ "slot": "1",
592
+ "type": "t_array(t_uint256)50_storage"
593
+ },
594
+ {
595
+ "astId": 5270,
596
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
597
+ "label": "_owner",
598
+ "offset": 0,
599
+ "slot": "51",
600
+ "type": "t_address"
601
+ },
602
+ {
603
+ "astId": 5390,
604
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
605
+ "label": "__gap",
606
+ "offset": 0,
607
+ "slot": "52",
608
+ "type": "t_array(t_uint256)49_storage"
609
+ },
610
+ {
611
+ "astId": 2224,
612
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
613
+ "label": "endpoint",
614
+ "offset": 0,
615
+ "slot": "101",
616
+ "type": "t_contract(ILayerZeroEndpointV2)2612"
617
+ },
618
+ {
619
+ "astId": 2408,
620
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
621
+ "label": "__gap",
622
+ "offset": 0,
623
+ "slot": "102",
624
+ "type": "t_array(t_uint256)49_storage"
625
+ },
626
+ {
627
+ "astId": 18737,
628
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
629
+ "label": "receiveUln302",
630
+ "offset": 0,
631
+ "slot": "151",
632
+ "type": "t_address"
633
+ },
634
+ {
635
+ "astId": 18739,
636
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
637
+ "label": "localEid",
638
+ "offset": 20,
639
+ "slot": "151",
640
+ "type": "t_uint32"
641
+ },
642
+ {
643
+ "astId": 18743,
644
+ "contract": "contracts/uln/LzExecutor.sol:LzExecutor",
645
+ "label": "receiveLibToView",
646
+ "offset": 0,
647
+ "slot": "152",
648
+ "type": "t_mapping(t_address,t_address)"
649
+ }
650
+ ],
651
+ "types": {
652
+ "t_address": {
653
+ "encoding": "inplace",
654
+ "label": "address",
655
+ "numberOfBytes": "20"
656
+ },
657
+ "t_array(t_uint256)49_storage": {
658
+ "base": "t_uint256",
659
+ "encoding": "inplace",
660
+ "label": "uint256[49]",
661
+ "numberOfBytes": "1568"
662
+ },
663
+ "t_array(t_uint256)50_storage": {
664
+ "base": "t_uint256",
665
+ "encoding": "inplace",
666
+ "label": "uint256[50]",
667
+ "numberOfBytes": "1600"
668
+ },
669
+ "t_bool": {
670
+ "encoding": "inplace",
671
+ "label": "bool",
672
+ "numberOfBytes": "1"
673
+ },
674
+ "t_contract(ILayerZeroEndpointV2)2612": {
675
+ "encoding": "inplace",
676
+ "label": "contract ILayerZeroEndpointV2",
677
+ "numberOfBytes": "20"
678
+ },
679
+ "t_mapping(t_address,t_address)": {
680
+ "encoding": "mapping",
681
+ "key": "t_address",
682
+ "label": "mapping(address => address)",
683
+ "numberOfBytes": "32",
684
+ "value": "t_address"
685
+ },
686
+ "t_uint256": {
687
+ "encoding": "inplace",
688
+ "label": "uint256",
689
+ "numberOfBytes": "32"
690
+ },
691
+ "t_uint32": {
692
+ "encoding": "inplace",
693
+ "label": "uint32",
694
+ "numberOfBytes": "4"
695
+ },
696
+ "t_uint8": {
697
+ "encoding": "inplace",
698
+ "label": "uint8",
699
+ "numberOfBytes": "1"
700
+ }
701
+ }
702
+ }
703
+ }