@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.
Files changed (218) hide show
  1. package/dist/cjs/abi/AMMPerpLogic.json +580 -0
  2. package/dist/cjs/abi/BeaconProxy.json +71 -0
  3. package/dist/cjs/abi/IPerpetualManager copy.json +5599 -0
  4. package/dist/cjs/abi/IPerpetualMarginViewLogic.json +286 -0
  5. package/dist/cjs/abi/Maintainer.json +774 -0
  6. package/dist/cjs/abi/MockToken.json +347 -0
  7. package/dist/cjs/abi/MockUSD.json +413 -0
  8. package/dist/cjs/abi/UUPSUpgradeable.json +104 -0
  9. package/dist/cjs/abi/WeETH.json +310 -0
  10. package/dist/cjs/abi-zkevm/IPerpetualManager.json +5366 -0
  11. package/dist/cjs/abi-zkevm/LimitOrderBook.json +910 -0
  12. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +236 -0
  13. package/dist/cjs/config/defaultConfig.json +4 -4
  14. package/dist/cjs/contracts/AMMPerpLogic.d.ts +303 -0
  15. package/dist/cjs/contracts/AMMPerpLogic.js +3 -0
  16. package/dist/cjs/contracts/AMMPerpLogic.js.map +1 -0
  17. package/dist/cjs/contracts/BeaconProxy.d.ts +63 -0
  18. package/dist/cjs/contracts/BeaconProxy.js +3 -0
  19. package/dist/cjs/contracts/BeaconProxy.js.map +1 -0
  20. package/dist/cjs/contracts/IPerpetualManagerCopy.d.ts +3223 -0
  21. package/dist/cjs/contracts/IPerpetualManagerCopy.js +3 -0
  22. package/dist/cjs/contracts/IPerpetualManagerCopy.js.map +1 -0
  23. package/dist/cjs/contracts/IPerpetualMarginViewLogic.d.ts +183 -0
  24. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js +3 -0
  25. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js.map +1 -0
  26. package/dist/cjs/contracts/Maintainer.d.ts +799 -0
  27. package/dist/cjs/contracts/Maintainer.js +3 -0
  28. package/dist/cjs/contracts/Maintainer.js.map +1 -0
  29. package/dist/cjs/contracts/MockToken.d.ts +263 -0
  30. package/dist/cjs/contracts/MockToken.js +3 -0
  31. package/dist/cjs/contracts/MockToken.js.map +1 -0
  32. package/dist/cjs/contracts/MockUSD.d.ts +186 -0
  33. package/dist/cjs/contracts/MockUSD.js +3 -0
  34. package/dist/cjs/contracts/MockUSD.js.map +1 -0
  35. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +118 -0
  36. package/dist/cjs/contracts/UUPSUpgradeable.js +3 -0
  37. package/dist/cjs/contracts/UUPSUpgradeable.js.map +1 -0
  38. package/dist/cjs/contracts/WeETH.d.ts +503 -0
  39. package/dist/cjs/contracts/WeETH.js +3 -0
  40. package/dist/cjs/contracts/WeETH.js.map +1 -0
  41. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.d.ts +452 -0
  42. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js +598 -0
  43. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js.map +1 -0
  44. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  45. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +89 -0
  46. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +1 -0
  47. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.d.ts +4358 -0
  48. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js +5617 -0
  49. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js.map +1 -0
  50. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +221 -0
  51. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js +304 -0
  52. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +1 -0
  53. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +609 -0
  54. package/dist/cjs/contracts/factories/Maintainer__factory.js +792 -0
  55. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +1 -0
  56. package/dist/cjs/contracts/factories/MockToken__factory.d.ts +273 -0
  57. package/dist/cjs/contracts/factories/MockToken__factory.js +365 -0
  58. package/dist/cjs/contracts/factories/MockToken__factory.js.map +1 -0
  59. package/dist/cjs/contracts/factories/MockUSD__factory.d.ts +320 -0
  60. package/dist/cjs/contracts/factories/MockUSD__factory.js +431 -0
  61. package/dist/cjs/contracts/factories/MockUSD__factory.js.map +1 -0
  62. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  63. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +122 -0
  64. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  65. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +545 -0
  66. package/dist/cjs/contracts/factories/WeETH__factory.js +721 -0
  67. package/dist/cjs/contracts/factories/WeETH__factory.js.map +1 -0
  68. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  69. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +5324 -0
  70. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  71. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  72. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +254 -0
  73. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  74. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  75. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +928 -0
  76. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  77. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  78. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +456 -0
  79. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  80. package/dist/cjs/contracts/factories/lean0/index.d.ts +4 -0
  81. package/dist/cjs/contracts/factories/lean0/index.js +15 -0
  82. package/dist/cjs/contracts/factories/lean0/index.js.map +1 -0
  83. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  84. package/dist/cjs/contracts/lean0/IPerpetualManager.js +3 -0
  85. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +1 -0
  86. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +533 -0
  87. package/dist/cjs/contracts/lean0/LimitOrderBook.js +3 -0
  88. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +1 -0
  89. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  90. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +3 -0
  91. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  92. package/dist/cjs/contracts/lean0/ShareToken.d.ts +320 -0
  93. package/dist/cjs/contracts/lean0/ShareToken.js +3 -0
  94. package/dist/cjs/contracts/lean0/ShareToken.js.map +1 -0
  95. package/dist/cjs/contracts/lean0/index.d.ts +4 -0
  96. package/dist/cjs/contracts/lean0/index.js +3 -0
  97. package/dist/cjs/contracts/lean0/index.js.map +1 -0
  98. package/dist/cjs/perpetualDataHandler.d.ts +5 -6
  99. package/dist/cjs/perpetualDataHandler.js +25 -22
  100. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  101. package/dist/cjs/version.d.ts +1 -1
  102. package/dist/cjs/version.js +1 -1
  103. package/dist/cjs/version.js.map +1 -1
  104. package/dist/esm/abi/AMMPerpLogic.json +580 -0
  105. package/dist/esm/abi/BeaconProxy.json +71 -0
  106. package/dist/esm/abi/IPerpetualManager copy.json +5599 -0
  107. package/dist/esm/abi/IPerpetualMarginViewLogic.json +286 -0
  108. package/dist/esm/abi/Maintainer.json +774 -0
  109. package/dist/esm/abi/MockToken.json +347 -0
  110. package/dist/esm/abi/MockUSD.json +413 -0
  111. package/dist/esm/abi/UUPSUpgradeable.json +104 -0
  112. package/dist/esm/abi/WeETH.json +310 -0
  113. package/dist/esm/abi/lean0/IPerpetualManager.json +5306 -0
  114. package/dist/esm/abi/lean0/LimitOrderBook.json +910 -0
  115. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +236 -0
  116. package/dist/esm/abi/lean0/ShareToken.json +438 -0
  117. package/dist/esm/abi-zkevm/IPerpetualManager.json +5366 -0
  118. package/dist/esm/abi-zkevm/LimitOrderBook.json +910 -0
  119. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +236 -0
  120. package/dist/esm/config/defaultConfig.json +4 -4
  121. package/dist/esm/contracts/AMMPerpLogic.d.ts +303 -0
  122. package/dist/esm/contracts/AMMPerpLogic.js +2 -0
  123. package/dist/esm/contracts/AMMPerpLogic.js.map +1 -0
  124. package/dist/esm/contracts/BeaconProxy.d.ts +63 -0
  125. package/dist/esm/contracts/BeaconProxy.js +2 -0
  126. package/dist/esm/contracts/BeaconProxy.js.map +1 -0
  127. package/dist/esm/contracts/IPerpetualManagerCopy.d.ts +3223 -0
  128. package/dist/esm/contracts/IPerpetualManagerCopy.js +2 -0
  129. package/dist/esm/contracts/IPerpetualManagerCopy.js.map +1 -0
  130. package/dist/esm/contracts/IPerpetualMarginViewLogic.d.ts +183 -0
  131. package/dist/esm/contracts/IPerpetualMarginViewLogic.js +2 -0
  132. package/dist/esm/contracts/IPerpetualMarginViewLogic.js.map +1 -0
  133. package/dist/esm/contracts/Maintainer.d.ts +799 -0
  134. package/dist/esm/contracts/Maintainer.js +2 -0
  135. package/dist/esm/contracts/Maintainer.js.map +1 -0
  136. package/dist/esm/contracts/MockToken.d.ts +263 -0
  137. package/dist/esm/contracts/MockToken.js +2 -0
  138. package/dist/esm/contracts/MockToken.js.map +1 -0
  139. package/dist/esm/contracts/MockUSD.d.ts +186 -0
  140. package/dist/esm/contracts/MockUSD.js +2 -0
  141. package/dist/esm/contracts/MockUSD.js.map +1 -0
  142. package/dist/esm/contracts/UUPSUpgradeable.d.ts +118 -0
  143. package/dist/esm/contracts/UUPSUpgradeable.js +2 -0
  144. package/dist/esm/contracts/UUPSUpgradeable.js.map +1 -0
  145. package/dist/esm/contracts/WeETH.d.ts +503 -0
  146. package/dist/esm/contracts/WeETH.js +2 -0
  147. package/dist/esm/contracts/WeETH.js.map +1 -0
  148. package/dist/esm/contracts/factories/AMMPerpLogic__factory.d.ts +452 -0
  149. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js +594 -0
  150. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js.map +1 -0
  151. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  152. package/dist/esm/contracts/factories/BeaconProxy__factory.js +85 -0
  153. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +1 -0
  154. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.d.ts +4358 -0
  155. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js +5613 -0
  156. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js.map +1 -0
  157. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +221 -0
  158. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js +300 -0
  159. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +1 -0
  160. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +609 -0
  161. package/dist/esm/contracts/factories/Maintainer__factory.js +788 -0
  162. package/dist/esm/contracts/factories/Maintainer__factory.js.map +1 -0
  163. package/dist/esm/contracts/factories/MockToken__factory.d.ts +273 -0
  164. package/dist/esm/contracts/factories/MockToken__factory.js +361 -0
  165. package/dist/esm/contracts/factories/MockToken__factory.js.map +1 -0
  166. package/dist/esm/contracts/factories/MockUSD__factory.d.ts +320 -0
  167. package/dist/esm/contracts/factories/MockUSD__factory.js +427 -0
  168. package/dist/esm/contracts/factories/MockUSD__factory.js.map +1 -0
  169. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  170. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +118 -0
  171. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  172. package/dist/esm/contracts/factories/WeETH__factory.d.ts +545 -0
  173. package/dist/esm/contracts/factories/WeETH__factory.js +717 -0
  174. package/dist/esm/contracts/factories/WeETH__factory.js.map +1 -0
  175. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  176. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +5320 -0
  177. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  178. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  179. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +250 -0
  180. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  181. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  182. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +924 -0
  183. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  184. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  185. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +452 -0
  186. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  187. package/dist/esm/contracts/factories/lean0/index.d.ts +4 -0
  188. package/dist/esm/contracts/factories/lean0/index.js +8 -0
  189. package/dist/esm/contracts/factories/lean0/index.js.map +1 -0
  190. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  191. package/dist/esm/contracts/lean0/IPerpetualManager.js +2 -0
  192. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +1 -0
  193. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +533 -0
  194. package/dist/esm/contracts/lean0/LimitOrderBook.js +2 -0
  195. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +1 -0
  196. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  197. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +2 -0
  198. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  199. package/dist/esm/contracts/lean0/ShareToken.d.ts +320 -0
  200. package/dist/esm/contracts/lean0/ShareToken.js +2 -0
  201. package/dist/esm/contracts/lean0/ShareToken.js.map +1 -0
  202. package/dist/esm/contracts/lean0/index.d.ts +4 -0
  203. package/dist/esm/contracts/lean0/index.js +2 -0
  204. package/dist/esm/contracts/lean0/index.js.map +1 -0
  205. package/dist/esm/perpetualDataHandler.d.ts +5 -6
  206. package/dist/esm/perpetualDataHandler.js +27 -24
  207. package/dist/esm/perpetualDataHandler.js.map +1 -1
  208. package/dist/esm/version.d.ts +1 -1
  209. package/dist/esm/version.js +1 -1
  210. package/dist/esm/version.js.map +1 -1
  211. package/package.json +1 -1
  212. package/src/config/defaultConfig.json +4 -4
  213. package/src/contracts/IPerpetualMarginViewLogic.ts +347 -0
  214. package/src/contracts/MockUSD.ts +378 -0
  215. package/src/contracts/factories/IPerpetualMarginViewLogic__factory.ts +313 -0
  216. package/src/contracts/factories/MockUSD__factory.ts +430 -0
  217. package/src/perpetualDataHandler.ts +73 -69
  218. 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?: 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) : boolean {
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) : { openSec: number; closeSec: number; } {
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) : {event: string, ts: number, tsStr: 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;//seconds in day
2141
- let ts : number , evt_sec : number;
2142
- let evt : string;
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, MASK_PREDICTION_MARKET);
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) : number {
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) : number {
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) : number {
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;//5x
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) : number {
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;//10x
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 : bigint) : boolean {
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) != (t > oc.closeSec) != (oc.openSec > oc.closeSec);
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 = 0x7Fn; // 7-bit 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, // 15 * 60
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.5.17";
1
+ export const D8X_SDK_VERSION = "2.6.0";