@d8x/perpetuals-sdk 2.1.12-alpha2 → 2.1.24-alpha2
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.
- package/dist/cjs/d8XMath.d.ts +7 -10
- package/dist/cjs/d8XMath.js +42 -36
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/liquidatorTool.d.ts +2 -1
- package/dist/cjs/liquidatorTool.js +28 -13
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/marketData.d.ts +1 -2
- package/dist/cjs/marketData.js +4 -5
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/d8XMath.d.ts +7 -10
- package/dist/esm/d8XMath.js +42 -36
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.d.ts +2 -1
- package/dist/esm/liquidatorTool.js +29 -14
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/marketData.d.ts +1 -2
- package/dist/esm/marketData.js +4 -5
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/doc/d8x-perpetuals-sdk.md +33 -20
- package/doc/marketData.md +2 -3
- package/package.json +1 -1
- package/src/d8XMath.ts +39 -75
- package/src/liquidatorTool.ts +48 -15
- package/src/marketData.ts +1 -7
- package/src/version.ts +1 -1
package/dist/cjs/d8XMath.d.ts
CHANGED
|
@@ -190,6 +190,7 @@ export declare function pmInitialMarginRate(posSign: number, sm: number, m?: num
|
|
|
190
190
|
* @param totShort total short
|
|
191
191
|
* @param tradeAmt signed trade amount, can be zero
|
|
192
192
|
* @param tradeMgnRate margin rate of the trader
|
|
193
|
+
* @returns expected loss in dollars
|
|
193
194
|
*/
|
|
194
195
|
export declare function expectedLoss(p: number, m: number, totLong: number, totShort: number, tradeAmt: number, tradeMgnRate: number): number;
|
|
195
196
|
/**
|
|
@@ -197,13 +198,11 @@ export declare function expectedLoss(p: number, m: number, totLong: number, totS
|
|
|
197
198
|
* For opening trades only
|
|
198
199
|
* @param prob long probability
|
|
199
200
|
* @param m max maintenance margin rate (0.18)
|
|
200
|
-
* @param totShort
|
|
201
|
-
* @param totLong
|
|
202
201
|
* @param tradeAmt trade amount in base currency
|
|
203
202
|
* @param tradeMgnRate margin rate for this trade
|
|
204
|
-
* @returns fee relative to tradeAmt
|
|
203
|
+
* @returns dollar fee relative to tradeAmt
|
|
205
204
|
*/
|
|
206
|
-
export declare function pmExchangeFee(prob: number, m: number,
|
|
205
|
+
export declare function pmExchangeFee(prob: number, m: number, tradeAmt: number, tradeMgnRate: number): number;
|
|
207
206
|
/**
|
|
208
207
|
* Margin balance for prediction markets
|
|
209
208
|
* @param pos signed position
|
|
@@ -231,13 +230,11 @@ export declare function pmFindLiquidationPrice(pos: number, s3: number, ell: num
|
|
|
231
230
|
* @param S2
|
|
232
231
|
* @param Sm
|
|
233
232
|
* @param S3
|
|
234
|
-
* @param
|
|
235
|
-
* @param
|
|
236
|
-
* @param maxShort
|
|
237
|
-
* @param maxLong
|
|
233
|
+
* @param maxShort global max short order size (sign irrelevant)
|
|
234
|
+
* @param maxLong global max long order size (positive)
|
|
238
235
|
* @returns max trade size
|
|
239
236
|
*/
|
|
240
|
-
export declare function pmFindMaxPersonalTradeSizeAtLeverage(dir: number, lvg: number, walletBalCC: number, slippage: number, currentPosition: number, currentCashCC: number, currentLockedInValue: number, S2: number, Sm: number, S3: number,
|
|
237
|
+
export declare function pmFindMaxPersonalTradeSizeAtLeverage(dir: number, lvg: number, walletBalCC: number, slippage: number, currentPosition: number, currentCashCC: number, currentLockedInValue: number, S2: number, Sm: number, S3: number, maxShort: number, maxLong: number): number;
|
|
241
238
|
/**
|
|
242
239
|
* Find maximal trade size (short dir=-1 or long dir=1) for prediction
|
|
243
240
|
* markets at maximal leverage and incorporating the current position.
|
|
@@ -255,4 +252,4 @@ export declare function pmFindMaxPersonalTradeSizeAtLeverage(dir: number, lvg: n
|
|
|
255
252
|
* @param maxLong
|
|
256
253
|
* @returns signed max trade size
|
|
257
254
|
*/
|
|
258
|
-
export declare function pmFindMaxTradeSize(dir: number, currentPosition: number, currentCashCC: number, currentLockedInValue: number, limitPrice: number, Sm: number, S3: number,
|
|
255
|
+
export declare function pmFindMaxTradeSize(dir: number, currentPosition: number, currentCashCC: number, currentLockedInValue: number, limitPrice: number, Sm: number, S3: number, maxShort: number, maxLong: number): number;
|
package/dist/cjs/d8XMath.js
CHANGED
|
@@ -443,6 +443,7 @@ exports.pmInitialMarginRate = pmInitialMarginRate;
|
|
|
443
443
|
* @param totShort total short
|
|
444
444
|
* @param tradeAmt signed trade amount, can be zero
|
|
445
445
|
* @param tradeMgnRate margin rate of the trader
|
|
446
|
+
* @returns expected loss in dollars
|
|
446
447
|
*/
|
|
447
448
|
function expectedLoss(p, m, totLong, totShort, tradeAmt, tradeMgnRate) {
|
|
448
449
|
// maintenance margin rate
|
|
@@ -464,7 +465,18 @@ function expectedLoss(p, m, totLong, totShort, tradeAmt, tradeMgnRate) {
|
|
|
464
465
|
return p * (1 - p) * Math.max(0, a + b);
|
|
465
466
|
}
|
|
466
467
|
exports.expectedLoss = expectedLoss;
|
|
467
|
-
|
|
468
|
+
/**
|
|
469
|
+
* Equivalent to
|
|
470
|
+
* const el0 = expectedLoss(prob, m, totLong, totShort, 0, 0);
|
|
471
|
+
* const el1 = expectedLoss(prob, m, totLong, totShort, tradeAmt, tradeMgnRate)
|
|
472
|
+
* const fee = (el1 - el0) / Math.abs(tradeAmt);
|
|
473
|
+
* @param p prob long probability
|
|
474
|
+
* @param m max maintenance margin rate (0.18)
|
|
475
|
+
* @param tradeAmt trade amount in base currency
|
|
476
|
+
* @param tradeMgnRate margin rate for this trade
|
|
477
|
+
* @returns dollar fee
|
|
478
|
+
*/
|
|
479
|
+
function expectedLossImpact(p, m, tradeAmt, tradeMgnRate) {
|
|
468
480
|
m = (0.4 - m) * entropy(p) + m;
|
|
469
481
|
let dlm = 0;
|
|
470
482
|
let dl = 0;
|
|
@@ -488,19 +500,18 @@ function newFee(p, m, tradeAmt, tradeMgnRate) {
|
|
|
488
500
|
* For opening trades only
|
|
489
501
|
* @param prob long probability
|
|
490
502
|
* @param m max maintenance margin rate (0.18)
|
|
491
|
-
* @param totShort
|
|
492
|
-
* @param totLong
|
|
493
503
|
* @param tradeAmt trade amount in base currency
|
|
494
504
|
* @param tradeMgnRate margin rate for this trade
|
|
495
|
-
* @returns fee relative to tradeAmt
|
|
496
|
-
*/
|
|
497
|
-
function pmExchangeFee(prob, m,
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
505
|
+
* @returns dollar fee relative to tradeAmt
|
|
506
|
+
*/
|
|
507
|
+
function pmExchangeFee(prob, m, tradeAmt, tradeMgnRate) {
|
|
508
|
+
/*
|
|
509
|
+
equivalent:
|
|
510
|
+
const el0 = expectedLoss(prob, m, totLong, totShort, 0, 0);
|
|
511
|
+
const el1 = expectedLoss(prob, m, totLong, totShort, tradeAmt, tradeMgnRate);
|
|
512
|
+
const fee = (el1 - el0) / Math.abs(tradeAmt);
|
|
513
|
+
*/
|
|
514
|
+
let fee = expectedLossImpact(prob, m, tradeAmt, tradeMgnRate) / Math.abs(tradeAmt);
|
|
504
515
|
return Math.max(fee, 0.001);
|
|
505
516
|
}
|
|
506
517
|
exports.pmExchangeFee = pmExchangeFee;
|
|
@@ -553,11 +564,9 @@ exports.pmFindLiquidationPrice = pmFindLiquidationPrice;
|
|
|
553
564
|
* @param limitPrice
|
|
554
565
|
* @param Sm
|
|
555
566
|
* @param S3
|
|
556
|
-
* @param totLong
|
|
557
|
-
* @param totShort
|
|
558
567
|
* @returns excess margin as defined above
|
|
559
568
|
*/
|
|
560
|
-
function excessMargin(tradeAmt, currentCashCC, currentPos, currentLockedInQC, limitPrice, Sm, S3
|
|
569
|
+
function excessMargin(tradeAmt, currentCashCC, currentPos, currentLockedInQC, limitPrice, Sm, S3) {
|
|
561
570
|
const m = 0.18; //max maintenance margin rate
|
|
562
571
|
const m0 = 0.2; //max initial margin rate
|
|
563
572
|
const pos = currentPos + tradeAmt;
|
|
@@ -571,7 +580,7 @@ function excessMargin(tradeAmt, currentCashCC, currentPos, currentLockedInQC, li
|
|
|
571
580
|
const b0 = currentCashCC + Math.abs(currentPos) * Sm - currentLockedInQC + Math.max(0, tradeAmt * (Sm - limitPrice));
|
|
572
581
|
// b0 + margin - fee > threshold
|
|
573
582
|
// margin = threshold - b0 + fee
|
|
574
|
-
const fee_cc = pmExchangeFee(p, m,
|
|
583
|
+
const fee_cc = pmExchangeFee(p, m, tradeAmt, tau) / S3;
|
|
575
584
|
// missing: referral rebate
|
|
576
585
|
return b0 / S3 - thresh / S3 - fee_cc;
|
|
577
586
|
}
|
|
@@ -617,7 +626,7 @@ function pmGetDepositAmtForLvgTrade(tradeAmt, targetLvg, price, S3, S2Mark) {
|
|
|
617
626
|
* @param totShort
|
|
618
627
|
* @returns excess cash
|
|
619
628
|
*/
|
|
620
|
-
function pmExcessCashAtLvg(tradeAmt, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3
|
|
629
|
+
function pmExcessCashAtLvg(tradeAmt, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3) {
|
|
621
630
|
//determine deposit amount for given leverage
|
|
622
631
|
const limitPrice = S2 * (1 + Math.sign(tradeAmt) * slippage);
|
|
623
632
|
const depositFromWallet = pmGetDepositAmtForLvgTrade(tradeAmt, lvg, limitPrice, S3, Sm);
|
|
@@ -627,9 +636,9 @@ function pmExcessCashAtLvg(tradeAmt, lvg, walletBalCC, currentCashCC, currentPos
|
|
|
627
636
|
if (tradeAmt < 0) {
|
|
628
637
|
p0 = 2 - Sm; //=1-(Sm-1)
|
|
629
638
|
}
|
|
630
|
-
const feeCc = pmExchangeFee(p0, m0,
|
|
639
|
+
const feeCc = (tradeAmt * pmExchangeFee(p0, m0, tradeAmt, 1 / lvg)) / S3;
|
|
631
640
|
//excess cash
|
|
632
|
-
let exc = walletBalCC - depositFromWallet
|
|
641
|
+
let exc = walletBalCC - depositFromWallet;
|
|
633
642
|
// margin balance
|
|
634
643
|
let pos = currentPosition + tradeAmt;
|
|
635
644
|
let p = Sm - 1;
|
|
@@ -667,13 +676,11 @@ function pmExcessCashAtLvg(tradeAmt, lvg, walletBalCC, currentCashCC, currentPos
|
|
|
667
676
|
* @param S2
|
|
668
677
|
* @param Sm
|
|
669
678
|
* @param S3
|
|
670
|
-
* @param
|
|
671
|
-
* @param
|
|
672
|
-
* @param maxShort
|
|
673
|
-
* @param maxLong
|
|
679
|
+
* @param maxShort global max short order size (sign irrelevant)
|
|
680
|
+
* @param maxLong global max long order size (positive)
|
|
674
681
|
* @returns max trade size
|
|
675
682
|
*/
|
|
676
|
-
function pmFindMaxPersonalTradeSizeAtLeverage(dir, lvg, walletBalCC, slippage, currentPosition, currentCashCC, currentLockedInValue, S2, Sm, S3,
|
|
683
|
+
function pmFindMaxPersonalTradeSizeAtLeverage(dir, lvg, walletBalCC, slippage, currentPosition, currentCashCC, currentLockedInValue, S2, Sm, S3, maxShort, maxLong) {
|
|
677
684
|
if (dir < 0) {
|
|
678
685
|
dir = -1;
|
|
679
686
|
}
|
|
@@ -682,7 +689,7 @@ function pmFindMaxPersonalTradeSizeAtLeverage(dir, lvg, walletBalCC, slippage, c
|
|
|
682
689
|
}
|
|
683
690
|
const lot = 10;
|
|
684
691
|
const deltaS = 1; //for derivative
|
|
685
|
-
const f0 = pmExcessCashAtLvg(dir * deltaS, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3
|
|
692
|
+
const f0 = pmExcessCashAtLvg(dir * deltaS, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3);
|
|
686
693
|
if (f0 < lot) {
|
|
687
694
|
// no trade possible
|
|
688
695
|
return 0;
|
|
@@ -694,8 +701,8 @@ function pmFindMaxPersonalTradeSizeAtLeverage(dir, lvg, walletBalCC, slippage, c
|
|
|
694
701
|
let count = 0;
|
|
695
702
|
while (Math.abs(sNew - s) > 1 && count < 100) {
|
|
696
703
|
s = sNew;
|
|
697
|
-
const f = pmExcessCashAtLvg(s, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3
|
|
698
|
-
const f2 = pmExcessCashAtLvg(s + deltaS, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3
|
|
704
|
+
const f = pmExcessCashAtLvg(s, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3) ** 2;
|
|
705
|
+
const f2 = pmExcessCashAtLvg(s + deltaS, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3) ** 2;
|
|
699
706
|
let ds = (f2 - f) / deltaS;
|
|
700
707
|
if (ds == 0) {
|
|
701
708
|
sNew = s + Math.random() * ds - ds / 2;
|
|
@@ -719,11 +726,11 @@ function pmFindMaxPersonalTradeSizeAtLeverage(dir, lvg, walletBalCC, slippage, c
|
|
|
719
726
|
}
|
|
720
727
|
// ensure trade maximal trade sNew does not exceed
|
|
721
728
|
// the contract limits
|
|
722
|
-
if (
|
|
723
|
-
sNew = maxShort
|
|
729
|
+
if (sNew < -Math.abs(maxShort)) {
|
|
730
|
+
sNew = -Math.abs(maxShort);
|
|
724
731
|
}
|
|
725
|
-
else if (
|
|
726
|
-
sNew = maxLong
|
|
732
|
+
else if (sNew > maxLong) {
|
|
733
|
+
sNew = maxLong;
|
|
727
734
|
}
|
|
728
735
|
// round trade size down to lot
|
|
729
736
|
sNew = Math.sign(sNew) * Math.floor(Math.abs(sNew) / lot) * lot;
|
|
@@ -747,7 +754,7 @@ exports.pmFindMaxPersonalTradeSizeAtLeverage = pmFindMaxPersonalTradeSizeAtLever
|
|
|
747
754
|
* @param maxLong
|
|
748
755
|
* @returns signed max trade size
|
|
749
756
|
*/
|
|
750
|
-
function pmFindMaxTradeSize(dir, currentPosition, currentCashCC, currentLockedInValue, limitPrice, Sm, S3,
|
|
757
|
+
function pmFindMaxTradeSize(dir, currentPosition, currentCashCC, currentLockedInValue, limitPrice, Sm, S3, maxShort, maxLong) {
|
|
751
758
|
if (dir < 0) {
|
|
752
759
|
dir = -1;
|
|
753
760
|
}
|
|
@@ -756,7 +763,7 @@ function pmFindMaxTradeSize(dir, currentPosition, currentCashCC, currentLockedIn
|
|
|
756
763
|
}
|
|
757
764
|
const lot = 10;
|
|
758
765
|
const deltaS = 1; //for derivative
|
|
759
|
-
const f0 = excessMargin(dir * deltaS, currentCashCC, currentPosition, currentLockedInValue, limitPrice, Sm, S3
|
|
766
|
+
const f0 = excessMargin(dir * deltaS, currentCashCC, currentPosition, currentLockedInValue, limitPrice, Sm, S3);
|
|
760
767
|
if (f0 < lot) {
|
|
761
768
|
// no trade possible
|
|
762
769
|
return 0;
|
|
@@ -768,9 +775,8 @@ function pmFindMaxTradeSize(dir, currentPosition, currentCashCC, currentLockedIn
|
|
|
768
775
|
let count = 0;
|
|
769
776
|
while (Math.abs(sNew - s) > 1 && count < 100) {
|
|
770
777
|
s = sNew;
|
|
771
|
-
const f = excessMargin(s, currentCashCC, currentPosition, currentLockedInValue, limitPrice, Sm, S3
|
|
772
|
-
|
|
773
|
-
const f2 = excessMargin(s + deltaS, currentCashCC, currentPosition, currentLockedInValue, limitPrice, Sm, S3, totLong, totShort) ** 2;
|
|
778
|
+
const f = excessMargin(s, currentCashCC, currentPosition, currentLockedInValue, limitPrice, Sm, S3) ** 2;
|
|
779
|
+
const f2 = excessMargin(s + deltaS, currentCashCC, currentPosition, currentLockedInValue, limitPrice, Sm, S3) ** 2;
|
|
774
780
|
let ds = (f2 - f) / deltaS;
|
|
775
781
|
sNew = s - f / ds;
|
|
776
782
|
count += 1;
|
package/dist/cjs/d8XMath.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContractTransactionResponse, Overrides, Signer, TransactionResponse } from "ethers";
|
|
1
|
+
import { BigNumberish, ContractTransactionResponse, Overrides, Signer, TransactionResponse } from "ethers";
|
|
2
2
|
import { PayableOverrides } from "./contracts/common";
|
|
3
3
|
import type { NodeSDKConfig, PriceFeedSubmission } from "./nodeSDKTypes";
|
|
4
4
|
import WriteAccessHandler from "./writeAccessHandler";
|
|
@@ -60,6 +60,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
60
60
|
liquidateTrader(symbol: string, traderAddr: string, liquidatorAddr?: string, submission?: PriceFeedSubmission, overrides?: PayableOverrides & {
|
|
61
61
|
rpcURL?: string;
|
|
62
62
|
splitTx?: boolean;
|
|
63
|
+
maxGasLimit?: BigNumberish;
|
|
63
64
|
}): Promise<TransactionResponse>;
|
|
64
65
|
/**
|
|
65
66
|
* Check if the collateral of a trader is above the maintenance margin ("maintenance margin safe").
|
|
@@ -99,20 +99,15 @@ class LiquidatorTool extends writeAccessHandler_1.default {
|
|
|
99
99
|
}
|
|
100
100
|
let rpcURL;
|
|
101
101
|
let splitTx;
|
|
102
|
+
let maxGasLimit;
|
|
102
103
|
if (overrides) {
|
|
103
|
-
({ rpcURL, splitTx, ...overrides } = overrides);
|
|
104
|
+
({ rpcURL, splitTx, maxGasLimit, ...overrides } = overrides);
|
|
104
105
|
}
|
|
105
106
|
const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
|
|
106
107
|
let perpID = LiquidatorTool.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
107
108
|
if (submission == undefined) {
|
|
108
109
|
submission = await this.fetchLatestFeedPriceInfo(symbol);
|
|
109
110
|
}
|
|
110
|
-
if (!overrides || overrides.gasLimit == undefined) {
|
|
111
|
-
overrides = {
|
|
112
|
-
gasLimit: overrides?.gasLimit ?? this.gasLimit,
|
|
113
|
-
...overrides,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
111
|
// update first
|
|
117
112
|
let nonceInc = 0;
|
|
118
113
|
let txData;
|
|
@@ -124,7 +119,7 @@ class LiquidatorTool extends writeAccessHandler_1.default {
|
|
|
124
119
|
const pythTx = await pyth.updatePriceFeedsIfNecessary(submission.priceFeedVaas, priceIds, submission.timestamps, {
|
|
125
120
|
value: this.PRICE_UPDATE_FEE_GWEI * submission.timestamps.length,
|
|
126
121
|
gasLimit: overrides?.gasLimit ?? this.gasLimit,
|
|
127
|
-
nonce: overrides
|
|
122
|
+
nonce: overrides?.nonce,
|
|
128
123
|
});
|
|
129
124
|
nonceInc += 1;
|
|
130
125
|
// await pythTx.wait();
|
|
@@ -150,21 +145,41 @@ class LiquidatorTool extends writeAccessHandler_1.default {
|
|
|
150
145
|
]);
|
|
151
146
|
value = this.PRICE_UPDATE_FEE_GWEI * submission.timestamps.length;
|
|
152
147
|
}
|
|
153
|
-
if (
|
|
148
|
+
if (overrides?.nonce != undefined) {
|
|
154
149
|
overrides.nonce = overrides.nonce + nonceInc;
|
|
155
150
|
}
|
|
151
|
+
if (overrides?.gasLimit !== undefined) {
|
|
152
|
+
overrides.gasLimit = await overrides.gasLimit;
|
|
153
|
+
}
|
|
154
|
+
if (overrides?.gasPrice !== undefined) {
|
|
155
|
+
overrides.gasPrice = await overrides.gasPrice;
|
|
156
|
+
}
|
|
156
157
|
let unsignedTx = {
|
|
157
158
|
to: this.proxyAddr,
|
|
158
159
|
from: this.traderAddr,
|
|
159
|
-
nonce: overrides
|
|
160
|
+
nonce: overrides?.nonce,
|
|
160
161
|
data: txData,
|
|
161
162
|
value: value,
|
|
162
|
-
gasLimit: overrides
|
|
163
|
+
gasLimit: overrides?.gasLimit,
|
|
163
164
|
// gas price is populated by the provider if undefined
|
|
164
|
-
gasPrice: overrides
|
|
165
|
+
gasPrice: overrides?.gasPrice,
|
|
165
166
|
chainId: this.chainId,
|
|
166
167
|
};
|
|
167
|
-
|
|
168
|
+
// no gas limit was specified, explicitly estimate
|
|
169
|
+
if (!overrides?.gasLimit) {
|
|
170
|
+
let gasLimit = await this.signer
|
|
171
|
+
.estimateGas(unsignedTx)
|
|
172
|
+
.then((gas) => (gas * 1500n) / 1000n)
|
|
173
|
+
.catch((_e) => undefined);
|
|
174
|
+
if (!gasLimit) {
|
|
175
|
+
// gas estimate failed - txn would probably revert, double check (and possibly re-throw):
|
|
176
|
+
overrides = { gasLimit: maxGasLimit ?? this.gasLimit, value: unsignedTx.value, ...overrides };
|
|
177
|
+
await this.proxyContract.liquidateByAMM.staticCall(perpID, liquidatorAddr, traderAddr, submission.priceFeedVaas, submission.timestamps, overrides);
|
|
178
|
+
gasLimit = BigInt(maxGasLimit ?? this.gasLimit);
|
|
179
|
+
}
|
|
180
|
+
unsignedTx.gasLimit = gasLimit;
|
|
181
|
+
}
|
|
182
|
+
return await this.signer.connect(provider).sendTransaction(unsignedTx);
|
|
168
183
|
}
|
|
169
184
|
/**
|
|
170
185
|
* Check if the collateral of a trader is above the maintenance margin ("maintenance margin safe").
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquidatorTool.js","sourceRoot":"","sources":["../../src/liquidatorTool.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"liquidatorTool.js","sourceRoot":"","sources":["../../src/liquidatorTool.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/marketData.d.ts
CHANGED
|
@@ -229,14 +229,13 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
229
229
|
}>;
|
|
230
230
|
/**
|
|
231
231
|
* Fee is relative to base-currency amount (=trade amount)
|
|
232
|
-
* @param state current perpetual state (need longBC and shortBC)
|
|
233
232
|
* @param maxMaintMgnRate maintenance margin rate param for pred mkts
|
|
234
233
|
* @param Sm Mark price
|
|
235
234
|
* @param tradeAmtBC signed trade amount
|
|
236
235
|
* @param tradeMgnRate margin rate param from perpetual
|
|
237
236
|
* @returns relative exchange fee in decimals
|
|
238
237
|
*/
|
|
239
|
-
static exchangeFeePrdMkts(
|
|
238
|
+
static exchangeFeePrdMkts(maxMaintMgnRate: number, Sm: number, tradeAmtBC: number, traderPosBC: number, tradeMgnRate: number): number;
|
|
240
239
|
/**
|
|
241
240
|
* Estimates what the position risk will be if given amount of collateral is added/removed from the account.
|
|
242
241
|
* @param {number} deltaCollateral Amount of collateral to add or remove (signed)
|
package/dist/cjs/marketData.js
CHANGED
|
@@ -588,21 +588,20 @@ class MarketData extends perpetualDataHandler_1.default {
|
|
|
588
588
|
}
|
|
589
589
|
/**
|
|
590
590
|
* Fee is relative to base-currency amount (=trade amount)
|
|
591
|
-
* @param state current perpetual state (need longBC and shortBC)
|
|
592
591
|
* @param maxMaintMgnRate maintenance margin rate param for pred mkts
|
|
593
592
|
* @param Sm Mark price
|
|
594
593
|
* @param tradeAmtBC signed trade amount
|
|
595
594
|
* @param tradeMgnRate margin rate param from perpetual
|
|
596
595
|
* @returns relative exchange fee in decimals
|
|
597
596
|
*/
|
|
598
|
-
static exchangeFeePrdMkts(
|
|
597
|
+
static exchangeFeePrdMkts(maxMaintMgnRate, Sm, tradeAmtBC, traderPosBC, tradeMgnRate) {
|
|
599
598
|
const isClose = Math.sign(traderPosBC) != Math.sign(tradeAmtBC);
|
|
600
599
|
const isFlip = Math.abs(traderPosBC + tradeAmtBC) > 0.01 && Math.sign(traderPosBC + tradeAmtBC) != Math.sign(traderPosBC);
|
|
601
600
|
if (isClose && !isFlip) {
|
|
602
601
|
// 0.1cents if is close
|
|
603
602
|
return 0.001;
|
|
604
603
|
}
|
|
605
|
-
return (0, d8XMath_1.pmExchangeFee)(Sm - 1, maxMaintMgnRate,
|
|
604
|
+
return (0, d8XMath_1.pmExchangeFee)(Sm - 1, maxMaintMgnRate, tradeAmtBC, tradeMgnRate);
|
|
606
605
|
}
|
|
607
606
|
/**
|
|
608
607
|
* Estimates what the position risk will be if given amount of collateral is added/removed from the account.
|
|
@@ -962,8 +961,8 @@ class MarketData extends perpetualDataHandler_1.default {
|
|
|
962
961
|
const availCashCC = account.collateralCC + walletBalance + account.unrealizedFundingCollateralCCY;
|
|
963
962
|
const idxNotional = 4;
|
|
964
963
|
const [maxShortPosPerp, maxLongPosPerp] = await this.getMaxShortLongPos(perpId, traderState[idxNotional], overrides);
|
|
965
|
-
const maxShort = (0, d8XMath_1.pmFindMaxTradeSize)(-1, currentPositionBC, availCashCC, account.entryPrice * currentPositionBC, Sm, Sm, indexPriceInfo.s3 ?? 0,
|
|
966
|
-
const maxLong = (0, d8XMath_1.pmFindMaxTradeSize)(1, currentPositionBC, availCashCC, account.entryPrice * currentPositionBC, Sm, Sm, indexPriceInfo.s3 ?? 0,
|
|
964
|
+
const maxShort = (0, d8XMath_1.pmFindMaxTradeSize)(-1, currentPositionBC, availCashCC, account.entryPrice * currentPositionBC, Sm, Sm, indexPriceInfo.s3 ?? 0, maxShortPosPerp, maxLongPosPerp);
|
|
965
|
+
const maxLong = (0, d8XMath_1.pmFindMaxTradeSize)(1, currentPositionBC, availCashCC, account.entryPrice * currentPositionBC, Sm, Sm, indexPriceInfo.s3 ?? 0, maxShortPosPerp, maxLongPosPerp);
|
|
967
966
|
return { buy: maxLong, sell: maxShort };
|
|
968
967
|
}
|
|
969
968
|
/**
|