@gainsnetwork/sdk 1.4.2-rc1 → 1.4.2-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/lib/constants.js +0 -1
  2. package/lib/trade/liquidation.d.ts +12 -0
  3. package/lib/trade/liquidation.js +55 -0
  4. package/lib/trade/pnl.d.ts +10 -0
  5. package/lib/trade/pnl.js +33 -0
  6. package/package.json +1 -1
  7. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +0 -1911
  8. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +0 -2
  9. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +0 -1067
  10. package/lib/contracts/types/generated/GNSBorrowingFees.js +0 -2
  11. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +0 -979
  12. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +0 -2
  13. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +0 -1058
  14. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +0 -2
  15. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +0 -533
  16. package/lib/contracts/types/generated/GNSNftRewardsV6.js +0 -2
  17. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +0 -613
  18. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +0 -2
  19. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  20. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +0 -2
  21. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  22. package/lib/contracts/types/generated/GNSPairsStorageV6.js +0 -2
  23. package/lib/contracts/types/generated/GNSTrading.d.ts +0 -758
  24. package/lib/contracts/types/generated/GNSTrading.js +0 -2
  25. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +0 -875
  26. package/lib/contracts/types/generated/GNSTradingCallbacks.js +0 -2
  27. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +0 -806
  28. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +0 -2
  29. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +0 -821
  30. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +0 -2
  31. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +0 -1387
  32. package/lib/contracts/types/generated/GNSTradingStorage.js +0 -2
  33. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +0 -1838
  34. package/lib/contracts/types/generated/GTokenV6_3_2.js +0 -2
  35. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  36. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +0 -2691
  37. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +0 -88
  38. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +0 -1654
  39. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +0 -113
  40. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +0 -1742
  41. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +0 -124
  42. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +0 -1784
  43. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +0 -100
  44. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +0 -1116
  45. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +0 -100
  46. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +0 -1003
  47. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  48. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  49. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  50. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  51. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +0 -82
  52. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +0 -1273
  53. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +0 -82
  54. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +0 -1326
  55. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +0 -113
  56. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +0 -1428
  57. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +0 -96
  58. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +0 -2241
  59. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +0 -95
  60. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +0 -1071
  61. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +0 -110
  62. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +0 -2682
  63. package/lib/markets/oi/fetcher.d.ts +0 -58
  64. package/lib/markets/oi/fetcher.js +0 -181
  65. package/lib/markets/oi/validation.d.ts +0 -80
  66. package/lib/markets/oi/validation.js +0 -172
  67. package/lib/pricing/depthBands/converter.d.ts +0 -65
  68. package/lib/pricing/depthBands/converter.js +0 -155
  69. package/lib/pricing/depthBands/decoder.d.ts +0 -32
  70. package/lib/pricing/depthBands/decoder.js +0 -109
  71. package/lib/pricing/depthBands/encoder.d.ts +0 -19
  72. package/lib/pricing/depthBands/encoder.js +0 -105
  73. package/lib/pricing/depthBands/index.d.ts +0 -8
  74. package/lib/pricing/depthBands/index.js +0 -26
  75. package/lib/pricing/depthBands/types.d.ts +0 -49
  76. package/lib/pricing/depthBands/types.js +0 -10
  77. package/lib/pricing/depthBands/validator.d.ts +0 -22
  78. package/lib/pricing/depthBands/validator.js +0 -113
  79. package/lib/pricing/depthBands.d.ts +0 -39
  80. package/lib/pricing/depthBands.js +0 -94
  81. package/lib/pricing/index.d.ts +0 -4
  82. package/lib/pricing/index.js +0 -20
  83. package/lib/trade/effectiveLeverage/builder.d.ts +0 -23
  84. package/lib/trade/effectiveLeverage/builder.js +0 -30
  85. package/lib/trade/fees/holdingFees/index.d.ts +0 -46
  86. package/lib/trade/fees/holdingFees/index.js +0 -105
  87. package/lib/trade/fees/holdingFees/types.d.ts +0 -23
  88. package/lib/trade/fees/holdingFees/types.js +0 -5
  89. package/lib/trade/fees/trading/holdingFees.d.ts +0 -28
  90. package/lib/trade/fees/trading/holdingFees.js +0 -66
  91. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +0 -28
  92. package/lib/trade/fees/trading/holdingFeesStructured.js +0 -66
  93. package/lib/trade/priceImpact/cumulVol/types.d.ts +0 -11
  94. package/lib/trade/priceImpact/cumulVol/types.js +0 -2
@@ -1,1654 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GNSBorrowingFeesV6_3_2__factory = void 0;
4
- /* Autogenerated file. Do not edit manually. */
5
- /* tslint:disable */
6
- /* eslint-disable */
7
- const ethers_1 = require("ethers");
8
- const _abi = [
9
- {
10
- anonymous: false,
11
- inputs: [
12
- {
13
- indexed: true,
14
- internalType: "uint16",
15
- name: "groupIndex",
16
- type: "uint16",
17
- },
18
- {
19
- indexed: false,
20
- internalType: "uint256",
21
- name: "currentBlock",
22
- type: "uint256",
23
- },
24
- {
25
- indexed: false,
26
- internalType: "uint64",
27
- name: "accFeeLong",
28
- type: "uint64",
29
- },
30
- {
31
- indexed: false,
32
- internalType: "uint64",
33
- name: "accFeeShort",
34
- type: "uint64",
35
- },
36
- {
37
- indexed: false,
38
- internalType: "uint256",
39
- name: "accBlockWeightedMarketCap",
40
- type: "uint256",
41
- },
42
- ],
43
- name: "GroupAccFeesUpdated",
44
- type: "event",
45
- },
46
- {
47
- anonymous: false,
48
- inputs: [
49
- {
50
- indexed: true,
51
- internalType: "uint16",
52
- name: "groupIndex",
53
- type: "uint16",
54
- },
55
- {
56
- indexed: true,
57
- internalType: "bool",
58
- name: "long",
59
- type: "bool",
60
- },
61
- {
62
- indexed: true,
63
- internalType: "bool",
64
- name: "increase",
65
- type: "bool",
66
- },
67
- {
68
- indexed: false,
69
- internalType: "uint112",
70
- name: "amount",
71
- type: "uint112",
72
- },
73
- {
74
- indexed: false,
75
- internalType: "uint112",
76
- name: "oiLong",
77
- type: "uint112",
78
- },
79
- {
80
- indexed: false,
81
- internalType: "uint112",
82
- name: "oiShort",
83
- type: "uint112",
84
- },
85
- ],
86
- name: "GroupOiUpdated",
87
- type: "event",
88
- },
89
- {
90
- anonymous: false,
91
- inputs: [
92
- {
93
- indexed: true,
94
- internalType: "uint16",
95
- name: "groupIndex",
96
- type: "uint16",
97
- },
98
- {
99
- indexed: false,
100
- internalType: "uint32",
101
- name: "feePerBlock",
102
- type: "uint32",
103
- },
104
- {
105
- indexed: false,
106
- internalType: "uint80",
107
- name: "maxOi",
108
- type: "uint80",
109
- },
110
- ],
111
- name: "GroupUpdated",
112
- type: "event",
113
- },
114
- {
115
- anonymous: false,
116
- inputs: [
117
- {
118
- indexed: false,
119
- internalType: "uint8",
120
- name: "version",
121
- type: "uint8",
122
- },
123
- ],
124
- name: "Initialized",
125
- type: "event",
126
- },
127
- {
128
- anonymous: false,
129
- inputs: [
130
- {
131
- indexed: true,
132
- internalType: "uint256",
133
- name: "pairIndex",
134
- type: "uint256",
135
- },
136
- {
137
- indexed: false,
138
- internalType: "uint256",
139
- name: "currentBlock",
140
- type: "uint256",
141
- },
142
- {
143
- indexed: false,
144
- internalType: "uint64",
145
- name: "accFeeLong",
146
- type: "uint64",
147
- },
148
- {
149
- indexed: false,
150
- internalType: "uint64",
151
- name: "accFeeShort",
152
- type: "uint64",
153
- },
154
- {
155
- indexed: false,
156
- internalType: "uint256",
157
- name: "accBlockWeightedMarketCap",
158
- type: "uint256",
159
- },
160
- ],
161
- name: "PairAccFeesUpdated",
162
- type: "event",
163
- },
164
- {
165
- anonymous: false,
166
- inputs: [
167
- {
168
- indexed: true,
169
- internalType: "uint256",
170
- name: "pairIndex",
171
- type: "uint256",
172
- },
173
- {
174
- indexed: true,
175
- internalType: "uint16",
176
- name: "prevGroupIndex",
177
- type: "uint16",
178
- },
179
- {
180
- indexed: true,
181
- internalType: "uint16",
182
- name: "newGroupIndex",
183
- type: "uint16",
184
- },
185
- ],
186
- name: "PairGroupUpdated",
187
- type: "event",
188
- },
189
- {
190
- anonymous: false,
191
- inputs: [
192
- {
193
- indexed: true,
194
- internalType: "uint256",
195
- name: "pairIndex",
196
- type: "uint256",
197
- },
198
- {
199
- indexed: true,
200
- internalType: "uint16",
201
- name: "groupIndex",
202
- type: "uint16",
203
- },
204
- {
205
- indexed: false,
206
- internalType: "uint32",
207
- name: "feePerBlock",
208
- type: "uint32",
209
- },
210
- ],
211
- name: "PairParamsUpdated",
212
- type: "event",
213
- },
214
- {
215
- anonymous: false,
216
- inputs: [
217
- {
218
- indexed: true,
219
- internalType: "address",
220
- name: "trader",
221
- type: "address",
222
- },
223
- {
224
- indexed: true,
225
- internalType: "uint256",
226
- name: "pairIndex",
227
- type: "uint256",
228
- },
229
- {
230
- indexed: false,
231
- internalType: "uint256",
232
- name: "index",
233
- type: "uint256",
234
- },
235
- {
236
- indexed: false,
237
- internalType: "bool",
238
- name: "open",
239
- type: "bool",
240
- },
241
- {
242
- indexed: false,
243
- internalType: "bool",
244
- name: "long",
245
- type: "bool",
246
- },
247
- {
248
- indexed: false,
249
- internalType: "uint256",
250
- name: "positionSizeDai",
251
- type: "uint256",
252
- },
253
- ],
254
- name: "TradeActionHandled",
255
- type: "event",
256
- },
257
- {
258
- anonymous: false,
259
- inputs: [
260
- {
261
- indexed: true,
262
- internalType: "address",
263
- name: "trader",
264
- type: "address",
265
- },
266
- {
267
- indexed: true,
268
- internalType: "uint256",
269
- name: "pairIndex",
270
- type: "uint256",
271
- },
272
- {
273
- indexed: false,
274
- internalType: "uint256",
275
- name: "index",
276
- type: "uint256",
277
- },
278
- {
279
- indexed: false,
280
- internalType: "uint64",
281
- name: "initialPairAccFee",
282
- type: "uint64",
283
- },
284
- {
285
- indexed: false,
286
- internalType: "uint64",
287
- name: "initialGroupAccFee",
288
- type: "uint64",
289
- },
290
- ],
291
- name: "TradeInitialAccFeesStored",
292
- type: "event",
293
- },
294
- {
295
- inputs: [],
296
- name: "getAllPairs",
297
- outputs: [
298
- {
299
- components: [
300
- {
301
- components: [
302
- {
303
- internalType: "uint16",
304
- name: "groupIndex",
305
- type: "uint16",
306
- },
307
- {
308
- internalType: "uint48",
309
- name: "block",
310
- type: "uint48",
311
- },
312
- {
313
- internalType: "uint64",
314
- name: "initialAccFeeLong",
315
- type: "uint64",
316
- },
317
- {
318
- internalType: "uint64",
319
- name: "initialAccFeeShort",
320
- type: "uint64",
321
- },
322
- {
323
- internalType: "uint64",
324
- name: "prevGroupAccFeeLong",
325
- type: "uint64",
326
- },
327
- {
328
- internalType: "uint64",
329
- name: "prevGroupAccFeeShort",
330
- type: "uint64",
331
- },
332
- {
333
- internalType: "uint64",
334
- name: "pairAccFeeLong",
335
- type: "uint64",
336
- },
337
- {
338
- internalType: "uint64",
339
- name: "pairAccFeeShort",
340
- type: "uint64",
341
- },
342
- {
343
- internalType: "uint64",
344
- name: "_placeholder",
345
- type: "uint64",
346
- },
347
- ],
348
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.PairGroup[]",
349
- name: "groups",
350
- type: "tuple[]",
351
- },
352
- {
353
- internalType: "uint32",
354
- name: "feePerBlock",
355
- type: "uint32",
356
- },
357
- {
358
- internalType: "uint64",
359
- name: "accFeeLong",
360
- type: "uint64",
361
- },
362
- {
363
- internalType: "uint64",
364
- name: "accFeeShort",
365
- type: "uint64",
366
- },
367
- {
368
- internalType: "uint48",
369
- name: "accLastUpdatedBlock",
370
- type: "uint48",
371
- },
372
- {
373
- internalType: "uint48",
374
- name: "_placeholder",
375
- type: "uint48",
376
- },
377
- {
378
- internalType: "uint256",
379
- name: "lastAccBlockWeightedMarketCap",
380
- type: "uint256",
381
- },
382
- ],
383
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.Pair[]",
384
- name: "",
385
- type: "tuple[]",
386
- },
387
- ],
388
- stateMutability: "view",
389
- type: "function",
390
- },
391
- {
392
- inputs: [
393
- {
394
- internalType: "uint16",
395
- name: "groupIndex",
396
- type: "uint16",
397
- },
398
- ],
399
- name: "getGroup",
400
- outputs: [
401
- {
402
- components: [
403
- {
404
- internalType: "uint112",
405
- name: "oiLong",
406
- type: "uint112",
407
- },
408
- {
409
- internalType: "uint112",
410
- name: "oiShort",
411
- type: "uint112",
412
- },
413
- {
414
- internalType: "uint32",
415
- name: "feePerBlock",
416
- type: "uint32",
417
- },
418
- {
419
- internalType: "uint64",
420
- name: "accFeeLong",
421
- type: "uint64",
422
- },
423
- {
424
- internalType: "uint64",
425
- name: "accFeeShort",
426
- type: "uint64",
427
- },
428
- {
429
- internalType: "uint48",
430
- name: "accLastUpdatedBlock",
431
- type: "uint48",
432
- },
433
- {
434
- internalType: "uint80",
435
- name: "maxOi",
436
- type: "uint80",
437
- },
438
- {
439
- internalType: "uint256",
440
- name: "lastAccBlockWeightedMarketCap",
441
- type: "uint256",
442
- },
443
- ],
444
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.Group",
445
- name: "",
446
- type: "tuple",
447
- },
448
- ],
449
- stateMutability: "view",
450
- type: "function",
451
- },
452
- {
453
- inputs: [
454
- {
455
- internalType: "uint16",
456
- name: "groupIndex",
457
- type: "uint16",
458
- },
459
- {
460
- internalType: "uint256",
461
- name: "currentBlock",
462
- type: "uint256",
463
- },
464
- {
465
- internalType: "bool",
466
- name: "long",
467
- type: "bool",
468
- },
469
- ],
470
- name: "getGroupPendingAccFee",
471
- outputs: [
472
- {
473
- internalType: "uint64",
474
- name: "accFee",
475
- type: "uint64",
476
- },
477
- ],
478
- stateMutability: "view",
479
- type: "function",
480
- },
481
- {
482
- inputs: [
483
- {
484
- internalType: "uint16",
485
- name: "groupIndex",
486
- type: "uint16",
487
- },
488
- {
489
- internalType: "uint256",
490
- name: "currentBlock",
491
- type: "uint256",
492
- },
493
- ],
494
- name: "getGroupPendingAccFees",
495
- outputs: [
496
- {
497
- internalType: "uint64",
498
- name: "accFeeLong",
499
- type: "uint64",
500
- },
501
- {
502
- internalType: "uint64",
503
- name: "accFeeShort",
504
- type: "uint64",
505
- },
506
- {
507
- internalType: "int256",
508
- name: "groupAccFeeDelta",
509
- type: "int256",
510
- },
511
- ],
512
- stateMutability: "view",
513
- type: "function",
514
- },
515
- {
516
- inputs: [
517
- {
518
- internalType: "uint16",
519
- name: "groupIndex",
520
- type: "uint16",
521
- },
522
- {
523
- internalType: "uint256",
524
- name: "currentBlock",
525
- type: "uint256",
526
- },
527
- ],
528
- name: "getGroupWeightedVaultMarketCapSinceLastUpdate",
529
- outputs: [
530
- {
531
- internalType: "uint256",
532
- name: "",
533
- type: "uint256",
534
- },
535
- ],
536
- stateMutability: "view",
537
- type: "function",
538
- },
539
- {
540
- inputs: [
541
- {
542
- internalType: "uint16[]",
543
- name: "indices",
544
- type: "uint16[]",
545
- },
546
- ],
547
- name: "getGroups",
548
- outputs: [
549
- {
550
- components: [
551
- {
552
- internalType: "uint112",
553
- name: "oiLong",
554
- type: "uint112",
555
- },
556
- {
557
- internalType: "uint112",
558
- name: "oiShort",
559
- type: "uint112",
560
- },
561
- {
562
- internalType: "uint32",
563
- name: "feePerBlock",
564
- type: "uint32",
565
- },
566
- {
567
- internalType: "uint64",
568
- name: "accFeeLong",
569
- type: "uint64",
570
- },
571
- {
572
- internalType: "uint64",
573
- name: "accFeeShort",
574
- type: "uint64",
575
- },
576
- {
577
- internalType: "uint48",
578
- name: "accLastUpdatedBlock",
579
- type: "uint48",
580
- },
581
- {
582
- internalType: "uint80",
583
- name: "maxOi",
584
- type: "uint80",
585
- },
586
- {
587
- internalType: "uint256",
588
- name: "lastAccBlockWeightedMarketCap",
589
- type: "uint256",
590
- },
591
- ],
592
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.Group[]",
593
- name: "",
594
- type: "tuple[]",
595
- },
596
- ],
597
- stateMutability: "view",
598
- type: "function",
599
- },
600
- {
601
- inputs: [
602
- {
603
- internalType: "uint256",
604
- name: "pairIndex",
605
- type: "uint256",
606
- },
607
- ],
608
- name: "getPair",
609
- outputs: [
610
- {
611
- components: [
612
- {
613
- components: [
614
- {
615
- internalType: "uint16",
616
- name: "groupIndex",
617
- type: "uint16",
618
- },
619
- {
620
- internalType: "uint48",
621
- name: "block",
622
- type: "uint48",
623
- },
624
- {
625
- internalType: "uint64",
626
- name: "initialAccFeeLong",
627
- type: "uint64",
628
- },
629
- {
630
- internalType: "uint64",
631
- name: "initialAccFeeShort",
632
- type: "uint64",
633
- },
634
- {
635
- internalType: "uint64",
636
- name: "prevGroupAccFeeLong",
637
- type: "uint64",
638
- },
639
- {
640
- internalType: "uint64",
641
- name: "prevGroupAccFeeShort",
642
- type: "uint64",
643
- },
644
- {
645
- internalType: "uint64",
646
- name: "pairAccFeeLong",
647
- type: "uint64",
648
- },
649
- {
650
- internalType: "uint64",
651
- name: "pairAccFeeShort",
652
- type: "uint64",
653
- },
654
- {
655
- internalType: "uint64",
656
- name: "_placeholder",
657
- type: "uint64",
658
- },
659
- ],
660
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.PairGroup[]",
661
- name: "groups",
662
- type: "tuple[]",
663
- },
664
- {
665
- internalType: "uint32",
666
- name: "feePerBlock",
667
- type: "uint32",
668
- },
669
- {
670
- internalType: "uint64",
671
- name: "accFeeLong",
672
- type: "uint64",
673
- },
674
- {
675
- internalType: "uint64",
676
- name: "accFeeShort",
677
- type: "uint64",
678
- },
679
- {
680
- internalType: "uint48",
681
- name: "accLastUpdatedBlock",
682
- type: "uint48",
683
- },
684
- {
685
- internalType: "uint48",
686
- name: "_placeholder",
687
- type: "uint48",
688
- },
689
- {
690
- internalType: "uint256",
691
- name: "lastAccBlockWeightedMarketCap",
692
- type: "uint256",
693
- },
694
- ],
695
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.Pair",
696
- name: "",
697
- type: "tuple",
698
- },
699
- ],
700
- stateMutability: "view",
701
- type: "function",
702
- },
703
- {
704
- inputs: [
705
- {
706
- internalType: "uint256",
707
- name: "i",
708
- type: "uint256",
709
- },
710
- {
711
- components: [
712
- {
713
- internalType: "uint16",
714
- name: "groupIndex",
715
- type: "uint16",
716
- },
717
- {
718
- internalType: "uint48",
719
- name: "block",
720
- type: "uint48",
721
- },
722
- {
723
- internalType: "uint64",
724
- name: "initialAccFeeLong",
725
- type: "uint64",
726
- },
727
- {
728
- internalType: "uint64",
729
- name: "initialAccFeeShort",
730
- type: "uint64",
731
- },
732
- {
733
- internalType: "uint64",
734
- name: "prevGroupAccFeeLong",
735
- type: "uint64",
736
- },
737
- {
738
- internalType: "uint64",
739
- name: "prevGroupAccFeeShort",
740
- type: "uint64",
741
- },
742
- {
743
- internalType: "uint64",
744
- name: "pairAccFeeLong",
745
- type: "uint64",
746
- },
747
- {
748
- internalType: "uint64",
749
- name: "pairAccFeeShort",
750
- type: "uint64",
751
- },
752
- {
753
- internalType: "uint64",
754
- name: "_placeholder",
755
- type: "uint64",
756
- },
757
- ],
758
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.PairGroup[]",
759
- name: "pairGroups",
760
- type: "tuple[]",
761
- },
762
- {
763
- components: [
764
- {
765
- internalType: "uint64",
766
- name: "accPairFee",
767
- type: "uint64",
768
- },
769
- {
770
- internalType: "uint64",
771
- name: "accGroupFee",
772
- type: "uint64",
773
- },
774
- {
775
- internalType: "uint48",
776
- name: "block",
777
- type: "uint48",
778
- },
779
- {
780
- internalType: "uint80",
781
- name: "_placeholder",
782
- type: "uint80",
783
- },
784
- ],
785
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.InitialAccFees",
786
- name: "initialFees",
787
- type: "tuple",
788
- },
789
- {
790
- internalType: "uint256",
791
- name: "pairIndex",
792
- type: "uint256",
793
- },
794
- {
795
- internalType: "bool",
796
- name: "long",
797
- type: "bool",
798
- },
799
- {
800
- internalType: "uint256",
801
- name: "currentBlock",
802
- type: "uint256",
803
- },
804
- ],
805
- name: "getPairGroupAccFeesDeltas",
806
- outputs: [
807
- {
808
- internalType: "uint64",
809
- name: "deltaGroup",
810
- type: "uint64",
811
- },
812
- {
813
- internalType: "uint64",
814
- name: "deltaPair",
815
- type: "uint64",
816
- },
817
- {
818
- internalType: "bool",
819
- name: "beforeTradeOpen",
820
- type: "bool",
821
- },
822
- ],
823
- stateMutability: "view",
824
- type: "function",
825
- },
826
- {
827
- inputs: [
828
- {
829
- internalType: "uint256",
830
- name: "pairIndex",
831
- type: "uint256",
832
- },
833
- ],
834
- name: "getPairGroupIndex",
835
- outputs: [
836
- {
837
- internalType: "uint16",
838
- name: "groupIndex",
839
- type: "uint16",
840
- },
841
- ],
842
- stateMutability: "view",
843
- type: "function",
844
- },
845
- {
846
- inputs: [
847
- {
848
- internalType: "uint256",
849
- name: "pairIndex",
850
- type: "uint256",
851
- },
852
- ],
853
- name: "getPairOpenInterestDai",
854
- outputs: [
855
- {
856
- internalType: "uint256",
857
- name: "",
858
- type: "uint256",
859
- },
860
- {
861
- internalType: "uint256",
862
- name: "",
863
- type: "uint256",
864
- },
865
- ],
866
- stateMutability: "view",
867
- type: "function",
868
- },
869
- {
870
- inputs: [
871
- {
872
- internalType: "uint256",
873
- name: "pairIndex",
874
- type: "uint256",
875
- },
876
- {
877
- internalType: "uint256",
878
- name: "currentBlock",
879
- type: "uint256",
880
- },
881
- {
882
- internalType: "bool",
883
- name: "long",
884
- type: "bool",
885
- },
886
- ],
887
- name: "getPairPendingAccFee",
888
- outputs: [
889
- {
890
- internalType: "uint64",
891
- name: "accFee",
892
- type: "uint64",
893
- },
894
- ],
895
- stateMutability: "view",
896
- type: "function",
897
- },
898
- {
899
- inputs: [
900
- {
901
- internalType: "uint256",
902
- name: "pairIndex",
903
- type: "uint256",
904
- },
905
- {
906
- internalType: "uint256",
907
- name: "currentBlock",
908
- type: "uint256",
909
- },
910
- ],
911
- name: "getPairPendingAccFees",
912
- outputs: [
913
- {
914
- internalType: "uint64",
915
- name: "accFeeLong",
916
- type: "uint64",
917
- },
918
- {
919
- internalType: "uint64",
920
- name: "accFeeShort",
921
- type: "uint64",
922
- },
923
- {
924
- internalType: "int256",
925
- name: "pairAccFeeDelta",
926
- type: "int256",
927
- },
928
- ],
929
- stateMutability: "view",
930
- type: "function",
931
- },
932
- {
933
- inputs: [
934
- {
935
- internalType: "uint256",
936
- name: "pairIndex",
937
- type: "uint256",
938
- },
939
- {
940
- internalType: "uint256",
941
- name: "currentBlock",
942
- type: "uint256",
943
- },
944
- ],
945
- name: "getPairWeightedVaultMarketCapSinceLastUpdate",
946
- outputs: [
947
- {
948
- internalType: "uint256",
949
- name: "",
950
- type: "uint256",
951
- },
952
- ],
953
- stateMutability: "view",
954
- type: "function",
955
- },
956
- {
957
- inputs: [
958
- {
959
- internalType: "uint256",
960
- name: "currentBlock",
961
- type: "uint256",
962
- },
963
- ],
964
- name: "getPendingAccBlockWeightedMarketCap",
965
- outputs: [
966
- {
967
- internalType: "uint256",
968
- name: "",
969
- type: "uint256",
970
- },
971
- ],
972
- stateMutability: "view",
973
- type: "function",
974
- },
975
- {
976
- inputs: [
977
- {
978
- internalType: "uint64",
979
- name: "accFeeLong",
980
- type: "uint64",
981
- },
982
- {
983
- internalType: "uint64",
984
- name: "accFeeShort",
985
- type: "uint64",
986
- },
987
- {
988
- internalType: "uint256",
989
- name: "oiLong",
990
- type: "uint256",
991
- },
992
- {
993
- internalType: "uint256",
994
- name: "oiShort",
995
- type: "uint256",
996
- },
997
- {
998
- internalType: "uint32",
999
- name: "feePerBlock",
1000
- type: "uint32",
1001
- },
1002
- {
1003
- internalType: "uint256",
1004
- name: "currentBlock",
1005
- type: "uint256",
1006
- },
1007
- {
1008
- internalType: "uint256",
1009
- name: "accLastUpdatedBlock",
1010
- type: "uint256",
1011
- },
1012
- {
1013
- internalType: "uint256",
1014
- name: "vaultMarketCap",
1015
- type: "uint256",
1016
- },
1017
- ],
1018
- name: "getPendingAccFees",
1019
- outputs: [
1020
- {
1021
- internalType: "uint64",
1022
- name: "newAccFeeLong",
1023
- type: "uint64",
1024
- },
1025
- {
1026
- internalType: "uint64",
1027
- name: "newAccFeeShort",
1028
- type: "uint64",
1029
- },
1030
- {
1031
- internalType: "int256",
1032
- name: "delta",
1033
- type: "int256",
1034
- },
1035
- ],
1036
- stateMutability: "pure",
1037
- type: "function",
1038
- },
1039
- {
1040
- inputs: [
1041
- {
1042
- components: [
1043
- {
1044
- internalType: "address",
1045
- name: "trader",
1046
- type: "address",
1047
- },
1048
- {
1049
- internalType: "uint256",
1050
- name: "pairIndex",
1051
- type: "uint256",
1052
- },
1053
- {
1054
- internalType: "uint256",
1055
- name: "index",
1056
- type: "uint256",
1057
- },
1058
- {
1059
- internalType: "bool",
1060
- name: "long",
1061
- type: "bool",
1062
- },
1063
- {
1064
- internalType: "uint256",
1065
- name: "collateral",
1066
- type: "uint256",
1067
- },
1068
- {
1069
- internalType: "uint256",
1070
- name: "leverage",
1071
- type: "uint256",
1072
- },
1073
- ],
1074
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.BorrowingFeeInput",
1075
- name: "input",
1076
- type: "tuple",
1077
- },
1078
- ],
1079
- name: "getTradeBorrowingFee",
1080
- outputs: [
1081
- {
1082
- internalType: "uint256",
1083
- name: "fee",
1084
- type: "uint256",
1085
- },
1086
- ],
1087
- stateMutability: "view",
1088
- type: "function",
1089
- },
1090
- {
1091
- inputs: [
1092
- {
1093
- internalType: "address",
1094
- name: "trader",
1095
- type: "address",
1096
- },
1097
- {
1098
- internalType: "uint256",
1099
- name: "pairIndex",
1100
- type: "uint256",
1101
- },
1102
- {
1103
- internalType: "uint256",
1104
- name: "index",
1105
- type: "uint256",
1106
- },
1107
- ],
1108
- name: "getTradeInitialAccFees",
1109
- outputs: [
1110
- {
1111
- components: [
1112
- {
1113
- internalType: "uint64",
1114
- name: "accPairFee",
1115
- type: "uint64",
1116
- },
1117
- {
1118
- internalType: "uint64",
1119
- name: "accGroupFee",
1120
- type: "uint64",
1121
- },
1122
- {
1123
- internalType: "uint48",
1124
- name: "block",
1125
- type: "uint48",
1126
- },
1127
- {
1128
- internalType: "uint80",
1129
- name: "_placeholder",
1130
- type: "uint80",
1131
- },
1132
- ],
1133
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.InitialAccFees",
1134
- name: "borrowingFees",
1135
- type: "tuple",
1136
- },
1137
- {
1138
- components: [
1139
- {
1140
- internalType: "uint256",
1141
- name: "rollover",
1142
- type: "uint256",
1143
- },
1144
- {
1145
- internalType: "int256",
1146
- name: "funding",
1147
- type: "int256",
1148
- },
1149
- {
1150
- internalType: "bool",
1151
- name: "openedAfterUpdate",
1152
- type: "bool",
1153
- },
1154
- ],
1155
- internalType: "struct GNSPairInfosInterfaceV6.TradeInitialAccFees",
1156
- name: "otherFees",
1157
- type: "tuple",
1158
- },
1159
- ],
1160
- stateMutability: "view",
1161
- type: "function",
1162
- },
1163
- {
1164
- inputs: [
1165
- {
1166
- components: [
1167
- {
1168
- internalType: "address",
1169
- name: "trader",
1170
- type: "address",
1171
- },
1172
- {
1173
- internalType: "uint256",
1174
- name: "pairIndex",
1175
- type: "uint256",
1176
- },
1177
- {
1178
- internalType: "uint256",
1179
- name: "index",
1180
- type: "uint256",
1181
- },
1182
- {
1183
- internalType: "uint256",
1184
- name: "openPrice",
1185
- type: "uint256",
1186
- },
1187
- {
1188
- internalType: "bool",
1189
- name: "long",
1190
- type: "bool",
1191
- },
1192
- {
1193
- internalType: "uint256",
1194
- name: "collateral",
1195
- type: "uint256",
1196
- },
1197
- {
1198
- internalType: "uint256",
1199
- name: "leverage",
1200
- type: "uint256",
1201
- },
1202
- ],
1203
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.LiqPriceInput",
1204
- name: "input",
1205
- type: "tuple",
1206
- },
1207
- ],
1208
- name: "getTradeLiquidationPrice",
1209
- outputs: [
1210
- {
1211
- internalType: "uint256",
1212
- name: "",
1213
- type: "uint256",
1214
- },
1215
- ],
1216
- stateMutability: "view",
1217
- type: "function",
1218
- },
1219
- {
1220
- inputs: [
1221
- {
1222
- internalType: "uint256",
1223
- name: "accBlockWeightedMarketCap",
1224
- type: "uint256",
1225
- },
1226
- {
1227
- internalType: "uint256",
1228
- name: "lastAccBlockWeightedMarketCap",
1229
- type: "uint256",
1230
- },
1231
- {
1232
- internalType: "uint256",
1233
- name: "blockDelta",
1234
- type: "uint256",
1235
- },
1236
- ],
1237
- name: "getWeightedVaultMarketCap",
1238
- outputs: [
1239
- {
1240
- internalType: "uint256",
1241
- name: "",
1242
- type: "uint256",
1243
- },
1244
- ],
1245
- stateMutability: "pure",
1246
- type: "function",
1247
- },
1248
- {
1249
- inputs: [
1250
- {
1251
- internalType: "uint16",
1252
- name: "",
1253
- type: "uint16",
1254
- },
1255
- ],
1256
- name: "groups",
1257
- outputs: [
1258
- {
1259
- internalType: "uint112",
1260
- name: "oiLong",
1261
- type: "uint112",
1262
- },
1263
- {
1264
- internalType: "uint112",
1265
- name: "oiShort",
1266
- type: "uint112",
1267
- },
1268
- {
1269
- internalType: "uint32",
1270
- name: "feePerBlock",
1271
- type: "uint32",
1272
- },
1273
- {
1274
- internalType: "uint64",
1275
- name: "accFeeLong",
1276
- type: "uint64",
1277
- },
1278
- {
1279
- internalType: "uint64",
1280
- name: "accFeeShort",
1281
- type: "uint64",
1282
- },
1283
- {
1284
- internalType: "uint48",
1285
- name: "accLastUpdatedBlock",
1286
- type: "uint48",
1287
- },
1288
- {
1289
- internalType: "uint80",
1290
- name: "maxOi",
1291
- type: "uint80",
1292
- },
1293
- {
1294
- internalType: "uint256",
1295
- name: "lastAccBlockWeightedMarketCap",
1296
- type: "uint256",
1297
- },
1298
- ],
1299
- stateMutability: "view",
1300
- type: "function",
1301
- },
1302
- {
1303
- inputs: [
1304
- {
1305
- internalType: "address",
1306
- name: "trader",
1307
- type: "address",
1308
- },
1309
- {
1310
- internalType: "uint256",
1311
- name: "pairIndex",
1312
- type: "uint256",
1313
- },
1314
- {
1315
- internalType: "uint256",
1316
- name: "index",
1317
- type: "uint256",
1318
- },
1319
- {
1320
- internalType: "uint256",
1321
- name: "positionSizeDai",
1322
- type: "uint256",
1323
- },
1324
- {
1325
- internalType: "bool",
1326
- name: "open",
1327
- type: "bool",
1328
- },
1329
- {
1330
- internalType: "bool",
1331
- name: "long",
1332
- type: "bool",
1333
- },
1334
- ],
1335
- name: "handleTradeAction",
1336
- outputs: [],
1337
- stateMutability: "nonpayable",
1338
- type: "function",
1339
- },
1340
- {
1341
- inputs: [
1342
- {
1343
- internalType: "address",
1344
- name: "",
1345
- type: "address",
1346
- },
1347
- {
1348
- internalType: "uint256",
1349
- name: "",
1350
- type: "uint256",
1351
- },
1352
- {
1353
- internalType: "uint256",
1354
- name: "",
1355
- type: "uint256",
1356
- },
1357
- ],
1358
- name: "initialAccFees",
1359
- outputs: [
1360
- {
1361
- internalType: "uint64",
1362
- name: "accPairFee",
1363
- type: "uint64",
1364
- },
1365
- {
1366
- internalType: "uint64",
1367
- name: "accGroupFee",
1368
- type: "uint64",
1369
- },
1370
- {
1371
- internalType: "uint48",
1372
- name: "block",
1373
- type: "uint48",
1374
- },
1375
- {
1376
- internalType: "uint80",
1377
- name: "_placeholder",
1378
- type: "uint80",
1379
- },
1380
- ],
1381
- stateMutability: "view",
1382
- type: "function",
1383
- },
1384
- {
1385
- inputs: [
1386
- {
1387
- internalType: "contract StorageInterfaceV5",
1388
- name: "_storageT",
1389
- type: "address",
1390
- },
1391
- {
1392
- internalType: "contract GNSPairInfosInterfaceV6",
1393
- name: "_pairInfos",
1394
- type: "address",
1395
- },
1396
- ],
1397
- name: "initialize",
1398
- outputs: [],
1399
- stateMutability: "nonpayable",
1400
- type: "function",
1401
- },
1402
- {
1403
- inputs: [],
1404
- name: "pairInfos",
1405
- outputs: [
1406
- {
1407
- internalType: "contract GNSPairInfosInterfaceV6",
1408
- name: "",
1409
- type: "address",
1410
- },
1411
- ],
1412
- stateMutability: "view",
1413
- type: "function",
1414
- },
1415
- {
1416
- inputs: [
1417
- {
1418
- internalType: "uint256",
1419
- name: "",
1420
- type: "uint256",
1421
- },
1422
- ],
1423
- name: "pairs",
1424
- outputs: [
1425
- {
1426
- internalType: "uint32",
1427
- name: "feePerBlock",
1428
- type: "uint32",
1429
- },
1430
- {
1431
- internalType: "uint64",
1432
- name: "accFeeLong",
1433
- type: "uint64",
1434
- },
1435
- {
1436
- internalType: "uint64",
1437
- name: "accFeeShort",
1438
- type: "uint64",
1439
- },
1440
- {
1441
- internalType: "uint48",
1442
- name: "accLastUpdatedBlock",
1443
- type: "uint48",
1444
- },
1445
- {
1446
- internalType: "uint48",
1447
- name: "_placeholder",
1448
- type: "uint48",
1449
- },
1450
- {
1451
- internalType: "uint256",
1452
- name: "lastAccBlockWeightedMarketCap",
1453
- type: "uint256",
1454
- },
1455
- ],
1456
- stateMutability: "view",
1457
- type: "function",
1458
- },
1459
- {
1460
- inputs: [
1461
- {
1462
- internalType: "uint16",
1463
- name: "groupIndex",
1464
- type: "uint16",
1465
- },
1466
- {
1467
- components: [
1468
- {
1469
- internalType: "uint32",
1470
- name: "feePerBlock",
1471
- type: "uint32",
1472
- },
1473
- {
1474
- internalType: "uint80",
1475
- name: "maxOi",
1476
- type: "uint80",
1477
- },
1478
- ],
1479
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.GroupParams",
1480
- name: "value",
1481
- type: "tuple",
1482
- },
1483
- ],
1484
- name: "setGroupParams",
1485
- outputs: [],
1486
- stateMutability: "nonpayable",
1487
- type: "function",
1488
- },
1489
- {
1490
- inputs: [
1491
- {
1492
- internalType: "uint16[]",
1493
- name: "indices",
1494
- type: "uint16[]",
1495
- },
1496
- {
1497
- components: [
1498
- {
1499
- internalType: "uint32",
1500
- name: "feePerBlock",
1501
- type: "uint32",
1502
- },
1503
- {
1504
- internalType: "uint80",
1505
- name: "maxOi",
1506
- type: "uint80",
1507
- },
1508
- ],
1509
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.GroupParams[]",
1510
- name: "values",
1511
- type: "tuple[]",
1512
- },
1513
- ],
1514
- name: "setGroupParamsArray",
1515
- outputs: [],
1516
- stateMutability: "nonpayable",
1517
- type: "function",
1518
- },
1519
- {
1520
- inputs: [
1521
- {
1522
- internalType: "uint256",
1523
- name: "pairIndex",
1524
- type: "uint256",
1525
- },
1526
- {
1527
- components: [
1528
- {
1529
- internalType: "uint16",
1530
- name: "groupIndex",
1531
- type: "uint16",
1532
- },
1533
- {
1534
- internalType: "uint32",
1535
- name: "feePerBlock",
1536
- type: "uint32",
1537
- },
1538
- ],
1539
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.PairParams",
1540
- name: "value",
1541
- type: "tuple",
1542
- },
1543
- ],
1544
- name: "setPairParams",
1545
- outputs: [],
1546
- stateMutability: "nonpayable",
1547
- type: "function",
1548
- },
1549
- {
1550
- inputs: [
1551
- {
1552
- internalType: "uint256[]",
1553
- name: "indices",
1554
- type: "uint256[]",
1555
- },
1556
- {
1557
- components: [
1558
- {
1559
- internalType: "uint16",
1560
- name: "groupIndex",
1561
- type: "uint16",
1562
- },
1563
- {
1564
- internalType: "uint32",
1565
- name: "feePerBlock",
1566
- type: "uint32",
1567
- },
1568
- ],
1569
- internalType: "struct GNSBorrowingFeesInterfaceV6_3_2.PairParams[]",
1570
- name: "values",
1571
- type: "tuple[]",
1572
- },
1573
- ],
1574
- name: "setPairParamsArray",
1575
- outputs: [],
1576
- stateMutability: "nonpayable",
1577
- type: "function",
1578
- },
1579
- {
1580
- inputs: [],
1581
- name: "storageT",
1582
- outputs: [
1583
- {
1584
- internalType: "contract StorageInterfaceV5",
1585
- name: "",
1586
- type: "address",
1587
- },
1588
- ],
1589
- stateMutability: "view",
1590
- type: "function",
1591
- },
1592
- {
1593
- inputs: [
1594
- {
1595
- internalType: "uint256",
1596
- name: "pairIndex",
1597
- type: "uint256",
1598
- },
1599
- {
1600
- internalType: "bool",
1601
- name: "long",
1602
- type: "bool",
1603
- },
1604
- {
1605
- internalType: "uint256",
1606
- name: "positionSizeDai",
1607
- type: "uint256",
1608
- },
1609
- ],
1610
- name: "withinMaxGroupOi",
1611
- outputs: [
1612
- {
1613
- internalType: "bool",
1614
- name: "",
1615
- type: "bool",
1616
- },
1617
- ],
1618
- stateMutability: "view",
1619
- type: "function",
1620
- },
1621
- ];
1622
- const _bytecode = "0x608060405234801561001057600080fd5b5061455f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a55760003560e01c80638ee1caa7116100ef578063bdf391cc11610092578063bdf391cc146106b1578063ca90cda5146106d1578063ce67edfb146106e4578063cee4fa5a146106f7578063d62745051461070a578063e4d668671461072d578063f800ece914610740578063ff933fc41461075557600080fd5b80638ee1caa7146104cd5780638f694238146104e057806390895ff114610506578063979b0895146105af5780639d1798cb146105c2578063a4e95196146105d5578063b91ac788146105e8578063bcb788711461069e57600080fd5b80633d17a5d0116101575780633d17a5d014610391578063485cc955146103a65780634c67cfa0146103b9578063706faf3a146103e15780637b64112b146103f45780637cbd3c9814610407578063826616b514610481578063876ffd97146104ba57600080fd5b80630f8df7e0146101aa5780631346b0ff146101ea57806316fff074146102155780631ab5911a1461022e57806322005202146102595780632d28a817146102795780633979324d1461029a575b600080fd5b6101bd6101b83660046138fa565b610775565b604080516001600160401b0394851681529390921660208401521515908201526060015b60405180910390f35b6001546101fd906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b6000546101fd906201000090046001600160a01b031681565b61024161023c366004613a8a565b6108f5565b6040516001600160401b0390911681526020016101e1565b61026c610267366004613b15565b610920565b6040516101e19190613bdc565b61028c610287366004613c40565b610a89565b6040519081526020016101e1565b6103266102a8366004613cca565b60026020819052600091825260409091208054600182015491909201546001600160701b0380841693600160701b810490911692600160e01b90910463ffffffff16916001600160401b0380831692600160401b810490911691600160801b820465ffffffffffff1691600160b01b90046001600160501b03169088565b604080516001600160701b03998a16815298909716602089015263ffffffff909516958701959095526001600160401b0392831660608701529116608085015265ffffffffffff1660a08401526001600160501b0390911660c083015260e0820152610100016101e1565b6103a461039f366004613cfd565b610d99565b005b6103a46103b4366004613d31565b610e57565b6103cc6103c7366004613d6a565b610ffe565b604080519283526020830191909152016101e1565b61028c6103ef366004613d83565b6110fb565b610241610402366004613d95565b611397565b61041a610415366004613dc3565b6113a6565b6040805183516001600160401b039081168252602080860151909116818301528483015165ffffffffffff16828401526060948501516001600160501b031694820194909452825160808201529282015160a08401520151151560c082015260e0016101e1565b61049461048f366004613e0c565b6114db565b604080516001600160401b039485168152939092166020840152908201526060016101e1565b61028c6104c8366004613e7e565b6115ce565b6104946104db366004613e7e565b611752565b6104f36104ee366004613d6a565b611902565b60405161ffff90911681526020016101e1565b61056e610514366004613dc3565b60046020908152600093845260408085208252928452828420905282529020546001600160401b0380821691600160401b810490911690600160801b810465ffffffffffff1690600160b01b90046001600160501b031684565b604080516001600160401b03958616815294909316602085015265ffffffffffff909116918301919091526001600160501b031660608201526080016101e1565b61028c6105bd366004613d6a565b611a25565b6103a46105d0366004613ea0565b611aca565b61028c6105e3366004613ec4565b611b7b565b6106526105f6366004613d6a565b6003602052600090815260409020600181015460029091015463ffffffff8216916001600160401b03600160201b8204811692600160601b83049091169165ffffffffffff600160a01b8204811692600160d01b909204169086565b6040805163ffffffff9790971687526001600160401b039586166020880152939094169285019290925265ffffffffffff908116606085015216608083015260a082015260c0016101e1565b6104946106ac366004613ec4565b611c49565b6106c46106bf366004613d6a565b611d93565b6040516101e19190614025565b6103a46106df36600461407c565b611ef3565b6103a46106f23660046140e7565b61201c565b6103a461070536600461407c565b61236e565b61071d61071836600461414e565b612481565b60405190151581526020016101e1565b61028c61073b366004614186565b6125a7565b6107486125e6565b6040516101e191906141b2565b610768610763366004613cca565b612905565b6040516101e19190614214565b600080600080888a8151811061078d5761078d614223565b60200260200101519050876040015165ffffffffffff16816020015165ffffffffffff16109150600189516107c2919061424f565b8a036107e95780516107d59086886108f5565b93506107e2878688611397565b9250610879565b6000896107f78c6001614262565b8151811061080757610807614223565b602002602001015190508280156108365750886040015165ffffffffffff16816020015165ffffffffffff1611155b15610849576000809450945050506108e9565b86610858578060a0015161085e565b80608001515b94508661086f578060e00151610875565b8060c001515b9350505b81156108a457602088015161088e9085614275565b885190945061089d9084614275565b92506108e7565b856108b35780606001516108b9565b80604001515b6108c39085614275565b9350856108d4578060e001516108da565b8060c001515b6108e49084614275565b92505b505b96509650969350505050565b60008060006109048686611c49565b5091509150836109145780610916565b815b9695505050505050565b60606000826001600160401b0381111561093c5761093c613795565b60405190808252806020026020018201604052801561097557816020015b610962613715565b81526020019060019003908161095a5790505b5090508260005b81811015610a7d576002600087878481811061099a5761099a614223565b90506020020160208101906109af9190613cca565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301526002015460e08201528351849083908110610a6a57610a6a614223565b602090810291909101015260010161097c565b50909150505b92915050565b80516001600160a01b03166000908152600460209081526040808320828501805185529083528184208286015185528352818420825160808101845290546001600160401b038082168352600160401b82041682860152600160801b810465ffffffffffff1682850152600160b01b90046001600160501b0316606082015290518452600383528184208054835181860281018601909452808452919385939290849084015b82821015610be0576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101610b2f565b5050505090506000610bf06129b6565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152909150825115610c615782600081518110610c5657610c56614223565b602002602001015190505b82511580610c865750836040015165ffffffffffff16816020015165ffffffffffff16115b15610cda578351835115610cb1578660600151610ca7578160e00151610cc4565b8160c00151610cc4565b610cc48760200151848960600151611397565b610cce9190614275565b6001600160401b031694505b82515b8015610d5d5760008080610d07610cf560018661424f565b888a8d602001518e606001518b610775565b925092509250816001600160401b0316836001600160401b031611610d2c5781610d2e565b825b610d41906001600160401b03168a614262565b98508015610d5157505050610d5d565b50505060001901610cdd565b5060646402540be400868860a001518960800151610d7b9190614295565b610d859190614295565b610d8f91906142c2565b61091691906142c2565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1091906142d6565b6001600160a01b0316336001600160a01b031614610e495760405162461bcd60e51b8152600401610e40906142f3565b60405180910390fd5b610e538282612a3c565b5050565b600054610100900460ff1615808015610e775750600054600160ff909116105b80610e915750303b158015610e91575060005460ff166001145b610ef45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e40565b6000805460ff191660011790558015610f17576000805461ff0019166101001790555b6001600160a01b03831615801590610f3757506001600160a01b03821615155b610f725760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f504152414d5360a01b6044820152606401610e40565b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b0319169184169190911790558015610ff9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600080546040516328daca2160e01b8152600481018490526024810183905282916201000090046001600160a01b0316906328daca2190604401602060405180830381865afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190614319565b6000546040516328daca2160e01b81526004810186905260016024820152620100009091046001600160a01b0316906328daca2190604401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190614319565b91509150915091565b6001546000906001600160a01b0316636bcbe860606084013561112460a0860160808701614332565b8560a001358660c0013561119f6040518060c001604052808a600001602081019061114f919061434f565b6001600160a01b0316815260208b810135908201526040808c01359082015260600161118160a08c0160808d01614332565b151581526020018a60a0013581526020018a60c00135815250610a89565b6001546001600160a01b03166358f796bc6111bd60208c018c61434f565b604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260208d013560248301528c0135604482015260a08c01356064820152608401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190614319565b61124c9190614262565b6001546001600160a01b031663f6c50efe61126a60208c018c61434f565b8b602001358c604001358d60800160208101906112879190614332565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602484019290925260448301521515606482015260a08c0135608482015260c08c013560a482015260c401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614319565b6040516001600160e01b031960e089901b1681526004810196909652931515602486015260448501929092526064840152608483015260a482015260c4015b602060405180830381865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190614319565b60008060006109048686611752565b604080516080810182526000808252602080830182905282840182905260608084018390528451908101855282815290810182905292830152906001600160a01b0385811660008181526004602081815260408084208a85528252808420898552825292839020835160808101855290546001600160401b038082168352600160401b82041692820192909252600160801b820465ffffffffffff1681850152600160b01b9091046001600160501b031660608201526001549251632f6ac02760e11b815291820193909352602481018890526044810187905291945090911690635ed5804e90606401606060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061436c565b9050935093915050565b60008060008486101561151e5760405162461bcd60e51b815260206004820152600b60248201526a212627a1a5afa7a92222a960a91b6044820152606401610e40565b83611529868861424f565b63ffffffff891661153a8b8d6143cd565b61154491906143ed565b61154e91906143ed565b611558919061441d565b905060008082121561158657611570826000196143ed565b8c9450905061157f818c61444b565b9250611598565b5080611592818d61444b565b93508a92505b6001600160401b038111156115bf5760405162461bcd60e51b8152600401610e409061446b565b50985098509895505050505050565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152859491938492849190879085015b828210156116b6576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611605565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c090910152905061174a61172e84611a25565b60c0830151608084015161073b9065ffffffffffff168761424f565b949350505050565b60008060008061176286866115ce565b6000878152600360209081526040808320815181546101009481028201850190935260e081018381529596509394909284928491879085015b8282101561184c576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161179b565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015290506000806118c489610ffe565b915091506118f083604001518460600151848487602001518d896080015165ffffffffffff168b6114db565b919b909a509098509650505050505050565b600081815260036020908152604080832080548251818502810185019093528083528493849084015b828210156119dc576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161192b565b5050505090508051600014611a1b5780600182516119fa919061424f565b81518110611a0a57611a0a614223565b602002602001015160000151611a1e565b60005b9392505050565b60008060029054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906142d6565b6001600160a01b031663979b0895836040518263ffffffff1660e01b815260040161135691815260200190565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4191906142d6565b6001600160a01b0316336001600160a01b031614611b715760405162461bcd60e51b8152600401610e40906142f3565b610e538282612b8d565b61ffff8216600090815260026020818152604080842081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301529091015460e082015261174a611c2d84611a25565b60e083015160a084015161073b9065ffffffffffff168761424f565b600080600080611c598686611b7b565b61ffff871660009081526002602081815260409283902083516101008101855281546001600160701b03808216808452600160701b830490911694830194909452600160e01b900463ffffffff169481019490945260018101546001600160401b0380821660608701819052600160401b830490911660808701819052600160801b830465ffffffffffff1660a0880152600160b01b9092046001600160501b031660c0870152919093015460e08501529394509192611d83929091906402540be40090611d2f90670de0b6b3a7640000614295565b611d3991906142c2565b6402540be40085602001516001600160701b0316670de0b6b3a7640000611d609190614295565b611d6a91906142c2565b85604001518b8760a0015165ffffffffffff16896114db565b9199909850909650945050505050565b611d9b613759565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b82821015611e83576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611dd2565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015292915050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6a91906142d6565b6001600160a01b0316336001600160a01b031614611f9a5760405162461bcd60e51b8152600401610e40906142f3565b82818114611fba5760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761200c868683818110611fda57611fda614223565b9050602002016020810190611fef9190613cca565b85858481811061200157612001614223565b905060400201612a3c565b600101611fbd565b505050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906142d6565b6001600160a01b0316336001600160a01b0316146120e35760405162461bcd60e51b815260206004820152600e60248201526d43414c4c4241434b535f4f4e4c5960901b6044820152606401610e40565b60006120ee86611902565b905060006120fa6129b6565b905060008061210989846132c5565b9150915060008061211a86866133e4565b9150915061212a86888a8c6134e9565b8715612300576000604051806080016040528089612148578561214a565b865b6001600160401b03168152602001896121635783612165565b845b6001600160401b0316815260200161217c886136e9565b65ffffffffffff16815260200160006001600160501b0316815250905080600460008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e815260200190815260200160002060008d815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555060608201518160000160166101000a8154816001600160501b0302191690836001600160501b031602179055509050508b8d6001600160a01b03167faa00ca5c6f282cb9f35953ecb0eaf8e39c95b7c8df114efac12162a85c085e608d846000015185602001516040516122f6939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a3505b8a8c6001600160a01b03167f66baa1848f5d4d14567e9bc527e5608778c86e512490d413cfafc9250327308f8c8b8b8e6040516123589493929190938452911515602084015215156040830152606082015260800190565b60405180910390a3505050505050505050505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e591906142d6565b6001600160a01b0316336001600160a01b0316146124155760405162461bcd60e51b8152600401610e40906142f3565b828181146124355760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761247986868381811061245557612455614223565b9050602002013585858481811061246e5761246e614223565b905060400201612b8d565b600101612438565b6000806002600061249187611902565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c0830181905260029091015460e0830152909150158061259e575060c08101516001600160501b0316670de0b6b3a764000061256c6402540be40086614295565b61257691906142c2565b85612585578260200151612588565b82515b6001600160701b031661259b9190614262565b11155b95945050505050565b60008082116125b757600161174a565b6125c1838561424f565b6125dc701d6329f1c35ca4bfabb9f561000000000084614295565b61174a91906142c2565b606060008060029054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906142d6565b6001600160a01b03166335b03c176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c191906142d6565b6001600160a01b031663b81b2b716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127229190614319565b90506000816001600160401b0381111561273e5761273e613795565b60405190808252806020026020018201604052801561277757816020015b612764613759565b81526020019060019003908161275c5790505b50905060005b828110156128fe576000818152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b8282101561286d576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e0860152920490911661010083015290835290920191016127bc565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015282518390839081106128eb576128eb614223565b602090810291909101015260010161277d565b5092915050565b61290d613715565b5061ffff1660009081526002602081815260409283902083516101008101855281546001600160701b038082168352600160701b82041693820193909352600160e01b90920463ffffffff169382019390935260018301546001600160401b038082166060840152600160401b8204166080830152600160801b810465ffffffffffff1660a0830152600160b01b90046001600160501b031660c082015291015460e082015290565b600061a4b14614806129ca575062066eed46145b15612a375760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a329190614319565b905090565b504390565b60008261ffff1611612a7a5760405162461bcd60e51b8152602060048201526007602482015266047524f55505f360cc1b6044820152606401610e40565b612a8b82612a866129b6565b6133e4565b50612a9b905060208201826144b3565b61ffff8316600090815260026020908152604091829020805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255612ae4919083019083016144ce565b61ffff8316600081815260026020908152604090912060010180546001600160501b0394909416600160b01b026001600160b01b0390941693909317909255907f88d808712bd68b7f7473d7173bcddf46451c2122e6b14ff487edb7384a063a0a90612b52908401846144b3565b612b6260408501602086016144ce565b6040805163ffffffff90931683526001600160501b0390911660208301520160405180910390a25050565b600082815260036020526040812090612ba584611902565b90506000612bb16129b6565b9050612bbd85826132c5565b505061ffff8216612bd16020860186613cca565b61ffff161461323757612be482826133e4565b50612bfd9050612bf76020860186613cca565b826133e4565b5050600080612c0b87610ffe565b91509150612c1d8460016000856134e9565b612c2a84600080846134e9565b612c43612c3a6020880188613cca565b600180856134e9565b612c5d612c536020880188613cca565b60006001846134e9565b6000600281612c6f60208a018a613cca565b61ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b0316815260200160028201548152505090506000600260008761ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020016002820154815250509050866000016040518061012001604052808a6000016020810190612f6f9190613cca565b61ffff168152602001612f81886136e9565b65ffffffffffff16815260200184606001516001600160401b0316815260200184608001516001600160401b0316815260200183606001516001600160401b0316815260200183608001516001600160401b031681526020018960010160049054906101000a90046001600160401b03166001600160401b0316815260200189600101600c9054906101000a90046001600160401b03166001600160401b0316815260200160006001600160401b0316815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160106101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160010160186101000a8154816001600160401b0302191690836001600160401b0316021790555050508760000160208101906131fc9190613cca565b61ffff168661ffff168a7f5beb7d73e1c3cd532d47c9e896931df26d9be450a833bd5fe1ace6bf5690d46860405160405180910390a4505050505b61324760408501602086016144b3565b60018401805463ffffffff191663ffffffff929092169190911790556132706020850185613cca565b61ffff16857fb952776dd028b221fddb797daabb4b4fde763e8273080fec7183df71ab84507b6132a660408801602089016144b3565b60405163ffffffff909116815260200160405180910390a35050505050565b60008060006132d48585611752565b60008881526003602052604090206001810180546001600160401b03808716600160201b026bffffffffffffffff0000000019918716600160601b0291909116640100000000600160a01b031990921691909117179055929550909350915061333c856136e9565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061336b85611a25565b600282018190556001820154604080518881526001600160401b03600160201b840481166020830152600160601b90930490921690820152606081019190915286907fdfb420060d958fae05b55542f1db8397c379c7b40461f5ccc47df0df8ecf0551906080015b60405180910390a250509250929050565b60008060006133f38585611c49565b61ffff881660009081526002602052604090206001810180546001600160801b031916600160401b6001600160401b038681169190910267ffffffffffffffff1916919091179086161790559295509093509150613450856136e9565b8160010160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555061347f85611a25565b600282018190556001820154604080518881526001600160401b038084166020830152600160401b90930490921690820152606081019190915261ffff8716907f7672014c79d6eb7b66523664177345f0729875e37653757b1cc1f70ba0f15798906080016133d3565b61ffff84166000818152600260205260408120911561367c57670de0b6b3a764000061351a6402540be40085614295565b61352491906142c2565b92506001600160701b0383111561354d5760405162461bcd60e51b8152600401610e409061446b565b508184156135d7578361359a5781546001600160701b0380831691161161357e5781546001600160701b0316613580565b805b825461359591906001600160701b03166144e9565b6135b0565b81546135b09082906001600160701b0316614509565b82546dffffffffffffffffffffffffffff19166001600160701b039190911617825561367c565b836136315781546001600160701b03808316600160701b909204161161360e578154600160701b90046001600160701b0316613610565b805b825461362c9190600160701b90046001600160701b03166144e9565b61364e565b815461364e908290600160701b90046001600160701b0316614509565b82546001600160701b0391909116600160701b026dffffffffffffffffffffffffffff60701b199091161782555b8154604080516001600160701b0380851682528084166020830152600160701b90930490921690820152841515908615159061ffff8916907f946036ec838a96db6089510038e2de4a934fb985f2ba9ef85dd4166f622db2339060600160405180910390a4505050505050565b600065ffffffffffff8211156137115760405162461bcd60e51b8152600401610e409061446b565b5090565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160e081018252606080825260006020830181905292820183905281018290526080810182905260a0810182905260c081019190915290565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156137ce576137ce613795565b60405290565b604051601f8201601f191681016001600160401b03811182821017156137fc576137fc613795565b604052919050565b803561ffff8116811461381657600080fd5b919050565b803565ffffffffffff8116811461381657600080fd5b80356001600160401b038116811461381657600080fd5b80356001600160501b038116811461381657600080fd5b60006080828403121561387157600080fd5b604051608081018181106001600160401b038211171561389357613893613795565b6040529050806138a283613831565b81526138b060208401613831565b60208201526138c16040840161381b565b60408201526138d260608401613848565b60608201525092915050565b80151581146138ec57600080fd5b50565b8035613816816138de565b60008060008060008061012080888a03121561391557600080fd5b873596506020808901356001600160401b038082111561393457600080fd5b818b0191508b601f83011261394857600080fd5b81358181111561395a5761395a613795565b613968848260051b016137d4565b818152848101925090850283018401908d82111561398557600080fd5b928401925b81841015613a4b5785848f0312156139a25760008081fd5b6139aa6137ab565b6139b385613804565b81526139c086860161381b565b8682015260406139d1818701613831565b9082015260606139e2868201613831565b9082015260806139f3868201613831565b9082015260a0613a04868201613831565b9082015260c0613a15868201613831565b9082015260e0613a26868201613831565b90820152610100613a38868201613831565b908201528352928501929184019161398a565b809a50505050505050613a61886040890161385f565b935060c08701359250613a7660e088016138ef565b915061010087013590509295509295509295565b600080600060608486031215613a9f57600080fd5b613aa884613804565b9250602084013591506040840135613abf816138de565b809150509250925092565b60008083601f840112613adc57600080fd5b5081356001600160401b03811115613af357600080fd5b6020830191508360208260051b8501011115613b0e57600080fd5b9250929050565b60008060208385031215613b2857600080fd5b82356001600160401b03811115613b3e57600080fd5b613b4a85828601613aca565b90969095509350505050565b6001600160701b038082511683528060208301511660208401525063ffffffff604082015116604083015260608101516001600160401b038082166060850152806080840151166080850152505065ffffffffffff60a08201511660a083015260c0810151613bd060c08401826001600160501b03169052565b5060e090810151910152565b6020808252825182820181905260009190848201906040850190845b81811015613c1f57613c0b838551613b56565b928401926101009290920191600101613bf8565b50909695505050505050565b6001600160a01b03811681146138ec57600080fd5b600060c08284031215613c5257600080fd5b60405160c081018181106001600160401b0382111715613c7457613c74613795565b6040528235613c8281613c2b565b8082525060208301356020820152604083013560408201526060830135613ca8816138de565b60608201526080838101359082015260a0928301359281019290925250919050565b600060208284031215613cdc57600080fd5b611a1e82613804565b600060408284031215613cf757600080fd5b50919050565b60008060608385031215613d1057600080fd5b613d1983613804565b9150613d288460208501613ce5565b90509250929050565b60008060408385031215613d4457600080fd5b8235613d4f81613c2b565b91506020830135613d5f81613c2b565b809150509250929050565b600060208284031215613d7c57600080fd5b5035919050565b600060e08284031215613cf757600080fd5b600080600060608486031215613daa57600080fd5b83359250602084013591506040840135613abf816138de565b600080600060608486031215613dd857600080fd5b8335613de381613c2b565b95602085013595506040909401359392505050565b803563ffffffff8116811461381657600080fd5b600080600080600080600080610100898b031215613e2957600080fd5b613e3289613831565b9750613e4060208a01613831565b96506040890135955060608901359450613e5c60808a01613df8565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060408385031215613e9157600080fd5b50508035926020909101359150565b60008060608385031215613eb357600080fd5b82359150613d288460208501613ce5565b60008060408385031215613ed757600080fd5b613ee083613804565b946020939093013593505050565b805160e08084528151848201819052600092610100916020918201918388019190865b82811015613fa1578451805161ffff1685528281015165ffffffffffff16838601526040808201516001600160401b039081169187019190915260608083015182169087015260808083015182169087015260a08083015182169087015260c080830151821690870152888201518116898701529087015116868501529381019361012090930192600101613f11565b508781015163ffffffff1690890152506040808701516001600160401b039081169189019190915260608088015191821690890152935060808601519350613ff3608088018565ffffffffffff169052565b60a0860151935061400e60a088018565ffffffffffff169052565b60c086015160c08801528094505050505092915050565b602081526000611a1e6020830184613eee565b60008083601f84011261404a57600080fd5b5081356001600160401b0381111561406157600080fd5b6020830191508360208260061b8501011115613b0e57600080fd5b6000806000806040858703121561409257600080fd5b84356001600160401b03808211156140a957600080fd5b6140b588838901613aca565b909650945060208701359150808211156140ce57600080fd5b506140db87828801614038565b95989497509550505050565b60008060008060008060c0878903121561410057600080fd5b863561410b81613c2b565b95506020870135945060408701359350606087013592506080870135614130816138de565b915060a0870135614140816138de565b809150509295509295509295565b60008060006060848603121561416357600080fd5b833592506020840135614175816138de565b929592945050506040919091013590565b60008060006060848603121561419b57600080fd5b505081359360208301359350604090920135919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561420757603f198886030184526141f5858351613eee565b945092850192908501906001016141d9565b5092979650505050505050565b6101008101610a838284613b56565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610a8357610a83614239565b80820180821115610a8357610a83614239565b6001600160401b038281168282160390808211156128fe576128fe614239565b8082028115828204841417610a8357610a83614239565b634e487b7160e01b600052601260045260246000fd5b6000826142d1576142d16142ac565b500490565b6000602082840312156142e857600080fd5b8151611a1e81613c2b565b6020808252600c908201526b4d414e414745525f4f4e4c5960a01b604082015260600190565b60006020828403121561432b57600080fd5b5051919050565b60006020828403121561434457600080fd5b8135611a1e816138de565b60006020828403121561436157600080fd5b8135611a1e81613c2b565b60006060828403121561437e57600080fd5b604051606081018181106001600160401b03821117156143a0576143a0613795565b8060405250825181526020830151602082015260408301516143c1816138de565b60408201529392505050565b81810360008312801583831316838312821617156128fe576128fe614239565b80820260008212600160ff1b8414161561440957614409614239565b8181058314821517610a8357610a83614239565b60008261442c5761442c6142ac565b600160ff1b82146000198414161561444657614446614239565b500590565b6001600160401b038181168382160190808211156128fe576128fe614239565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b6020808252600c908201526b0aea49e9c8ebe988a9c8ea8960a31b604082015260600190565b6000602082840312156144c557600080fd5b611a1e82613df8565b6000602082840312156144e057600080fd5b611a1e82613848565b6001600160701b038281168282160390808211156128fe576128fe614239565b6001600160701b038181168382160190808211156128fe576128fe61423956fea2646970667358221220455741ae1c097709f1a140a9bf7b2af337ce8f6034fa8f2aba6abd687682e4fa64736f6c63430008110033";
1623
- const isSuperArgs = (xs) => xs.length > 1;
1624
- class GNSBorrowingFeesV6_3_2__factory extends ethers_1.ContractFactory {
1625
- constructor(...args) {
1626
- if (isSuperArgs(args)) {
1627
- super(...args);
1628
- }
1629
- else {
1630
- super(_abi, _bytecode, args[0]);
1631
- }
1632
- }
1633
- deploy(overrides) {
1634
- return super.deploy(overrides || {});
1635
- }
1636
- getDeployTransaction(overrides) {
1637
- return super.getDeployTransaction(overrides || {});
1638
- }
1639
- attach(address) {
1640
- return super.attach(address);
1641
- }
1642
- connect(signer) {
1643
- return super.connect(signer);
1644
- }
1645
- static createInterface() {
1646
- return new ethers_1.utils.Interface(_abi);
1647
- }
1648
- static connect(address, signerOrProvider) {
1649
- return new ethers_1.Contract(address, _abi, signerOrProvider);
1650
- }
1651
- }
1652
- exports.GNSBorrowingFeesV6_3_2__factory = GNSBorrowingFeesV6_3_2__factory;
1653
- GNSBorrowingFeesV6_3_2__factory.bytecode = _bytecode;
1654
- GNSBorrowingFeesV6_3_2__factory.abi = _abi;