@d8x/perpetuals-sdk 1.3.6 → 2.0.0-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 (271) 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/constants.d.ts +11 -12
  8. package/dist/cjs/constants.js +12 -13
  9. package/dist/cjs/constants.js.map +1 -1
  10. package/dist/cjs/contracts/ERC20.d.ts +146 -171
  11. package/dist/cjs/contracts/IPerpetualManager.d.ts +2534 -2225
  12. package/dist/cjs/contracts/IPyth.d.ts +181 -184
  13. package/dist/cjs/contracts/LimitOrderBook.d.ts +373 -401
  14. package/dist/cjs/contracts/LimitOrderBookBeacon.d.ts +53 -104
  15. package/dist/cjs/contracts/LimitOrderBookFactory.d.ts +129 -185
  16. package/dist/cjs/contracts/MockTokenSwap.d.ts +109 -169
  17. package/dist/cjs/contracts/Multicall3.d.ts +147 -211
  18. package/dist/cjs/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
  19. package/dist/cjs/contracts/OracleFactory.d.ts +258 -238
  20. package/dist/cjs/contracts/PerpetualManagerProxy.d.ts +1099 -891
  21. package/dist/cjs/contracts/RedStoneAbi.d.ts +369 -488
  22. package/dist/cjs/contracts/ShareToken.d.ts +232 -285
  23. package/dist/cjs/contracts/common.d.ts +40 -11
  24. package/dist/cjs/contracts/factories/ERC20__factory.d.ts +2 -3
  25. package/dist/cjs/contracts/factories/ERC20__factory.js +3 -3
  26. package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
  27. package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
  28. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +3 -3
  29. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  30. package/dist/cjs/contracts/factories/IPyth__factory.d.ts +2 -3
  31. package/dist/cjs/contracts/factories/IPyth__factory.js +3 -3
  32. package/dist/cjs/contracts/factories/IPyth__factory.js.map +1 -1
  33. package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
  34. package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js +3 -3
  35. package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
  36. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
  37. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +3 -3
  38. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  39. package/dist/cjs/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
  40. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +3 -3
  41. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  42. package/dist/cjs/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
  43. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +3 -3
  44. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  45. package/dist/cjs/contracts/factories/Multicall3__factory.d.ts +11 -9
  46. package/dist/cjs/contracts/factories/Multicall3__factory.js +7 -10
  47. package/dist/cjs/contracts/factories/Multicall3__factory.js.map +1 -1
  48. package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
  49. package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js +3 -3
  50. package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
  51. package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +2 -3
  52. package/dist/cjs/contracts/factories/OracleFactory__factory.js +3 -3
  53. package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -1
  54. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
  55. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js +3 -3
  56. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  57. package/dist/cjs/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
  58. package/dist/cjs/contracts/factories/RedStoneAbi__factory.js +3 -3
  59. package/dist/cjs/contracts/factories/RedStoneAbi__factory.js.map +1 -1
  60. package/dist/cjs/contracts/factories/ShareToken__factory.d.ts +2 -3
  61. package/dist/cjs/contracts/factories/ShareToken__factory.js +3 -3
  62. package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
  63. package/dist/cjs/d8XMath.d.ts +16 -16
  64. package/dist/cjs/d8XMath.js +48 -49
  65. package/dist/cjs/d8XMath.js.map +1 -1
  66. package/dist/cjs/liquidatorTool.d.ts +8 -8
  67. package/dist/cjs/liquidatorTool.js +5 -7
  68. package/dist/cjs/liquidatorTool.js.map +1 -1
  69. package/dist/cjs/liquidityProviderTool.d.ts +4 -5
  70. package/dist/cjs/liquidityProviderTool.js.map +1 -1
  71. package/dist/cjs/marketData.d.ts +27 -28
  72. package/dist/cjs/marketData.js +65 -69
  73. package/dist/cjs/marketData.js.map +1 -1
  74. package/dist/cjs/nodeSDKTypes.d.ts +35 -37
  75. package/dist/cjs/onChainPxFeed.d.ts +2 -2
  76. package/dist/cjs/onChainPxFeed.js +3 -3
  77. package/dist/cjs/onChainPxFeed.js.map +1 -1
  78. package/dist/cjs/onChainPxFeedAngle.d.ts +2 -2
  79. package/dist/cjs/onChainPxFeedAngle.js +4 -5
  80. package/dist/cjs/onChainPxFeedAngle.js.map +1 -1
  81. package/dist/cjs/onChainPxFeedRedStone.js +2 -2
  82. package/dist/cjs/onChainPxFeedRedStone.js.map +1 -1
  83. package/dist/cjs/orderExecutorTool.d.ts +7 -9
  84. package/dist/cjs/orderExecutorTool.js +54 -63
  85. package/dist/cjs/orderExecutorTool.js.map +1 -1
  86. package/dist/cjs/perpetualDataHandler.d.ts +38 -35
  87. package/dist/cjs/perpetualDataHandler.js +173 -167
  88. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  89. package/dist/cjs/perpetualEventHandler.d.ts +4 -5
  90. package/dist/cjs/perpetualEventHandler.js +2 -2
  91. package/dist/cjs/perpetualEventHandler.js.map +1 -1
  92. package/dist/cjs/priceFeeds.js +2 -3
  93. package/dist/cjs/priceFeeds.js.map +1 -1
  94. package/dist/cjs/referralCodeSigner.d.ts +1 -1
  95. package/dist/cjs/referralCodeSigner.js +12 -16
  96. package/dist/cjs/referralCodeSigner.js.map +1 -1
  97. package/dist/cjs/traderDigests.d.ts +2 -1
  98. package/dist/cjs/traderDigests.js +9 -11
  99. package/dist/cjs/traderDigests.js.map +1 -1
  100. package/dist/cjs/traderInterface.d.ts +8 -9
  101. package/dist/cjs/traderInterface.js +26 -23
  102. package/dist/cjs/traderInterface.js.map +1 -1
  103. package/dist/cjs/utils.d.ts +2 -3
  104. package/dist/cjs/utils.js +1 -2
  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/cjs/version.js.map +1 -1
  109. package/dist/cjs/writeAccessHandler.d.ts +7 -9
  110. package/dist/cjs/writeAccessHandler.js +13 -16
  111. package/dist/cjs/writeAccessHandler.js.map +1 -1
  112. package/dist/esm/accountTrade.d.ts +9 -9
  113. package/dist/esm/accountTrade.js +19 -17
  114. package/dist/esm/accountTrade.js.map +1 -1
  115. package/dist/esm/brokerTool.d.ts +11 -12
  116. package/dist/esm/brokerTool.js +2 -3
  117. package/dist/esm/brokerTool.js.map +1 -1
  118. package/dist/esm/constants.d.ts +11 -12
  119. package/dist/esm/constants.js +12 -13
  120. package/dist/esm/constants.js.map +1 -1
  121. package/dist/esm/contracts/ERC20.d.ts +146 -171
  122. package/dist/esm/contracts/IPerpetualManager.d.ts +2534 -2225
  123. package/dist/esm/contracts/IPyth.d.ts +181 -184
  124. package/dist/esm/contracts/LimitOrderBook.d.ts +373 -401
  125. package/dist/esm/contracts/LimitOrderBookBeacon.d.ts +53 -104
  126. package/dist/esm/contracts/LimitOrderBookFactory.d.ts +129 -185
  127. package/dist/esm/contracts/MockTokenSwap.d.ts +109 -169
  128. package/dist/esm/contracts/Multicall3.d.ts +147 -211
  129. package/dist/esm/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
  130. package/dist/esm/contracts/OracleFactory.d.ts +258 -238
  131. package/dist/esm/contracts/PerpetualManagerProxy.d.ts +1099 -891
  132. package/dist/esm/contracts/RedStoneAbi.d.ts +369 -488
  133. package/dist/esm/contracts/ShareToken.d.ts +232 -285
  134. package/dist/esm/contracts/common.d.ts +40 -11
  135. package/dist/esm/contracts/factories/ERC20__factory.d.ts +2 -3
  136. package/dist/esm/contracts/factories/ERC20__factory.js +4 -4
  137. package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
  138. package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
  139. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +4 -4
  140. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  141. package/dist/esm/contracts/factories/IPyth__factory.d.ts +2 -3
  142. package/dist/esm/contracts/factories/IPyth__factory.js +4 -4
  143. package/dist/esm/contracts/factories/IPyth__factory.js.map +1 -1
  144. package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
  145. package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js +4 -4
  146. package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
  147. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
  148. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +4 -4
  149. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  150. package/dist/esm/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
  151. package/dist/esm/contracts/factories/LimitOrderBook__factory.js +4 -4
  152. package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  153. package/dist/esm/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
  154. package/dist/esm/contracts/factories/MockTokenSwap__factory.js +4 -4
  155. package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  156. package/dist/esm/contracts/factories/Multicall3__factory.d.ts +11 -9
  157. package/dist/esm/contracts/factories/Multicall3__factory.js +8 -11
  158. package/dist/esm/contracts/factories/Multicall3__factory.js.map +1 -1
  159. package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
  160. package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js +4 -4
  161. package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
  162. package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +2 -3
  163. package/dist/esm/contracts/factories/OracleFactory__factory.js +4 -4
  164. package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -1
  165. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
  166. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js +4 -4
  167. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  168. package/dist/esm/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
  169. package/dist/esm/contracts/factories/RedStoneAbi__factory.js +4 -4
  170. package/dist/esm/contracts/factories/RedStoneAbi__factory.js.map +1 -1
  171. package/dist/esm/contracts/factories/ShareToken__factory.d.ts +2 -3
  172. package/dist/esm/contracts/factories/ShareToken__factory.js +4 -4
  173. package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
  174. package/dist/esm/d8XMath.d.ts +16 -16
  175. package/dist/esm/d8XMath.js +48 -49
  176. package/dist/esm/d8XMath.js.map +1 -1
  177. package/dist/esm/liquidatorTool.d.ts +8 -8
  178. package/dist/esm/liquidatorTool.js +5 -7
  179. package/dist/esm/liquidatorTool.js.map +1 -1
  180. package/dist/esm/liquidityProviderTool.d.ts +4 -5
  181. package/dist/esm/liquidityProviderTool.js.map +1 -1
  182. package/dist/esm/marketData.d.ts +27 -28
  183. package/dist/esm/marketData.js +55 -59
  184. package/dist/esm/marketData.js.map +1 -1
  185. package/dist/esm/nodeSDKTypes.d.ts +35 -37
  186. package/dist/esm/onChainPxFeed.d.ts +2 -2
  187. package/dist/esm/onChainPxFeed.js +3 -3
  188. package/dist/esm/onChainPxFeed.js.map +1 -1
  189. package/dist/esm/onChainPxFeedAngle.d.ts +2 -2
  190. package/dist/esm/onChainPxFeedAngle.js +2 -3
  191. package/dist/esm/onChainPxFeedAngle.js.map +1 -1
  192. package/dist/esm/onChainPxFeedRedStone.js +1 -1
  193. package/dist/esm/onChainPxFeedRedStone.js.map +1 -1
  194. package/dist/esm/orderExecutorTool.d.ts +7 -9
  195. package/dist/esm/orderExecutorTool.js +40 -49
  196. package/dist/esm/orderExecutorTool.js.map +1 -1
  197. package/dist/esm/perpetualDataHandler.d.ts +38 -35
  198. package/dist/esm/perpetualDataHandler.js +114 -108
  199. package/dist/esm/perpetualDataHandler.js.map +1 -1
  200. package/dist/esm/perpetualEventHandler.d.ts +4 -5
  201. package/dist/esm/perpetualEventHandler.js +2 -2
  202. package/dist/esm/perpetualEventHandler.js.map +1 -1
  203. package/dist/esm/priceFeeds.js +2 -3
  204. package/dist/esm/priceFeeds.js.map +1 -1
  205. package/dist/esm/referralCodeSigner.d.ts +1 -1
  206. package/dist/esm/referralCodeSigner.js +6 -10
  207. package/dist/esm/referralCodeSigner.js.map +1 -1
  208. package/dist/esm/traderDigests.d.ts +2 -1
  209. package/dist/esm/traderDigests.js +2 -4
  210. package/dist/esm/traderDigests.js.map +1 -1
  211. package/dist/esm/traderInterface.d.ts +8 -9
  212. package/dist/esm/traderInterface.js +26 -23
  213. package/dist/esm/traderInterface.js.map +1 -1
  214. package/dist/esm/utils.d.ts +2 -3
  215. package/dist/esm/utils.js +1 -2
  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/dist/esm/version.js.map +1 -1
  220. package/dist/esm/writeAccessHandler.d.ts +7 -9
  221. package/dist/esm/writeAccessHandler.js +5 -8
  222. package/dist/esm/writeAccessHandler.js.map +1 -1
  223. package/package.json +7 -17
  224. package/src/accountTrade.ts +32 -34
  225. package/src/brokerTool.ts +17 -20
  226. package/src/constants.ts +12 -13
  227. package/src/contracts/ERC20.ts +236 -350
  228. package/src/contracts/IPerpetualManager.ts +3359 -5050
  229. package/src/contracts/IPyth.ts +272 -409
  230. package/src/contracts/LimitOrderBook.ts +503 -779
  231. package/src/contracts/LimitOrderBookBeacon.ts +123 -171
  232. package/src/contracts/LimitOrderBookFactory.ts +263 -332
  233. package/src/contracts/MockTokenSwap.ts +237 -275
  234. package/src/contracts/Multicall3.ts +208 -374
  235. package/src/contracts/OnDemandOracleUpgradeable.ts +569 -782
  236. package/src/contracts/OracleFactory.ts +410 -538
  237. package/src/contracts/PerpetualManagerProxy.ts +1898 -1426
  238. package/src/contracts/RedStoneAbi.ts +486 -986
  239. package/src/contracts/ShareToken.ts +376 -557
  240. package/src/contracts/common.ts +108 -21
  241. package/src/contracts/factories/ERC20__factory.ts +4 -5
  242. package/src/contracts/factories/IPerpetualManager__factory.ts +4 -5
  243. package/src/contracts/factories/IPyth__factory.ts +4 -5
  244. package/src/contracts/factories/LimitOrderBookBeacon__factory.ts +5 -6
  245. package/src/contracts/factories/LimitOrderBookFactory__factory.ts +5 -6
  246. package/src/contracts/factories/LimitOrderBook__factory.ts +4 -5
  247. package/src/contracts/factories/MockTokenSwap__factory.ts +4 -5
  248. package/src/contracts/factories/Multicall3__factory.ts +21 -19
  249. package/src/contracts/factories/OnDemandOracleUpgradeable__factory.ts +5 -6
  250. package/src/contracts/factories/OracleFactory__factory.ts +4 -5
  251. package/src/contracts/factories/PerpetualManagerProxy__factory.ts +5 -6
  252. package/src/contracts/factories/RedStoneAbi__factory.ts +4 -8
  253. package/src/contracts/factories/ShareToken__factory.ts +4 -8
  254. package/src/d8XMath.ts +57 -57
  255. package/src/liquidatorTool.ts +12 -15
  256. package/src/liquidityProviderTool.ts +7 -5
  257. package/src/marketData.ts +110 -121
  258. package/src/nodeSDKTypes.ts +51 -38
  259. package/src/onChainPxFeed.ts +4 -4
  260. package/src/onChainPxFeedAngle.ts +5 -7
  261. package/src/onChainPxFeedRedStone.ts +1 -3
  262. package/src/orderExecutorTool.ts +102 -109
  263. package/src/perpetualDataHandler.ts +181 -167
  264. package/src/perpetualEventHandler.ts +16 -17
  265. package/src/priceFeeds.ts +2 -3
  266. package/src/referralCodeSigner.ts +6 -10
  267. package/src/traderDigests.ts +8 -5
  268. package/src/traderInterface.ts +45 -31
  269. package/src/utils.ts +3 -4
  270. package/src/version.ts +1 -1
  271. package/src/writeAccessHandler.ts +26 -17
@@ -3,13 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const abi_1 = require("@ethersproject/abi");
7
- const bignumber_1 = require("@ethersproject/bignumber");
8
- const contracts_1 = require("@ethersproject/contracts");
9
- const providers_1 = require("@ethersproject/providers");
10
- const units_1 = require("@ethersproject/units");
6
+ const ethers_1 = require("ethers");
11
7
  const constants_1 = require("./constants");
12
- const contracts_2 = require("./contracts");
8
+ const contracts_1 = require("./contracts");
13
9
  const d8XMath_1 = require("./d8XMath");
14
10
  const perpetualDataHandler_1 = __importDefault(require("./perpetualDataHandler"));
15
11
  const utils_1 = require("./utils");
@@ -48,16 +44,16 @@ class MarketData extends perpetualDataHandler_1.default {
48
44
  * @param providerOrMarketData optional provider or existing market data instance
49
45
  */
50
46
  async createProxyInstance(providerOrMarketData, overrides) {
51
- if (providerOrMarketData == undefined || providers_1.Provider.isProvider(providerOrMarketData)) {
52
- this.provider = providerOrMarketData ?? new providers_1.StaticJsonRpcProvider(this.nodeURL);
47
+ if (providerOrMarketData == undefined || !("createProxyInstance" in providerOrMarketData)) {
48
+ this.provider = providerOrMarketData ?? new ethers_1.JsonRpcProvider(this.nodeURL);
53
49
  await this.initContractsAndData(this.provider, overrides);
54
50
  }
55
51
  else {
56
52
  const mktData = providerOrMarketData;
57
53
  this.nodeURL = mktData.config.nodeURL;
58
- this.provider = new providers_1.StaticJsonRpcProvider(mktData.config.nodeURL);
59
- this.proxyContract = new contracts_1.Contract(mktData.getProxyAddress(), this.config.proxyABI, this.provider);
60
- this.multicall = contracts_2.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, this.provider);
54
+ this.provider = new ethers_1.JsonRpcProvider(mktData.config.nodeURL, mktData.network, { staticNetwork: true });
55
+ this.proxyContract = new ethers_1.Contract(mktData.getProxyAddress(), this.config.proxyABI, this.provider);
56
+ this.multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, this.provider);
61
57
  ({
62
58
  nestedPerpetualIDs: this.nestedPerpetualIDs,
63
59
  poolStaticInfos: this.poolStaticInfos,
@@ -77,7 +73,7 @@ class MarketData extends perpetualDataHandler_1.default {
77
73
  if (this.proxyContract == null) {
78
74
  throw Error("no proxy contract initialized. Use createProxyInstance().");
79
75
  }
80
- return this.proxyContract.address;
76
+ return this.proxyContract.target.toString();
81
77
  }
82
78
  /**
83
79
  * Get the pre-computed triangulations
@@ -144,8 +140,8 @@ class MarketData extends perpetualDataHandler_1.default {
144
140
  if (overrides) {
145
141
  ({ rpcURL, ...overrides } = overrides);
146
142
  }
147
- const provider = new providers_1.StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
148
- return await MarketData._exchangeInfo(new contracts_1.Contract(this.proxyAddr, this.config.proxyABI, provider), contracts_2.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider), this.poolStaticInfos, this.symbolToPerpStaticInfo, this.perpetualIdToSymbol, this.nestedPerpetualIDs, this.symbolList, this.priceFeedGetter, this.oraclefactoryAddr, // not undefined if proxy contract was initialized
143
+ const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
144
+ return await MarketData._exchangeInfo(new ethers_1.Contract(this.proxyAddr, this.config.proxyABI, provider), contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider), this.poolStaticInfos, this.symbolToPerpStaticInfo, this.perpetualIdToSymbol, this.nestedPerpetualIDs, this.symbolList, this.priceFeedGetter, this.oraclefactoryAddr, // not undefined if proxy contract was initialized
149
145
  overrides);
150
146
  }
151
147
  /**
@@ -185,7 +181,7 @@ class MarketData extends perpetualDataHandler_1.default {
185
181
  if (overrides) {
186
182
  ({ rpcURL, ...overrides } = overrides);
187
183
  }
188
- const provider = new providers_1.StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
184
+ const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
189
185
  if (symbols.length < 1) {
190
186
  throw new Error(`No perpetuals found for symbol ${symbol}`);
191
187
  }
@@ -207,7 +203,7 @@ class MarketData extends perpetualDataHandler_1.default {
207
203
  */
208
204
  async _openOrdersOfPerpetual(traderAddr, symbol, provider, overrides) {
209
205
  // open orders requested only for given symbol
210
- const orderBookContract = contracts_2.LimitOrderBook__factory.connect(this.getOrderBookContract(symbol).address, provider);
206
+ const orderBookContract = this.getOrderBookContract(symbol, provider);
211
207
  const orders = await MarketData.openOrdersOnOrderBook(traderAddr, orderBookContract, this.symbolToPerpStaticInfo, overrides);
212
208
  const digests = await MarketData.orderIdsOfTrader(traderAddr, orderBookContract, overrides);
213
209
  return { orders: orders, orderIds: digests };
@@ -223,8 +219,8 @@ class MarketData extends perpetualDataHandler_1.default {
223
219
  // filter by perpetuals with valid order book
224
220
  symbols = symbols.filter((symbol) => this.symbolToPerpStaticInfo.get(symbol)?.limitOrderBookAddr !== constants_1.ZERO_ADDRESS);
225
221
  // open orders requested only for given symbol
226
- const orderBookContracts = symbols.map((symbol) => contracts_2.LimitOrderBook__factory.connect(this.getOrderBookContract(symbol).address, provider));
227
- const multicall = contracts_2.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider);
222
+ const orderBookContracts = symbols.map((symbol) => this.getOrderBookContract(symbol, provider), this);
223
+ const multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider);
228
224
  const { orders, digests } = await MarketData._openOrdersOnOrderBooks(traderAddr, orderBookContracts, multicall, this.symbolToPerpStaticInfo, overrides);
229
225
  return symbols.map((_symbol, i) => ({ orders: orders[i], orderIds: digests[i] }));
230
226
  }
@@ -268,7 +264,7 @@ class MarketData extends perpetualDataHandler_1.default {
268
264
  if (overrides) {
269
265
  ({ rpcURL, ...overrides } = overrides);
270
266
  }
271
- const provider = new providers_1.StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
267
+ const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
272
268
  if (symbols.length < 1) {
273
269
  throw new Error(`No perpetuals found for symbol ${symbol}`);
274
270
  }
@@ -290,7 +286,7 @@ class MarketData extends perpetualDataHandler_1.default {
290
286
  */
291
287
  async _positionRiskForTraderInPerpetual(traderAddr, symbol, provider, overrides) {
292
288
  let obj = await this.priceFeedGetter.fetchPricesForPerpetual(symbol);
293
- let mgnAcct = await perpetualDataHandler_1.default.getMarginAccount(traderAddr, symbol, this.symbolToPerpStaticInfo, new contracts_1.Contract(this.proxyAddr, this.config.proxyABI, provider), [obj.idxPrices[0], obj.idxPrices[1]], overrides);
289
+ let mgnAcct = await perpetualDataHandler_1.default.getMarginAccount(traderAddr, symbol, this.symbolToPerpStaticInfo, new ethers_1.Contract(this.proxyAddr, this.config.proxyABI, provider), [obj.idxPrices[0], obj.idxPrices[1]], overrides);
294
290
  return mgnAcct;
295
291
  }
296
292
  /**
@@ -311,7 +307,7 @@ class MarketData extends perpetualDataHandler_1.default {
311
307
  let callSymbols = symbols.slice(0, MAX_SYMBOLS_PER_CALL);
312
308
  let pxS2S3 = S2S3.slice(0, MAX_SYMBOLS_PER_CALL);
313
309
  while (callSymbols.length > 0) {
314
- let acc = await perpetualDataHandler_1.default.getMarginAccounts(Array(callSymbols.length).fill(traderAddr), callSymbols, this.symbolToPerpStaticInfo, contracts_2.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider), new contracts_1.Contract(this.proxyAddr, this.config.proxyABI, provider), pxS2S3, overrides);
310
+ let acc = await perpetualDataHandler_1.default.getMarginAccounts(Array(callSymbols.length).fill(traderAddr), callSymbols, this.symbolToPerpStaticInfo, contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider), new ethers_1.Contract(this.proxyAddr, this.config.proxyABI, provider), pxS2S3, overrides);
315
311
  mgnAcct = mgnAcct.concat(acc);
316
312
  callSymbols = symbols.slice(mgnAcct.length, mgnAcct.length + MAX_SYMBOLS_PER_CALL);
317
313
  pxS2S3 = S2S3.slice(mgnAcct.length, mgnAcct.length + MAX_SYMBOLS_PER_CALL);
@@ -371,19 +367,19 @@ class MarketData extends perpetualDataHandler_1.default {
371
367
  const proxyCalls = [
372
368
  // 0: traderState
373
369
  {
374
- target: this.proxyContract.address,
370
+ target: this.proxyContract.target,
375
371
  allowFailure: true,
376
372
  callData: this.proxyContract.interface.encodeFunctionData("getTraderState", [perpId, traderAddr, fS2S3]),
377
373
  },
378
374
  // 1: ammState
379
375
  {
380
- target: this.proxyContract.address,
376
+ target: this.proxyContract.target,
381
377
  allowFailure: true,
382
378
  callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
383
379
  },
384
380
  // 2: exchangeFee
385
381
  {
386
- target: this.proxyContract.address,
382
+ target: this.proxyContract.target,
387
383
  allowFailure: false,
388
384
  callData: this.proxyContract.interface.encodeFunctionData("queryExchangeFee", [
389
385
  poolId,
@@ -393,7 +389,7 @@ class MarketData extends perpetualDataHandler_1.default {
393
389
  },
394
390
  // 3: perpetual price
395
391
  {
396
- target: this.proxyContract.address,
392
+ target: this.proxyContract.target,
397
393
  allowFailure: true,
398
394
  callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [
399
395
  perpId,
@@ -403,31 +399,27 @@ class MarketData extends perpetualDataHandler_1.default {
403
399
  },
404
400
  // 4: max long pos
405
401
  {
406
- target: this.proxyContract.address,
402
+ target: this.proxyContract.target,
407
403
  allowFailure: false,
408
404
  callData: this.proxyContract.interface.encodeFunctionData("getMaxSignedOpenTradeSizeForPos", [
409
405
  perpId,
410
- account
411
- ? (0, d8XMath_1.floatToABK64x64)(account.positionNotionalBaseCCY * (account.side === constants_1.BUY_SIDE ? 1 : -1))
412
- : bignumber_1.BigNumber.from(0),
406
+ account ? (0, d8XMath_1.floatToABK64x64)(account.positionNotionalBaseCCY * (account.side === constants_1.BUY_SIDE ? 1 : -1)) : 0n,
413
407
  true,
414
408
  ]),
415
409
  },
416
410
  // 5: max short pos
417
411
  {
418
- target: this.proxyContract.address,
412
+ target: this.proxyContract.target,
419
413
  allowFailure: false,
420
414
  callData: this.proxyContract.interface.encodeFunctionData("getMaxSignedOpenTradeSizeForPos", [
421
415
  perpId,
422
- account
423
- ? (0, d8XMath_1.floatToABK64x64)(account.positionNotionalBaseCCY * (account.side === constants_1.BUY_SIDE ? 1 : -1))
424
- : bignumber_1.BigNumber.from(0),
416
+ account ? (0, d8XMath_1.floatToABK64x64)(account.positionNotionalBaseCCY * (account.side === constants_1.BUY_SIDE ? 1 : -1)) : 0n,
425
417
  false,
426
418
  ]),
427
419
  },
428
420
  ];
429
421
  // multicall
430
- const encodedResults = await this.multicall.callStatic.aggregate3(proxyCalls, (overrides || {}));
422
+ const encodedResults = await this.multicall.aggregate3.staticCall(proxyCalls, (overrides || {}));
431
423
  // positionRisk to apply this trade on: if not given, defaults to the current trader's position
432
424
  if (!account) {
433
425
  let traderState;
@@ -509,8 +501,8 @@ class MarketData extends perpetualDataHandler_1.default {
509
501
  // max sell
510
502
  const fMaxShort = this.proxyContract.interface.decodeFunctionResult("getMaxSignedOpenTradeSizeForPos", encodedResults[5].returnData)[0];
511
503
  const maxShortTrade = account.side == constants_1.SELL_SIDE
512
- ? Math.max(0, (0, d8XMath_1.ABK64x64ToFloat)(fMaxShort.abs()) - (accountGiven ? 0 : Math.abs(account.positionNotionalBaseCCY)))
513
- : (0, d8XMath_1.ABK64x64ToFloat)(fMaxShort.abs()) + Math.abs(account.positionNotionalBaseCCY);
504
+ ? Math.max(0, Math.abs((0, d8XMath_1.ABK64x64ToFloat)(fMaxShort)) - (accountGiven ? 0 : Math.abs(account.positionNotionalBaseCCY)))
505
+ : Math.abs((0, d8XMath_1.ABK64x64ToFloat)(fMaxShort)) + Math.abs(account.positionNotionalBaseCCY);
514
506
  // Current state:
515
507
  let lotSizeBC = MarketData._getLotSize(order.symbol, this.symbolToPerpStaticInfo);
516
508
  // Too small, no change to account
@@ -534,7 +526,7 @@ class MarketData extends perpetualDataHandler_1.default {
534
526
  let newSide = newPositionBC > 0 ? constants_1.BUY_SIDE : newPositionBC < 0 ? constants_1.SELL_SIDE : constants_1.CLOSED_SIDE;
535
527
  if (tradingFeeTbps === undefined) {
536
528
  // use usual input if not overriden
537
- tradingFeeTbps = exchangeFeeTbps + (order.brokerFeeTbps ?? 0);
529
+ tradingFeeTbps = Number(exchangeFeeTbps) + (order.brokerFeeTbps ?? 0);
538
530
  }
539
531
  let tradingFeeCC = (Math.abs(tradeAmountBC) * tradingFeeTbps * 1e-5 * S2) / S3;
540
532
  let referralFeeCC = this.symbolToPerpStaticInfo.get(account.symbol).referralRebate;
@@ -754,10 +746,10 @@ class MarketData extends perpetualDataHandler_1.default {
754
746
  async getWalletBalance(address, symbol, overrides) {
755
747
  let poolIdx = this.getPoolStaticInfoIndexFromSymbol(symbol);
756
748
  let settleTokenAddr = this.poolStaticInfos[poolIdx].poolSettleTokenAddr;
757
- let token = contracts_2.ERC20__factory.connect(settleTokenAddr, this.provider);
749
+ let token = contracts_1.ERC20__factory.connect(settleTokenAddr, this.provider);
758
750
  let walletBalance = await token.balanceOf(address, overrides || {});
759
751
  let decimals = this.poolStaticInfos[poolIdx].poolSettleTokenDecimals;
760
- return Number((0, units_1.formatUnits)(walletBalance, decimals));
752
+ return Number((0, ethers_1.formatUnits)(walletBalance, decimals));
761
753
  }
762
754
  /**
763
755
  * Get the address' balance of the pool share token
@@ -791,7 +783,7 @@ class MarketData extends perpetualDataHandler_1.default {
791
783
  */
792
784
  async _getPoolShareTokenBalanceFromId(address, poolId, overrides) {
793
785
  let shareTokenAddr = this.poolStaticInfos[poolId - 1].shareTokenAddr;
794
- let shareToken = contracts_2.ERC20__factory.connect(shareTokenAddr, this.provider);
786
+ let shareToken = contracts_1.ERC20__factory.connect(shareTokenAddr, this.provider);
795
787
  let d18ShareTokenBalanceOfAddr = await shareToken.balanceOf(address, overrides || {});
796
788
  return (0, d8XMath_1.dec18ToFloat)(d18ShareTokenBalanceOfAddr);
797
789
  }
@@ -900,7 +892,7 @@ class MarketData extends perpetualDataHandler_1.default {
900
892
  const poolId = this.getPoolIdFromSymbol(symbol);
901
893
  const poolInfo = this.poolStaticInfos[this.getPoolStaticInfoIndexFromSymbol(symbol)];
902
894
  const perpInfo = this.getPerpetualStaticInfo(symbol);
903
- const IERC20 = new abi_1.Interface(constants_1.ERC20_ABI);
895
+ const IERC20 = new ethers_1.Interface(constants_1.ERC20_ABI);
904
896
  const indexPriceInfo = await this.priceFeedGetter
905
897
  .fetchPricesForPerpetual(symbol)
906
898
  .then((obj) => [obj.idxPrices[0], obj.idxPrices[1], obj.mktClosed[0], obj.mktClosed[1]]);
@@ -909,7 +901,7 @@ class MarketData extends perpetualDataHandler_1.default {
909
901
  const proxyCalls = [
910
902
  // 0: traderState
911
903
  {
912
- target: this.proxyContract.address,
904
+ target: this.proxyContract.target,
913
905
  allowFailure: false,
914
906
  callData: this.proxyContract.interface.encodeFunctionData("getTraderState", [perpId, traderAddr, fS2S3]),
915
907
  },
@@ -921,7 +913,7 @@ class MarketData extends perpetualDataHandler_1.default {
921
913
  },
922
914
  // 2: exchange fee
923
915
  {
924
- target: this.proxyContract.address,
916
+ target: this.proxyContract.target,
925
917
  allowFailure: false,
926
918
  callData: this.proxyContract.interface.encodeFunctionData("queryExchangeFee", [
927
919
  poolId,
@@ -931,7 +923,7 @@ class MarketData extends perpetualDataHandler_1.default {
931
923
  },
932
924
  ];
933
925
  // multicall
934
- const encodedResults = await this.multicall.callStatic.aggregate3(proxyCalls, overrides || {});
926
+ const encodedResults = await this.multicall.aggregate3.staticCall(proxyCalls, overrides || {});
935
927
  // position risk
936
928
  const idxNotional = 4;
937
929
  const traderState = this.proxyContract.interface.decodeFunctionResult("getTraderState", encodedResults[0].returnData)[0];
@@ -940,14 +932,14 @@ class MarketData extends perpetualDataHandler_1.default {
940
932
  indexPriceInfo[1],
941
933
  ]);
942
934
  // fee rate
943
- const feeRate = 1e-5 *
944
- this.proxyContract.interface.decodeFunctionResult("queryExchangeFee", encodedResults[2].returnData)[0];
935
+ const feeRateTbps = this.proxyContract.interface.decodeFunctionResult("queryExchangeFee", encodedResults[2].returnData)[0];
936
+ const feeRate = 1e-5 * Number(feeRateTbps);
945
937
  // Max based on margin requirements:
946
938
  const walletBalance = (0, d8XMath_1.decNToFloat)(IERC20.decodeFunctionResult("balanceOf", encodedResults[1].returnData)[0], poolInfo.poolSettleTokenDecimals);
947
939
  const proxyCalls2 = [
948
940
  // 0: max long
949
941
  {
950
- target: this.proxyContract.address,
942
+ target: this.proxyContract.target,
951
943
  allowFailure: false,
952
944
  callData: this.proxyContract.interface.encodeFunctionData("getMaxSignedOpenTradeSizeForPos", [
953
945
  perpId,
@@ -957,7 +949,7 @@ class MarketData extends perpetualDataHandler_1.default {
957
949
  },
958
950
  // 1: max short
959
951
  {
960
- target: this.proxyContract.address,
952
+ target: this.proxyContract.target,
961
953
  allowFailure: false,
962
954
  callData: this.proxyContract.interface.encodeFunctionData("getMaxSignedOpenTradeSizeForPos", [
963
955
  perpId,
@@ -967,7 +959,7 @@ class MarketData extends perpetualDataHandler_1.default {
967
959
  },
968
960
  ];
969
961
  // multicall
970
- const encodedResults2 = await this.multicall.callStatic.aggregate3(proxyCalls2, overrides || {});
962
+ const encodedResults2 = await this.multicall.aggregate3.staticCall(proxyCalls2, overrides || {});
971
963
  // Max based on perp:
972
964
  // max buy
973
965
  const maxLongOrderPerp = (0, d8XMath_1.ABK64x64ToFloat)(this.proxyContract.interface.decodeFunctionResult("getMaxSignedOpenTradeSizeForPos", encodedResults2[0].returnData)[0]);
@@ -1015,7 +1007,7 @@ class MarketData extends perpetualDataHandler_1.default {
1015
1007
  async maxSignedPosition(side, symbol, overrides) {
1016
1008
  let perpId = this.getPerpIdFromSymbol(symbol);
1017
1009
  let isBuy = side == constants_1.BUY_SIDE;
1018
- let maxSignedPos = await this.proxyContract.getMaxSignedOpenTradeSizeForPos(perpId, bignumber_1.BigNumber.from(0), isBuy, overrides || {});
1010
+ let maxSignedPos = await this.proxyContract.getMaxSignedOpenTradeSizeForPos(perpId, 0n, isBuy, overrides || {});
1019
1011
  return (0, d8XMath_1.ABK64x64ToFloat)(maxSignedPos);
1020
1012
  }
1021
1013
  /**
@@ -1071,7 +1063,7 @@ class MarketData extends perpetualDataHandler_1.default {
1071
1063
  throw Error("no proxy contract initialized. Use createProxyInstance().");
1072
1064
  }
1073
1065
  const orderBookContract = this.getOrderBookContract(symbol);
1074
- const status = (await orderBookContract.getOrderStatus(orderId, overrides || {}));
1066
+ const status = Number(await orderBookContract.getOrderStatus(orderId, overrides || {}));
1075
1067
  return status;
1076
1068
  }
1077
1069
  /**
@@ -1100,12 +1092,12 @@ class MarketData extends perpetualDataHandler_1.default {
1100
1092
  }
1101
1093
  const orderBookContract = this.getOrderBookContract(symbol);
1102
1094
  const statusCalls = orderId.map((id) => ({
1103
- target: orderBookContract.address,
1095
+ target: orderBookContract.target,
1104
1096
  allowFailure: false,
1105
1097
  callData: orderBookContract.interface.encodeFunctionData("getOrderStatus", [id]),
1106
1098
  }));
1107
1099
  // multicall
1108
- const encodedResults = await this.multicall.callStatic.aggregate3(statusCalls, overrides || {});
1100
+ const encodedResults = await this.multicall.aggregate3.staticCall(statusCalls, overrides || {});
1109
1101
  // order status
1110
1102
  return encodedResults.map((encodedResult) => orderBookContract.interface.decodeFunctionResult("getOrderStatus", encodedResult.returnData)[0]);
1111
1103
  }
@@ -1311,17 +1303,17 @@ class MarketData extends perpetualDataHandler_1.default {
1311
1303
  const contracts = orderBookContracts.filter((_c, i) => haveMoreOrders[i]);
1312
1304
  // prepare calls
1313
1305
  const ordersCalls = contracts.map((c, i) => ({
1314
- target: c.address,
1306
+ target: c.target,
1315
1307
  allowFailure: true,
1316
1308
  callData: c.interface.encodeFunctionData("getOrders", [traderAddr, from[i], bulkSize]),
1317
1309
  }));
1318
1310
  const digestsCalls = contracts.map((c, i) => ({
1319
- target: c.address,
1311
+ target: c.target,
1320
1312
  allowFailure: true,
1321
1313
  callData: c.interface.encodeFunctionData("limitDigestsOfTrader", [traderAddr, from[i], bulkSize]),
1322
1314
  }));
1323
1315
  // call
1324
- const encodedResults = await multicall.callStatic.aggregate3(ordersCalls.concat(digestsCalls), overrides || {});
1316
+ const encodedResults = await multicall.aggregate3.staticCall(ordersCalls.concat(digestsCalls), overrides || {});
1325
1317
  const encodedOrders = encodedResults.slice(0, ordersCalls.length);
1326
1318
  const encodedDigests = encodedResults.slice(ordersCalls.length);
1327
1319
  // parse
@@ -1329,19 +1321,19 @@ class MarketData extends perpetualDataHandler_1.default {
1329
1321
  .slice(0, ordersCalls.length)
1330
1322
  .map(({ success, returnData }, i) => {
1331
1323
  if (!success)
1332
- throw new Error(`Failed to get orders for order book ${contracts[i].address}`);
1324
+ throw new Error(`Failed to get orders for order book ${contracts[i].target}`);
1333
1325
  return contracts[i].interface.decodeFunctionResult("getOrders", returnData)[0];
1334
1326
  });
1335
1327
  const allDigests = encodedDigests.map(({ success, returnData }, i) => {
1336
1328
  if (!success)
1337
- throw new Error(`Failed to get orders for order book ${contracts[i].address}`);
1329
+ throw new Error(`Failed to get orders for order book ${contracts[i].target}`);
1338
1330
  return contracts[i].interface.decodeFunctionResult("limitDigestsOfTrader", returnData)[0];
1339
1331
  });
1340
1332
  // arrange
1341
1333
  for (let j = 0; j < contracts.length; j++) {
1342
1334
  let orders = allOrders[j].filter((o) => o.traderAddr != constants_1.ZERO_ADDRESS);
1343
1335
  let digests = allDigests[j].filter((d) => d != constants_1.ZERO_ORDER_ID);
1344
- let i = orderBookContracts.findIndex((c) => c.address == contracts[j].address);
1336
+ let i = orderBookContracts.findIndex((c) => c.target == contracts[j].target);
1345
1337
  let k = 0;
1346
1338
  while (k < orders.length && orders[k].traderAddr != constants_1.ZERO_ADDRESS) {
1347
1339
  userFriendlyOrders[i].push(perpetualDataHandler_1.default.fromClientOrder(orders[k], symbolToPerpStaticInfo));
@@ -1365,7 +1357,7 @@ class MarketData extends perpetualDataHandler_1.default {
1365
1357
  let digestsRaw = await orderBookContract.limitDigestsOfTrader(traderAddr, 0, 15, overrides || {});
1366
1358
  let k = 0;
1367
1359
  let digests = [];
1368
- while (k < digestsRaw.length && bignumber_1.BigNumber.from(digestsRaw[k]).gt(0)) {
1360
+ while (k < digestsRaw.length && BigInt(digestsRaw[k]) > 0n) {
1369
1361
  digests.push(digestsRaw[k]);
1370
1362
  k++;
1371
1363
  }
@@ -1541,7 +1533,7 @@ class MarketData extends perpetualDataHandler_1.default {
1541
1533
  let symbol3s = _perpetualIdToSymbol.get(id);
1542
1534
  let info = _symbolToPerpStaticInfo.get(symbol3s);
1543
1535
  let S2 = (0, d8XMath_1.floatToABK64x64)(_idxPriceMap.get(info.S2Symbol)[0]);
1544
- let S3 = bignumber_1.BigNumber.from(0);
1536
+ let S3 = 0n;
1545
1537
  if (info.S3Symbol != "") {
1546
1538
  S3 = (0, d8XMath_1.floatToABK64x64)(_idxPriceMap.get(info.S3Symbol)[0]);
1547
1539
  }
@@ -1549,13 +1541,13 @@ class MarketData extends perpetualDataHandler_1.default {
1549
1541
  indexPrices.push(S3);
1550
1542
  }
1551
1543
  proxyCalls.push({
1552
- target: _proxyContract.address,
1544
+ target: _proxyContract.target,
1553
1545
  allowFailure: false,
1554
1546
  callData: _proxyContract.interface.encodeFunctionData("queryMidPrices", [perpetualIDChunks[k], indexPrices]),
1555
1547
  });
1556
1548
  }
1557
1549
  // multicall
1558
- const encodedResults = await _multicall.callStatic.aggregate3(proxyCalls, overrides || {});
1550
+ const encodedResults = await _multicall.aggregate3.staticCall(proxyCalls, overrides || {});
1559
1551
  // apply results
1560
1552
  for (let k = 0; k < perpetualIDChunks.length; k++) {
1561
1553
  let fMidPrice = _proxyContract.interface.decodeFunctionResult("queryMidPrices", encodedResults[k].returnData)[0];
@@ -1586,13 +1578,13 @@ class MarketData extends perpetualDataHandler_1.default {
1586
1578
  const proxyCalls = [
1587
1579
  // getLiquidityPools
1588
1580
  {
1589
- target: _proxyContract.address,
1581
+ target: _proxyContract.target,
1590
1582
  allowFailure: false,
1591
1583
  callData: _proxyContract.interface.encodeFunctionData("getLiquidityPools", [iFrom, iFrom + chunkSize - 1]), // from-to includes "to"
1592
1584
  },
1593
1585
  // getPerpetuals
1594
1586
  {
1595
- target: _proxyContract.address,
1587
+ target: _proxyContract.target,
1596
1588
  allowFailure: false,
1597
1589
  callData: _proxyContract.interface.encodeFunctionData("getPerpetuals", [
1598
1590
  _nestedPerpetualIDs.slice(iFrom - 1, iFrom + chunkSize - 1).flat(), // from-to does not include "to"
@@ -1600,7 +1592,7 @@ class MarketData extends perpetualDataHandler_1.default {
1600
1592
  },
1601
1593
  ];
1602
1594
  // multicall
1603
- const encodedResults = await _multicall.callStatic.aggregate3(proxyCalls, overrides || {});
1595
+ const encodedResults = await _multicall.aggregate3.staticCall(proxyCalls, overrides || {});
1604
1596
  const pools = _proxyContract.interface.decodeFunctionResult("getLiquidityPools", encodedResults[0].returnData)[0];
1605
1597
  const perps = _proxyContract.interface.decodeFunctionResult("getPerpetuals", encodedResults[1].returnData)[0];
1606
1598
  poolStates = poolStates.concat(MarketData._poolDataToPoolState(pools, _poolStaticInfos));
@@ -1639,7 +1631,7 @@ class MarketData extends perpetualDataHandler_1.default {
1639
1631
  */
1640
1632
  static _perpetualDataToPerpetualState(_perpetuals, _symbolList) {
1641
1633
  const perpStates = _perpetuals.map((perp) => ({
1642
- id: perp.id,
1634
+ id: Number(perp.id),
1643
1635
  state: constants_1.PERP_STATE_STR[perp.state],
1644
1636
  baseCurrency: (0, utils_1.contractSymbolToSymbol)(perp.S2BaseCCY, _symbolList),
1645
1637
  quoteCurrency: (0, utils_1.contractSymbolToSymbol)(perp.S2QuoteCCY, _symbolList),
@@ -1669,7 +1661,11 @@ class MarketData extends perpetualDataHandler_1.default {
1669
1661
  */
1670
1662
  static async _exchangeInfo(_proxyContract, _multicall, _poolStaticInfos, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _nestedPerpetualIDs, _symbolList, _priceFeedGetter, _oracleFactoryAddr, overrides) {
1671
1663
  // get the factory address (shared among all pools)
1672
- let info = { pools: [], oracleFactoryAddr: _oracleFactoryAddr, proxyAddr: _proxyContract.address };
1664
+ let info = {
1665
+ pools: [],
1666
+ oracleFactoryAddr: _oracleFactoryAddr,
1667
+ proxyAddr: _proxyContract.target.toString(),
1668
+ };
1673
1669
  // get all prices from off-chain price-sources: no RPC calls
1674
1670
  let idxPriceMap = await MarketData._getAllIndexPrices(_symbolToPerpStaticInfo, _priceFeedGetter);
1675
1671
  // query mid-prices from on-chain conditional on the off-chain prices
@@ -1768,7 +1764,7 @@ class MarketData extends perpetualDataHandler_1.default {
1768
1764
  this.getPerpIdFromSymbol(s),
1769
1765
  ]),
1770
1766
  }));
1771
- const encodedResults = await this.multicall.callStatic.aggregate3(proxyCalls);
1767
+ const encodedResults = await this.multicall.aggregate3.staticCall(proxyCalls);
1772
1768
  const prices = encodedResults.map((result) => this.proxyContract.interface.decodeFunctionResult("getLastPerpetualBaseToUSDConversion", result.returnData)[0]);
1773
1769
  prices.forEach((px, i) => {
1774
1770
  const s = `${symbols[i].split("-")[0]}-USD`;