@d8x/perpetuals-sdk 2.5.17 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/abi/AMMPerpLogic.json +580 -0
- package/dist/cjs/abi/BeaconProxy.json +71 -0
- package/dist/cjs/abi/IPerpetualManager copy.json +5599 -0
- package/dist/cjs/abi/IPerpetualMarginViewLogic.json +286 -0
- package/dist/cjs/abi/Maintainer.json +774 -0
- package/dist/cjs/abi/MockToken.json +347 -0
- package/dist/cjs/abi/MockUSD.json +413 -0
- package/dist/cjs/abi/UUPSUpgradeable.json +104 -0
- package/dist/cjs/abi/WeETH.json +310 -0
- package/dist/cjs/abi-zkevm/IPerpetualManager.json +5366 -0
- package/dist/cjs/abi-zkevm/LimitOrderBook.json +910 -0
- package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +236 -0
- package/dist/cjs/config/defaultConfig.json +4 -4
- package/dist/cjs/contracts/AMMPerpLogic.d.ts +303 -0
- package/dist/cjs/contracts/AMMPerpLogic.js +3 -0
- package/dist/cjs/contracts/AMMPerpLogic.js.map +1 -0
- package/dist/cjs/contracts/BeaconProxy.d.ts +63 -0
- package/dist/cjs/contracts/BeaconProxy.js +3 -0
- package/dist/cjs/contracts/BeaconProxy.js.map +1 -0
- package/dist/cjs/contracts/IPerpetualManagerCopy.d.ts +3223 -0
- package/dist/cjs/contracts/IPerpetualManagerCopy.js +3 -0
- package/dist/cjs/contracts/IPerpetualManagerCopy.js.map +1 -0
- package/dist/cjs/contracts/IPerpetualMarginViewLogic.d.ts +183 -0
- package/dist/cjs/contracts/IPerpetualMarginViewLogic.js +3 -0
- package/dist/cjs/contracts/IPerpetualMarginViewLogic.js.map +1 -0
- package/dist/cjs/contracts/Maintainer.d.ts +799 -0
- package/dist/cjs/contracts/Maintainer.js +3 -0
- package/dist/cjs/contracts/Maintainer.js.map +1 -0
- package/dist/cjs/contracts/MockToken.d.ts +263 -0
- package/dist/cjs/contracts/MockToken.js +3 -0
- package/dist/cjs/contracts/MockToken.js.map +1 -0
- package/dist/cjs/contracts/MockUSD.d.ts +186 -0
- package/dist/cjs/contracts/MockUSD.js +3 -0
- package/dist/cjs/contracts/MockUSD.js.map +1 -0
- package/dist/cjs/contracts/UUPSUpgradeable.d.ts +118 -0
- package/dist/cjs/contracts/UUPSUpgradeable.js +3 -0
- package/dist/cjs/contracts/UUPSUpgradeable.js.map +1 -0
- package/dist/cjs/contracts/WeETH.d.ts +503 -0
- package/dist/cjs/contracts/WeETH.js +3 -0
- package/dist/cjs/contracts/WeETH.js.map +1 -0
- package/dist/cjs/contracts/factories/AMMPerpLogic__factory.d.ts +452 -0
- package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js +598 -0
- package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +61 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js +89 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.d.ts +4358 -0
- package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js +5617 -0
- package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +221 -0
- package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js +304 -0
- package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +609 -0
- package/dist/cjs/contracts/factories/Maintainer__factory.js +792 -0
- package/dist/cjs/contracts/factories/Maintainer__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/MockToken__factory.d.ts +273 -0
- package/dist/cjs/contracts/factories/MockToken__factory.js +365 -0
- package/dist/cjs/contracts/factories/MockToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/MockUSD__factory.d.ts +320 -0
- package/dist/cjs/contracts/factories/MockUSD__factory.js +431 -0
- package/dist/cjs/contracts/factories/MockUSD__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +122 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/WeETH__factory.d.ts +545 -0
- package/dist/cjs/contracts/factories/WeETH__factory.js +721 -0
- package/dist/cjs/contracts/factories/WeETH__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +5324 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +254 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +928 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +456 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/index.d.ts +4 -0
- package/dist/cjs/contracts/factories/lean0/index.js +15 -0
- package/dist/cjs/contracts/factories/lean0/index.js.map +1 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +2821 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.js +3 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +1 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +533 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.js +3 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +1 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +3 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
- package/dist/cjs/contracts/lean0/ShareToken.d.ts +320 -0
- package/dist/cjs/contracts/lean0/ShareToken.js +3 -0
- package/dist/cjs/contracts/lean0/ShareToken.js.map +1 -0
- package/dist/cjs/contracts/lean0/index.d.ts +4 -0
- package/dist/cjs/contracts/lean0/index.js +3 -0
- package/dist/cjs/contracts/lean0/index.js.map +1 -0
- package/dist/cjs/perpetualDataHandler.d.ts +5 -6
- package/dist/cjs/perpetualDataHandler.js +25 -22
- package/dist/cjs/perpetualDataHandler.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/abi/AMMPerpLogic.json +580 -0
- package/dist/esm/abi/BeaconProxy.json +71 -0
- package/dist/esm/abi/IPerpetualManager copy.json +5599 -0
- package/dist/esm/abi/IPerpetualMarginViewLogic.json +286 -0
- package/dist/esm/abi/Maintainer.json +774 -0
- package/dist/esm/abi/MockToken.json +347 -0
- package/dist/esm/abi/MockUSD.json +413 -0
- package/dist/esm/abi/UUPSUpgradeable.json +104 -0
- package/dist/esm/abi/WeETH.json +310 -0
- package/dist/esm/abi/lean0/IPerpetualManager.json +5306 -0
- package/dist/esm/abi/lean0/LimitOrderBook.json +910 -0
- package/dist/esm/abi/lean0/LimitOrderBookFactory.json +236 -0
- package/dist/esm/abi/lean0/ShareToken.json +438 -0
- package/dist/esm/abi-zkevm/IPerpetualManager.json +5366 -0
- package/dist/esm/abi-zkevm/LimitOrderBook.json +910 -0
- package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +236 -0
- package/dist/esm/config/defaultConfig.json +4 -4
- package/dist/esm/contracts/AMMPerpLogic.d.ts +303 -0
- package/dist/esm/contracts/AMMPerpLogic.js +2 -0
- package/dist/esm/contracts/AMMPerpLogic.js.map +1 -0
- package/dist/esm/contracts/BeaconProxy.d.ts +63 -0
- package/dist/esm/contracts/BeaconProxy.js +2 -0
- package/dist/esm/contracts/BeaconProxy.js.map +1 -0
- package/dist/esm/contracts/IPerpetualManagerCopy.d.ts +3223 -0
- package/dist/esm/contracts/IPerpetualManagerCopy.js +2 -0
- package/dist/esm/contracts/IPerpetualManagerCopy.js.map +1 -0
- package/dist/esm/contracts/IPerpetualMarginViewLogic.d.ts +183 -0
- package/dist/esm/contracts/IPerpetualMarginViewLogic.js +2 -0
- package/dist/esm/contracts/IPerpetualMarginViewLogic.js.map +1 -0
- package/dist/esm/contracts/Maintainer.d.ts +799 -0
- package/dist/esm/contracts/Maintainer.js +2 -0
- package/dist/esm/contracts/Maintainer.js.map +1 -0
- package/dist/esm/contracts/MockToken.d.ts +263 -0
- package/dist/esm/contracts/MockToken.js +2 -0
- package/dist/esm/contracts/MockToken.js.map +1 -0
- package/dist/esm/contracts/MockUSD.d.ts +186 -0
- package/dist/esm/contracts/MockUSD.js +2 -0
- package/dist/esm/contracts/MockUSD.js.map +1 -0
- package/dist/esm/contracts/UUPSUpgradeable.d.ts +118 -0
- package/dist/esm/contracts/UUPSUpgradeable.js +2 -0
- package/dist/esm/contracts/UUPSUpgradeable.js.map +1 -0
- package/dist/esm/contracts/WeETH.d.ts +503 -0
- package/dist/esm/contracts/WeETH.js +2 -0
- package/dist/esm/contracts/WeETH.js.map +1 -0
- package/dist/esm/contracts/factories/AMMPerpLogic__factory.d.ts +452 -0
- package/dist/esm/contracts/factories/AMMPerpLogic__factory.js +594 -0
- package/dist/esm/contracts/factories/AMMPerpLogic__factory.js.map +1 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +61 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.js +85 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +1 -0
- package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.d.ts +4358 -0
- package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js +5613 -0
- package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js.map +1 -0
- package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +221 -0
- package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js +300 -0
- package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +1 -0
- package/dist/esm/contracts/factories/Maintainer__factory.d.ts +609 -0
- package/dist/esm/contracts/factories/Maintainer__factory.js +788 -0
- package/dist/esm/contracts/factories/Maintainer__factory.js.map +1 -0
- package/dist/esm/contracts/factories/MockToken__factory.d.ts +273 -0
- package/dist/esm/contracts/factories/MockToken__factory.js +361 -0
- package/dist/esm/contracts/factories/MockToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/MockUSD__factory.d.ts +320 -0
- package/dist/esm/contracts/factories/MockUSD__factory.js +427 -0
- package/dist/esm/contracts/factories/MockUSD__factory.js.map +1 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +118 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
- package/dist/esm/contracts/factories/WeETH__factory.d.ts +545 -0
- package/dist/esm/contracts/factories/WeETH__factory.js +717 -0
- package/dist/esm/contracts/factories/WeETH__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +5320 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +250 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +924 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +452 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/index.d.ts +4 -0
- package/dist/esm/contracts/factories/lean0/index.js +8 -0
- package/dist/esm/contracts/factories/lean0/index.js.map +1 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +2821 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.js +2 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.js.map +1 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +533 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.js +2 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.js.map +1 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +2 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
- package/dist/esm/contracts/lean0/ShareToken.d.ts +320 -0
- package/dist/esm/contracts/lean0/ShareToken.js +2 -0
- package/dist/esm/contracts/lean0/ShareToken.js.map +1 -0
- package/dist/esm/contracts/lean0/index.d.ts +4 -0
- package/dist/esm/contracts/lean0/index.js +2 -0
- package/dist/esm/contracts/lean0/index.js.map +1 -0
- package/dist/esm/perpetualDataHandler.d.ts +5 -6
- package/dist/esm/perpetualDataHandler.js +27 -24
- package/dist/esm/perpetualDataHandler.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/package.json +1 -1
- package/src/config/defaultConfig.json +4 -4
- package/src/contracts/IPerpetualMarginViewLogic.ts +347 -0
- package/src/contracts/MockUSD.ts +378 -0
- package/src/contracts/factories/IPerpetualMarginViewLogic__factory.ts +313 -0
- package/src/contracts/factories/MockUSD__factory.ts +430 -0
- package/src/perpetualDataHandler.ts +73 -69
- package/src/version.ts +1 -1
|
@@ -57,40 +57,40 @@ import {
|
|
|
57
57
|
calculateLiquidationPriceCollateralBase,
|
|
58
58
|
calculateLiquidationPriceCollateralQuanto,
|
|
59
59
|
calculateLiquidationPriceCollateralQuote,
|
|
60
|
+
dec18ToFloat,
|
|
60
61
|
div64x64,
|
|
61
62
|
floatToABK64x64,
|
|
62
|
-
dec18ToFloat,
|
|
63
|
-
priceToProb,
|
|
64
|
-
probToPrice,
|
|
65
63
|
pmFindLiquidationPrice,
|
|
66
64
|
pmMaintenanceMarginRate,
|
|
65
|
+
priceToProb,
|
|
66
|
+
probToPrice,
|
|
67
67
|
} from "./d8XMath";
|
|
68
68
|
import {
|
|
69
|
+
IdxPriceInfo,
|
|
70
|
+
LiquidityPoolData,
|
|
71
|
+
SettlementCcyItem,
|
|
72
|
+
SettlementConfig,
|
|
69
73
|
TokenOverride,
|
|
70
74
|
TypeSafeOrder,
|
|
71
75
|
type ClientOrder,
|
|
72
76
|
type MarginAccount,
|
|
73
77
|
type NodeSDKConfig,
|
|
74
78
|
type Order,
|
|
79
|
+
type PerpetualData,
|
|
75
80
|
type PerpetualState,
|
|
76
81
|
type PerpetualStaticInfo,
|
|
77
82
|
type PoolStaticInfo,
|
|
78
83
|
type PriceFeedSubmission,
|
|
79
84
|
type SmartContractOrder,
|
|
80
|
-
type PerpetualData,
|
|
81
|
-
LiquidityPoolData,
|
|
82
|
-
SettlementConfig,
|
|
83
|
-
SettlementCcyItem,
|
|
84
|
-
IdxPriceInfo,
|
|
85
85
|
} from "./nodeSDKTypes";
|
|
86
86
|
import PriceFeeds from "./priceFeeds";
|
|
87
87
|
import {
|
|
88
88
|
combineFlags,
|
|
89
89
|
containsFlag,
|
|
90
90
|
contractSymbolToSymbol,
|
|
91
|
+
fromBytes4,
|
|
91
92
|
loadConfigAbis,
|
|
92
93
|
symbol4BToLongSymbol,
|
|
93
|
-
fromBytes4,
|
|
94
94
|
to4Chars,
|
|
95
95
|
} from "./utils";
|
|
96
96
|
|
|
@@ -169,7 +169,6 @@ export default class PerpetualDataHandler {
|
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
protected async initContractsAndData(signerOrProvider: Signer | Provider, overrides?: Overrides) {
|
|
172
|
-
await this.fetchSymbolList();
|
|
173
172
|
this.signerOrProvider = signerOrProvider;
|
|
174
173
|
// check network
|
|
175
174
|
let network: Network;
|
|
@@ -188,25 +187,7 @@ export default class PerpetualDataHandler {
|
|
|
188
187
|
}
|
|
189
188
|
this.proxyContract = IPerpetualManager__factory.connect(this.proxyAddr, signerOrProvider);
|
|
190
189
|
this.multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, this.signerOrProvider);
|
|
191
|
-
await this._fillSymbolMaps(overrides);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* sets the symbollist if a remote config url is specified
|
|
196
|
-
*/
|
|
197
|
-
private async fetchSymbolList() {
|
|
198
|
-
if (this.config.configSource == "" || this.config.configSource == undefined) {
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
const res = await fetch(this.config.configSource + "/symbolList.json");
|
|
202
|
-
if (res.status !== 200) {
|
|
203
|
-
throw new Error(`failed to fetch symbolList status code: ${res.status}`);
|
|
204
|
-
}
|
|
205
|
-
if (!res.ok) {
|
|
206
|
-
throw new Error(`failed to fetch config (${res.status}): ${res.statusText} ${this.config.configSource}`);
|
|
207
|
-
}
|
|
208
|
-
let symlist = await res.json();
|
|
209
|
-
this.symbolList = new Map<string, string>(Object.entries(symlist));
|
|
190
|
+
await this._fillSymbolMaps({ ...overrides, chainId: this.chainId });
|
|
210
191
|
}
|
|
211
192
|
|
|
212
193
|
/**
|
|
@@ -270,7 +251,7 @@ export default class PerpetualDataHandler {
|
|
|
270
251
|
* and this.nestedPerpetualIDs and this.symbolToPerpStaticInfo
|
|
271
252
|
*
|
|
272
253
|
*/
|
|
273
|
-
protected async _fillSymbolMaps(overrides
|
|
254
|
+
protected async _fillSymbolMaps(overrides: Overrides & { chainId: bigint | number | string }) {
|
|
274
255
|
if (this.proxyContract == null || this.multicall == null || this.signerOrProvider == null) {
|
|
275
256
|
throw new Error("proxy or multicall not defined");
|
|
276
257
|
}
|
|
@@ -654,6 +635,23 @@ export default class PerpetualDataHandler {
|
|
|
654
635
|
return this.nestedPerpetualIDs;
|
|
655
636
|
}
|
|
656
637
|
|
|
638
|
+
public static async fetchSymbolList(chainId: bigint | number | string, short: string[]) {
|
|
639
|
+
const endpoint = `https://sports.quantena.org/long-symbol/${Number(chainId)}?short[]=`; //BTC&short[]=GBP
|
|
640
|
+
const query = endpoint + short.join("&short[]=");
|
|
641
|
+
const res = await fetch(query);
|
|
642
|
+
if (res.status !== 200) {
|
|
643
|
+
throw new Error(`failed to fetch symbolList status code: ${res.status}`);
|
|
644
|
+
}
|
|
645
|
+
if (!res.ok) {
|
|
646
|
+
throw new Error(`failed to fetch config (${res.status}): ${res.statusText} ${query}`);
|
|
647
|
+
}
|
|
648
|
+
let t = (await res.json()) as Record<string, string>;
|
|
649
|
+
let symbolList = new Map<string, string>();
|
|
650
|
+
for (const s of short) {
|
|
651
|
+
symbolList.set(s, t[s] && t[s] !== "UNKNOWN" ? t[s] : s);
|
|
652
|
+
}
|
|
653
|
+
return symbolList;
|
|
654
|
+
}
|
|
657
655
|
/**
|
|
658
656
|
* Collect all perpetuals static info
|
|
659
657
|
* @param {ethers.Contract} _proxyContract perpetuals contract with getter
|
|
@@ -677,6 +675,13 @@ export default class PerpetualDataHandler {
|
|
|
677
675
|
ids[k],
|
|
678
676
|
overrides || {}
|
|
679
677
|
)) as IPerpetualInfo.PerpetualStaticInfoStructOutput[];
|
|
678
|
+
// get normalized symbols
|
|
679
|
+
if (overrides?.chainId !== undefined) {
|
|
680
|
+
symbolList = await this.fetchSymbolList(
|
|
681
|
+
BigInt(overrides.chainId!),
|
|
682
|
+
perpInfos.map((p) => [p.S2BaseCCY, p.S2QuoteCCY, p.S3BaseCCY, p.S3QuoteCCY]).flat()
|
|
683
|
+
);
|
|
684
|
+
}
|
|
680
685
|
for (let j = 0; j < perpInfos.length; j++) {
|
|
681
686
|
let base = contractSymbolToSymbol(perpInfos[j].S2BaseCCY, symbolList);
|
|
682
687
|
let quote = contractSymbolToSymbol(perpInfos[j].S2QuoteCCY, symbolList);
|
|
@@ -699,7 +704,7 @@ export default class PerpetualDataHandler {
|
|
|
699
704
|
priceIds: perpInfos[j].priceIds,
|
|
700
705
|
isPyth: perpInfos[j].isPyth,
|
|
701
706
|
perpFlags: BigInt(perpInfos[j].perpFlags?.toString() ?? 0),
|
|
702
|
-
fAMMTargetDD: perpInfos[j].fAMMTargetDD
|
|
707
|
+
fAMMTargetDD: perpInfos[j].fAMMTargetDD,
|
|
703
708
|
};
|
|
704
709
|
infoArr.push(info);
|
|
705
710
|
}
|
|
@@ -2108,7 +2113,7 @@ export default class PerpetualDataHandler {
|
|
|
2108
2113
|
* @param symbol perpetual symbol of the form MSTR-HONEY-BUSD
|
|
2109
2114
|
* @returns True if this is a tradfi market
|
|
2110
2115
|
*/
|
|
2111
|
-
public isTradFiMarket(symbol: string)
|
|
2116
|
+
public isTradFiMarket(symbol: string): boolean {
|
|
2112
2117
|
let staticInfo = this.symbolToPerpStaticInfo.get(symbol);
|
|
2113
2118
|
if (staticInfo == undefined) {
|
|
2114
2119
|
throw new Error(`Perpetual with symbol ${symbol} not found. Check symbol or use createProxyInstance().`);
|
|
@@ -2121,44 +2126,43 @@ export default class PerpetualDataHandler {
|
|
|
2121
2126
|
* @param symbol perpetual symbol of the form MSTR-HONEY-BUSD
|
|
2122
2127
|
* @returns open time in seconds within day, close time in seconds within day
|
|
2123
2128
|
*/
|
|
2124
|
-
public getMarketDayTradingOpenCloseSec(symbol: string)
|
|
2129
|
+
public getMarketDayTradingOpenCloseSec(symbol: string): { openSec: number; closeSec: number } {
|
|
2125
2130
|
let staticInfo = this.symbolToPerpStaticInfo.get(symbol);
|
|
2126
2131
|
if (staticInfo == undefined) {
|
|
2127
2132
|
throw new Error(`Perpetual with symbol ${symbol} not found. Check symbol or use createProxyInstance().`);
|
|
2128
2133
|
}
|
|
2129
|
-
return PerpetualDataHandler.decodeOpenCloseSeconds(staticInfo.fAMMTargetDD)
|
|
2134
|
+
return PerpetualDataHandler.decodeOpenCloseSeconds(staticInfo.fAMMTargetDD);
|
|
2130
2135
|
}
|
|
2131
|
-
|
|
2132
|
-
public getMarketDayTradingNextEvent(symbol: string)
|
|
2136
|
+
|
|
2137
|
+
public getMarketDayTradingNextEvent(symbol: string): { event: string; ts: number; tsStr: string } {
|
|
2133
2138
|
let staticInfo = this.symbolToPerpStaticInfo.get(symbol);
|
|
2134
2139
|
if (staticInfo == undefined) {
|
|
2135
2140
|
throw new Error(`Perpetual with symbol ${symbol} not found. Check symbol or use createProxyInstance().`);
|
|
2136
2141
|
}
|
|
2137
|
-
const oc = PerpetualDataHandler.decodeOpenCloseSeconds(staticInfo.fAMMTargetDD)
|
|
2142
|
+
const oc = PerpetualDataHandler.decodeOpenCloseSeconds(staticInfo.fAMMTargetDD);
|
|
2138
2143
|
const isOpen = PerpetualDataHandler.isMarketDayTime(staticInfo.fAMMTargetDD);
|
|
2139
|
-
const nowSec = Math.round(Date.now()/1000);
|
|
2140
|
-
const t = nowSec % 86_400
|
|
2141
|
-
let ts
|
|
2142
|
-
let evt
|
|
2144
|
+
const nowSec = Math.round(Date.now() / 1000);
|
|
2145
|
+
const t = nowSec % 86_400; //seconds in day
|
|
2146
|
+
let ts: number, evt_sec: number;
|
|
2147
|
+
let evt: string;
|
|
2143
2148
|
if (isOpen) {
|
|
2144
|
-
evt = "day trading close"
|
|
2149
|
+
evt = "day trading close";
|
|
2145
2150
|
evt_sec = oc.closeSec;
|
|
2146
2151
|
} else {
|
|
2147
|
-
evt = "day trading open"
|
|
2152
|
+
evt = "day trading open";
|
|
2148
2153
|
evt_sec = oc.openSec;
|
|
2149
2154
|
}
|
|
2150
|
-
if (evt_sec>t) {
|
|
2155
|
+
if (evt_sec > t) {
|
|
2151
2156
|
//same day
|
|
2152
|
-
ts = nowSec - t + evt_sec
|
|
2157
|
+
ts = nowSec - t + evt_sec;
|
|
2153
2158
|
} else {
|
|
2154
2159
|
//next day
|
|
2155
|
-
ts = 86400+nowSec - t + evt_sec
|
|
2160
|
+
ts = 86400 + nowSec - t + evt_sec;
|
|
2156
2161
|
}
|
|
2157
|
-
const rfc3339 = new Date(ts*1000).toISOString();
|
|
2158
|
-
return {event: evt, ts: ts, tsStr: rfc3339};
|
|
2162
|
+
const rfc3339 = new Date(ts * 1000).toISOString();
|
|
2163
|
+
return { event: evt, ts: ts, tsStr: rfc3339 };
|
|
2159
2164
|
}
|
|
2160
2165
|
|
|
2161
|
-
|
|
2162
2166
|
/**
|
|
2163
2167
|
* Determines whether a given perpetual represents a tradfi market
|
|
2164
2168
|
* which has open/close times
|
|
@@ -2166,7 +2170,7 @@ export default class PerpetualDataHandler {
|
|
|
2166
2170
|
* @returns True if perp has tradfi market flag set
|
|
2167
2171
|
*/
|
|
2168
2172
|
public static isTradFiMarketStatic(staticInfo: PerpetualStaticInfo) {
|
|
2169
|
-
return containsFlag(staticInfo.perpFlags,
|
|
2173
|
+
return containsFlag(staticInfo.perpFlags, MASK_TRADFI_MARKET);
|
|
2170
2174
|
}
|
|
2171
2175
|
|
|
2172
2176
|
/**
|
|
@@ -2183,20 +2187,20 @@ export default class PerpetualDataHandler {
|
|
|
2183
2187
|
* @param symbol perpetual symbol MSTR-USD-BUSD
|
|
2184
2188
|
* @returns initial margin rate
|
|
2185
2189
|
*/
|
|
2186
|
-
public getInitialMarginRate(symbol:string)
|
|
2190
|
+
public getInitialMarginRate(symbol: string): number {
|
|
2187
2191
|
let staticInfo = this.symbolToPerpStaticInfo.get(symbol);
|
|
2188
2192
|
if (staticInfo == undefined) {
|
|
2189
2193
|
throw new Error(`Perpetual with symbol ${symbol} not found. Check symbol or use createProxyInstance().`);
|
|
2190
2194
|
}
|
|
2191
2195
|
return PerpetualDataHandler.getInitialMarginRate(staticInfo);
|
|
2192
2196
|
}
|
|
2193
|
-
|
|
2197
|
+
|
|
2194
2198
|
/**
|
|
2195
2199
|
* getMaintenanceMarginRate
|
|
2196
2200
|
* @param symbol perpetual symbol MSTR-USD-BUSD
|
|
2197
2201
|
* @returns maintenance margin rate
|
|
2198
2202
|
*/
|
|
2199
|
-
public getMaintenanceMarginRate(symbol:string)
|
|
2203
|
+
public getMaintenanceMarginRate(symbol: string): number {
|
|
2200
2204
|
let staticInfo = this.symbolToPerpStaticInfo.get(symbol);
|
|
2201
2205
|
if (staticInfo == undefined) {
|
|
2202
2206
|
throw new Error(`Perpetual with symbol ${symbol} not found. Check symbol or use createProxyInstance().`);
|
|
@@ -2207,9 +2211,9 @@ export default class PerpetualDataHandler {
|
|
|
2207
2211
|
/**
|
|
2208
2212
|
* Get initial margin rate from static data considering open/close of tradfi markets
|
|
2209
2213
|
* @param staticInfo static info
|
|
2210
|
-
* @returns initial margin rate in decimals
|
|
2211
|
-
*/
|
|
2212
|
-
public static getInitialMarginRate(staticInfo: PerpetualStaticInfo)
|
|
2214
|
+
* @returns initial margin rate in decimals
|
|
2215
|
+
*/
|
|
2216
|
+
public static getInitialMarginRate(staticInfo: PerpetualStaticInfo): number {
|
|
2213
2217
|
if (!PerpetualDataHandler.isTradFiMarketStatic(staticInfo)) {
|
|
2214
2218
|
return staticInfo.initialMarginRate;
|
|
2215
2219
|
}
|
|
@@ -2217,15 +2221,15 @@ export default class PerpetualDataHandler {
|
|
|
2217
2221
|
if (isOpen) {
|
|
2218
2222
|
return staticInfo.initialMarginRate;
|
|
2219
2223
|
}
|
|
2220
|
-
return 0.2
|
|
2224
|
+
return 0.2; //5x
|
|
2221
2225
|
}
|
|
2222
|
-
|
|
2226
|
+
|
|
2223
2227
|
/**
|
|
2224
2228
|
* Get maintenance margin rate from static data considering open/close of tradfi markets
|
|
2225
2229
|
* @param staticInfo static info
|
|
2226
|
-
* @returns maintenance margin rate in decimals
|
|
2230
|
+
* @returns maintenance margin rate in decimals
|
|
2227
2231
|
*/
|
|
2228
|
-
public static getMaintenanceMarginRate(staticInfo: PerpetualStaticInfo)
|
|
2232
|
+
public static getMaintenanceMarginRate(staticInfo: PerpetualStaticInfo): number {
|
|
2229
2233
|
if (!PerpetualDataHandler.isTradFiMarketStatic(staticInfo)) {
|
|
2230
2234
|
return staticInfo.maintenanceMarginRate;
|
|
2231
2235
|
}
|
|
@@ -2233,28 +2237,28 @@ export default class PerpetualDataHandler {
|
|
|
2233
2237
|
if (isOpen) {
|
|
2234
2238
|
return staticInfo.maintenanceMarginRate;
|
|
2235
2239
|
}
|
|
2236
|
-
return 0.1
|
|
2240
|
+
return 0.1; //10x
|
|
2237
2241
|
}
|
|
2238
2242
|
|
|
2239
2243
|
/**
|
|
2240
|
-
* Determine whether the market is in day trading, given the parameter fAMMTargetDD
|
|
2244
|
+
* Determine whether the market is in day trading, given the parameter fAMMTargetDD
|
|
2241
2245
|
* @param fAMMTargetDD bigint that encodes market day trading times
|
|
2242
2246
|
* @returns true if currently the market is in day trading status
|
|
2243
2247
|
*/
|
|
2244
|
-
public static isMarketDayTime(fAMMTargetDD
|
|
2245
|
-
const t = (Date.now()/1000) % 86_400;
|
|
2248
|
+
public static isMarketDayTime(fAMMTargetDD: bigint): boolean {
|
|
2249
|
+
const t = (Date.now() / 1000) % 86_400;
|
|
2246
2250
|
let oc = PerpetualDataHandler.decodeOpenCloseSeconds(fAMMTargetDD);
|
|
2247
|
-
const isOpen = (t > oc.openSec
|
|
2251
|
+
const isOpen = (t > oc.openSec != t > oc.closeSec) != oc.openSec > oc.closeSec;
|
|
2248
2252
|
return isOpen;
|
|
2249
2253
|
}
|
|
2250
2254
|
|
|
2251
2255
|
public static decodeOpenCloseSeconds(packed: bigint): { openSec: number; closeSec: number } {
|
|
2252
|
-
const MASK =
|
|
2256
|
+
const MASK = 0x7fn; // 7-bit mask
|
|
2253
2257
|
const closeSlot = Number(packed & MASK);
|
|
2254
2258
|
const openSlot = Number((packed >> 7n) & MASK);
|
|
2255
2259
|
return {
|
|
2256
|
-
openSec: openSlot * 900,
|
|
2260
|
+
openSec: openSlot * 900, // 15 * 60
|
|
2257
2261
|
closeSec: closeSlot * 900,
|
|
2258
|
-
}
|
|
2262
|
+
};
|
|
2259
2263
|
}
|
|
2260
|
-
}
|
|
2264
|
+
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "2.
|
|
1
|
+
export const D8X_SDK_VERSION = "2.6.0";
|