@gainsnetwork/sdk 1.6.0 → 1.6.2-rc1

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 (35) hide show
  1. package/lib/constants.d.ts +8 -0
  2. package/lib/constants.js +14 -8
  3. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  4. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  5. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  6. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  7. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  8. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  9. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  10. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  11. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  12. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  13. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  14. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  15. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  16. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  17. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  18. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  19. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
  20. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
  21. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  22. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  23. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  24. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  25. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  26. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  27. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  28. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  29. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  30. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  31. package/lib/contracts/utils/pairs.js +4 -0
  32. package/lib/trade/fees/borrowingV2/fetcher.d.ts +0 -1
  33. package/lib/trade/types.d.ts +5 -1
  34. package/lib/trade/types.js +4 -0
  35. package/package.json +1 -1
@@ -0,0 +1,1071 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GNSTrading__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "address",
15
+ name: "user",
16
+ type: "address",
17
+ },
18
+ {
19
+ indexed: false,
20
+ internalType: "bool",
21
+ name: "bypass",
22
+ type: "bool",
23
+ },
24
+ ],
25
+ name: "BypassTriggerLinkUpdated",
26
+ type: "event",
27
+ },
28
+ {
29
+ anonymous: false,
30
+ inputs: [
31
+ {
32
+ indexed: true,
33
+ internalType: "uint256",
34
+ name: "orderId",
35
+ type: "uint256",
36
+ },
37
+ {
38
+ components: [
39
+ {
40
+ components: [
41
+ {
42
+ internalType: "address",
43
+ name: "trader",
44
+ type: "address",
45
+ },
46
+ {
47
+ internalType: "uint256",
48
+ name: "pairIndex",
49
+ type: "uint256",
50
+ },
51
+ {
52
+ internalType: "uint256",
53
+ name: "index",
54
+ type: "uint256",
55
+ },
56
+ {
57
+ internalType: "uint256",
58
+ name: "initialPosToken",
59
+ type: "uint256",
60
+ },
61
+ {
62
+ internalType: "uint256",
63
+ name: "positionSizeDai",
64
+ type: "uint256",
65
+ },
66
+ {
67
+ internalType: "uint256",
68
+ name: "openPrice",
69
+ type: "uint256",
70
+ },
71
+ {
72
+ internalType: "bool",
73
+ name: "buy",
74
+ type: "bool",
75
+ },
76
+ {
77
+ internalType: "uint256",
78
+ name: "leverage",
79
+ type: "uint256",
80
+ },
81
+ {
82
+ internalType: "uint256",
83
+ name: "tp",
84
+ type: "uint256",
85
+ },
86
+ {
87
+ internalType: "uint256",
88
+ name: "sl",
89
+ type: "uint256",
90
+ },
91
+ ],
92
+ internalType: "struct IGNSTradingStorage.Trade",
93
+ name: "trade",
94
+ type: "tuple",
95
+ },
96
+ {
97
+ internalType: "uint256",
98
+ name: "block",
99
+ type: "uint256",
100
+ },
101
+ {
102
+ internalType: "uint256",
103
+ name: "wantedPrice",
104
+ type: "uint256",
105
+ },
106
+ {
107
+ internalType: "uint256",
108
+ name: "slippageP",
109
+ type: "uint256",
110
+ },
111
+ {
112
+ internalType: "uint256",
113
+ name: "spreadReductionP",
114
+ type: "uint256",
115
+ },
116
+ {
117
+ internalType: "uint256",
118
+ name: "tokenId",
119
+ type: "uint256",
120
+ },
121
+ ],
122
+ indexed: false,
123
+ internalType: "struct IGNSTradingStorage.PendingMarketOrder",
124
+ name: "order",
125
+ type: "tuple",
126
+ },
127
+ ],
128
+ name: "ChainlinkCallbackTimeout",
129
+ type: "event",
130
+ },
131
+ {
132
+ anonymous: false,
133
+ inputs: [
134
+ {
135
+ indexed: true,
136
+ internalType: "address",
137
+ name: "trader",
138
+ type: "address",
139
+ },
140
+ {
141
+ indexed: true,
142
+ internalType: "uint256",
143
+ name: "pairIndex",
144
+ type: "uint256",
145
+ },
146
+ {
147
+ indexed: false,
148
+ internalType: "uint256",
149
+ name: "index",
150
+ type: "uint256",
151
+ },
152
+ ],
153
+ name: "CouldNotCloseTrade",
154
+ type: "event",
155
+ },
156
+ {
157
+ anonymous: false,
158
+ inputs: [
159
+ {
160
+ indexed: false,
161
+ internalType: "bool",
162
+ name: "done",
163
+ type: "bool",
164
+ },
165
+ ],
166
+ name: "Done",
167
+ type: "event",
168
+ },
169
+ {
170
+ anonymous: false,
171
+ inputs: [
172
+ {
173
+ indexed: false,
174
+ internalType: "uint8",
175
+ name: "version",
176
+ type: "uint8",
177
+ },
178
+ ],
179
+ name: "Initialized",
180
+ type: "event",
181
+ },
182
+ {
183
+ anonymous: false,
184
+ inputs: [
185
+ {
186
+ indexed: true,
187
+ internalType: "uint256",
188
+ name: "orderId",
189
+ type: "uint256",
190
+ },
191
+ {
192
+ indexed: true,
193
+ internalType: "address",
194
+ name: "trader",
195
+ type: "address",
196
+ },
197
+ {
198
+ indexed: true,
199
+ internalType: "uint256",
200
+ name: "pairIndex",
201
+ type: "uint256",
202
+ },
203
+ {
204
+ indexed: false,
205
+ internalType: "bool",
206
+ name: "open",
207
+ type: "bool",
208
+ },
209
+ ],
210
+ name: "MarketOrderInitiated",
211
+ type: "event",
212
+ },
213
+ {
214
+ anonymous: false,
215
+ inputs: [
216
+ {
217
+ indexed: false,
218
+ internalType: "uint256",
219
+ name: "orderId",
220
+ type: "uint256",
221
+ },
222
+ {
223
+ indexed: true,
224
+ internalType: "address",
225
+ name: "trader",
226
+ type: "address",
227
+ },
228
+ {
229
+ indexed: true,
230
+ internalType: "uint256",
231
+ name: "pairIndex",
232
+ type: "uint256",
233
+ },
234
+ {
235
+ indexed: false,
236
+ internalType: "bool",
237
+ name: "byPassesLinkCost",
238
+ type: "bool",
239
+ },
240
+ ],
241
+ name: "NftOrderInitiated",
242
+ type: "event",
243
+ },
244
+ {
245
+ anonymous: false,
246
+ inputs: [
247
+ {
248
+ indexed: false,
249
+ internalType: "string",
250
+ name: "name",
251
+ type: "string",
252
+ },
253
+ {
254
+ indexed: false,
255
+ internalType: "uint256",
256
+ name: "value",
257
+ type: "uint256",
258
+ },
259
+ ],
260
+ name: "NumberUpdated",
261
+ type: "event",
262
+ },
263
+ {
264
+ anonymous: false,
265
+ inputs: [
266
+ {
267
+ indexed: true,
268
+ internalType: "address",
269
+ name: "trader",
270
+ type: "address",
271
+ },
272
+ {
273
+ indexed: true,
274
+ internalType: "uint256",
275
+ name: "pairIndex",
276
+ type: "uint256",
277
+ },
278
+ {
279
+ indexed: false,
280
+ internalType: "uint256",
281
+ name: "index",
282
+ type: "uint256",
283
+ },
284
+ ],
285
+ name: "OpenLimitCanceled",
286
+ type: "event",
287
+ },
288
+ {
289
+ anonymous: false,
290
+ inputs: [
291
+ {
292
+ indexed: true,
293
+ internalType: "address",
294
+ name: "trader",
295
+ type: "address",
296
+ },
297
+ {
298
+ indexed: true,
299
+ internalType: "uint256",
300
+ name: "pairIndex",
301
+ type: "uint256",
302
+ },
303
+ {
304
+ indexed: false,
305
+ internalType: "uint256",
306
+ name: "index",
307
+ type: "uint256",
308
+ },
309
+ ],
310
+ name: "OpenLimitPlaced",
311
+ type: "event",
312
+ },
313
+ {
314
+ anonymous: false,
315
+ inputs: [
316
+ {
317
+ indexed: true,
318
+ internalType: "address",
319
+ name: "trader",
320
+ type: "address",
321
+ },
322
+ {
323
+ indexed: true,
324
+ internalType: "uint256",
325
+ name: "pairIndex",
326
+ type: "uint256",
327
+ },
328
+ {
329
+ indexed: false,
330
+ internalType: "uint256",
331
+ name: "index",
332
+ type: "uint256",
333
+ },
334
+ {
335
+ indexed: false,
336
+ internalType: "uint256",
337
+ name: "newPrice",
338
+ type: "uint256",
339
+ },
340
+ {
341
+ indexed: false,
342
+ internalType: "uint256",
343
+ name: "newTp",
344
+ type: "uint256",
345
+ },
346
+ {
347
+ indexed: false,
348
+ internalType: "uint256",
349
+ name: "newSl",
350
+ type: "uint256",
351
+ },
352
+ {
353
+ indexed: false,
354
+ internalType: "uint256",
355
+ name: "maxSlippageP",
356
+ type: "uint256",
357
+ },
358
+ ],
359
+ name: "OpenLimitUpdated",
360
+ type: "event",
361
+ },
362
+ {
363
+ anonymous: false,
364
+ inputs: [
365
+ {
366
+ indexed: false,
367
+ internalType: "bool",
368
+ name: "paused",
369
+ type: "bool",
370
+ },
371
+ ],
372
+ name: "Paused",
373
+ type: "event",
374
+ },
375
+ {
376
+ anonymous: false,
377
+ inputs: [
378
+ {
379
+ indexed: true,
380
+ internalType: "address",
381
+ name: "trader",
382
+ type: "address",
383
+ },
384
+ {
385
+ indexed: true,
386
+ internalType: "uint256",
387
+ name: "pairIndex",
388
+ type: "uint256",
389
+ },
390
+ {
391
+ indexed: false,
392
+ internalType: "uint256",
393
+ name: "index",
394
+ type: "uint256",
395
+ },
396
+ {
397
+ indexed: false,
398
+ internalType: "uint256",
399
+ name: "newSl",
400
+ type: "uint256",
401
+ },
402
+ ],
403
+ name: "SlUpdated",
404
+ type: "event",
405
+ },
406
+ {
407
+ anonymous: false,
408
+ inputs: [
409
+ {
410
+ indexed: true,
411
+ internalType: "address",
412
+ name: "trader",
413
+ type: "address",
414
+ },
415
+ {
416
+ indexed: true,
417
+ internalType: "uint256",
418
+ name: "pairIndex",
419
+ type: "uint256",
420
+ },
421
+ {
422
+ indexed: false,
423
+ internalType: "uint256",
424
+ name: "index",
425
+ type: "uint256",
426
+ },
427
+ {
428
+ indexed: false,
429
+ internalType: "uint256",
430
+ name: "newTp",
431
+ type: "uint256",
432
+ },
433
+ ],
434
+ name: "TpUpdated",
435
+ type: "event",
436
+ },
437
+ {
438
+ inputs: [],
439
+ name: "_msgSender",
440
+ outputs: [
441
+ {
442
+ internalType: "address",
443
+ name: "",
444
+ type: "address",
445
+ },
446
+ ],
447
+ stateMutability: "view",
448
+ type: "function",
449
+ },
450
+ {
451
+ inputs: [],
452
+ name: "borrowingFees",
453
+ outputs: [
454
+ {
455
+ internalType: "contract IGNSBorrowingFees",
456
+ name: "",
457
+ type: "address",
458
+ },
459
+ ],
460
+ stateMutability: "view",
461
+ type: "function",
462
+ },
463
+ {
464
+ inputs: [
465
+ {
466
+ internalType: "address",
467
+ name: "",
468
+ type: "address",
469
+ },
470
+ ],
471
+ name: "bypassTriggerLink",
472
+ outputs: [
473
+ {
474
+ internalType: "bool",
475
+ name: "",
476
+ type: "bool",
477
+ },
478
+ ],
479
+ stateMutability: "view",
480
+ type: "function",
481
+ },
482
+ {
483
+ inputs: [
484
+ {
485
+ internalType: "uint256",
486
+ name: "pairIndex",
487
+ type: "uint256",
488
+ },
489
+ {
490
+ internalType: "uint256",
491
+ name: "index",
492
+ type: "uint256",
493
+ },
494
+ ],
495
+ name: "cancelOpenLimitOrder",
496
+ outputs: [],
497
+ stateMutability: "nonpayable",
498
+ type: "function",
499
+ },
500
+ {
501
+ inputs: [
502
+ {
503
+ internalType: "uint256",
504
+ name: "pairIndex",
505
+ type: "uint256",
506
+ },
507
+ {
508
+ internalType: "uint256",
509
+ name: "index",
510
+ type: "uint256",
511
+ },
512
+ ],
513
+ name: "closeTradeMarket",
514
+ outputs: [],
515
+ stateMutability: "nonpayable",
516
+ type: "function",
517
+ },
518
+ {
519
+ inputs: [
520
+ {
521
+ internalType: "uint256",
522
+ name: "_order",
523
+ type: "uint256",
524
+ },
525
+ ],
526
+ name: "closeTradeMarketTimeout",
527
+ outputs: [],
528
+ stateMutability: "nonpayable",
529
+ type: "function",
530
+ },
531
+ {
532
+ inputs: [],
533
+ name: "collateralConfig",
534
+ outputs: [
535
+ {
536
+ internalType: "uint128",
537
+ name: "precision",
538
+ type: "uint128",
539
+ },
540
+ {
541
+ internalType: "uint128",
542
+ name: "precisionDelta",
543
+ type: "uint128",
544
+ },
545
+ ],
546
+ stateMutability: "view",
547
+ type: "function",
548
+ },
549
+ {
550
+ inputs: [
551
+ {
552
+ internalType: "address",
553
+ name: "trader",
554
+ type: "address",
555
+ },
556
+ {
557
+ internalType: "bytes",
558
+ name: "call_data",
559
+ type: "bytes",
560
+ },
561
+ ],
562
+ name: "delegatedAction",
563
+ outputs: [
564
+ {
565
+ internalType: "bytes",
566
+ name: "",
567
+ type: "bytes",
568
+ },
569
+ ],
570
+ stateMutability: "nonpayable",
571
+ type: "function",
572
+ },
573
+ {
574
+ inputs: [
575
+ {
576
+ internalType: "address",
577
+ name: "",
578
+ type: "address",
579
+ },
580
+ ],
581
+ name: "delegations",
582
+ outputs: [
583
+ {
584
+ internalType: "address",
585
+ name: "",
586
+ type: "address",
587
+ },
588
+ ],
589
+ stateMutability: "view",
590
+ type: "function",
591
+ },
592
+ {
593
+ inputs: [],
594
+ name: "done",
595
+ outputs: [],
596
+ stateMutability: "nonpayable",
597
+ type: "function",
598
+ },
599
+ {
600
+ inputs: [
601
+ {
602
+ internalType: "uint256",
603
+ name: "packed",
604
+ type: "uint256",
605
+ },
606
+ ],
607
+ name: "executeNftOrder",
608
+ outputs: [],
609
+ stateMutability: "nonpayable",
610
+ type: "function",
611
+ },
612
+ {
613
+ inputs: [
614
+ {
615
+ internalType: "contract IGNSTradingStorage",
616
+ name: "_storageT",
617
+ type: "address",
618
+ },
619
+ {
620
+ internalType: "contract IGNSOracleRewards",
621
+ name: "_oracleRewards",
622
+ type: "address",
623
+ },
624
+ {
625
+ internalType: "contract IGNSBorrowingFees",
626
+ name: "_borrowingFees",
627
+ type: "address",
628
+ },
629
+ {
630
+ internalType: "uint256",
631
+ name: "_maxPosDai",
632
+ type: "uint256",
633
+ },
634
+ {
635
+ internalType: "uint256",
636
+ name: "_marketOrdersTimeout",
637
+ type: "uint256",
638
+ },
639
+ ],
640
+ name: "initialize",
641
+ outputs: [],
642
+ stateMutability: "nonpayable",
643
+ type: "function",
644
+ },
645
+ {
646
+ inputs: [
647
+ {
648
+ internalType: "contract IGNSMultiCollatDiamond",
649
+ name: "_multiCollatDiamond",
650
+ type: "address",
651
+ },
652
+ ],
653
+ name: "initializeV2",
654
+ outputs: [],
655
+ stateMutability: "nonpayable",
656
+ type: "function",
657
+ },
658
+ {
659
+ inputs: [],
660
+ name: "isDone",
661
+ outputs: [
662
+ {
663
+ internalType: "bool",
664
+ name: "",
665
+ type: "bool",
666
+ },
667
+ ],
668
+ stateMutability: "view",
669
+ type: "function",
670
+ },
671
+ {
672
+ inputs: [],
673
+ name: "isPaused",
674
+ outputs: [
675
+ {
676
+ internalType: "bool",
677
+ name: "",
678
+ type: "bool",
679
+ },
680
+ ],
681
+ stateMutability: "view",
682
+ type: "function",
683
+ },
684
+ {
685
+ inputs: [],
686
+ name: "marketOrdersTimeout",
687
+ outputs: [
688
+ {
689
+ internalType: "uint256",
690
+ name: "",
691
+ type: "uint256",
692
+ },
693
+ ],
694
+ stateMutability: "view",
695
+ type: "function",
696
+ },
697
+ {
698
+ inputs: [],
699
+ name: "maxPosDai",
700
+ outputs: [
701
+ {
702
+ internalType: "uint256",
703
+ name: "",
704
+ type: "uint256",
705
+ },
706
+ ],
707
+ stateMutability: "view",
708
+ type: "function",
709
+ },
710
+ {
711
+ inputs: [],
712
+ name: "multiCollatDiamond",
713
+ outputs: [
714
+ {
715
+ internalType: "contract IGNSMultiCollatDiamond",
716
+ name: "",
717
+ type: "address",
718
+ },
719
+ ],
720
+ stateMutability: "view",
721
+ type: "function",
722
+ },
723
+ {
724
+ inputs: [
725
+ {
726
+ components: [
727
+ {
728
+ internalType: "address",
729
+ name: "trader",
730
+ type: "address",
731
+ },
732
+ {
733
+ internalType: "uint256",
734
+ name: "pairIndex",
735
+ type: "uint256",
736
+ },
737
+ {
738
+ internalType: "uint256",
739
+ name: "index",
740
+ type: "uint256",
741
+ },
742
+ {
743
+ internalType: "uint256",
744
+ name: "initialPosToken",
745
+ type: "uint256",
746
+ },
747
+ {
748
+ internalType: "uint256",
749
+ name: "positionSizeDai",
750
+ type: "uint256",
751
+ },
752
+ {
753
+ internalType: "uint256",
754
+ name: "openPrice",
755
+ type: "uint256",
756
+ },
757
+ {
758
+ internalType: "bool",
759
+ name: "buy",
760
+ type: "bool",
761
+ },
762
+ {
763
+ internalType: "uint256",
764
+ name: "leverage",
765
+ type: "uint256",
766
+ },
767
+ {
768
+ internalType: "uint256",
769
+ name: "tp",
770
+ type: "uint256",
771
+ },
772
+ {
773
+ internalType: "uint256",
774
+ name: "sl",
775
+ type: "uint256",
776
+ },
777
+ ],
778
+ internalType: "struct IGNSTradingStorage.Trade",
779
+ name: "t",
780
+ type: "tuple",
781
+ },
782
+ {
783
+ internalType: "enum IGNSOracleRewards.OpenLimitOrderType",
784
+ name: "orderType",
785
+ type: "uint8",
786
+ },
787
+ {
788
+ internalType: "uint256",
789
+ name: "slippageP",
790
+ type: "uint256",
791
+ },
792
+ {
793
+ internalType: "address",
794
+ name: "referrer",
795
+ type: "address",
796
+ },
797
+ ],
798
+ name: "openTrade",
799
+ outputs: [],
800
+ stateMutability: "nonpayable",
801
+ type: "function",
802
+ },
803
+ {
804
+ inputs: [
805
+ {
806
+ internalType: "uint256",
807
+ name: "_order",
808
+ type: "uint256",
809
+ },
810
+ ],
811
+ name: "openTradeMarketTimeout",
812
+ outputs: [],
813
+ stateMutability: "nonpayable",
814
+ type: "function",
815
+ },
816
+ {
817
+ inputs: [],
818
+ name: "oracleRewards",
819
+ outputs: [
820
+ {
821
+ internalType: "contract IGNSOracleRewards",
822
+ name: "",
823
+ type: "address",
824
+ },
825
+ ],
826
+ stateMutability: "view",
827
+ type: "function",
828
+ },
829
+ {
830
+ inputs: [],
831
+ name: "pairInfos",
832
+ outputs: [
833
+ {
834
+ internalType: "address",
835
+ name: "",
836
+ type: "address",
837
+ },
838
+ ],
839
+ stateMutability: "view",
840
+ type: "function",
841
+ },
842
+ {
843
+ inputs: [],
844
+ name: "pause",
845
+ outputs: [],
846
+ stateMutability: "nonpayable",
847
+ type: "function",
848
+ },
849
+ {
850
+ inputs: [],
851
+ name: "referrals",
852
+ outputs: [
853
+ {
854
+ internalType: "address",
855
+ name: "",
856
+ type: "address",
857
+ },
858
+ ],
859
+ stateMutability: "view",
860
+ type: "function",
861
+ },
862
+ {
863
+ inputs: [],
864
+ name: "removeDelegate",
865
+ outputs: [],
866
+ stateMutability: "nonpayable",
867
+ type: "function",
868
+ },
869
+ {
870
+ inputs: [
871
+ {
872
+ internalType: "address",
873
+ name: "user",
874
+ type: "address",
875
+ },
876
+ {
877
+ internalType: "bool",
878
+ name: "bypass",
879
+ type: "bool",
880
+ },
881
+ ],
882
+ name: "setBypassTriggerLink",
883
+ outputs: [],
884
+ stateMutability: "nonpayable",
885
+ type: "function",
886
+ },
887
+ {
888
+ inputs: [
889
+ {
890
+ internalType: "address",
891
+ name: "delegate",
892
+ type: "address",
893
+ },
894
+ ],
895
+ name: "setDelegate",
896
+ outputs: [],
897
+ stateMutability: "nonpayable",
898
+ type: "function",
899
+ },
900
+ {
901
+ inputs: [
902
+ {
903
+ internalType: "uint256",
904
+ name: "value",
905
+ type: "uint256",
906
+ },
907
+ ],
908
+ name: "setMarketOrdersTimeout",
909
+ outputs: [],
910
+ stateMutability: "nonpayable",
911
+ type: "function",
912
+ },
913
+ {
914
+ inputs: [
915
+ {
916
+ internalType: "uint256",
917
+ name: "value",
918
+ type: "uint256",
919
+ },
920
+ ],
921
+ name: "setMaxPosDai",
922
+ outputs: [],
923
+ stateMutability: "nonpayable",
924
+ type: "function",
925
+ },
926
+ {
927
+ inputs: [],
928
+ name: "storageT",
929
+ outputs: [
930
+ {
931
+ internalType: "contract IGNSTradingStorage",
932
+ name: "",
933
+ type: "address",
934
+ },
935
+ ],
936
+ stateMutability: "view",
937
+ type: "function",
938
+ },
939
+ {
940
+ inputs: [
941
+ {
942
+ internalType: "uint256",
943
+ name: "pairIndex",
944
+ type: "uint256",
945
+ },
946
+ {
947
+ internalType: "uint256",
948
+ name: "index",
949
+ type: "uint256",
950
+ },
951
+ {
952
+ internalType: "uint256",
953
+ name: "price",
954
+ type: "uint256",
955
+ },
956
+ {
957
+ internalType: "uint256",
958
+ name: "tp",
959
+ type: "uint256",
960
+ },
961
+ {
962
+ internalType: "uint256",
963
+ name: "sl",
964
+ type: "uint256",
965
+ },
966
+ {
967
+ internalType: "uint256",
968
+ name: "maxSlippageP",
969
+ type: "uint256",
970
+ },
971
+ ],
972
+ name: "updateOpenLimitOrder",
973
+ outputs: [],
974
+ stateMutability: "nonpayable",
975
+ type: "function",
976
+ },
977
+ {
978
+ inputs: [
979
+ {
980
+ internalType: "uint256",
981
+ name: "pairIndex",
982
+ type: "uint256",
983
+ },
984
+ {
985
+ internalType: "uint256",
986
+ name: "index",
987
+ type: "uint256",
988
+ },
989
+ {
990
+ internalType: "uint256",
991
+ name: "newSl",
992
+ type: "uint256",
993
+ },
994
+ ],
995
+ name: "updateSl",
996
+ outputs: [],
997
+ stateMutability: "nonpayable",
998
+ type: "function",
999
+ },
1000
+ {
1001
+ inputs: [
1002
+ {
1003
+ internalType: "uint256",
1004
+ name: "pairIndex",
1005
+ type: "uint256",
1006
+ },
1007
+ {
1008
+ internalType: "uint256",
1009
+ name: "index",
1010
+ type: "uint256",
1011
+ },
1012
+ {
1013
+ internalType: "uint256",
1014
+ name: "newTp",
1015
+ type: "uint256",
1016
+ },
1017
+ ],
1018
+ name: "updateTp",
1019
+ outputs: [],
1020
+ stateMutability: "nonpayable",
1021
+ type: "function",
1022
+ },
1023
+ ];
1024
+ const _bytecode = "0x608060405234801561001057600080fd5b5061589780620000216000396000f3fe608060405234801561001057600080fd5b50600436106101cb5760003560e01c80638f0622271161010a578063b81bfa05116100ad578063c641558e1161007c578063c641558e14610452578063ca5eb5e114610465578063d3dc753914610478578063d8defd151461048b578063fb4b71bb1461049e57600080fd5b8063b81bfa05146103f0578063b9b6573a14610403578063be73fb9914610416578063bffe34861461042957600080fd5b80638f0622271461035d578063934d1cf41461036f578063990382cf146103825780639a10cc3214610395578063a2a3c0cb146103b5578063a6b63eb8146103c8578063ae8421e1146103db578063b187bd26146103e357600080fd5b806336fb8b151161017257806336fb8b15146102a0578063410c0b7c146102c25780634278bafe146102cb578063531cc965146102de5780635c0ab4de146102f15780636c53cc1c1461032f5780638456cb5914610342578063876d3abd1461034a57600080fd5b8063119df25f146101d05780631346b0ff146101f557806316fff07414610208578063272300c91461021b578063279a165c1461022e57806329b6eca9146102455780632c7c8f4e1461025a578063358129601461028d575b600080fd5b6101d86104b1565b6040516001600160a01b0390911681526020015b60405180910390f35b6005546101d8906001600160a01b031681565b6003546101d8906001600160a01b031681565b6004546101d8906001600160a01b031681565b61023760085481565b6040519081526020016101ec565b6102586102533660046147c6565b6104d9565b005b61027d6102683660046147c6565b600b6020526000908152604090205460ff1681565b60405190151581526020016101ec565b600d546101d8906001600160a01b031681565b61025833600090815260016020526040902080546001600160a01b0319169055565b61023760095481565b6102586102d9366004614813565b61066a565b6007546101d8906001600160a01b031681565b600c5461030f906001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101ec565b61025861033d36600461484c565b61076d565b610258611288565b61025861035836600461484c565b61137d565b600a5461027d90610100900460ff1681565b61025861037d36600461484c565b6115da565b61025861039036600461484c565b611700565b6103a86103a3366004614865565b6119e0565b6040516101ec919061493a565b6102586103c336600461494d565b611b1b565b6102586103d636600461496f565b61205b565b6102586121d1565b600a5461027d9060ff1681565b6102586103fe36600461484c565b6122d0565b61025861041136600461494d565b6123f9565b6102586104243660046149ca565b612669565b6101d86104373660046147c6565b6001602052600090815260409020546001600160a01b031681565b6102586104603660046149f6565b6129a9565b6102586104733660046147c6565b612e18565b6006546101d8906001600160a01b031681565b6102586104993660046149ca565b612e84565b6102586104ac366004614aac565b61311d565b6002546000906001600160a01b03166104c957503390565b506002546001600160a01b031690565b600054600290610100900460ff161580156104fb575060005460ff8083169116105b6105205760405162461bcd60e51b815260040161051790614b80565b60405180910390fd5b6000805461ffff191660ff8316176101001790556001600160a01b03821661055a5760405162461bcd60e51b815260040161051790614bce565b600580546001600160a01b03199081169091556006805490911690556003546040805163f4b9fa7560e01b815290516105ea926001600160a01b03169163f4b9fa759160048083019260209291908290030181865afa1580156105c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190614bff565b614291565b80516020918201516001600160801b03908116600160801b02911617600c55600d80546001600160a01b0385166001600160a01b03199091161790556000805461ff001916905560405160ff831681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891015b60405180910390a15050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e19190614bff565b6001600160a01b0316336001600160a01b0316146107115760405162461bcd60e51b815260040161051790614c1c565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f3c0f648064e21cceb91d918a80bed80a58c69474a28d50fe3d9975b72be97c44910161065e565b32331461077957600080fd5b600a54610100900460ff16156107a15760405162461bcd60e51b815260040161051790614c3e565b60405163cefbb3bd60e01b81526004810182905260009081908190819073__$0a787ca790b72760fa5f2fae68e461a66f$__9063cefbb3bd9060240160c060405180830381865af41580156107fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081e9190614c5c565b50509350935093509350600084600381111561083c5761083c614cb0565b90506000600382600381111561085457610854614cb0565b1490506000600c60000160109054906101000a90046001600160801b031690506108d560405180610140016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b821561097157600354604051636e6f99cd60e11b81526001600160a01b039091169063dcdf339a9061090f908a908a908a90600401614cc6565b602060405180830381865afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190614cf2565b61096c5760405162461bcd60e51b815260040161051790614d0f565b610ce0565b6003546040516351d407ff60e11b81526001600160a01b039091169063a3a80ffe906109a5908a908a908a90600401614cc6565b61014060405180830381865afa1580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e79190614dc4565b905060008160e0015111610a0d5760405162461bcd60e51b815260040161051790614de1565b6002846003811115610a2157610a21614cb0565b03610c2c576101208101511561096c576007546040805160e08101825283516001600160a01b039081168252602080860180519184019190915285840180518486015260a080880151606086015260c0880151151560808601526003548851935192519651638c8ff1d560e01b815260009886169763706faf3a9796938701956402540be400956001600160801b038e16959490941693638c8ff1d593610acb9390600401614cc6565b60c060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0c9190614e03565b602001518860600151610b1f9190614e99565b610b299190614eb6565b610b339190614eb6565b815260e086810151602092830152604080519185901b6001600160e01b031916825283516001600160a01b031660048301529183015160248201529082015160448201526060820151606482015260808201511515608482015260a082015160a482015260c0919091015160c482015260e401602060405180830381865afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be79190614ed8565b90508160c001518015610bff57508161012001518111155b80610c1c57508160c00151158015610c1c57508161012001518110155b15610c2657600194505b50610ce0565b6001846003811115610c4057610c40614cb0565b141580610c5257506000816101200151115b610c865760405162461bcd60e51b81526020600482015260056024820152641393d7d4d360da1b6044820152606401610517565b6000846003811115610c9a57610c9a614cb0565b141580610cac57506000816101000151115b610ce05760405162461bcd60e51b815260206004820152600560248201526404e4f5f54560dc1b6044820152606401610517565b6000610cee8888888861434e565b90506000610cfa6104b1565b6001600160a01b0381166000908152600b602052604081205491925060ff909116908615610f7657600354604051632e21e28b60e21b81526000916001600160a01b03169063b8878a2c90610d57908f908f908f90600401614cc6565b6101a060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d999190614ef1565b905060008160c001518260600151610db19190614e99565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2c9190614bff565b6001600160a01b031663766599fd836040518263ffffffff1660e01b8152600401610e5991815260200190565b602060405180830381865afa158015610e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9a9190614ed8565b600d54602085015160a0860151604051633f54af9960e11b81526000600482018190526024820193909352901515604482015260648101849052929350916001600160a01b0390911690637ea95f32906084016040805180830381865afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d9190614fa4565b509050645d21dba0008460c0015182610f469190614e99565b1115610f645760405162461bcd60e51b815260040161051790614fc8565b85610f6d578294505b5050505061104a565b8161104a576402540be400866001600160801b03168660e00151600360009054906101000a90046001600160a01b03166001600160a01b0316638c8ff1d58f8f8f6040518463ffffffff1660e01b8152600401610fd593929190614cc6565b60c060405180830381865afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190614e03565b6020015188606001516110299190614e99565b6110339190614e99565b61103d9190614eb6565b6110479190614eb6565b90505b80156110b757600354604051633348540360e11b81526001600160a01b0390911690636690a806906110849086908e908690600401614cc6565b600060405180830381600087803b15801561109e57600080fd5b505af11580156110b2573d6000803e3d6000fd5b505050505b60006110d6888d8d8d8c6110cc5760006110cf565b60015b8e886144de565b905061110e6040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b6001600160a01b038086168252600060208301528d166040820152606081018c9052608081018b905260a081018a600381111561114d5761114d614cb0565b9081600381111561116057611160614cb0565b90525060035460405163205fe86960e21b81526001600160a01b039091169063817fa1a4906111959084908690600401615007565b600060405180830381600087803b1580156111af57600080fd5b505af11580156111c3573d6000803e3d6000fd5b50506004805460405163e72353d560e01b81526001600160a01b03909116935063e72353d592506111f6918a9101615067565b600060405180830381600087803b15801561121057600080fd5b505af1158015611224573d6000803e3d6000fd5b505050508b8d6001600160a01b03167f50a583b02839381dff332433f1a37825291992d796b87483d7c51649ef504d43848760405161126f9291909182521515602082015260400190565b60405180910390a3505050505050505050505050505050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190614bff565b6001600160a01b0316336001600160a01b03161461132f5760405162461bcd60e51b815260040161051790614c1c565b600a805460ff8082161560ff1990921682179092556040519116151581527f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2906020015b60405180910390a1565b32331461138957600080fd5b600a54610100900460ff16156113b15760405162461bcd60e51b815260040161051790614c3e565b60006113bb6104b1565b60035460405163b66e6b0560e01b8152600481018590529192506000916001600160a01b039091169063b66e6b05906024016101e060405180830381865afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f91906150a8565b80516020820151919250901580159061145957506009548260200151611455919061512b565b4310155b6114755760405162461bcd60e51b81526004016105179061513e565b826001600160a01b031681600001516001600160a01b0316146114aa5760405162461bcd60e51b815260040161051790615164565b60008160e00151116114ce5760405162461bcd60e51b81526004016105179061518c565b600354604051630195728b60e71b815260048101869052600160248201526001600160a01b039091169063cab9458090604401600060405180830381600087803b15801561151b57600080fd5b505af115801561152f573d6000803e3d6000fd5b5050600354608084015160405163373873db60e11b81526001600160a01b039092169350636e70e7b6925061156a91849188916004016151bd565b600060405180830381600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b50505050837f3adaa586cdbe84dd24e45bd7dada6da933d7c2d1c7b4e4cd02fce033356decb1836040516115cc919061528f565b60405180910390a250505050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116519190614bff565b6001600160a01b0316336001600160a01b0316146116815760405162461bcd60e51b815260040161051790614c1c565b600081116116a15760405162461bcd60e51b81526004016105179061529e565b600881905560408051818152600991810191909152686d6178506f7344616960b81b6060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080015b60405180910390a150565b32331461170c57600080fd5b600a54610100900460ff16156117345760405162461bcd60e51b815260040161051790614c3e565b600061173e6104b1565b60035460405163b66e6b0560e01b8152600481018590529192506000916001600160a01b039091169063b66e6b05906024016101e060405180830381865afa15801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b291906150a8565b8051602082015191925090158015906117dc575060095482602001516117d8919061512b565b4310155b6117f85760405162461bcd60e51b81526004016105179061513e565b826001600160a01b031681600001516001600160a01b03161461182d5760405162461bcd60e51b815260040161051790615164565b60e08101511561184f5760405162461bcd60e51b81526004016105179061518c565b600354604051630195728b60e71b815260048101869052600060248201526001600160a01b039091169063cab9458090604401600060405180830381600087803b15801561189c57600080fd5b505af11580156118b0573d6000803e3d6000fd5b505050602082015160408084015190516024810192909252604482015260009150309060640160408051601f198184030181529181526020820180516001600160e01b031663a2a3c0cb60e01b1790525161190b91906152bf565b600060405180830381855af49150503d8060008114611946576040519150601f19603f3d011682016040523d82523d6000602084013e61194b565b606091505b50509050806119a1578160200151846001600160a01b03167f60e497734ddabcd7293fd91739aaf65cf525eb539c97be528125a235a89288d8846040015160405161199891815260200190565b60405180910390a35b847f3adaa586cdbe84dd24e45bd7dada6da933d7c2d1c7b4e4cd02fce033356decb1846040516119d1919061528f565b60405180910390a25050505050565b6001600160a01b03838116600090815260016020526040902054606091163314611a445760405162461bcd60e51b81526020600482015260156024820152741111531151d0551157d393d517d054141493d59151605a1b6044820152606401610517565b600280546001600160a01b0319166001600160a01b03861617905560405160009081903090611a7690879087906152db565b600060405180830381855af49150503d8060008114611ab1576040519150601f19603f3d011682016040523d82523d6000602084013e611ab6565b606091505b509150915081611b0257604481511015611acf57600080fd5b60048101905080806020019051810190611ae991906152eb565b60405162461bcd60e51b8152600401610517919061493a565b600280546001600160a01b031916905595945050505050565b323314611b2757600080fd5b600a54610100900460ff1615611b4f5760405162461bcd60e51b815260040161051790614c3e565b6000611b596104b1565b6003546040516351d407ff60e11b81529192506000916001600160a01b039091169063a3a80ffe90611b9390859088908890600401614cc6565b61014060405180830381865afa158015611bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd59190614dc4565b600354604051638c8ff1d560e01b81529192506000916001600160a01b0390911690638c8ff1d590611c0f90869089908990600401614cc6565b60c060405180830381865afa158015611c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c509190614e03565b9050600360009054906101000a90046001600160a01b03166001600160a01b0316638049fde76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc99190614ed8565b60035460405163f7b3c6fd60e01b81526001600160a01b0386811660048301529091169063f7b3c6fd90602401602060405180830381865afa158015611d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d379190614ed8565b10611d545760405162461bcd60e51b815260040161051790615398565b8060a0015115611d9d5760405162461bcd60e51b81526020600482015260146024820152731053149150511657d091525391d7d0d313d4d15160621b6044820152606401610517565b60008260e0015111611dc15760405162461bcd60e51b815260040161051790614de1565b60035460408051633078fff560e01b815290516000926001600160a01b031691633078fff59160048083019260209291908290030181865afa158015611e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2f9190614bff565b6001600160a01b0316636938c05d8760016402540be400600c60000160109054906101000a90046001600160801b03166001600160801b03168860e0015188602001518a60600151611e819190614e99565b611e8b9190614e99565b611e959190614eb6565b611e9f9190614eb6565b611ea7614728565b6040518563ffffffff1660e01b8152600401611ec694939291906153c4565b6020604051808303816000875af1158015611ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f099190614ed8565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663c76faf786040518060c00160405280604051806101400160405280896001600160a01b031681526020018b81526020018a81526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525081526020016000815260200160008152602001600081526020016000815260200160008152508360006040518463ffffffff1660e01b8152600401611fd9939291906153ef565b600060405180830381600087803b158015611ff357600080fd5b505af1158015612007573d6000803e3d6000fd5b5050505085846001600160a01b0316827f3e544118c04e3bb18b669475695cd270ba0e41fb13177483f01c14222de62a86600060405161204b911515815260200190565b60405180910390a4505050505050565b600054610100900460ff161580801561207b5750600054600160ff909116105b806120955750303b158015612095575060005460ff166001145b6120b15760405162461bcd60e51b815260040161051790614b80565b6000805460ff1916600117905580156120d4576000805461ff0019166101001790555b6001600160a01b038616158015906120f457506001600160a01b03851615155b801561210857506001600160a01b03841615155b80156121145750600083115b80156121205750600082115b61213c5760405162461bcd60e51b815260040161051790614bce565b600380546001600160a01b038089166001600160a01b0319928316179092556004805488841690831617905560078054928716929091169190911790556008839055600982905580156121c9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa158015612224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122489190614bff565b6001600160a01b0316336001600160a01b0316146122785760405162461bcd60e51b815260040161051790614c1c565b600a805460ff610100808304821615810261ff001990931692909217928390556040517fc3a6f986261de9467c2838c6df8ef74f9107855159205600c0bc7a14cdfd3888936113739390049091161515815260200190565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa158015612323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123479190614bff565b6001600160a01b0316336001600160a01b0316146123775760405162461bcd60e51b815260040161051790614c1c565b600081116123975760405162461bcd60e51b81526004016105179061529e565b600981905560408051818152601391810191909152721b585c9ad95d13dc99195c9cd51a5b595bdd5d606a1b6060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016116f5565b32331461240557600080fd5b600a54610100900460ff161561242d5760405162461bcd60e51b815260040161051790614c3e565b60006124376104b1565b600354604051636e6f99cd60e11b81529192506001600160a01b03169063dcdf339a9061246c90849087908790600401614cc6565b602060405180830381865afa158015612489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ad9190614cf2565b6124c95760405162461bcd60e51b815260040161051790614d0f565b600354604051632e21e28b60e21b81526000916001600160a01b03169063b8878a2c906124fe90859088908890600401614cc6565b6101a060405180830381865afa15801561251c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125409190614ef1565b905061254f828585600361434e565b5060035460405163b4b0f56760e01b81526001600160a01b039091169063b4b0f5679061258490859088908890600401614cc6565b600060405180830381600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b5050600354606084015160405163373873db60e11b81526001600160a01b039092169350636e70e7b692506125ed91849187916004016151bd565b600060405180830381600087803b15801561260757600080fd5b505af115801561261b573d6000803e3d6000fd5b5050505083826001600160a01b03167ff1b38881d7f4b2b12141c5f39c5124545d6112532eb6afbe9630cdbde3ee53e98560405161265b91815260200190565b60405180910390a350505050565b32331461267557600080fd5b600a54610100900460ff161561269d5760405162461bcd60e51b815260040161051790614c3e565b60006126a76104b1565b90506126b6818585600161434e565b506003546040516351d407ff60e11b81526000916001600160a01b03169063a3a80ffe906126ec90859089908990600401614cc6565b61014060405180830381865afa15801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190614dc4565b905060008160e00151116127545760405162461bcd60e51b815260040161051790614de1565b60008160e001516064604b8460a0015161276e9190614e99565b6127789190614eb6565b6127829190614eb6565b90508315806127c157508160c001516127ad57808260a001516127a5919061512b565b8411156127c1565b808260a001516127bd9190615416565b8410155b6127fa5760405162461bcd60e51b815260206004820152600a602482015269534c5f544f4f5f42494760b01b6044820152606401610517565b60035460405163a354418160e01b81526001600160a01b039091169063a3544181906128309086908a908a908a90600401615429565b600060405180830381600087803b15801561284a57600080fd5b505af115801561285e573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d89190614bff565b6001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__63d834f7269091858989600061290a614728565b6040518763ffffffff1660e01b815260040161292b96959493929190615463565b60006040518083038186803b15801561294357600080fd5b505af4158015612957573d6000803e3d6000fd5b505060408051888152602081018890528993506001600160a01b03871692507f1fc4a6c7ffe506697979b8ed54dc4135cd1ecd26a2745f70b760a2492222b316910160405180910390a3505050505050565b3233146129b557600080fd5b600a54610100900460ff16156129dd5760405162461bcd60e51b815260040161051790614c3e565b600084116129fd5760405162461bcd60e51b8152600401610517906154a7565b6000612a076104b1565b600354604051636e6f99cd60e11b81529192506001600160a01b03169063dcdf339a90612a3c9084908b908b90600401614cc6565b602060405180830381865afa158015612a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7d9190614cf2565b612a995760405162461bcd60e51b815260040161051790614d0f565b600354604051632e21e28b60e21b81526000916001600160a01b03169063b8878a2c90612ace9085908c908c90600401614cc6565b6101a060405180830381865afa158015612aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b109190614ef1565b9050841580612b2f57508060a00151612b2b57858510612b2f565b8585115b612b4b5760405162461bcd60e51b8152600401610517906154cb565b831580612b6857508060a00151612b6457858411612b68565b8584105b612b845760405162461bcd60e51b8152600401610517906154ed565b600019612b918488614e99565b10612bae5760405162461bcd60e51b81526004016105179061550f565b612bbb828989600361434e565b506101208101869052610140810186905260e081018590526101008101849052600354604051635bb3b04560e11b81526001600160a01b039091169063b767608a90612c0b908490600401615531565b600060405180830381600087803b158015612c2557600080fd5b505af1158015612c39573d6000803e3d6000fd5b505050506000600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb59190614bff565b905073__$f600c6c046224cd62da9c8e7a0d00fc8b2$__631fc1892b6001600160a01b038316858c8c6001612ce8614728565b6040518763ffffffff1660e01b8152600401612d0996959493929190615463565b60006040518083038186803b158015612d2157600080fd5b505af4158015612d35573d6000803e3d6000fd5b505060405163a8994e7f60e01b815273__$f600c6c046224cd62da9c8e7a0d00fc8b2$__925063a8994e7f9150612d81906001600160a01b0385169087908e908e908b906004016155d1565b60006040518083038186803b158015612d9957600080fd5b505af4158015612dad573d6000803e3d6000fd5b5050604080518b8152602081018b905290810189905260608101889052608081018790528b92506001600160a01b03861691507f710a8db87f04e82a9de40076812593a965f4aa48693196d2144c07ff9710e8909060a00160405180910390a3505050505050505050565b323314612e555760405162461bcd60e51b815260206004820152600b60248201526a1393d7d0d3d395149050d560aa1b6044820152606401610517565b33600090815260016020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b323314612e9057600080fd5b600a54610100900460ff1615612eb85760405162461bcd60e51b815260040161051790614c3e565b6000612ec26104b1565b9050612ed1818585600061434e565b506003546040516351d407ff60e11b81526000916001600160a01b03169063a3a80ffe90612f0790859089908990600401614cc6565b61014060405180830381865afa158015612f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f499190614dc4565b905060008160e0015111612f6f5760405162461bcd60e51b815260040161051790614de1565b600354604051637fdb96f360e01b81526001600160a01b0390911690637fdb96f390612fa5908590899089908990600401615429565b600060405180830381600087803b158015612fbf57600080fd5b505af1158015612fd3573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015613029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304d9190614bff565b6001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__6334736f089091848888600061307f614728565b6040518763ffffffff1660e01b81526004016130a096959493929190615463565b60006040518083038186803b1580156130b857600080fd5b505af41580156130cc573d6000803e3d6000fd5b505060408051878152602081018790528893506001600160a01b03861692507f7e06a81c7a47891ccc7455b5ccb2ed850e32bb655ccda67eb3ebaaeed83242a4910160405180910390a35050505050565b32331461312957600080fd5b600a54610100900460ff16156131515760405162461bcd60e51b815260040161051790614c3e565b600a5460ff161561318d5760405162461bcd60e51b815260206004820152600660248201526514105554d15160d21b6044820152606401610517565b600019828560a001516131a09190614e99565b106131bd5760405162461bcd60e51b81526004016105179061550f565b60008460a00151116131e15760405162461bcd60e51b8152600401610517906154a7565b60035460408051633078fff560e01b815290516000926001600160a01b031691633078fff59160048083019260209291908290030181865afa15801561322b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324f9190614bff565b9050600061325b6104b1565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663f65d9dbe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d49190614ed8565b6003546020880151604051634bf3ccad60e11b81526001600160a01b03909216916397e7995a9161330a91869190600401615602565b602060405180830381865afa158015613327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334b9190614ed8565b6003546020890151604051639c8912f160e01b81526001600160a01b0390921691639c8912f19161338191879190600401615602565b602060405180830381865afa15801561339e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c29190614ed8565b60035460208a01516040516307218dad60e21b81526001600160a01b0390921691631c8636b4916133f891889190600401615602565b602060405180830381865afa158015613415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134399190614ed8565b613443919061512b565b61344d919061512b565b106134905760405162461bcd60e51b815260206004820152601360248201527226a0ac2faa2920a222a9afa822a92fa820a4a960691b6044820152606401610517565b600360009054906101000a90046001600160a01b03166001600160a01b0316638049fde76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135079190614ed8565b60035460405163f7b3c6fd60e01b81526001600160a01b0384811660048301529091169063f7b3c6fd90602401602060405180830381865afa158015613551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135759190614ed8565b106135925760405162461bcd60e51b815260040161051790615398565b600854866080015111156135d85760405162461bcd60e51b815260206004820152600d60248201526c41424f56455f4d41585f504f5360981b6044820152606401610517565b60008660e0015187608001516135ee9190614e99565b60405163766599fd60e01b8152600481018290529091506000906001600160a01b0385169063766599fd90602401602060405180830381865afa158015613639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061365d9190614ed8565b60075460208a0151604051630a6c9b3b60e01b815260048101919091529192506001600160a01b031690630a6c9b3b90602401602060405180830381865afa1580156136ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d19190614ed8565b60035460208a015160c08b015185926001600160a01b0316916328daca21916136fb5760016136fe565b60005b6040516001600160e01b031960e085901b168152600481019290925260ff166024820152604401602060405180830381865afa158015613742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137669190614ed8565b613770919061512b565b11156137b25760405162461bcd60e51b815260206004820152601160248201527041424f56455f504149525f4d41585f4f4960781b6044820152606401610517565b600754602089015160c08a015160405163d627450560e01b8152600481019290925215156024820152604481018490526001600160a01b039091169063d627450590606401602060405180830381865afa158015613814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138389190614cf2565b6138795760405162461bcd60e51b815260206004820152601260248201527141424f56455f47524f55505f4d41585f4f4960701b6044820152606401610517565b600d546020890151604051634f59293760e01b81526001600160a01b0390921691634f592937916138b09160040190815260200190565b602060405180830381865afa1580156138cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f19190614ed8565b8110156139305760405162461bcd60e51b815260206004820152600d60248201526c42454c4f575f4d494e5f504f5360981b6044820152606401610517565b60008860e001511180156139bf5750600d54602089015160405163059a992d60e41b81526001600160a01b03909216916359a992d0916139769160040190815260200190565b602060405180830381865afa158015613993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b79190614ed8565b8860e0015110155b8015613a465750600d546020890151604051630a06da4f60e21b81526001600160a01b039092169163281b693c916139fd9160040190815260200190565b602060405180830381865afa158015613a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3e9190614ed8565b8860e0015111155b613a875760405162461bcd60e51b815260206004820152601260248201527113115591549051d157d25390d3d4949150d560721b6044820152606401610517565b6101008801511580613abb57508760c00151613aae578760a0015188610100015110613abb565b8760a00151886101000151115b613ad75760405162461bcd60e51b8152600401610517906154cb565b6101208801511580613b0b57508760c00151613afe578760a0015188610120015111613b0b565b8760a00151886101200151105b613b275760405162461bcd60e51b8152600401610517906154ed565b600d54602089015160c08a0151604051633f54af9960e11b8152600060048201819052602482019390935290151560448201526064810184905290916001600160a01b031690637ea95f32906084016040805180830381865afa158015613b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb69190614fa4565b509050645d21dba0008960e0015182613bcf9190614e99565b1115613bed5760405162461bcd60e51b815260040161051790614fc8565b60035460808a015160405163373873db60e11b81526001600160a01b0390921691636e70e7b691613c2491889185916004016151bd565b600060405180830381600087803b158015613c3e57600080fd5b505af1158015613c52573d6000803e3d6000fd5b5060009250613c5f915050565b886002811115613c7157613c71614cb0565b146140345760035460208a015160405163226a27ad60e11b81526000926001600160a01b0316916344d44f5a91613cac918991600401615602565b602060405180830381865afa158015613cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ced9190614ed8565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663d3b5fe70604051806101a00160405280886001600160a01b031681526020018d6020015181526020018481526020018d608001518152602001600081526020018d60c00151151581526020018d60e0015181526020018d610100015181526020018d610120015181526020018d60a0015181526020018d60a00151815260200143815260200160008152506040518263ffffffff1660e01b8152600401613db69190615531565b600060405180830381600087803b158015613dd057600080fd5b505af1158015613de4573d6000803e3d6000fd5b50505050600460009054906101000a90046001600160a01b03166001600160a01b031663ec570610868c60200151848d6040518563ffffffff1660e01b8152600401613e33949392919061561b565b600060405180830381600087803b158015613e4d57600080fd5b505af1158015613e61573d6000803e3d6000fd5b505050506000600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015613eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613edd9190614bff565b9050806001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__631fc1892b9091888e60200151866001613f16614728565b6040518763ffffffff1660e01b8152600401613f3796959493929190615463565b60006040518083038186803b158015613f4f57600080fd5b505af4158015613f63573d6000803e3d6000fd5b50505050806001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__63a8994e7f9091888e60200151868e6040518663ffffffff1660e01b8152600401613fb59594939291906155d1565b60006040518083038186803b158015613fcd57600080fd5b505af4158015613fe1573d6000803e3d6000fd5b505050508a60200151866001600160a01b03167fdfabd6f206f17b7f2e1f9e0d33c40d30d1e8d7b6a4f520a03fdc1c18110593438460405161402591815260200190565b60405180910390a3505061421f565b6000856001600160a01b0316636938c05d8b60200151600087614055614728565b6040518563ffffffff1660e01b815260040161407494939291906153c4565b6020604051808303816000875af1158015614093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b79190614ed8565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663c76faf786040518060c001604052806040518061014001604052808a6001600160a01b031681526020018f60200151815260200160008152602001600081526020018f608001518152602001600081526020018f60c00151151581526020018f60e0015181526020018f610100015181526020018f61012001518152508152602001600081526020018d60a0015181526020018b81526020016000815260200160008152508360016040518463ffffffff1660e01b815260040161419f939291906153ef565b600060405180830381600087803b1580156141b957600080fd5b505af11580156141cd573d6000803e3d6000fd5b505050508960200151856001600160a01b0316827f3e544118c04e3bb18b669475695cd270ba0e41fb13177483f01c14222de62a866001604051614215911515815260200190565b60405180910390a4505b600d546040516326e2ada160e21b81526001600160a01b038681166004830152888116602483015290911690639b8ab68490604401600060405180830381600087803b15801561426e57600080fd5b505af1158015614282573d6000803e3d6000fd5b50505050505050505050505050565b60408051808201909152600080825260208201526000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143099190615658565b60ff16905061431981600a61575f565b6001600160801b0316825261432f816012615416565b61433a90600a61575f565b6001600160801b0316602083015250919050565b6143766040805160808101825260008082526020820181905291810182905290606082015290565b6040518060800160405280866001600160a01b031681526020018581526020018481526020018360038111156143ae576143ae614cb0565b90526004805460405163108c3d4960e11b81529293506001600160a01b0316916321187a92916143e091859101615067565b602060405180830381865afa1580156143fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144219190614cf2565b1580614498575060048054604051633f1b72bf60e21b81526001600160a01b039091169163fc6dcafc9161445791859101615067565b602060405180830381865afa158015614474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144989190614cf2565b6144d65760405162461bcd60e51b815260206004820152600f60248201526e2822a72224a723afaa2924a3a3a2a960891b6044820152606401610517565b949350505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015614533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145579190614bff565b6001600160a01b031663e4151846898989896040518563ffffffff1660e01b8152600401614588949392919061576b565b608060405180830381865afa1580156145a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145c991906157b3565b9050600360009054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561461e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146429190614bff565b6001600160a01b0316636938c05d888b61465d576003614660565b60025b868d6146b357600189600381111561467a5761467a614cb0565b146146a957600089600381111561469357614693614cb0565b146146a25785606001516146b9565b85516146b9565b85602001516146b9565b85604001515b6040518563ffffffff1660e01b81526004016146d89493929190615830565b6020604051808303816000875af11580156146f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061471b9190614ed8565b9998505050505050505050565b600061a4b146148061473c575062066eee46145b156147a95760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147a49190614ed8565b905090565b504390565b6001600160a01b03811681146147c357600080fd5b50565b6000602082840312156147d857600080fd5b81356147e3816147ae565b9392505050565b80356147f5816147ae565b919050565b80151581146147c357600080fd5b80356147f5816147fa565b6000806040838503121561482657600080fd5b8235614831816147ae565b91506020830135614841816147fa565b809150509250929050565b60006020828403121561485e57600080fd5b5035919050565b60008060006040848603121561487a57600080fd5b8335614885816147ae565b9250602084013567ffffffffffffffff808211156148a257600080fd5b818601915086601f8301126148b657600080fd5b8135818111156148c557600080fd5b8760208285010111156148d757600080fd5b6020830194508093505050509250925092565b60005b838110156149055781810151838201526020016148ed565b50506000910152565b600081518084526149268160208601602086016148ea565b601f01601f19169290920160200192915050565b6020815260006147e3602083018461490e565b6000806040838503121561496057600080fd5b50508035926020909101359150565b600080600080600060a0868803121561498757600080fd5b8535614992816147ae565b945060208601356149a2816147ae565b935060408601356149b2816147ae565b94979396509394606081013594506080013592915050565b6000806000606084860312156149df57600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c08789031215614a0f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715614a7357614a73614a39565b60405290565b6040516101a0810167ffffffffffffffff81118282101715614a7357614a73614a39565b8035600381106147f557600080fd5b6000806000808486036101a0811215614ac457600080fd5b61014080821215614ad457600080fd5b614adc614a4f565b9150614ae7876147ea565b82526020870135602083015260408701356040830152606087013560608301526080870135608083015260a087013560a0830152614b2760c08801614808565b60c083015260e087013560e0830152610100808801358184015250610120808801358184015250819550614b5c818801614a9d565b945050506101608501359150614b7561018086016147ea565b905092959194509250565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600c908201526b57524f4e475f504152414d5360a01b604082015260600190565b80516147f5816147ae565b600060208284031215614c1157600080fd5b81516147e3816147ae565b602080825260089082015267474f565f4f4e4c5960c01b604082015260600190565b602080825260049082015263444f4e4560e01b604082015260600190565b60008060008060008060c08789031215614c7557600080fd5b865195506020870151614c87816147ae565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b039390931683526020830191909152604082015260600190565b80516147f5816147fa565b600060208284031215614d0457600080fd5b81516147e3816147fa565b6020808252600890820152671393d7d31253525560c21b604082015260600190565b60006101408284031215614d4457600080fd5b614d4c614a4f565b9050614d5782614bf4565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a0820152614d9760c08301614ce7565b60c082015260e082015160e082015261010080830151818301525061012080830151818301525092915050565b60006101408284031215614dd757600080fd5b6147e38383614d31565b6020808252600890820152674e4f5f545241444560c01b604082015260600190565b600060c08284031215614e1557600080fd5b60405160c0810181811067ffffffffffffffff82111715614e3857614e38614a39565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a0830151614e77816147fa565b60a08201529392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417614eb057614eb0614e83565b92915050565b600082614ed357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215614eea57600080fd5b5051919050565b60006101a08284031215614f0457600080fd5b614f0c614a79565b614f1583614bf4565b815260208301516020820152604083015160408201526060830151606082015260808301516080820152614f4b60a08401614ce7565b60a082015260c0838101519082015260e080840151908201526101008084015190820152610120808401519082015261014080840151908201526101608084015190820152610180928301519281019290925250919050565b60008060408385031215614fb757600080fd5b505080516020909101519092909150565b6020808252601590820152740a0a492868abe929aa08286a8bea89e9ebe90928e9605b1b604082015260600190565b600481106147c3576147c3614cb0565b82516001600160a01b0390811682526020808501519083015260408085015190911690820152606080840151908201526080808401519082015260a083015160e082019061505481614ff7565b60a083015260c090910191909152919050565b81516001600160a01b0316815260208083015190820152604080830151908201526060820151608082019061509b81614ff7565b8060608401525092915050565b60006101e082840312156150bb57600080fd5b60405160c0810181811067ffffffffffffffff821117156150de576150de614a39565b6040526150eb8484614d31565b81526101408301516020820152610160830151604082015261018083015160608201526101a083015160808201526101c09092015160a083015250919050565b80820180821115614eb057614eb0614e83565b6020808252600c908201526b15d0525517d512535153d55560a21b604082015260600190565b6020808252600e908201526d2727aa2faca7aaa92fa7a92222a960911b604082015260600190565b60208082526017908201527657524f4e475f4d41524b45545f4f524445525f5459504560481b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b805180516001600160a01b031683526020810151602084015260408101516040840152606081015160608401526080810151608084015260a081015160a084015260c081015161523560c085018215159052565b5060e081810151908401526101008082015190840152610120908101519083015260208101516101408301526040810151610160830152606081015161018083015260808101516101a083015260a001516101c090910152565b6101e08101614eb082846151e1565b602080825260079082015266056414c55455f360cc1b604082015260600190565b600082516152d18184602087016148ea565b9190910192915050565b8183823760009101908152919050565b6000602082840312156152fd57600080fd5b815167ffffffffffffffff8082111561531557600080fd5b818401915084601f83011261532957600080fd5b81518181111561533b5761533b614a39565b604051601f8201601f19908116603f0116810190838211818310171561536357615363614a39565b8160405282815287602084870101111561537c57600080fd5b61538d8360208301602088016148ea565b979650505050505050565b6020808252601290820152714d41585f50454e44494e475f4f524445525360701b604082015260600190565b848152608081016153d485614ff7565b84602083015283604083015282606083015295945050505050565b61022081016153fe82866151e1565b836101e0830152821515610200830152949350505050565b81810381811115614eb057614eb0614e83565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6002811061545f5761545f614cb0565b9052565b6001600160a01b03878116825286166020820152604081018590526060810184905260c08101615496608083018561544f565b8260a0830152979650505050505050565b6020808252600a908201526950524943455f5a45524f60b01b604082015260600190565b602080825260089082015267057524f4e475f54560c41b604082015260600190565b60208082526008908201526715d493d391d7d4d360c21b604082015260600190565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b81516001600160a01b031681526101a081016020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015161557e60a084018215159052565b5060c0838101519083015260e08084015190830152610100808401519083015261012080840151908301526101408084015190830152610160808401519083015261018092830151929091019190915290565b6001600160a01b03958616815293909416602084015260408301919091526060820152608081019190915260a00190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03851681526020810184905260408101839052608081016003831061564957615649614cb0565b82606083015295945050505050565b60006020828403121561566a57600080fd5b815160ff811681146147e357600080fd5b600181815b808511156156b657816000190482111561569c5761569c614e83565b808516156156a957918102915b93841c9390800290615680565b509250929050565b6000826156cd57506001614eb0565b816156da57506000614eb0565b81600181146156f057600281146156fa57615716565b6001915050614eb0565b60ff84111561570b5761570b614e83565b50506001821b614eb0565b5060208310610133831016604e8410600b8410161715615739575081810a614eb0565b615743838361567b565b806000190482111561575757615757614e83565b029392505050565b60006147e383836156be565b6001600160a01b0385168152602081018490526040810183905260808101615796606083018461544f565b95945050505050565b805163ffffffff811681146147f557600080fd5b6000608082840312156157c557600080fd5b6040516080810181811067ffffffffffffffff821117156157e8576157e8614a39565b6040526157f48361579f565b81526158026020840161579f565b60208201526158136040840161579f565b60408201526158246060840161579f565b60608201529392505050565b8481526080810161584085614ff7565b84602083015283604083015263ffffffff831660608301529594505050505056fea264697066735822122063d184c5a4f597ace02f3dbaa63ad4f33aa3533374a66750c64bf2d9cddc617264736f6c63430008110033";
1025
+ const isSuperArgs = (xs) => {
1026
+ return (typeof xs[0] === "string" ||
1027
+ Array.isArray(xs[0]) ||
1028
+ "_isInterface" in xs[0]);
1029
+ };
1030
+ class GNSTrading__factory extends ethers_1.ContractFactory {
1031
+ constructor(...args) {
1032
+ if (isSuperArgs(args)) {
1033
+ super(...args);
1034
+ }
1035
+ else {
1036
+ const [linkLibraryAddresses, signer] = args;
1037
+ super(_abi, GNSTrading__factory.linkBytecode(linkLibraryAddresses), signer);
1038
+ }
1039
+ }
1040
+ static linkBytecode(linkLibraryAddresses) {
1041
+ let linkedBytecode = _bytecode;
1042
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$0a787ca790b72760fa5f2fae68e461a66f\\$__", "g"), linkLibraryAddresses["contracts/libraries/PackingUtils.sol:PackingUtils"]
1043
+ .replace(/^0x/, "")
1044
+ .toLowerCase());
1045
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$f600c6c046224cd62da9c8e7a0d00fc8b2\\$__", "g"), linkLibraryAddresses["contracts/libraries/TradeUtils.sol:TradeUtils"]
1046
+ .replace(/^0x/, "")
1047
+ .toLowerCase());
1048
+ return linkedBytecode;
1049
+ }
1050
+ deploy(overrides) {
1051
+ return super.deploy(overrides || {});
1052
+ }
1053
+ getDeployTransaction(overrides) {
1054
+ return super.getDeployTransaction(overrides || {});
1055
+ }
1056
+ attach(address) {
1057
+ return super.attach(address);
1058
+ }
1059
+ connect(signer) {
1060
+ return super.connect(signer);
1061
+ }
1062
+ static createInterface() {
1063
+ return new ethers_1.utils.Interface(_abi);
1064
+ }
1065
+ static connect(address, signerOrProvider) {
1066
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
1067
+ }
1068
+ }
1069
+ exports.GNSTrading__factory = GNSTrading__factory;
1070
+ GNSTrading__factory.bytecode = _bytecode;
1071
+ GNSTrading__factory.abi = _abi;