@d8x/perpetuals-sdk 2.7.0 → 2.7.2
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 +6 -8
- package/dist/cjs/d8XMath.js +97 -4
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/main.d.ts +1 -0
- package/dist/cjs/main.js +15 -0
- package/dist/cjs/main.js.map +1 -0
- package/dist/cjs/marketData.d.ts +1 -5
- package/dist/cjs/marketData.js +23 -8
- 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/cjs/version.js.map +1 -1
- package/dist/esm/d8XMath.d.ts +6 -8
- package/dist/esm/d8XMath.js +93 -3
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/main.d.ts +1 -0
- package/dist/esm/main.js +13 -0
- package/dist/esm/main.js.map +1 -0
- package/dist/esm/main2.d.ts +1 -0
- package/dist/esm/main2.js +18 -0
- package/dist/esm/main2.js.map +1 -0
- package/dist/esm/marketData.d.ts +1 -5
- package/dist/esm/marketData.js +24 -9
- package/dist/esm/marketData.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/doc/d8x-perpetuals-sdk.md +2 -26
- package/doc/marketData.md +2 -10
- package/package.json +5 -2
- package/src/d8XMath.ts +105 -4
- package/src/marketData.ts +30 -10
- package/src/version.ts +1 -1
package/src/marketData.ts
CHANGED
|
@@ -28,11 +28,13 @@ import {
|
|
|
28
28
|
ABK64x64ToFloat,
|
|
29
29
|
dec18ToFloat,
|
|
30
30
|
decNToFloat,
|
|
31
|
+
extractLvgFeeParams,
|
|
31
32
|
floatToABK64x64,
|
|
32
33
|
getDepositAmountForLvgTrade,
|
|
33
34
|
getMaxSignedPositionSize,
|
|
34
|
-
|
|
35
|
+
pmExitFee,
|
|
35
36
|
pmMaxSignedOpenTradeSize,
|
|
37
|
+
pmOpenFee,
|
|
36
38
|
} from "./d8XMath";
|
|
37
39
|
import {
|
|
38
40
|
PythMetadata,
|
|
@@ -838,27 +840,44 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
838
840
|
|
|
839
841
|
/**
|
|
840
842
|
* Fee is relative to base-currency amount (=trade amount)
|
|
841
|
-
* @param maxMaintMgnRate maintenance margin rate param for pred mkts
|
|
842
|
-
* @param Sm Mark price
|
|
843
|
-
* @param tradeAmtBC signed trade amount
|
|
844
|
-
* @param tradeMgnRate margin rate param from perpetual
|
|
845
843
|
* @returns relative exchange fee in decimals
|
|
846
844
|
*/
|
|
847
845
|
public static exchangeFeePrdMkts(
|
|
848
|
-
maxMaintMgnRate: number,
|
|
849
846
|
Sm: number,
|
|
850
847
|
tradeAmtBC: number,
|
|
851
848
|
traderPosBC: number,
|
|
852
|
-
|
|
849
|
+
traderLockedInQC: number,
|
|
850
|
+
mu_m: number,
|
|
851
|
+
mr: number,
|
|
852
|
+
m_0: number,
|
|
853
|
+
conf: bigint
|
|
853
854
|
): number {
|
|
854
855
|
const isClose = Math.sign(traderPosBC) != Math.sign(tradeAmtBC);
|
|
855
856
|
const isFlip =
|
|
856
857
|
Math.abs(traderPosBC + tradeAmtBC) > 0.01 && Math.sign(traderPosBC + tradeAmtBC) != Math.sign(traderPosBC);
|
|
858
|
+
|
|
859
|
+
const varphiBar = tradeAmtBC > 0 ? Sm - 1 : 2 - Sm;
|
|
860
|
+
const varphi =
|
|
861
|
+
traderPosBC == 0
|
|
862
|
+
? varphiBar
|
|
863
|
+
: traderPosBC > 0
|
|
864
|
+
? traderLockedInQC / traderPosBC - 1
|
|
865
|
+
: 2 - traderLockedInQC / traderPosBC;
|
|
866
|
+
let fee: number;
|
|
867
|
+
const { jump, sigt } = extractLvgFeeParams(conf);
|
|
857
868
|
if (isClose && !isFlip) {
|
|
858
|
-
//
|
|
859
|
-
|
|
869
|
+
// exit fee
|
|
870
|
+
fee = pmExitFee(varphi, varphiBar, mu_m, m_0, sigt, jump);
|
|
871
|
+
} else {
|
|
872
|
+
// open fee
|
|
873
|
+
fee = pmOpenFee(varphi, varphiBar, mu_m, mr, sigt, jump);
|
|
874
|
+
}
|
|
875
|
+
if (fee < 0.001) {
|
|
876
|
+
fee = 0.001;
|
|
877
|
+
} else if (fee > 0.65535) {
|
|
878
|
+
fee = 0.65535;
|
|
860
879
|
}
|
|
861
|
-
return
|
|
880
|
+
return fee;
|
|
862
881
|
}
|
|
863
882
|
|
|
864
883
|
/**
|
|
@@ -1269,6 +1288,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1269
1288
|
|
|
1270
1289
|
let maxLong = pmMaxSignedOpenTradeSize(longOI, shortOI, indexPriceInfo.ema, true, mr, ammFunds);
|
|
1271
1290
|
let maxShort = pmMaxSignedOpenTradeSize(longOI, shortOI, indexPriceInfo.ema, false, mr, ammFunds);
|
|
1291
|
+
console.log({ maxLong, maxShort });
|
|
1272
1292
|
if (traderPos > 0n) {
|
|
1273
1293
|
// pos > 0, so short is closing direction
|
|
1274
1294
|
maxShort = -Math.max(Math.abs(maxShort), ABK64x64ToFloat(traderPos));
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "2.7.
|
|
1
|
+
export const D8X_SDK_VERSION = "2.7.2";
|