@layerzerolabs/lz-evm-sdk-v2 2.0.21 → 2.0.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 (28) hide show
  1. package/deployments/joc-testnet/DVN.json +1929 -0
  2. package/deployments/joc-testnet/DVNFeeLib.json +398 -0
  3. package/deployments/joc-testnet/DefaultProxyAdmin.json +258 -0
  4. package/deployments/joc-testnet/EndpointV2.json +3000 -0
  5. package/deployments/joc-testnet/EndpointV2View.json +435 -0
  6. package/deployments/joc-testnet/EndpointV2View_Implementation.json +313 -0
  7. package/deployments/joc-testnet/EndpointV2View_Proxy.json +230 -0
  8. package/deployments/joc-testnet/Executor.json +1532 -0
  9. package/deployments/joc-testnet/ExecutorFeeLib.json +423 -0
  10. package/deployments/joc-testnet/ExecutorProxyAdmin.json +283 -0
  11. package/deployments/joc-testnet/Executor_Implementation.json +1591 -0
  12. package/deployments/joc-testnet/Executor_Proxy.json +365 -0
  13. package/deployments/joc-testnet/LzExecutor.json +757 -0
  14. package/deployments/joc-testnet/LzExecutor_Implementation.json +703 -0
  15. package/deployments/joc-testnet/LzExecutor_Proxy.json +244 -0
  16. package/deployments/joc-testnet/ReceiveUln301.json +1292 -0
  17. package/deployments/joc-testnet/ReceiveUln301View.json +354 -0
  18. package/deployments/joc-testnet/ReceiveUln301View_Implementation.json +231 -0
  19. package/deployments/joc-testnet/ReceiveUln301View_Proxy.json +230 -0
  20. package/deployments/joc-testnet/ReceiveUln302.json +1006 -0
  21. package/deployments/joc-testnet/ReceiveUln302View.json +478 -0
  22. package/deployments/joc-testnet/ReceiveUln302View_Implementation.json +384 -0
  23. package/deployments/joc-testnet/ReceiveUln302View_Proxy.json +230 -0
  24. package/deployments/joc-testnet/SendUln301.json +1569 -0
  25. package/deployments/joc-testnet/SendUln302.json +1527 -0
  26. package/deployments/joc-testnet/Treasury.json +412 -0
  27. package/deployments/joc-testnet/TreasuryFeeHandler.json +125 -0
  28. package/package.json +8 -8
@@ -0,0 +1,1292 @@
1
+ {
2
+ "address": "0xC1868e054425D378095A003EcbA3823a5D0135C9",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "address",
8
+ "name": "_endpoint",
9
+ "type": "address"
10
+ },
11
+ {
12
+ "internalType": "uint32",
13
+ "name": "_localEid",
14
+ "type": "uint32"
15
+ }
16
+ ],
17
+ "stateMutability": "nonpayable",
18
+ "type": "constructor"
19
+ },
20
+ {
21
+ "inputs": [],
22
+ "name": "AddressCast_InvalidSizeForAddress",
23
+ "type": "error"
24
+ },
25
+ {
26
+ "inputs": [],
27
+ "name": "AddressSizeConfig_AddressSizeAlreadySet",
28
+ "type": "error"
29
+ },
30
+ {
31
+ "inputs": [],
32
+ "name": "AddressSizeConfig_InvalidAddressSize",
33
+ "type": "error"
34
+ },
35
+ {
36
+ "inputs": [],
37
+ "name": "LZ_MessageLib_InvalidExecutor",
38
+ "type": "error"
39
+ },
40
+ {
41
+ "inputs": [],
42
+ "name": "LZ_MessageLib_OnlyEndpoint",
43
+ "type": "error"
44
+ },
45
+ {
46
+ "inputs": [],
47
+ "name": "LZ_MessageLib_OnlyExecutor",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [],
52
+ "name": "LZ_ULN_AtLeastOneDVN",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "uint256",
59
+ "name": "configType",
60
+ "type": "uint256"
61
+ }
62
+ ],
63
+ "name": "LZ_ULN_InvalidConfigType",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "LZ_ULN_InvalidConfirmations",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [],
73
+ "name": "LZ_ULN_InvalidEid",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "LZ_ULN_InvalidOptionalDVNCount",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "LZ_ULN_InvalidOptionalDVNThreshold",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "LZ_ULN_InvalidPacketHeader",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "LZ_ULN_InvalidPacketVersion",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "LZ_ULN_InvalidRequiredDVNCount",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "LZ_ULN_Unsorted",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [
108
+ {
109
+ "internalType": "uint32",
110
+ "name": "eid",
111
+ "type": "uint32"
112
+ }
113
+ ],
114
+ "name": "LZ_ULN_UnsupportedEid",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [],
119
+ "name": "LZ_ULN_Verifying",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "anonymous": false,
124
+ "inputs": [
125
+ {
126
+ "indexed": false,
127
+ "internalType": "uint16",
128
+ "name": "eid",
129
+ "type": "uint16"
130
+ },
131
+ {
132
+ "indexed": false,
133
+ "internalType": "uint256",
134
+ "name": "size",
135
+ "type": "uint256"
136
+ }
137
+ ],
138
+ "name": "AddressSizeSet",
139
+ "type": "event"
140
+ },
141
+ {
142
+ "anonymous": false,
143
+ "inputs": [
144
+ {
145
+ "components": [
146
+ {
147
+ "internalType": "uint32",
148
+ "name": "eid",
149
+ "type": "uint32"
150
+ },
151
+ {
152
+ "internalType": "address",
153
+ "name": "executor",
154
+ "type": "address"
155
+ }
156
+ ],
157
+ "indexed": false,
158
+ "internalType": "struct SetDefaultExecutorParam[]",
159
+ "name": "params",
160
+ "type": "tuple[]"
161
+ }
162
+ ],
163
+ "name": "DefaultExecutorsSet",
164
+ "type": "event"
165
+ },
166
+ {
167
+ "anonymous": false,
168
+ "inputs": [
169
+ {
170
+ "components": [
171
+ {
172
+ "internalType": "uint32",
173
+ "name": "eid",
174
+ "type": "uint32"
175
+ },
176
+ {
177
+ "components": [
178
+ {
179
+ "internalType": "uint64",
180
+ "name": "confirmations",
181
+ "type": "uint64"
182
+ },
183
+ {
184
+ "internalType": "uint8",
185
+ "name": "requiredDVNCount",
186
+ "type": "uint8"
187
+ },
188
+ {
189
+ "internalType": "uint8",
190
+ "name": "optionalDVNCount",
191
+ "type": "uint8"
192
+ },
193
+ {
194
+ "internalType": "uint8",
195
+ "name": "optionalDVNThreshold",
196
+ "type": "uint8"
197
+ },
198
+ {
199
+ "internalType": "address[]",
200
+ "name": "requiredDVNs",
201
+ "type": "address[]"
202
+ },
203
+ {
204
+ "internalType": "address[]",
205
+ "name": "optionalDVNs",
206
+ "type": "address[]"
207
+ }
208
+ ],
209
+ "internalType": "struct UlnConfig",
210
+ "name": "config",
211
+ "type": "tuple"
212
+ }
213
+ ],
214
+ "indexed": false,
215
+ "internalType": "struct SetDefaultUlnConfigParam[]",
216
+ "name": "params",
217
+ "type": "tuple[]"
218
+ }
219
+ ],
220
+ "name": "DefaultUlnConfigsSet",
221
+ "type": "event"
222
+ },
223
+ {
224
+ "anonymous": false,
225
+ "inputs": [
226
+ {
227
+ "indexed": false,
228
+ "internalType": "address",
229
+ "name": "oapp",
230
+ "type": "address"
231
+ },
232
+ {
233
+ "indexed": false,
234
+ "internalType": "uint32",
235
+ "name": "eid",
236
+ "type": "uint32"
237
+ },
238
+ {
239
+ "indexed": false,
240
+ "internalType": "address",
241
+ "name": "executor",
242
+ "type": "address"
243
+ }
244
+ ],
245
+ "name": "ExecutorSet",
246
+ "type": "event"
247
+ },
248
+ {
249
+ "anonymous": false,
250
+ "inputs": [
251
+ {
252
+ "indexed": true,
253
+ "internalType": "uint16",
254
+ "name": "srcChainId",
255
+ "type": "uint16"
256
+ },
257
+ {
258
+ "indexed": false,
259
+ "internalType": "bytes32",
260
+ "name": "srcAddress",
261
+ "type": "bytes32"
262
+ },
263
+ {
264
+ "indexed": true,
265
+ "internalType": "address",
266
+ "name": "dstAddress",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "indexed": false,
271
+ "internalType": "uint64",
272
+ "name": "nonce",
273
+ "type": "uint64"
274
+ },
275
+ {
276
+ "indexed": false,
277
+ "internalType": "bytes32",
278
+ "name": "payloadHash",
279
+ "type": "bytes32"
280
+ }
281
+ ],
282
+ "name": "InvalidDst",
283
+ "type": "event"
284
+ },
285
+ {
286
+ "anonymous": false,
287
+ "inputs": [
288
+ {
289
+ "indexed": true,
290
+ "internalType": "address",
291
+ "name": "previousOwner",
292
+ "type": "address"
293
+ },
294
+ {
295
+ "indexed": true,
296
+ "internalType": "address",
297
+ "name": "newOwner",
298
+ "type": "address"
299
+ }
300
+ ],
301
+ "name": "OwnershipTransferred",
302
+ "type": "event"
303
+ },
304
+ {
305
+ "anonymous": false,
306
+ "inputs": [
307
+ {
308
+ "components": [
309
+ {
310
+ "internalType": "uint32",
311
+ "name": "srcEid",
312
+ "type": "uint32"
313
+ },
314
+ {
315
+ "internalType": "bytes32",
316
+ "name": "sender",
317
+ "type": "bytes32"
318
+ },
319
+ {
320
+ "internalType": "uint64",
321
+ "name": "nonce",
322
+ "type": "uint64"
323
+ }
324
+ ],
325
+ "indexed": false,
326
+ "internalType": "struct Origin",
327
+ "name": "origin",
328
+ "type": "tuple"
329
+ },
330
+ {
331
+ "indexed": false,
332
+ "internalType": "address",
333
+ "name": "receiver",
334
+ "type": "address"
335
+ }
336
+ ],
337
+ "name": "PacketDelivered",
338
+ "type": "event"
339
+ },
340
+ {
341
+ "anonymous": false,
342
+ "inputs": [
343
+ {
344
+ "indexed": false,
345
+ "internalType": "address",
346
+ "name": "dvn",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "indexed": false,
351
+ "internalType": "bytes",
352
+ "name": "header",
353
+ "type": "bytes"
354
+ },
355
+ {
356
+ "indexed": false,
357
+ "internalType": "uint256",
358
+ "name": "confirmations",
359
+ "type": "uint256"
360
+ },
361
+ {
362
+ "indexed": false,
363
+ "internalType": "bytes32",
364
+ "name": "proofHash",
365
+ "type": "bytes32"
366
+ }
367
+ ],
368
+ "name": "PayloadVerified",
369
+ "type": "event"
370
+ },
371
+ {
372
+ "anonymous": false,
373
+ "inputs": [
374
+ {
375
+ "indexed": false,
376
+ "internalType": "address",
377
+ "name": "oapp",
378
+ "type": "address"
379
+ },
380
+ {
381
+ "indexed": false,
382
+ "internalType": "uint32",
383
+ "name": "eid",
384
+ "type": "uint32"
385
+ },
386
+ {
387
+ "components": [
388
+ {
389
+ "internalType": "uint64",
390
+ "name": "confirmations",
391
+ "type": "uint64"
392
+ },
393
+ {
394
+ "internalType": "uint8",
395
+ "name": "requiredDVNCount",
396
+ "type": "uint8"
397
+ },
398
+ {
399
+ "internalType": "uint8",
400
+ "name": "optionalDVNCount",
401
+ "type": "uint8"
402
+ },
403
+ {
404
+ "internalType": "uint8",
405
+ "name": "optionalDVNThreshold",
406
+ "type": "uint8"
407
+ },
408
+ {
409
+ "internalType": "address[]",
410
+ "name": "requiredDVNs",
411
+ "type": "address[]"
412
+ },
413
+ {
414
+ "internalType": "address[]",
415
+ "name": "optionalDVNs",
416
+ "type": "address[]"
417
+ }
418
+ ],
419
+ "indexed": false,
420
+ "internalType": "struct UlnConfig",
421
+ "name": "config",
422
+ "type": "tuple"
423
+ }
424
+ ],
425
+ "name": "UlnConfigSet",
426
+ "type": "event"
427
+ },
428
+ {
429
+ "inputs": [
430
+ {
431
+ "internalType": "uint32",
432
+ "name": "dstEid",
433
+ "type": "uint32"
434
+ }
435
+ ],
436
+ "name": "addressSizes",
437
+ "outputs": [
438
+ {
439
+ "internalType": "uint256",
440
+ "name": "size",
441
+ "type": "uint256"
442
+ }
443
+ ],
444
+ "stateMutability": "view",
445
+ "type": "function"
446
+ },
447
+ {
448
+ "inputs": [
449
+ {
450
+ "internalType": "bytes",
451
+ "name": "_packetHeader",
452
+ "type": "bytes"
453
+ },
454
+ {
455
+ "internalType": "uint32",
456
+ "name": "_localEid",
457
+ "type": "uint32"
458
+ }
459
+ ],
460
+ "name": "assertHeader",
461
+ "outputs": [],
462
+ "stateMutability": "pure",
463
+ "type": "function"
464
+ },
465
+ {
466
+ "inputs": [
467
+ {
468
+ "internalType": "bytes",
469
+ "name": "_packet",
470
+ "type": "bytes"
471
+ },
472
+ {
473
+ "internalType": "uint256",
474
+ "name": "_gasLimit",
475
+ "type": "uint256"
476
+ }
477
+ ],
478
+ "name": "commitVerification",
479
+ "outputs": [],
480
+ "stateMutability": "nonpayable",
481
+ "type": "function"
482
+ },
483
+ {
484
+ "inputs": [
485
+ {
486
+ "internalType": "uint32",
487
+ "name": "eid",
488
+ "type": "uint32"
489
+ }
490
+ ],
491
+ "name": "defaultExecutors",
492
+ "outputs": [
493
+ {
494
+ "internalType": "address",
495
+ "name": "executor",
496
+ "type": "address"
497
+ }
498
+ ],
499
+ "stateMutability": "view",
500
+ "type": "function"
501
+ },
502
+ {
503
+ "inputs": [
504
+ {
505
+ "internalType": "address",
506
+ "name": "oapp",
507
+ "type": "address"
508
+ },
509
+ {
510
+ "internalType": "uint32",
511
+ "name": "eid",
512
+ "type": "uint32"
513
+ }
514
+ ],
515
+ "name": "executors",
516
+ "outputs": [
517
+ {
518
+ "internalType": "address",
519
+ "name": "executor",
520
+ "type": "address"
521
+ }
522
+ ],
523
+ "stateMutability": "view",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [
528
+ {
529
+ "internalType": "address",
530
+ "name": "_oapp",
531
+ "type": "address"
532
+ },
533
+ {
534
+ "internalType": "uint32",
535
+ "name": "_remoteEid",
536
+ "type": "uint32"
537
+ }
538
+ ],
539
+ "name": "getAppUlnConfig",
540
+ "outputs": [
541
+ {
542
+ "components": [
543
+ {
544
+ "internalType": "uint64",
545
+ "name": "confirmations",
546
+ "type": "uint64"
547
+ },
548
+ {
549
+ "internalType": "uint8",
550
+ "name": "requiredDVNCount",
551
+ "type": "uint8"
552
+ },
553
+ {
554
+ "internalType": "uint8",
555
+ "name": "optionalDVNCount",
556
+ "type": "uint8"
557
+ },
558
+ {
559
+ "internalType": "uint8",
560
+ "name": "optionalDVNThreshold",
561
+ "type": "uint8"
562
+ },
563
+ {
564
+ "internalType": "address[]",
565
+ "name": "requiredDVNs",
566
+ "type": "address[]"
567
+ },
568
+ {
569
+ "internalType": "address[]",
570
+ "name": "optionalDVNs",
571
+ "type": "address[]"
572
+ }
573
+ ],
574
+ "internalType": "struct UlnConfig",
575
+ "name": "",
576
+ "type": "tuple"
577
+ }
578
+ ],
579
+ "stateMutability": "view",
580
+ "type": "function"
581
+ },
582
+ {
583
+ "inputs": [
584
+ {
585
+ "internalType": "uint16",
586
+ "name": "_eid",
587
+ "type": "uint16"
588
+ },
589
+ {
590
+ "internalType": "address",
591
+ "name": "_oapp",
592
+ "type": "address"
593
+ },
594
+ {
595
+ "internalType": "uint256",
596
+ "name": "_configType",
597
+ "type": "uint256"
598
+ }
599
+ ],
600
+ "name": "getConfig",
601
+ "outputs": [
602
+ {
603
+ "internalType": "bytes",
604
+ "name": "",
605
+ "type": "bytes"
606
+ }
607
+ ],
608
+ "stateMutability": "view",
609
+ "type": "function"
610
+ },
611
+ {
612
+ "inputs": [
613
+ {
614
+ "internalType": "address",
615
+ "name": "_oapp",
616
+ "type": "address"
617
+ },
618
+ {
619
+ "internalType": "uint32",
620
+ "name": "_remoteEid",
621
+ "type": "uint32"
622
+ }
623
+ ],
624
+ "name": "getExecutor",
625
+ "outputs": [
626
+ {
627
+ "internalType": "address",
628
+ "name": "",
629
+ "type": "address"
630
+ }
631
+ ],
632
+ "stateMutability": "view",
633
+ "type": "function"
634
+ },
635
+ {
636
+ "inputs": [
637
+ {
638
+ "internalType": "address",
639
+ "name": "_oapp",
640
+ "type": "address"
641
+ },
642
+ {
643
+ "internalType": "uint32",
644
+ "name": "_remoteEid",
645
+ "type": "uint32"
646
+ }
647
+ ],
648
+ "name": "getUlnConfig",
649
+ "outputs": [
650
+ {
651
+ "components": [
652
+ {
653
+ "internalType": "uint64",
654
+ "name": "confirmations",
655
+ "type": "uint64"
656
+ },
657
+ {
658
+ "internalType": "uint8",
659
+ "name": "requiredDVNCount",
660
+ "type": "uint8"
661
+ },
662
+ {
663
+ "internalType": "uint8",
664
+ "name": "optionalDVNCount",
665
+ "type": "uint8"
666
+ },
667
+ {
668
+ "internalType": "uint8",
669
+ "name": "optionalDVNThreshold",
670
+ "type": "uint8"
671
+ },
672
+ {
673
+ "internalType": "address[]",
674
+ "name": "requiredDVNs",
675
+ "type": "address[]"
676
+ },
677
+ {
678
+ "internalType": "address[]",
679
+ "name": "optionalDVNs",
680
+ "type": "address[]"
681
+ }
682
+ ],
683
+ "internalType": "struct UlnConfig",
684
+ "name": "rtnConfig",
685
+ "type": "tuple"
686
+ }
687
+ ],
688
+ "stateMutability": "view",
689
+ "type": "function"
690
+ },
691
+ {
692
+ "inputs": [
693
+ {
694
+ "internalType": "bytes32",
695
+ "name": "headerHash",
696
+ "type": "bytes32"
697
+ },
698
+ {
699
+ "internalType": "bytes32",
700
+ "name": "payloadHash",
701
+ "type": "bytes32"
702
+ },
703
+ {
704
+ "internalType": "address",
705
+ "name": "dvn",
706
+ "type": "address"
707
+ }
708
+ ],
709
+ "name": "hashLookup",
710
+ "outputs": [
711
+ {
712
+ "internalType": "bool",
713
+ "name": "submitted",
714
+ "type": "bool"
715
+ },
716
+ {
717
+ "internalType": "uint64",
718
+ "name": "confirmations",
719
+ "type": "uint64"
720
+ }
721
+ ],
722
+ "stateMutability": "view",
723
+ "type": "function"
724
+ },
725
+ {
726
+ "inputs": [],
727
+ "name": "owner",
728
+ "outputs": [
729
+ {
730
+ "internalType": "address",
731
+ "name": "",
732
+ "type": "address"
733
+ }
734
+ ],
735
+ "stateMutability": "view",
736
+ "type": "function"
737
+ },
738
+ {
739
+ "inputs": [],
740
+ "name": "renounceOwnership",
741
+ "outputs": [],
742
+ "stateMutability": "nonpayable",
743
+ "type": "function"
744
+ },
745
+ {
746
+ "inputs": [
747
+ {
748
+ "internalType": "uint16",
749
+ "name": "_eid",
750
+ "type": "uint16"
751
+ },
752
+ {
753
+ "internalType": "uint256",
754
+ "name": "_size",
755
+ "type": "uint256"
756
+ }
757
+ ],
758
+ "name": "setAddressSize",
759
+ "outputs": [],
760
+ "stateMutability": "nonpayable",
761
+ "type": "function"
762
+ },
763
+ {
764
+ "inputs": [
765
+ {
766
+ "internalType": "uint16",
767
+ "name": "_eid",
768
+ "type": "uint16"
769
+ },
770
+ {
771
+ "internalType": "address",
772
+ "name": "_oapp",
773
+ "type": "address"
774
+ },
775
+ {
776
+ "internalType": "uint256",
777
+ "name": "_configType",
778
+ "type": "uint256"
779
+ },
780
+ {
781
+ "internalType": "bytes",
782
+ "name": "_config",
783
+ "type": "bytes"
784
+ }
785
+ ],
786
+ "name": "setConfig",
787
+ "outputs": [],
788
+ "stateMutability": "nonpayable",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [
793
+ {
794
+ "components": [
795
+ {
796
+ "internalType": "uint32",
797
+ "name": "eid",
798
+ "type": "uint32"
799
+ },
800
+ {
801
+ "internalType": "address",
802
+ "name": "executor",
803
+ "type": "address"
804
+ }
805
+ ],
806
+ "internalType": "struct SetDefaultExecutorParam[]",
807
+ "name": "_params",
808
+ "type": "tuple[]"
809
+ }
810
+ ],
811
+ "name": "setDefaultExecutors",
812
+ "outputs": [],
813
+ "stateMutability": "nonpayable",
814
+ "type": "function"
815
+ },
816
+ {
817
+ "inputs": [
818
+ {
819
+ "components": [
820
+ {
821
+ "internalType": "uint32",
822
+ "name": "eid",
823
+ "type": "uint32"
824
+ },
825
+ {
826
+ "components": [
827
+ {
828
+ "internalType": "uint64",
829
+ "name": "confirmations",
830
+ "type": "uint64"
831
+ },
832
+ {
833
+ "internalType": "uint8",
834
+ "name": "requiredDVNCount",
835
+ "type": "uint8"
836
+ },
837
+ {
838
+ "internalType": "uint8",
839
+ "name": "optionalDVNCount",
840
+ "type": "uint8"
841
+ },
842
+ {
843
+ "internalType": "uint8",
844
+ "name": "optionalDVNThreshold",
845
+ "type": "uint8"
846
+ },
847
+ {
848
+ "internalType": "address[]",
849
+ "name": "requiredDVNs",
850
+ "type": "address[]"
851
+ },
852
+ {
853
+ "internalType": "address[]",
854
+ "name": "optionalDVNs",
855
+ "type": "address[]"
856
+ }
857
+ ],
858
+ "internalType": "struct UlnConfig",
859
+ "name": "config",
860
+ "type": "tuple"
861
+ }
862
+ ],
863
+ "internalType": "struct SetDefaultUlnConfigParam[]",
864
+ "name": "_params",
865
+ "type": "tuple[]"
866
+ }
867
+ ],
868
+ "name": "setDefaultUlnConfigs",
869
+ "outputs": [],
870
+ "stateMutability": "nonpayable",
871
+ "type": "function"
872
+ },
873
+ {
874
+ "inputs": [
875
+ {
876
+ "internalType": "address",
877
+ "name": "newOwner",
878
+ "type": "address"
879
+ }
880
+ ],
881
+ "name": "transferOwnership",
882
+ "outputs": [],
883
+ "stateMutability": "nonpayable",
884
+ "type": "function"
885
+ },
886
+ {
887
+ "inputs": [
888
+ {
889
+ "components": [
890
+ {
891
+ "internalType": "uint64",
892
+ "name": "confirmations",
893
+ "type": "uint64"
894
+ },
895
+ {
896
+ "internalType": "uint8",
897
+ "name": "requiredDVNCount",
898
+ "type": "uint8"
899
+ },
900
+ {
901
+ "internalType": "uint8",
902
+ "name": "optionalDVNCount",
903
+ "type": "uint8"
904
+ },
905
+ {
906
+ "internalType": "uint8",
907
+ "name": "optionalDVNThreshold",
908
+ "type": "uint8"
909
+ },
910
+ {
911
+ "internalType": "address[]",
912
+ "name": "requiredDVNs",
913
+ "type": "address[]"
914
+ },
915
+ {
916
+ "internalType": "address[]",
917
+ "name": "optionalDVNs",
918
+ "type": "address[]"
919
+ }
920
+ ],
921
+ "internalType": "struct UlnConfig",
922
+ "name": "_config",
923
+ "type": "tuple"
924
+ },
925
+ {
926
+ "internalType": "bytes32",
927
+ "name": "_headerHash",
928
+ "type": "bytes32"
929
+ },
930
+ {
931
+ "internalType": "bytes32",
932
+ "name": "_payloadHash",
933
+ "type": "bytes32"
934
+ }
935
+ ],
936
+ "name": "verifiable",
937
+ "outputs": [
938
+ {
939
+ "internalType": "bool",
940
+ "name": "",
941
+ "type": "bool"
942
+ }
943
+ ],
944
+ "stateMutability": "view",
945
+ "type": "function"
946
+ },
947
+ {
948
+ "inputs": [
949
+ {
950
+ "internalType": "bytes",
951
+ "name": "_packetHeader",
952
+ "type": "bytes"
953
+ },
954
+ {
955
+ "internalType": "bytes32",
956
+ "name": "_payloadHash",
957
+ "type": "bytes32"
958
+ },
959
+ {
960
+ "internalType": "uint64",
961
+ "name": "_confirmations",
962
+ "type": "uint64"
963
+ }
964
+ ],
965
+ "name": "verify",
966
+ "outputs": [],
967
+ "stateMutability": "nonpayable",
968
+ "type": "function"
969
+ },
970
+ {
971
+ "inputs": [],
972
+ "name": "version",
973
+ "outputs": [
974
+ {
975
+ "internalType": "uint64",
976
+ "name": "major",
977
+ "type": "uint64"
978
+ },
979
+ {
980
+ "internalType": "uint8",
981
+ "name": "minor",
982
+ "type": "uint8"
983
+ },
984
+ {
985
+ "internalType": "uint8",
986
+ "name": "endpointVersion",
987
+ "type": "uint8"
988
+ }
989
+ ],
990
+ "stateMutability": "pure",
991
+ "type": "function"
992
+ }
993
+ ],
994
+ "transactionHash": "0x63b73aa94d3b08fbdfa9536f22bd351c4c67919f44968a7f6511b8548e5fa01c",
995
+ "receipt": {
996
+ "to": null,
997
+ "from": "0xc13b65f7c53Cd6db2EA205a4b574b4a0858720A6",
998
+ "contractAddress": "0xC1868e054425D378095A003EcbA3823a5D0135C9",
999
+ "transactionIndex": 0,
1000
+ "gasUsed": "2869698",
1001
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000200000000000000000000000000000000000000020000000000000400000000000000000000000000000001000000000000000000020000000000000000030000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000",
1002
+ "blockHash": "0xa4fbbfee0142fb8a642ff9b44c7e90b242be01f9bfc90e6bdfde2209de181c88",
1003
+ "transactionHash": "0x63b73aa94d3b08fbdfa9536f22bd351c4c67919f44968a7f6511b8548e5fa01c",
1004
+ "logs": [
1005
+ {
1006
+ "transactionIndex": 0,
1007
+ "blockNumber": 2936536,
1008
+ "transactionHash": "0x63b73aa94d3b08fbdfa9536f22bd351c4c67919f44968a7f6511b8548e5fa01c",
1009
+ "address": "0xC1868e054425D378095A003EcbA3823a5D0135C9",
1010
+ "topics": [
1011
+ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
1012
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
1013
+ "0x000000000000000000000000c13b65f7c53cd6db2ea205a4b574b4a0858720a6"
1014
+ ],
1015
+ "data": "0x",
1016
+ "logIndex": 0,
1017
+ "blockHash": "0xa4fbbfee0142fb8a642ff9b44c7e90b242be01f9bfc90e6bdfde2209de181c88"
1018
+ }
1019
+ ],
1020
+ "blockNumber": 2936536,
1021
+ "cumulativeGasUsed": "2869698",
1022
+ "status": 1,
1023
+ "byzantium": true
1024
+ },
1025
+ "args": [
1026
+ "0x83c73Da98cf733B03315aFa8758834b36a195b87",
1027
+ 10242
1028
+ ],
1029
+ "numDeployments": 1,
1030
+ "solcInputHash": "c1348614bdca535ead27abf9de3062c9",
1031
+ "bytecode": "0x60c06040523480156200001157600080fd5b50604051620033ea380380620033ea8339810160408190526200003491620000b2565b6001600160a01b03821660805263ffffffff811660a0528181620000583362000062565b5050505062000104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215620000c657600080fd5b82516001600160a01b0381168114620000de57600080fd5b602084015190925063ffffffff81168114620000f957600080fd5b809150509250929050565b60805160a0516132b9620001316000396000610f110152600081816110be0152611e3c01526132b96000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80636d26e5d0116100cd578063c40ff83511610081578063e65106f811610066578063e65106f8146103d5578063f2fde38b146103e8578063f8e1734c146103fb57600080fd5b8063c40ff8351461039f578063e084d952146103b257600080fd5b80638da5cb5b116100b25780638da5cb5b1461032d5780639653a7041461034b57806398678a111461035e57600080fd5b80636d26e5d014610312578063715018a61461032557600080fd5b806339e928a81161012457806343ea4fa91161010957806343ea4fa9146102bf57806352d2871f146102d257806354fd4d50146102f257600080fd5b806339e928a8146102475780633c782a521461025a57600080fd5b806329460b0b1161015557806329460b0b146101b95780632fed39ae146101cc57806339e3f9381461022757600080fd5b80630223536e146101715780630f8355c014610186575b600080fd5b61018461017f3660046123f7565b61040e565b005b6101a6610194366004612468565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6101846101c7366004612483565b610420565b6102026101da366004612468565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b61023a61023536600461251a565b610605565b6040516101b09190612613565b610184610255366004612626565b6107a7565b61029f610268366004612689565b600260209081526000938452604080852082529284528284209052825290205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff9091166020830152016101b0565b61023a6102cd36600461251a565b610902565b6102e56102e03660046126d4565b610cbc565b6040516101b09190612781565b6040805160038152600060208201526001918101919091526060016101b0565b610184610320366004612794565b610d74565b610184610e4d565b60005473ffffffffffffffffffffffffffffffffffffffff16610202565b61020261035936600461251a565b610e61565b61020261036c36600461251a565b600460209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6101846103ad3660046127be565b610edc565b6103c56103c03660046129f3565b610eec565b60405190151581526020016101b0565b6101846103e3366004612a41565b610ef9565b6101846103f6366004612a8d565b611005565b610184610409366004612aaa565b6110bc565b61041a848484846111bd565b50505050565b6104286112d1565b60005b818110156105c7573683838381811061044657610446612b1b565b90506020028101906104589190612b4a565b905060ff6104696020830183612b88565b61047a906040810190602001612bbc565b60ff16036104b4576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff6104c36020830183612b88565b6104d4906060810190604001612bbc565b60ff160361050e576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff6105246020830183612b88565b610532906020810190612bd7565b67ffffffffffffffff1603610573576040517f503667ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105916105836020830183612b88565b61058c90612bf2565b611352565b6105be60006105a36020840184612468565b6105b06020850185612b88565b6105b990612bf2565b6113a3565b5060010161042b565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b56082826040516105f9929190612cb0565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a0100000000000000000000909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561072657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116106fb575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561079557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161076a575b50505050508152505090505b92915050565b6107af6112d1565b60005b818110156108d057368383838181106107cd576107cd612b1b565b9050604002019050600073ffffffffffffffffffffffffffffffffffffffff168160200160208101906108009190612a8d565b73ffffffffffffffffffffffffffffffffffffffff160361084d576040517f20e9d05a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d6040820160208301612a8d565b6005600061086e6020850185612468565b63ffffffff168152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055506001016107b2565b507f2a2676897ce6724d11fb8016f9bcdfe9fe564bc3524411d5df7914aac78aeeb382826040516105f9929190612e4d565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff16806109b257825467ffffffffffffffff1684526109d1565b67ffffffffffffffff818116146109d15767ffffffffffffffff811684525b815468010000000000000000900460ff16610a8757825468010000000000000000900460ff1615610a825782600101805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610a36575b50505050506080850152825468010000000000000000900460ff1660208501525b610b25565b815468010000000000000000900460ff90811614610b255781600101805480602002602001604051908101604052809291908181526020018280548015610b0457602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610ad9575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff16610bf45782546901000000000000000000900460ff1615610bef5782600201805480602002602001604051908101604052809291908181526020018280548015610bb757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610b8c575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610caa565b81546901000000000000000000900460ff90811614610caa5781600201805480602002602001604051908101604052809291908181526020018280548015610c7257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c47575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610cb384611352565b50505092915050565b606060018203610d0d57610cd4838561ffff16610e61565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152015b6040516020818303038152906040529050610d6d565b60028203610d3357610d23838561ffff16610902565b604051602001610cf79190612613565b6040517f0c509b5b000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b9392505050565b610d7c6112d1565b6020811115610db7576040517f6f85e1b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff821660009081526003602052604090205415610e02576040517fe4df7bef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff8216600081815260036020908152604091829020849055815192835282018390527ee9ab3709e58edd0db46318d63673d8ae4681fa3e51d9f9dc07cde5109ff74891016105f9565b610e556112d1565b610e5f6000611737565b565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff8616845290915281205490911680610ed25763ffffffff831660009081526005602052604090205473ffffffffffffffffffffffffffffffffffffffff16610ed4565b805b949350505050565b610ee78383836117ac565b505050565b6000610ed484848461187a565b366000610f068585611983565b91509150610f3582827f00000000000000000000000000000000000000000000000000000000000000006117ac565b6000610f41868661199f565b90506000610f5d610f5288886119b1565b63ffffffff166119d4565b90506000610f6f838361ffff16610902565b9050610f9c818686604051610f85929190612ec0565b6040518091039020610f978b8b611a6c565b611a96565b610ffb82610faa8a8a611c45565b85610fb58c8c611c5e565b610fbf8d8d611c81565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508e9250611c91915050565b5050505050505050565b61100d6112d1565b73ffffffffffffffffffffffffffffffffffffffff81166110b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d64565b6110b981611737565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461112b576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111388561ffff16611f44565b6001830361115f5761115a61ffff86168561115584860186612a8d565b611f8b565b6111b6565b600283036111815761115a61ffff86168561117c84860186612ed0565b612036565b6040517f0c509b5b00000000000000000000000000000000000000000000000000000000815260048101849052602401610d64565b5050505050565b6040805180820182526001815267ffffffffffffffff8316602082015290516002906000906111ef9088908890612ec0565b6040805191829003909120825260208083019390935290810160009081208682528352818120338083529084529082902084518154959094015167ffffffffffffffff16610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab56916112c3918790879086908890612f05565b60405180910390a150505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d64565b602081015160ff1615801561136c5750606081015160ff16155b156110b9576040517fce2c375100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff90811614806113be5750602081015160ff16155b156114055760808101515115611400576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611484565b806020015160ff1681608001515114158061144057506002611429600160ff612fb9565b6114339190612fd2565b60ff16816020015160ff16115b15611477576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611484816080015161207f565b604081015160ff908116148061149f5750604081015160ff16155b156115255760a081015151156114e1576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615611520576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fc565b806040015160ff168160a001515114158061156057506002611549600160ff612fb9565b6115539190612fd2565b60ff16816040015160ff16115b15611597576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615806115b85750806040015160ff16816060015160ff16115b156115ef576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fc8160a0015161207f565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a010000000000000000000095909116949094029390931783556080840151805185949361171393908501920190612302565b5060a0820151805161172f916002840191602090910190612302565b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b605182146117e6576040517fc9bf37b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016117f28484612119565b60ff161461182c576040517f3a9ae7b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8063ffffffff1661183d848461213b565b63ffffffff1614610ee7576040517f42d2c97e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602083015160009060ff16156118fd5760005b846020015160ff168160ff1610156118e5576118cf85608001518260ff16815181106118bb576118bb612b1b565b60200260200101518585886000015161214b565b6118dd576000915050610d6d565b60010161188d565b50836040015160ff166000036118fd57506001610d6d565b606084015160005b856040015160ff168160ff161015611977576119478660a001518260ff168151811061193357611933612b1b565b60200260200101518686896000015161214b565b1561196f57816119568161301b565b9250508160ff1660000361196f57600192505050610d6d565b600101611905565b50600095945050505050565b3660006119936051828587613056565b915091505b9250929050565b6000610d6d6119ae84846121da565b90565b60006119c1600d60098486613056565b6119ca91613080565b60e01c9392505050565b600061ffff821115611a68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610d64565b5090565b6000611a7883836121ea565b604051611a86929190612ec0565b6040518091039020905092915050565b611aa183838361187a565b611ad7576040517f4c3118d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602083015160ff1615611b8f5760005b836020015160ff168160ff161015611b8d57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110611b2f57611b2f612b1b565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611ae7565b505b604083015160ff1615610ee75760005b836040015160ff168160ff16101561041a576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110611be757611be7612b1b565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611b9f565b6000611c55602d600d8486613056565b610d6d916130c8565b6000611c6e600960018486613056565b611c7791613104565b60c01c9392505050565b3660006119938360718187613056565b611c9f848761ffff16610e61565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d03576040517fb7386d3200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163b600003611da0578373ffffffffffffffffffffffffffffffffffffffff168661ffff167feca5e9e3d49c3ee9d9362efa82baa91c668a7f032b3a403638ae65e27368013687868680519060200120604051611d939392919092835267ffffffffffffffff919091166020830152604082015260600190565b60405180910390a361172f565b61ffff8616600090815260036020526040812054611dbf9087906121fa565b85604051602001611dd192919061314a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527fc2fa4813000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c2fa481390611e7b908a9085908a908a9089908b90600401613194565b600060405180830381600087803b158015611e9557600080fd5b505af1158015611ea9573d6000803e3d6000fd5b5050604080516060808201835261ffff8c1680835260208084018d815267ffffffffffffffff8c8116868801908152875194855291519284019290925251169381019390935273ffffffffffffffffffffffffffffffffffffffff8a169083015292507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca04915060800160405180910390a15050505050505050565b611f4d8161229b565b6110b9576040517ff0c10d0400000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610d64565b73ffffffffffffffffffffffffffffffffffffffff828116600081815260046020908152604080832063ffffffff89168085529083529281902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695871695861790558051938452908301919091528101919091527f2bef5fe6b6383925f8e9893d464521c5fcd4f9d4dc14d32d900849c5ae0af710906060015b60405180910390a1505050565b6120418284836113a3565b61204b8284610902565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f508182848360405161202993929190613202565b6000805b8251811015610ee75760008382815181106120a0576120a0612b1b565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161161210f576040517f447516e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150600101612083565b60006121286001828486613056565b6121319161323d565b60f81c9392505050565b60006119c16031602d8486613056565b6000838152600260209081526040808320858452825280832073ffffffffffffffffffffffffffffffffffffffff88168452825280832081518083019092525460ff811615801580845261010090920467ffffffffffffffff169383019390935290916121d057508267ffffffffffffffff16816020015167ffffffffffffffff1610155b9695505050505050565b6000611c55605160318486613056565b3660006119938360518187613056565b60608115806122095750602082115b15612240576040517f18456c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8167ffffffffffffffff81111561225957612259612812565b6040519080825280601f01601f191660200182016040528015612283576020820181803683370190505b506008909202610100039290921b6020820152919050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff16151580610d6d5750546a0100000000000000000000900460ff16151592915050565b82805482825590600052602060002090810192821561237c579160200282015b8281111561237c57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190612322565b50611a689291505b80821115611a685760008155600101612384565b60008083601f8401126123aa57600080fd5b50813567ffffffffffffffff8111156123c257600080fd5b60208301915083602082850101111561199857600080fd5b803567ffffffffffffffff811681146123f257600080fd5b919050565b6000806000806060858703121561240d57600080fd5b843567ffffffffffffffff81111561242457600080fd5b61243087828801612398565b90955093505060208501359150612449604086016123da565b905092959194509250565b803563ffffffff811681146123f257600080fd5b60006020828403121561247a57600080fd5b610d6d82612454565b6000806020838503121561249657600080fd5b823567ffffffffffffffff808211156124ae57600080fd5b818501915085601f8301126124c257600080fd5b8135818111156124d157600080fd5b8660208260051b85010111156124e657600080fd5b60209290920196919550909350505050565b73ffffffffffffffffffffffffffffffffffffffff811681146110b957600080fd5b6000806040838503121561252d57600080fd5b8235612538816124f8565b915061254660208401612454565b90509250929050565b60008151808452602080850194506020840160005b8381101561259657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612564565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c060808501526125f160c085018261254f565b905060a083015184820360a086015261260a828261254f565b95945050505050565b602081526000610d6d60208301846125a1565b6000806020838503121561263957600080fd5b823567ffffffffffffffff8082111561265157600080fd5b818501915085601f83011261266557600080fd5b81358181111561267457600080fd5b8660208260061b85010111156124e657600080fd5b60008060006060848603121561269e57600080fd5b833592506020840135915060408401356126b7816124f8565b809150509250925092565b803561ffff811681146123f257600080fd5b6000806000606084860312156126e957600080fd5b6126f2846126c2565b92506020840135612702816124f8565b929592945050506040919091013590565b60005b8381101561272e578181015183820152602001612716565b50506000910152565b6000815180845261274f816020860160208601612713565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610d6d6020830184612737565b600080604083850312156127a757600080fd5b6127b0836126c2565b946020939093013593505050565b6000806000604084860312156127d357600080fd5b833567ffffffffffffffff8111156127ea57600080fd5b6127f686828701612398565b9094509250612809905060208501612454565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff8111828210171561286457612864612812565b60405290565b803560ff811681146123f257600080fd5b600082601f83011261288c57600080fd5b8135602067ffffffffffffffff808311156128a9576128a9612812565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156128ec576128ec612812565b604052938452602081870181019490810192508785111561290c57600080fd5b6020870191505b84821015612935578135612926816124f8565b83529183019190830190612913565b979650505050505050565b600060c0828403121561295257600080fd5b61295a612841565b9050612965826123da565b81526129736020830161286a565b60208201526129846040830161286a565b60408201526129956060830161286a565b6060820152608082013567ffffffffffffffff808211156129b557600080fd5b6129c18583860161287b565b608084015260a08401359150808211156129da57600080fd5b506129e78482850161287b565b60a08301525092915050565b600080600060608486031215612a0857600080fd5b833567ffffffffffffffff811115612a1f57600080fd5b612a2b86828701612940565b9660208601359650604090950135949350505050565b600080600060408486031215612a5657600080fd5b833567ffffffffffffffff811115612a6d57600080fd5b612a7986828701612398565b909790965060209590950135949350505050565b600060208284031215612a9f57600080fd5b8135610ed2816124f8565b600080600080600060808688031215612ac257600080fd5b612acb866126c2565b94506020860135612adb816124f8565b935060408601359250606086013567ffffffffffffffff811115612afe57600080fd5b612b0a88828901612398565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612b7e57600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112612b7e57600080fd5b600060208284031215612bce57600080fd5b610d6d8261286a565b600060208284031215612be957600080fd5b610d6d826123da565b60006107a13683612940565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c3357600080fd5b830160208101925035905067ffffffffffffffff811115612c5357600080fd5b8060051b360382131561199857600080fd5b8183526000602080850194508260005b85811015612596578135612c88816124f8565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612c75565b60208082528181018390526000906040808401600586901b8501820187855b88811015612e3f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c3603018112612d3157600080fd5b8b0163ffffffff612d4182612454565b168552878101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41823603018112612d7857600080fd5b8589018890520167ffffffffffffffff612d91826123da565b1687860152612da188820161286a565b606060ff80831682890152612db78a850161286a565b92506080818416818a0152612dcd83860161286a565b935060a09250818416838a0152612de681860186612bfe565b60c08b81015294509150612e01905061010089018483612c65565b925050612e1081840184612bfe565b93509050838783030160e0880152612e29828483612c65565b978a019796505050928701925050600101612ccf565b509098975050505050505050565b6020808252818101839052600090604080840186845b87811015612eb35763ffffffff612e7983612454565b16835284820135612e89816124f8565b73ffffffffffffffffffffffffffffffffffffffff16838601529183019190830190600101612e63565b5090979650505050505050565b8183823760009101908152919050565b600060208284031215612ee257600080fd5b813567ffffffffffffffff811115612ef957600080fd5b610ed484828501612940565b73ffffffffffffffffffffffffffffffffffffffff8616815260806020820152836080820152838560a0830137600060a08583010152600060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905067ffffffffffffffff841660408301528260608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff82811682821603908111156107a1576107a1612f8a565b600060ff83168061300c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061302e5761302e612f8a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b6000808585111561306657600080fd5b8386111561307357600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156130c05780818660040360031b1b83161692505b505092915050565b803560208310156107a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156130c05760089490940360031b84901b1690921692915050565b6000835161315c818460208801612713565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b61ffff8716815260c0602082015260006131b160c0830188612737565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a08401526131f58185612737565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061260a60608301846125a1565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156130c05760019490940360031b84901b169092169291505056fea2646970667358221220da1239d4ad10b7e9dd1d6b1a3f8c2b3e73f9ad36ba2a18f553a8a9d0044b8f5a64736f6c63430008160033",
1032
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016c5760003560e01c80636d26e5d0116100cd578063c40ff83511610081578063e65106f811610066578063e65106f8146103d5578063f2fde38b146103e8578063f8e1734c146103fb57600080fd5b8063c40ff8351461039f578063e084d952146103b257600080fd5b80638da5cb5b116100b25780638da5cb5b1461032d5780639653a7041461034b57806398678a111461035e57600080fd5b80636d26e5d014610312578063715018a61461032557600080fd5b806339e928a81161012457806343ea4fa91161010957806343ea4fa9146102bf57806352d2871f146102d257806354fd4d50146102f257600080fd5b806339e928a8146102475780633c782a521461025a57600080fd5b806329460b0b1161015557806329460b0b146101b95780632fed39ae146101cc57806339e3f9381461022757600080fd5b80630223536e146101715780630f8355c014610186575b600080fd5b61018461017f3660046123f7565b61040e565b005b6101a6610194366004612468565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6101846101c7366004612483565b610420565b6102026101da366004612468565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b61023a61023536600461251a565b610605565b6040516101b09190612613565b610184610255366004612626565b6107a7565b61029f610268366004612689565b600260209081526000938452604080852082529284528284209052825290205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff9091166020830152016101b0565b61023a6102cd36600461251a565b610902565b6102e56102e03660046126d4565b610cbc565b6040516101b09190612781565b6040805160038152600060208201526001918101919091526060016101b0565b610184610320366004612794565b610d74565b610184610e4d565b60005473ffffffffffffffffffffffffffffffffffffffff16610202565b61020261035936600461251a565b610e61565b61020261036c36600461251a565b600460209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6101846103ad3660046127be565b610edc565b6103c56103c03660046129f3565b610eec565b60405190151581526020016101b0565b6101846103e3366004612a41565b610ef9565b6101846103f6366004612a8d565b611005565b610184610409366004612aaa565b6110bc565b61041a848484846111bd565b50505050565b6104286112d1565b60005b818110156105c7573683838381811061044657610446612b1b565b90506020028101906104589190612b4a565b905060ff6104696020830183612b88565b61047a906040810190602001612bbc565b60ff16036104b4576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff6104c36020830183612b88565b6104d4906060810190604001612bbc565b60ff160361050e576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff6105246020830183612b88565b610532906020810190612bd7565b67ffffffffffffffff1603610573576040517f503667ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105916105836020830183612b88565b61058c90612bf2565b611352565b6105be60006105a36020840184612468565b6105b06020850185612b88565b6105b990612bf2565b6113a3565b5060010161042b565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b56082826040516105f9929190612cb0565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a0100000000000000000000909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561072657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116106fb575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561079557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161076a575b50505050508152505090505b92915050565b6107af6112d1565b60005b818110156108d057368383838181106107cd576107cd612b1b565b9050604002019050600073ffffffffffffffffffffffffffffffffffffffff168160200160208101906108009190612a8d565b73ffffffffffffffffffffffffffffffffffffffff160361084d576040517f20e9d05a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d6040820160208301612a8d565b6005600061086e6020850185612468565b63ffffffff168152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055506001016107b2565b507f2a2676897ce6724d11fb8016f9bcdfe9fe564bc3524411d5df7914aac78aeeb382826040516105f9929190612e4d565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff16806109b257825467ffffffffffffffff1684526109d1565b67ffffffffffffffff818116146109d15767ffffffffffffffff811684525b815468010000000000000000900460ff16610a8757825468010000000000000000900460ff1615610a825782600101805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610a36575b50505050506080850152825468010000000000000000900460ff1660208501525b610b25565b815468010000000000000000900460ff90811614610b255781600101805480602002602001604051908101604052809291908181526020018280548015610b0457602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610ad9575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff16610bf45782546901000000000000000000900460ff1615610bef5782600201805480602002602001604051908101604052809291908181526020018280548015610bb757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610b8c575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610caa565b81546901000000000000000000900460ff90811614610caa5781600201805480602002602001604051908101604052809291908181526020018280548015610c7257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c47575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610cb384611352565b50505092915050565b606060018203610d0d57610cd4838561ffff16610e61565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152015b6040516020818303038152906040529050610d6d565b60028203610d3357610d23838561ffff16610902565b604051602001610cf79190612613565b6040517f0c509b5b000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b9392505050565b610d7c6112d1565b6020811115610db7576040517f6f85e1b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff821660009081526003602052604090205415610e02576040517fe4df7bef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff8216600081815260036020908152604091829020849055815192835282018390527ee9ab3709e58edd0db46318d63673d8ae4681fa3e51d9f9dc07cde5109ff74891016105f9565b610e556112d1565b610e5f6000611737565b565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff8616845290915281205490911680610ed25763ffffffff831660009081526005602052604090205473ffffffffffffffffffffffffffffffffffffffff16610ed4565b805b949350505050565b610ee78383836117ac565b505050565b6000610ed484848461187a565b366000610f068585611983565b91509150610f3582827f00000000000000000000000000000000000000000000000000000000000000006117ac565b6000610f41868661199f565b90506000610f5d610f5288886119b1565b63ffffffff166119d4565b90506000610f6f838361ffff16610902565b9050610f9c818686604051610f85929190612ec0565b6040518091039020610f978b8b611a6c565b611a96565b610ffb82610faa8a8a611c45565b85610fb58c8c611c5e565b610fbf8d8d611c81565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508e9250611c91915050565b5050505050505050565b61100d6112d1565b73ffffffffffffffffffffffffffffffffffffffff81166110b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d64565b6110b981611737565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461112b576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111388561ffff16611f44565b6001830361115f5761115a61ffff86168561115584860186612a8d565b611f8b565b6111b6565b600283036111815761115a61ffff86168561117c84860186612ed0565b612036565b6040517f0c509b5b00000000000000000000000000000000000000000000000000000000815260048101849052602401610d64565b5050505050565b6040805180820182526001815267ffffffffffffffff8316602082015290516002906000906111ef9088908890612ec0565b6040805191829003909120825260208083019390935290810160009081208682528352818120338083529084529082902084518154959094015167ffffffffffffffff16610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab56916112c3918790879086908890612f05565b60405180910390a150505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d64565b602081015160ff1615801561136c5750606081015160ff16155b156110b9576040517fce2c375100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff90811614806113be5750602081015160ff16155b156114055760808101515115611400576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611484565b806020015160ff1681608001515114158061144057506002611429600160ff612fb9565b6114339190612fd2565b60ff16816020015160ff16115b15611477576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611484816080015161207f565b604081015160ff908116148061149f5750604081015160ff16155b156115255760a081015151156114e1576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615611520576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fc565b806040015160ff168160a001515114158061156057506002611549600160ff612fb9565b6115539190612fd2565b60ff16816040015160ff16115b15611597576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615806115b85750806040015160ff16816060015160ff16115b156115ef576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fc8160a0015161207f565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a010000000000000000000095909116949094029390931783556080840151805185949361171393908501920190612302565b5060a0820151805161172f916002840191602090910190612302565b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b605182146117e6576040517fc9bf37b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016117f28484612119565b60ff161461182c576040517f3a9ae7b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8063ffffffff1661183d848461213b565b63ffffffff1614610ee7576040517f42d2c97e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602083015160009060ff16156118fd5760005b846020015160ff168160ff1610156118e5576118cf85608001518260ff16815181106118bb576118bb612b1b565b60200260200101518585886000015161214b565b6118dd576000915050610d6d565b60010161188d565b50836040015160ff166000036118fd57506001610d6d565b606084015160005b856040015160ff168160ff161015611977576119478660a001518260ff168151811061193357611933612b1b565b60200260200101518686896000015161214b565b1561196f57816119568161301b565b9250508160ff1660000361196f57600192505050610d6d565b600101611905565b50600095945050505050565b3660006119936051828587613056565b915091505b9250929050565b6000610d6d6119ae84846121da565b90565b60006119c1600d60098486613056565b6119ca91613080565b60e01c9392505050565b600061ffff821115611a68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610d64565b5090565b6000611a7883836121ea565b604051611a86929190612ec0565b6040518091039020905092915050565b611aa183838361187a565b611ad7576040517f4c3118d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602083015160ff1615611b8f5760005b836020015160ff168160ff161015611b8d57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110611b2f57611b2f612b1b565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611ae7565b505b604083015160ff1615610ee75760005b836040015160ff168160ff16101561041a576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110611be757611be7612b1b565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611b9f565b6000611c55602d600d8486613056565b610d6d916130c8565b6000611c6e600960018486613056565b611c7791613104565b60c01c9392505050565b3660006119938360718187613056565b611c9f848761ffff16610e61565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d03576040517fb7386d3200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163b600003611da0578373ffffffffffffffffffffffffffffffffffffffff168661ffff167feca5e9e3d49c3ee9d9362efa82baa91c668a7f032b3a403638ae65e27368013687868680519060200120604051611d939392919092835267ffffffffffffffff919091166020830152604082015260600190565b60405180910390a361172f565b61ffff8616600090815260036020526040812054611dbf9087906121fa565b85604051602001611dd192919061314a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527fc2fa4813000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c2fa481390611e7b908a9085908a908a9089908b90600401613194565b600060405180830381600087803b158015611e9557600080fd5b505af1158015611ea9573d6000803e3d6000fd5b5050604080516060808201835261ffff8c1680835260208084018d815267ffffffffffffffff8c8116868801908152875194855291519284019290925251169381019390935273ffffffffffffffffffffffffffffffffffffffff8a169083015292507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca04915060800160405180910390a15050505050505050565b611f4d8161229b565b6110b9576040517ff0c10d0400000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610d64565b73ffffffffffffffffffffffffffffffffffffffff828116600081815260046020908152604080832063ffffffff89168085529083529281902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695871695861790558051938452908301919091528101919091527f2bef5fe6b6383925f8e9893d464521c5fcd4f9d4dc14d32d900849c5ae0af710906060015b60405180910390a1505050565b6120418284836113a3565b61204b8284610902565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f508182848360405161202993929190613202565b6000805b8251811015610ee75760008382815181106120a0576120a0612b1b565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161161210f576040517f447516e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150600101612083565b60006121286001828486613056565b6121319161323d565b60f81c9392505050565b60006119c16031602d8486613056565b6000838152600260209081526040808320858452825280832073ffffffffffffffffffffffffffffffffffffffff88168452825280832081518083019092525460ff811615801580845261010090920467ffffffffffffffff169383019390935290916121d057508267ffffffffffffffff16816020015167ffffffffffffffff1610155b9695505050505050565b6000611c55605160318486613056565b3660006119938360518187613056565b60608115806122095750602082115b15612240576040517f18456c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8167ffffffffffffffff81111561225957612259612812565b6040519080825280601f01601f191660200182016040528015612283576020820181803683370190505b506008909202610100039290921b6020820152919050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff16151580610d6d5750546a0100000000000000000000900460ff16151592915050565b82805482825590600052602060002090810192821561237c579160200282015b8281111561237c57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190612322565b50611a689291505b80821115611a685760008155600101612384565b60008083601f8401126123aa57600080fd5b50813567ffffffffffffffff8111156123c257600080fd5b60208301915083602082850101111561199857600080fd5b803567ffffffffffffffff811681146123f257600080fd5b919050565b6000806000806060858703121561240d57600080fd5b843567ffffffffffffffff81111561242457600080fd5b61243087828801612398565b90955093505060208501359150612449604086016123da565b905092959194509250565b803563ffffffff811681146123f257600080fd5b60006020828403121561247a57600080fd5b610d6d82612454565b6000806020838503121561249657600080fd5b823567ffffffffffffffff808211156124ae57600080fd5b818501915085601f8301126124c257600080fd5b8135818111156124d157600080fd5b8660208260051b85010111156124e657600080fd5b60209290920196919550909350505050565b73ffffffffffffffffffffffffffffffffffffffff811681146110b957600080fd5b6000806040838503121561252d57600080fd5b8235612538816124f8565b915061254660208401612454565b90509250929050565b60008151808452602080850194506020840160005b8381101561259657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612564565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c060808501526125f160c085018261254f565b905060a083015184820360a086015261260a828261254f565b95945050505050565b602081526000610d6d60208301846125a1565b6000806020838503121561263957600080fd5b823567ffffffffffffffff8082111561265157600080fd5b818501915085601f83011261266557600080fd5b81358181111561267457600080fd5b8660208260061b85010111156124e657600080fd5b60008060006060848603121561269e57600080fd5b833592506020840135915060408401356126b7816124f8565b809150509250925092565b803561ffff811681146123f257600080fd5b6000806000606084860312156126e957600080fd5b6126f2846126c2565b92506020840135612702816124f8565b929592945050506040919091013590565b60005b8381101561272e578181015183820152602001612716565b50506000910152565b6000815180845261274f816020860160208601612713565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610d6d6020830184612737565b600080604083850312156127a757600080fd5b6127b0836126c2565b946020939093013593505050565b6000806000604084860312156127d357600080fd5b833567ffffffffffffffff8111156127ea57600080fd5b6127f686828701612398565b9094509250612809905060208501612454565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff8111828210171561286457612864612812565b60405290565b803560ff811681146123f257600080fd5b600082601f83011261288c57600080fd5b8135602067ffffffffffffffff808311156128a9576128a9612812565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156128ec576128ec612812565b604052938452602081870181019490810192508785111561290c57600080fd5b6020870191505b84821015612935578135612926816124f8565b83529183019190830190612913565b979650505050505050565b600060c0828403121561295257600080fd5b61295a612841565b9050612965826123da565b81526129736020830161286a565b60208201526129846040830161286a565b60408201526129956060830161286a565b6060820152608082013567ffffffffffffffff808211156129b557600080fd5b6129c18583860161287b565b608084015260a08401359150808211156129da57600080fd5b506129e78482850161287b565b60a08301525092915050565b600080600060608486031215612a0857600080fd5b833567ffffffffffffffff811115612a1f57600080fd5b612a2b86828701612940565b9660208601359650604090950135949350505050565b600080600060408486031215612a5657600080fd5b833567ffffffffffffffff811115612a6d57600080fd5b612a7986828701612398565b909790965060209590950135949350505050565b600060208284031215612a9f57600080fd5b8135610ed2816124f8565b600080600080600060808688031215612ac257600080fd5b612acb866126c2565b94506020860135612adb816124f8565b935060408601359250606086013567ffffffffffffffff811115612afe57600080fd5b612b0a88828901612398565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612b7e57600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112612b7e57600080fd5b600060208284031215612bce57600080fd5b610d6d8261286a565b600060208284031215612be957600080fd5b610d6d826123da565b60006107a13683612940565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c3357600080fd5b830160208101925035905067ffffffffffffffff811115612c5357600080fd5b8060051b360382131561199857600080fd5b8183526000602080850194508260005b85811015612596578135612c88816124f8565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612c75565b60208082528181018390526000906040808401600586901b8501820187855b88811015612e3f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c3603018112612d3157600080fd5b8b0163ffffffff612d4182612454565b168552878101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41823603018112612d7857600080fd5b8589018890520167ffffffffffffffff612d91826123da565b1687860152612da188820161286a565b606060ff80831682890152612db78a850161286a565b92506080818416818a0152612dcd83860161286a565b935060a09250818416838a0152612de681860186612bfe565b60c08b81015294509150612e01905061010089018483612c65565b925050612e1081840184612bfe565b93509050838783030160e0880152612e29828483612c65565b978a019796505050928701925050600101612ccf565b509098975050505050505050565b6020808252818101839052600090604080840186845b87811015612eb35763ffffffff612e7983612454565b16835284820135612e89816124f8565b73ffffffffffffffffffffffffffffffffffffffff16838601529183019190830190600101612e63565b5090979650505050505050565b8183823760009101908152919050565b600060208284031215612ee257600080fd5b813567ffffffffffffffff811115612ef957600080fd5b610ed484828501612940565b73ffffffffffffffffffffffffffffffffffffffff8616815260806020820152836080820152838560a0830137600060a08583010152600060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905067ffffffffffffffff841660408301528260608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff82811682821603908111156107a1576107a1612f8a565b600060ff83168061300c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061302e5761302e612f8a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b6000808585111561306657600080fd5b8386111561307357600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156130c05780818660040360031b1b83161692505b505092915050565b803560208310156107a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156130c05760089490940360031b84901b1690921692915050565b6000835161315c818460208801612713565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b61ffff8716815260c0602082015260006131b160c0830188612737565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a08401526131f58185612737565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061260a60608301846125a1565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156130c05760019490940360031b84901b169092169291505056fea2646970667358221220da1239d4ad10b7e9dd1d6b1a3f8c2b3e73f9ad36ba2a18f553a8a9d0044b8f5a64736f6c63430008160033",
1033
+ "devdoc": {
1034
+ "details": "ULN301 will be deployed on EndpointV1 and is for backward compatibility with ULN302 on EndpointV2. 301 can talk to both 301 and 302This is a gluing contract. It simply parses the requests and forward to the super.impl() accordingly.In this case, it combines the logic of ReceiveUlnBase and ReceiveLibBaseE1",
1035
+ "kind": "dev",
1036
+ "methods": {
1037
+ "commitVerification(bytes,uint256)": {
1038
+ "details": "in 301, this is equivalent to execution as in Endpoint V2dont need to check endpoint verifiable here to save gas, as it will reverts if not verifiable."
1039
+ },
1040
+ "getAppUlnConfig(address,uint32)": {
1041
+ "details": "Get the uln config without the default config for the given remoteEid."
1042
+ },
1043
+ "owner()": {
1044
+ "details": "Returns the address of the current owner."
1045
+ },
1046
+ "renounceOwnership()": {
1047
+ "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."
1048
+ },
1049
+ "setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])": {
1050
+ "details": "about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"
1051
+ },
1052
+ "transferOwnership(address)": {
1053
+ "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
1054
+ }
1055
+ },
1056
+ "version": 1
1057
+ },
1058
+ "userdoc": {
1059
+ "kind": "user",
1060
+ "methods": {},
1061
+ "version": 1
1062
+ },
1063
+ "storageLayout": {
1064
+ "storage": [
1065
+ {
1066
+ "astId": 7783,
1067
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1068
+ "label": "_owner",
1069
+ "offset": 0,
1070
+ "slot": "0",
1071
+ "type": "t_address"
1072
+ },
1073
+ {
1074
+ "astId": 17997,
1075
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1076
+ "label": "ulnConfigs",
1077
+ "offset": 0,
1078
+ "slot": "1",
1079
+ "type": "t_mapping(t_address,t_mapping(t_uint32,t_struct(UlnConfig)17946_storage))"
1080
+ },
1081
+ {
1082
+ "astId": 17071,
1083
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1084
+ "label": "hashLookup",
1085
+ "offset": 0,
1086
+ "slot": "2",
1087
+ "type": "t_mapping(t_bytes32,t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)17056_storage)))"
1088
+ },
1089
+ {
1090
+ "astId": 24022,
1091
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1092
+ "label": "addressSizes",
1093
+ "offset": 0,
1094
+ "slot": "3",
1095
+ "type": "t_mapping(t_uint32,t_uint256)"
1096
+ },
1097
+ {
1098
+ "astId": 24126,
1099
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1100
+ "label": "executors",
1101
+ "offset": 0,
1102
+ "slot": "4",
1103
+ "type": "t_mapping(t_address,t_mapping(t_uint32,t_address))"
1104
+ },
1105
+ {
1106
+ "astId": 24130,
1107
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1108
+ "label": "defaultExecutors",
1109
+ "offset": 0,
1110
+ "slot": "5",
1111
+ "type": "t_mapping(t_uint32,t_address)"
1112
+ }
1113
+ ],
1114
+ "types": {
1115
+ "t_address": {
1116
+ "encoding": "inplace",
1117
+ "label": "address",
1118
+ "numberOfBytes": "20"
1119
+ },
1120
+ "t_array(t_address)dyn_storage": {
1121
+ "base": "t_address",
1122
+ "encoding": "dynamic_array",
1123
+ "label": "address[]",
1124
+ "numberOfBytes": "32"
1125
+ },
1126
+ "t_bool": {
1127
+ "encoding": "inplace",
1128
+ "label": "bool",
1129
+ "numberOfBytes": "1"
1130
+ },
1131
+ "t_bytes32": {
1132
+ "encoding": "inplace",
1133
+ "label": "bytes32",
1134
+ "numberOfBytes": "32"
1135
+ },
1136
+ "t_mapping(t_address,t_mapping(t_uint32,t_address))": {
1137
+ "encoding": "mapping",
1138
+ "key": "t_address",
1139
+ "label": "mapping(address => mapping(uint32 => address))",
1140
+ "numberOfBytes": "32",
1141
+ "value": "t_mapping(t_uint32,t_address)"
1142
+ },
1143
+ "t_mapping(t_address,t_mapping(t_uint32,t_struct(UlnConfig)17946_storage))": {
1144
+ "encoding": "mapping",
1145
+ "key": "t_address",
1146
+ "label": "mapping(address => mapping(uint32 => struct UlnConfig))",
1147
+ "numberOfBytes": "32",
1148
+ "value": "t_mapping(t_uint32,t_struct(UlnConfig)17946_storage)"
1149
+ },
1150
+ "t_mapping(t_address,t_struct(Verification)17056_storage)": {
1151
+ "encoding": "mapping",
1152
+ "key": "t_address",
1153
+ "label": "mapping(address => struct Verification)",
1154
+ "numberOfBytes": "32",
1155
+ "value": "t_struct(Verification)17056_storage"
1156
+ },
1157
+ "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)17056_storage))": {
1158
+ "encoding": "mapping",
1159
+ "key": "t_bytes32",
1160
+ "label": "mapping(bytes32 => mapping(address => struct Verification))",
1161
+ "numberOfBytes": "32",
1162
+ "value": "t_mapping(t_address,t_struct(Verification)17056_storage)"
1163
+ },
1164
+ "t_mapping(t_bytes32,t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)17056_storage)))": {
1165
+ "encoding": "mapping",
1166
+ "key": "t_bytes32",
1167
+ "label": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Verification)))",
1168
+ "numberOfBytes": "32",
1169
+ "value": "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)17056_storage))"
1170
+ },
1171
+ "t_mapping(t_uint32,t_address)": {
1172
+ "encoding": "mapping",
1173
+ "key": "t_uint32",
1174
+ "label": "mapping(uint32 => address)",
1175
+ "numberOfBytes": "32",
1176
+ "value": "t_address"
1177
+ },
1178
+ "t_mapping(t_uint32,t_struct(UlnConfig)17946_storage)": {
1179
+ "encoding": "mapping",
1180
+ "key": "t_uint32",
1181
+ "label": "mapping(uint32 => struct UlnConfig)",
1182
+ "numberOfBytes": "32",
1183
+ "value": "t_struct(UlnConfig)17946_storage"
1184
+ },
1185
+ "t_mapping(t_uint32,t_uint256)": {
1186
+ "encoding": "mapping",
1187
+ "key": "t_uint32",
1188
+ "label": "mapping(uint32 => uint256)",
1189
+ "numberOfBytes": "32",
1190
+ "value": "t_uint256"
1191
+ },
1192
+ "t_struct(UlnConfig)17946_storage": {
1193
+ "encoding": "inplace",
1194
+ "label": "struct UlnConfig",
1195
+ "members": [
1196
+ {
1197
+ "astId": 17933,
1198
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1199
+ "label": "confirmations",
1200
+ "offset": 0,
1201
+ "slot": "0",
1202
+ "type": "t_uint64"
1203
+ },
1204
+ {
1205
+ "astId": 17935,
1206
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1207
+ "label": "requiredDVNCount",
1208
+ "offset": 8,
1209
+ "slot": "0",
1210
+ "type": "t_uint8"
1211
+ },
1212
+ {
1213
+ "astId": 17937,
1214
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1215
+ "label": "optionalDVNCount",
1216
+ "offset": 9,
1217
+ "slot": "0",
1218
+ "type": "t_uint8"
1219
+ },
1220
+ {
1221
+ "astId": 17939,
1222
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1223
+ "label": "optionalDVNThreshold",
1224
+ "offset": 10,
1225
+ "slot": "0",
1226
+ "type": "t_uint8"
1227
+ },
1228
+ {
1229
+ "astId": 17942,
1230
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1231
+ "label": "requiredDVNs",
1232
+ "offset": 0,
1233
+ "slot": "1",
1234
+ "type": "t_array(t_address)dyn_storage"
1235
+ },
1236
+ {
1237
+ "astId": 17945,
1238
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1239
+ "label": "optionalDVNs",
1240
+ "offset": 0,
1241
+ "slot": "2",
1242
+ "type": "t_array(t_address)dyn_storage"
1243
+ }
1244
+ ],
1245
+ "numberOfBytes": "96"
1246
+ },
1247
+ "t_struct(Verification)17056_storage": {
1248
+ "encoding": "inplace",
1249
+ "label": "struct Verification",
1250
+ "members": [
1251
+ {
1252
+ "astId": 17053,
1253
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1254
+ "label": "submitted",
1255
+ "offset": 0,
1256
+ "slot": "0",
1257
+ "type": "t_bool"
1258
+ },
1259
+ {
1260
+ "astId": 17055,
1261
+ "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1262
+ "label": "confirmations",
1263
+ "offset": 1,
1264
+ "slot": "0",
1265
+ "type": "t_uint64"
1266
+ }
1267
+ ],
1268
+ "numberOfBytes": "32"
1269
+ },
1270
+ "t_uint256": {
1271
+ "encoding": "inplace",
1272
+ "label": "uint256",
1273
+ "numberOfBytes": "32"
1274
+ },
1275
+ "t_uint32": {
1276
+ "encoding": "inplace",
1277
+ "label": "uint32",
1278
+ "numberOfBytes": "4"
1279
+ },
1280
+ "t_uint64": {
1281
+ "encoding": "inplace",
1282
+ "label": "uint64",
1283
+ "numberOfBytes": "8"
1284
+ },
1285
+ "t_uint8": {
1286
+ "encoding": "inplace",
1287
+ "label": "uint8",
1288
+ "numberOfBytes": "1"
1289
+ }
1290
+ }
1291
+ }
1292
+ }