@gainsnetwork/sdk 1.4.4 → 1.5.0-rc1

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