@gainsnetwork/sdk 0.0.52 → 0.1.0

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 (124) hide show
  1. package/README.md +11 -11
  2. package/lib/constants.d.ts +220 -221
  3. package/lib/constants.js +237 -238
  4. package/lib/contracts/addresses.d.ts +3 -2
  5. package/lib/contracts/addresses.js +31 -15
  6. package/lib/contracts/addresses.json +89 -35
  7. package/lib/contracts/index.d.ts +7 -6
  8. package/lib/contracts/index.js +38 -35
  9. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -1911
  10. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -2
  11. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -1341
  12. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -2
  13. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +1740 -0
  14. package/lib/contracts/types/generated/{GNSPairsStorageV6.js → GNSMultiCollatDiamond.js} +2 -2
  15. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -533
  16. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -2
  17. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -613
  18. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -2
  19. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  20. package/lib/contracts/types/generated/{GNSBorrowingFeesV6_4.js → GNSTrading.js} +2 -2
  21. package/lib/contracts/types/generated/{GNSTradingCallbacksV6_4.d.ts → GNSTradingCallbacks.d.ts} +875 -821
  22. package/lib/contracts/types/generated/{GNSTradingCallbacksV6_4.js → GNSTradingCallbacks.js} +2 -2
  23. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  24. package/lib/contracts/types/generated/{GNSPairInfosV6_1.js → GNSTradingStorage.js} +2 -2
  25. package/lib/contracts/types/generated/{GTokenV6_3_2.d.ts → GToken.d.ts} +1946 -1838
  26. package/lib/contracts/types/generated/GToken.js +2 -0
  27. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -557
  28. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -2
  29. package/lib/contracts/types/generated/common.d.ts +22 -22
  30. package/lib/contracts/types/generated/common.js +2 -2
  31. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -83
  32. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -2691
  33. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -128
  34. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -2206
  35. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +144 -0
  36. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +3094 -0
  37. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -100
  38. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -1116
  39. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -100
  40. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -1003
  41. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  42. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  43. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  44. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  45. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  46. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  47. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -59
  48. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -765
  49. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +121 -0
  50. package/lib/contracts/types/generated/factories/{GTokenV6_3_2__factory.js → GToken__factory.js} +2944 -2682
  51. package/lib/contracts/types/generated/factories/index.d.ts +10 -9
  52. package/lib/contracts/types/generated/factories/index.js +26 -24
  53. package/lib/contracts/types/generated/index.d.ts +21 -19
  54. package/lib/contracts/types/generated/index.js +47 -45
  55. package/lib/contracts/types/index.d.ts +27 -23
  56. package/lib/contracts/types/index.js +10 -2
  57. package/lib/contracts/utils/borrowingFees.d.ts +8 -8
  58. package/lib/contracts/utils/borrowingFees.js +28 -28
  59. package/lib/contracts/utils/index.d.ts +4 -4
  60. package/lib/contracts/utils/index.js +20 -20
  61. package/lib/contracts/utils/openLimitOrders.d.ts +8 -8
  62. package/lib/contracts/utils/openLimitOrders.js +88 -88
  63. package/lib/contracts/utils/openTrades.d.ts +9 -9
  64. package/lib/contracts/utils/openTrades.js +188 -172
  65. package/lib/contracts/utils/pairs.d.ts +6 -7
  66. package/lib/contracts/utils/pairs.js +94 -115
  67. package/lib/index.d.ts +7 -7
  68. package/lib/index.js +24 -24
  69. package/lib/markets/commodities.d.ts +1 -1
  70. package/lib/markets/commodities.js +31 -31
  71. package/lib/markets/crypto.d.ts +1 -1
  72. package/lib/markets/crypto.js +6 -6
  73. package/lib/markets/forex.d.ts +2 -2
  74. package/lib/markets/forex.js +38 -38
  75. package/lib/markets/index.d.ts +5 -5
  76. package/lib/markets/index.js +21 -21
  77. package/lib/markets/indices.d.ts +1 -1
  78. package/lib/markets/indices.js +6 -6
  79. package/lib/markets/stocks.d.ts +3 -3
  80. package/lib/markets/stocks.js +54 -54
  81. package/lib/trade/fees/borrowing/converter.d.ts +13 -13
  82. package/lib/trade/fees/borrowing/converter.js +41 -41
  83. package/lib/trade/fees/borrowing/index.d.ts +55 -55
  84. package/lib/trade/fees/borrowing/index.js +171 -171
  85. package/lib/trade/fees/borrowing/types.d.ts +36 -36
  86. package/lib/trade/fees/borrowing/types.js +2 -2
  87. package/lib/trade/fees/index.d.ts +3 -16
  88. package/lib/trade/fees/index.js +29 -60
  89. package/lib/trade/index.d.ts +8 -8
  90. package/lib/trade/index.js +24 -24
  91. package/lib/trade/liquidation.d.ts +3 -7
  92. package/lib/trade/liquidation.js +16 -18
  93. package/lib/trade/oiWindows.d.ts +3 -3
  94. package/lib/trade/oiWindows.js +20 -19
  95. package/lib/trade/openLimitOrder.d.ts +2 -2
  96. package/lib/trade/openLimitOrder.js +23 -24
  97. package/lib/trade/pnl.d.ts +7 -9
  98. package/lib/trade/pnl.js +33 -44
  99. package/lib/trade/spread.d.ts +2 -3
  100. package/lib/trade/spread.js +22 -32
  101. package/lib/trade/types.d.ts +181 -185
  102. package/lib/trade/types.js +14 -14
  103. package/lib/utils/index.d.ts +1 -1
  104. package/lib/utils/index.js +17 -17
  105. package/lib/utils/packing.d.ts +2 -2
  106. package/lib/utils/packing.js +39 -39
  107. package/lib/vault/index.d.ts +8 -7
  108. package/lib/vault/index.js +10 -11
  109. package/package.json +104 -104
  110. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +0 -1058
  111. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  112. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  113. package/lib/contracts/types/generated/GTokenV6_3_2.js +0 -2
  114. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +0 -113
  115. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +0 -1742
  116. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  117. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  118. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  119. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  120. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +0 -82
  121. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +0 -1326
  122. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +0 -110
  123. package/lib/trade/fees.d.ts +0 -15
  124. package/lib/trade/fees.js +0 -45
@@ -0,0 +1,3094 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GNSMultiCollatDiamond__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: "InitError",
17
+ type: "error",
18
+ },
19
+ {
20
+ inputs: [],
21
+ name: "InvalidInputLength",
22
+ type: "error",
23
+ },
24
+ {
25
+ inputs: [],
26
+ name: "NotAllowed",
27
+ type: "error",
28
+ },
29
+ {
30
+ inputs: [],
31
+ name: "WrongAccess",
32
+ type: "error",
33
+ },
34
+ {
35
+ inputs: [],
36
+ name: "WrongSlot",
37
+ type: "error",
38
+ },
39
+ {
40
+ anonymous: false,
41
+ inputs: [
42
+ {
43
+ indexed: false,
44
+ internalType: "address",
45
+ name: "target",
46
+ type: "address",
47
+ },
48
+ {
49
+ indexed: false,
50
+ internalType: "enum IAddressStoreUtils.Role",
51
+ name: "role",
52
+ type: "uint8",
53
+ },
54
+ {
55
+ indexed: false,
56
+ internalType: "bool",
57
+ name: "access",
58
+ type: "bool",
59
+ },
60
+ ],
61
+ name: "AccessControlUpdated",
62
+ type: "event",
63
+ },
64
+ {
65
+ anonymous: false,
66
+ inputs: [
67
+ {
68
+ components: [
69
+ {
70
+ internalType: "address",
71
+ name: "gns",
72
+ type: "address",
73
+ },
74
+ ],
75
+ indexed: false,
76
+ internalType: "struct IAddressStoreUtils.Addresses",
77
+ name: "addresses",
78
+ type: "tuple",
79
+ },
80
+ ],
81
+ name: "AddressesUpdated",
82
+ type: "event",
83
+ },
84
+ {
85
+ anonymous: false,
86
+ inputs: [
87
+ {
88
+ indexed: true,
89
+ internalType: "address",
90
+ name: "ally",
91
+ type: "address",
92
+ },
93
+ {
94
+ indexed: true,
95
+ internalType: "address",
96
+ name: "trader",
97
+ type: "address",
98
+ },
99
+ {
100
+ indexed: false,
101
+ internalType: "uint256",
102
+ name: "volumeUsd",
103
+ type: "uint256",
104
+ },
105
+ {
106
+ indexed: false,
107
+ internalType: "uint256",
108
+ name: "amountToken",
109
+ type: "uint256",
110
+ },
111
+ {
112
+ indexed: false,
113
+ internalType: "uint256",
114
+ name: "amountValueUsd",
115
+ type: "uint256",
116
+ },
117
+ ],
118
+ name: "AllyRewardDistributed",
119
+ type: "event",
120
+ },
121
+ {
122
+ anonymous: false,
123
+ inputs: [
124
+ {
125
+ indexed: true,
126
+ internalType: "address",
127
+ name: "ally",
128
+ type: "address",
129
+ },
130
+ {
131
+ indexed: false,
132
+ internalType: "uint256",
133
+ name: "amountToken",
134
+ type: "uint256",
135
+ },
136
+ ],
137
+ name: "AllyRewardsClaimed",
138
+ type: "event",
139
+ },
140
+ {
141
+ anonymous: false,
142
+ inputs: [
143
+ {
144
+ indexed: true,
145
+ internalType: "address",
146
+ name: "ally",
147
+ type: "address",
148
+ },
149
+ ],
150
+ name: "AllyUnwhitelisted",
151
+ type: "event",
152
+ },
153
+ {
154
+ anonymous: false,
155
+ inputs: [
156
+ {
157
+ indexed: true,
158
+ internalType: "address",
159
+ name: "ally",
160
+ type: "address",
161
+ },
162
+ ],
163
+ name: "AllyWhitelisted",
164
+ type: "event",
165
+ },
166
+ {
167
+ anonymous: false,
168
+ inputs: [
169
+ {
170
+ indexed: false,
171
+ internalType: "uint256",
172
+ name: "index",
173
+ type: "uint256",
174
+ },
175
+ {
176
+ indexed: false,
177
+ internalType: "string",
178
+ name: "name",
179
+ type: "string",
180
+ },
181
+ ],
182
+ name: "FeeAdded",
183
+ type: "event",
184
+ },
185
+ {
186
+ anonymous: false,
187
+ inputs: [
188
+ {
189
+ indexed: false,
190
+ internalType: "uint256[]",
191
+ name: "feeTiersIndices",
192
+ type: "uint256[]",
193
+ },
194
+ {
195
+ components: [
196
+ {
197
+ internalType: "uint32",
198
+ name: "feeMultiplier",
199
+ type: "uint32",
200
+ },
201
+ {
202
+ internalType: "uint32",
203
+ name: "pointsThreshold",
204
+ type: "uint32",
205
+ },
206
+ ],
207
+ indexed: false,
208
+ internalType: "struct IFeeTiersUtils.FeeTier[]",
209
+ name: "feeTiers",
210
+ type: "tuple[]",
211
+ },
212
+ ],
213
+ name: "FeeTiersUpdated",
214
+ type: "event",
215
+ },
216
+ {
217
+ anonymous: false,
218
+ inputs: [
219
+ {
220
+ indexed: false,
221
+ internalType: "uint256",
222
+ name: "index",
223
+ type: "uint256",
224
+ },
225
+ ],
226
+ name: "FeeUpdated",
227
+ type: "event",
228
+ },
229
+ {
230
+ anonymous: false,
231
+ inputs: [
232
+ {
233
+ indexed: false,
234
+ internalType: "uint256",
235
+ name: "index",
236
+ type: "uint256",
237
+ },
238
+ {
239
+ indexed: false,
240
+ internalType: "string",
241
+ name: "name",
242
+ type: "string",
243
+ },
244
+ ],
245
+ name: "GroupAdded",
246
+ type: "event",
247
+ },
248
+ {
249
+ anonymous: false,
250
+ inputs: [
251
+ {
252
+ indexed: false,
253
+ internalType: "uint256",
254
+ name: "index",
255
+ type: "uint256",
256
+ },
257
+ ],
258
+ name: "GroupUpdated",
259
+ type: "event",
260
+ },
261
+ {
262
+ anonymous: false,
263
+ inputs: [
264
+ {
265
+ indexed: false,
266
+ internalType: "uint256[]",
267
+ name: "groupIndices",
268
+ type: "uint256[]",
269
+ },
270
+ {
271
+ indexed: false,
272
+ internalType: "uint256[]",
273
+ name: "groupVolumeMultipliers",
274
+ type: "uint256[]",
275
+ },
276
+ ],
277
+ name: "GroupVolumeMultipliersUpdated",
278
+ type: "event",
279
+ },
280
+ {
281
+ anonymous: false,
282
+ inputs: [
283
+ {
284
+ indexed: false,
285
+ internalType: "uint8",
286
+ name: "version",
287
+ type: "uint8",
288
+ },
289
+ ],
290
+ name: "Initialized",
291
+ type: "event",
292
+ },
293
+ {
294
+ anonymous: false,
295
+ inputs: [
296
+ {
297
+ indexed: true,
298
+ internalType: "uint48",
299
+ name: "windowsDuration",
300
+ type: "uint48",
301
+ },
302
+ {
303
+ indexed: true,
304
+ internalType: "uint48",
305
+ name: "windowsCount",
306
+ type: "uint48",
307
+ },
308
+ ],
309
+ name: "OiWindowsSettingsInitialized",
310
+ type: "event",
311
+ },
312
+ {
313
+ anonymous: false,
314
+ inputs: [
315
+ {
316
+ indexed: true,
317
+ internalType: "uint256",
318
+ name: "pairIndex",
319
+ type: "uint256",
320
+ },
321
+ {
322
+ indexed: false,
323
+ internalType: "uint128",
324
+ name: "valueAboveUsd",
325
+ type: "uint128",
326
+ },
327
+ {
328
+ indexed: false,
329
+ internalType: "uint128",
330
+ name: "valueBelowUsd",
331
+ type: "uint128",
332
+ },
333
+ ],
334
+ name: "OnePercentDepthUpdated",
335
+ type: "event",
336
+ },
337
+ {
338
+ anonymous: false,
339
+ inputs: [
340
+ {
341
+ indexed: false,
342
+ internalType: "uint256",
343
+ name: "index",
344
+ type: "uint256",
345
+ },
346
+ {
347
+ indexed: false,
348
+ internalType: "string",
349
+ name: "from",
350
+ type: "string",
351
+ },
352
+ {
353
+ indexed: false,
354
+ internalType: "string",
355
+ name: "to",
356
+ type: "string",
357
+ },
358
+ ],
359
+ name: "PairAdded",
360
+ type: "event",
361
+ },
362
+ {
363
+ anonymous: false,
364
+ inputs: [
365
+ {
366
+ indexed: true,
367
+ internalType: "uint256",
368
+ name: "index",
369
+ type: "uint256",
370
+ },
371
+ {
372
+ indexed: false,
373
+ internalType: "uint256",
374
+ name: "maxLeverage",
375
+ type: "uint256",
376
+ },
377
+ ],
378
+ name: "PairCustomMaxLeverageUpdated",
379
+ type: "event",
380
+ },
381
+ {
382
+ anonymous: false,
383
+ inputs: [
384
+ {
385
+ indexed: false,
386
+ internalType: "uint256",
387
+ name: "index",
388
+ type: "uint256",
389
+ },
390
+ ],
391
+ name: "PairUpdated",
392
+ type: "event",
393
+ },
394
+ {
395
+ anonymous: false,
396
+ inputs: [
397
+ {
398
+ indexed: true,
399
+ internalType: "uint256",
400
+ name: "pairIndex",
401
+ type: "uint256",
402
+ },
403
+ {
404
+ components: [
405
+ {
406
+ internalType: "uint128",
407
+ name: "oiLongUsd",
408
+ type: "uint128",
409
+ },
410
+ {
411
+ internalType: "uint128",
412
+ name: "oiShortUsd",
413
+ type: "uint128",
414
+ },
415
+ ],
416
+ indexed: false,
417
+ internalType: "struct IPriceImpactUtils.PairOi",
418
+ name: "totalPairOi",
419
+ type: "tuple",
420
+ },
421
+ ],
422
+ name: "PriceImpactOiTransferredPair",
423
+ type: "event",
424
+ },
425
+ {
426
+ anonymous: false,
427
+ inputs: [
428
+ {
429
+ indexed: false,
430
+ internalType: "uint256",
431
+ name: "pairsCount",
432
+ type: "uint256",
433
+ },
434
+ {
435
+ indexed: false,
436
+ internalType: "uint256",
437
+ name: "prevCurrentWindowId",
438
+ type: "uint256",
439
+ },
440
+ {
441
+ indexed: false,
442
+ internalType: "uint256",
443
+ name: "prevEarliestWindowId",
444
+ type: "uint256",
445
+ },
446
+ {
447
+ indexed: false,
448
+ internalType: "uint256",
449
+ name: "newCurrentWindowId",
450
+ type: "uint256",
451
+ },
452
+ ],
453
+ name: "PriceImpactOiTransferredPairs",
454
+ type: "event",
455
+ },
456
+ {
457
+ anonymous: false,
458
+ inputs: [
459
+ {
460
+ components: [
461
+ {
462
+ internalType: "uint48",
463
+ name: "windowsDuration",
464
+ type: "uint48",
465
+ },
466
+ {
467
+ internalType: "uint256",
468
+ name: "pairIndex",
469
+ type: "uint256",
470
+ },
471
+ {
472
+ internalType: "uint256",
473
+ name: "windowId",
474
+ type: "uint256",
475
+ },
476
+ {
477
+ internalType: "bool",
478
+ name: "long",
479
+ type: "bool",
480
+ },
481
+ {
482
+ internalType: "uint128",
483
+ name: "openInterestUsd",
484
+ type: "uint128",
485
+ },
486
+ ],
487
+ indexed: false,
488
+ internalType: "struct IPriceImpactUtils.OiWindowUpdate",
489
+ name: "oiWindowUpdate",
490
+ type: "tuple",
491
+ },
492
+ ],
493
+ name: "PriceImpactOpenInterestAdded",
494
+ type: "event",
495
+ },
496
+ {
497
+ anonymous: false,
498
+ inputs: [
499
+ {
500
+ components: [
501
+ {
502
+ internalType: "uint48",
503
+ name: "windowsDuration",
504
+ type: "uint48",
505
+ },
506
+ {
507
+ internalType: "uint256",
508
+ name: "pairIndex",
509
+ type: "uint256",
510
+ },
511
+ {
512
+ internalType: "uint256",
513
+ name: "windowId",
514
+ type: "uint256",
515
+ },
516
+ {
517
+ internalType: "bool",
518
+ name: "long",
519
+ type: "bool",
520
+ },
521
+ {
522
+ internalType: "uint128",
523
+ name: "openInterestUsd",
524
+ type: "uint128",
525
+ },
526
+ ],
527
+ indexed: false,
528
+ internalType: "struct IPriceImpactUtils.OiWindowUpdate",
529
+ name: "oiWindowUpdate",
530
+ type: "tuple",
531
+ },
532
+ {
533
+ indexed: false,
534
+ internalType: "bool",
535
+ name: "notOutdated",
536
+ type: "bool",
537
+ },
538
+ ],
539
+ name: "PriceImpactOpenInterestRemoved",
540
+ type: "event",
541
+ },
542
+ {
543
+ anonymous: false,
544
+ inputs: [
545
+ {
546
+ indexed: true,
547
+ internalType: "uint48",
548
+ name: "windowsCount",
549
+ type: "uint48",
550
+ },
551
+ ],
552
+ name: "PriceImpactWindowsCountUpdated",
553
+ type: "event",
554
+ },
555
+ {
556
+ anonymous: false,
557
+ inputs: [
558
+ {
559
+ indexed: true,
560
+ internalType: "uint48",
561
+ name: "windowsDuration",
562
+ type: "uint48",
563
+ },
564
+ ],
565
+ name: "PriceImpactWindowsDurationUpdated",
566
+ type: "event",
567
+ },
568
+ {
569
+ anonymous: false,
570
+ inputs: [
571
+ {
572
+ indexed: true,
573
+ internalType: "address",
574
+ name: "trader",
575
+ type: "address",
576
+ },
577
+ {
578
+ indexed: true,
579
+ internalType: "address",
580
+ name: "referrer",
581
+ type: "address",
582
+ },
583
+ ],
584
+ name: "ReferrerRegistered",
585
+ type: "event",
586
+ },
587
+ {
588
+ anonymous: false,
589
+ inputs: [
590
+ {
591
+ indexed: true,
592
+ internalType: "address",
593
+ name: "referrer",
594
+ type: "address",
595
+ },
596
+ {
597
+ indexed: true,
598
+ internalType: "address",
599
+ name: "trader",
600
+ type: "address",
601
+ },
602
+ {
603
+ indexed: false,
604
+ internalType: "uint256",
605
+ name: "volumeUsd",
606
+ type: "uint256",
607
+ },
608
+ {
609
+ indexed: false,
610
+ internalType: "uint256",
611
+ name: "amountToken",
612
+ type: "uint256",
613
+ },
614
+ {
615
+ indexed: false,
616
+ internalType: "uint256",
617
+ name: "amountValueUsd",
618
+ type: "uint256",
619
+ },
620
+ ],
621
+ name: "ReferrerRewardDistributed",
622
+ type: "event",
623
+ },
624
+ {
625
+ anonymous: false,
626
+ inputs: [
627
+ {
628
+ indexed: true,
629
+ internalType: "address",
630
+ name: "referrer",
631
+ type: "address",
632
+ },
633
+ {
634
+ indexed: false,
635
+ internalType: "uint256",
636
+ name: "amountToken",
637
+ type: "uint256",
638
+ },
639
+ ],
640
+ name: "ReferrerRewardsClaimed",
641
+ type: "event",
642
+ },
643
+ {
644
+ anonymous: false,
645
+ inputs: [
646
+ {
647
+ indexed: true,
648
+ internalType: "address",
649
+ name: "referrer",
650
+ type: "address",
651
+ },
652
+ ],
653
+ name: "ReferrerUnwhitelisted",
654
+ type: "event",
655
+ },
656
+ {
657
+ anonymous: false,
658
+ inputs: [
659
+ {
660
+ indexed: true,
661
+ internalType: "address",
662
+ name: "referrer",
663
+ type: "address",
664
+ },
665
+ {
666
+ indexed: true,
667
+ internalType: "address",
668
+ name: "ally",
669
+ type: "address",
670
+ },
671
+ ],
672
+ name: "ReferrerWhitelisted",
673
+ type: "event",
674
+ },
675
+ {
676
+ anonymous: false,
677
+ inputs: [
678
+ {
679
+ indexed: true,
680
+ internalType: "address",
681
+ name: "trader",
682
+ type: "address",
683
+ },
684
+ {
685
+ indexed: true,
686
+ internalType: "uint32",
687
+ name: "day",
688
+ type: "uint32",
689
+ },
690
+ {
691
+ indexed: false,
692
+ internalType: "uint224",
693
+ name: "points",
694
+ type: "uint224",
695
+ },
696
+ ],
697
+ name: "TraderDailyPointsIncreased",
698
+ type: "event",
699
+ },
700
+ {
701
+ anonymous: false,
702
+ inputs: [
703
+ {
704
+ indexed: true,
705
+ internalType: "address",
706
+ name: "trader",
707
+ type: "address",
708
+ },
709
+ {
710
+ indexed: true,
711
+ internalType: "uint32",
712
+ name: "day",
713
+ type: "uint32",
714
+ },
715
+ {
716
+ indexed: false,
717
+ internalType: "uint32",
718
+ name: "feeMultiplier",
719
+ type: "uint32",
720
+ },
721
+ ],
722
+ name: "TraderFeeMultiplierCached",
723
+ type: "event",
724
+ },
725
+ {
726
+ anonymous: false,
727
+ inputs: [
728
+ {
729
+ indexed: true,
730
+ internalType: "address",
731
+ name: "trader",
732
+ type: "address",
733
+ },
734
+ {
735
+ indexed: false,
736
+ internalType: "uint32",
737
+ name: "day",
738
+ type: "uint32",
739
+ },
740
+ ],
741
+ name: "TraderInfoFirstUpdate",
742
+ type: "event",
743
+ },
744
+ {
745
+ anonymous: false,
746
+ inputs: [
747
+ {
748
+ indexed: true,
749
+ internalType: "address",
750
+ name: "trader",
751
+ type: "address",
752
+ },
753
+ {
754
+ components: [
755
+ {
756
+ internalType: "uint32",
757
+ name: "lastDayUpdated",
758
+ type: "uint32",
759
+ },
760
+ {
761
+ internalType: "uint224",
762
+ name: "trailingPoints",
763
+ type: "uint224",
764
+ },
765
+ ],
766
+ indexed: false,
767
+ internalType: "struct IFeeTiersUtils.TraderInfo",
768
+ name: "traderInfo",
769
+ type: "tuple",
770
+ },
771
+ ],
772
+ name: "TraderInfoUpdated",
773
+ type: "event",
774
+ },
775
+ {
776
+ anonymous: false,
777
+ inputs: [
778
+ {
779
+ indexed: true,
780
+ internalType: "address",
781
+ name: "trader",
782
+ type: "address",
783
+ },
784
+ {
785
+ indexed: false,
786
+ internalType: "uint32",
787
+ name: "fromDay",
788
+ type: "uint32",
789
+ },
790
+ {
791
+ indexed: false,
792
+ internalType: "uint32",
793
+ name: "toDay",
794
+ type: "uint32",
795
+ },
796
+ {
797
+ indexed: false,
798
+ internalType: "uint224",
799
+ name: "amount",
800
+ type: "uint224",
801
+ },
802
+ ],
803
+ name: "TraderTrailingPointsExpired",
804
+ type: "event",
805
+ },
806
+ {
807
+ anonymous: false,
808
+ inputs: [
809
+ {
810
+ indexed: false,
811
+ internalType: "uint256",
812
+ name: "value",
813
+ type: "uint256",
814
+ },
815
+ ],
816
+ name: "UpdatedAllyFeeP",
817
+ type: "event",
818
+ },
819
+ {
820
+ anonymous: false,
821
+ inputs: [
822
+ {
823
+ indexed: false,
824
+ internalType: "uint256",
825
+ name: "value",
826
+ type: "uint256",
827
+ },
828
+ ],
829
+ name: "UpdatedOpenFeeP",
830
+ type: "event",
831
+ },
832
+ {
833
+ anonymous: false,
834
+ inputs: [
835
+ {
836
+ indexed: false,
837
+ internalType: "uint256",
838
+ name: "value",
839
+ type: "uint256",
840
+ },
841
+ ],
842
+ name: "UpdatedStartReferrerFeeP",
843
+ type: "event",
844
+ },
845
+ {
846
+ anonymous: false,
847
+ inputs: [
848
+ {
849
+ indexed: false,
850
+ internalType: "uint256",
851
+ name: "value",
852
+ type: "uint256",
853
+ },
854
+ ],
855
+ name: "UpdatedTargetVolumeUsd",
856
+ type: "event",
857
+ },
858
+ {
859
+ inputs: [
860
+ {
861
+ components: [
862
+ {
863
+ internalType: "string",
864
+ name: "name",
865
+ type: "string",
866
+ },
867
+ {
868
+ internalType: "uint256",
869
+ name: "openFeeP",
870
+ type: "uint256",
871
+ },
872
+ {
873
+ internalType: "uint256",
874
+ name: "closeFeeP",
875
+ type: "uint256",
876
+ },
877
+ {
878
+ internalType: "uint256",
879
+ name: "oracleFeeP",
880
+ type: "uint256",
881
+ },
882
+ {
883
+ internalType: "uint256",
884
+ name: "nftLimitOrderFeeP",
885
+ type: "uint256",
886
+ },
887
+ {
888
+ internalType: "uint256",
889
+ name: "minLevPosUsd",
890
+ type: "uint256",
891
+ },
892
+ ],
893
+ internalType: "struct IPairsStorageUtils.Fee[]",
894
+ name: "_fees",
895
+ type: "tuple[]",
896
+ },
897
+ ],
898
+ name: "addFees",
899
+ outputs: [],
900
+ stateMutability: "nonpayable",
901
+ type: "function",
902
+ },
903
+ {
904
+ inputs: [
905
+ {
906
+ components: [
907
+ {
908
+ internalType: "string",
909
+ name: "name",
910
+ type: "string",
911
+ },
912
+ {
913
+ internalType: "bytes32",
914
+ name: "job",
915
+ type: "bytes32",
916
+ },
917
+ {
918
+ internalType: "uint256",
919
+ name: "minLeverage",
920
+ type: "uint256",
921
+ },
922
+ {
923
+ internalType: "uint256",
924
+ name: "maxLeverage",
925
+ type: "uint256",
926
+ },
927
+ ],
928
+ internalType: "struct IPairsStorageUtils.Group[]",
929
+ name: "_groups",
930
+ type: "tuple[]",
931
+ },
932
+ ],
933
+ name: "addGroups",
934
+ outputs: [],
935
+ stateMutability: "nonpayable",
936
+ type: "function",
937
+ },
938
+ {
939
+ inputs: [
940
+ {
941
+ components: [
942
+ {
943
+ internalType: "string",
944
+ name: "from",
945
+ type: "string",
946
+ },
947
+ {
948
+ internalType: "string",
949
+ name: "to",
950
+ type: "string",
951
+ },
952
+ {
953
+ components: [
954
+ {
955
+ internalType: "address",
956
+ name: "feed1",
957
+ type: "address",
958
+ },
959
+ {
960
+ internalType: "address",
961
+ name: "feed2",
962
+ type: "address",
963
+ },
964
+ {
965
+ internalType: "enum IPairsStorageUtils.FeedCalculation",
966
+ name: "feedCalculation",
967
+ type: "uint8",
968
+ },
969
+ {
970
+ internalType: "uint256",
971
+ name: "maxDeviationP",
972
+ type: "uint256",
973
+ },
974
+ ],
975
+ internalType: "struct IPairsStorageUtils.Feed",
976
+ name: "feed",
977
+ type: "tuple",
978
+ },
979
+ {
980
+ internalType: "uint256",
981
+ name: "spreadP",
982
+ type: "uint256",
983
+ },
984
+ {
985
+ internalType: "uint256",
986
+ name: "groupIndex",
987
+ type: "uint256",
988
+ },
989
+ {
990
+ internalType: "uint256",
991
+ name: "feeIndex",
992
+ type: "uint256",
993
+ },
994
+ ],
995
+ internalType: "struct IPairsStorageUtils.Pair[]",
996
+ name: "_pairs",
997
+ type: "tuple[]",
998
+ },
999
+ ],
1000
+ name: "addPairs",
1001
+ outputs: [],
1002
+ stateMutability: "nonpayable",
1003
+ type: "function",
1004
+ },
1005
+ {
1006
+ inputs: [
1007
+ {
1008
+ internalType: "uint256",
1009
+ name: "_openInterestUsd",
1010
+ type: "uint256",
1011
+ },
1012
+ {
1013
+ internalType: "uint256",
1014
+ name: "_pairIndex",
1015
+ type: "uint256",
1016
+ },
1017
+ {
1018
+ internalType: "bool",
1019
+ name: "_long",
1020
+ type: "bool",
1021
+ },
1022
+ ],
1023
+ name: "addPriceImpactOpenInterest",
1024
+ outputs: [],
1025
+ stateMutability: "nonpayable",
1026
+ type: "function",
1027
+ },
1028
+ {
1029
+ inputs: [
1030
+ {
1031
+ internalType: "address",
1032
+ name: "_trader",
1033
+ type: "address",
1034
+ },
1035
+ {
1036
+ internalType: "uint256",
1037
+ name: "_normalFeeAmount",
1038
+ type: "uint256",
1039
+ },
1040
+ ],
1041
+ name: "calculateFeeAmount",
1042
+ outputs: [
1043
+ {
1044
+ internalType: "uint256",
1045
+ name: "",
1046
+ type: "uint256",
1047
+ },
1048
+ ],
1049
+ stateMutability: "view",
1050
+ type: "function",
1051
+ },
1052
+ {
1053
+ inputs: [],
1054
+ name: "claimAllyRewards",
1055
+ outputs: [],
1056
+ stateMutability: "nonpayable",
1057
+ type: "function",
1058
+ },
1059
+ {
1060
+ inputs: [],
1061
+ name: "claimReferrerRewards",
1062
+ outputs: [],
1063
+ stateMutability: "nonpayable",
1064
+ type: "function",
1065
+ },
1066
+ {
1067
+ inputs: [],
1068
+ name: "currentOrderId",
1069
+ outputs: [
1070
+ {
1071
+ internalType: "uint256",
1072
+ name: "",
1073
+ type: "uint256",
1074
+ },
1075
+ ],
1076
+ stateMutability: "view",
1077
+ type: "function",
1078
+ },
1079
+ {
1080
+ inputs: [
1081
+ {
1082
+ internalType: "address",
1083
+ name: "_trader",
1084
+ type: "address",
1085
+ },
1086
+ {
1087
+ internalType: "uint256",
1088
+ name: "_volumeUsd",
1089
+ type: "uint256",
1090
+ },
1091
+ {
1092
+ internalType: "uint256",
1093
+ name: "_pairOpenFeeP",
1094
+ type: "uint256",
1095
+ },
1096
+ {
1097
+ internalType: "uint256",
1098
+ name: "_tokenPriceUsd",
1099
+ type: "uint256",
1100
+ },
1101
+ ],
1102
+ name: "distributeReferralReward",
1103
+ outputs: [
1104
+ {
1105
+ internalType: "uint256",
1106
+ name: "",
1107
+ type: "uint256",
1108
+ },
1109
+ ],
1110
+ stateMutability: "nonpayable",
1111
+ type: "function",
1112
+ },
1113
+ {
1114
+ inputs: [
1115
+ {
1116
+ internalType: "uint256",
1117
+ name: "_index",
1118
+ type: "uint256",
1119
+ },
1120
+ ],
1121
+ name: "fees",
1122
+ outputs: [
1123
+ {
1124
+ components: [
1125
+ {
1126
+ internalType: "string",
1127
+ name: "name",
1128
+ type: "string",
1129
+ },
1130
+ {
1131
+ internalType: "uint256",
1132
+ name: "openFeeP",
1133
+ type: "uint256",
1134
+ },
1135
+ {
1136
+ internalType: "uint256",
1137
+ name: "closeFeeP",
1138
+ type: "uint256",
1139
+ },
1140
+ {
1141
+ internalType: "uint256",
1142
+ name: "oracleFeeP",
1143
+ type: "uint256",
1144
+ },
1145
+ {
1146
+ internalType: "uint256",
1147
+ name: "nftLimitOrderFeeP",
1148
+ type: "uint256",
1149
+ },
1150
+ {
1151
+ internalType: "uint256",
1152
+ name: "minLevPosUsd",
1153
+ type: "uint256",
1154
+ },
1155
+ ],
1156
+ internalType: "struct IPairsStorageUtils.Fee",
1157
+ name: "",
1158
+ type: "tuple",
1159
+ },
1160
+ ],
1161
+ stateMutability: "view",
1162
+ type: "function",
1163
+ },
1164
+ {
1165
+ inputs: [],
1166
+ name: "feesCount",
1167
+ outputs: [
1168
+ {
1169
+ internalType: "uint256",
1170
+ name: "",
1171
+ type: "uint256",
1172
+ },
1173
+ ],
1174
+ stateMutability: "view",
1175
+ type: "function",
1176
+ },
1177
+ {
1178
+ inputs: [],
1179
+ name: "getAddresses",
1180
+ outputs: [
1181
+ {
1182
+ components: [
1183
+ {
1184
+ internalType: "address",
1185
+ name: "gns",
1186
+ type: "address",
1187
+ },
1188
+ ],
1189
+ internalType: "struct IAddressStoreUtils.Addresses",
1190
+ name: "",
1191
+ type: "tuple",
1192
+ },
1193
+ ],
1194
+ stateMutability: "view",
1195
+ type: "function",
1196
+ },
1197
+ {
1198
+ inputs: [],
1199
+ name: "getAllPairsRestrictedMaxLeverage",
1200
+ outputs: [
1201
+ {
1202
+ internalType: "uint256[]",
1203
+ name: "",
1204
+ type: "uint256[]",
1205
+ },
1206
+ ],
1207
+ stateMutability: "view",
1208
+ type: "function",
1209
+ },
1210
+ {
1211
+ inputs: [
1212
+ {
1213
+ internalType: "address",
1214
+ name: "_ally",
1215
+ type: "address",
1216
+ },
1217
+ ],
1218
+ name: "getAllyDetails",
1219
+ outputs: [
1220
+ {
1221
+ components: [
1222
+ {
1223
+ internalType: "address[]",
1224
+ name: "referrersReferred",
1225
+ type: "address[]",
1226
+ },
1227
+ {
1228
+ internalType: "uint256",
1229
+ name: "volumeReferredUsd",
1230
+ type: "uint256",
1231
+ },
1232
+ {
1233
+ internalType: "uint256",
1234
+ name: "pendingRewardsToken",
1235
+ type: "uint256",
1236
+ },
1237
+ {
1238
+ internalType: "uint256",
1239
+ name: "totalRewardsToken",
1240
+ type: "uint256",
1241
+ },
1242
+ {
1243
+ internalType: "uint256",
1244
+ name: "totalRewardsValueUsd",
1245
+ type: "uint256",
1246
+ },
1247
+ {
1248
+ internalType: "bool",
1249
+ name: "active",
1250
+ type: "bool",
1251
+ },
1252
+ ],
1253
+ internalType: "struct IReferralsUtils.AllyDetails",
1254
+ name: "",
1255
+ type: "tuple",
1256
+ },
1257
+ ],
1258
+ stateMutability: "view",
1259
+ type: "function",
1260
+ },
1261
+ {
1262
+ inputs: [
1263
+ {
1264
+ internalType: "uint256",
1265
+ name: "_feeTierIndex",
1266
+ type: "uint256",
1267
+ },
1268
+ ],
1269
+ name: "getFeeTier",
1270
+ outputs: [
1271
+ {
1272
+ components: [
1273
+ {
1274
+ internalType: "uint32",
1275
+ name: "feeMultiplier",
1276
+ type: "uint32",
1277
+ },
1278
+ {
1279
+ internalType: "uint32",
1280
+ name: "pointsThreshold",
1281
+ type: "uint32",
1282
+ },
1283
+ ],
1284
+ internalType: "struct IFeeTiersUtils.FeeTier",
1285
+ name: "",
1286
+ type: "tuple",
1287
+ },
1288
+ ],
1289
+ stateMutability: "view",
1290
+ type: "function",
1291
+ },
1292
+ {
1293
+ inputs: [],
1294
+ name: "getFeeTiersCount",
1295
+ outputs: [
1296
+ {
1297
+ internalType: "uint256",
1298
+ name: "",
1299
+ type: "uint256",
1300
+ },
1301
+ ],
1302
+ stateMutability: "view",
1303
+ type: "function",
1304
+ },
1305
+ {
1306
+ inputs: [
1307
+ {
1308
+ internalType: "address",
1309
+ name: "_trader",
1310
+ type: "address",
1311
+ },
1312
+ {
1313
+ internalType: "uint32",
1314
+ name: "_day",
1315
+ type: "uint32",
1316
+ },
1317
+ ],
1318
+ name: "getFeeTiersTraderDailyInfo",
1319
+ outputs: [
1320
+ {
1321
+ components: [
1322
+ {
1323
+ internalType: "uint32",
1324
+ name: "feeMultiplierCache",
1325
+ type: "uint32",
1326
+ },
1327
+ {
1328
+ internalType: "uint224",
1329
+ name: "points",
1330
+ type: "uint224",
1331
+ },
1332
+ ],
1333
+ internalType: "struct IFeeTiersUtils.TraderDailyInfo",
1334
+ name: "",
1335
+ type: "tuple",
1336
+ },
1337
+ ],
1338
+ stateMutability: "view",
1339
+ type: "function",
1340
+ },
1341
+ {
1342
+ inputs: [
1343
+ {
1344
+ internalType: "address",
1345
+ name: "_trader",
1346
+ type: "address",
1347
+ },
1348
+ ],
1349
+ name: "getFeeTiersTraderInfo",
1350
+ outputs: [
1351
+ {
1352
+ components: [
1353
+ {
1354
+ internalType: "uint32",
1355
+ name: "lastDayUpdated",
1356
+ type: "uint32",
1357
+ },
1358
+ {
1359
+ internalType: "uint224",
1360
+ name: "trailingPoints",
1361
+ type: "uint224",
1362
+ },
1363
+ ],
1364
+ internalType: "struct IFeeTiersUtils.TraderInfo",
1365
+ name: "",
1366
+ type: "tuple",
1367
+ },
1368
+ ],
1369
+ stateMutability: "view",
1370
+ type: "function",
1371
+ },
1372
+ {
1373
+ inputs: [
1374
+ {
1375
+ internalType: "uint256",
1376
+ name: "_groupIndex",
1377
+ type: "uint256",
1378
+ },
1379
+ ],
1380
+ name: "getGroupVolumeMultiplier",
1381
+ outputs: [
1382
+ {
1383
+ internalType: "uint256",
1384
+ name: "",
1385
+ type: "uint256",
1386
+ },
1387
+ ],
1388
+ stateMutability: "view",
1389
+ type: "function",
1390
+ },
1391
+ {
1392
+ inputs: [
1393
+ {
1394
+ internalType: "uint48",
1395
+ name: "_windowsDuration",
1396
+ type: "uint48",
1397
+ },
1398
+ {
1399
+ internalType: "uint256",
1400
+ name: "_pairIndex",
1401
+ type: "uint256",
1402
+ },
1403
+ {
1404
+ internalType: "uint256",
1405
+ name: "_windowId",
1406
+ type: "uint256",
1407
+ },
1408
+ ],
1409
+ name: "getOiWindow",
1410
+ outputs: [
1411
+ {
1412
+ components: [
1413
+ {
1414
+ internalType: "uint128",
1415
+ name: "oiLongUsd",
1416
+ type: "uint128",
1417
+ },
1418
+ {
1419
+ internalType: "uint128",
1420
+ name: "oiShortUsd",
1421
+ type: "uint128",
1422
+ },
1423
+ ],
1424
+ internalType: "struct IPriceImpactUtils.PairOi",
1425
+ name: "",
1426
+ type: "tuple",
1427
+ },
1428
+ ],
1429
+ stateMutability: "view",
1430
+ type: "function",
1431
+ },
1432
+ {
1433
+ inputs: [
1434
+ {
1435
+ internalType: "uint48",
1436
+ name: "_windowsDuration",
1437
+ type: "uint48",
1438
+ },
1439
+ {
1440
+ internalType: "uint256",
1441
+ name: "_pairIndex",
1442
+ type: "uint256",
1443
+ },
1444
+ {
1445
+ internalType: "uint256[]",
1446
+ name: "_windowIds",
1447
+ type: "uint256[]",
1448
+ },
1449
+ ],
1450
+ name: "getOiWindows",
1451
+ outputs: [
1452
+ {
1453
+ components: [
1454
+ {
1455
+ internalType: "uint128",
1456
+ name: "oiLongUsd",
1457
+ type: "uint128",
1458
+ },
1459
+ {
1460
+ internalType: "uint128",
1461
+ name: "oiShortUsd",
1462
+ type: "uint128",
1463
+ },
1464
+ ],
1465
+ internalType: "struct IPriceImpactUtils.PairOi[]",
1466
+ name: "",
1467
+ type: "tuple[]",
1468
+ },
1469
+ ],
1470
+ stateMutability: "view",
1471
+ type: "function",
1472
+ },
1473
+ {
1474
+ inputs: [],
1475
+ name: "getOiWindowsSettings",
1476
+ outputs: [
1477
+ {
1478
+ components: [
1479
+ {
1480
+ internalType: "uint48",
1481
+ name: "startTs",
1482
+ type: "uint48",
1483
+ },
1484
+ {
1485
+ internalType: "uint48",
1486
+ name: "windowsDuration",
1487
+ type: "uint48",
1488
+ },
1489
+ {
1490
+ internalType: "uint48",
1491
+ name: "windowsCount",
1492
+ type: "uint48",
1493
+ },
1494
+ ],
1495
+ internalType: "struct IPriceImpactUtils.OiWindowsSettings",
1496
+ name: "",
1497
+ type: "tuple",
1498
+ },
1499
+ ],
1500
+ stateMutability: "view",
1501
+ type: "function",
1502
+ },
1503
+ {
1504
+ inputs: [
1505
+ {
1506
+ internalType: "uint256",
1507
+ name: "_pairIndex",
1508
+ type: "uint256",
1509
+ },
1510
+ ],
1511
+ name: "getPairDepth",
1512
+ outputs: [
1513
+ {
1514
+ components: [
1515
+ {
1516
+ internalType: "uint128",
1517
+ name: "onePercentDepthAboveUsd",
1518
+ type: "uint128",
1519
+ },
1520
+ {
1521
+ internalType: "uint128",
1522
+ name: "onePercentDepthBelowUsd",
1523
+ type: "uint128",
1524
+ },
1525
+ ],
1526
+ internalType: "struct IPriceImpactUtils.PairDepth",
1527
+ name: "",
1528
+ type: "tuple",
1529
+ },
1530
+ ],
1531
+ stateMutability: "view",
1532
+ type: "function",
1533
+ },
1534
+ {
1535
+ inputs: [
1536
+ {
1537
+ internalType: "uint256[]",
1538
+ name: "_indices",
1539
+ type: "uint256[]",
1540
+ },
1541
+ ],
1542
+ name: "getPairDepths",
1543
+ outputs: [
1544
+ {
1545
+ components: [
1546
+ {
1547
+ internalType: "uint128",
1548
+ name: "onePercentDepthAboveUsd",
1549
+ type: "uint128",
1550
+ },
1551
+ {
1552
+ internalType: "uint128",
1553
+ name: "onePercentDepthBelowUsd",
1554
+ type: "uint128",
1555
+ },
1556
+ ],
1557
+ internalType: "struct IPriceImpactUtils.PairDepth[]",
1558
+ name: "",
1559
+ type: "tuple[]",
1560
+ },
1561
+ ],
1562
+ stateMutability: "view",
1563
+ type: "function",
1564
+ },
1565
+ {
1566
+ inputs: [
1567
+ {
1568
+ internalType: "uint256",
1569
+ name: "_pairIndex",
1570
+ type: "uint256",
1571
+ },
1572
+ {
1573
+ internalType: "bool",
1574
+ name: "_long",
1575
+ type: "bool",
1576
+ },
1577
+ ],
1578
+ name: "getPriceImpactOi",
1579
+ outputs: [
1580
+ {
1581
+ internalType: "uint256",
1582
+ name: "activeOi",
1583
+ type: "uint256",
1584
+ },
1585
+ ],
1586
+ stateMutability: "view",
1587
+ type: "function",
1588
+ },
1589
+ {
1590
+ inputs: [],
1591
+ name: "getReferralsAllyFeeP",
1592
+ outputs: [
1593
+ {
1594
+ internalType: "uint256",
1595
+ name: "",
1596
+ type: "uint256",
1597
+ },
1598
+ ],
1599
+ stateMutability: "view",
1600
+ type: "function",
1601
+ },
1602
+ {
1603
+ inputs: [],
1604
+ name: "getReferralsOpenFeeP",
1605
+ outputs: [
1606
+ {
1607
+ internalType: "uint256",
1608
+ name: "",
1609
+ type: "uint256",
1610
+ },
1611
+ ],
1612
+ stateMutability: "view",
1613
+ type: "function",
1614
+ },
1615
+ {
1616
+ inputs: [
1617
+ {
1618
+ internalType: "address",
1619
+ name: "_trader",
1620
+ type: "address",
1621
+ },
1622
+ ],
1623
+ name: "getReferralsPercentOfOpenFeeP",
1624
+ outputs: [
1625
+ {
1626
+ internalType: "uint256",
1627
+ name: "",
1628
+ type: "uint256",
1629
+ },
1630
+ ],
1631
+ stateMutability: "view",
1632
+ type: "function",
1633
+ },
1634
+ {
1635
+ inputs: [
1636
+ {
1637
+ internalType: "uint256",
1638
+ name: "_volumeReferredUsd",
1639
+ type: "uint256",
1640
+ },
1641
+ ],
1642
+ name: "getReferralsPercentOfOpenFeeP_calc",
1643
+ outputs: [
1644
+ {
1645
+ internalType: "uint256",
1646
+ name: "resultP",
1647
+ type: "uint256",
1648
+ },
1649
+ ],
1650
+ stateMutability: "view",
1651
+ type: "function",
1652
+ },
1653
+ {
1654
+ inputs: [],
1655
+ name: "getReferralsStartReferrerFeeP",
1656
+ outputs: [
1657
+ {
1658
+ internalType: "uint256",
1659
+ name: "",
1660
+ type: "uint256",
1661
+ },
1662
+ ],
1663
+ stateMutability: "view",
1664
+ type: "function",
1665
+ },
1666
+ {
1667
+ inputs: [],
1668
+ name: "getReferralsTargetVolumeUsd",
1669
+ outputs: [
1670
+ {
1671
+ internalType: "uint256",
1672
+ name: "",
1673
+ type: "uint256",
1674
+ },
1675
+ ],
1676
+ stateMutability: "view",
1677
+ type: "function",
1678
+ },
1679
+ {
1680
+ inputs: [
1681
+ {
1682
+ internalType: "address",
1683
+ name: "_trader",
1684
+ type: "address",
1685
+ },
1686
+ ],
1687
+ name: "getReferrerByTrader",
1688
+ outputs: [
1689
+ {
1690
+ internalType: "address",
1691
+ name: "",
1692
+ type: "address",
1693
+ },
1694
+ ],
1695
+ stateMutability: "view",
1696
+ type: "function",
1697
+ },
1698
+ {
1699
+ inputs: [
1700
+ {
1701
+ internalType: "address",
1702
+ name: "_referrer",
1703
+ type: "address",
1704
+ },
1705
+ ],
1706
+ name: "getReferrerDetails",
1707
+ outputs: [
1708
+ {
1709
+ components: [
1710
+ {
1711
+ internalType: "address",
1712
+ name: "ally",
1713
+ type: "address",
1714
+ },
1715
+ {
1716
+ internalType: "address[]",
1717
+ name: "tradersReferred",
1718
+ type: "address[]",
1719
+ },
1720
+ {
1721
+ internalType: "uint256",
1722
+ name: "volumeReferredUsd",
1723
+ type: "uint256",
1724
+ },
1725
+ {
1726
+ internalType: "uint256",
1727
+ name: "pendingRewardsToken",
1728
+ type: "uint256",
1729
+ },
1730
+ {
1731
+ internalType: "uint256",
1732
+ name: "totalRewardsToken",
1733
+ type: "uint256",
1734
+ },
1735
+ {
1736
+ internalType: "uint256",
1737
+ name: "totalRewardsValueUsd",
1738
+ type: "uint256",
1739
+ },
1740
+ {
1741
+ internalType: "bool",
1742
+ name: "active",
1743
+ type: "bool",
1744
+ },
1745
+ ],
1746
+ internalType: "struct IReferralsUtils.ReferrerDetails",
1747
+ name: "",
1748
+ type: "tuple",
1749
+ },
1750
+ ],
1751
+ stateMutability: "view",
1752
+ type: "function",
1753
+ },
1754
+ {
1755
+ inputs: [
1756
+ {
1757
+ internalType: "uint256",
1758
+ name: "_pairOpenFeeP",
1759
+ type: "uint256",
1760
+ },
1761
+ {
1762
+ internalType: "uint256",
1763
+ name: "_volumeReferredUsd",
1764
+ type: "uint256",
1765
+ },
1766
+ ],
1767
+ name: "getReferrerFeeP",
1768
+ outputs: [
1769
+ {
1770
+ internalType: "uint256",
1771
+ name: "",
1772
+ type: "uint256",
1773
+ },
1774
+ ],
1775
+ stateMutability: "view",
1776
+ type: "function",
1777
+ },
1778
+ {
1779
+ inputs: [
1780
+ {
1781
+ internalType: "address",
1782
+ name: "_ally",
1783
+ type: "address",
1784
+ },
1785
+ ],
1786
+ name: "getReferrersReferred",
1787
+ outputs: [
1788
+ {
1789
+ internalType: "address[]",
1790
+ name: "",
1791
+ type: "address[]",
1792
+ },
1793
+ ],
1794
+ stateMutability: "view",
1795
+ type: "function",
1796
+ },
1797
+ {
1798
+ inputs: [
1799
+ {
1800
+ internalType: "uint256",
1801
+ name: "_openPrice",
1802
+ type: "uint256",
1803
+ },
1804
+ {
1805
+ internalType: "uint256",
1806
+ name: "_pairIndex",
1807
+ type: "uint256",
1808
+ },
1809
+ {
1810
+ internalType: "bool",
1811
+ name: "_long",
1812
+ type: "bool",
1813
+ },
1814
+ {
1815
+ internalType: "uint256",
1816
+ name: "_tradeOpenInterestUsd",
1817
+ type: "uint256",
1818
+ },
1819
+ ],
1820
+ name: "getTradePriceImpact",
1821
+ outputs: [
1822
+ {
1823
+ internalType: "uint256",
1824
+ name: "priceImpactP",
1825
+ type: "uint256",
1826
+ },
1827
+ {
1828
+ internalType: "uint256",
1829
+ name: "priceAfterImpact",
1830
+ type: "uint256",
1831
+ },
1832
+ ],
1833
+ stateMutability: "view",
1834
+ type: "function",
1835
+ },
1836
+ {
1837
+ inputs: [
1838
+ {
1839
+ internalType: "address",
1840
+ name: "_trader",
1841
+ type: "address",
1842
+ },
1843
+ ],
1844
+ name: "getTraderReferrer",
1845
+ outputs: [
1846
+ {
1847
+ internalType: "address",
1848
+ name: "",
1849
+ type: "address",
1850
+ },
1851
+ ],
1852
+ stateMutability: "view",
1853
+ type: "function",
1854
+ },
1855
+ {
1856
+ inputs: [
1857
+ {
1858
+ internalType: "address",
1859
+ name: "_referred",
1860
+ type: "address",
1861
+ },
1862
+ ],
1863
+ name: "getTradersReferred",
1864
+ outputs: [
1865
+ {
1866
+ internalType: "address[]",
1867
+ name: "",
1868
+ type: "address[]",
1869
+ },
1870
+ ],
1871
+ stateMutability: "view",
1872
+ type: "function",
1873
+ },
1874
+ {
1875
+ inputs: [
1876
+ {
1877
+ internalType: "uint256",
1878
+ name: "_index",
1879
+ type: "uint256",
1880
+ },
1881
+ ],
1882
+ name: "groups",
1883
+ outputs: [
1884
+ {
1885
+ components: [
1886
+ {
1887
+ internalType: "string",
1888
+ name: "name",
1889
+ type: "string",
1890
+ },
1891
+ {
1892
+ internalType: "bytes32",
1893
+ name: "job",
1894
+ type: "bytes32",
1895
+ },
1896
+ {
1897
+ internalType: "uint256",
1898
+ name: "minLeverage",
1899
+ type: "uint256",
1900
+ },
1901
+ {
1902
+ internalType: "uint256",
1903
+ name: "maxLeverage",
1904
+ type: "uint256",
1905
+ },
1906
+ ],
1907
+ internalType: "struct IPairsStorageUtils.Group",
1908
+ name: "",
1909
+ type: "tuple",
1910
+ },
1911
+ ],
1912
+ stateMutability: "view",
1913
+ type: "function",
1914
+ },
1915
+ {
1916
+ inputs: [],
1917
+ name: "groupsCount",
1918
+ outputs: [
1919
+ {
1920
+ internalType: "uint256",
1921
+ name: "",
1922
+ type: "uint256",
1923
+ },
1924
+ ],
1925
+ stateMutability: "view",
1926
+ type: "function",
1927
+ },
1928
+ {
1929
+ inputs: [
1930
+ {
1931
+ internalType: "address",
1932
+ name: "_account",
1933
+ type: "address",
1934
+ },
1935
+ {
1936
+ internalType: "enum IAddressStoreUtils.Role",
1937
+ name: "_role",
1938
+ type: "uint8",
1939
+ },
1940
+ ],
1941
+ name: "hasRole",
1942
+ outputs: [
1943
+ {
1944
+ internalType: "bool",
1945
+ name: "",
1946
+ type: "bool",
1947
+ },
1948
+ ],
1949
+ stateMutability: "view",
1950
+ type: "function",
1951
+ },
1952
+ {
1953
+ inputs: [
1954
+ {
1955
+ internalType: "address",
1956
+ name: "_rolesManager",
1957
+ type: "address",
1958
+ },
1959
+ {
1960
+ internalType: "address",
1961
+ name: "_gns",
1962
+ type: "address",
1963
+ },
1964
+ ],
1965
+ name: "initialize",
1966
+ outputs: [],
1967
+ stateMutability: "nonpayable",
1968
+ type: "function",
1969
+ },
1970
+ {
1971
+ inputs: [
1972
+ {
1973
+ internalType: "uint256[]",
1974
+ name: "_groupIndices",
1975
+ type: "uint256[]",
1976
+ },
1977
+ {
1978
+ internalType: "uint256[]",
1979
+ name: "_groupVolumeMultipliers",
1980
+ type: "uint256[]",
1981
+ },
1982
+ {
1983
+ internalType: "uint256[]",
1984
+ name: "_feeTiersIndices",
1985
+ type: "uint256[]",
1986
+ },
1987
+ {
1988
+ components: [
1989
+ {
1990
+ internalType: "uint32",
1991
+ name: "feeMultiplier",
1992
+ type: "uint32",
1993
+ },
1994
+ {
1995
+ internalType: "uint32",
1996
+ name: "pointsThreshold",
1997
+ type: "uint32",
1998
+ },
1999
+ ],
2000
+ internalType: "struct IFeeTiersUtils.FeeTier[]",
2001
+ name: "_feeTiers",
2002
+ type: "tuple[]",
2003
+ },
2004
+ ],
2005
+ name: "initializeFeeTiers",
2006
+ outputs: [],
2007
+ stateMutability: "nonpayable",
2008
+ type: "function",
2009
+ },
2010
+ {
2011
+ inputs: [
2012
+ {
2013
+ internalType: "uint256",
2014
+ name: "_currentOrderId",
2015
+ type: "uint256",
2016
+ },
2017
+ ],
2018
+ name: "initializePairsStorage",
2019
+ outputs: [],
2020
+ stateMutability: "nonpayable",
2021
+ type: "function",
2022
+ },
2023
+ {
2024
+ inputs: [
2025
+ {
2026
+ internalType: "uint48",
2027
+ name: "_windowsDuration",
2028
+ type: "uint48",
2029
+ },
2030
+ {
2031
+ internalType: "uint48",
2032
+ name: "_windowsCount",
2033
+ type: "uint48",
2034
+ },
2035
+ ],
2036
+ name: "initializePriceImpact",
2037
+ outputs: [],
2038
+ stateMutability: "nonpayable",
2039
+ type: "function",
2040
+ },
2041
+ {
2042
+ inputs: [
2043
+ {
2044
+ internalType: "uint256",
2045
+ name: "_allyFeeP",
2046
+ type: "uint256",
2047
+ },
2048
+ {
2049
+ internalType: "uint256",
2050
+ name: "_startReferrerFeeP",
2051
+ type: "uint256",
2052
+ },
2053
+ {
2054
+ internalType: "uint256",
2055
+ name: "_openFeeP",
2056
+ type: "uint256",
2057
+ },
2058
+ {
2059
+ internalType: "uint256",
2060
+ name: "_targetVolumeUsd",
2061
+ type: "uint256",
2062
+ },
2063
+ ],
2064
+ name: "initializeReferrals",
2065
+ outputs: [],
2066
+ stateMutability: "nonpayable",
2067
+ type: "function",
2068
+ },
2069
+ {
2070
+ inputs: [
2071
+ {
2072
+ internalType: "string",
2073
+ name: "_from",
2074
+ type: "string",
2075
+ },
2076
+ {
2077
+ internalType: "string",
2078
+ name: "_to",
2079
+ type: "string",
2080
+ },
2081
+ ],
2082
+ name: "isPairListed",
2083
+ outputs: [
2084
+ {
2085
+ internalType: "bool",
2086
+ name: "",
2087
+ type: "bool",
2088
+ },
2089
+ ],
2090
+ stateMutability: "view",
2091
+ type: "function",
2092
+ },
2093
+ {
2094
+ inputs: [
2095
+ {
2096
+ internalType: "uint256",
2097
+ name: "_pairIndex",
2098
+ type: "uint256",
2099
+ },
2100
+ ],
2101
+ name: "pairCloseFeeP",
2102
+ outputs: [
2103
+ {
2104
+ internalType: "uint256",
2105
+ name: "",
2106
+ type: "uint256",
2107
+ },
2108
+ ],
2109
+ stateMutability: "view",
2110
+ type: "function",
2111
+ },
2112
+ {
2113
+ inputs: [
2114
+ {
2115
+ internalType: "uint256",
2116
+ name: "_pairIndex",
2117
+ type: "uint256",
2118
+ },
2119
+ ],
2120
+ name: "pairCustomMaxLeverage",
2121
+ outputs: [
2122
+ {
2123
+ internalType: "uint256",
2124
+ name: "",
2125
+ type: "uint256",
2126
+ },
2127
+ ],
2128
+ stateMutability: "view",
2129
+ type: "function",
2130
+ },
2131
+ {
2132
+ inputs: [
2133
+ {
2134
+ internalType: "uint256",
2135
+ name: "_pairIndex",
2136
+ type: "uint256",
2137
+ },
2138
+ ],
2139
+ name: "pairFeed",
2140
+ outputs: [
2141
+ {
2142
+ components: [
2143
+ {
2144
+ internalType: "address",
2145
+ name: "feed1",
2146
+ type: "address",
2147
+ },
2148
+ {
2149
+ internalType: "address",
2150
+ name: "feed2",
2151
+ type: "address",
2152
+ },
2153
+ {
2154
+ internalType: "enum IPairsStorageUtils.FeedCalculation",
2155
+ name: "feedCalculation",
2156
+ type: "uint8",
2157
+ },
2158
+ {
2159
+ internalType: "uint256",
2160
+ name: "maxDeviationP",
2161
+ type: "uint256",
2162
+ },
2163
+ ],
2164
+ internalType: "struct IPairsStorageUtils.Feed",
2165
+ name: "",
2166
+ type: "tuple",
2167
+ },
2168
+ ],
2169
+ stateMutability: "view",
2170
+ type: "function",
2171
+ },
2172
+ {
2173
+ inputs: [
2174
+ {
2175
+ internalType: "uint256",
2176
+ name: "_pairIndex",
2177
+ type: "uint256",
2178
+ },
2179
+ ],
2180
+ name: "pairJob",
2181
+ outputs: [
2182
+ {
2183
+ internalType: "string",
2184
+ name: "",
2185
+ type: "string",
2186
+ },
2187
+ {
2188
+ internalType: "string",
2189
+ name: "",
2190
+ type: "string",
2191
+ },
2192
+ {
2193
+ internalType: "bytes32",
2194
+ name: "",
2195
+ type: "bytes32",
2196
+ },
2197
+ {
2198
+ internalType: "uint256",
2199
+ name: "",
2200
+ type: "uint256",
2201
+ },
2202
+ ],
2203
+ stateMutability: "nonpayable",
2204
+ type: "function",
2205
+ },
2206
+ {
2207
+ inputs: [
2208
+ {
2209
+ internalType: "uint256",
2210
+ name: "_pairIndex",
2211
+ type: "uint256",
2212
+ },
2213
+ ],
2214
+ name: "pairMaxLeverage",
2215
+ outputs: [
2216
+ {
2217
+ internalType: "uint256",
2218
+ name: "",
2219
+ type: "uint256",
2220
+ },
2221
+ ],
2222
+ stateMutability: "view",
2223
+ type: "function",
2224
+ },
2225
+ {
2226
+ inputs: [
2227
+ {
2228
+ internalType: "uint256",
2229
+ name: "_pairIndex",
2230
+ type: "uint256",
2231
+ },
2232
+ ],
2233
+ name: "pairMinLevPosUsd",
2234
+ outputs: [
2235
+ {
2236
+ internalType: "uint256",
2237
+ name: "",
2238
+ type: "uint256",
2239
+ },
2240
+ ],
2241
+ stateMutability: "view",
2242
+ type: "function",
2243
+ },
2244
+ {
2245
+ inputs: [
2246
+ {
2247
+ internalType: "uint256",
2248
+ name: "_pairIndex",
2249
+ type: "uint256",
2250
+ },
2251
+ ],
2252
+ name: "pairMinLeverage",
2253
+ outputs: [
2254
+ {
2255
+ internalType: "uint256",
2256
+ name: "",
2257
+ type: "uint256",
2258
+ },
2259
+ ],
2260
+ stateMutability: "view",
2261
+ type: "function",
2262
+ },
2263
+ {
2264
+ inputs: [
2265
+ {
2266
+ internalType: "uint256",
2267
+ name: "_pairIndex",
2268
+ type: "uint256",
2269
+ },
2270
+ ],
2271
+ name: "pairNftLimitOrderFeeP",
2272
+ outputs: [
2273
+ {
2274
+ internalType: "uint256",
2275
+ name: "",
2276
+ type: "uint256",
2277
+ },
2278
+ ],
2279
+ stateMutability: "view",
2280
+ type: "function",
2281
+ },
2282
+ {
2283
+ inputs: [
2284
+ {
2285
+ internalType: "uint256",
2286
+ name: "_pairIndex",
2287
+ type: "uint256",
2288
+ },
2289
+ ],
2290
+ name: "pairOpenFeeP",
2291
+ outputs: [
2292
+ {
2293
+ internalType: "uint256",
2294
+ name: "",
2295
+ type: "uint256",
2296
+ },
2297
+ ],
2298
+ stateMutability: "view",
2299
+ type: "function",
2300
+ },
2301
+ {
2302
+ inputs: [
2303
+ {
2304
+ internalType: "uint256",
2305
+ name: "_pairIndex",
2306
+ type: "uint256",
2307
+ },
2308
+ ],
2309
+ name: "pairOracleFeeP",
2310
+ outputs: [
2311
+ {
2312
+ internalType: "uint256",
2313
+ name: "",
2314
+ type: "uint256",
2315
+ },
2316
+ ],
2317
+ stateMutability: "view",
2318
+ type: "function",
2319
+ },
2320
+ {
2321
+ inputs: [
2322
+ {
2323
+ internalType: "uint256",
2324
+ name: "_pairIndex",
2325
+ type: "uint256",
2326
+ },
2327
+ ],
2328
+ name: "pairSpreadP",
2329
+ outputs: [
2330
+ {
2331
+ internalType: "uint256",
2332
+ name: "",
2333
+ type: "uint256",
2334
+ },
2335
+ ],
2336
+ stateMutability: "view",
2337
+ type: "function",
2338
+ },
2339
+ {
2340
+ inputs: [
2341
+ {
2342
+ internalType: "uint256",
2343
+ name: "_index",
2344
+ type: "uint256",
2345
+ },
2346
+ ],
2347
+ name: "pairs",
2348
+ outputs: [
2349
+ {
2350
+ components: [
2351
+ {
2352
+ internalType: "string",
2353
+ name: "from",
2354
+ type: "string",
2355
+ },
2356
+ {
2357
+ internalType: "string",
2358
+ name: "to",
2359
+ type: "string",
2360
+ },
2361
+ {
2362
+ components: [
2363
+ {
2364
+ internalType: "address",
2365
+ name: "feed1",
2366
+ type: "address",
2367
+ },
2368
+ {
2369
+ internalType: "address",
2370
+ name: "feed2",
2371
+ type: "address",
2372
+ },
2373
+ {
2374
+ internalType: "enum IPairsStorageUtils.FeedCalculation",
2375
+ name: "feedCalculation",
2376
+ type: "uint8",
2377
+ },
2378
+ {
2379
+ internalType: "uint256",
2380
+ name: "maxDeviationP",
2381
+ type: "uint256",
2382
+ },
2383
+ ],
2384
+ internalType: "struct IPairsStorageUtils.Feed",
2385
+ name: "feed",
2386
+ type: "tuple",
2387
+ },
2388
+ {
2389
+ internalType: "uint256",
2390
+ name: "spreadP",
2391
+ type: "uint256",
2392
+ },
2393
+ {
2394
+ internalType: "uint256",
2395
+ name: "groupIndex",
2396
+ type: "uint256",
2397
+ },
2398
+ {
2399
+ internalType: "uint256",
2400
+ name: "feeIndex",
2401
+ type: "uint256",
2402
+ },
2403
+ ],
2404
+ internalType: "struct IPairsStorageUtils.Pair",
2405
+ name: "",
2406
+ type: "tuple",
2407
+ },
2408
+ ],
2409
+ stateMutability: "view",
2410
+ type: "function",
2411
+ },
2412
+ {
2413
+ inputs: [
2414
+ {
2415
+ internalType: "uint256",
2416
+ name: "_index",
2417
+ type: "uint256",
2418
+ },
2419
+ ],
2420
+ name: "pairsBackend",
2421
+ outputs: [
2422
+ {
2423
+ components: [
2424
+ {
2425
+ internalType: "string",
2426
+ name: "from",
2427
+ type: "string",
2428
+ },
2429
+ {
2430
+ internalType: "string",
2431
+ name: "to",
2432
+ type: "string",
2433
+ },
2434
+ {
2435
+ components: [
2436
+ {
2437
+ internalType: "address",
2438
+ name: "feed1",
2439
+ type: "address",
2440
+ },
2441
+ {
2442
+ internalType: "address",
2443
+ name: "feed2",
2444
+ type: "address",
2445
+ },
2446
+ {
2447
+ internalType: "enum IPairsStorageUtils.FeedCalculation",
2448
+ name: "feedCalculation",
2449
+ type: "uint8",
2450
+ },
2451
+ {
2452
+ internalType: "uint256",
2453
+ name: "maxDeviationP",
2454
+ type: "uint256",
2455
+ },
2456
+ ],
2457
+ internalType: "struct IPairsStorageUtils.Feed",
2458
+ name: "feed",
2459
+ type: "tuple",
2460
+ },
2461
+ {
2462
+ internalType: "uint256",
2463
+ name: "spreadP",
2464
+ type: "uint256",
2465
+ },
2466
+ {
2467
+ internalType: "uint256",
2468
+ name: "groupIndex",
2469
+ type: "uint256",
2470
+ },
2471
+ {
2472
+ internalType: "uint256",
2473
+ name: "feeIndex",
2474
+ type: "uint256",
2475
+ },
2476
+ ],
2477
+ internalType: "struct IPairsStorageUtils.Pair",
2478
+ name: "",
2479
+ type: "tuple",
2480
+ },
2481
+ {
2482
+ components: [
2483
+ {
2484
+ internalType: "string",
2485
+ name: "name",
2486
+ type: "string",
2487
+ },
2488
+ {
2489
+ internalType: "bytes32",
2490
+ name: "job",
2491
+ type: "bytes32",
2492
+ },
2493
+ {
2494
+ internalType: "uint256",
2495
+ name: "minLeverage",
2496
+ type: "uint256",
2497
+ },
2498
+ {
2499
+ internalType: "uint256",
2500
+ name: "maxLeverage",
2501
+ type: "uint256",
2502
+ },
2503
+ ],
2504
+ internalType: "struct IPairsStorageUtils.Group",
2505
+ name: "",
2506
+ type: "tuple",
2507
+ },
2508
+ {
2509
+ components: [
2510
+ {
2511
+ internalType: "string",
2512
+ name: "name",
2513
+ type: "string",
2514
+ },
2515
+ {
2516
+ internalType: "uint256",
2517
+ name: "openFeeP",
2518
+ type: "uint256",
2519
+ },
2520
+ {
2521
+ internalType: "uint256",
2522
+ name: "closeFeeP",
2523
+ type: "uint256",
2524
+ },
2525
+ {
2526
+ internalType: "uint256",
2527
+ name: "oracleFeeP",
2528
+ type: "uint256",
2529
+ },
2530
+ {
2531
+ internalType: "uint256",
2532
+ name: "nftLimitOrderFeeP",
2533
+ type: "uint256",
2534
+ },
2535
+ {
2536
+ internalType: "uint256",
2537
+ name: "minLevPosUsd",
2538
+ type: "uint256",
2539
+ },
2540
+ ],
2541
+ internalType: "struct IPairsStorageUtils.Fee",
2542
+ name: "",
2543
+ type: "tuple",
2544
+ },
2545
+ ],
2546
+ stateMutability: "view",
2547
+ type: "function",
2548
+ },
2549
+ {
2550
+ inputs: [],
2551
+ name: "pairsCount",
2552
+ outputs: [
2553
+ {
2554
+ internalType: "uint256",
2555
+ name: "",
2556
+ type: "uint256",
2557
+ },
2558
+ ],
2559
+ stateMutability: "view",
2560
+ type: "function",
2561
+ },
2562
+ {
2563
+ inputs: [
2564
+ {
2565
+ internalType: "address",
2566
+ name: "_trader",
2567
+ type: "address",
2568
+ },
2569
+ {
2570
+ internalType: "address",
2571
+ name: "_referrer",
2572
+ type: "address",
2573
+ },
2574
+ ],
2575
+ name: "registerPotentialReferrer",
2576
+ outputs: [],
2577
+ stateMutability: "nonpayable",
2578
+ type: "function",
2579
+ },
2580
+ {
2581
+ inputs: [
2582
+ {
2583
+ internalType: "uint256",
2584
+ name: "_openInterestUsd",
2585
+ type: "uint256",
2586
+ },
2587
+ {
2588
+ internalType: "uint256",
2589
+ name: "_pairIndex",
2590
+ type: "uint256",
2591
+ },
2592
+ {
2593
+ internalType: "bool",
2594
+ name: "_long",
2595
+ type: "bool",
2596
+ },
2597
+ {
2598
+ internalType: "uint48",
2599
+ name: "_addTs",
2600
+ type: "uint48",
2601
+ },
2602
+ ],
2603
+ name: "removePriceImpactOpenInterest",
2604
+ outputs: [],
2605
+ stateMutability: "nonpayable",
2606
+ type: "function",
2607
+ },
2608
+ {
2609
+ inputs: [
2610
+ {
2611
+ internalType: "uint256[]",
2612
+ name: "_feeTiersIndices",
2613
+ type: "uint256[]",
2614
+ },
2615
+ {
2616
+ components: [
2617
+ {
2618
+ internalType: "uint32",
2619
+ name: "feeMultiplier",
2620
+ type: "uint32",
2621
+ },
2622
+ {
2623
+ internalType: "uint32",
2624
+ name: "pointsThreshold",
2625
+ type: "uint32",
2626
+ },
2627
+ ],
2628
+ internalType: "struct IFeeTiersUtils.FeeTier[]",
2629
+ name: "_feeTiers",
2630
+ type: "tuple[]",
2631
+ },
2632
+ ],
2633
+ name: "setFeeTiers",
2634
+ outputs: [],
2635
+ stateMutability: "nonpayable",
2636
+ type: "function",
2637
+ },
2638
+ {
2639
+ inputs: [
2640
+ {
2641
+ internalType: "uint256[]",
2642
+ name: "_groupIndices",
2643
+ type: "uint256[]",
2644
+ },
2645
+ {
2646
+ internalType: "uint256[]",
2647
+ name: "_groupVolumeMultipliers",
2648
+ type: "uint256[]",
2649
+ },
2650
+ ],
2651
+ name: "setGroupVolumeMultipliers",
2652
+ outputs: [],
2653
+ stateMutability: "nonpayable",
2654
+ type: "function",
2655
+ },
2656
+ {
2657
+ inputs: [
2658
+ {
2659
+ internalType: "uint256[]",
2660
+ name: "_indices",
2661
+ type: "uint256[]",
2662
+ },
2663
+ {
2664
+ internalType: "uint256[]",
2665
+ name: "_values",
2666
+ type: "uint256[]",
2667
+ },
2668
+ ],
2669
+ name: "setPairCustomMaxLeverages",
2670
+ outputs: [],
2671
+ stateMutability: "nonpayable",
2672
+ type: "function",
2673
+ },
2674
+ {
2675
+ inputs: [
2676
+ {
2677
+ internalType: "uint256[]",
2678
+ name: "_indices",
2679
+ type: "uint256[]",
2680
+ },
2681
+ {
2682
+ internalType: "uint128[]",
2683
+ name: "_depthsAboveUsd",
2684
+ type: "uint128[]",
2685
+ },
2686
+ {
2687
+ internalType: "uint128[]",
2688
+ name: "_depthsBelowUsd",
2689
+ type: "uint128[]",
2690
+ },
2691
+ ],
2692
+ name: "setPairDepths",
2693
+ outputs: [],
2694
+ stateMutability: "nonpayable",
2695
+ type: "function",
2696
+ },
2697
+ {
2698
+ inputs: [
2699
+ {
2700
+ internalType: "uint48",
2701
+ name: "_newWindowsCount",
2702
+ type: "uint48",
2703
+ },
2704
+ ],
2705
+ name: "setPriceImpactWindowsCount",
2706
+ outputs: [],
2707
+ stateMutability: "nonpayable",
2708
+ type: "function",
2709
+ },
2710
+ {
2711
+ inputs: [
2712
+ {
2713
+ internalType: "uint48",
2714
+ name: "_newWindowsDuration",
2715
+ type: "uint48",
2716
+ },
2717
+ ],
2718
+ name: "setPriceImpactWindowsDuration",
2719
+ outputs: [],
2720
+ stateMutability: "nonpayable",
2721
+ type: "function",
2722
+ },
2723
+ {
2724
+ inputs: [
2725
+ {
2726
+ internalType: "address[]",
2727
+ name: "_accounts",
2728
+ type: "address[]",
2729
+ },
2730
+ {
2731
+ internalType: "enum IAddressStoreUtils.Role[]",
2732
+ name: "_roles",
2733
+ type: "uint8[]",
2734
+ },
2735
+ {
2736
+ internalType: "bool[]",
2737
+ name: "_values",
2738
+ type: "bool[]",
2739
+ },
2740
+ ],
2741
+ name: "setRoles",
2742
+ outputs: [],
2743
+ stateMutability: "nonpayable",
2744
+ type: "function",
2745
+ },
2746
+ {
2747
+ inputs: [
2748
+ {
2749
+ internalType: "address[]",
2750
+ name: "_allies",
2751
+ type: "address[]",
2752
+ },
2753
+ ],
2754
+ name: "unwhitelistAllies",
2755
+ outputs: [],
2756
+ stateMutability: "nonpayable",
2757
+ type: "function",
2758
+ },
2759
+ {
2760
+ inputs: [
2761
+ {
2762
+ internalType: "address[]",
2763
+ name: "_referrers",
2764
+ type: "address[]",
2765
+ },
2766
+ ],
2767
+ name: "unwhitelistReferrers",
2768
+ outputs: [],
2769
+ stateMutability: "nonpayable",
2770
+ type: "function",
2771
+ },
2772
+ {
2773
+ inputs: [
2774
+ {
2775
+ internalType: "uint256",
2776
+ name: "_value",
2777
+ type: "uint256",
2778
+ },
2779
+ ],
2780
+ name: "updateAllyFeeP",
2781
+ outputs: [],
2782
+ stateMutability: "nonpayable",
2783
+ type: "function",
2784
+ },
2785
+ {
2786
+ inputs: [
2787
+ {
2788
+ internalType: "uint256[]",
2789
+ name: "_ids",
2790
+ type: "uint256[]",
2791
+ },
2792
+ {
2793
+ components: [
2794
+ {
2795
+ internalType: "string",
2796
+ name: "name",
2797
+ type: "string",
2798
+ },
2799
+ {
2800
+ internalType: "uint256",
2801
+ name: "openFeeP",
2802
+ type: "uint256",
2803
+ },
2804
+ {
2805
+ internalType: "uint256",
2806
+ name: "closeFeeP",
2807
+ type: "uint256",
2808
+ },
2809
+ {
2810
+ internalType: "uint256",
2811
+ name: "oracleFeeP",
2812
+ type: "uint256",
2813
+ },
2814
+ {
2815
+ internalType: "uint256",
2816
+ name: "nftLimitOrderFeeP",
2817
+ type: "uint256",
2818
+ },
2819
+ {
2820
+ internalType: "uint256",
2821
+ name: "minLevPosUsd",
2822
+ type: "uint256",
2823
+ },
2824
+ ],
2825
+ internalType: "struct IPairsStorageUtils.Fee[]",
2826
+ name: "_fees",
2827
+ type: "tuple[]",
2828
+ },
2829
+ ],
2830
+ name: "updateFees",
2831
+ outputs: [],
2832
+ stateMutability: "nonpayable",
2833
+ type: "function",
2834
+ },
2835
+ {
2836
+ inputs: [
2837
+ {
2838
+ internalType: "uint256[]",
2839
+ name: "_ids",
2840
+ type: "uint256[]",
2841
+ },
2842
+ {
2843
+ components: [
2844
+ {
2845
+ internalType: "string",
2846
+ name: "name",
2847
+ type: "string",
2848
+ },
2849
+ {
2850
+ internalType: "bytes32",
2851
+ name: "job",
2852
+ type: "bytes32",
2853
+ },
2854
+ {
2855
+ internalType: "uint256",
2856
+ name: "minLeverage",
2857
+ type: "uint256",
2858
+ },
2859
+ {
2860
+ internalType: "uint256",
2861
+ name: "maxLeverage",
2862
+ type: "uint256",
2863
+ },
2864
+ ],
2865
+ internalType: "struct IPairsStorageUtils.Group[]",
2866
+ name: "_groups",
2867
+ type: "tuple[]",
2868
+ },
2869
+ ],
2870
+ name: "updateGroups",
2871
+ outputs: [],
2872
+ stateMutability: "nonpayable",
2873
+ type: "function",
2874
+ },
2875
+ {
2876
+ inputs: [
2877
+ {
2878
+ internalType: "uint256",
2879
+ name: "_value",
2880
+ type: "uint256",
2881
+ },
2882
+ ],
2883
+ name: "updateOpenFeeP",
2884
+ outputs: [],
2885
+ stateMutability: "nonpayable",
2886
+ type: "function",
2887
+ },
2888
+ {
2889
+ inputs: [
2890
+ {
2891
+ internalType: "uint256[]",
2892
+ name: "_pairIndices",
2893
+ type: "uint256[]",
2894
+ },
2895
+ {
2896
+ components: [
2897
+ {
2898
+ internalType: "string",
2899
+ name: "from",
2900
+ type: "string",
2901
+ },
2902
+ {
2903
+ internalType: "string",
2904
+ name: "to",
2905
+ type: "string",
2906
+ },
2907
+ {
2908
+ components: [
2909
+ {
2910
+ internalType: "address",
2911
+ name: "feed1",
2912
+ type: "address",
2913
+ },
2914
+ {
2915
+ internalType: "address",
2916
+ name: "feed2",
2917
+ type: "address",
2918
+ },
2919
+ {
2920
+ internalType: "enum IPairsStorageUtils.FeedCalculation",
2921
+ name: "feedCalculation",
2922
+ type: "uint8",
2923
+ },
2924
+ {
2925
+ internalType: "uint256",
2926
+ name: "maxDeviationP",
2927
+ type: "uint256",
2928
+ },
2929
+ ],
2930
+ internalType: "struct IPairsStorageUtils.Feed",
2931
+ name: "feed",
2932
+ type: "tuple",
2933
+ },
2934
+ {
2935
+ internalType: "uint256",
2936
+ name: "spreadP",
2937
+ type: "uint256",
2938
+ },
2939
+ {
2940
+ internalType: "uint256",
2941
+ name: "groupIndex",
2942
+ type: "uint256",
2943
+ },
2944
+ {
2945
+ internalType: "uint256",
2946
+ name: "feeIndex",
2947
+ type: "uint256",
2948
+ },
2949
+ ],
2950
+ internalType: "struct IPairsStorageUtils.Pair[]",
2951
+ name: "_pairs",
2952
+ type: "tuple[]",
2953
+ },
2954
+ ],
2955
+ name: "updatePairs",
2956
+ outputs: [],
2957
+ stateMutability: "nonpayable",
2958
+ type: "function",
2959
+ },
2960
+ {
2961
+ inputs: [
2962
+ {
2963
+ internalType: "uint256",
2964
+ name: "_value",
2965
+ type: "uint256",
2966
+ },
2967
+ ],
2968
+ name: "updateStartReferrerFeeP",
2969
+ outputs: [],
2970
+ stateMutability: "nonpayable",
2971
+ type: "function",
2972
+ },
2973
+ {
2974
+ inputs: [
2975
+ {
2976
+ internalType: "uint256",
2977
+ name: "_value",
2978
+ type: "uint256",
2979
+ },
2980
+ ],
2981
+ name: "updateTargetVolumeUsd",
2982
+ outputs: [],
2983
+ stateMutability: "nonpayable",
2984
+ type: "function",
2985
+ },
2986
+ {
2987
+ inputs: [
2988
+ {
2989
+ internalType: "address",
2990
+ name: "_trader",
2991
+ type: "address",
2992
+ },
2993
+ {
2994
+ internalType: "uint256",
2995
+ name: "_volumeUsd",
2996
+ type: "uint256",
2997
+ },
2998
+ {
2999
+ internalType: "uint256",
3000
+ name: "_pairIndex",
3001
+ type: "uint256",
3002
+ },
3003
+ ],
3004
+ name: "updateTraderPoints",
3005
+ outputs: [],
3006
+ stateMutability: "nonpayable",
3007
+ type: "function",
3008
+ },
3009
+ {
3010
+ inputs: [
3011
+ {
3012
+ internalType: "address[]",
3013
+ name: "_allies",
3014
+ type: "address[]",
3015
+ },
3016
+ ],
3017
+ name: "whitelistAllies",
3018
+ outputs: [],
3019
+ stateMutability: "nonpayable",
3020
+ type: "function",
3021
+ },
3022
+ {
3023
+ inputs: [
3024
+ {
3025
+ internalType: "address[]",
3026
+ name: "_referrers",
3027
+ type: "address[]",
3028
+ },
3029
+ {
3030
+ internalType: "address[]",
3031
+ name: "_allies",
3032
+ type: "address[]",
3033
+ },
3034
+ ],
3035
+ name: "whitelistReferrers",
3036
+ outputs: [],
3037
+ stateMutability: "nonpayable",
3038
+ type: "function",
3039
+ },
3040
+ ];
3041
+ const _bytecode = "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b614adc80620000f36000396000f3fe608060405234801561001057600080fd5b50600436106104965760003560e01c8063836a341a11610262578063b56df67611610151578063d79261fd116100ce578063eced524911610092578063eced524914610d6b578063ee6cf88414610d7e578063f79ad43e14610d86578063f7acbabd14610d99578063fa3c8dbf14610dcc578063fed8a19014610ddf57600080fd5b8063d79261fd14610ce8578063db7c3f9d14610cfb578063e57f675914610d0e578063e8ba086814610d21578063eccea3e214610d3457600080fd5b8063c72d02e311610115578063c72d02e314610c63578063c8231e1114610c76578063c8b0d71014610ca2578063cbe0f32e14610cb5578063d01c920214610cd557600080fd5b8063b56df67614610b71578063b6d92b0214610bfd578063b81b2b7114610c10578063b91ac78814610c18578063c3160c6814610c3857600080fd5b806396839490116101df578063a1d54e9b116101a3578063a1d54e9b14610a99578063a39fac1214610abc578063a73a3e3514610aee578063a89db8e514610b01578063acbaaf3314610b0957600080fd5b80639683949014610a2557806397365b7414610a3857806397436b5f14610a4b5780639b8ab68414610a535780639c8dd2fa14610a6657600080fd5b806392e674061161022657806392e674061461099d578063944f577a146109bd5780639567dccf146109d057806395a8c58d146109f257806396324bd414610a0557600080fd5b8063836a341a1461093f578063843b9e5d14610972578063885e27501461097a578063925931fc1461098257806392b2bbae1461098a57600080fd5b806339b0fc821161038957806360283cba1161030657806371159fd1116102ca57806371159fd114610836578063794d85201461083e5780637a3ab5e0146108be5780637ea95f32146108d1578063823ef2ac146108f95780638251135b1461090c57600080fd5b806360283cba146107eb5780636474b399146107fe578063658de48a1461081157806365cbd30714610819578063678b3fb01461082157600080fd5b80634f09a2361161034d5780634f09a2361461074c5780634f5929371461075f578063507cd8de14610792578063577d86db146107a557806359a992d0146107b857600080fd5b806339b0fc82146106e057806346f9a8e0146106f3578063485cc955146107065780634acc79ed146107195780634e583b311461073957600080fd5b80631628bfeb1161041757806331ca4887116103db57806331ca48871461061257806332a7b7321461063257806333534de2146106525780633450191e14610665578063375bb2bb1461067857600080fd5b80631628bfeb146105795780631eaa005c1461059c57806324a96865146105bc578063281b693c146105dc578063302f81fc146105ef57600080fd5b80630d569f271161045e5780630d569f271461050d578063101e65031461052d57806310751b4f1461054057806310efa5d51461055357806311d79ef51461056657600080fd5b806301d5664a1461049b57806303e37464146104b057806306350917146104c35780630c00b94a146104da5780630d12f7cb146104ed575b600080fd5b6104ae6104a9366004613669565b610df2565b005b6104ae6104be36600461369c565b610f8c565b606a545b6040519081526020015b60405180910390f35b6104ae6104e8366004613700565b610ffe565b6105006104fb366004613741565b611077565b6040516104d1919061379a565b61052061051b366004613700565b6111c2565b6040516104d191906137fd565b6104ae61053b366004613853565b6112c3565b6104ae61054e3660046138ec565b611430565b6104ae610561366004613907565b61147a565b6104ae610574366004613907565b6114f9565b61058c6105873660046139a7565b611541565b60405190151581526020016104d1565b6105af6105aa36600461369c565b611593565b6040516104d19190613a68565b6104c76105ca36600461369c565b60009081526037602052604090205490565b6104c76105ea36600461369c565b61163a565b6106026105fd36600461369c565b6116b2565b6040516104d19493929190613ac6565b6104c761062036600461369c565b6000908152609f602052604090205490565b610645610640366004613b16565b61174b565b6040516104d19190613b75565b6104ae610660366004613bcc565b6117c4565b6104ae610673366004613700565b61195d565b6106d361068636600461369c565b604080518082019091526000808252602082015250600090815260cb60209081526040918290208251808401909352546001600160801b038082168452600160801b909104169082015290565b6040516104d19190613c8f565b6104ae6106ee3660046138ec565b6119a1565b6104ae61070136600461369c565b611a59565b6104ae610714366004613cb3565b611a9c565b61072c61072736600461369c565b611be6565b6040516104d19190613d30565b6104c7610747366004613d43565b611cd1565b6104c761075a366004613d65565b611d57565b6104c761076d36600461369c565b6000908152603360209081526040808320600701548352603590915290206005015490565b6104ae6107a0366004613907565b611da1565b6104c76107b336600461369c565b611de9565b6104c76107c636600461369c565b6000908152603360209081526040808320600601548352603490915290206002015490565b6104ae6107f9366004613700565b611e24565b6104ae61080c366004613853565b611e68565b603b546104c7565b6104ae611eed565b610829611f4b565b6040516104d19190613d8f565b606b546104c7565b6108b161084c366004613de7565b604080518082018252600080825260209182018190526001600160a01b0394909416845260a1815281842063ffffffff938416855281529281902081518083019092525491821681526401000000009091046001600160e01b03169181019190915290565b6040516104d19190613e11565b6104c76108cc366004613b16565b611fe8565b6108e46108df366004613e47565b61204e565b604080519283526020830191909152016104d1565b6106d3610907366004613e84565b6120e9565b6104c761091a36600461369c565b6000908152603360209081526040808320600701548352603590915290206001015490565b6104c761094d36600461369c565b6000908152603360209081526040808320600701548352603590915290206002015490565b6069546104c7565b603a546104c7565b6038546104c7565b6104ae610998366004613700565b612183565b6109b06109ab366004613b16565b6121c7565b6040516104d19190613eb7565b6104ae6109cb366004613907565b6122bd565b6109e36109de36600461369c565b612305565b6040516104d193929190613fc1565b61058c610a00366004614009565b6126e9565b610a18610a1336600461369c565b612740565b6040516104d19190614033565b6104ae610a33366004614046565b61283d565b6104ae610a4636600461369c565b6128bf565b6068546104c7565b6104ae610a61366004613cb3565b612902565b6104c7610a7436600461369c565b6000908152603360209081526040808320600701548352603590915290206004015490565b6104c7610aa736600461369c565b60009081526033602052604090206005015490565b60408051602080820183526000909152815180820183526001546001600160a01b0316908190529151918252016104d1565b610645610afc366004613b16565b612955565b6104c76129c9565b6108b1610b17366004613b16565b6040805180820190915260008082526020820152506001600160a01b0316600090815260a0602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b03169082015290565b610bcc6040805160608101825260008082526020820181905291810191909152506040805160608101825260c95465ffffffffffff8082168352600160301b820481166020840152600160601b909104169181019190915290565b60408051825165ffffffffffff908116825260208085015182169083015292820151909216908201526060016104d1565b6104c7610c0b36600461407b565b612a45565b6039546104c7565b610c2b610c2636600461369c565b612a88565b6040516104d1919061409e565b610c4b610c46366004613b16565b612c69565b6040516001600160a01b0390911681526020016104d1565b6104ae610c71366004613700565b612ca9565b610c4b610c84366004613b16565b6001600160a01b039081166000908152606760205260409020541690565b6104ae610cb03660046140b1565b612ced565b610cc8610cc3366004613b16565b612e85565b6040516104d191906140e3565b6104ae610ce3366004614152565b612f9a565b6104ae610cf6366004613907565b613002565b6104ae610d09366004613700565b61304a565b6104ae610d1c366004613907565b61308e565b6104ae610d2f36600461369c565b6130d6565b610d47610d4236600461369c565b613256565b60408051825163ffffffff90811682526020938401511692810192909252016104d1565b6104ae610d79366004614198565b6132a9565b6104ae6132f1565b6104ae610d9436600461369c565b613335565b6104c7610da736600461369c565b6000908152603360209081526040808320600701548352603590915290206003015490565b6104c7610dda3660046141f7565b613378565b6104ae610ded366004614230565b613420565b600054600590610100900460ff16158015610e14575060005460ff8083169116105b610e395760405162461bcd60e51b8152600401610e309061424e565b60405180910390fd5b6000805461ffff191660ff83161761010017905560408051631b21df2160e21b8152905160c99173__$a828372db7642c41339011fca570451788$__91636c877c84916004808201926020929091908290030181865af4158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec5919061429c565b8114610ee45760405163e2e6776560e01b815260040160405180910390fd5b6040516312199ca160e01b815265ffffffffffff80861660048301528416602482015273__$a828372db7642c41339011fca570451788$__906312199ca19060440160006040518083038186803b158015610f3e57600080fd5b505af4158015610f52573d6000803e3d6000fd5b50506000805461ff0019169055505060405160ff83168152600080516020614a8783398151915291506020015b60405180910390a1505050565b6001610f97816134fa565b60405162f8dd1960e21b81526004810183905273__$efc4469b388a7d05e45f588ccb0743133d$__906303e37464906024015b60006040518083038186803b158015610fe257600080fd5b505af4158015610ff6573d6000803e3d6000fd5b505050505050565b6001611009816134fa565b604051631c8d1c3d60e31b815273__$0149075866d76909b594731d03a362f285$__9063e468e1e89061104290869086906004016143d1565b60006040518083038186803b15801561105a57600080fd5b505af415801561106e573d6000803e3d6000fd5b50505050505050565b60606000826001600160401b03811115611093576110936143ed565b6040519080825280602002602001820160405280156110d857816020015b60408051808201909152600080825260208201528152602001906001900390816110b15790505b50905060008665ffffffffffff16116111025760c954600160301b900465ffffffffffff16611104565b855b955060005b838110156111b85765ffffffffffff8716600090815260ca6020908152604080832089845290915281209086868481811061114657611146614403565b602090810292909201358352508181019290925260409081016000208151808301909252546001600160801b038082168352600160801b9091041691810191909152825183908390811061119c5761119c614403565b6020026020010181905250806111b190614419565b9050611109565b5095945050505050565b60606000826001600160401b038111156111de576111de6143ed565b60405190808252806020026020018201604052801561122357816020015b60408051808201909152600080825260208201528152602001906001900390816111fc5790505b50905060005b838110156112b95760cb600086868481811061124757611247614403565b602090810292909201358352508181019290925260409081016000208151808301909252546001600160801b038082168352600160801b9091041691810191909152825183908390811061129d5761129d614403565b6020026020010181905250806112b290614419565b9050611229565b5090505b92915050565b60006112ce816134fa565b85841415806112dd5750858214155b156112fb57604051637db491eb60e01b815260040160405180910390fd5b60005b8681101561142657600086868381811061131a5761131a614403565b905060200201602081019061132f9190614440565b600581111561134057611340613a06565b14801561137b57503388888381811061135b5761135b614403565b90506020020160208101906113709190613b16565b6001600160a01b0316145b1561139957604051631eb49d6d60e11b815260040160405180910390fd5b6114168888838181106113ae576113ae614403565b90506020020160208101906113c39190613b16565b8787848181106113d5576113d5614403565b90506020020160208101906113ea9190614440565b8686858181106113fc576113fc614403565b9050602002016020810190611411919061445b565b613524565b61141f81614419565b90506112fe565b5050505050505050565b600161143b816134fa565b6040516310751b4f60e01b815265ffffffffffff8316600482015273__$a828372db7642c41339011fca570451788$__906310751b4f90602401610fca565b6001611485816134fa565b604051630d26cf3d60e01b815273__$0149075866d76909b594731d03a362f285$__90630d26cf3d906114c29088908890889088906004016145b8565b60006040518083038186803b1580156114da57600080fd5b505af41580156114ee573d6000803e3d6000fd5b505050505050505050565b6001611504816134fa565b604051630abec87f60e41b815273__$0149075866d76909b594731d03a362f285$__9063abec87f0906114c2908890889088908890600401614676565b60006033600301858560405161155892919061469d565b9081526020016040518091039020838360405161157692919061469d565b9081526040519081900360200190205460ff169050949350505050565b6040805160808101825260008082526020820181905291810182905260608101919091526000828152603360209081526040918290208251608081018452600280830180546001600160a01b039081168452600390940154938416948301949094529093840191600160a01b900460ff169081111561161457611614613a06565b600281111561162557611625613a06565b81526020016002820154815250509050919050565b604051630a06da4f60e21b81526004810182905260009073__$0149075866d76909b594731d03a362f285$__9063281b693c906024015b602060405180830381865af415801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bd919061429c565b60608060008060056116c3816134fa565b604051630c0be07f60e21b81526004810187905273__$0149075866d76909b594731d03a362f285$__9063302f81fc90602401600060405180830381865af4158015611713573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261173b919081019061472a565b9450945094509450509193509193565b6001600160a01b0381166000908152606660209081526040918290206001018054835181840281018401909452808452606093928301828280156117b857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161179a575b50505050509050919050565b600054600490610100900460ff161580156117e6575060005460ff8083169116105b6118025760405162461bcd60e51b8152600401610e309061424e565b6000805461ffff191660ff83161761010017905560408051631b21df2160e21b8152905160979173__$6ab911e9321ee3e90d3adb26a9bd12f6bd$__91636c877c84916004808201926020929091908290030181865af415801561186a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188e919061429c565b81146118ad5760405163e2e6776560e01b815260040160405180910390fd5b60405163aa63e3a160e01b815273__$6ab911e9321ee3e90d3adb26a9bd12f6bd$__9063aa63e3a1906118f2908d908d908d908d908d908d908d908d906004016147ec565b60006040518083038186803b15801561190a57600080fd5b505af415801561191e573d6000803e3d6000fd5b50506000805461ff0019169055505060405160ff83168152600080516020614a87833981519152915060200160405180910390a1505050505050505050565b6001611968816134fa565b604051631a280c8f60e11b815273__$efc4469b388a7d05e45f588ccb0743133d$__90633450191e906110429086908690600401614888565b60016119ac816134fa565b73__$a828372db7642c41339011fca570451788$__6321ee5d3e83306001600160a01b031663b81b2b716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a29919061429c565b6040516001600160e01b031960e085901b16815265ffffffffffff90921660048301526024820152604401610fca565b6001611a64816134fa565b604051630237cd4760e51b81526004810183905273__$efc4469b388a7d05e45f588ccb0743133d$__906346f9a8e090602401610fca565b600054610100900460ff1615808015611abc5750600054600160ff909116105b80611ad65750303b158015611ad6575060005460ff166001145b611af25760405162461bcd60e51b8152600401610e309061424e565b6000805460ff191660011790558015611b15576000805461ff0019166101001790555b60016001600160a01b0384161580611b3457506001600160a01b038316155b15611b5257604051632c1c702960e21b815260040160405180910390fd5b611b5f8460006001613524565b600180546001600160a01b0385166001600160a01b03199091168117825560408051918252517f283894eb2ecee773a82142f2af1f73a428357dd19542f502d4d526e74416336e9181900360200190a150508015611be1576000805461ff001916905560405160018152600080516020614a8783398151915290602001610f7f565b505050565b611bee6135b9565b60008281526035602052604090819020815160c08101909252805482908290611c169061489c565b80601f0160208091040260200160405190810160405280929190818152602001828054611c429061489c565b8015611c8f5780601f10611c6457610100808354040283529160200191611c8f565b820191906000526020600020905b815481529060010190602001808311611c7257829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509050919050565b604051634e583b3160e01b8152600481018390526024810182905260009073__$efc4469b388a7d05e45f588ccb0743133d$__90634e583b31906044015b602060405180830381865af4158015611d2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d50919061429c565b9392505050565b604051632784d11b60e11b81526001600160a01b03831660048201526024810182905260009073__$6ab911e9321ee3e90d3adb26a9bd12f6bd$__90634f09a23690604401611d0f565b6001611dac816134fa565b60405163283e6c6f60e11b815273__$efc4469b388a7d05e45f588ccb0743133d$__9063507cd8de906114c29088908890889088906004016148d0565b604051637792a23160e01b81526004810182905260009073__$efc4469b388a7d05e45f588ccb0743133d$__90637792a23190602401611671565b6001611e2f816134fa565b604051632e55fa6160e21b815273__$0149075866d76909b594731d03a362f285$__9063b957e9849061104290869086906004016148f7565b6002611e73816134fa565b604051636474b39960e01b815273__$a828372db7642c41339011fca570451788$__90636474b39990611eb4908a908a908a908a908a908a9060040161495a565b60006040518083038186803b158015611ecc57600080fd5b505af4158015611ee0573d6000803e3d6000fd5b5050505050505050505050565b73__$efc4469b388a7d05e45f588ccb0743133d$__6365cbd3076040518163ffffffff1660e01b815260040160006040518083038186803b158015611f3157600080fd5b505af4158015611f45573d6000803e3d6000fd5b50505050565b606060006033600601546001600160401b03811115611f6c57611f6c6143ed565b604051908082528060200260200182016040528015611f95578160200160208202803683370190505b50905060005b8151811015611fe2576000818152603760205260409020548251839083908110611fc757611fc7614403565b6020908102919091010152611fdb81614419565b9050611f9b565b50919050565b6001600160a01b03818116600090815260676020908152604080832054909316825260669052818120600201549151637792a23160e01b815260048101929092529073__$efc4469b388a7d05e45f588ccb0743133d$__90637792a23190602401611671565b604051633f54af9960e11b81526004810185905260248101849052821515604482015260648101829052600090819073__$a828372db7642c41339011fca570451788$__90637ea95f32906084016040805180830381865af41580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc91906149a3565b9097909650945050505050565b604080518082019091526000808252602082015260ca600065ffffffffffff86166121255760c954600160301b900465ffffffffffff16612127565b855b65ffffffffffff16815260208082019290925260409081016000908120868252835281812085825283528190208151808301909252546001600160801b038082168352600160801b909104169181019190915290509392505050565b600161218e816134fa565b6040516349595dd760e11b815273__$efc4469b388a7d05e45f588ccb0743133d$__906392b2bbae906110429086908690600401614888565b6122026040518060c0016040528060608152602001600081526020016000815260200160008152602001600081526020016000151581525090565b6001600160a01b0382166000908152606560209081526040918290208251815460e09381028201840190945260c08101848152909391928492849184018282801561227657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612258575b50505091835250506001820154602082015260028201546040820152600382015460608201526004820154608082015260059091015460ff16151560a09091015292915050565b60016122c8816134fa565b604051634a27abbd60e11b815273__$6ab911e9321ee3e90d3adb26a9bd12f6bd$__9063944f577a906114c29088908890889088906004016149c7565b61230d6135ef565b61233b6040518060800160405280606081526020016000801916815260200160008152602001600081525090565b6123436135b9565b600084815260336020526040808220815160c0810190925280548290829061236a9061489c565b80601f01602080910402602001604051908101604052809291908181526020018280546123969061489c565b80156123e35780601f106123b8576101008083540402835291602001916123e3565b820191906000526020600020905b8154815290600101906020018083116123c657829003601f168201915b505050505081526020016001820180546123fc9061489c565b80601f01602080910402602001604051908101604052809291908181526020018280546124289061489c565b80156124755780601f1061244a57610100808354040283529160200191612475565b820191906000526020600020905b81548152906001019060200180831161245857829003601f168201915b505050918352505060408051608081018252600284810180546001600160a01b0390811684526003870154908116602080860191909152909501949293909290840191600160a01b90910460ff16908111156124d3576124d3613a06565b60028111156124e4576124e4613a06565b8152602001600282015481525050815260200160058201548152602001600682015481526020016007820154815250509050806033600101600083608001518152602001908152602001600020603360020160008460a001518152602001908152602001600020816040518060800160405290816000820180546125679061489c565b80601f01602080910402602001604051908101604052809291908181526020018280546125939061489c565b80156125e05780601f106125b5576101008083540402835291602001916125e0565b820191906000526020600020905b8154815290600101906020018083116125c357829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815250509150806040518060c00160405290816000820180546126259061489c565b80601f01602080910402602001604051908101604052809291908181526020018280546126519061489c565b801561269e5780601f106126735761010080835404028352916020019161269e565b820191906000526020600020905b81548152906001019060200180831161268157829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509050935093509350509193909250565b6001600160a01b03821660009081526002602052604081208183600581111561271457612714613a06565b600581111561272557612725613a06565b815260208101919091526040016000205460ff169392505050565b61276e6040518060800160405280606081526020016000801916815260200160008152602001600081525090565b600082815260346020526040908190208151608081019092528054829082906127969061489c565b80601f01602080910402602001604051908101604052809291908181526020018280546127c29061489c565b801561280f5780601f106127e45761010080835404028352916020019161280f565b820191906000526020600020905b8154815290600101906020018083116127f257829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815250509050919050565b6004612848816134fa565b604051636922f75760e01b81526001600160801b038516600482015260248101849052821515604482015273__$a828372db7642c41339011fca570451788$__90636922f757906064015b60006040518083038186803b1580156128ab57600080fd5b505af4158015611426573d6000803e3d6000fd5b60016128ca816134fa565b6040516325cd96dd60e21b81526004810183905273__$efc4469b388a7d05e45f588ccb0743133d$__906397365b7490602401610fca565b600361290d816134fa565b6040516326e2ada160e21b81526001600160a01b0380851660048301528316602482015273__$efc4469b388a7d05e45f588ccb0743133d$__90639b8ab68490604401611042565b6001600160a01b0381166000908152606560209081526040918290208054835181840281018401909452808452606093928301828280156117b8576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161179a5750505050509050919050565b6040516303065f8960e31b81526097600482015260009073__$6ab911e9321ee3e90d3adb26a9bd12f6bd$__90631832fc4890602401602060405180830381865af4158015612a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a40919061429c565b905090565b604051635b6c958160e11b815260048101839052811515602482015260009073__$a828372db7642c41339011fca570451788$__9063b6d92b0290604401611d0f565b612a906135ef565b60008281526033602052604090819020815160c08101909252805482908290612ab89061489c565b80601f0160208091040260200160405190810160405280929190818152602001828054612ae49061489c565b8015612b315780601f10612b0657610100808354040283529160200191612b31565b820191906000526020600020905b815481529060010190602001808311612b1457829003601f168201915b50505050508152602001600182018054612b4a9061489c565b80601f0160208091040260200160405190810160405280929190818152602001828054612b769061489c565b8015612bc35780601f10612b9857610100808354040283529160200191612bc3565b820191906000526020600020905b815481529060010190602001808311612ba657829003601f168201915b505050918352505060408051608081018252600284810180546001600160a01b0390811684526003870154908116602080860191909152909501949293909290840191600160a01b90910460ff1690811115612c2157612c21613a06565b6002811115612c3257612c32613a06565b8152602001600282015481525050815260200160058201548152602001600682015481526020016007820154815250509050919050565b6001600160a01b0380821660009081526067602090815260408083205490931680835260669091529181206006015490919060ff166112bd576000611d50565b6001612cb4816134fa565b60405163c72d02e360e01b815273__$efc4469b388a7d05e45f588ccb0743133d$__9063c72d02e3906110429086908690600401614888565b600054600390610100900460ff16158015612d0f575060005460ff8083169116105b612d2b5760405162461bcd60e51b8152600401610e309061424e565b6000805461ffff191660ff83161761010017905560408051631b21df2160e21b8152905160659173__$efc4469b388a7d05e45f588ccb0743133d$__91636c877c84916004808201926020929091908290030181865af4158015612d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db7919061429c565b8114612dd65760405163e2e6776560e01b815260040160405180910390fd5b604051631828b69160e21b81526004810187905260248101869052604481018590526064810184905273__$efc4469b388a7d05e45f588ccb0743133d$__906360a2da449060840160006040518083038186803b158015612e3657600080fd5b505af4158015612e4a573d6000803e3d6000fd5b50506000805461ff0019169055505060405160ff83168152600080516020614a87833981519152915060200160405180910390a15050505050565b612ed06040518060e0016040528060006001600160a01b0316815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581525090565b6001600160a01b03808316600090815260666020908152604091829020825160e08101845281549094168452600181018054845181850281018501909552808552919385840193909290830182828015612f5357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f35575b50505091835250506002820154602082015260038201546040820152600482015460608201526005820154608082015260069091015460ff16151560a09091015292915050565b6004612fa5816134fa565b60405163e1e3156160e01b81526001600160801b038616600482015260248101859052831515604482015265ffffffffffff8316606482015273__$a828372db7642c41339011fca570451788$__9063e1e31561906084016114c2565b600261300d816134fa565b60405163d79261fd60e01b815273__$0149075866d76909b594731d03a362f285$__9063d79261fd906114c29088908890889088906004016149c7565b6001613055816134fa565b604051635c56b6ed60e01b815273__$0149075866d76909b594731d03a362f285$__90635c56b6ed9061104290869086906004016149ee565b6001613099816134fa565b60405163b392aebf60e01b815273__$0149075866d76909b594731d03a362f285$__9063b392aebf906114c2908890889088908890600401614a02565b600054600290610100900460ff161580156130f8575060005460ff8083169116105b6131145760405162461bcd60e51b8152600401610e309061424e565b6000805461ffff191660ff83161761010017905560408051631b21df2160e21b8152905160339173__$0149075866d76909b594731d03a362f285$__91636c877c84916004808201926020929091908290030181865af415801561317c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a0919061429c565b81146131bf5760405163e2e6776560e01b815260040160405180910390fd5b60405163fe4b84df60e01b81526004810184905273__$0149075866d76909b594731d03a362f285$__9063fe4b84df9060240160006040518083038186803b15801561320a57600080fd5b505af415801561321e573d6000803e3d6000fd5b50506000805461ff0019169055505060405160ff83168152600080516020614a87833981519152915060200160405180910390a15050565b60408051808201909152600080825260208201526097826008811061327d5761327d614403565b6040805180820190915291015463ffffffff808216835264010000000090910416602082015292915050565b60016132b4816134fa565b6040516305ac667b60e41b815273__$6ab911e9321ee3e90d3adb26a9bd12f6bd$__90635ac667b0906114c2908890889088908890600401614a29565b73__$efc4469b388a7d05e45f588ccb0743133d$__63ee6cf8846040518163ffffffff1660e01b815260040160006040518083038186803b158015611f3157600080fd5b6001613340816134fa565b604051637bcd6a1f60e11b81526004810183905273__$efc4469b388a7d05e45f588ccb0743133d$__9063f79ad43e90602401610fca565b60006004613385816134fa565b60405163fa3c8dbf60e01b81526001600160a01b038716600482015260248101869052604481018590526064810184905273__$efc4469b388a7d05e45f588ccb0743133d$__9063fa3c8dbf90608401602060405180830381865af41580156133f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613416919061429c565b9695505050505050565b600461342b816134fa565b73__$6ab911e9321ee3e90d3adb26a9bd12f6bd$__63fed8a190858573__$0149075866d76909b594731d03a362f285$__631bce02de876040518263ffffffff1660e01b815260040161348091815260200190565b602060405180830381865af415801561349d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c1919061429c565b6040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401612893565b61350433826126e9565b61352157604051631b17ff5560e21b815260040160405180910390fd5b50565b6001600160a01b0383166000908152600260205260408120829184600581111561355057613550613a06565b600581111561356157613561613a06565b815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8d7fdec37f50c07219a6a0859420936836eb9254bf412035e3acede18b8b093d838383604051610f7f93929190614a50565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060c0016040528060608152602001606081526020016136336040805160808101825260008082526020820181905290918201908152602001600081525090565b81526020016000815260200160008152602001600081525090565b803565ffffffffffff8116811461366457600080fd5b919050565b6000806040838503121561367c57600080fd5b6136858361364e565b91506136936020840161364e565b90509250929050565b6000602082840312156136ae57600080fd5b5035919050565b60008083601f8401126136c757600080fd5b5081356001600160401b038111156136de57600080fd5b6020830191508360208260051b85010111156136f957600080fd5b9250929050565b6000806020838503121561371357600080fd5b82356001600160401b0381111561372957600080fd5b613735858286016136b5565b90969095509350505050565b6000806000806060858703121561375757600080fd5b6137608561364e565b93506020850135925060408501356001600160401b0381111561378257600080fd5b61378e878288016136b5565b95989497509550505050565b602080825282518282018190526000919060409081850190868401855b828110156137f0576137e084835180516001600160801b03908116835260209182015116910152565b92840192908501906001016137b7565b5091979650505050505050565b602080825282518282018190526000919060409081850190868401855b828110156137f05761384384835180516001600160801b03908116835260209182015116910152565b928401929085019060010161381a565b6000806000806000806060878903121561386c57600080fd5b86356001600160401b038082111561388357600080fd5b61388f8a838b016136b5565b909850965060208901359150808211156138a857600080fd5b6138b48a838b016136b5565b909650945060408901359150808211156138cd57600080fd5b506138da89828a016136b5565b979a9699509497509295939492505050565b6000602082840312156138fe57600080fd5b611d508261364e565b6000806000806040858703121561391d57600080fd5b84356001600160401b038082111561393457600080fd5b613940888389016136b5565b9096509450602087013591508082111561395957600080fd5b5061378e878288016136b5565b60008083601f84011261397857600080fd5b5081356001600160401b0381111561398f57600080fd5b6020830191508360208285010111156136f957600080fd5b600080600080604085870312156139bd57600080fd5b84356001600160401b03808211156139d457600080fd5b6139e088838901613966565b909650945060208701359150808211156139f957600080fd5b5061378e87828801613966565b634e487b7160e01b600052602160045260246000fd5b60038110613a2c57613a2c613a06565b9052565b60018060a01b03808251168352806020830151166020840152506040810151613a5c6040840182613a1c565b50606090810151910152565b608081016112bd8284613a30565b60005b83811015613a91578181015183820152602001613a79565b50506000910152565b60008151808452613ab2816020860160208601613a76565b601f01601f19169290920160200192915050565b608081526000613ad96080830187613a9a565b8281036020840152613aeb8187613a9a565b604084019590955250506060015292915050565b80356001600160a01b038116811461366457600080fd5b600060208284031215613b2857600080fd5b611d5082613aff565b600081518084526020808501945080840160005b83811015613b6a5781516001600160a01b031687529582019590820190600101613b45565b509495945050505050565b602081526000611d506020830184613b31565b60008083601f840112613b9a57600080fd5b5081356001600160401b03811115613bb157600080fd5b6020830191508360208260061b85010111156136f957600080fd5b6000806000806000806000806080898b031215613be857600080fd5b88356001600160401b0380821115613bff57600080fd5b613c0b8c838d016136b5565b909a50985060208b0135915080821115613c2457600080fd5b613c308c838d016136b5565b909850965060408b0135915080821115613c4957600080fd5b613c558c838d016136b5565b909650945060608b0135915080821115613c6e57600080fd5b50613c7b8b828c01613b88565b999c989b5096995094979396929594505050565b604081016112bd828480516001600160801b03908116835260209182015116910152565b60008060408385031215613cc657600080fd5b613ccf83613aff565b915061369360208401613aff565b6000815160c08452613cf260c0850182613a9a565b90506020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a08501528091505092915050565b602081526000611d506020830184613cdd565b60008060408385031215613d5657600080fd5b50508035926020909101359150565b60008060408385031215613d7857600080fd5b613d8183613aff565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015613dc757835183529284019291840191600101613dab565b50909695505050505050565b803563ffffffff8116811461366457600080fd5b60008060408385031215613dfa57600080fd5b613e0383613aff565b915061369360208401613dd3565b815163ffffffff1681526020808301516001600160e01b031690820152604081016112bd565b8035801515811461366457600080fd5b60008060008060808587031215613e5d57600080fd5b8435935060208501359250613e7460408601613e37565b9396929550929360600135925050565b600080600060608486031215613e9957600080fd5b613ea28461364e565b95602085013595506040909401359392505050565b602081526000825160c06020840152613ed360e0840182613b31565b9050602084015160408401526040840151606084015260608401516080840152608084015160a084015260a0840151151560c08401528091505092915050565b60006101208251818552613f2982860182613a9a565b91505060208301518482036020860152613f438282613a9a565b9150506040830151613f586040860182613a30565b50606083015160c0850152608083015160e085015260a08301516101008501528091505092915050565b6000815160808452613f976080850182613a9a565b90506020830151602085015260408301516040850152606083015160608501528091505092915050565b606081526000613fd46060830186613f13565b8281036020840152613fe68186613f82565b905082810360408401526134168185613cdd565b80356006811061366457600080fd5b6000806040838503121561401c57600080fd5b61402583613aff565b915061369360208401613ffa565b602081526000611d506020830184613f82565b60008060006060848603121561405b57600080fd5b833592506020840135915061407260408501613e37565b90509250925092565b6000806040838503121561408e57600080fd5b8235915061369360208401613e37565b602081526000611d506020830184613f13565b600080600080608085870312156140c757600080fd5b5050823594602084013594506040840135936060013592509050565b602080825282516001600160a01b03168282015282015160e06040830152600090614112610100840182613b31565b90506040840151606084015260608401516080840152608084015160a084015260a084015160c084015260c0840151151560e08401528091505092915050565b6000806000806080858703121561416857600080fd5b843593506020850135925061417f60408601613e37565b915061418d6060860161364e565b905092959194509250565b600080600080604085870312156141ae57600080fd5b84356001600160401b03808211156141c557600080fd5b6141d1888389016136b5565b909650945060208701359150808211156141ea57600080fd5b5061378e87828801613b88565b6000806000806080858703121561420d57600080fd5b61421685613aff565b966020860135965060408601359560600135945092505050565b60008060006060848603121561424557600080fd5b613ea284613aff565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156142ae57600080fd5b5051919050565b6000808335601e198436030181126142cc57600080fd5b83016020810192503590506001600160401b038111156142eb57600080fd5b8036038213156136f957600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006020808501808196508560051b81019150846000805b888110156143c3578385038a52823560be1989360301811261435e578283fd5b880160c061436c82806142b5565b82895261437c838a0182846142fa565b848b01358a8c0152604080860135908b0152606080860135908b0152608080860135908b015260a0948501359490990193909352505050988501989185019160010161433e565b509298975050505050505050565b6020815260006143e5602083018486614323565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161443957634e487b7160e01b600052601160045260246000fd5b5060010190565b60006020828403121561445257600080fd5b611d5082613ffa565b60006020828403121561446d57600080fd5b611d5082613e37565b81835260006001600160fb1b0383111561448f57600080fd5b8260051b80836020870137939093016020019392505050565b81835260006020808501808196508560051b810191508460005b878110156137f0578284038952813561011e198836030181126144e457600080fd5b87016101206144f382806142b5565b82885261450383890182846142fa565b92505050614513878301836142b5565b878303898901526145258382846142fa565b9250604091506001600160a01b03905080614541858401613aff565b16828901526060915080614556838601613aff565b168289015250506080808301356003811061457057600080fd5b61457c82890182613a1c565b505060a0828101359087015260c0808301359087015260e0808301359087015261010091820135919095015297840197908401906001016144c2565b6040815260006145cc604083018688614476565b82810360208401526145df8185876144a8565b979650505050505050565b81835260006020808501808196508560051b81019150846000805b888110156143c3578385038a528235607e19893603018112614625578283fd5b8801608061463382806142b5565b828952614643838a0182846142fa565b848b01358a8c0152604080860135908b015260609485013594909901939093525050509885019891850191600101614605565b60408152600061468a604083018688614476565b82810360208401526145df8185876145ea565b8183823760009101908152919050565b600082601f8301126146be57600080fd5b81516001600160401b03808211156146d8576146d86143ed565b604051601f8301601f19908116603f01168101908282118183101715614700576147006143ed565b8160405283815286602085880101111561471957600080fd5b613416846020830160208901613a76565b6000806000806080858703121561474057600080fd5b84516001600160401b038082111561475757600080fd5b614763888389016146ad565b9550602087015191508082111561477957600080fd5b50614786878288016146ad565b604087015160609097015195989097509350505050565b8183526000602080850194508260005b85811015613b6a5763ffffffff806147c484613dd3565b168852806147d3858501613dd3565b16888501525060409687019691909101906001016147ad565b608081526000614800608083018a8c614476565b828103602084015261481381898b614476565b90508281036040840152614828818789614476565b9050828103606084015261483d81858761479d565b9b9a5050505050505050505050565b8183526000602080850194508260005b85811015613b6a576001600160a01b0361487583613aff565b168752958201959082019060010161485c565b6020815260006143e560208301848661484c565b600181811c908216806148b057607f821691505b602082108103611fe257634e487b7160e01b600052602260045260246000fd5b6040815260006148e460408301868861484c565b82810360208401526145df81858761484c565b6020815260006143e56020830184866145ea565b818352600060208085019450826000805b8681101561494e5782356001600160801b03811680821461493b578384fd5b895250968301969183019160010161491c565b50959695505050505050565b60608152600061496e60608301888a614476565b828103602084015261498181878961490b565b9050828103604084015261499681858761490b565b9998505050505050505050565b600080604083850312156149b657600080fd5b505080516020909101519092909150565b6040815260006149db604083018688614476565b82810360208401526145df818587614476565b6020815260006143e56020830184866144a8565b604081526000614a16604083018688614476565b82810360208401526145df818587614323565b604081526000614a3d604083018688614476565b82810360208401526145df81858761479d565b6001600160a01b03841681526060810160068410614a7057614a70613a06565b836020830152821515604083015294935050505056fe7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498a26469706673582212203ccabe63e357feefbcb77049717ae2763ea055eaffc1c3305b0f89884d11d33964736f6c63430008110033";
3042
+ const isSuperArgs = (xs) => {
3043
+ return (typeof xs[0] === "string" ||
3044
+ Array.isArray(xs[0]) ||
3045
+ "_isInterface" in xs[0]);
3046
+ };
3047
+ class GNSMultiCollatDiamond__factory extends ethers_1.ContractFactory {
3048
+ constructor(...args) {
3049
+ if (isSuperArgs(args)) {
3050
+ super(...args);
3051
+ }
3052
+ else {
3053
+ const [linkLibraryAddresses, signer] = args;
3054
+ super(_abi, GNSMultiCollatDiamond__factory.linkBytecode(linkLibraryAddresses), signer);
3055
+ }
3056
+ }
3057
+ static linkBytecode(linkLibraryAddresses) {
3058
+ let linkedBytecode = _bytecode;
3059
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$a828372db7642c41339011fca570451788\\$__", "g"), linkLibraryAddresses["contracts/libraries/PriceImpactUtils.sol:PriceImpactUtils"]
3060
+ .replace(/^0x/, "")
3061
+ .toLowerCase());
3062
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$efc4469b388a7d05e45f588ccb0743133d\\$__", "g"), linkLibraryAddresses["contracts/libraries/ReferralsUtils.sol:ReferralsUtils"]
3063
+ .replace(/^0x/, "")
3064
+ .toLowerCase());
3065
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$0149075866d76909b594731d03a362f285\\$__", "g"), linkLibraryAddresses["contracts/libraries/PairsStorageUtils.sol:PairsStorageUtils"]
3066
+ .replace(/^0x/, "")
3067
+ .toLowerCase());
3068
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$6ab911e9321ee3e90d3adb26a9bd12f6bd\\$__", "g"), linkLibraryAddresses["contracts/libraries/FeeTiersUtils.sol:FeeTiersUtils"]
3069
+ .replace(/^0x/, "")
3070
+ .toLowerCase());
3071
+ return linkedBytecode;
3072
+ }
3073
+ deploy(overrides) {
3074
+ return super.deploy(overrides || {});
3075
+ }
3076
+ getDeployTransaction(overrides) {
3077
+ return super.getDeployTransaction(overrides || {});
3078
+ }
3079
+ attach(address) {
3080
+ return super.attach(address);
3081
+ }
3082
+ connect(signer) {
3083
+ return super.connect(signer);
3084
+ }
3085
+ static createInterface() {
3086
+ return new ethers_1.utils.Interface(_abi);
3087
+ }
3088
+ static connect(address, signerOrProvider) {
3089
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
3090
+ }
3091
+ }
3092
+ exports.GNSMultiCollatDiamond__factory = GNSMultiCollatDiamond__factory;
3093
+ GNSMultiCollatDiamond__factory.bytecode = _bytecode;
3094
+ GNSMultiCollatDiamond__factory.abi = _abi;