@gainsnetwork/sdk 1.5.0 → 1.5.1-rc2

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