@d8x/perpetuals-sdk 0.7.6 → 0.7.7
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/accountTrade.js +243 -134
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.js +290 -144
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/config/priceFeedConfig.json +1 -1
- package/dist/cjs/contracts/factories/ERC20__factory.js +12 -9
- package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +12 -9
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +12 -9
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +12 -9
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +12 -9
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/ShareToken__factory.js +12 -9
- package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
- package/dist/cjs/contracts/index.js +1 -1
- package/dist/cjs/d8XMath.js +66 -65
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/index.js +11 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/liquidatorTool.js +137 -80
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/liquidityProviderTool.js +65 -33
- package/dist/cjs/liquidityProviderTool.js.map +1 -1
- package/dist/cjs/marketData.js +978 -635
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.js +22 -10
- package/dist/cjs/nodeSDKTypes.js.map +1 -1
- package/dist/cjs/orderReferrerTool.js +323 -200
- package/dist/cjs/orderReferrerTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.js +550 -404
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/perpetualEventHandler.js +190 -129
- package/dist/cjs/perpetualEventHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.js +335 -223
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/traderDigests.js +23 -20
- package/dist/cjs/traderDigests.js.map +1 -1
- package/dist/cjs/traderInterface.js +87 -54
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/triangulator.js +38 -34
- package/dist/cjs/triangulator.js.map +1 -1
- package/dist/cjs/utils.js +32 -18
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/writeAccessHandler.js +112 -78
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/accountTrade.js +237 -126
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.js +284 -136
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/config/priceFeedConfig.json +1 -1
- package/dist/esm/contracts/factories/ERC20__factory.js +12 -8
- package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +12 -8
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +12 -8
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js +12 -8
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js +12 -8
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/esm/contracts/factories/ShareToken__factory.js +12 -8
- package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
- package/dist/esm/d8XMath.js +64 -63
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.js +136 -77
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/liquidityProviderTool.js +63 -29
- package/dist/esm/liquidityProviderTool.js.map +1 -1
- package/dist/esm/marketData.js +971 -626
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.js +48 -36
- package/dist/esm/nodeSDKTypes.js.map +1 -1
- package/dist/esm/orderReferrerTool.js +319 -194
- package/dist/esm/orderReferrerTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.js +542 -394
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/perpetualEventHandler.js +188 -126
- package/dist/esm/perpetualEventHandler.js.map +1 -1
- package/dist/esm/priceFeeds.js +332 -218
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/traderDigests.js +19 -15
- package/dist/esm/traderDigests.js.map +1 -1
- package/dist/esm/traderInterface.js +83 -48
- package/dist/esm/traderInterface.js.map +1 -1
- package/dist/esm/triangulator.js +39 -34
- package/dist/esm/triangulator.js.map +1 -1
- package/dist/esm/utils.js +30 -16
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/writeAccessHandler.js +105 -69
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/package.json +1 -1
- package/src/accountTrade.ts +6 -1
- package/src/config/priceFeedConfig.json +1 -1
- package/src/orderReferrerTool.ts +2 -0
- package/src/version.ts +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
import { Contract, utils } from "ethers";
|
|
5
|
-
|
|
5
|
+
var _abi = [
|
|
6
6
|
{
|
|
7
7
|
inputs: [
|
|
8
8
|
{
|
|
@@ -440,13 +440,17 @@ const _abi = [
|
|
|
440
440
|
type: "function",
|
|
441
441
|
},
|
|
442
442
|
];
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
return new utils.Interface(_abi);
|
|
443
|
+
var ShareToken__factory = /** @class */ (function () {
|
|
444
|
+
function ShareToken__factory() {
|
|
446
445
|
}
|
|
447
|
-
|
|
446
|
+
ShareToken__factory.createInterface = function () {
|
|
447
|
+
return new utils.Interface(_abi);
|
|
448
|
+
};
|
|
449
|
+
ShareToken__factory.connect = function (address, signerOrProvider) {
|
|
448
450
|
return new Contract(address, _abi, signerOrProvider);
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
ShareToken__factory
|
|
451
|
+
};
|
|
452
|
+
ShareToken__factory.abi = _abi;
|
|
453
|
+
return ShareToken__factory;
|
|
454
|
+
}());
|
|
455
|
+
export { ShareToken__factory };
|
|
452
456
|
//# sourceMappingURL=ShareToken__factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareToken__factory.js","sourceRoot":"","sources":["../../../../../src/contracts/factories/zkevmTestnet/ShareToken__factory.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,OAAO,EAAE,QAAQ,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAOjD,
|
|
1
|
+
{"version":3,"file":"ShareToken__factory.js","sourceRoot":"","sources":["../../../../../src/contracts/factories/zkevmTestnet/ShareToken__factory.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/d8XMath.js
CHANGED
|
@@ -11,7 +11,7 @@ import { DECIMALS, ONE_64x64 } from "./nodeSDKTypes";
|
|
|
11
11
|
* @returns {number} x/2^64 in number-format (float)
|
|
12
12
|
*/
|
|
13
13
|
export function ABDK29ToFloat(x) {
|
|
14
|
-
return Number(x) / 2
|
|
14
|
+
return Number(x) / Math.pow(2, 29);
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Convert ABK64x64 bigint-format to float.
|
|
@@ -21,18 +21,18 @@ export function ABDK29ToFloat(x) {
|
|
|
21
21
|
*/
|
|
22
22
|
export function ABK64x64ToFloat(x) {
|
|
23
23
|
if (typeof x == "number") {
|
|
24
|
-
return x / 2
|
|
24
|
+
return x / Math.pow(2, 29);
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
var s = x.lt(0) ? -1 : 1;
|
|
27
27
|
x = x.mul(s);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
var xInt = x.div(ONE_64x64);
|
|
29
|
+
var dec18 = BigNumber.from(10).pow(BigNumber.from(18));
|
|
30
|
+
var xDec = x.sub(xInt.mul(ONE_64x64));
|
|
31
31
|
xDec = xDec.mul(dec18).div(ONE_64x64);
|
|
32
|
-
|
|
32
|
+
var k = 18 - xDec.toString().length;
|
|
33
33
|
// console.assert(k >= 0);
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
var sPad = "0".repeat(k);
|
|
35
|
+
var NumberStr = xInt.toString() + "." + sPad + xDec.toString();
|
|
36
36
|
return parseFloat(NumberStr) * s;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
@@ -42,14 +42,14 @@ export function ABK64x64ToFloat(x) {
|
|
|
42
42
|
*/
|
|
43
43
|
export function decNToFloat(x, numDec) {
|
|
44
44
|
//x: BigNumber in DecN format to float
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
var DECIMALS = BigNumber.from(10).pow(BigNumber.from(numDec));
|
|
46
|
+
var s = x.lt(0) ? -1 : 1;
|
|
47
47
|
x = x.mul(s);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
var xInt = x.div(DECIMALS);
|
|
49
|
+
var xDec = x.sub(xInt.mul(DECIMALS));
|
|
50
|
+
var k = numDec - xDec.toString().length;
|
|
51
|
+
var sPad = "0".repeat(k);
|
|
52
|
+
var NumberStr = xInt.toString() + "." + sPad + xDec.toString();
|
|
53
53
|
return parseFloat(NumberStr) * s;
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
@@ -59,13 +59,13 @@ export function decNToFloat(x, numDec) {
|
|
|
59
59
|
*/
|
|
60
60
|
export function dec18ToFloat(x) {
|
|
61
61
|
//x: BigNumber in Dec18 format to float
|
|
62
|
-
|
|
62
|
+
var s = x.lt(0) ? -1 : 1;
|
|
63
63
|
x = x.mul(s);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
var xInt = x.div(DECIMALS);
|
|
65
|
+
var xDec = x.sub(xInt.mul(DECIMALS));
|
|
66
|
+
var k = 18 - xDec.toString().length;
|
|
67
|
+
var sPad = "0".repeat(k);
|
|
68
|
+
var NumberStr = xInt.toString() + "." + sPad + xDec.toString();
|
|
69
69
|
return parseFloat(NumberStr) * s;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
@@ -79,15 +79,15 @@ export function floatToABK64x64(x) {
|
|
|
79
79
|
if (x === 0) {
|
|
80
80
|
return BigNumber.from(0);
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
var sg = Math.sign(x);
|
|
83
83
|
x = Math.abs(x);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
var strX = Number(x).toFixed(18);
|
|
85
|
+
var arrX = strX.split(".");
|
|
86
|
+
var xInt = BigNumber.from(arrX[0]);
|
|
87
|
+
var xDec = BigNumber.from(arrX[1]);
|
|
88
|
+
var xIntBig = xInt.mul(ONE_64x64);
|
|
89
|
+
var dec18 = BigNumber.from(10).pow(BigNumber.from(18));
|
|
90
|
+
var xDecBig = xDec.mul(ONE_64x64).div(dec18);
|
|
91
91
|
return xIntBig.add(xDecBig).mul(sg);
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
@@ -100,13 +100,13 @@ export function floatToDec18(x) {
|
|
|
100
100
|
if (x === 0) {
|
|
101
101
|
return BigNumber.from(0);
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
var sg = Math.sign(x);
|
|
104
104
|
x = Math.abs(x);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
105
|
+
var strX = x.toFixed(18);
|
|
106
|
+
var arrX = strX.split(".");
|
|
107
|
+
var xInt = BigNumber.from(arrX[0]);
|
|
108
|
+
var xDec = BigNumber.from(arrX[1]);
|
|
109
|
+
var xIntBig = xInt.mul(DECIMALS);
|
|
110
110
|
return xIntBig.add(xDec).mul(sg);
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
@@ -120,13 +120,13 @@ export function floatToDecN(x, decimals) {
|
|
|
120
120
|
if (x === 0) {
|
|
121
121
|
return BigNumber.from(0);
|
|
122
122
|
}
|
|
123
|
-
|
|
123
|
+
var sg = Math.sign(x);
|
|
124
124
|
x = Math.abs(x);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
var strX = x.toFixed(decimals);
|
|
126
|
+
var arrX = strX.split(".");
|
|
127
|
+
var xInt = BigNumber.from(arrX[0]);
|
|
128
|
+
var xDec = BigNumber.from(arrX[1]);
|
|
129
|
+
var xIntBig = xInt.mul(BigNumber.from(10).pow(BigNumber.from(decimals)));
|
|
130
130
|
return xIntBig.add(xDec).mul(sg);
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
@@ -136,13 +136,13 @@ export function floatToDecN(x, decimals) {
|
|
|
136
136
|
* @returns number of decimals
|
|
137
137
|
*/
|
|
138
138
|
export function countDecimalsOf(x, precision) {
|
|
139
|
-
|
|
139
|
+
var decimalPart = x - Math.floor(x);
|
|
140
140
|
if (decimalPart == 0) {
|
|
141
141
|
return 0;
|
|
142
142
|
}
|
|
143
|
-
|
|
143
|
+
var decimalPartStr = decimalPart.toFixed(precision);
|
|
144
144
|
// remove trailing zeros
|
|
145
|
-
|
|
145
|
+
var c = decimalPartStr.charAt(decimalPartStr.length - 1);
|
|
146
146
|
while (c == "0") {
|
|
147
147
|
decimalPartStr = decimalPartStr.substring(0, decimalPartStr.length - 1);
|
|
148
148
|
c = decimalPartStr.charAt(decimalPartStr.length - 1);
|
|
@@ -163,12 +163,13 @@ export function countDecimalsOf(x, precision) {
|
|
|
163
163
|
* @param precision optional lot size precision (e.g. if 0.01999 should be 0.02 then precision could be 5)
|
|
164
164
|
* @returns formated number string
|
|
165
165
|
*/
|
|
166
|
-
export function roundToLotString(x, lot, precision
|
|
166
|
+
export function roundToLotString(x, lot, precision) {
|
|
167
|
+
if (precision === void 0) { precision = 7; }
|
|
167
168
|
// round lot to precision
|
|
168
|
-
|
|
169
|
-
|
|
169
|
+
var lotRounded = Math.round(lot / Math.pow(10, -precision)) * Math.pow(10, -precision);
|
|
170
|
+
var v = Math.round(x / lotRounded) * lotRounded;
|
|
170
171
|
// number of digits of rounded lot
|
|
171
|
-
|
|
172
|
+
var numDig = countDecimalsOf(lotRounded, precision);
|
|
172
173
|
return v.toFixed(numDig);
|
|
173
174
|
}
|
|
174
175
|
/**
|
|
@@ -219,8 +220,8 @@ export function calculateLiquidationPriceCollateralQuanto(LockedInValueQC, posit
|
|
|
219
220
|
// m_r = (Sm * Pi - L + cash * S3) / (Sm * |Pi|)
|
|
220
221
|
// m_r = [Sm * Pi - L + cash * S3(0) * (1 + sign(Pi) (Sm / Sm(0) - 1)] / (Sm * |Pi|)
|
|
221
222
|
// -> Sm * (m_r |Pi| - Pi - cash * S3(0) * sign(Pi) / Sm(0)) = - L + cash * S3(0) * (1 - sign(Pi))
|
|
222
|
-
|
|
223
|
-
|
|
223
|
+
var numerator = -LockedInValueQC + cash_cc * S3 * (1 - Math.sign(position));
|
|
224
|
+
var denominator = maintenance_margin_rate * Math.abs(position) - position - (cash_cc * S3 * Math.sign(position)) / Sm;
|
|
224
225
|
return numerator / denominator;
|
|
225
226
|
}
|
|
226
227
|
/**
|
|
@@ -235,8 +236,8 @@ export function calculateLiquidationPriceCollateralQuanto(LockedInValueQC, posit
|
|
|
235
236
|
export function calculateLiquidationPriceCollateralQuote(LockedInValueQC, position, cash_cc, maintenance_margin_rate) {
|
|
236
237
|
// m_r = (Sm * Pi - L + cash ) / (Sm * |Pi|)
|
|
237
238
|
// -> Sm * (m_r |Pi| - Pi) = - L + cash
|
|
238
|
-
|
|
239
|
-
|
|
239
|
+
var numerator = -LockedInValueQC + cash_cc;
|
|
240
|
+
var denominator = maintenance_margin_rate * Math.abs(position) - position;
|
|
240
241
|
return numerator / denominator;
|
|
241
242
|
}
|
|
242
243
|
/**
|
|
@@ -256,15 +257,15 @@ export function getMarginRequiredForLeveragedTrade(targetLeverage, currentPositi
|
|
|
256
257
|
// we solve for margin in:
|
|
257
258
|
// |new position| * Sm / leverage + fee rate * |trade amount| * S2 = margin * S3 + current position * Sm - L + trade amount * (Sm - trade price)
|
|
258
259
|
// --> M S3 = |P'|Sm/L + FeeQC - PnL + (P'-P)(Price - Sm) = pos value / leverage + fees + price impact - pnl
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
260
|
+
var isClosing = currentPosition != 0 && currentPosition * tradeAmount < 0 && currentPosition * (currentPosition + tradeAmount) >= 0;
|
|
261
|
+
var feesCC = (feeRate * Math.abs(tradeAmount) * indexPriceS2) / indexPriceS3;
|
|
262
|
+
var collRequired = feesCC;
|
|
262
263
|
if (!isClosing) {
|
|
263
264
|
if (targetLeverage == undefined || targetLeverage <= 0) {
|
|
264
265
|
throw Error("opening trades must have positive leverage");
|
|
265
266
|
}
|
|
266
267
|
// unrealized pnl (could be + or -) - price impact premium (+)
|
|
267
|
-
|
|
268
|
+
var pnlQC = currentPosition * markPrice - currentLockedInValue - tradeAmount * (tradePrice - markPrice);
|
|
268
269
|
collRequired +=
|
|
269
270
|
Math.max(0, (Math.abs(currentPosition + tradeAmount) * markPrice) / targetLeverage - pnlQC) / indexPriceS3;
|
|
270
271
|
}
|
|
@@ -274,8 +275,8 @@ export function getMaxSignedPositionSize(marginCollateral, currentPosition, curr
|
|
|
274
275
|
// we solve for new position in:
|
|
275
276
|
// |new position| * Sm / leverage + fee rate * |trade amount| * S2 = margin * S3 + current position * Sm - L + trade amount * (Sm - entry price)
|
|
276
277
|
// |trade amount| = (new position - current position) * direction
|
|
277
|
-
|
|
278
|
-
|
|
278
|
+
var availableCash = marginCollateral * indexPriceS3 + currentPosition * markPrice - currentLockedInValue;
|
|
279
|
+
var effectiveMarginRate = markPrice * initialMarginRate + feeRate * indexPriceS2 + direction * (limitPrice - markPrice);
|
|
279
280
|
return availableCash / effectiveMarginRate;
|
|
280
281
|
}
|
|
281
282
|
/**
|
|
@@ -290,8 +291,8 @@ export function getMaxSignedPositionSize(marginCollateral, currentPosition, curr
|
|
|
290
291
|
* @returns Leverage of the resulting position
|
|
291
292
|
*/
|
|
292
293
|
export function getNewPositionLeverage(tradeAmount, marginCollateral, currentPosition, currentLockedInValue, price, indexPriceS3, markPrice) {
|
|
293
|
-
|
|
294
|
-
|
|
294
|
+
var newPosition = tradeAmount + currentPosition;
|
|
295
|
+
var pnlQC = currentPosition * markPrice - currentLockedInValue + tradeAmount * (markPrice - price);
|
|
295
296
|
return (Math.abs(newPosition) * markPrice) / (marginCollateral * indexPriceS3 + pnlQC);
|
|
296
297
|
}
|
|
297
298
|
/**
|
|
@@ -309,11 +310,11 @@ export function getNewPositionLeverage(tradeAmount, marginCollateral, currentPos
|
|
|
309
310
|
* @returns {number} Amount to be deposited to have the given leverage when trading into position pos before fees
|
|
310
311
|
*/
|
|
311
312
|
export function getDepositAmountForLvgTrade(pos0, b0, tradeAmnt, targetLvg, price, S3, S2Mark) {
|
|
312
|
-
|
|
313
|
+
var pnl = (tradeAmnt * (S2Mark - price)) / S3;
|
|
313
314
|
if (targetLvg == 0) {
|
|
314
315
|
targetLvg = (Math.abs(pos0) * S2Mark) / S3 / b0;
|
|
315
316
|
}
|
|
316
|
-
|
|
317
|
+
var b = (Math.abs(pos0 + tradeAmnt) * S2Mark) / S3 / targetLvg;
|
|
317
318
|
return -(b0 + pnl - b);
|
|
318
319
|
}
|
|
319
320
|
//# sourceMappingURL=d8XMath.js.map
|
package/dist/esm/d8XMath.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAErD;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,CAAqB;IACjD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { __assign, __awaiter, __extends, __generator } from "tslib";
|
|
1
2
|
import { ABK64x64ToFloat, floatToABK64x64 } from "./d8XMath";
|
|
2
3
|
import WriteAccessHandler from "./writeAccessHandler";
|
|
3
4
|
/**
|
|
@@ -5,7 +6,8 @@ import WriteAccessHandler from "./writeAccessHandler";
|
|
|
5
6
|
* and executes smart-contract interactions that require gas-payments.
|
|
6
7
|
* @extends WriteAccessHandler
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
+
var LiquidatorTool = /** @class */ (function (_super) {
|
|
10
|
+
__extends(LiquidatorTool, _super);
|
|
9
11
|
/**
|
|
10
12
|
* Constructs a LiquidatorTool instance for a given configuration and private key.
|
|
11
13
|
* @param {NodeSDKConfig} config Configuration object, see PerpetualDataHandler.
|
|
@@ -26,8 +28,8 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
26
28
|
*
|
|
27
29
|
* @param {string | Signer} signer Private key or ethers Signer of the account
|
|
28
30
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
function LiquidatorTool(config, signer) {
|
|
32
|
+
return _super.call(this, config, signer) || this;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
35
|
* Liquidate a trader.
|
|
@@ -54,27 +56,37 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
54
56
|
*
|
|
55
57
|
* @returns Transaction object.
|
|
56
58
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
59
|
+
LiquidatorTool.prototype.liquidateTrader = function (symbol, traderAddr, liquidatorAddr, priceFeedData, overrides) {
|
|
60
|
+
if (liquidatorAddr === void 0) { liquidatorAddr = ""; }
|
|
61
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
62
|
+
var perpID;
|
|
63
|
+
return __generator(this, function (_a) {
|
|
64
|
+
switch (_a.label) {
|
|
65
|
+
case 0:
|
|
66
|
+
// this operation spends gas, so signer is required
|
|
67
|
+
if (this.proxyContract == null || this.signer == null) {
|
|
68
|
+
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
69
|
+
}
|
|
70
|
+
// liquidator is signer unless specified otherwise
|
|
71
|
+
if (liquidatorAddr == "") {
|
|
72
|
+
liquidatorAddr = this.traderAddr;
|
|
73
|
+
}
|
|
74
|
+
perpID = LiquidatorTool.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
75
|
+
if (!(priceFeedData == undefined)) return [3 /*break*/, 2];
|
|
76
|
+
return [4 /*yield*/, this.fetchLatestFeedPriceInfo(symbol)];
|
|
77
|
+
case 1:
|
|
78
|
+
priceFeedData = _a.sent();
|
|
79
|
+
_a.label = 2;
|
|
80
|
+
case 2:
|
|
81
|
+
if (!overrides || overrides.value == undefined) {
|
|
82
|
+
overrides = __assign({ value: priceFeedData.timestamps.length * this.PRICE_UPDATE_FEE_GWEI }, overrides);
|
|
83
|
+
}
|
|
84
|
+
return [4 /*yield*/, this._liquidateByAMM(perpID, liquidatorAddr, traderAddr, priceFeedData, overrides)];
|
|
85
|
+
case 3: return [2 /*return*/, _a.sent()];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
78
90
|
/**
|
|
79
91
|
* Check if the collateral of a trader is above the maintenance margin ("maintenance margin safe").
|
|
80
92
|
* If not, the position can be liquidated.
|
|
@@ -100,35 +112,45 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
100
112
|
* @returns {boolean} True if the trader is maintenance margin safe in the perpetual.
|
|
101
113
|
* False means that the trader's position can be liquidated.
|
|
102
114
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
115
|
+
LiquidatorTool.prototype.isMaintenanceMarginSafe = function (symbol, traderAddr, indexPrices, overrides) {
|
|
116
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
117
|
+
var idx_notional, perpID, obj, traderState, idx_maintenanceMgnRate, idx_marginAccountPositionBC, idx_collateralToQuoteConversion, idx_marginBalance, maintMgnRate, pos, marginbalance, coll2quote, base2collateral, threshold;
|
|
118
|
+
return __generator(this, function (_a) {
|
|
119
|
+
switch (_a.label) {
|
|
120
|
+
case 0:
|
|
121
|
+
if (this.proxyContract == null) {
|
|
122
|
+
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
123
|
+
}
|
|
124
|
+
idx_notional = 4;
|
|
125
|
+
perpID = LiquidatorTool.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
126
|
+
if (!(indexPrices == undefined)) return [3 /*break*/, 2];
|
|
127
|
+
return [4 /*yield*/, this.priceFeedGetter.fetchPricesForPerpetual(symbol)];
|
|
128
|
+
case 1:
|
|
129
|
+
obj = _a.sent();
|
|
130
|
+
indexPrices = [obj.idxPrices[0], obj.idxPrices[1]];
|
|
131
|
+
_a.label = 2;
|
|
132
|
+
case 2: return [4 /*yield*/, this.proxyContract.getTraderState(perpID, traderAddr, indexPrices.map(function (x) { return floatToABK64x64(x); }), overrides || {})];
|
|
133
|
+
case 3:
|
|
134
|
+
traderState = _a.sent();
|
|
135
|
+
if (traderState[idx_notional].eq(0)) {
|
|
136
|
+
// trader does not have open position
|
|
137
|
+
return [2 /*return*/, true];
|
|
138
|
+
}
|
|
139
|
+
idx_maintenanceMgnRate = 10;
|
|
140
|
+
idx_marginAccountPositionBC = 4;
|
|
141
|
+
idx_collateralToQuoteConversion = 9;
|
|
142
|
+
idx_marginBalance = 0;
|
|
143
|
+
maintMgnRate = ABK64x64ToFloat(traderState[idx_maintenanceMgnRate]);
|
|
144
|
+
pos = ABK64x64ToFloat(traderState[idx_marginAccountPositionBC]);
|
|
145
|
+
marginbalance = ABK64x64ToFloat(traderState[idx_marginBalance]);
|
|
146
|
+
coll2quote = ABK64x64ToFloat(traderState[idx_collateralToQuoteConversion]);
|
|
147
|
+
base2collateral = indexPrices[0] / coll2quote;
|
|
148
|
+
threshold = Math.abs(pos * base2collateral * maintMgnRate);
|
|
149
|
+
return [2 /*return*/, marginbalance >= threshold];
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
};
|
|
132
154
|
/**
|
|
133
155
|
*
|
|
134
156
|
* @param perpetualId Perpetual id.
|
|
@@ -138,9 +160,16 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
138
160
|
* @param options E.g., Gas limit, fee.
|
|
139
161
|
* @ignore
|
|
140
162
|
*/
|
|
141
|
-
|
|
142
|
-
return
|
|
143
|
-
|
|
163
|
+
LiquidatorTool.prototype._liquidateByAMM = function (perpetualId, liquidatorAddr, traderAddr, priceFeedData, overrides) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
165
|
+
return __generator(this, function (_a) {
|
|
166
|
+
switch (_a.label) {
|
|
167
|
+
case 0: return [4 /*yield*/, this.proxyContract.liquidateByAMM(perpetualId, liquidatorAddr, traderAddr, priceFeedData.priceFeedVaas, priceFeedData.timestamps, overrides)];
|
|
168
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
};
|
|
144
173
|
/**
|
|
145
174
|
* Total number of active accounts for this symbol, i.e. accounts with positions that are currently open.
|
|
146
175
|
* @param {string} symbol Symbol of the form ETH-USD-MATIC.
|
|
@@ -161,14 +190,24 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
161
190
|
*
|
|
162
191
|
* @returns {number} Number of active accounts.
|
|
163
192
|
*/
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
193
|
+
LiquidatorTool.prototype.countActivePerpAccounts = function (symbol, overrides) {
|
|
194
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
195
|
+
var perpID, numAccounts;
|
|
196
|
+
return __generator(this, function (_a) {
|
|
197
|
+
switch (_a.label) {
|
|
198
|
+
case 0:
|
|
199
|
+
if (this.proxyContract == null) {
|
|
200
|
+
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
201
|
+
}
|
|
202
|
+
perpID = LiquidatorTool.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
203
|
+
return [4 /*yield*/, this.proxyContract.countActivePerpAccounts(perpID, overrides || {})];
|
|
204
|
+
case 1:
|
|
205
|
+
numAccounts = _a.sent();
|
|
206
|
+
return [2 /*return*/, Number(numAccounts)];
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
};
|
|
172
211
|
/**
|
|
173
212
|
* Get addresses of active accounts by chunks.
|
|
174
213
|
* @param {string} symbol Symbol of the form ETH-USD-MATIC.
|
|
@@ -191,13 +230,22 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
191
230
|
*
|
|
192
231
|
* @returns {string[]} Array of addresses at locations 'from', 'from'+1 ,..., 'to'-1.
|
|
193
232
|
*/
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
233
|
+
LiquidatorTool.prototype.getActiveAccountsByChunks = function (symbol, from, to, overrides) {
|
|
234
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
235
|
+
var perpID;
|
|
236
|
+
return __generator(this, function (_a) {
|
|
237
|
+
switch (_a.label) {
|
|
238
|
+
case 0:
|
|
239
|
+
if (this.proxyContract == null) {
|
|
240
|
+
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
241
|
+
}
|
|
242
|
+
perpID = LiquidatorTool.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
243
|
+
return [4 /*yield*/, this.proxyContract.getActivePerpAccountsByChunks(perpID, from, to, overrides || {})];
|
|
244
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
};
|
|
201
249
|
/**
|
|
202
250
|
* Addresses for all the active accounts in this perpetual symbol.
|
|
203
251
|
* @param {string} symbol Symbol of the form ETH-USD-MATIC.
|
|
@@ -218,10 +266,21 @@ export default class LiquidatorTool extends WriteAccessHandler {
|
|
|
218
266
|
*
|
|
219
267
|
* @returns {string[]} Array of addresses.
|
|
220
268
|
*/
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
269
|
+
LiquidatorTool.prototype.getAllActiveAccounts = function (symbol, overrides) {
|
|
270
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
271
|
+
var totalAccounts;
|
|
272
|
+
return __generator(this, function (_a) {
|
|
273
|
+
switch (_a.label) {
|
|
274
|
+
case 0: return [4 /*yield*/, this.countActivePerpAccounts(symbol)];
|
|
275
|
+
case 1:
|
|
276
|
+
totalAccounts = _a.sent();
|
|
277
|
+
return [4 /*yield*/, this.getActiveAccountsByChunks(symbol, 0, totalAccounts, overrides)];
|
|
278
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
};
|
|
283
|
+
return LiquidatorTool;
|
|
284
|
+
}(WriteAccessHandler));
|
|
285
|
+
export default LiquidatorTool;
|
|
227
286
|
//# sourceMappingURL=liquidatorTool.js.map
|