@gainsnetwork/sdk 1.5.0-rc2 → 1.5.0-rc4

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