@gainsnetwork/sdk 1.6.8-rc1 → 1.6.9

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 (40) hide show
  1. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  2. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  3. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  4. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  5. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  6. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  7. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  8. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  9. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  10. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  11. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  12. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  13. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  14. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  15. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  16. package/lib/contracts/types/generated/GTokenV6_3_2.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/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  32. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  33. package/lib/markets/schedules/builders.js +13 -11
  34. package/lib/markets/schedules/checkers.js +1 -1
  35. package/lib/markets/schedules/holidays.d.ts +3 -1
  36. package/lib/markets/schedules/holidays.js +58 -39
  37. package/lib/markets/schedules/index.d.ts +1 -0
  38. package/lib/markets/schedules/index.js +4 -1
  39. package/lib/markets/schedules/types.d.ts +1 -0
  40. package/package.json +1 -1
@@ -0,0 +1,1428 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GNSTradingCallbacks__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
+ inputs: [],
11
+ stateMutability: "nonpayable",
12
+ type: "constructor",
13
+ },
14
+ {
15
+ inputs: [],
16
+ name: "Forbidden",
17
+ type: "error",
18
+ },
19
+ {
20
+ inputs: [],
21
+ name: "WrongParams",
22
+ type: "error",
23
+ },
24
+ {
25
+ anonymous: false,
26
+ inputs: [
27
+ {
28
+ indexed: true,
29
+ internalType: "address",
30
+ name: "trader",
31
+ type: "address",
32
+ },
33
+ {
34
+ indexed: false,
35
+ internalType: "uint256",
36
+ name: "tradeValueDai",
37
+ type: "uint256",
38
+ },
39
+ {
40
+ indexed: false,
41
+ internalType: "uint256",
42
+ name: "feeValueDai",
43
+ type: "uint256",
44
+ },
45
+ ],
46
+ name: "BorrowingFeeCharged",
47
+ type: "event",
48
+ },
49
+ {
50
+ anonymous: false,
51
+ inputs: [
52
+ {
53
+ indexed: false,
54
+ internalType: "uint256",
55
+ name: "daiVaultFeeP",
56
+ type: "uint256",
57
+ },
58
+ {
59
+ indexed: false,
60
+ internalType: "uint256",
61
+ name: "lpFeeP",
62
+ type: "uint256",
63
+ },
64
+ {
65
+ indexed: false,
66
+ internalType: "uint256",
67
+ name: "sssFeeP",
68
+ type: "uint256",
69
+ },
70
+ ],
71
+ name: "ClosingFeeSharesPUpdated",
72
+ type: "event",
73
+ },
74
+ {
75
+ anonymous: false,
76
+ inputs: [
77
+ {
78
+ indexed: true,
79
+ internalType: "address",
80
+ name: "trader",
81
+ type: "address",
82
+ },
83
+ {
84
+ indexed: false,
85
+ internalType: "uint256",
86
+ name: "valueDai",
87
+ type: "uint256",
88
+ },
89
+ ],
90
+ name: "DaiVaultFeeCharged",
91
+ type: "event",
92
+ },
93
+ {
94
+ anonymous: false,
95
+ inputs: [
96
+ {
97
+ indexed: false,
98
+ internalType: "bool",
99
+ name: "done",
100
+ type: "bool",
101
+ },
102
+ ],
103
+ name: "Done",
104
+ type: "event",
105
+ },
106
+ {
107
+ anonymous: false,
108
+ inputs: [
109
+ {
110
+ indexed: true,
111
+ internalType: "address",
112
+ name: "trader",
113
+ type: "address",
114
+ },
115
+ {
116
+ indexed: false,
117
+ internalType: "uint256",
118
+ name: "valueDai",
119
+ type: "uint256",
120
+ },
121
+ {
122
+ indexed: false,
123
+ internalType: "bool",
124
+ name: "distributed",
125
+ type: "bool",
126
+ },
127
+ ],
128
+ name: "GovFeeCharged",
129
+ type: "event",
130
+ },
131
+ {
132
+ anonymous: false,
133
+ inputs: [
134
+ {
135
+ indexed: false,
136
+ internalType: "uint256",
137
+ name: "valueDai",
138
+ type: "uint256",
139
+ },
140
+ ],
141
+ name: "GovFeesClaimed",
142
+ type: "event",
143
+ },
144
+ {
145
+ anonymous: false,
146
+ inputs: [
147
+ {
148
+ indexed: false,
149
+ internalType: "uint8",
150
+ name: "version",
151
+ type: "uint8",
152
+ },
153
+ ],
154
+ name: "Initialized",
155
+ type: "event",
156
+ },
157
+ {
158
+ anonymous: false,
159
+ inputs: [
160
+ {
161
+ indexed: true,
162
+ internalType: "uint256",
163
+ name: "orderId",
164
+ type: "uint256",
165
+ },
166
+ {
167
+ indexed: false,
168
+ internalType: "uint256",
169
+ name: "limitIndex",
170
+ type: "uint256",
171
+ },
172
+ {
173
+ components: [
174
+ {
175
+ internalType: "address",
176
+ name: "trader",
177
+ type: "address",
178
+ },
179
+ {
180
+ internalType: "uint256",
181
+ name: "pairIndex",
182
+ type: "uint256",
183
+ },
184
+ {
185
+ internalType: "uint256",
186
+ name: "index",
187
+ type: "uint256",
188
+ },
189
+ {
190
+ internalType: "uint256",
191
+ name: "initialPosToken",
192
+ type: "uint256",
193
+ },
194
+ {
195
+ internalType: "uint256",
196
+ name: "positionSizeDai",
197
+ type: "uint256",
198
+ },
199
+ {
200
+ internalType: "uint256",
201
+ name: "openPrice",
202
+ type: "uint256",
203
+ },
204
+ {
205
+ internalType: "bool",
206
+ name: "buy",
207
+ type: "bool",
208
+ },
209
+ {
210
+ internalType: "uint256",
211
+ name: "leverage",
212
+ type: "uint256",
213
+ },
214
+ {
215
+ internalType: "uint256",
216
+ name: "tp",
217
+ type: "uint256",
218
+ },
219
+ {
220
+ internalType: "uint256",
221
+ name: "sl",
222
+ type: "uint256",
223
+ },
224
+ ],
225
+ indexed: false,
226
+ internalType: "struct IGNSTradingStorage.Trade",
227
+ name: "t",
228
+ type: "tuple",
229
+ },
230
+ {
231
+ indexed: true,
232
+ internalType: "address",
233
+ name: "nftHolder",
234
+ type: "address",
235
+ },
236
+ {
237
+ indexed: false,
238
+ internalType: "enum IGNSTradingStorage.LimitOrder",
239
+ name: "orderType",
240
+ type: "uint8",
241
+ },
242
+ {
243
+ indexed: false,
244
+ internalType: "uint256",
245
+ name: "price",
246
+ type: "uint256",
247
+ },
248
+ {
249
+ indexed: false,
250
+ internalType: "uint256",
251
+ name: "priceImpactP",
252
+ type: "uint256",
253
+ },
254
+ {
255
+ indexed: false,
256
+ internalType: "uint256",
257
+ name: "positionSizeDai",
258
+ type: "uint256",
259
+ },
260
+ {
261
+ indexed: false,
262
+ internalType: "int256",
263
+ name: "percentProfit",
264
+ type: "int256",
265
+ },
266
+ {
267
+ indexed: false,
268
+ internalType: "uint256",
269
+ name: "daiSentToTrader",
270
+ type: "uint256",
271
+ },
272
+ {
273
+ indexed: false,
274
+ internalType: "uint256",
275
+ name: "collateralPriceUsd",
276
+ type: "uint256",
277
+ },
278
+ {
279
+ indexed: false,
280
+ internalType: "bool",
281
+ name: "exactExecution",
282
+ type: "bool",
283
+ },
284
+ ],
285
+ name: "LimitExecuted",
286
+ type: "event",
287
+ },
288
+ {
289
+ anonymous: false,
290
+ inputs: [
291
+ {
292
+ indexed: true,
293
+ internalType: "uint256",
294
+ name: "orderId",
295
+ type: "uint256",
296
+ },
297
+ {
298
+ indexed: true,
299
+ internalType: "address",
300
+ name: "trader",
301
+ type: "address",
302
+ },
303
+ {
304
+ indexed: true,
305
+ internalType: "uint256",
306
+ name: "pairIndex",
307
+ type: "uint256",
308
+ },
309
+ {
310
+ indexed: false,
311
+ internalType: "uint256",
312
+ name: "index",
313
+ type: "uint256",
314
+ },
315
+ {
316
+ indexed: false,
317
+ internalType: "enum IGNSTradingCallbacks.CancelReason",
318
+ name: "cancelReason",
319
+ type: "uint8",
320
+ },
321
+ ],
322
+ name: "MarketCloseCanceled",
323
+ type: "event",
324
+ },
325
+ {
326
+ anonymous: false,
327
+ inputs: [
328
+ {
329
+ indexed: true,
330
+ internalType: "uint256",
331
+ name: "orderId",
332
+ type: "uint256",
333
+ },
334
+ {
335
+ components: [
336
+ {
337
+ internalType: "address",
338
+ name: "trader",
339
+ type: "address",
340
+ },
341
+ {
342
+ internalType: "uint256",
343
+ name: "pairIndex",
344
+ type: "uint256",
345
+ },
346
+ {
347
+ internalType: "uint256",
348
+ name: "index",
349
+ type: "uint256",
350
+ },
351
+ {
352
+ internalType: "uint256",
353
+ name: "initialPosToken",
354
+ type: "uint256",
355
+ },
356
+ {
357
+ internalType: "uint256",
358
+ name: "positionSizeDai",
359
+ type: "uint256",
360
+ },
361
+ {
362
+ internalType: "uint256",
363
+ name: "openPrice",
364
+ type: "uint256",
365
+ },
366
+ {
367
+ internalType: "bool",
368
+ name: "buy",
369
+ type: "bool",
370
+ },
371
+ {
372
+ internalType: "uint256",
373
+ name: "leverage",
374
+ type: "uint256",
375
+ },
376
+ {
377
+ internalType: "uint256",
378
+ name: "tp",
379
+ type: "uint256",
380
+ },
381
+ {
382
+ internalType: "uint256",
383
+ name: "sl",
384
+ type: "uint256",
385
+ },
386
+ ],
387
+ indexed: false,
388
+ internalType: "struct IGNSTradingStorage.Trade",
389
+ name: "t",
390
+ type: "tuple",
391
+ },
392
+ {
393
+ indexed: false,
394
+ internalType: "bool",
395
+ name: "open",
396
+ type: "bool",
397
+ },
398
+ {
399
+ indexed: false,
400
+ internalType: "uint256",
401
+ name: "price",
402
+ type: "uint256",
403
+ },
404
+ {
405
+ indexed: false,
406
+ internalType: "uint256",
407
+ name: "priceImpactP",
408
+ type: "uint256",
409
+ },
410
+ {
411
+ indexed: false,
412
+ internalType: "uint256",
413
+ name: "positionSizeDai",
414
+ type: "uint256",
415
+ },
416
+ {
417
+ indexed: false,
418
+ internalType: "int256",
419
+ name: "percentProfit",
420
+ type: "int256",
421
+ },
422
+ {
423
+ indexed: false,
424
+ internalType: "uint256",
425
+ name: "daiSentToTrader",
426
+ type: "uint256",
427
+ },
428
+ {
429
+ indexed: false,
430
+ internalType: "uint256",
431
+ name: "collateralPriceUsd",
432
+ type: "uint256",
433
+ },
434
+ ],
435
+ name: "MarketExecuted",
436
+ type: "event",
437
+ },
438
+ {
439
+ anonymous: false,
440
+ inputs: [
441
+ {
442
+ indexed: true,
443
+ internalType: "uint256",
444
+ name: "orderId",
445
+ type: "uint256",
446
+ },
447
+ {
448
+ indexed: true,
449
+ internalType: "address",
450
+ name: "trader",
451
+ type: "address",
452
+ },
453
+ {
454
+ indexed: true,
455
+ internalType: "uint256",
456
+ name: "pairIndex",
457
+ type: "uint256",
458
+ },
459
+ {
460
+ indexed: false,
461
+ internalType: "enum IGNSTradingCallbacks.CancelReason",
462
+ name: "cancelReason",
463
+ type: "uint8",
464
+ },
465
+ ],
466
+ name: "MarketOpenCanceled",
467
+ type: "event",
468
+ },
469
+ {
470
+ anonymous: false,
471
+ inputs: [
472
+ {
473
+ indexed: true,
474
+ internalType: "uint256",
475
+ name: "orderId",
476
+ type: "uint256",
477
+ },
478
+ {
479
+ indexed: true,
480
+ internalType: "address",
481
+ name: "nftHolder",
482
+ type: "address",
483
+ },
484
+ {
485
+ indexed: false,
486
+ internalType: "enum IGNSTradingStorage.LimitOrder",
487
+ name: "orderType",
488
+ type: "uint8",
489
+ },
490
+ {
491
+ indexed: false,
492
+ internalType: "enum IGNSTradingCallbacks.CancelReason",
493
+ name: "cancelReason",
494
+ type: "uint8",
495
+ },
496
+ ],
497
+ name: "NftOrderCanceled",
498
+ type: "event",
499
+ },
500
+ {
501
+ anonymous: false,
502
+ inputs: [
503
+ {
504
+ indexed: false,
505
+ internalType: "bool",
506
+ name: "paused",
507
+ type: "bool",
508
+ },
509
+ ],
510
+ name: "Pause",
511
+ type: "event",
512
+ },
513
+ {
514
+ anonymous: false,
515
+ inputs: [
516
+ {
517
+ indexed: true,
518
+ internalType: "address",
519
+ name: "trader",
520
+ type: "address",
521
+ },
522
+ {
523
+ indexed: false,
524
+ internalType: "uint256",
525
+ name: "valueDai",
526
+ type: "uint256",
527
+ },
528
+ ],
529
+ name: "ReferralFeeCharged",
530
+ type: "event",
531
+ },
532
+ {
533
+ anonymous: false,
534
+ inputs: [
535
+ {
536
+ indexed: true,
537
+ internalType: "address",
538
+ name: "trader",
539
+ type: "address",
540
+ },
541
+ {
542
+ indexed: false,
543
+ internalType: "uint256",
544
+ name: "valueDai",
545
+ type: "uint256",
546
+ },
547
+ ],
548
+ name: "SssFeeCharged",
549
+ type: "event",
550
+ },
551
+ {
552
+ anonymous: false,
553
+ inputs: [
554
+ {
555
+ indexed: true,
556
+ internalType: "address",
557
+ name: "trader",
558
+ type: "address",
559
+ },
560
+ {
561
+ indexed: false,
562
+ internalType: "uint256",
563
+ name: "valueDai",
564
+ type: "uint256",
565
+ },
566
+ ],
567
+ name: "TriggerFeeCharged",
568
+ type: "event",
569
+ },
570
+ {
571
+ inputs: [],
572
+ name: "borrowingFees",
573
+ outputs: [
574
+ {
575
+ internalType: "contract IGNSBorrowingFees",
576
+ name: "",
577
+ type: "address",
578
+ },
579
+ ],
580
+ stateMutability: "view",
581
+ type: "function",
582
+ },
583
+ {
584
+ inputs: [],
585
+ name: "canExecuteTimeout",
586
+ outputs: [
587
+ {
588
+ internalType: "uint256",
589
+ name: "",
590
+ type: "uint256",
591
+ },
592
+ ],
593
+ stateMutability: "view",
594
+ type: "function",
595
+ },
596
+ {
597
+ inputs: [],
598
+ name: "claimGovFees",
599
+ outputs: [],
600
+ stateMutability: "nonpayable",
601
+ type: "function",
602
+ },
603
+ {
604
+ inputs: [
605
+ {
606
+ components: [
607
+ {
608
+ internalType: "uint256",
609
+ name: "orderId",
610
+ type: "uint256",
611
+ },
612
+ {
613
+ internalType: "uint256",
614
+ name: "price",
615
+ type: "uint256",
616
+ },
617
+ {
618
+ internalType: "uint256",
619
+ name: "spreadP",
620
+ type: "uint256",
621
+ },
622
+ {
623
+ internalType: "uint256",
624
+ name: "open",
625
+ type: "uint256",
626
+ },
627
+ {
628
+ internalType: "uint256",
629
+ name: "high",
630
+ type: "uint256",
631
+ },
632
+ {
633
+ internalType: "uint256",
634
+ name: "low",
635
+ type: "uint256",
636
+ },
637
+ ],
638
+ internalType: "struct IGNSTradingCallbacks.AggregatorAnswer",
639
+ name: "a",
640
+ type: "tuple",
641
+ },
642
+ ],
643
+ name: "closeTradeMarketCallback",
644
+ outputs: [],
645
+ stateMutability: "nonpayable",
646
+ type: "function",
647
+ },
648
+ {
649
+ inputs: [],
650
+ name: "collateralConfig",
651
+ outputs: [
652
+ {
653
+ internalType: "uint128",
654
+ name: "precision",
655
+ type: "uint128",
656
+ },
657
+ {
658
+ internalType: "uint128",
659
+ name: "precisionDelta",
660
+ type: "uint128",
661
+ },
662
+ ],
663
+ stateMutability: "view",
664
+ type: "function",
665
+ },
666
+ {
667
+ inputs: [],
668
+ name: "daiVaultFeeP",
669
+ outputs: [
670
+ {
671
+ internalType: "uint256",
672
+ name: "",
673
+ type: "uint256",
674
+ },
675
+ ],
676
+ stateMutability: "view",
677
+ type: "function",
678
+ },
679
+ {
680
+ inputs: [],
681
+ name: "done",
682
+ outputs: [],
683
+ stateMutability: "nonpayable",
684
+ type: "function",
685
+ },
686
+ {
687
+ inputs: [
688
+ {
689
+ components: [
690
+ {
691
+ internalType: "uint256",
692
+ name: "orderId",
693
+ type: "uint256",
694
+ },
695
+ {
696
+ internalType: "uint256",
697
+ name: "price",
698
+ type: "uint256",
699
+ },
700
+ {
701
+ internalType: "uint256",
702
+ name: "spreadP",
703
+ type: "uint256",
704
+ },
705
+ {
706
+ internalType: "uint256",
707
+ name: "open",
708
+ type: "uint256",
709
+ },
710
+ {
711
+ internalType: "uint256",
712
+ name: "high",
713
+ type: "uint256",
714
+ },
715
+ {
716
+ internalType: "uint256",
717
+ name: "low",
718
+ type: "uint256",
719
+ },
720
+ ],
721
+ internalType: "struct IGNSTradingCallbacks.AggregatorAnswer",
722
+ name: "a",
723
+ type: "tuple",
724
+ },
725
+ ],
726
+ name: "executeNftCloseOrderCallback",
727
+ outputs: [],
728
+ stateMutability: "nonpayable",
729
+ type: "function",
730
+ },
731
+ {
732
+ inputs: [
733
+ {
734
+ components: [
735
+ {
736
+ internalType: "uint256",
737
+ name: "orderId",
738
+ type: "uint256",
739
+ },
740
+ {
741
+ internalType: "uint256",
742
+ name: "price",
743
+ type: "uint256",
744
+ },
745
+ {
746
+ internalType: "uint256",
747
+ name: "spreadP",
748
+ type: "uint256",
749
+ },
750
+ {
751
+ internalType: "uint256",
752
+ name: "open",
753
+ type: "uint256",
754
+ },
755
+ {
756
+ internalType: "uint256",
757
+ name: "high",
758
+ type: "uint256",
759
+ },
760
+ {
761
+ internalType: "uint256",
762
+ name: "low",
763
+ type: "uint256",
764
+ },
765
+ ],
766
+ internalType: "struct IGNSTradingCallbacks.AggregatorAnswer",
767
+ name: "a",
768
+ type: "tuple",
769
+ },
770
+ ],
771
+ name: "executeNftOpenOrderCallback",
772
+ outputs: [],
773
+ stateMutability: "nonpayable",
774
+ type: "function",
775
+ },
776
+ {
777
+ inputs: [
778
+ {
779
+ internalType: "address",
780
+ name: "trader",
781
+ type: "address",
782
+ },
783
+ {
784
+ internalType: "uint256",
785
+ name: "pairIndex",
786
+ type: "uint256",
787
+ },
788
+ {
789
+ internalType: "uint256",
790
+ name: "index",
791
+ type: "uint256",
792
+ },
793
+ {
794
+ internalType: "enum IGNSTradingCallbacks.TradeType",
795
+ name: "tradeType",
796
+ type: "uint8",
797
+ },
798
+ ],
799
+ name: "getTradeLastUpdated",
800
+ outputs: [
801
+ {
802
+ components: [
803
+ {
804
+ internalType: "uint32",
805
+ name: "tp",
806
+ type: "uint32",
807
+ },
808
+ {
809
+ internalType: "uint32",
810
+ name: "sl",
811
+ type: "uint32",
812
+ },
813
+ {
814
+ internalType: "uint32",
815
+ name: "limit",
816
+ type: "uint32",
817
+ },
818
+ {
819
+ internalType: "uint32",
820
+ name: "created",
821
+ type: "uint32",
822
+ },
823
+ ],
824
+ internalType: "struct IGNSTradingCallbacks.LastUpdated",
825
+ name: "",
826
+ type: "tuple",
827
+ },
828
+ ],
829
+ stateMutability: "view",
830
+ type: "function",
831
+ },
832
+ {
833
+ inputs: [],
834
+ name: "govFeesDai",
835
+ outputs: [
836
+ {
837
+ internalType: "uint256",
838
+ name: "",
839
+ type: "uint256",
840
+ },
841
+ ],
842
+ stateMutability: "view",
843
+ type: "function",
844
+ },
845
+ {
846
+ inputs: [
847
+ {
848
+ internalType: "contract IGNSTradingStorage",
849
+ name: "_storageT",
850
+ type: "address",
851
+ },
852
+ {
853
+ internalType: "contract IGNSOracleRewards",
854
+ name: "_nftRewards",
855
+ type: "address",
856
+ },
857
+ {
858
+ internalType: "contract IGNSStaking",
859
+ name: "_staking",
860
+ type: "address",
861
+ },
862
+ {
863
+ internalType: "address",
864
+ name: "vaultToApprove",
865
+ type: "address",
866
+ },
867
+ {
868
+ internalType: "uint256",
869
+ name: "_daiVaultFeeP",
870
+ type: "uint256",
871
+ },
872
+ {
873
+ internalType: "uint256",
874
+ name: "_lpFeeP",
875
+ type: "uint256",
876
+ },
877
+ {
878
+ internalType: "uint256",
879
+ name: "_sssFeeP",
880
+ type: "uint256",
881
+ },
882
+ {
883
+ internalType: "uint256",
884
+ name: "_canExecuteTimeout",
885
+ type: "uint256",
886
+ },
887
+ ],
888
+ name: "initialize",
889
+ outputs: [],
890
+ stateMutability: "nonpayable",
891
+ type: "function",
892
+ },
893
+ {
894
+ inputs: [
895
+ {
896
+ internalType: "contract IGNSBorrowingFees",
897
+ name: "_borrowingFees",
898
+ type: "address",
899
+ },
900
+ ],
901
+ name: "initializeV2",
902
+ outputs: [],
903
+ stateMutability: "nonpayable",
904
+ type: "function",
905
+ },
906
+ {
907
+ inputs: [
908
+ {
909
+ internalType: "contract IGNSStaking",
910
+ name: "_staking",
911
+ type: "address",
912
+ },
913
+ {
914
+ internalType: "contract IGNSOracleRewards",
915
+ name: "_oracleRewards",
916
+ type: "address",
917
+ },
918
+ ],
919
+ name: "initializeV4",
920
+ outputs: [],
921
+ stateMutability: "nonpayable",
922
+ type: "function",
923
+ },
924
+ {
925
+ inputs: [
926
+ {
927
+ internalType: "contract IGNSMultiCollatDiamond",
928
+ name: "_multiCollatDiamond",
929
+ type: "address",
930
+ },
931
+ ],
932
+ name: "initializeV6",
933
+ outputs: [],
934
+ stateMutability: "nonpayable",
935
+ type: "function",
936
+ },
937
+ {
938
+ inputs: [],
939
+ name: "isDone",
940
+ outputs: [
941
+ {
942
+ internalType: "bool",
943
+ name: "",
944
+ type: "bool",
945
+ },
946
+ ],
947
+ stateMutability: "view",
948
+ type: "function",
949
+ },
950
+ {
951
+ inputs: [],
952
+ name: "isPaused",
953
+ outputs: [
954
+ {
955
+ internalType: "bool",
956
+ name: "",
957
+ type: "bool",
958
+ },
959
+ ],
960
+ stateMutability: "view",
961
+ type: "function",
962
+ },
963
+ {
964
+ inputs: [],
965
+ name: "lpFeeP",
966
+ outputs: [
967
+ {
968
+ internalType: "uint256",
969
+ name: "",
970
+ type: "uint256",
971
+ },
972
+ ],
973
+ stateMutability: "view",
974
+ type: "function",
975
+ },
976
+ {
977
+ inputs: [],
978
+ name: "multiCollatDiamond",
979
+ outputs: [
980
+ {
981
+ internalType: "contract IGNSMultiCollatDiamond",
982
+ name: "",
983
+ type: "address",
984
+ },
985
+ ],
986
+ stateMutability: "view",
987
+ type: "function",
988
+ },
989
+ {
990
+ inputs: [],
991
+ name: "nftRewards",
992
+ outputs: [
993
+ {
994
+ internalType: "contract IGNSOracleRewards",
995
+ name: "",
996
+ type: "address",
997
+ },
998
+ ],
999
+ stateMutability: "view",
1000
+ type: "function",
1001
+ },
1002
+ {
1003
+ inputs: [
1004
+ {
1005
+ components: [
1006
+ {
1007
+ internalType: "uint256",
1008
+ name: "orderId",
1009
+ type: "uint256",
1010
+ },
1011
+ {
1012
+ internalType: "uint256",
1013
+ name: "price",
1014
+ type: "uint256",
1015
+ },
1016
+ {
1017
+ internalType: "uint256",
1018
+ name: "spreadP",
1019
+ type: "uint256",
1020
+ },
1021
+ {
1022
+ internalType: "uint256",
1023
+ name: "open",
1024
+ type: "uint256",
1025
+ },
1026
+ {
1027
+ internalType: "uint256",
1028
+ name: "high",
1029
+ type: "uint256",
1030
+ },
1031
+ {
1032
+ internalType: "uint256",
1033
+ name: "low",
1034
+ type: "uint256",
1035
+ },
1036
+ ],
1037
+ internalType: "struct IGNSTradingCallbacks.AggregatorAnswer",
1038
+ name: "a",
1039
+ type: "tuple",
1040
+ },
1041
+ ],
1042
+ name: "openTradeMarketCallback",
1043
+ outputs: [],
1044
+ stateMutability: "nonpayable",
1045
+ type: "function",
1046
+ },
1047
+ {
1048
+ inputs: [],
1049
+ name: "pairInfos",
1050
+ outputs: [
1051
+ {
1052
+ internalType: "address",
1053
+ name: "",
1054
+ type: "address",
1055
+ },
1056
+ ],
1057
+ stateMutability: "view",
1058
+ type: "function",
1059
+ },
1060
+ {
1061
+ inputs: [
1062
+ {
1063
+ internalType: "uint256",
1064
+ name: "",
1065
+ type: "uint256",
1066
+ },
1067
+ ],
1068
+ name: "pairMaxLeverage",
1069
+ outputs: [
1070
+ {
1071
+ internalType: "uint256",
1072
+ name: "",
1073
+ type: "uint256",
1074
+ },
1075
+ ],
1076
+ stateMutability: "view",
1077
+ type: "function",
1078
+ },
1079
+ {
1080
+ inputs: [],
1081
+ name: "pause",
1082
+ outputs: [],
1083
+ stateMutability: "nonpayable",
1084
+ type: "function",
1085
+ },
1086
+ {
1087
+ inputs: [],
1088
+ name: "referrals",
1089
+ outputs: [
1090
+ {
1091
+ internalType: "address",
1092
+ name: "",
1093
+ type: "address",
1094
+ },
1095
+ ],
1096
+ stateMutability: "view",
1097
+ type: "function",
1098
+ },
1099
+ {
1100
+ inputs: [
1101
+ {
1102
+ internalType: "uint256",
1103
+ name: "_daiVaultFeeP",
1104
+ type: "uint256",
1105
+ },
1106
+ {
1107
+ internalType: "uint256",
1108
+ name: "_lpFeeP",
1109
+ type: "uint256",
1110
+ },
1111
+ {
1112
+ internalType: "uint256",
1113
+ name: "_sssFeeP",
1114
+ type: "uint256",
1115
+ },
1116
+ ],
1117
+ name: "setClosingFeeSharesP",
1118
+ outputs: [],
1119
+ stateMutability: "nonpayable",
1120
+ type: "function",
1121
+ },
1122
+ {
1123
+ inputs: [
1124
+ {
1125
+ components: [
1126
+ {
1127
+ internalType: "address",
1128
+ name: "trader",
1129
+ type: "address",
1130
+ },
1131
+ {
1132
+ internalType: "uint256",
1133
+ name: "pairIndex",
1134
+ type: "uint256",
1135
+ },
1136
+ {
1137
+ internalType: "uint256",
1138
+ name: "index",
1139
+ type: "uint256",
1140
+ },
1141
+ {
1142
+ internalType: "enum IGNSTradingCallbacks.TradeType",
1143
+ name: "tradeType",
1144
+ type: "uint8",
1145
+ },
1146
+ ],
1147
+ internalType: "struct IGNSTradingCallbacks.SimplifiedTradeId",
1148
+ name: "_id",
1149
+ type: "tuple",
1150
+ },
1151
+ {
1152
+ components: [
1153
+ {
1154
+ internalType: "uint40",
1155
+ name: "maxSlippageP",
1156
+ type: "uint40",
1157
+ },
1158
+ {
1159
+ internalType: "uint48",
1160
+ name: "lastOiUpdateTs",
1161
+ type: "uint48",
1162
+ },
1163
+ {
1164
+ internalType: "uint48",
1165
+ name: "collateralPriceUsd",
1166
+ type: "uint48",
1167
+ },
1168
+ {
1169
+ internalType: "uint120",
1170
+ name: "_placeholder",
1171
+ type: "uint120",
1172
+ },
1173
+ ],
1174
+ internalType: "struct IGNSTradingCallbacks.TradeData",
1175
+ name: "_tradeData",
1176
+ type: "tuple",
1177
+ },
1178
+ ],
1179
+ name: "setTradeData",
1180
+ outputs: [],
1181
+ stateMutability: "nonpayable",
1182
+ type: "function",
1183
+ },
1184
+ {
1185
+ inputs: [
1186
+ {
1187
+ components: [
1188
+ {
1189
+ internalType: "address",
1190
+ name: "trader",
1191
+ type: "address",
1192
+ },
1193
+ {
1194
+ internalType: "uint256",
1195
+ name: "pairIndex",
1196
+ type: "uint256",
1197
+ },
1198
+ {
1199
+ internalType: "uint256",
1200
+ name: "index",
1201
+ type: "uint256",
1202
+ },
1203
+ {
1204
+ internalType: "enum IGNSTradingCallbacks.TradeType",
1205
+ name: "tradeType",
1206
+ type: "uint8",
1207
+ },
1208
+ ],
1209
+ internalType: "struct IGNSTradingCallbacks.SimplifiedTradeId",
1210
+ name: "_id",
1211
+ type: "tuple",
1212
+ },
1213
+ {
1214
+ components: [
1215
+ {
1216
+ internalType: "uint32",
1217
+ name: "tp",
1218
+ type: "uint32",
1219
+ },
1220
+ {
1221
+ internalType: "uint32",
1222
+ name: "sl",
1223
+ type: "uint32",
1224
+ },
1225
+ {
1226
+ internalType: "uint32",
1227
+ name: "limit",
1228
+ type: "uint32",
1229
+ },
1230
+ {
1231
+ internalType: "uint32",
1232
+ name: "created",
1233
+ type: "uint32",
1234
+ },
1235
+ ],
1236
+ internalType: "struct IGNSTradingCallbacks.LastUpdated",
1237
+ name: "_lastUpdated",
1238
+ type: "tuple",
1239
+ },
1240
+ ],
1241
+ name: "setTradeLastUpdated",
1242
+ outputs: [],
1243
+ stateMutability: "nonpayable",
1244
+ type: "function",
1245
+ },
1246
+ {
1247
+ inputs: [],
1248
+ name: "sssFeeP",
1249
+ outputs: [
1250
+ {
1251
+ internalType: "uint256",
1252
+ name: "",
1253
+ type: "uint256",
1254
+ },
1255
+ ],
1256
+ stateMutability: "view",
1257
+ type: "function",
1258
+ },
1259
+ {
1260
+ inputs: [],
1261
+ name: "staking",
1262
+ outputs: [
1263
+ {
1264
+ internalType: "contract IGNSStaking",
1265
+ name: "",
1266
+ type: "address",
1267
+ },
1268
+ ],
1269
+ stateMutability: "view",
1270
+ type: "function",
1271
+ },
1272
+ {
1273
+ inputs: [],
1274
+ name: "storageT",
1275
+ outputs: [
1276
+ {
1277
+ internalType: "contract IGNSTradingStorage",
1278
+ name: "",
1279
+ type: "address",
1280
+ },
1281
+ ],
1282
+ stateMutability: "view",
1283
+ type: "function",
1284
+ },
1285
+ {
1286
+ inputs: [
1287
+ {
1288
+ internalType: "address",
1289
+ name: "",
1290
+ type: "address",
1291
+ },
1292
+ {
1293
+ internalType: "uint256",
1294
+ name: "",
1295
+ type: "uint256",
1296
+ },
1297
+ {
1298
+ internalType: "uint256",
1299
+ name: "",
1300
+ type: "uint256",
1301
+ },
1302
+ {
1303
+ internalType: "enum IGNSTradingCallbacks.TradeType",
1304
+ name: "",
1305
+ type: "uint8",
1306
+ },
1307
+ ],
1308
+ name: "tradeData",
1309
+ outputs: [
1310
+ {
1311
+ internalType: "uint40",
1312
+ name: "maxSlippageP",
1313
+ type: "uint40",
1314
+ },
1315
+ {
1316
+ internalType: "uint48",
1317
+ name: "lastOiUpdateTs",
1318
+ type: "uint48",
1319
+ },
1320
+ {
1321
+ internalType: "uint48",
1322
+ name: "collateralPriceUsd",
1323
+ type: "uint48",
1324
+ },
1325
+ {
1326
+ internalType: "uint120",
1327
+ name: "_placeholder",
1328
+ type: "uint120",
1329
+ },
1330
+ ],
1331
+ stateMutability: "view",
1332
+ type: "function",
1333
+ },
1334
+ {
1335
+ inputs: [
1336
+ {
1337
+ internalType: "address",
1338
+ name: "",
1339
+ type: "address",
1340
+ },
1341
+ {
1342
+ internalType: "uint256",
1343
+ name: "",
1344
+ type: "uint256",
1345
+ },
1346
+ {
1347
+ internalType: "uint256",
1348
+ name: "",
1349
+ type: "uint256",
1350
+ },
1351
+ {
1352
+ internalType: "enum IGNSTradingCallbacks.TradeType",
1353
+ name: "",
1354
+ type: "uint8",
1355
+ },
1356
+ ],
1357
+ name: "tradeLastUpdated",
1358
+ outputs: [
1359
+ {
1360
+ internalType: "uint32",
1361
+ name: "tp",
1362
+ type: "uint32",
1363
+ },
1364
+ {
1365
+ internalType: "uint32",
1366
+ name: "sl",
1367
+ type: "uint32",
1368
+ },
1369
+ {
1370
+ internalType: "uint32",
1371
+ name: "limit",
1372
+ type: "uint32",
1373
+ },
1374
+ {
1375
+ internalType: "uint32",
1376
+ name: "created",
1377
+ type: "uint32",
1378
+ },
1379
+ ],
1380
+ stateMutability: "view",
1381
+ type: "function",
1382
+ },
1383
+ ];
1384
+ const _bytecode = "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615b3b80620000f36000396000f3fe608060405234801561001057600080fd5b50600436106101cb5760003560e01c806361ba6c3d1161010a578063a38ea9a8116100ad578063c68078b91161007c578063c68078b914610526578063c68365df14610539578063c843e81c14610542578063d3dc753914610555578063e41518461461056857600080fd5b8063a38ea9a8146104f5578063ae8421e1146104fe578063b187bd2614610506578063b47ee4081461051357600080fd5b806361ba6c3d146103f0578063676c5164146104035780637bb6c11c1461040c5780637d490caf146104155780637e09ae8a146104285780638456cb591461043b5780638f062227146104435780639bd24d831461046557600080fd5b80633581296011610172578063358129601461029357806337429e4b146102a65780633a3ec5b0146102b957806346f93a63146102cc5780634cf088d914610379578063531cc9651461038c5780635ad9f9931461039f5780635c0ab4de146103b257600080fd5b80630241e050146101d05780631346b0ff146101da578063154edef11461020a57806316fff0741461021d57806318407fe01461023657806323f7197b1461024d578063281b693c1461026057806329b6eca914610280575b600080fd5b6101d86105bb565b005b6002546101ed906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101d8610218366004614d32565b61067d565b6000546101ed906201000090046001600160a01b031681565b61023f600e5481565b604051908152602001610201565b6101d861025b366004614e1b565b610803565b61023f61026e366004614e75565b600c6020526000908152604090205481565b6101d861028e366004614d32565b6112e6565b6010546101ed906001600160a01b031681565b6101d86102b4366004614ec1565b6113a6565b6101d86102c7366004614f63565b6114b7565b61033c6102da366004614fab565b600d60209081526000948552604080862082529385528385208152918452828420909152825290205464ffffffffff81169065ffffffffffff600160281b8204811691600160581b8104909116906001600160781b03600160881b9091041684565b6040805164ffffffffff95909516855265ffffffffffff938416602086015291909216908301526001600160781b03166060820152608001610201565b6004546101ed906001600160a01b031681565b600b546101ed906001600160a01b031681565b6001546101ed906001600160a01b031681565b600f546103d0906001600160801b0380821691600160801b90041682565b604080516001600160801b03938416815292909116602083015201610201565b6101d86103fe366004614e1b565b611713565b61023f60095481565b61023f60075481565b6101d8610423366004614e1b565b611a4e565b6101d8610436366004615007565b612014565b6101d861211d565b60085461045590610100900460ff1681565b6040519015158152602001610201565b6104c5610473366004614fab565b600a60209081526000948552604080862082529385528385208152918452828420909152825290205463ffffffff808216916401000000008104821691600160401b8204811691600160601b90041684565b6040805163ffffffff95861681529385166020850152918416918301919091529091166060820152608001610201565b61023f60055481565b6101d8612173565b6008546104559060ff1681565b6101d8610521366004614e1b565b6121d3565b6101d861053436600461508f565b6129e4565b61023f60065481565b6101d86105503660046150bb565b612a6e565b6003546101ed906001600160a01b031681565b61057b610576366004614fab565b612d6c565b6040516102019190815163ffffffff9081168252602080840151821690830152604080840151821690830152606092830151169181019190915260800190565b6105c3612e39565b600e80546000918290559054604080516312d43a5160e01b81529051610647926201000090046001600160a01b0316916312d43a519160048083019260209291908290030181865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106419190615146565b82612ecc565b6040518181527f39b06677afbdb5c3b9934c9ce55728be609a055c398ecd957e8d19a5d3d80a5b9060200160405180910390a150565b600054600690610100900460ff1615801561069f575060005460ff8083169116105b6106c45760405162461bcd60e51b81526004016106bb90615163565b60405180910390fd5b6000805461ffff191660ff8316176101001790556001600160a01b0382166106ff57604051635863f78960e01b815260040160405180910390fd5b600280546001600160a01b03199081169091556003805490911690556000546040805163f4b9fa7560e01b81529051610795926201000090046001600160a01b03169163f4b9fa759160048083019260209291908290030181865afa15801561076c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107909190615146565b612f43565b80516020918201516001600160801b03908116600160801b02911617600f55601080546001600160a01b0385166001600160a01b03199091161790556000805461ff001916905560405160ff83168152600080516020615ae683398151915291015b60405180910390a15050565b61080b613000565b610813613033565b6000805482516040516399794d3560e01b81526004810191909152620100009091046001600160a01b0316906399794d359060240160c060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906151b1565b90506000604051806080016040528083604001516001600160a01b0316815260200183606001518152602001836080015181526020018360a0015160038111156108d5576108d5615229565b815250905060006108f383604001518460600151856080015161305c565b905060006108ff6130e9565b9050600085606001516000146109275760e08301511561092057600061092a565b600961092a565b60025b9050600081600b81111561094057610940615229565b036111ae57600061095e846000015185602001518660400151613166565b9050610968614bd9565b600f54600160801b90046001600160801b031661014082015260e085015160608601516109a89161099891615255565b826101400151846020015161321b565b6020820181905260e08601516109bd9161526c565b815260028760a0015160038111156109d7576109d7615229565b03610ad157600b546040805160e0808201835288516001600160a01b0390811683526020808b01519084019081528a85015184860190815260a0808d01516060870190815260c0808f01511515608089019081528b51938901938452968f01519088019081529751633837d79d60e11b8152965185166004880152925160248701529051604486015290516064850152915115156084840152905160a4830152915160c482015291169063706faf3a9060e401602060405180830381865afa158015610aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acb919061528e565b60a08201525b60008760a001516003811115610ae957610ae9615229565b14610b205760018760a001516003811115610b0657610b06615229565b14610b15578060a00151610b27565b846101200151610b27565b8461010001515b6080820181905215801590610b44575080608001518860a0015111155b8015610b5857508060800151886080015110155b158015610180830152610c505760028760a001516003811115610b7d57610b7d615229565b14610c2c576010546020860151604051634e46e97d60e11b81526402540be400926064926001600160a01b0390911691639c8dd2fa91610bc39160040190815260200190565b602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c04919061528e565b8360200151610c139190615255565b610c1d919061526c565b610c27919061526c565b610c46565b8051606490610c3c906005615255565b610c46919061526c565b60e0820152610e38565b6060880151608082015260028760a001516003811115610c7257610c72615229565b14610de65760008760a001516003811115610c8f57610c8f615229565b148015610ca157506000856101000151115b8015610cd157508460c00151610cc35784610100015188606001511115610cd1565b846101000151886060015110155b80610d31575060018760a001516003811115610cef57610cef615229565b148015610d0157506000856101200151115b8015610d3157508460c00151610d235784610120015188606001511015610d31565b846101200151886060015111155b610d3c576000610e32565b6010546020860151604051634e46e97d60e11b81526402540be400926064926001600160a01b0390911691639c8dd2fa91610d7d9160040190815260200190565b602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe919061528e565b8360200151610dcd9190615255565b610dd7919061526c565b610de1919061526c565b610e32565b8460c00151610e00578060a0015188606001511015610e0d565b8060a00151886060015111155b610e18576000610e32565b8051606490610e28906005615255565b610e32919061526c565b60e08201525b60e081015115610e49576000610e4c565b600b5b9250600083600b811115610e6257610e62615229565b036111ab5760a0850151608082015160c087015160e08801516040516377329e0160e11b81526004810194909452602484019290925215156044830152606482015273__$fd374eed6e4960d4b0d454ffeec12874a4$__9063ee653c0290608401602060405180830381865af4158015610ee0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f04919061528e565b816060018181525050836001600160a01b0316633c88e8826040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f71919061528e565b81604001818152505061107785600083606001518460000151866040015160026003811115610fa257610fa2615229565b8d60a001516003811115610fb857610fb8615229565b146110675760105460208c01516040516341b51a0d60e11b81526402540be400926064926001600160a01b039091169163836a341a91610ffe9160040190815260200190565b602060405180830381865afa15801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f919061528e565b896020015161104e9190615255565b611058919061526c565b611062919061526c565b61106d565b8660e001515b8760e0015161324b565b60c0820152845160105460e083015161112892899290916001600160a01b0390911690634f09a236908390600a906110b0906002615255565b6110ba919061526c565b6040518363ffffffff1660e01b81526004016110d79291906152a7565b602060405180830381865afa1580156110f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611118919061528e565b84604001518561014001516139bc565b86600001516001600160a01b031688600001517fa97091b8c54bf9d1906c2a06322d0ea74fedde4538cdcdf95d81d0ffdca418578960800151888b60a0015186608001516000886000015189606001518a60c001516111868f613a79565b8c61018001516040516111a29a99989796959493929190615348565b60405180910390a35b50505b600081600b8111156111c2576111c2615229565b14611215578451865160a08701516040516001600160a01b03909316927fe9681b5336d843735c62e93114e5a0f45912a84ae83fa3f3ed80ca5ad933dfc39161120c9186906153bb565b60405180910390a35b60015460405163bf654d2b60e01b81526001600160a01b039091169063bf654d2b9061124590879060040161540d565b600060405180830381600087803b15801561125f57600080fd5b505af1158015611273573d6000803e3d6000fd5b5050600054885160405163201d8bdb60e01b81526004810191909152620100009091046001600160a01b0316925063201d8bdb91506024015b600060405180830381600087803b1580156112c657600080fd5b505af11580156112da573d6000803e3d6000fd5b50505050505050505050565b600054600290610100900460ff16158015611308575060005460ff8083169116105b6113245760405162461bcd60e51b81526004016106bb90615163565b6000805461ffff191660ff8316176101001790556001600160a01b03821661135f57604051635863f78960e01b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0384161790556000805461ff001916905560405160ff82168152600080516020615ae6833981519152906020016107f7565b6113ae613ae3565b80600d60006113c06020860186614d32565b6001600160a01b03168152602080820192909252604090810160009081208684013582528352818120868301358252909252812090611405608086016060870161541b565b600181111561141657611416615229565b600181111561142757611427615229565b815260208082019290925260409081016000208351815493850151928501516060909501516001600160781b0316600160881b026001600160881b0365ffffffffffff968716600160581b02166affffffffffffffffffffff96909416600160281b026affffffffffffffffffffff1990951664ffffffffff909216919091179390931793909316171790555050565b600054600490610100900460ff161580156114d9575060005460ff8083169116105b6114f55760405162461bcd60e51b81526004016106bb90615163565b6000805461ffff191660ff8316176101001790556001600160a01b0383161580159061152957506001600160a01b03821615155b61154657604051635863f78960e01b815260040160405180910390fd5b60008060029054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561159a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115be9190615146565b6004805460405163095ea7b360e01b81529293506001600160a01b038085169363095ea7b3936115f59390921691600091016152a7565b6020604051808303816000875af1158015611614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116389190615446565b5060405163095ea7b360e01b81526001600160a01b0382169063095ea7b390611669908790600019906004016152a7565b6020604051808303816000875af1158015611688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ac9190615446565b5050600480546001600160a01b038581166001600160a01b03199283161790925560018054928516929091169190911790556000805461ff001916905560405160ff82168152600080516020615ae6833981519152906020015b60405180910390a1505050565b61171b613000565b611723613033565b60006117328260000151613b16565b90508060200151600003611744575050565b600081600001519050600080600073__$fd374eed6e4960d4b0d454ffeec12874a4$__6334085e66604051806101800160405280600860009054906101000a900460ff1615158152602001896020015181526020018860400151815260200189602001518152602001896040015181526020018760c001511515815260200187602001518152602001876080015181526020018760e001518152602001886060015181526020018761010001518152602001876101200151815250600b60009054906101000a90046001600160a01b0316600060029054906101000a90046001600160a01b0316601060009054906101000a90046001600160a01b03166118496130e9565b6040518663ffffffff1660e01b8152600401611869959493929190615461565b606060405180830381865af4158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118aa919061551b565b60a0870182905291945092509050600081600b8111156118cc576118cc615229565b0361195d5760006118df85600080613b91565b905086600001517fca42b0e44cd853d207b87e8f8914eaefef9c9463a8c77ca33754aa62f6904f0082600001516001846000015160a00151886119338760000151606001518860600151896020015161321b565b600080896040015160405161194f989796959493929190615558565b60405180910390a250611a0b565b611971846000015160008660200151614546565b600061199b856000015186602001518760e0015188608001516119949190615255565b60016145f3565b90506119ba85600001518287608001516119b591906155a3565b612ecc565b846020015185600001516001600160a01b031688600001517f1dc3532663e5566091476fb5aba1e514ef733714c83d4feec5723de6f16c326985604051611a0191906155b6565b60405180910390a4505b6000548651604051630195728b60e71b8152600481019190915260016024820152620100009091046001600160a01b03169063cab94580906044016112ac565b50565b611a56613000565b611a5e613033565b6000611a6d8260000151613b16565b90508060200151600003611a7f575050565b805180516020820151604090920151600092611a9b929161305c565b905060008160e00151600014611ac357602084015115611abc576000611ac6565b6002611ac6565b60095b9050600981600b811115611adc57611adc615229565b14611f2c576000611afa836000015184602001518560400151613166565b90506000611b066130e9565b9050611b10614bd9565b600f54600160801b90046001600160801b031661014082015260e08501516060860151611b5091611b4091615255565b826101400151856020015161321b565b816020018181525050816001600160a01b0316633c88e8826040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbd919061528e565b6040820152600084600b811115611bd657611bd6615229565b03611e605760a0850151602088015160c087015160e08801516040516377329e0160e11b81526004810194909452602484019290925215156044830152606482015273__$fd374eed6e4960d4b0d454ffeec12874a4$__9063ee653c0290608401602060405180830381865af4158015611c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c78919061528e565b606082015260e08501516020820151611c91919061526c565b808252606082015160408581015160105460208a015192516341b51a0d60e11b81526004810193909352611df3948a94600194909391926402540be400916064916001600160a01b03169063836a341a90602401602060405180830381865afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d26919061528e565b8960200151611d359190615255565b611d3f919061526c565b611d49919061526c565b60105460208d0151604051634e46e97d60e11b81526402540be400926064926001600160a01b0390911691639c8dd2fa91611d8a9160040190815260200190565b602060405180830381865afa158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcb919061528e565b8a60200151611dda9190615255565b611de4919061526c565b611dee919061526c565b61324b565b60c08201819052875160208901518351606085015192937fca42b0e44cd853d207b87e8f8914eaefef9c9463a8c77ca33754aa62f6904f00938a936000939092849290611e3f8b613a79565b604051611e53989796959493929190615558565b60405180910390a2611f28565b611e74856000015160008760200151614546565b6000611e9586600001518760200151846020015160008a60800151116145f3565b9050611eab81836101400151866020015161475e565b86606001818151611ebc91906155a3565b905250600054604051631a97b52160e31b8152620100009091046001600160a01b03169063d4bda90890611ef49089906004016155c4565b600060405180830381600087803b158015611f0e57600080fd5b505af1158015611f22573d6000803e3d6000fd5b50505050505b5050505b600081600b811115611f4057611f40615229565b14611f9f578251602081015181518651604093840151935192936001600160a01b039092169290917f293df767d6749666902026d2f6a2cc4e5f15cdede46402226c42ef4fdf27a17c91611f96919087906155d3565b60405180910390a45b600080548551604051630195728b60e71b8152600481019190915260248101929092526201000090046001600160a01b03169063cab94580906044015b600060405180830381600087803b158015611ff657600080fd5b505af115801561200a573d6000803e3d6000fd5b5050505050505050565b61201c613ae3565b80600a600061202e6020860186614d32565b6001600160a01b03168152602080820192909252604090810160009081208684013582528352818120868301358252909252812090612073608086016060870161541b565b600181111561208457612084615229565b600181111561209557612095615229565b8152602080820192909252604090810160002083518154938501519285015160609095015163ffffffff908116600160601b0263ffffffff60601b19968216600160401b029690961667ffffffffffffffff60401b199482166401000000000267ffffffffffffffff1990961691909216179390931791909116919091179190911790555050565b612125612e39565b6008805460ff8082161560ff1990921682179092556040519116151581527f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f459304906020015b60405180910390a1565b61217b612e39565b6008805460ff610100808304821615810261ff001990931692909217928390556040517fc3a6f986261de9467c2838c6df8ef74f9107855159205600c0bc7a14cdfd3888936121699390049091161515815260200190565b6121db613000565b6121e3613033565b6000805482516040516399794d3560e01b81526004810191909152620100009091046001600160a01b0316906399794d359060240160c060405180830381865afa158015612235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225991906151b1565b60008054604083810151606085015160808601519251636e6f99cd60e11b81529596509394620100009093046001600160a01b03169363dcdf339a936122a293906004016155e7565b602060405180830381865afa1580156122bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e39190615446565b156122ef5760006122f2565b60095b9050600081600b81111561230857612308615229565b036128555760008054604084810151606086015160808701519251632e21e28b60e21b8152620100009094046001600160a01b03169363b8878a2c936123529392916004016155e7565b6101a060405180830381865afa158015612370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123949190615608565b600154604080860151606087015160808801519251636a6f32f560e11b81529495506000946001600160a01b039094169363d4de65ea936123d99392916004016155e7565b602060405180830381865afa1580156123f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241a91906156bb565b905081610140015185608001511015801561243e57508161014001518560a0015111155b61244957600b61244c565b60005b60408051610180810190915260085460ff16151581529093506000908190819073__$fd374eed6e4960d4b0d454ffeec12874a4$__906334085e669060208101848a600b81111561249f5761249f615229565b146124ae578b606001516124b5565b8861014001515b815261014089015160208083019190915260608d810151604080850191909152808f01518285015260a0808d015115156080860152838d01805191860191909152918c015160c0808601919091528c015160e08501528b516001600160a01b03166000908152600d845281812092518152918352808220818d01518352909252908120610100909201919060018152602080820192909252604090810160009081205464ffffffffff16845260e08c0151928401929092526101008b0151920191909152600b5490546010546001600160a01b039283169262010000909204821691166125a06130e9565b6040518663ffffffff1660e01b81526004016125c0959493929190615461565b606060405180830381865af41580156125dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612601919061551b565b9194509250905060008087600b81111561261d5761261d615229565b1490508015816126a15750610140860151158061264b5750600285600281111561264957612649615229565b145b61267a578560a00151612669578561014001518960600151106126a1565b8561014001518960600151116126a1565b8560a00151612694578561014001518960600151116126a1565b8561014001518960600151105b6126ab57816126ae565b600b5b9650600087600b8111156126c4576126c4615229565b0361284e57600061274a60405180610140016040528089600001516001600160a01b03168152602001896020015181526020016000815260200160008152602001896060015181526020018681526020018960a00151151581526020018960c0015181526020018960e00151815260200189610100015181525060018b60800151613b91565b600054885160208a01516040808c0151905163b4b0f56760e01b8152949550620100009093046001600160a01b03169363b4b0f5679361278e9392916004016155e7565b600060405180830381600087803b1580156127a857600080fd5b505af11580156127bc573d6000803e3d6000fd5b5050505088600001516001600160a01b03168a600001517fa97091b8c54bf9d1906c2a06322d0ea74fedde4538cdcdf95d81d0ffdca418578b6080015184600001516003866000015160a001518b6128258960000151606001518a606001518b6020015161321b565b6000808b604001518d6040516128449a99989796959493929190615348565b60405180910390a3505b5050505050505b600081600b81111561286957612869615229565b146128bc5781600001516001600160a01b031683600001517fe9681b5336d843735c62e93114e5a0f45912a84ae83fa3f3ed80ca5ad933dfc36003846040516128b39291906153bb565b60405180910390a35b600160009054906101000a90046001600160a01b03166001600160a01b031663bf654d2b604051806080016040528085604001516001600160a01b0316815260200185606001518152602001856080015181526020018560a00151600381111561292857612928615229565b8152506040518263ffffffff1660e01b8152600401612947919061540d565b600060405180830381600087803b15801561296157600080fd5b505af1158015612975573d6000803e3d6000fd5b5050600054855160405163201d8bdb60e01b81526004810191909152620100009091046001600160a01b0316925063201d8bdb9150602401600060405180830381600087803b1580156129c757600080fd5b505af11580156129db573d6000803e3d6000fd5b50505050505050565b6129ec612e39565b806129f783856156dc565b612a0191906156dc565b606414612a2157604051635863f78960e01b815260040160405180910390fd5b60058390556006829055600781905560408051848152602081018490529081018290527f0caa98ed9a1605da290817d1f67b1b83c63f9229abeca5123df5d90581c4955890606001611706565b600054610100900460ff1615808015612a8e5750600054600160ff909116105b80612aa85750303b158015612aa8575060005460ff166001145b612ac45760405162461bcd60e51b81526004016106bb90615163565b6000805460ff191660011790558015612ae7576000805461ff0019166101001790555b6001600160a01b03891615801590612b0757506001600160a01b03881615155b8015612b1b57506001600160a01b03871615155b8015612b2f57506001600160a01b03861615155b8015612b4f575082612b4185876156dc565b612b4b91906156dc565b6064145b8015612b5c575060058211155b612b7957604051635863f78960e01b815260040160405180910390fd5b6000805462010000600160b01b031916620100006001600160a01b038c8116820292909217808455600180546001600160a01b03199081168e861617909155600480549091168c851617815560058a90556006899055600788905560098790556040805163f4b9fa7560e01b81529051939092049093169263f4b9fa759282820192602092908290030181865afa158015612c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3c9190615146565b6004805460405163095ea7b360e01b81529293506001600160a01b038085169363095ea7b393612c74939092169160001991016152a7565b6020604051808303816000875af1158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190615446565b5060405163095ea7b360e01b81526001600160a01b0382169063095ea7b390612ce8908a90600019906004016152a7565b6020604051808303816000875af1158015612d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2b9190615446565b50508015612d61576000805461ff001916905560405160018152600080516020615ae68339815191529060200160405180910390a15b505050505050505050565b6040805160808101825260008082526020808301829052828401829052606083018290526001600160a01b0388168252600a8152838220878352815283822086835290529182209091836001811115612dc757612dc7615229565b6001811115612dd857612dd8615229565b815260208082019290925260409081016000208151608081018352905463ffffffff80821683526401000000008204811694830194909452600160401b8104841692820192909252600160601b909104909116606082015295945050505050565b6010546040516395a8c58d60e01b81526001600160a01b03909116906395a8c58d90612e6c9033906001906004016156ef565b602060405180830381865afa158015612e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ead9190615446565b612eca57604051631dd2188d60e31b815260040160405180910390fd5b565b60005460405163373873db60e11b81526001600160a01b0362010000909204821660048201819052918416602482015260448101839052636e70e7b6906064015b600060405180830381600087803b158015612f2757600080fd5b505af1158015612f3b573d6000803e3d6000fd5b505050505050565b60408051808201909152600080825260208201526000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb919061571c565b60ff169050612fcb81600a615823565b6001600160801b03168252612fe18160126155a3565b612fec90600a615823565b6001600160801b0316602083015250919050565b6010546040516395a8c58d60e01b81526001600160a01b03909116906395a8c58d90612e6c9033906005906004016156ef565b600854610100900460ff1615612eca57604051631dd2188d60e31b815260040160405180910390fd5b613064614c4c565b6000546040516351d407ff60e11b8152620100009091046001600160a01b03169063a3a80ffe9061309d908790879087906004016155e7565b61014060405180830381865afa1580156130bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130df91906158c2565b90505b9392505050565b60008060029054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190615146565b905090565b6131a16040518060c0016040528060008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b600054604051638c8ff1d560e01b8152620100009091046001600160a01b031690638c8ff1d5906131da908790879087906004016155e7565b60c060405180830381865afa1580156131f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130df91906158df565b60006402540be4006001600160801b0384166132378487615255565b613241919061526c565b6130df919061526c565b600080600060029054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c59190615146565b90506132da8960000151868b60200151614546565b6010548951604051632784d11b60e11b81526001600160a01b0390921691634f09a2369161330c9188906004016152a7565b602060405180830381865afa158015613329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334d919061528e565b6010548a51604051632784d11b60e11b81529296506001600160a01b0390911691634f09a236916133829187906004016152a7565b602060405180830381865afa15801561339f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c3919061528e565b9250600073__$fd374eed6e4960d4b0d454ffeec12874a4$__63270615458b898b6133ee898b6156dc565b600f54600b5460405160e088901b6001600160e01b03191681526134339695949392600160801b90046001600160801b0316916001600160a01b031690600401615931565b6040805180830381865af415801561344f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613473919061597f565b8b5160408051848152602081018490529396509193506001600160a01b0316917fe7d34775bf6fd7b34e703a903ef79ab16166ebdffce96a66f4d2f84b6263bb29910160405180910390a250600b54895160208b01516040808d015160c08e0151915163ce67edfb60e01b81526001600160a01b039485166004820152602481019390935260448301526064820189905260006084830152151560a482015291169063ce67edfb9060c401600060405180830381600087803b15801561353857600080fd5b505af115801561354c573d6000803e3d6000fd5b50508a516001600160a01b03166000908152600d60209081526040808320828f015184528252808320818f01518452909152812090925090508180815260208082019290925260409081016000208151608081018352905464ffffffffff81168252600160281b810465ffffffffffff90811694830194909452600160581b8104909316918101829052600160881b9092046001600160781b03166060830152601054600f549293506001600160a01b03169163d01c920291613622918a91600160801b9091046001600160801b031690614784565b6020808e015160c08f0151918601516040516001600160e01b031960e087901b16815260048101949094526024840191909152901515604483015265ffffffffffff166064820152608401600060405180830381600087803b15801561368757600080fd5b505af115801561369b573d6000803e3d6000fd5b5050505050600060029054906101000a90046001600160a01b03166001600160a01b03166390d112b98a600001518b602001518c604001516040518463ffffffff1660e01b81526004016136f1939291906155e7565b600060405180830381600087803b15801561370b57600080fd5b505af115801561371f573d6000803e3d6000fd5b5050505060808901511561394a57613735614bd9565b6064600554866137459190615255565b61374f919061526c565b6101008201819052613762903090612ecc565b61010081015160405163940a4e4560e01b815260048101919091526001600160a01b0383169063940a4e4590602401600060405180830381600087803b1580156137ab57600080fd5b505af11580156137bf573d6000803e3d6000fd5b5050505089600001516001600160a01b03167f60c73da98faf96842eabd77a0c73964cd189dbaf2c9ae90923a3fed137f30e3e82610100015160405161380791815260200190565b60405180910390a260646007548661381f9190615255565b613829919061526c565b8961384a57600a61383b866008615255565b613845919061526c565b61384c565b845b61385691906156dc565b61012082018190528a516138699161479f565b60008161010001518261012001518961388291906155a3565b61388c91906155a3565b905080841115613923576001600160a01b03831663e66a6e3b6138af83876155a3565b8d5160405160e084901b6001600160e01b031916815260048101929092526001600160a01b03166024820152604401600060405180830381600087803b1580156138f857600080fd5b505af115801561390c573d6000803e3d6000fd5b5050505061391e8b6000015182612ecc565b613943565b61393761393085836155a3565b8c516148c0565b8a516139439085612ecc565b50506139b0565b885160405163e66a6e3b60e01b8152600481018490526001600160a01b0391821660248201529082169063e66a6e3b90604401600060405180830381600087803b15801561399757600080fd5b505af11580156139ab573d6000803e3d6000fd5b505050505b50979650505050505050565b60006139c984838561475e565b600154604051636fc1c9a960e11b81529192506001600160a01b03169063df839352906139fc90899085906004016159a3565b600060405180830381600087803b158015613a1657600080fd5b505af1158015613a2a573d6000803e3d6000fd5b50505050846001600160a01b03167f17fa86cf4833d28c6224a940e6bd001f2db0cb3d89d69727765679b3efee655985604051613a6991815260200190565b60405180910390a2505050505050565b6000816001600160a01b0316632f4a7eb26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613add919061528e565b92915050565b6010546040516395a8c58d60e01b81526001600160a01b03909116906395a8c58d90612e6c9033906003906004016156ef565b613b1e614caa565b60005460405163b66e6b0560e01b815260048101849052620100009091046001600160a01b03169063b66e6b05906024016101e060405180830381865afa158015613b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613add91906159be565b613b99614ce6565b6000613ba36130e9565b9050613bad614bd9565b600f54600160801b90046001600160801b0316610140820152613bcf82613a79565b61016082015260e08601516080870151613be99190615255565b816020018181525050816001600160a01b0316633c88e8826040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c56919061528e565b6040820152855160208083015190880151613c72929190614546565b6010548651604051631862c18d60e31b81526001600160a01b039182166004820152600092919091169063c3160c6890602401602060405180830381865afa158015613cc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce69190615146565b6001600160a01b031614613f835760105486516040516303d1d5af60e51b81526001600160a01b0380831660048301526402540be40093606493911691634f09a23691908390637a3ab5e090602401602060405180830381865afa158015613d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d76919061528e565b6040518363ffffffff1660e01b8152600401613d939291906152a7565b602060405180830381865afa158015613db0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dd4919061528e565b613de46402540be4006064615255565b613dee91906155a3565b8360200151613dfd9190615255565b613e07919061526c565b613e11919061526c565b815285516010546020830151604051632784d11b60e11b8152613f1093926001600160a01b031691634f09a23691613e4d9185916004016152a7565b602060405180830381865afa158015613e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e8e919061528e565b60105460208a0151604051638251135b60e01b81526001600160a01b0390921691638251135b91613ec59160040190815260200190565b602060405180830381865afa158015613ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f06919061528e565b8460400151614978565b60e082018190528651613f2391906148c0565b8060e0015186608001818151613f3991906155a3565b905250855160e08201516040519081526001600160a01b03909116907f0f5273269f52308b9c40fafda3ca13cc42f715fcd795365e87f351f59e2493139060200160405180910390a25b6000613fb1876000015188602001516000856000015111613fa8578460200151611994565b845160016145f3565b60e08301819052601054885160208a0151604051634e46e97d60e11b81529394506001600160a01b0390921692634f09a236926402540be400916064918691639c8dd2fa916140069160040190815260200190565b602060405180830381865afa158015614023573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614047919061528e565b87602001516140569190615255565b614060919061526c565b61406a919061526c565b6040518363ffffffff1660e01b81526004016140879291906152a7565b602060405180830381865afa1580156140a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140c8919061528e565b610100830181905260e08301516140df90836156dc565b6140e991906156dc565b876080018181516140fa91906155a3565b905250851561418057600a82610100015160026141179190615255565b614121919061526c565b6101208301819052875161413591906148c0565b6040805160808101825288516001600160a01b031681526020808a015190820152908101869052614180906060810160039052885161012085015160408601516101408701516139bc565b6141b287600001518361012001518461010001518560e001516141a391906156dc565b6141ad91906155a3565b61479f565b6000548751602089015160405163292c161760e01b8152620100009093046001600160a01b03169263292c1617926141ee9290916004016152a7565b602060405180830381865afa15801561420b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061422f919061528e565b8760400181815250506142508760800151836101400151846040015161475e565b606088015260405163b67d065360e01b815273__$fd374eed6e4960d4b0d454ffeec12874a4$__9063b67d06539061428c908a906004016155c4565b6040805180830381865af41580156142a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142cc919061597f565b61012089015261010088015260e087015160808801516142ec9190615255565b60208301819052600b5460105460405163f3b1238f60e01b815273__$fd374eed6e4960d4b0d454ffeec12874a4$__9363f3b1238f93614342936001600160a01b039182169391169189918e9190600401615a4f565b60006040518083038186803b15801561435a57600080fd5b505af415801561436e573d6000803e3d6000fd5b505088516001600160a01b039081166000908152600d60209081526040808320828e0180518552908352818420828f018051865290845282852085805284528285208f519096168552600a845282852091518552908352818420905184528252808320838052909152902061016086015173__$fd374eed6e4960d4b0d454ffeec12874a4$__945063d02329c69350614405614b58565b6040516001600160e01b031960e087901b16815260048101949094526024840192909252604483015263ffffffff16606482015260840160006040518083038186803b15801561445457600080fd5b505af4158015614468573d6000803e3d6000fd5b5050600080546040805160c0810182528381528782015160208083019190915288015181830152606081018490526080810184905260a08101939093525163c311ab3160e01b8152620100009091046001600160a01b0316935063c311ab3192506144d7918b91600401615a8e565b600060405180830381600087803b1580156144f157600080fd5b505af1158015614505573d6000803e3d6000fd5b505060408051608081018252998a528481015160208b0152610160850151908a015250505061014001516001600160801b0316606086015250929392505050565b60006145506130e9565b6001600160a01b031663766599fd846040518263ffffffff1660e01b815260040161457d91815260200190565b602060405180830381865afa15801561459a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145be919061528e565b601054604051630fed8a1960e41b81529192506001600160a01b03169063fed8a19090611fdc908790859087906004016155e7565b601054604051638251135b60e01b8152600481018590526000916001600160a01b031690634f09a2369087906064906402540be400908590638251135b90602401602060405180830381865afa158015614651573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614675919061528e565b61467f9089615255565b614689919061526c565b614693919061526c565b6040518363ffffffff1660e01b81526004016146b09291906152a7565b602060405180830381865afa1580156146cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146f1919061528e565b905081156147115780600e600082825461470b91906156dc565b90915550505b6040805182815283151560208201526001600160a01b038716917fccd80d359a6fbe0bfa5cbb1ecf0854adbe8c67b4ed6bf10d3c0d78c2be0f48cb910160405180910390a2949350505050565b6000816402540be40061477a6001600160801b03861687615255565b6132419190615255565b60006305f5e1008261477a6001600160801b03861687615255565b6147a93082612ecc565b600480546000546040805163f4b9fa7560e01b815290516001600160a01b0393841694631ec8bb8c94620100009094049093169263f4b9fa75928082019260209290918290030181865afa158015614805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148299190615146565b836040518363ffffffff1660e01b81526004016148479291906152a7565b600060405180830381600087803b15801561486157600080fd5b505af1158015614875573d6000803e3d6000fd5b50505050816001600160a01b03167fd1e388cc27c5125a80cf538c12b26dc5a784071d324a81a736e4d17f238588e4826040516148b491815260200190565b60405180910390a25050565b6148ca3083612ecc565b600060029054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561491d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149419190615146565b60405163a481c14b60e01b8152600481018490526001600160a01b038381166024830152919091169063a481c14b90604401612f0d565b6000806149836130e9565b60105460405163766599fd60e01b8152600481018890529192506001600160a01b038084169263a8c7550692919091169063fa3c8dbf908a90859063766599fd90602401602060405180830381865afa1580156149e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a08919061528e565b60405163a89280d160e01b8152600481018a90528a906001600160a01b0389169063a89280d190602401602060405180830381865afa158015614a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a73919061528e565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526024840192909252604483015260648201526084016020604051808303816000875af1158015614acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614aef919061528e565b6040518263ffffffff1660e01b8152600401614b0d91815260200190565b602060405180830381865afa158015614b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b4e919061528e565b9695505050505050565b600061a4b1461480614b6c575062066eee46145b15614bd45760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614bb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613161919061528e565b504390565b604051806101a001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160801b03168152602001600081526020016000151581525090565b60405180610140016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b6040518060c00160405280614cbd614c4c565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280614cf9614c4c565b8152602001600081526020016000815260200160006001600160801b031681525090565b6001600160a01b0381168114611a4b57600080fd5b600060208284031215614d4457600080fd5b81356130e281614d1d565b60405160c0810167ffffffffffffffff81118282101715614d8057634e487b7160e01b600052604160045260246000fd5b60405290565b6040516080810167ffffffffffffffff81118282101715614d8057634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715614d8057634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715614d8057634e487b7160e01b600052604160045260246000fd5b600060c08284031215614e2d57600080fd5b614e35614d4f565b823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201528091505092915050565b600060208284031215614e8757600080fd5b5035919050565b600060808284031215614ea057600080fd5b50919050565b803565ffffffffffff81168114614ebc57600080fd5b919050565b600080828403610100811215614ed657600080fd5b614ee08585614e8e565b92506080607f1982011215614ef457600080fd5b50614efd614d86565b608084013564ffffffffff81168114614f1557600080fd5b8152614f2360a08501614ea6565b6020820152614f3460c08501614ea6565b604082015260e08401356001600160781b0381168114614f5357600080fd5b6060820152919491935090915050565b60008060408385031215614f7657600080fd5b8235614f8181614d1d565b91506020830135614f9181614d1d565b809150509250929050565b803560028110614ebc57600080fd5b60008060008060808587031215614fc157600080fd5b8435614fcc81614d1d565b93506020850135925060408501359150614fe860608601614f9c565b905092959194509250565b803563ffffffff81168114614ebc57600080fd5b60008082840361010081121561501c57600080fd5b6150268585614e8e565b92506080607f198201121561503a57600080fd5b50615043614d86565b61504f60808501614ff3565b815261505d60a08501614ff3565b602082015261506e60c08501614ff3565b604082015261507f60e08501614ff3565b6060820152809150509250929050565b6000806000606084860312156150a457600080fd5b505081359360208301359350604090920135919050565b600080600080600080600080610100898b0312156150d857600080fd5b88356150e381614d1d565b975060208901356150f381614d1d565b9650604089013561510381614d1d565b9550606089013561511381614d1d565b979a969950949760808101359660a0820135965060c0820135955060e0909101359350915050565b8051614ebc81614d1d565b60006020828403121561515857600080fd5b81516130e281614d1d565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060c082840312156151c357600080fd5b6151cb614d4f565b82516151d681614d1d565b81526020838101519082015260408301516151f081614d1d565b80604083015250606083015160608201526080830151608082015260a08301516004811061521d57600080fd5b60a08201529392505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417613add57613add61523f565b60008261528957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156152a057600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b80516001600160a01b031682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015161531260c084018215159052565b5060e08181015190830152610100808201519083015261012090810151910152565b6004811061534457615344615229565b9052565b8a8152610260810161535d602083018c6152c0565b61536b61016083018b615334565b6101808201989098526101a08101969096526101c08601949094526101e08501929092526102008401526102208301521515610240909101529392505050565b600c811061534457615344615229565b604081016153c98285615334565b6130e260208301846153ab565b60018060a01b038151168252602081015160208301526040810151604083015260608101516154086060840182615334565b505050565b60808101613add82846153d6565b60006020828403121561542d57600080fd5b6130e282614f9c565b80518015158114614ebc57600080fd5b60006020828403121561545857600080fd5b6130e282615436565b85511515815261020081016020870151602083015260408701516040830152606087015160608301526080870151608083015260a08701516154a760a084018215159052565b5060c0878101519083015260e0808801519083015261010080880151908301526101208088015190830152610140808801519083015261016096870151968201969096526001600160a01b039485166101808201529284166101a08401529083166101c08301529091166101e09091015290565b60008060006060848603121561553057600080fd5b83519250602084015191506040840151600c811061554d57600080fd5b809150509250925092565b6102208101615567828b6152c0565b9715156101408201526101608101969096526101808601949094526101a08501929092526101c08401526101e083015261020090910152919050565b81810381811115613add57613add61523f565b60208101613add82846153ab565b6101408101613add82846152c0565b828152604081016130e260208301846153ab565b6001600160a01b039390931683526020830191909152604082015260600190565b60006101a0828403121561561b57600080fd5b615623614db7565b61562c8361513b565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015261566260a08401615436565b60a082015260c0838101519082015260e080840151908201526101008084015190820152610120808401519082015261014080840151908201526101608084015190820152610180928301519281019290925250919050565b6000602082840312156156cd57600080fd5b8151600381106130e257600080fd5b80820180821115613add57613add61523f565b6001600160a01b0383168152604081016006831061570f5761570f615229565b8260208301529392505050565b60006020828403121561572e57600080fd5b815160ff811681146130e257600080fd5b600181815b8085111561577a5781600019048211156157605761576061523f565b8085161561576d57918102915b93841c9390800290615744565b509250929050565b60008261579157506001613add565b8161579e57506000613add565b81600181146157b457600281146157be576157da565b6001915050613add565b60ff8411156157cf576157cf61523f565b50506001821b613add565b5060208310610133831016604e8410600b84101617156157fd575081810a613add565b615807838361573f565b806000190482111561581b5761581b61523f565b029392505050565b60006130e28383615782565b6000610140828403121561584257600080fd5b61584a614de9565b90506158558261513b565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015261589560c08301615436565b60c082015260e082015160e082015261010080830151818301525061012080830151818301525092915050565b600061014082840312156158d557600080fd5b6130e2838361582f565b600060c082840312156158f157600080fd5b6158f9614d4f565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015261521d60a08401615436565b6101e0810161594082896152c0565b6101408201969096526101608101949094526101808401929092526001600160801b03166101a08301526001600160a01b03166101c090910152919050565b6000806040838503121561599257600080fd5b505080516020909101519092909150565b60a081016159b182856153d6565b8260808301529392505050565b60006101e082840312156159d157600080fd5b60405160c0810181811067ffffffffffffffff82111715615a0257634e487b7160e01b600052604160045260246000fd5b604052615a0f848461582f565b81526101408301516020820152610160830151604082015261018083015160608201526101a083015160808201526101c09092015160a083015250919050565b6001600160a01b0386811682528581166020830152841660408201526101c08101615a7d60608301856152c0565b826101a08301529695505050505050565b6102008101615a9d82856152c0565b82516101408301526020830151610160830152604083015161018083015260608301516101a083015260808301516101c083015260a083015115156101e0830152939250505056fe7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498a264697066735822122034a0d6f307e5c616e34225e8fd4c8120820483d08b2eec4766ff70cf85bbad8764736f6c63430008110033";
1385
+ const isSuperArgs = (xs) => {
1386
+ return (typeof xs[0] === "string" ||
1387
+ Array.isArray(xs[0]) ||
1388
+ "_isInterface" in xs[0]);
1389
+ };
1390
+ class GNSTradingCallbacks__factory extends ethers_1.ContractFactory {
1391
+ constructor(...args) {
1392
+ if (isSuperArgs(args)) {
1393
+ super(...args);
1394
+ }
1395
+ else {
1396
+ const [linkLibraryAddresses, signer] = args;
1397
+ super(_abi, GNSTradingCallbacks__factory.linkBytecode(linkLibraryAddresses), signer);
1398
+ }
1399
+ }
1400
+ static linkBytecode(linkLibraryAddresses) {
1401
+ let linkedBytecode = _bytecode;
1402
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$fd374eed6e4960d4b0d454ffeec12874a4\\$__", "g"), linkLibraryAddresses["contracts/libraries/TradingCallbacksUtils.sol:TradingCallbacksUtils"]
1403
+ .replace(/^0x/, "")
1404
+ .toLowerCase());
1405
+ return linkedBytecode;
1406
+ }
1407
+ deploy(overrides) {
1408
+ return super.deploy(overrides || {});
1409
+ }
1410
+ getDeployTransaction(overrides) {
1411
+ return super.getDeployTransaction(overrides || {});
1412
+ }
1413
+ attach(address) {
1414
+ return super.attach(address);
1415
+ }
1416
+ connect(signer) {
1417
+ return super.connect(signer);
1418
+ }
1419
+ static createInterface() {
1420
+ return new ethers_1.utils.Interface(_abi);
1421
+ }
1422
+ static connect(address, signerOrProvider) {
1423
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
1424
+ }
1425
+ }
1426
+ exports.GNSTradingCallbacks__factory = GNSTradingCallbacks__factory;
1427
+ GNSTradingCallbacks__factory.bytecode = _bytecode;
1428
+ GNSTradingCallbacks__factory.abi = _abi;