@d8x/perpetuals-sdk 2.6.7 → 2.6.9

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 (223) hide show
  1. package/dist/cjs/config/priceFeedConfig.json +51 -8
  2. package/dist/cjs/marketData.js +1 -0
  3. package/dist/cjs/marketData.js.map +1 -1
  4. package/dist/cjs/perpetualDataHandler.d.ts +2 -1
  5. package/dist/cjs/perpetualDataHandler.js +50 -20
  6. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  7. package/dist/cjs/version.d.ts +1 -1
  8. package/dist/cjs/version.js +1 -1
  9. package/dist/esm/config/priceFeedConfig.json +51 -8
  10. package/dist/esm/marketData.js +1 -0
  11. package/dist/esm/marketData.js.map +1 -1
  12. package/dist/esm/perpetualDataHandler.d.ts +2 -1
  13. package/dist/esm/perpetualDataHandler.js +51 -21
  14. package/dist/esm/perpetualDataHandler.js.map +1 -1
  15. package/dist/esm/version.d.ts +1 -1
  16. package/dist/esm/version.js +1 -1
  17. package/doc/d8x-perpetuals-sdk.md +225 -71
  18. package/doc/perpetualDataHandler.md +49 -7
  19. package/package.json +1 -1
  20. package/src/config/priceFeedConfig.json +51 -9
  21. package/src/marketData.ts +1 -0
  22. package/src/perpetualDataHandler.ts +49 -20
  23. package/src/version.ts +1 -1
  24. package/dist/cjs/abi/AMMPerpLogic.json +0 -580
  25. package/dist/cjs/abi/BeaconProxy.json +0 -71
  26. package/dist/cjs/abi/IPerpetualManager copy.json +0 -5599
  27. package/dist/cjs/abi/IPerpetualMarginViewLogic.json +0 -286
  28. package/dist/cjs/abi/Maintainer.json +0 -774
  29. package/dist/cjs/abi/MockToken.json +0 -347
  30. package/dist/cjs/abi/MockUSD.json +0 -413
  31. package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
  32. package/dist/cjs/abi/WeETH.json +0 -310
  33. package/dist/cjs/abi-zkevm/IPerpetualManager.json +0 -5366
  34. package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
  35. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
  36. package/dist/cjs/contracts/AMMPerpLogic.d.ts +0 -303
  37. package/dist/cjs/contracts/AMMPerpLogic.js +0 -3
  38. package/dist/cjs/contracts/AMMPerpLogic.js.map +0 -1
  39. package/dist/cjs/contracts/BeaconProxy.d.ts +0 -63
  40. package/dist/cjs/contracts/BeaconProxy.js +0 -3
  41. package/dist/cjs/contracts/BeaconProxy.js.map +0 -1
  42. package/dist/cjs/contracts/IPerpetualManagerCopy.d.ts +0 -3223
  43. package/dist/cjs/contracts/IPerpetualManagerCopy.js +0 -3
  44. package/dist/cjs/contracts/IPerpetualManagerCopy.js.map +0 -1
  45. package/dist/cjs/contracts/IPerpetualMarginViewLogic.d.ts +0 -183
  46. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js +0 -3
  47. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js.map +0 -1
  48. package/dist/cjs/contracts/Maintainer.d.ts +0 -799
  49. package/dist/cjs/contracts/Maintainer.js +0 -3
  50. package/dist/cjs/contracts/Maintainer.js.map +0 -1
  51. package/dist/cjs/contracts/MockToken.d.ts +0 -263
  52. package/dist/cjs/contracts/MockToken.js +0 -3
  53. package/dist/cjs/contracts/MockToken.js.map +0 -1
  54. package/dist/cjs/contracts/MockUSD.d.ts +0 -186
  55. package/dist/cjs/contracts/MockUSD.js +0 -3
  56. package/dist/cjs/contracts/MockUSD.js.map +0 -1
  57. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
  58. package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
  59. package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
  60. package/dist/cjs/contracts/WeETH.d.ts +0 -503
  61. package/dist/cjs/contracts/WeETH.js +0 -3
  62. package/dist/cjs/contracts/WeETH.js.map +0 -1
  63. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.d.ts +0 -452
  64. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js +0 -598
  65. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js.map +0 -1
  66. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  67. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +0 -89
  68. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +0 -1
  69. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.d.ts +0 -4358
  70. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js +0 -5617
  71. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js.map +0 -1
  72. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +0 -221
  73. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js +0 -304
  74. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +0 -1
  75. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
  76. package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
  77. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
  78. package/dist/cjs/contracts/factories/MockToken__factory.d.ts +0 -273
  79. package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
  80. package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
  81. package/dist/cjs/contracts/factories/MockUSD__factory.d.ts +0 -320
  82. package/dist/cjs/contracts/factories/MockUSD__factory.js +0 -431
  83. package/dist/cjs/contracts/factories/MockUSD__factory.js.map +0 -1
  84. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  85. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
  86. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  87. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
  88. package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
  89. package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
  90. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  91. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
  92. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  93. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  94. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
  95. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  96. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  97. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
  98. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  99. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  100. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
  101. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  102. package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
  103. package/dist/cjs/contracts/factories/lean0/index.js +0 -15
  104. package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
  105. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  106. package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
  107. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
  108. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
  109. package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
  110. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
  111. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  112. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
  113. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  114. package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
  115. package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
  116. package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
  117. package/dist/cjs/contracts/lean0/index.d.ts +0 -4
  118. package/dist/cjs/contracts/lean0/index.js +0 -3
  119. package/dist/cjs/contracts/lean0/index.js.map +0 -1
  120. package/dist/esm/abi/AMMPerpLogic.json +0 -580
  121. package/dist/esm/abi/BeaconProxy.json +0 -71
  122. package/dist/esm/abi/IPerpetualManager copy.json +0 -5599
  123. package/dist/esm/abi/IPerpetualMarginViewLogic.json +0 -286
  124. package/dist/esm/abi/Maintainer.json +0 -774
  125. package/dist/esm/abi/MockToken.json +0 -347
  126. package/dist/esm/abi/MockUSD.json +0 -413
  127. package/dist/esm/abi/UUPSUpgradeable.json +0 -104
  128. package/dist/esm/abi/WeETH.json +0 -310
  129. package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
  130. package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
  131. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
  132. package/dist/esm/abi/lean0/ShareToken.json +0 -438
  133. package/dist/esm/abi-zkevm/IPerpetualManager.json +0 -5366
  134. package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
  135. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
  136. package/dist/esm/contracts/AMMPerpLogic.d.ts +0 -303
  137. package/dist/esm/contracts/AMMPerpLogic.js +0 -2
  138. package/dist/esm/contracts/AMMPerpLogic.js.map +0 -1
  139. package/dist/esm/contracts/BeaconProxy.d.ts +0 -63
  140. package/dist/esm/contracts/BeaconProxy.js +0 -2
  141. package/dist/esm/contracts/BeaconProxy.js.map +0 -1
  142. package/dist/esm/contracts/IPerpetualManagerCopy.d.ts +0 -3223
  143. package/dist/esm/contracts/IPerpetualManagerCopy.js +0 -2
  144. package/dist/esm/contracts/IPerpetualManagerCopy.js.map +0 -1
  145. package/dist/esm/contracts/IPerpetualMarginViewLogic.d.ts +0 -183
  146. package/dist/esm/contracts/IPerpetualMarginViewLogic.js +0 -2
  147. package/dist/esm/contracts/IPerpetualMarginViewLogic.js.map +0 -1
  148. package/dist/esm/contracts/Maintainer.d.ts +0 -799
  149. package/dist/esm/contracts/Maintainer.js +0 -2
  150. package/dist/esm/contracts/Maintainer.js.map +0 -1
  151. package/dist/esm/contracts/MockToken.d.ts +0 -263
  152. package/dist/esm/contracts/MockToken.js +0 -2
  153. package/dist/esm/contracts/MockToken.js.map +0 -1
  154. package/dist/esm/contracts/MockUSD.d.ts +0 -186
  155. package/dist/esm/contracts/MockUSD.js +0 -2
  156. package/dist/esm/contracts/MockUSD.js.map +0 -1
  157. package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
  158. package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
  159. package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
  160. package/dist/esm/contracts/WeETH.d.ts +0 -503
  161. package/dist/esm/contracts/WeETH.js +0 -2
  162. package/dist/esm/contracts/WeETH.js.map +0 -1
  163. package/dist/esm/contracts/factories/AMMPerpLogic__factory.d.ts +0 -452
  164. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js +0 -594
  165. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js.map +0 -1
  166. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  167. package/dist/esm/contracts/factories/BeaconProxy__factory.js +0 -85
  168. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +0 -1
  169. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.d.ts +0 -4358
  170. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js +0 -5613
  171. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js.map +0 -1
  172. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +0 -221
  173. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js +0 -300
  174. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +0 -1
  175. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
  176. package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
  177. package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
  178. package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
  179. package/dist/esm/contracts/factories/MockToken__factory.js +0 -361
  180. package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
  181. package/dist/esm/contracts/factories/MockUSD__factory.d.ts +0 -320
  182. package/dist/esm/contracts/factories/MockUSD__factory.js +0 -427
  183. package/dist/esm/contracts/factories/MockUSD__factory.js.map +0 -1
  184. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  185. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
  186. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  187. package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
  188. package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
  189. package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
  190. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  191. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
  192. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  193. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  194. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
  195. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  196. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  197. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
  198. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  199. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  200. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
  201. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  202. package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
  203. package/dist/esm/contracts/factories/lean0/index.js +0 -8
  204. package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
  205. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  206. package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
  207. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
  208. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
  209. package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
  210. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
  211. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  212. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
  213. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  214. package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
  215. package/dist/esm/contracts/lean0/ShareToken.js +0 -2
  216. package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
  217. package/dist/esm/contracts/lean0/index.d.ts +0 -4
  218. package/dist/esm/contracts/lean0/index.js +0 -2
  219. package/dist/esm/contracts/lean0/index.js.map +0 -1
  220. package/src/contracts/IPerpetualMarginViewLogic.ts +0 -347
  221. package/src/contracts/MockUSD.ts +0 -378
  222. package/src/contracts/factories/IPerpetualMarginViewLogic__factory.ts +0 -313
  223. package/src/contracts/factories/MockUSD__factory.ts +0 -430
@@ -3,17 +3,59 @@
3
3
  "network": "mainnet",
4
4
  "ids": [
5
5
  {
6
- "symbol": "NHL0-USD:84532",
7
- "id": "0x2405d85c6214b64105d84223f02048215b882aa4abeea54c4a3840ed5b6340e3",
8
- "type": "polymarket"
6
+ "symbol": "FED25BPS-USD",
7
+ "id": "0x199326ac3436c8a01052155eec8d85c5092c9c3c56e0f3590c5d96d89dceec2c",
8
+ "type": "polymarket",
9
+ "origin": "0xa11a9c66032cbe8c607bf1b21591f65dfee9d5eb65d73cc8ad5009c1f9826fa3"
9
10
  },
10
11
  {
11
- "symbol": "PUSD-USD",
12
- "id": "0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
13
- "type": "pyth",
14
- "origin": "Crypto.USDT/USD"
12
+ "symbol": "TRMPUKR-USD",
13
+ "id": "0xbbad52c7a569d729424c917dd3181149d59b5f4fc3115d510b91197c4368c22a",
14
+ "type": "polymarket",
15
+ "origin": "0xa5ac4cdcfff44ddfb0d332d33575f766414465786fb7d4350782db40d5e9da11"
16
+ },
17
+ {
18
+ "symbol": "MANCITY-USD",
19
+ "id": "0x99949191c4996cfb75262a15ee1ecc16c1cd07b8f0561694db177636b58321d4",
20
+ "type": "polymarket",
21
+ "origin": "0x586e7ee86609bd6ea5b71bddff7ea7877100c03d22ece5a336baa98aadacdb1a"
22
+ },
23
+ {
24
+ "symbol": "BTCNOV90-USD",
25
+ "id": "0x3c711064722ff96741641b5b54f055874bbfb478042888fd4121a145c852060b",
26
+ "type": "polymarket",
27
+ "origin": "0x952e8d6dcd67c7d28720491a798e96a2729a57598cb04b4de6f6c2e6f75fd12b"
28
+ },
29
+ {
30
+ "symbol": "BTC24100-USD",
31
+ "id": "0x8f7dd95917a1bcf74cd5964c9a779c267d38d4c6a87e8c7a66fae7fe30ada9a6",
32
+ "type": "polymarket",
33
+ "origin": "0x9c66114d2dfe2139325cc7a408a5cd5d2e73b55d919e2141b3a0ed83fc15895d"
34
+ },
35
+ {
36
+ "symbol": "MCLAREN24-USD",
37
+ "id": "0xa54c8b0fca58649775eece82cf6bf4aea245a431bdff4dfba40f01a17e4c1248",
38
+ "type": "polymarket",
39
+ "origin": "0x6154df852fac6dd9748b97883c03220bb267ad2be71fa215c8df1431995db74d"
40
+ },
41
+ {
42
+ "symbol": "HARRIS24P-USD",
43
+ "id": "0x2f06f5a323466c1ad9a9a8afb19a21dd3fe0f39853a16ae58637086e8ff5838d",
44
+ "type": "polymarket",
45
+ "origin": "0x265366ede72d73e137b2b9095a6cdc9be6149290caa295738a95e3d881ad0865"
46
+ },
47
+ {
48
+ "symbol": "SUPBWL49-USD",
49
+ "id": "0x7eea0b94fc1916efdd031978918abba566b9aef7f12b3d5a5b0f7141fd8e0b33",
50
+ "type": "polymarket",
51
+ "origin": "0x67e68c5eee8ac767dd1177de8c653b20642fee48f0f2a56d784e4856b130749d"
52
+ },
53
+ {
54
+ "symbol": "INSOUT2-USD",
55
+ "id": "0x6ec8114a0dba99a037c7122c93a68f2ab905c3e42e2b82e1ce659aef96de58f2",
56
+ "type": "polymarket",
57
+ "origin": "0x1ab07117f9f698f28490f57754d6fe5309374230c95867a7eba572892a11d710"
15
58
  },
16
-
17
59
  {
18
60
  "symbol": "USDC-USD",
19
61
  "id": "0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
@@ -194,7 +236,7 @@
194
236
  {
195
237
  "type": "polymarket",
196
238
  "endpoints": [],
197
- "writeEndpoints": ["https://odin-sport.quantena.org"]
239
+ "writeEndpoints": ["https://odin-poly.d8x.xyz"]
198
240
  }
199
241
  ]
200
242
  },
package/src/marketData.ts CHANGED
@@ -210,6 +210,7 @@ export default class MarketData extends PerpetualDataHandler {
210
210
  if (overrides) {
211
211
  ({ rpcURL, ...overrides } = overrides);
212
212
  }
213
+ await this.refreshSymbols();
213
214
  const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
214
215
  return await MarketData._exchangeInfo(
215
216
  new Contract(this.proxyAddr, this.config.proxyABI!, provider),
@@ -92,6 +92,7 @@ import {
92
92
  fromBytes4,
93
93
  fromBytes4HexString,
94
94
  loadConfigAbis,
95
+ sleepForSec,
95
96
  symbol4BToLongSymbol,
96
97
  to4Chars,
97
98
  } from "./utils";
@@ -147,6 +148,7 @@ export default class PerpetualDataHandler {
147
148
  // each pool-array contains perpetual ids
148
149
  protected nestedPerpetualIDs: number[][];
149
150
 
151
+ private refreshLocked:boolean=false;
150
152
  /**
151
153
  * Constructor
152
154
  * @param {NodeSDKConfig} config Configuration object, see
@@ -173,25 +175,38 @@ export default class PerpetualDataHandler {
173
175
  }
174
176
 
175
177
  protected async initContractsAndData(signerOrProvider: Signer | Provider, overrides?: Overrides) {
176
- this.signerOrProvider = signerOrProvider;
177
- // check network
178
- let network: Network;
179
- try {
180
- if (signerOrProvider.provider) {
181
- network = await signerOrProvider.provider.getNetwork();
182
- } else {
183
- throw new Error("Signer has no provider"); // TODO: check
178
+ let count=0;
179
+ while(this.refreshLocked) {
180
+ await sleepForSec(1)
181
+ if (count==25) {
182
+ throw new Error("could not obtain lock for init");
184
183
  }
185
- } catch (error: any) {
186
- console.error(error);
187
- throw new Error(`Unable to connect to network.`);
184
+ count += 1;
188
185
  }
189
- if (network.chainId !== this.chainId) {
190
- throw new Error(`Provider: chain id ${network.chainId} does not match config (${this.chainId})`);
186
+ this.refreshLocked=true;
187
+ try {
188
+ this.signerOrProvider = signerOrProvider;
189
+ // check network
190
+ let network: Network;
191
+ try {
192
+ if (signerOrProvider.provider) {
193
+ network = await signerOrProvider.provider.getNetwork();
194
+ } else {
195
+ throw new Error("Signer has no provider"); // TODO: check
196
+ }
197
+ } catch (error: any) {
198
+ console.error(error);
199
+ throw new Error(`Unable to connect to network.`);
200
+ }
201
+ if (network.chainId !== this.chainId) {
202
+ throw new Error(`Provider: chain id ${network.chainId} does not match config (${this.chainId})`);
203
+ }
204
+ this.proxyContract = IPerpetualManager__factory.connect(this.proxyAddr, signerOrProvider);
205
+ this.multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, this.signerOrProvider);
206
+ await this._fillSymbolMaps({ ...overrides, chainId: this.chainId });
207
+ } finally {
208
+ this.refreshLocked=false;
191
209
  }
192
- this.proxyContract = IPerpetualManager__factory.connect(this.proxyAddr, signerOrProvider);
193
- this.multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, this.signerOrProvider);
194
- await this._fillSymbolMaps({ ...overrides, chainId: this.chainId });
195
210
  }
196
211
 
197
212
  /**
@@ -2351,11 +2366,25 @@ export default class PerpetualDataHandler {
2351
2366
  /**
2352
2367
  * Refreshes symbol mappings if at least one prediction market is expired
2353
2368
  */
2354
- public async refreshSymbols(): Promise<void> {
2369
+ public async refreshSymbols(force:boolean=false): Promise<void> {
2355
2370
  const infos = [...this.indexSymbol.values()];
2356
- if (!infos || infos.some(({ expiry }) => expiry < Date.now())) {
2357
- // refresh
2358
- await this._fillSymbolMaps({ chainId: this.chainId });
2371
+ let count=0;
2372
+ // wait for lock
2373
+ while (this.refreshLocked) {
2374
+ if (infos.length || count > 10) {
2375
+ return;
2376
+ }
2377
+ await sleepForSec(1);
2378
+ count++;
2379
+ }
2380
+ this.refreshLocked = true;
2381
+ try {
2382
+ if (!infos || force || infos.some(({ expiry }) => expiry < Date.now())) {
2383
+ // refresh
2384
+ await this._fillSymbolMaps({ chainId: this.chainId });
2385
+ }
2386
+ } finally {
2387
+ this.refreshLocked = false;
2359
2388
  }
2360
2389
  }
2361
2390
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const D8X_SDK_VERSION = "2.6.7";
1
+ export const D8X_SDK_VERSION = "2.6.9";