@d8x/perpetuals-sdk 1.3.7 → 2.0.1-alpha

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 (286) hide show
  1. package/dist/cjs/accountTrade.d.ts +9 -9
  2. package/dist/cjs/accountTrade.js +19 -17
  3. package/dist/cjs/accountTrade.js.map +1 -1
  4. package/dist/cjs/brokerTool.d.ts +11 -12
  5. package/dist/cjs/brokerTool.js +7 -8
  6. package/dist/cjs/brokerTool.js.map +1 -1
  7. package/dist/cjs/config/priceFeedConfig.json +16 -2
  8. package/dist/cjs/config/symbolList.json +2 -1
  9. package/dist/cjs/constants.d.ts +12 -12
  10. package/dist/cjs/constants.js +14 -14
  11. package/dist/cjs/constants.js.map +1 -1
  12. package/dist/cjs/contracts/ERC20.d.ts +146 -171
  13. package/dist/cjs/contracts/IPerpetualManager.d.ts +2534 -2225
  14. package/dist/cjs/contracts/IPyth.d.ts +181 -184
  15. package/dist/cjs/contracts/LimitOrderBook.d.ts +373 -401
  16. package/dist/cjs/contracts/LimitOrderBookBeacon.d.ts +53 -104
  17. package/dist/cjs/contracts/LimitOrderBookFactory.d.ts +129 -185
  18. package/dist/cjs/contracts/MockTokenSwap.d.ts +109 -169
  19. package/dist/cjs/contracts/Multicall3.d.ts +147 -211
  20. package/dist/cjs/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
  21. package/dist/cjs/contracts/OracleFactory.d.ts +258 -238
  22. package/dist/cjs/contracts/PerpetualManagerProxy.d.ts +1099 -891
  23. package/dist/cjs/contracts/RedStoneAbi.d.ts +369 -488
  24. package/dist/cjs/contracts/ShareToken.d.ts +232 -285
  25. package/dist/cjs/contracts/common.d.ts +40 -11
  26. package/dist/cjs/contracts/factories/ERC20__factory.d.ts +2 -3
  27. package/dist/cjs/contracts/factories/ERC20__factory.js +3 -3
  28. package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
  29. package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
  30. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +3 -3
  31. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  32. package/dist/cjs/contracts/factories/IPyth__factory.d.ts +2 -3
  33. package/dist/cjs/contracts/factories/IPyth__factory.js +3 -3
  34. package/dist/cjs/contracts/factories/IPyth__factory.js.map +1 -1
  35. package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
  36. package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js +3 -3
  37. package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
  38. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
  39. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +3 -3
  40. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  41. package/dist/cjs/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
  42. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +3 -3
  43. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  44. package/dist/cjs/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
  45. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +3 -3
  46. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  47. package/dist/cjs/contracts/factories/Multicall3__factory.d.ts +11 -9
  48. package/dist/cjs/contracts/factories/Multicall3__factory.js +7 -10
  49. package/dist/cjs/contracts/factories/Multicall3__factory.js.map +1 -1
  50. package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
  51. package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js +3 -3
  52. package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
  53. package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +2 -3
  54. package/dist/cjs/contracts/factories/OracleFactory__factory.js +3 -3
  55. package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -1
  56. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
  57. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js +3 -3
  58. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  59. package/dist/cjs/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
  60. package/dist/cjs/contracts/factories/RedStoneAbi__factory.js +3 -3
  61. package/dist/cjs/contracts/factories/RedStoneAbi__factory.js.map +1 -1
  62. package/dist/cjs/contracts/factories/ShareToken__factory.d.ts +2 -3
  63. package/dist/cjs/contracts/factories/ShareToken__factory.js +3 -3
  64. package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
  65. package/dist/cjs/d8XMath.d.ts +28 -16
  66. package/dist/cjs/d8XMath.js +70 -50
  67. package/dist/cjs/d8XMath.js.map +1 -1
  68. package/dist/cjs/liquidatorTool.d.ts +8 -8
  69. package/dist/cjs/liquidatorTool.js +5 -7
  70. package/dist/cjs/liquidatorTool.js.map +1 -1
  71. package/dist/cjs/liquidityProviderTool.d.ts +4 -5
  72. package/dist/cjs/liquidityProviderTool.js.map +1 -1
  73. package/dist/cjs/marketData.d.ts +27 -28
  74. package/dist/cjs/marketData.js +65 -69
  75. package/dist/cjs/marketData.js.map +1 -1
  76. package/dist/cjs/nodeSDKTypes.d.ts +35 -37
  77. package/dist/cjs/onChainPxFeed.d.ts +2 -2
  78. package/dist/cjs/onChainPxFeed.js +3 -3
  79. package/dist/cjs/onChainPxFeed.js.map +1 -1
  80. package/dist/cjs/onChainPxFeedAngle.d.ts +2 -2
  81. package/dist/cjs/onChainPxFeedAngle.js +4 -5
  82. package/dist/cjs/onChainPxFeedAngle.js.map +1 -1
  83. package/dist/cjs/onChainPxFeedRedStone.js +2 -2
  84. package/dist/cjs/onChainPxFeedRedStone.js.map +1 -1
  85. package/dist/cjs/orderExecutorTool.d.ts +7 -9
  86. package/dist/cjs/orderExecutorTool.js +52 -62
  87. package/dist/cjs/orderExecutorTool.js.map +1 -1
  88. package/dist/cjs/perpetualDataHandler.d.ts +44 -35
  89. package/dist/cjs/perpetualDataHandler.js +194 -170
  90. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  91. package/dist/cjs/perpetualEventHandler.d.ts +4 -5
  92. package/dist/cjs/perpetualEventHandler.js +2 -2
  93. package/dist/cjs/perpetualEventHandler.js.map +1 -1
  94. package/dist/cjs/polyMktsPxFeed.d.ts +14 -0
  95. package/dist/cjs/polyMktsPxFeed.js +59 -0
  96. package/dist/cjs/polyMktsPxFeed.js.map +1 -0
  97. package/dist/cjs/priceFeeds.d.ts +2 -0
  98. package/dist/cjs/priceFeeds.js +44 -9
  99. package/dist/cjs/priceFeeds.js.map +1 -1
  100. package/dist/cjs/referralCodeSigner.d.ts +1 -1
  101. package/dist/cjs/referralCodeSigner.js +12 -16
  102. package/dist/cjs/referralCodeSigner.js.map +1 -1
  103. package/dist/cjs/traderDigests.d.ts +2 -1
  104. package/dist/cjs/traderDigests.js +9 -11
  105. package/dist/cjs/traderDigests.js.map +1 -1
  106. package/dist/cjs/traderInterface.d.ts +8 -9
  107. package/dist/cjs/traderInterface.js +40 -23
  108. package/dist/cjs/traderInterface.js.map +1 -1
  109. package/dist/cjs/utils.d.ts +2 -3
  110. package/dist/cjs/utils.js +1 -2
  111. package/dist/cjs/utils.js.map +1 -1
  112. package/dist/cjs/version.d.ts +1 -1
  113. package/dist/cjs/version.js +1 -1
  114. package/dist/cjs/version.js.map +1 -1
  115. package/dist/cjs/writeAccessHandler.d.ts +7 -9
  116. package/dist/cjs/writeAccessHandler.js +13 -16
  117. package/dist/cjs/writeAccessHandler.js.map +1 -1
  118. package/dist/esm/accountTrade.d.ts +9 -9
  119. package/dist/esm/accountTrade.js +19 -17
  120. package/dist/esm/accountTrade.js.map +1 -1
  121. package/dist/esm/brokerTool.d.ts +11 -12
  122. package/dist/esm/brokerTool.js +2 -3
  123. package/dist/esm/brokerTool.js.map +1 -1
  124. package/dist/esm/config/priceFeedConfig.json +16 -2
  125. package/dist/esm/config/symbolList.json +2 -1
  126. package/dist/esm/constants.d.ts +12 -12
  127. package/dist/esm/constants.js +13 -13
  128. package/dist/esm/constants.js.map +1 -1
  129. package/dist/esm/contracts/ERC20.d.ts +146 -171
  130. package/dist/esm/contracts/IPerpetualManager.d.ts +2534 -2225
  131. package/dist/esm/contracts/IPyth.d.ts +181 -184
  132. package/dist/esm/contracts/LimitOrderBook.d.ts +373 -401
  133. package/dist/esm/contracts/LimitOrderBookBeacon.d.ts +53 -104
  134. package/dist/esm/contracts/LimitOrderBookFactory.d.ts +129 -185
  135. package/dist/esm/contracts/MockTokenSwap.d.ts +109 -169
  136. package/dist/esm/contracts/Multicall3.d.ts +147 -211
  137. package/dist/esm/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
  138. package/dist/esm/contracts/OracleFactory.d.ts +258 -238
  139. package/dist/esm/contracts/PerpetualManagerProxy.d.ts +1099 -891
  140. package/dist/esm/contracts/RedStoneAbi.d.ts +369 -488
  141. package/dist/esm/contracts/ShareToken.d.ts +232 -285
  142. package/dist/esm/contracts/common.d.ts +40 -11
  143. package/dist/esm/contracts/factories/ERC20__factory.d.ts +2 -3
  144. package/dist/esm/contracts/factories/ERC20__factory.js +4 -4
  145. package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
  146. package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
  147. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +4 -4
  148. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  149. package/dist/esm/contracts/factories/IPyth__factory.d.ts +2 -3
  150. package/dist/esm/contracts/factories/IPyth__factory.js +4 -4
  151. package/dist/esm/contracts/factories/IPyth__factory.js.map +1 -1
  152. package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
  153. package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js +4 -4
  154. package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
  155. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
  156. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +4 -4
  157. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  158. package/dist/esm/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
  159. package/dist/esm/contracts/factories/LimitOrderBook__factory.js +4 -4
  160. package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  161. package/dist/esm/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
  162. package/dist/esm/contracts/factories/MockTokenSwap__factory.js +4 -4
  163. package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  164. package/dist/esm/contracts/factories/Multicall3__factory.d.ts +11 -9
  165. package/dist/esm/contracts/factories/Multicall3__factory.js +8 -11
  166. package/dist/esm/contracts/factories/Multicall3__factory.js.map +1 -1
  167. package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
  168. package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js +4 -4
  169. package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
  170. package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +2 -3
  171. package/dist/esm/contracts/factories/OracleFactory__factory.js +4 -4
  172. package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -1
  173. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
  174. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js +4 -4
  175. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  176. package/dist/esm/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
  177. package/dist/esm/contracts/factories/RedStoneAbi__factory.js +4 -4
  178. package/dist/esm/contracts/factories/RedStoneAbi__factory.js.map +1 -1
  179. package/dist/esm/contracts/factories/ShareToken__factory.d.ts +2 -3
  180. package/dist/esm/contracts/factories/ShareToken__factory.js +4 -4
  181. package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
  182. package/dist/esm/d8XMath.d.ts +28 -16
  183. package/dist/esm/d8XMath.js +67 -49
  184. package/dist/esm/d8XMath.js.map +1 -1
  185. package/dist/esm/liquidatorTool.d.ts +8 -8
  186. package/dist/esm/liquidatorTool.js +5 -7
  187. package/dist/esm/liquidatorTool.js.map +1 -1
  188. package/dist/esm/liquidityProviderTool.d.ts +4 -5
  189. package/dist/esm/liquidityProviderTool.js.map +1 -1
  190. package/dist/esm/marketData.d.ts +27 -28
  191. package/dist/esm/marketData.js +55 -59
  192. package/dist/esm/marketData.js.map +1 -1
  193. package/dist/esm/nodeSDKTypes.d.ts +35 -37
  194. package/dist/esm/onChainPxFeed.d.ts +2 -2
  195. package/dist/esm/onChainPxFeed.js +3 -3
  196. package/dist/esm/onChainPxFeed.js.map +1 -1
  197. package/dist/esm/onChainPxFeedAngle.d.ts +2 -2
  198. package/dist/esm/onChainPxFeedAngle.js +2 -3
  199. package/dist/esm/onChainPxFeedAngle.js.map +1 -1
  200. package/dist/esm/onChainPxFeedRedStone.js +1 -1
  201. package/dist/esm/onChainPxFeedRedStone.js.map +1 -1
  202. package/dist/esm/orderExecutorTool.d.ts +7 -9
  203. package/dist/esm/orderExecutorTool.js +38 -48
  204. package/dist/esm/orderExecutorTool.js.map +1 -1
  205. package/dist/esm/perpetualDataHandler.d.ts +44 -35
  206. package/dist/esm/perpetualDataHandler.js +137 -113
  207. package/dist/esm/perpetualDataHandler.js.map +1 -1
  208. package/dist/esm/perpetualEventHandler.d.ts +4 -5
  209. package/dist/esm/perpetualEventHandler.js +2 -2
  210. package/dist/esm/perpetualEventHandler.js.map +1 -1
  211. package/dist/esm/polyMktsPxFeed.d.ts +14 -0
  212. package/dist/esm/polyMktsPxFeed.js +56 -0
  213. package/dist/esm/polyMktsPxFeed.js.map +1 -0
  214. package/dist/esm/priceFeeds.d.ts +2 -0
  215. package/dist/esm/priceFeeds.js +44 -9
  216. package/dist/esm/priceFeeds.js.map +1 -1
  217. package/dist/esm/referralCodeSigner.d.ts +1 -1
  218. package/dist/esm/referralCodeSigner.js +6 -10
  219. package/dist/esm/referralCodeSigner.js.map +1 -1
  220. package/dist/esm/traderDigests.d.ts +2 -1
  221. package/dist/esm/traderDigests.js +2 -4
  222. package/dist/esm/traderDigests.js.map +1 -1
  223. package/dist/esm/traderInterface.d.ts +8 -9
  224. package/dist/esm/traderInterface.js +42 -25
  225. package/dist/esm/traderInterface.js.map +1 -1
  226. package/dist/esm/utils.d.ts +2 -3
  227. package/dist/esm/utils.js +1 -2
  228. package/dist/esm/utils.js.map +1 -1
  229. package/dist/esm/version.d.ts +1 -1
  230. package/dist/esm/version.js +1 -1
  231. package/dist/esm/version.js.map +1 -1
  232. package/dist/esm/writeAccessHandler.d.ts +7 -9
  233. package/dist/esm/writeAccessHandler.js +5 -8
  234. package/dist/esm/writeAccessHandler.js.map +1 -1
  235. package/package.json +7 -17
  236. package/src/accountTrade.ts +32 -34
  237. package/src/brokerTool.ts +17 -20
  238. package/src/config/priceFeedConfig.json +16 -2
  239. package/src/config/symbolList.json +2 -1
  240. package/src/constants.ts +13 -13
  241. package/src/contracts/ERC20.ts +236 -350
  242. package/src/contracts/IPerpetualManager.ts +3359 -5050
  243. package/src/contracts/IPyth.ts +272 -409
  244. package/src/contracts/LimitOrderBook.ts +503 -779
  245. package/src/contracts/LimitOrderBookBeacon.ts +123 -171
  246. package/src/contracts/LimitOrderBookFactory.ts +263 -332
  247. package/src/contracts/MockTokenSwap.ts +237 -275
  248. package/src/contracts/Multicall3.ts +208 -374
  249. package/src/contracts/OnDemandOracleUpgradeable.ts +569 -782
  250. package/src/contracts/OracleFactory.ts +410 -538
  251. package/src/contracts/PerpetualManagerProxy.ts +1898 -1426
  252. package/src/contracts/RedStoneAbi.ts +486 -986
  253. package/src/contracts/ShareToken.ts +376 -557
  254. package/src/contracts/common.ts +108 -21
  255. package/src/contracts/factories/ERC20__factory.ts +4 -5
  256. package/src/contracts/factories/IPerpetualManager__factory.ts +4 -5
  257. package/src/contracts/factories/IPyth__factory.ts +4 -5
  258. package/src/contracts/factories/LimitOrderBookBeacon__factory.ts +5 -6
  259. package/src/contracts/factories/LimitOrderBookFactory__factory.ts +5 -6
  260. package/src/contracts/factories/LimitOrderBook__factory.ts +4 -5
  261. package/src/contracts/factories/MockTokenSwap__factory.ts +4 -5
  262. package/src/contracts/factories/Multicall3__factory.ts +21 -19
  263. package/src/contracts/factories/OnDemandOracleUpgradeable__factory.ts +5 -6
  264. package/src/contracts/factories/OracleFactory__factory.ts +4 -5
  265. package/src/contracts/factories/PerpetualManagerProxy__factory.ts +5 -6
  266. package/src/contracts/factories/RedStoneAbi__factory.ts +4 -8
  267. package/src/contracts/factories/ShareToken__factory.ts +4 -8
  268. package/src/d8XMath.ts +78 -57
  269. package/src/liquidatorTool.ts +12 -15
  270. package/src/liquidityProviderTool.ts +7 -5
  271. package/src/marketData.ts +110 -121
  272. package/src/nodeSDKTypes.ts +51 -38
  273. package/src/onChainPxFeed.ts +4 -4
  274. package/src/onChainPxFeedAngle.ts +5 -7
  275. package/src/onChainPxFeedRedStone.ts +1 -3
  276. package/src/orderExecutorTool.ts +100 -108
  277. package/src/perpetualDataHandler.ts +209 -172
  278. package/src/perpetualEventHandler.ts +16 -17
  279. package/src/polyMktsPxFeed.ts +71 -0
  280. package/src/priceFeeds.ts +46 -10
  281. package/src/referralCodeSigner.ts +6 -10
  282. package/src/traderDigests.ts +8 -5
  283. package/src/traderInterface.ts +61 -33
  284. package/src/utils.ts +3 -4
  285. package/src/version.ts +1 -1
  286. package/src/writeAccessHandler.ts +26 -17
@@ -1,6 +1,4 @@
1
- import { BigNumber } from "@ethersproject/bignumber";
2
- import { HashZero } from "@ethersproject/constants";
3
- import { StaticJsonRpcProvider } from "@ethersproject/providers";
1
+ import { JsonRpcProvider, ZeroHash, } from "ethers";
4
2
  import { BUY_SIDE, MULTICALL_ADDRESS, OrderStatus, SELL_SIDE, ZERO_ADDRESS } from "./constants";
5
3
  import { IPyth__factory, LimitOrderBook__factory, Multicall3__factory } from "./contracts";
6
4
  import { ABK64x64ToFloat, floatToABK64x64 } from "./d8XMath";
@@ -112,7 +110,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
112
110
  if (overrides) {
113
111
  ({ rpcURL, splitTx, maxGasLimit, ...overrides } = overrides);
114
112
  }
115
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
113
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL);
116
114
  if (typeof executorAddr == "undefined") {
117
115
  executorAddr = this.traderAddr;
118
116
  }
@@ -150,9 +148,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
150
148
  ]);
151
149
  value = this.PRICE_UPDATE_FEE_GWEI * submission.timestamps.length;
152
150
  }
153
- if (overrides?.nonce !== undefined) {
154
- const nonce = await overrides.nonce;
155
- overrides.nonce = BigNumber.from(nonce).add(nonceInc);
151
+ if (overrides?.nonce != undefined) {
152
+ overrides.nonce = overrides.nonce + nonceInc;
156
153
  }
157
154
  if (overrides?.gasLimit !== undefined) {
158
155
  overrides.gasLimit = await overrides.gasLimit;
@@ -164,7 +161,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
164
161
  value = await value;
165
162
  }
166
163
  const unsignedTx = {
167
- to: this.getOrderBookContract(symbol).address,
164
+ to: this.getOrderBookContract(symbol).target,
168
165
  from: this.traderAddr,
169
166
  nonce: overrides?.nonce,
170
167
  data: txData,
@@ -176,22 +173,15 @@ export default class OrderExecutorTool extends WriteAccessHandler {
176
173
  };
177
174
  // no gas limit was specified, explicitly estimate
178
175
  if (!overrides?.gasLimit) {
179
- // given gas price might be conservative, which leads to a lower a gas estimate
180
- //-> compensate with larger buffer
181
176
  let gasLimit = await this.signer
182
177
  .estimateGas(unsignedTx)
183
- .then((gas) => gas.mul(1500).div(1000))
178
+ .then((gas) => (gas * 1500n) / 1000n)
184
179
  .catch((_e) => undefined);
185
180
  if (!gasLimit) {
186
181
  // gas estimate failed - txn would probably revert, double check (and possibly re-throw):
187
- overrides = {
188
- ...overrides,
189
- gasLimit: maxGasLimit ?? this.gasLimit,
190
- value: unsignedTx.value,
191
- };
192
- await this.getOrderBookContract(symbol, provider).callStatic.executeOrders(orderIds, executorAddr, submission.priceFeedVaas, submission.timestamps, overrides);
193
- // it worked - use fallback
194
- gasLimit = BigNumber.from(maxGasLimit ?? this.gasLimit);
182
+ overrides = { gasLimit: maxGasLimit ?? this.gasLimit, value: unsignedTx.value, ...overrides };
183
+ await this.getOrderBookContract(symbol).executeOrders.staticCall(orderIds, executorAddr, submission.priceFeedVaas, submission.timestamps, overrides);
184
+ gasLimit = BigInt(maxGasLimit ?? this.gasLimit);
195
185
  }
196
186
  unsignedTx.gasLimit = gasLimit;
197
187
  }
@@ -226,23 +216,23 @@ export default class OrderExecutorTool extends WriteAccessHandler {
226
216
  if (overrides) {
227
217
  ({ rpcURL, ...overrides } = overrides);
228
218
  }
229
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
219
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
230
220
  const multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, provider);
231
221
  const calls = [
232
222
  // 0: orderOfDigest
233
223
  {
234
- target: ob.address,
224
+ target: ob.target,
235
225
  allowFailure: false,
236
226
  callData: ob.interface.encodeFunctionData("orderOfDigest", [id]),
237
227
  },
238
228
  // 1: orderDependency
239
229
  {
240
- target: ob.address,
230
+ target: ob.target,
241
231
  allowFailure: false,
242
232
  callData: ob.interface.encodeFunctionData("orderDependency", [id]),
243
233
  },
244
234
  ];
245
- const encodedResults = await multicall.callStatic.aggregate3(calls, overrides || {});
235
+ const encodedResults = await multicall.aggregate3.staticCall(calls, overrides || {});
246
236
  if (encodedResults.some(({ success }) => !success)) {
247
237
  return undefined;
248
238
  }
@@ -289,7 +279,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
289
279
  if (overrides) {
290
280
  ({ rpcURL, ...overrides } = overrides);
291
281
  }
292
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
282
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
293
283
  const fS2S3 = indexPrices.map((x) => floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x));
294
284
  const perpId = this.getPerpIdFromSymbol(order.symbol);
295
285
  const fAmount = floatToABK64x64(order.quantity * (order.side == BUY_SIDE ? 1 : -1));
@@ -297,43 +287,43 @@ export default class OrderExecutorTool extends WriteAccessHandler {
297
287
  const proxyCalls = [
298
288
  // 0: trade amount price
299
289
  {
300
- target: this.proxyContract.address,
290
+ target: this.proxyContract.target,
301
291
  allowFailure: true,
302
292
  callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
303
293
  },
304
294
  // 1: amm state to get the mark price
305
295
  {
306
- target: this.proxyContract.address,
296
+ target: this.proxyContract.target,
307
297
  allowFailure: true,
308
298
  callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
309
299
  },
310
300
  // 2: order status to see if it's still open
311
301
  {
312
- target: orderBook.address,
302
+ target: orderBook.target,
313
303
  allowFailure: true,
314
304
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
315
305
  },
316
306
  // 3: block timestamp
317
307
  {
318
- target: this.multicall.address,
308
+ target: this.multicall.target,
319
309
  allowFailure: false,
320
310
  callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
321
311
  },
322
312
  ];
323
313
  const hasParent = order.parentChildOrderIds != undefined &&
324
- order.parentChildOrderIds[0] == HashZero &&
325
- order.parentChildOrderIds[1] != HashZero;
314
+ order.parentChildOrderIds[0] == ZeroHash &&
315
+ order.parentChildOrderIds[1] != ZeroHash;
326
316
  if (hasParent) {
327
317
  // 4: order has a parent, one more call needed:
328
318
  proxyCalls.push({
329
- target: orderBook.address,
319
+ target: orderBook.target,
330
320
  allowFailure: true,
331
321
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds[1]]),
332
322
  });
333
323
  }
334
324
  // multicall
335
325
  const multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, provider);
336
- const encodedResults = await multicall.callStatic.aggregate3(proxyCalls, overrides || {});
326
+ const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
337
327
  // order status
338
328
  let iOrderStatus;
339
329
  if (encodedResults[2].success) {
@@ -379,8 +369,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
379
369
  }
380
370
  const orderPrice = ABK64x64ToFloat(fOrderPrice);
381
371
  // block timestamp
382
- const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[3].returnData)[0].toNumber();
383
- blockTimestamp = Math.max(ts + 1, blockTimestamp ?? 0);
372
+ const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[3].returnData)[0];
373
+ blockTimestamp = Math.max(Number(ts) + 1, blockTimestamp ?? 0);
384
374
  return this._isTradeable(order, orderPrice, markPrice, blockTimestamp, this.symbolToPerpStaticInfo);
385
375
  }
386
376
  /**
@@ -446,7 +436,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
446
436
  if (overrides) {
447
437
  ({ rpcURL, ...overrides } = overrides);
448
438
  }
449
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
439
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
450
440
  const fS2S3 = [indexPrices[0], indexPrices[1]].map((x) => floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x));
451
441
  const perpId = this.getPerpIdFromSymbol(orders[0].symbol);
452
442
  const fAmounts = orders.map((order) => floatToABK64x64(order.quantity * (order.side == BUY_SIDE ? 1 : -1)));
@@ -456,27 +446,27 @@ export default class OrderExecutorTool extends WriteAccessHandler {
456
446
  let proxyCalls = [
457
447
  // 0: amm state to get the mark price
458
448
  {
459
- target: this.proxyContract.address,
449
+ target: this.proxyContract.target,
460
450
  allowFailure: false,
461
451
  callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
462
452
  },
463
453
  // 1: block timestamp
464
454
  {
465
- target: this.multicall.address,
455
+ target: this.multicall.target,
466
456
  allowFailure: false,
467
457
  callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
468
458
  },
469
459
  ];
470
460
  // status calls
471
461
  const statusCalls = orderIds.map((orderId) => ({
472
- target: orderBook.address,
462
+ target: orderBook.target,
473
463
  allowFailure: false,
474
464
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
475
465
  }));
476
466
  proxyCalls = proxyCalls.concat(statusCalls);
477
467
  // price calls
478
468
  const priceCalls = fAmounts.map((fAmount) => ({
479
- target: this.proxyContract.address,
469
+ target: this.proxyContract.target,
480
470
  allowFailure: false,
481
471
  callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
482
472
  }));
@@ -484,24 +474,24 @@ export default class OrderExecutorTool extends WriteAccessHandler {
484
474
  // possibly also get parent orders' status
485
475
  const parentStatusCalls = orders
486
476
  .filter((order) => order.parentChildOrderIds != undefined &&
487
- order.parentChildOrderIds[0] == HashZero &&
488
- order.parentChildOrderIds[1] != HashZero)
477
+ order.parentChildOrderIds[0] == ZeroHash &&
478
+ order.parentChildOrderIds[1] != ZeroHash)
489
479
  .map((order) => {
490
480
  return {
491
- target: orderBook.address,
481
+ target: orderBook.target,
492
482
  allowFailure: false,
493
483
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds[1]]),
494
484
  };
495
485
  });
496
486
  proxyCalls = proxyCalls.concat(parentStatusCalls);
497
487
  // --- multicall ---
498
- const encodedResults = await multicall.callStatic.aggregate3(proxyCalls, overrides || {});
488
+ const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
499
489
  // mark price
500
490
  const ammState = this.proxyContract.interface.decodeFunctionResult("getAMMState", encodedResults[0].returnData)[0];
501
491
  const markPrice = indexPrices[0] * (1 + ABK64x64ToFloat(ammState[8]));
502
492
  // block timestamp
503
- const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[1].returnData)[0].toNumber();
504
- blockTimestamp = Math.max(ts, blockTimestamp ?? 0);
493
+ const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[1].returnData)[0];
494
+ blockTimestamp = Math.max(Number(ts), blockTimestamp ?? 0);
505
495
  // order status
506
496
  const isOrderOpen = encodedResults.slice(2, 2 + orders.length).map((encodedResult) => {
507
497
  const iOrderStatus = orderBook.interface.decodeFunctionResult("getOrderStatus", encodedResult.returnData)[0];
@@ -518,8 +508,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
518
508
  for (let i = 0; i < orders.length; i++) {
519
509
  const order = orders[i];
520
510
  const hasParent = order.parentChildOrderIds != undefined &&
521
- order.parentChildOrderIds[0] == HashZero &&
522
- order.parentChildOrderIds[1] != HashZero;
511
+ order.parentChildOrderIds[0] == ZeroHash &&
512
+ order.parentChildOrderIds[1] != ZeroHash;
523
513
  if (hasParent) {
524
514
  const iParentStatus = orderBook.interface.decodeFunctionResult("getOrderStatus", encodedResults[idxInResults].returnData)[0];
525
515
  isParentReady[i] = iParentStatus == OrderStatus.EXECUTED || iParentStatus == OrderStatus.CANCELED;
@@ -602,7 +592,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
602
592
  if (this.signer == null) {
603
593
  throw Error("no wallet initialized. Use createProxyInstance().");
604
594
  }
605
- return await this.signer.getTransactionCount(blockTag);
595
+ return await this.signer.getNonce(blockTag);
606
596
  }
607
597
  }
608
598
  //# sourceMappingURL=orderExecutorTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderExecutorTool.js","sourceRoot":"","sources":["../../src/orderExecutorTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orderExecutorTool.js","sourceRoot":"","sources":["../../src/orderExecutorTool.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
- import { Signer } from "@ethersproject/abstract-signer";
2
- import { BigNumber } from "@ethersproject/bignumber";
3
- import { CallOverrides, Contract, ContractInterface } from "@ethersproject/contracts";
4
- import { Provider } from "@ethersproject/providers";
5
- import { type LimitOrderBook, type LimitOrderBookFactory, type Multicall3 } from "./contracts";
6
- import { type IPerpetualOrder } from "./contracts/IPerpetualManager";
7
- import { type IClientOrder } from "./contracts/LimitOrderBook";
1
+ import { BaseContract, Contract, Interface, Network, Overrides, Provider, Signer } from "ethers";
2
+ import { LimitOrderBook, LimitOrderBookFactory, Multicall3 } from "./contracts";
3
+ import { IClientOrder, IPerpetualOrder } from "./contracts/LimitOrderBook";
8
4
  import { TypeSafeOrder, type ClientOrder, type MarginAccount, type NodeSDKConfig, type Order, type PerpetualState, type PerpetualStaticInfo, type PoolStaticInfo, type PriceFeedSubmission, type SmartContractOrder, type PerpetualData, LiquidityPoolData, SettlementConfig } from "./nodeSDKTypes";
9
5
  import PriceFeeds from "./priceFeeds";
10
6
  /**
@@ -20,16 +16,17 @@ export default class PerpetualDataHandler {
20
16
  protected settlementConfig: SettlementConfig;
21
17
  config: NodeSDKConfig;
22
18
  protected symbolToTokenAddrMap: Map<string, string>;
23
- chainId: number;
19
+ chainId: bigint;
20
+ network: Network;
24
21
  protected proxyContract: Contract | null;
25
- protected proxyABI: ContractInterface;
22
+ protected proxyABI: Interface;
26
23
  protected proxyAddr: string;
27
24
  protected oraclefactoryAddr: string | undefined;
28
25
  protected lobFactoryContract: LimitOrderBookFactory | null;
29
- protected lobFactoryABI: ContractInterface;
26
+ protected lobFactoryABI: Interface;
30
27
  protected lobFactoryAddr: string | undefined;
31
- protected lobABI: ContractInterface;
32
- protected shareTokenABI: ContractInterface;
28
+ protected lobABI: Interface;
29
+ protected shareTokenABI: Interface;
33
30
  protected multicall: Multicall3 | null;
34
31
  protected nodeURL: string;
35
32
  protected provider: Provider | null;
@@ -43,20 +40,26 @@ export default class PerpetualDataHandler {
43
40
  * PerpetualDataHandler.readSDKConfig.
44
41
  */
45
42
  constructor(config: NodeSDKConfig);
46
- protected initContractsAndData(signerOrProvider: Signer | Provider, overrides?: CallOverrides): Promise<void>;
43
+ protected initContractsAndData(signerOrProvider: Signer | Provider, overrides?: Overrides): Promise<void>;
47
44
  /**
48
45
  * Returns the order-book contract for the symbol if found or fails
49
46
  * @param symbol symbol of the form ETH-USD-MATIC
50
47
  * @returns order book contract for the perpetual
51
48
  */
52
- getOrderBookContract(symbol: string, provider?: Provider): Contract & LimitOrderBook;
49
+ getOrderBookContract(symbol: string, signerOrProvider?: Signer | Provider): LimitOrderBook;
50
+ /**
51
+ * Returns the order-book contract for the symbol if found or fails
52
+ * @param symbol symbol of the form ETH-USD-MATIC
53
+ * @returns order book contract for the perpetual
54
+ */
55
+ getOrderBookAddress(symbol: string): string | undefined;
53
56
  /**
54
57
  * Get perpetuals for the given ids from onchain
55
58
  * @param ids perpetual ids
56
59
  * @param overrides optional
57
60
  * @returns array of PerpetualData converted into decimals
58
61
  */
59
- getPerpetuals(ids: number[], overrides?: CallOverrides): Promise<PerpetualData[]>;
62
+ getPerpetuals(ids: number[], overrides?: Overrides): Promise<PerpetualData[]>;
60
63
  /**
61
64
  * Get liquidity pools data
62
65
  * @param fromIdx starting index (>=1)
@@ -64,13 +67,13 @@ export default class PerpetualDataHandler {
64
67
  * @param overrides optional
65
68
  * @returns array of LiquidityPoolData converted into decimals
66
69
  */
67
- getLiquidityPools(fromIdx: number, toIdx: number, overrides?: CallOverrides): Promise<LiquidityPoolData[]>;
70
+ getLiquidityPools(fromIdx: number, toIdx: number, overrides?: Overrides): Promise<LiquidityPoolData[]>;
68
71
  /**
69
72
  * Called when initializing. This function fills this.symbolToTokenAddrMap,
70
73
  * and this.nestedPerpetualIDs and this.symbolToPerpStaticInfo
71
74
  *
72
75
  */
73
- protected _fillSymbolMaps(overrides?: CallOverrides): Promise<void>;
76
+ protected _fillSymbolMaps(overrides?: Overrides): Promise<void>;
74
77
  /**
75
78
  * Initializes settlement currency for all pools by
76
79
  * completing this.poolStaticInfos with settlement currency info
@@ -173,7 +176,7 @@ export default class PerpetualDataHandler {
173
176
  * @param {Map<string, string>} symbolList mapping of symbols to convert long-format <-> blockchain-format
174
177
  * @returns array with PerpetualStaticInfo for each perpetual
175
178
  */
176
- static getPerpetualStaticInfo(_proxyContract: Contract, nestedPerpetualIDs: Array<Array<number>>, symbolList: Map<string, string>, overrides?: CallOverrides): Promise<Array<PerpetualStaticInfo>>;
179
+ static getPerpetualStaticInfo(_proxyContract: Contract, nestedPerpetualIDs: Array<Array<number>>, symbolList: Map<string, string>, overrides?: Overrides): Promise<Array<PerpetualStaticInfo>>;
177
180
  /**
178
181
  * Breaks up an array of nested arrays into chunks of a specified size.
179
182
  * @param {number} chunkSize The size of each chunk.
@@ -189,7 +192,7 @@ export default class PerpetualDataHandler {
189
192
  * @param overrides optional
190
193
  * @returns array of PerpetualData converted into decimals
191
194
  */
192
- static _getLiquidityPools(fromIdx: number, toIdx: number, _proxyContract: Contract, _symbolList: Map<string, string>, overrides?: CallOverrides): Promise<LiquidityPoolData[]>;
195
+ static _getLiquidityPools(fromIdx: number, toIdx: number, _proxyContract: Contract, _symbolList: Map<string, string>, overrides?: Overrides): Promise<LiquidityPoolData[]>;
193
196
  /**
194
197
  * Query perpetuals
195
198
  * @param ids perpetual ids
@@ -198,14 +201,14 @@ export default class PerpetualDataHandler {
198
201
  * @param overrides optional
199
202
  * @returns array of PerpetualData converted into decimals
200
203
  */
201
- static _getPerpetuals(ids: number[], _proxyContract: Contract, _symbolList: Map<string, string>, overrides?: CallOverrides): Promise<PerpetualData[]>;
202
- static getPoolStaticInfo(_proxyContract: Contract, overrides?: CallOverrides): Promise<{
204
+ static _getPerpetuals(ids: number[], _proxyContract: Contract, _symbolList: Map<string, string>, overrides?: Overrides): Promise<PerpetualData[]>;
205
+ static getPoolStaticInfo(_proxyContract: Contract, overrides?: Overrides): Promise<{
203
206
  nestedPerpetualIDs: Array<Array<number>>;
204
207
  poolShareTokenAddr: Array<string>;
205
208
  poolMarginTokenAddr: Array<string>;
206
209
  oracleFactory: string;
207
210
  }>;
208
- static buildMarginAccountFromState(symbol: string, traderState: BigNumber[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _pxS2S3: [number, number]): MarginAccount;
211
+ static buildMarginAccountFromState(symbol: string, traderState: bigint[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _pxS2S3: [number, number]): MarginAccount;
209
212
  /**
210
213
  * Get trader state from the blockchain and parse into a human-readable margin account
211
214
  * @param traderAddr Trader address
@@ -216,7 +219,7 @@ export default class PerpetualDataHandler {
216
219
  * @param overrides Optional overrides for eth_call
217
220
  * @returns A Margin account
218
221
  */
219
- static getMarginAccount(traderAddr: string, symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, _pxS2S3: [number, number], overrides?: CallOverrides): Promise<MarginAccount>;
222
+ static getMarginAccount(traderAddr: string, symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, _pxS2S3: [number, number], overrides?: Overrides): Promise<MarginAccount>;
220
223
  /**
221
224
  * All the orders in the order book for a given symbol that are currently open.
222
225
  * @param {string} symbol Symbol of the form ETH-USD-MATIC.
@@ -237,7 +240,7 @@ export default class PerpetualDataHandler {
237
240
  *
238
241
  * @returns Array with all open orders and their IDs.
239
242
  */
240
- getAllOpenOrders(symbol: string, overrides?: CallOverrides): Promise<[Order[], string[], string[]]>;
243
+ getAllOpenOrders(symbol: string, overrides?: Overrides): Promise<[Order[], string[], string[]]>;
241
244
  /**
242
245
  * Total number of limit orders for this symbol, excluding those that have been cancelled/removed.
243
246
  * @param {string} symbol Symbol of the form ETH-USD-MATIC.
@@ -258,7 +261,7 @@ export default class PerpetualDataHandler {
258
261
  *
259
262
  * @returns {number} Number of open orders.
260
263
  */
261
- numberOfOpenOrders(symbol: string, overrides?: CallOverrides & {
264
+ numberOfOpenOrders(symbol: string, overrides?: Overrides & {
262
265
  rpcURL?: string;
263
266
  }): Promise<number>;
264
267
  /**
@@ -284,7 +287,7 @@ export default class PerpetualDataHandler {
284
287
  *
285
288
  * @returns Array of orders and corresponding order IDs
286
289
  */
287
- pollLimitOrders(symbol: string, numElements: number, startAfter?: string | number, overrides?: CallOverrides & {
290
+ pollLimitOrders(symbol: string, numElements: number, startAfter?: string | number, overrides?: Overrides & {
288
291
  rpcURL?: string;
289
292
  }): Promise<[Order[], string[], string[]]>;
290
293
  /**
@@ -298,11 +301,11 @@ export default class PerpetualDataHandler {
298
301
  * @param overrides Optional eth_call overrides
299
302
  * @returns List of margin accounts
300
303
  */
301
- static getMarginAccounts(traderAddrs: string[], symbols: string[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _multicall: Multicall3, _proxyContract: Contract, _pxS2S3s: number[][], overrides?: CallOverrides): Promise<MarginAccount[]>;
302
- protected static _queryPerpetualPrice(symbol: string, tradeAmount: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?: CallOverrides): Promise<number>;
303
- protected static _queryPerpetualMarkPrice(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?: CallOverrides): Promise<number>;
304
- protected static _queryPerpetualState(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number, boolean, boolean], overrides?: CallOverrides): Promise<PerpetualState>;
305
- protected static _parseAMMState(symbol: string, ammState: BigNumber[], indexPrices: [number, number, boolean, boolean], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): PerpetualState;
304
+ static getMarginAccounts(traderAddrs: string[], symbols: string[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _multicall: Multicall3, _proxyContract: Contract, _pxS2S3s: number[][], overrides?: Overrides): Promise<MarginAccount[]>;
305
+ protected static _queryPerpetualPrice(symbol: string, tradeAmount: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?: Overrides): Promise<number>;
306
+ protected static _queryPerpetualMarkPrice(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?: Overrides): Promise<number>;
307
+ protected static _queryPerpetualState(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number, boolean, boolean], overrides?: Overrides): Promise<PerpetualState>;
308
+ protected static _parseAMMState(symbol: string, ammState: bigint[], indexPrices: [number, number, boolean, boolean], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): PerpetualState;
306
309
  /**
307
310
  * Liquidation price
308
311
  * @param symbol symbol of the form BTC-USD-MATIC
@@ -311,7 +314,7 @@ export default class PerpetualDataHandler {
311
314
  * @param symbolToPerpStaticInfo mapping symbol->PerpStaticInfo
312
315
  * @returns liquidation mark-price, corresponding collateral/quote conversion
313
316
  */
314
- protected static _calculateLiquidationPrice(symbol: string, traderState: BigNumber[], S2: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): [number, number, number, number, number];
317
+ protected static _calculateLiquidationPrice(symbol: string, traderState: bigint[], S2: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): [number, number, number, number, number];
315
318
  /**
316
319
  * Finds the perpetual id for a symbol of the form
317
320
  * <base>-<quote>-<collateral>. The function first converts the
@@ -408,12 +411,12 @@ export default class PerpetualDataHandler {
408
411
  */
409
412
  static getAvailableConfigs(): Set<string>;
410
413
  /**
411
- * Get the ABI of a function in a given contract
414
+ * Get the ABI of a function in a given contract. Undefined if it doesn't exist.
412
415
  * @param contract A contract instance, e.g. this.proxyContract
413
416
  * @param functionName Name of the function whose ABI we want
414
417
  * @returns Function ABI as a single JSON string
415
418
  */
416
- protected static _getABIFromContract(contract: Contract, functionName: string): string;
419
+ protected static _getABIFromContract(contract: BaseContract, functionName: string): string | undefined;
417
420
  /**
418
421
  * Gets the pool index (starting at 0 in exchangeInfo, not ID!) corresponding to a given symbol.
419
422
  * @param symbol Symbol of the form ETH-USD-MATIC
@@ -449,7 +452,7 @@ export default class PerpetualDataHandler {
449
452
  * @param contract name of contract: proxy|lob|sharetoken
450
453
  * @returns ABI for the requested contract
451
454
  */
452
- getABI(contract: string): ContractInterface | undefined;
455
+ getABI(contract: string): Interface | undefined;
453
456
  /**
454
457
  * Performs basic validity checks on a given order
455
458
  * @param order Order struct
@@ -463,4 +466,10 @@ export default class PerpetualDataHandler {
463
466
  * @returns Order that can be submitted to the corresponding LOB via ethers v6 or viem
464
467
  */
465
468
  static fromClientOrderToTypeSafeOrder(order: ClientOrder): TypeSafeOrder;
469
+ /**
470
+ * Determines whether a given perpetual represents a predictive market
471
+ * @param staticInfo Perpetual static info
472
+ * @returns True if this is a predictive market
473
+ */
474
+ static isPredictiveMarket(staticInfo: PerpetualStaticInfo): boolean;
466
475
  }