@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
@@ -1,10 +1,16 @@
1
- import { Signer } from "@ethersproject/abstract-signer";
2
- import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
3
- import { HashZero } from "@ethersproject/constants";
4
- import type { CallOverrides, ContractTransaction, PayableOverrides } from "@ethersproject/contracts";
5
- import { BlockTag, StaticJsonRpcProvider, TransactionRequest } from "@ethersproject/providers";
1
+ import {
2
+ BigNumberish,
3
+ BlockTag,
4
+ JsonRpcProvider,
5
+ Overrides,
6
+ Signer,
7
+ TransactionRequest,
8
+ TransactionResponse,
9
+ ZeroHash,
10
+ } from "ethers";
6
11
  import { BUY_SIDE, MULTICALL_ADDRESS, OrderStatus, SELL_SIDE, ZERO_ADDRESS, ZERO_ORDER_ID } from "./constants";
7
- import { IPyth__factory, LimitOrderBook, LimitOrderBook__factory, Multicall3, Multicall3__factory } from "./contracts";
12
+ import { IPyth__factory, LimitOrderBook__factory, Multicall3, Multicall3__factory } from "./contracts";
13
+ import { PayableOverrides } from "./contracts/common";
8
14
  import { ABK64x64ToFloat, floatToABK64x64 } from "./d8XMath";
9
15
  import {
10
16
  type NodeSDKConfig,
@@ -88,7 +94,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
88
94
  executorAddr?: string,
89
95
  submission?: PriceFeedSubmission,
90
96
  overrides?: PayableOverrides
91
- ): Promise<ContractTransaction> {
97
+ ): Promise<TransactionResponse> {
92
98
  return this.executeOrders(symbol, [orderId], executorAddr, submission, overrides);
93
99
  }
94
100
 
@@ -126,16 +132,17 @@ export default class OrderExecutorTool extends WriteAccessHandler {
126
132
  executorAddr?: string,
127
133
  submission?: PriceFeedSubmission,
128
134
  overrides?: PayableOverrides & { rpcURL?: string; splitTx?: boolean; maxGasLimit?: BigNumberish }
129
- ): Promise<ContractTransaction> {
135
+ ): Promise<TransactionResponse> {
130
136
  if (this.proxyContract == null || this.signer == null) {
131
137
  throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
132
138
  }
133
139
  let rpcURL: string | undefined;
134
140
  let splitTx: boolean | undefined;
141
+ let maxGasLimit: BigNumberish | undefined;
135
142
  if (overrides) {
136
- ({ rpcURL, splitTx, ...overrides } = overrides);
143
+ ({ rpcURL, splitTx, maxGasLimit, ...overrides } = overrides);
137
144
  }
138
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
145
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL);
139
146
 
140
147
  if (typeof executorAddr == "undefined") {
141
148
  executorAddr = this.traderAddr;
@@ -181,9 +188,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
181
188
  value = this.PRICE_UPDATE_FEE_GWEI * submission.timestamps.length;
182
189
  }
183
190
 
184
- if (overrides?.nonce !== undefined) {
185
- const nonce = await overrides.nonce;
186
- overrides.nonce = BigNumber.from(nonce).add(nonceInc);
191
+ if (overrides?.nonce != undefined) {
192
+ overrides.nonce = overrides.nonce + nonceInc;
187
193
  }
188
194
 
189
195
  if (overrides?.gasLimit !== undefined) {
@@ -199,7 +205,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
199
205
  }
200
206
 
201
207
  const unsignedTx: TransactionRequest = {
202
- to: this.getOrderBookContract(symbol).address,
208
+ to: this.getOrderBookContract(symbol).target,
203
209
  from: this.traderAddr,
204
210
  nonce: overrides?.nonce,
205
211
  data: txData,
@@ -211,29 +217,21 @@ export default class OrderExecutorTool extends WriteAccessHandler {
211
217
  };
212
218
  // no gas limit was specified, explicitly estimate
213
219
  if (!overrides?.gasLimit) {
214
- // given gas price might be conservative, which leads to a lower a gas estimate
215
- //-> compensate with larger buffer
216
220
  let gasLimit = await this.signer
217
221
  .estimateGas(unsignedTx)
218
- .then((gas) => gas.mul(1500).div(1000))
222
+ .then((gas) => (gas * 1500n) / 1000n)
219
223
  .catch((_e) => undefined);
220
-
221
224
  if (!gasLimit) {
222
225
  // gas estimate failed - txn would probably revert, double check (and possibly re-throw):
223
- overrides = {
224
- ...overrides,
225
- gasLimit: overrides?.maxGasLimit ?? this.gasLimit,
226
- value: unsignedTx.value,
227
- };
228
- await this.getOrderBookContract(symbol, provider).callStatic.executeOrders(
226
+ overrides = { gasLimit: maxGasLimit ?? this.gasLimit, value: unsignedTx.value, ...overrides };
227
+ await this.getOrderBookContract(symbol).executeOrders.staticCall(
229
228
  orderIds,
230
229
  executorAddr,
231
230
  submission.priceFeedVaas,
232
231
  submission.timestamps,
233
232
  overrides
234
233
  );
235
- // it worked - use fallback
236
- gasLimit = BigNumber.from(overrides?.maxGasLimit ?? this.gasLimit);
234
+ gasLimit = BigInt(maxGasLimit ?? this.gasLimit);
237
235
  }
238
236
  unsignedTx.gasLimit = gasLimit;
239
237
  }
@@ -265,7 +263,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
265
263
  public async getOrderById(
266
264
  symbol: string,
267
265
  id: string,
268
- overrides?: CallOverrides & { rpcURL?: string }
266
+ overrides?: Overrides & { rpcURL?: string }
269
267
  ): Promise<Order | undefined> {
270
268
  let ob = this.getOrderBookContract(symbol);
271
269
  // multicall
@@ -273,63 +271,65 @@ export default class OrderExecutorTool extends WriteAccessHandler {
273
271
  if (overrides) {
274
272
  ({ rpcURL, ...overrides } = overrides);
275
273
  }
276
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
274
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
277
275
  const multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, provider);
278
276
  const calls: Multicall3.Call3Struct[] = [
279
277
  // 0: orderOfDigest
280
278
  {
281
- target: ob.address,
279
+ target: ob.target,
282
280
  allowFailure: false,
283
281
  callData: ob.interface.encodeFunctionData("orderOfDigest", [id]),
284
282
  },
285
283
  // 1: orderDependency
286
284
  {
287
- target: ob.address,
285
+ target: ob.target,
288
286
  allowFailure: false,
289
287
  callData: ob.interface.encodeFunctionData("orderDependency", [id]),
290
288
  },
291
289
  ];
292
- const encodedResults = await multicall.callStatic.aggregate3(calls, overrides || {});
290
+ const encodedResults = await multicall.aggregate3.staticCall(calls, overrides || {});
293
291
  if (encodedResults.some(({ success }) => !success)) {
294
292
  return undefined;
295
293
  }
296
294
 
297
- const smartContractOrder = ob.interface.decodeFunctionResult("orderOfDigest", encodedResults[0].returnData) as [
298
- number,
299
- number,
300
- number,
295
+ const smartContractOrder = ob.interface.decodeFunctionResult(
296
+ "orderOfDigest",
297
+ encodedResults[0].returnData
298
+ ) as unknown as [
299
+ bigint,
300
+ bigint,
301
+ bigint,
301
302
  string,
302
- number,
303
+ bigint,
303
304
  string,
304
- number,
305
- number,
306
- number,
305
+ bigint,
306
+ bigint,
307
+ bigint,
307
308
  string,
308
- BigNumber,
309
- BigNumber,
310
- BigNumber,
309
+ bigint,
310
+ bigint,
311
+ bigint,
311
312
  string
312
313
  ] & {
313
- leverageTDR: number;
314
- brokerFeeTbps: number;
315
- iPerpetualId: number;
314
+ leverageTDR: bigint;
315
+ brokerFeeTbps: bigint;
316
+ iPerpetualId: bigint;
316
317
  traderAddr: string;
317
- executionTimestamp: number;
318
+ executionTimestamp: bigint;
318
319
  brokerAddr: string;
319
- submittedTimestamp: number;
320
- flags: number;
321
- iDeadline: number;
320
+ submittedTimestamp: bigint;
321
+ flags: bigint;
322
+ iDeadline: bigint;
322
323
  executorAddr: string;
323
- fAmount: BigNumber;
324
- fLimitPrice: BigNumber;
325
- fTriggerPrice: BigNumber;
324
+ fAmount: bigint;
325
+ fLimitPrice: bigint;
326
+ fTriggerPrice: bigint;
326
327
  brokerSignature: string;
327
328
  };
328
-
329
- const orderDependency = ob.interface.decodeFunctionResult("orderDependency", encodedResults[1].returnData) as [
330
- string,
331
- string
332
- ] & {
329
+ const orderDependency = ob.interface.decodeFunctionResult(
330
+ "orderDependency",
331
+ encodedResults[1].returnData
332
+ ) as unknown as [string, string] & {
333
333
  parentChildDigest1: string;
334
334
  parentChildDigest2: string;
335
335
  };
@@ -368,7 +368,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
368
368
  orderId: string,
369
369
  blockTimestamp?: number,
370
370
  indexPrices?: [number, number],
371
- overrides?: CallOverrides & { rpcURL?: string }
371
+ overrides?: Overrides & { rpcURL?: string }
372
372
  ): Promise<boolean> {
373
373
  if (this.proxyContract == null || this.multicall == null) {
374
374
  throw Error("no proxy contract initialized. Use createProxyInstance().");
@@ -381,11 +381,11 @@ export default class OrderExecutorTool extends WriteAccessHandler {
381
381
  if (overrides) {
382
382
  ({ rpcURL, ...overrides } = overrides);
383
383
  }
384
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
384
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
385
385
 
386
386
  const fS2S3 = indexPrices.map((x) => floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x)) as [
387
- BigNumber,
388
- BigNumber
387
+ bigint,
388
+ bigint
389
389
  ];
390
390
  const perpId = this.getPerpIdFromSymbol(order.symbol);
391
391
  const fAmount = floatToABK64x64(order.quantity * (order.side == BUY_SIDE ? 1 : -1));
@@ -394,25 +394,25 @@ export default class OrderExecutorTool extends WriteAccessHandler {
394
394
  const proxyCalls: Multicall3.Call3Struct[] = [
395
395
  // 0: trade amount price
396
396
  {
397
- target: this.proxyContract.address,
397
+ target: this.proxyContract.target,
398
398
  allowFailure: true,
399
399
  callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
400
400
  },
401
401
  // 1: amm state to get the mark price
402
402
  {
403
- target: this.proxyContract.address,
403
+ target: this.proxyContract.target,
404
404
  allowFailure: true,
405
405
  callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
406
406
  },
407
407
  // 2: order status to see if it's still open
408
408
  {
409
- target: orderBook.address,
409
+ target: orderBook.target,
410
410
  allowFailure: true,
411
411
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
412
412
  },
413
413
  // 3: block timestamp
414
414
  {
415
- target: this.multicall.address,
415
+ target: this.multicall.target,
416
416
  allowFailure: false,
417
417
  callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
418
418
  },
@@ -420,23 +420,23 @@ export default class OrderExecutorTool extends WriteAccessHandler {
420
420
 
421
421
  const hasParent =
422
422
  order.parentChildOrderIds != undefined &&
423
- order.parentChildOrderIds[0] == HashZero &&
424
- order.parentChildOrderIds[1] != HashZero;
423
+ order.parentChildOrderIds[0] == ZeroHash &&
424
+ order.parentChildOrderIds[1] != ZeroHash;
425
425
 
426
426
  if (hasParent) {
427
427
  // 4: order has a parent, one more call needed:
428
428
  proxyCalls.push({
429
- target: orderBook.address,
429
+ target: orderBook.target,
430
430
  allowFailure: true,
431
431
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds![1]]),
432
432
  });
433
433
  }
434
434
  // multicall
435
435
  const multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, provider);
436
- const encodedResults = await multicall.callStatic.aggregate3(proxyCalls, overrides || {});
436
+ const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
437
437
 
438
438
  // order status
439
- let iOrderStatus: number;
439
+ let iOrderStatus: BigNumberish;
440
440
  if (encodedResults[2].success) {
441
441
  iOrderStatus = orderBook.interface.decodeFunctionResult("getOrderStatus", encodedResults[2].returnData)[0];
442
442
  } else {
@@ -449,7 +449,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
449
449
 
450
450
  // parent status
451
451
  if (hasParent) {
452
- let iParentOrderStatus: number;
452
+ let iParentOrderStatus: BigNumberish;
453
453
  if (encodedResults[4].success) {
454
454
  iParentOrderStatus = orderBook.interface.decodeFunctionResult(
455
455
  "getOrderStatus",
@@ -465,37 +465,35 @@ export default class OrderExecutorTool extends WriteAccessHandler {
465
465
  }
466
466
 
467
467
  // mark price
468
- let ammState: BigNumber[];
468
+ let ammState: bigint[];
469
469
  if (encodedResults[1].success) {
470
470
  ammState = this.proxyContract.interface.decodeFunctionResult(
471
471
  "getAMMState",
472
472
  encodedResults[1].returnData
473
- )[0] as BigNumber[];
473
+ )[0] as bigint[];
474
474
  } else {
475
475
  ammState = await this.proxyContract.getAMMState(perpId, fS2S3);
476
476
  }
477
477
  const markPrice = indexPrices[0] * (1 + ABK64x64ToFloat(ammState[8]));
478
478
 
479
479
  // price
480
- let fOrderPrice: BigNumber;
480
+ let fOrderPrice: bigint;
481
481
  if (encodedResults[0].success) {
482
482
  fOrderPrice = this.proxyContract.interface.decodeFunctionResult(
483
483
  "queryPerpetualPrice",
484
484
  encodedResults[0].returnData
485
- )[0] as BigNumber;
485
+ )[0] as bigint;
486
486
  } else {
487
487
  fOrderPrice = await this.proxyContract.queryPerpetualPrice(perpId, fAmount, fS2S3);
488
488
  }
489
489
  const orderPrice = ABK64x64ToFloat(fOrderPrice);
490
490
 
491
491
  // block timestamp
492
- const ts = (
493
- this.multicall.interface.decodeFunctionResult(
494
- "getCurrentBlockTimestamp",
495
- encodedResults[3].returnData
496
- )[0] as BigNumber
497
- ).toNumber();
498
- blockTimestamp = Math.max(ts + 1, blockTimestamp ?? 0);
492
+ const ts = this.multicall.interface.decodeFunctionResult(
493
+ "getCurrentBlockTimestamp",
494
+ encodedResults[3].returnData
495
+ )[0] as bigint;
496
+ blockTimestamp = Math.max(Number(ts) + 1, blockTimestamp ?? 0);
499
497
  return this._isTradeable(order, orderPrice, markPrice, blockTimestamp, this.symbolToPerpStaticInfo);
500
498
  }
501
499
 
@@ -529,7 +527,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
529
527
  orderIds: string[],
530
528
  blockTimestamp?: number,
531
529
  indexPrices?: [number, number, boolean, boolean],
532
- overrides?: CallOverrides & { rpcURL?: string }
530
+ overrides?: Overrides & { rpcURL?: string }
533
531
  ): Promise<boolean[]> {
534
532
  const MAX_ORDERS_CHECKED = 10;
535
533
  let totalOrders = orders.length;
@@ -564,7 +562,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
564
562
  orderIds: string[],
565
563
  blockTimestamp?: number,
566
564
  indexPrices?: [number, number, boolean, boolean],
567
- overrides?: CallOverrides & { rpcURL?: string }
565
+ overrides?: Overrides & { rpcURL?: string }
568
566
  ): Promise<boolean[]> {
569
567
  if (orders.length == 0) {
570
568
  return [];
@@ -587,11 +585,11 @@ export default class OrderExecutorTool extends WriteAccessHandler {
587
585
  if (overrides) {
588
586
  ({ rpcURL, ...overrides } = overrides);
589
587
  }
590
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
588
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
591
589
 
592
590
  const fS2S3 = [indexPrices[0], indexPrices[1]].map((x) =>
593
591
  floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x)
594
- ) as [BigNumber, BigNumber];
592
+ ) as [bigint, bigint];
595
593
  const perpId = this.getPerpIdFromSymbol(orders[0].symbol);
596
594
  const fAmounts = orders.map((order) => floatToABK64x64(order.quantity * (order.side == BUY_SIDE ? 1 : -1)));
597
595
  const orderBook = this.getOrderBookContract(orders[0].symbol).connect(provider);
@@ -601,13 +599,13 @@ export default class OrderExecutorTool extends WriteAccessHandler {
601
599
  let proxyCalls: Multicall3.Call3Struct[] = [
602
600
  // 0: amm state to get the mark price
603
601
  {
604
- target: this.proxyContract.address,
602
+ target: this.proxyContract.target,
605
603
  allowFailure: false,
606
604
  callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
607
605
  },
608
606
  // 1: block timestamp
609
607
  {
610
- target: this.multicall.address,
608
+ target: this.multicall.target,
611
609
  allowFailure: false,
612
610
  callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
613
611
  },
@@ -615,7 +613,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
615
613
 
616
614
  // status calls
617
615
  const statusCalls: Multicall3.Call3Struct[] = orderIds.map((orderId) => ({
618
- target: orderBook.address,
616
+ target: orderBook.target,
619
617
  allowFailure: false,
620
618
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
621
619
  }));
@@ -623,7 +621,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
623
621
 
624
622
  // price calls
625
623
  const priceCalls: Multicall3.Call3Struct[] = fAmounts.map((fAmount) => ({
626
- target: this.proxyContract!.address,
624
+ target: this.proxyContract!.target,
627
625
  allowFailure: false,
628
626
  callData: this.proxyContract!.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
629
627
  }));
@@ -634,12 +632,12 @@ export default class OrderExecutorTool extends WriteAccessHandler {
634
632
  .filter(
635
633
  (order) =>
636
634
  order.parentChildOrderIds != undefined &&
637
- order.parentChildOrderIds[0] == HashZero &&
638
- order.parentChildOrderIds[1] != HashZero
635
+ order.parentChildOrderIds[0] == ZeroHash &&
636
+ order.parentChildOrderIds[1] != ZeroHash
639
637
  )
640
638
  .map((order) => {
641
639
  return {
642
- target: orderBook.address,
640
+ target: orderBook.target,
643
641
  allowFailure: false,
644
642
  callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds![1]]),
645
643
  };
@@ -647,23 +645,21 @@ export default class OrderExecutorTool extends WriteAccessHandler {
647
645
  proxyCalls = proxyCalls.concat(parentStatusCalls);
648
646
 
649
647
  // --- multicall ---
650
- const encodedResults = await multicall.callStatic.aggregate3(proxyCalls, overrides || {});
648
+ const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
651
649
 
652
650
  // mark price
653
651
  const ammState = this.proxyContract.interface.decodeFunctionResult(
654
652
  "getAMMState",
655
653
  encodedResults[0].returnData
656
- )[0] as BigNumber[];
654
+ )[0] as bigint[];
657
655
  const markPrice = indexPrices[0] * (1 + ABK64x64ToFloat(ammState[8]));
658
656
 
659
657
  // block timestamp
660
- const ts = (
661
- this.multicall.interface.decodeFunctionResult(
662
- "getCurrentBlockTimestamp",
663
- encodedResults[1].returnData
664
- )[0] as BigNumber
665
- ).toNumber();
666
- blockTimestamp = Math.max(ts, blockTimestamp ?? 0);
658
+ const ts = this.multicall.interface.decodeFunctionResult(
659
+ "getCurrentBlockTimestamp",
660
+ encodedResults[1].returnData
661
+ )[0] as bigint;
662
+ blockTimestamp = Math.max(Number(ts), blockTimestamp ?? 0);
667
663
 
668
664
  // order status
669
665
  const isOrderOpen = encodedResults.slice(2, 2 + orders.length).map((encodedResult) => {
@@ -674,10 +670,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
674
670
  // order prices
675
671
  const orderPrices = encodedResults.slice(2 + orders.length, 2 + 2 * orders.length).map((encodedResult) => {
676
672
  const orderPrice = ABK64x64ToFloat(
677
- this.proxyContract!.interface.decodeFunctionResult(
678
- "queryPerpetualPrice",
679
- encodedResult.returnData
680
- )[0] as BigNumber
673
+ this.proxyContract!.interface.decodeFunctionResult("queryPerpetualPrice", encodedResult.returnData)[0] as bigint
681
674
  );
682
675
  return orderPrice;
683
676
  });
@@ -689,8 +682,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
689
682
  const order = orders[i];
690
683
  const hasParent =
691
684
  order.parentChildOrderIds != undefined &&
692
- order.parentChildOrderIds[0] == HashZero &&
693
- order.parentChildOrderIds[1] != HashZero;
685
+ order.parentChildOrderIds[0] == ZeroHash &&
686
+ order.parentChildOrderIds[1] != ZeroHash;
694
687
  if (hasParent) {
695
688
  const iParentStatus = orderBook.interface.decodeFunctionResult(
696
689
  "getOrderStatus",
@@ -790,6 +783,6 @@ export default class OrderExecutorTool extends WriteAccessHandler {
790
783
  if (this.signer == null) {
791
784
  throw Error("no wallet initialized. Use createProxyInstance().");
792
785
  }
793
- return await this.signer.getTransactionCount(blockTag);
786
+ return await this.signer.getNonce(blockTag);
794
787
  }
795
788
  }