@d8x/perpetuals-sdk 2.6.22 → 2.6.23

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 (228) 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/contracts/AMMPerpLogic.d.ts +303 -0
  14. package/dist/cjs/contracts/AMMPerpLogic.js +3 -0
  15. package/dist/cjs/contracts/AMMPerpLogic.js.map +1 -0
  16. package/dist/cjs/contracts/BeaconProxy.d.ts +63 -0
  17. package/dist/cjs/contracts/BeaconProxy.js +3 -0
  18. package/dist/cjs/contracts/BeaconProxy.js.map +1 -0
  19. package/dist/cjs/contracts/IPerpetualManagerCopy.d.ts +3223 -0
  20. package/dist/cjs/contracts/IPerpetualManagerCopy.js +3 -0
  21. package/dist/cjs/contracts/IPerpetualManagerCopy.js.map +1 -0
  22. package/dist/cjs/contracts/IPerpetualMarginViewLogic.d.ts +183 -0
  23. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js +3 -0
  24. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js.map +1 -0
  25. package/dist/cjs/contracts/Maintainer.d.ts +799 -0
  26. package/dist/cjs/contracts/Maintainer.js +3 -0
  27. package/dist/cjs/contracts/Maintainer.js.map +1 -0
  28. package/dist/cjs/contracts/MockToken.d.ts +263 -0
  29. package/dist/cjs/contracts/MockToken.js +3 -0
  30. package/dist/cjs/contracts/MockToken.js.map +1 -0
  31. package/dist/cjs/contracts/MockUSD.d.ts +186 -0
  32. package/dist/cjs/contracts/MockUSD.js +3 -0
  33. package/dist/cjs/contracts/MockUSD.js.map +1 -0
  34. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +118 -0
  35. package/dist/cjs/contracts/UUPSUpgradeable.js +3 -0
  36. package/dist/cjs/contracts/UUPSUpgradeable.js.map +1 -0
  37. package/dist/cjs/contracts/WeETH.d.ts +503 -0
  38. package/dist/cjs/contracts/WeETH.js +3 -0
  39. package/dist/cjs/contracts/WeETH.js.map +1 -0
  40. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.d.ts +452 -0
  41. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js +598 -0
  42. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js.map +1 -0
  43. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  44. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +89 -0
  45. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +1 -0
  46. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.d.ts +4358 -0
  47. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js +5617 -0
  48. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js.map +1 -0
  49. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +221 -0
  50. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js +304 -0
  51. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +1 -0
  52. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +609 -0
  53. package/dist/cjs/contracts/factories/Maintainer__factory.js +792 -0
  54. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +1 -0
  55. package/dist/cjs/contracts/factories/MockToken__factory.d.ts +273 -0
  56. package/dist/cjs/contracts/factories/MockToken__factory.js +365 -0
  57. package/dist/cjs/contracts/factories/MockToken__factory.js.map +1 -0
  58. package/dist/cjs/contracts/factories/MockUSD__factory.d.ts +320 -0
  59. package/dist/cjs/contracts/factories/MockUSD__factory.js +431 -0
  60. package/dist/cjs/contracts/factories/MockUSD__factory.js.map +1 -0
  61. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  62. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +122 -0
  63. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  64. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +545 -0
  65. package/dist/cjs/contracts/factories/WeETH__factory.js +721 -0
  66. package/dist/cjs/contracts/factories/WeETH__factory.js.map +1 -0
  67. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  68. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +5324 -0
  69. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  70. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  71. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +254 -0
  72. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  73. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  74. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +928 -0
  75. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  76. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  77. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +456 -0
  78. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  79. package/dist/cjs/contracts/factories/lean0/index.d.ts +4 -0
  80. package/dist/cjs/contracts/factories/lean0/index.js +15 -0
  81. package/dist/cjs/contracts/factories/lean0/index.js.map +1 -0
  82. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  83. package/dist/cjs/contracts/lean0/IPerpetualManager.js +3 -0
  84. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +1 -0
  85. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +533 -0
  86. package/dist/cjs/contracts/lean0/LimitOrderBook.js +3 -0
  87. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +1 -0
  88. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  89. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +3 -0
  90. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  91. package/dist/cjs/contracts/lean0/ShareToken.d.ts +320 -0
  92. package/dist/cjs/contracts/lean0/ShareToken.js +3 -0
  93. package/dist/cjs/contracts/lean0/ShareToken.js.map +1 -0
  94. package/dist/cjs/contracts/lean0/index.d.ts +4 -0
  95. package/dist/cjs/contracts/lean0/index.js +3 -0
  96. package/dist/cjs/contracts/lean0/index.js.map +1 -0
  97. package/dist/cjs/marketData.d.ts +5 -5
  98. package/dist/cjs/marketData.js +7 -3
  99. package/dist/cjs/marketData.js.map +1 -1
  100. package/dist/cjs/perpetualDataHandler.d.ts +15 -15
  101. package/dist/cjs/perpetualDataHandler.js +9 -6
  102. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  103. package/dist/cjs/priceFeeds.js +1 -1
  104. package/dist/cjs/utils.d.ts +3 -3
  105. package/dist/cjs/utils.js.map +1 -1
  106. package/dist/cjs/version.d.ts +1 -1
  107. package/dist/cjs/version.js +1 -1
  108. package/dist/esm/abi/AMMPerpLogic.json +580 -0
  109. package/dist/esm/abi/BeaconProxy.json +71 -0
  110. package/dist/esm/abi/IPerpetualManager copy.json +5599 -0
  111. package/dist/esm/abi/IPerpetualMarginViewLogic.json +286 -0
  112. package/dist/esm/abi/Maintainer.json +774 -0
  113. package/dist/esm/abi/MockToken.json +347 -0
  114. package/dist/esm/abi/MockUSD.json +413 -0
  115. package/dist/esm/abi/UUPSUpgradeable.json +104 -0
  116. package/dist/esm/abi/WeETH.json +310 -0
  117. package/dist/esm/abi/lean0/IPerpetualManager.json +5306 -0
  118. package/dist/esm/abi/lean0/LimitOrderBook.json +910 -0
  119. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +236 -0
  120. package/dist/esm/abi/lean0/ShareToken.json +438 -0
  121. package/dist/esm/abi-zkevm/IPerpetualManager.json +5366 -0
  122. package/dist/esm/abi-zkevm/LimitOrderBook.json +910 -0
  123. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +236 -0
  124. package/dist/esm/contracts/AMMPerpLogic.d.ts +303 -0
  125. package/dist/esm/contracts/AMMPerpLogic.js +2 -0
  126. package/dist/esm/contracts/AMMPerpLogic.js.map +1 -0
  127. package/dist/esm/contracts/BeaconProxy.d.ts +63 -0
  128. package/dist/esm/contracts/BeaconProxy.js +2 -0
  129. package/dist/esm/contracts/BeaconProxy.js.map +1 -0
  130. package/dist/esm/contracts/IPerpetualManagerCopy.d.ts +3223 -0
  131. package/dist/esm/contracts/IPerpetualManagerCopy.js +2 -0
  132. package/dist/esm/contracts/IPerpetualManagerCopy.js.map +1 -0
  133. package/dist/esm/contracts/IPerpetualMarginViewLogic.d.ts +183 -0
  134. package/dist/esm/contracts/IPerpetualMarginViewLogic.js +2 -0
  135. package/dist/esm/contracts/IPerpetualMarginViewLogic.js.map +1 -0
  136. package/dist/esm/contracts/Maintainer.d.ts +799 -0
  137. package/dist/esm/contracts/Maintainer.js +2 -0
  138. package/dist/esm/contracts/Maintainer.js.map +1 -0
  139. package/dist/esm/contracts/MockToken.d.ts +263 -0
  140. package/dist/esm/contracts/MockToken.js +2 -0
  141. package/dist/esm/contracts/MockToken.js.map +1 -0
  142. package/dist/esm/contracts/MockUSD.d.ts +186 -0
  143. package/dist/esm/contracts/MockUSD.js +2 -0
  144. package/dist/esm/contracts/MockUSD.js.map +1 -0
  145. package/dist/esm/contracts/UUPSUpgradeable.d.ts +118 -0
  146. package/dist/esm/contracts/UUPSUpgradeable.js +2 -0
  147. package/dist/esm/contracts/UUPSUpgradeable.js.map +1 -0
  148. package/dist/esm/contracts/WeETH.d.ts +503 -0
  149. package/dist/esm/contracts/WeETH.js +2 -0
  150. package/dist/esm/contracts/WeETH.js.map +1 -0
  151. package/dist/esm/contracts/factories/AMMPerpLogic__factory.d.ts +452 -0
  152. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js +594 -0
  153. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js.map +1 -0
  154. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  155. package/dist/esm/contracts/factories/BeaconProxy__factory.js +85 -0
  156. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +1 -0
  157. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.d.ts +4358 -0
  158. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js +5613 -0
  159. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js.map +1 -0
  160. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +221 -0
  161. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js +300 -0
  162. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +1 -0
  163. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +609 -0
  164. package/dist/esm/contracts/factories/Maintainer__factory.js +788 -0
  165. package/dist/esm/contracts/factories/Maintainer__factory.js.map +1 -0
  166. package/dist/esm/contracts/factories/MockToken__factory.d.ts +273 -0
  167. package/dist/esm/contracts/factories/MockToken__factory.js +361 -0
  168. package/dist/esm/contracts/factories/MockToken__factory.js.map +1 -0
  169. package/dist/esm/contracts/factories/MockUSD__factory.d.ts +320 -0
  170. package/dist/esm/contracts/factories/MockUSD__factory.js +427 -0
  171. package/dist/esm/contracts/factories/MockUSD__factory.js.map +1 -0
  172. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  173. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +118 -0
  174. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  175. package/dist/esm/contracts/factories/WeETH__factory.d.ts +545 -0
  176. package/dist/esm/contracts/factories/WeETH__factory.js +717 -0
  177. package/dist/esm/contracts/factories/WeETH__factory.js.map +1 -0
  178. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  179. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +5320 -0
  180. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  181. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  182. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +250 -0
  183. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  184. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  185. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +924 -0
  186. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  187. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  188. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +452 -0
  189. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  190. package/dist/esm/contracts/factories/lean0/index.d.ts +4 -0
  191. package/dist/esm/contracts/factories/lean0/index.js +8 -0
  192. package/dist/esm/contracts/factories/lean0/index.js.map +1 -0
  193. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  194. package/dist/esm/contracts/lean0/IPerpetualManager.js +2 -0
  195. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +1 -0
  196. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +533 -0
  197. package/dist/esm/contracts/lean0/LimitOrderBook.js +2 -0
  198. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +1 -0
  199. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  200. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +2 -0
  201. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  202. package/dist/esm/contracts/lean0/ShareToken.d.ts +320 -0
  203. package/dist/esm/contracts/lean0/ShareToken.js +2 -0
  204. package/dist/esm/contracts/lean0/ShareToken.js.map +1 -0
  205. package/dist/esm/contracts/lean0/index.d.ts +4 -0
  206. package/dist/esm/contracts/lean0/index.js +2 -0
  207. package/dist/esm/contracts/lean0/index.js.map +1 -0
  208. package/dist/esm/marketData.d.ts +5 -5
  209. package/dist/esm/marketData.js +7 -3
  210. package/dist/esm/marketData.js.map +1 -1
  211. package/dist/esm/perpetualDataHandler.d.ts +15 -15
  212. package/dist/esm/perpetualDataHandler.js +9 -6
  213. package/dist/esm/perpetualDataHandler.js.map +1 -1
  214. package/dist/esm/priceFeeds.js +1 -1
  215. package/dist/esm/utils.d.ts +3 -3
  216. package/dist/esm/utils.js.map +1 -1
  217. package/dist/esm/version.d.ts +1 -1
  218. package/dist/esm/version.js +1 -1
  219. package/package.json +1 -1
  220. package/src/contracts/IPerpetualMarginViewLogic.ts +347 -0
  221. package/src/contracts/MockUSD.ts +378 -0
  222. package/src/contracts/factories/IPerpetualMarginViewLogic__factory.ts +313 -0
  223. package/src/contracts/factories/MockUSD__factory.ts +430 -0
  224. package/src/marketData.ts +27 -22
  225. package/src/perpetualDataHandler.ts +34 -24
  226. package/src/priceFeeds.ts +1 -1
  227. package/src/utils.ts +3 -3
  228. package/src/version.ts +1 -1
@@ -369,25 +369,29 @@ export default class PerpetualDataHandler {
369
369
  overrides
370
370
  );
371
371
 
372
+ // fetch slots from api
372
373
  const slotsInfo = await PerpetualDataHandler.fetchSlotsInfo(this.chainId);
373
374
 
374
375
  // replace symbols, if any
375
376
  for (const slot of slotsInfo) {
376
- const slotSymbol = slot.slot + "-USD";
377
377
  const perpIdx = perpStaticInfos.findIndex(
378
- (p) => p.S2Symbol == slotSymbol && Number(this.chainId) == slot.chain_id
378
+ (p) => p.S2Symbol.split("-").at(0) == slot.slot && Number(this.chainId) == slot.chain_id
379
379
  );
380
380
  if (perpIdx < 0) {
381
381
  // not a known perp - ignore
382
382
  continue;
383
383
  }
384
384
  // set symbol for this slot
385
- this.symbolList.set(slot.slot, slot.contract_id);
386
- perpStaticInfos[perpIdx].S2Symbol = slot.contract_id + "-USD";
385
+ const quote = perpStaticInfos[perpIdx].S2Symbol.split("-").at(1);
386
+ this.symbolList.set(slot.slot, slot.contract_id); // slot e.g. SP07 now maps to NHL_..etc (w/o -quote-base suffix)
387
+ perpStaticInfos[perpIdx].S2Symbol = slot.contract_id + "-" + quote; // SP07-X -> NHL_...-USD
388
+
387
389
  // set expiry for this symbol
390
+ const slotExpiry = Number(new Date(slot.expiry));
388
391
  this.indexSymbol.set(slot.slot, {
389
- indexSymbol: slot.slot + "-USD:" + slot.chain_id,
390
- expiry: Number(slot.expiry),
392
+ indexSymbol: slot.slot + "-" + quote + ":" + slot.chain_id,
393
+ // shouldn't be here, but jic force a refetch in a minute
394
+ expiry: isNaN(slotExpiry) ? Date.now() / 1_000 + 60 : slotExpiry,
391
395
  });
392
396
  }
393
397
 
@@ -745,8 +749,8 @@ export default class PerpetualDataHandler {
745
749
  */
746
750
  public static async getPerpetualStaticInfo(
747
751
  _proxyContract: IPerpetualManager,
748
- nestedPerpetualIDs: Array<Array<number>>,
749
- symbolList: Map<string, string>,
752
+ nestedPerpetualIDs: ReadonlyArray<ReadonlyArray<number>>,
753
+ symbolList: ReadonlyMap<string, string>,
750
754
  overrides?: Overrides
751
755
  ): Promise<Array<PerpetualStaticInfo>> {
752
756
  // flatten perpetual ids into chunks
@@ -796,7 +800,10 @@ export default class PerpetualDataHandler {
796
800
  * @param {number[][]} nestedIDs The array of nested arrays to chunk.
797
801
  * @returns {number[][]} An array of subarrays, each containing `chunkSize` or fewer elements from `nestedIDs`.
798
802
  */
799
- public static nestedIDsToChunks(chunkSize: number, nestedIDs: Array<Array<number>>): Array<Array<number>> {
803
+ public static nestedIDsToChunks(
804
+ chunkSize: number,
805
+ nestedIDs: ReadonlyArray<ReadonlyArray<number>>
806
+ ): Array<Array<number>> {
800
807
  const chunkIDs: number[][] = [];
801
808
  let currentChunk: number[] = [];
802
809
  for (let k = 0; k < nestedIDs.length; k++) {
@@ -827,7 +834,7 @@ export default class PerpetualDataHandler {
827
834
  fromIdx: number,
828
835
  toIdx: number,
829
836
  _proxyContract: IPerpetualManager,
830
- _symbolList: Map<string, string>,
837
+ _symbolList: ReadonlyMap<string, string>,
831
838
  overrides?: Overrides
832
839
  ): Promise<LiquidityPoolData[]> {
833
840
  if (fromIdx < 1) {
@@ -1479,9 +1486,9 @@ export default class PerpetualDataHandler {
1479
1486
  */
1480
1487
  protected static _calculateLiquidationPrice(
1481
1488
  symbol: string,
1482
- traderState: bigint[],
1489
+ traderState: readonly bigint[],
1483
1490
  S2: number,
1484
- symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>,
1491
+ symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>,
1485
1492
  isPredMarket: boolean
1486
1493
  ): [number, number, number, number, number] {
1487
1494
  const idx_availableCashCC = 2;
@@ -1545,7 +1552,7 @@ export default class PerpetualDataHandler {
1545
1552
  */
1546
1553
  protected static symbolToPerpetualId(
1547
1554
  symbol: string,
1548
- symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>
1555
+ symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>
1549
1556
  ): number {
1550
1557
  let id = symbolToPerpStaticInfo.get(symbol)?.id;
1551
1558
  if (id == undefined) {
@@ -1570,7 +1577,7 @@ export default class PerpetualDataHandler {
1570
1577
  return symbols[0] + "-" + symbols[1] + "-" + symbols[2];
1571
1578
  }
1572
1579
 
1573
- private static _getByValue(map: any, searchValue: any, valueField: any) {
1580
+ private static _getByValue<K>(map: ReadonlyMap<K, any>, searchValue: any, valueField: string | number) {
1574
1581
  for (let [key, value] of map.entries()) {
1575
1582
  if (value[valueField] === searchValue) {
1576
1583
  return key;
@@ -1579,7 +1586,7 @@ export default class PerpetualDataHandler {
1579
1586
  return undefined;
1580
1587
  }
1581
1588
 
1582
- protected static _getBySingleValue(map: Map<string, string>, searchValue: string) {
1589
+ protected static _getBySingleValue(map: ReadonlyMap<string, string>, searchValue: string) {
1583
1590
  for (let [key, value] of map.entries()) {
1584
1591
  if (searchValue.startsWith(value)) {
1585
1592
  return key;
@@ -1595,7 +1602,7 @@ export default class PerpetualDataHandler {
1595
1602
  | IPerpetualOrder.OrderStructOutput
1596
1603
  | IClientOrder.ClientOrderStruct
1597
1604
  | IClientOrder.ClientOrderStructOutput,
1598
- symbolToPerpInfoMap: Map<string, PerpetualStaticInfo>
1605
+ symbolToPerpInfoMap: ReadonlyMap<string, PerpetualStaticInfo>
1599
1606
  ): Order {
1600
1607
  // find symbol of perpetual id
1601
1608
  const symbol = PerpetualDataHandler._getByValue(symbolToPerpInfoMap, Number(order.iPerpetualId), "id");
@@ -1657,7 +1664,7 @@ export default class PerpetualDataHandler {
1657
1664
  protected static toSmartContractOrder(
1658
1665
  order: Order,
1659
1666
  traderAddr: string,
1660
- perpStaticInfo: Map<string, PerpetualStaticInfo>
1667
+ perpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>
1661
1668
  ): SmartContractOrder {
1662
1669
  // this revers if order is invalid
1663
1670
  PerpetualDataHandler.checkOrder(order, perpStaticInfo);
@@ -1749,7 +1756,7 @@ export default class PerpetualDataHandler {
1749
1756
  public static toClientOrder(
1750
1757
  order: Order,
1751
1758
  traderAddr: string,
1752
- perpStaticInfo: Map<string, PerpetualStaticInfo>,
1759
+ perpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>,
1753
1760
  parentChildIds?: [string, string]
1754
1761
  ): ClientOrder {
1755
1762
  const scOrder = PerpetualDataHandler.toSmartContractOrder(order, traderAddr, perpStaticInfo);
@@ -1763,7 +1770,7 @@ export default class PerpetualDataHandler {
1763
1770
  */
1764
1771
  public static fromClientOrder(
1765
1772
  obOrder: IClientOrder.ClientOrderStruct | IClientOrder.ClientOrderStructOutput,
1766
- perpStaticInfo: Map<string, PerpetualStaticInfo>
1773
+ perpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>
1767
1774
  ): Order {
1768
1775
  const scOrder = {
1769
1776
  flags: obOrder.flags,
@@ -1849,7 +1856,10 @@ export default class PerpetualDataHandler {
1849
1856
  return flag;
1850
1857
  }
1851
1858
 
1852
- protected static _getLotSize(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): number {
1859
+ protected static _getLotSize(
1860
+ symbol: string,
1861
+ symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>
1862
+ ): number {
1853
1863
  let perpInfo: PerpetualStaticInfo | undefined = symbolToPerpStaticInfo.get(symbol);
1854
1864
  if (perpInfo == undefined) {
1855
1865
  throw new Error(`no info for perpetual ${symbol}`);
@@ -1859,7 +1869,7 @@ export default class PerpetualDataHandler {
1859
1869
 
1860
1870
  protected static _getMinimalPositionSize(
1861
1871
  symbol: string,
1862
- symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>
1872
+ symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>
1863
1873
  ): number {
1864
1874
  return 10 * PerpetualDataHandler._getLotSize(symbol, symbolToPerpStaticInfo);
1865
1875
  }
@@ -2110,7 +2120,7 @@ export default class PerpetualDataHandler {
2110
2120
  protected static checkOrder(
2111
2121
  order: Order,
2112
2122
  // traderAccount: MarginAccount,
2113
- perpStaticInfo: Map<string, PerpetualStaticInfo>
2123
+ perpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>
2114
2124
  ) {
2115
2125
  if (!perpStaticInfo.has(order.symbol)) {
2116
2126
  throw new Error(`Perpetual not found for symbol ${order.symbol}`);
@@ -2367,7 +2377,7 @@ export default class PerpetualDataHandler {
2367
2377
  * @param info Perpetual static info
2368
2378
  * @returns Index symbol
2369
2379
  */
2370
- public static getIndexSymbol(_symbolList: Map<string, string>, info: PerpetualStaticInfo) {
2380
+ public static getIndexSymbol(_symbolList: ReadonlyMap<string, string>, info: PerpetualStaticInfo) {
2371
2381
  if (PerpetualDataHandler.isPredictionMarketStatic(info)) {
2372
2382
  const slot = PerpetualDataHandler._getBySingleValue(_symbolList, info.S2Symbol);
2373
2383
  if (slot !== undefined) {
@@ -2458,7 +2468,7 @@ export default class PerpetualDataHandler {
2458
2468
  * @returns Array of [perpetual Id, perpetual state (string)]
2459
2469
  */
2460
2470
  public static extractStatesFromStaticInfos(
2461
- perpInfos: Map<string, PerpetualStaticInfo> | PerpetualStaticInfo[] | undefined
2471
+ perpInfos: ReadonlyMap<string, PerpetualStaticInfo> | readonly PerpetualStaticInfo[] | undefined
2462
2472
  ) {
2463
2473
  const states: [number, string][] = [];
2464
2474
  perpInfos?.forEach(({ state, id }, _keyOrIndex) => states.push([id, state]));
package/src/priceFeeds.ts CHANGED
@@ -232,7 +232,7 @@ export default class PriceFeeds {
232
232
  continue;
233
233
  }
234
234
  // only report ema if corresponding symbol is requested
235
- const keyNoEma = key.substring(0, key.length - 5);
235
+ const keyNoEma = key.substring(0, key.length - 4);
236
236
  if (!symbols.includes(keyNoEma)) {
237
237
  continue;
238
238
  }
package/src/utils.ts CHANGED
@@ -83,7 +83,7 @@ export function fromBytes4HexString(s: string): string {
83
83
  * @param {Object} mapping List of symbol and clean symbol pairs, e.g. [{symbol: "MATIC", cleanSymbol: "MATC"}, ...]
84
84
  * @returns {string} User friendly currency symbol, e.g. "MATIC"
85
85
  */
86
- export function contractSymbolToSymbol(s: string, mapping: Map<string, string>): string {
86
+ export function contractSymbolToSymbol(s: string, mapping: ReadonlyMap<string, string>): string {
87
87
  let shortCCY = fromBytes4HexString(s);
88
88
  // assume CCY is already short if not in the mapping file
89
89
  let longCCY = mapping.get(shortCCY) ?? shortCCY;
@@ -96,7 +96,7 @@ export function contractSymbolToSymbol(s: string, mapping: Map<string, string>):
96
96
  * @param {Object} mapping List of symbol and clean symbol pairs, e.g. [{symbol: "MATIC", cleanSymbol: "MATC"}, ...]
97
97
  * @returns {Buffer} Buffer that can be used with smart contract to identify tokens
98
98
  */
99
- export function symbolToContractSymbol(s: string, mapping: Map<string, string>): Buffer {
99
+ export function symbolToContractSymbol(s: string, mapping: ReadonlyMap<string, string>): Buffer {
100
100
  let shortCCY: string | undefined = undefined;
101
101
  for (let [k, v] of mapping) {
102
102
  if (v == s) {
@@ -114,7 +114,7 @@ export function symbolToContractSymbol(s: string, mapping: Map<string, string>):
114
114
  * @param {Object} mapping list of symbol and clean symbol pairs, e.g. [{symbol: "MATIC", cleanSymbol: "MATC"}, ...]
115
115
  * @returns {string} long format e.g. MATIC. if not found the element is ""
116
116
  */
117
- export function symbol4BToLongSymbol(s: string, mapping: Map<string, string>): string {
117
+ export function symbol4BToLongSymbol(s: string, mapping: ReadonlyMap<string, string>): string {
118
118
  let ccy = s.split("-");
119
119
  let longCCY = "";
120
120
  for (let k = 0; k < ccy.length; k++) {
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const D8X_SDK_VERSION = "2.6.22";
1
+ export const D8X_SDK_VERSION = "2.6.23";