@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
package/src/d8XMath.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
1
+ import { BigNumberish } from "ethers";
2
2
  import { DECIMALS, ONE_64x64 } from "./constants";
3
3
 
4
4
  /**
@@ -12,7 +12,7 @@ import { DECIMALS, ONE_64x64 } from "./constants";
12
12
  * @param {BigNumber|number} x number in ABDK-format/2^35
13
13
  * @returns {number} x/2^64 in number-format (float)
14
14
  */
15
- export function ABDK29ToFloat(x: BigNumber | number): number {
15
+ export function ABDK29ToFloat(x: bigint | number): number {
16
16
  return Number(x) / 2 ** 29;
17
17
  }
18
18
 
@@ -22,22 +22,21 @@ export function ABDK29ToFloat(x: BigNumber | number): number {
22
22
  * @param {BigNumberish|number} x number in ABDK-format or 2^29
23
23
  * @returns {number} x/2^64 in number-format (float)
24
24
  */
25
- export function ABK64x64ToFloat(x: BigNumberish | number): number {
25
+ export function ABK64x64ToFloat(x: bigint | number): number {
26
26
  if (typeof x == "number") {
27
27
  return x / 2 ** 29;
28
28
  }
29
- x = BigNumber.from(x);
30
- let s = x.lt(0) ? -1 : 1;
31
- x = x.mul(s);
32
- let xInt = x.div(ONE_64x64);
33
- let dec18 = BigNumber.from(10).pow(BigNumber.from(18));
34
- let xDec = x.sub(xInt.mul(ONE_64x64));
35
- xDec = xDec.mul(dec18).div(ONE_64x64);
29
+ let s = x < 0n ? -1n : 1n;
30
+ x = x * s;
31
+ let xInt = x / ONE_64x64;
32
+ let dec18 = 10n ** 18n; // BigNumber.from(10).pow(BigNumber.from(18));
33
+ let xDec = x - xInt * ONE_64x64;
34
+ xDec = (xDec * dec18) / ONE_64x64;
36
35
  let k = 18 - xDec.toString().length;
37
36
  // console.assert(k >= 0);
38
37
  let sPad = "0".repeat(k);
39
38
  let NumberStr = xInt.toString() + "." + sPad + xDec.toString();
40
- return parseFloat(NumberStr) * s;
39
+ return parseFloat(NumberStr) * Number(s);
41
40
  }
42
41
 
43
42
  /**
@@ -45,18 +44,19 @@ export function ABK64x64ToFloat(x: BigNumberish | number): number {
45
44
  * @param {BigNumberish} x BigNumber in Dec-N format
46
45
  * @returns {number} x as a float (number)
47
46
  */
48
- export function decNToFloat(x: BigNumberish, numDec: number) {
47
+ export function decNToFloat(x: BigNumberish, numDec: BigNumberish): number {
49
48
  //x: BigNumber in DecN format to float
50
- const DECIMALS = BigNumber.from(10).pow(BigNumber.from(numDec));
51
- x = BigNumber.from(x);
52
- let s = x.lt(0) ? -1 : 1;
53
- x = x.mul(s);
54
- let xInt = x.div(DECIMALS);
55
- let xDec = x.sub(xInt.mul(DECIMALS));
56
- let k = numDec - xDec.toString().length;
49
+ const DECIMALS = 10n ** BigInt(numDec); // BigNumber.from(10).pow(BigNumber.from(numDec));
50
+ x = BigInt(x);
51
+ numDec = BigInt(numDec);
52
+ let s = x < 0n ? -1n : 1n;
53
+ x = x * s;
54
+ let xInt = x / DECIMALS;
55
+ let xDec = x - xInt * DECIMALS;
56
+ let k = Number(numDec) - xDec.toString().length;
57
57
  let sPad = "0".repeat(k);
58
58
  let NumberStr = xInt.toString() + "." + sPad + xDec.toString();
59
- return parseFloat(NumberStr) * s;
59
+ return parseFloat(NumberStr) * Number(s);
60
60
  }
61
61
 
62
62
  /**
@@ -66,38 +66,38 @@ export function decNToFloat(x: BigNumberish, numDec: number) {
66
66
  */
67
67
  export function dec18ToFloat(x: BigNumberish): number {
68
68
  //x: BigNumber in Dec18 format to float
69
- x = BigNumber.from(x);
70
- let s = x.lt(0) ? -1 : 1;
71
- x = x.mul(s);
72
- let xInt = x.div(DECIMALS);
73
- let xDec = x.sub(xInt.mul(DECIMALS));
69
+ x = BigInt(x);
70
+ let s = x < 0n ? -1n : 1n;
71
+ x = x * s;
72
+ let xInt = x / DECIMALS;
73
+ let xDec = x - xInt * DECIMALS;
74
74
  let k = 18 - xDec.toString().length;
75
75
  let sPad = "0".repeat(k);
76
76
  let NumberStr = xInt.toString() + "." + sPad + xDec.toString();
77
- return parseFloat(NumberStr) * s;
77
+ return parseFloat(NumberStr) * Number(s);
78
78
  }
79
79
 
80
80
  /**
81
81
  * Converts x into ABDK64x64 format
82
82
  * @param {number} x number (float)
83
- * @returns {BigNumber} x^64 in big number format
83
+ * @returns {bigint} x^64 in big number format
84
84
  */
85
- export function floatToABK64x64(x: number): BigNumber {
85
+ export function floatToABK64x64(x: number): bigint {
86
86
  // convert float to ABK64x64 bigint-format
87
87
  // Create string from number with 18 decimals
88
88
  if (x === 0) {
89
- return BigNumber.from(0);
89
+ return 0n;
90
90
  }
91
91
  let sg = Math.sign(x);
92
92
  x = Math.abs(x);
93
93
  let strX = Number(x).toFixed(18);
94
94
  const arrX = strX.split(".");
95
- let xInt = BigNumber.from(arrX[0]);
96
- let xDec = BigNumber.from(arrX[1]);
97
- let xIntBig = xInt.mul(ONE_64x64);
98
- let dec18 = BigNumber.from(10).pow(BigNumber.from(18));
99
- let xDecBig = xDec.mul(ONE_64x64).div(dec18);
100
- return xIntBig.add(xDecBig).mul(sg);
95
+ let xInt = BigInt(arrX[0]);
96
+ let xDec = BigInt(arrX[1]);
97
+ let xIntBig = xInt * ONE_64x64;
98
+ let dec18 = 10n ** 18n; //BigNumber.from(10).pow(BigNumber.from(18));
99
+ let xDecBig = (xDec * ONE_64x64) / dec18;
100
+ return (xIntBig + xDecBig) * BigInt(sg);
101
101
  }
102
102
 
103
103
  /**
@@ -105,19 +105,19 @@ export function floatToABK64x64(x: number): BigNumber {
105
105
  * @param {number} x number (float)
106
106
  * @returns {BigNumber} x as a BigNumber in Dec18 format
107
107
  */
108
- export function floatToDec18(x: number): BigNumber {
108
+ export function floatToDec18(x: number): bigint {
109
109
  // float number to dec 18
110
110
  if (x === 0) {
111
- return BigNumber.from(0);
111
+ return 0n;
112
112
  }
113
113
  let sg = Math.sign(x);
114
114
  x = Math.abs(x);
115
115
  let strX = x.toFixed(18);
116
116
  const arrX = strX.split(".");
117
- let xInt = BigNumber.from(arrX[0]);
118
- let xDec = BigNumber.from(arrX[1]);
119
- let xIntBig = xInt.mul(DECIMALS);
120
- return xIntBig.add(xDec).mul(sg);
117
+ let xInt = BigInt(arrX[0]);
118
+ let xDec = BigInt(arrX[1]);
119
+ let xIntBig = xInt * DECIMALS;
120
+ return (xIntBig + xDec) * BigInt(sg);
121
121
  }
122
122
 
123
123
  /**
@@ -126,19 +126,19 @@ export function floatToDec18(x: number): BigNumber {
126
126
  * @param {number} decimals number of decimals
127
127
  * @returns {BigNumber} x as a BigNumber in Dec18 format
128
128
  */
129
- export function floatToDecN(x: number, decimals: number): BigNumber {
129
+ export function floatToDecN(x: number, decimals: number): bigint {
130
130
  // float number to dec 18
131
131
  if (x === 0) {
132
- return BigNumber.from(0);
132
+ return 0n;
133
133
  }
134
134
  let sg = Math.sign(x);
135
135
  x = Math.abs(x);
136
136
  let strX = x.toFixed(decimals);
137
137
  const arrX = strX.split(".");
138
- let xInt = BigNumber.from(arrX[0]);
139
- let xDec = BigNumber.from(arrX[1]);
140
- let xIntBig = xInt.mul(BigNumber.from(10).pow(BigNumber.from(decimals)));
141
- return xIntBig.add(xDec).mul(sg);
138
+ let xInt = BigInt(arrX[0]);
139
+ let xDec = BigInt(arrX[1]);
140
+ let xIntBig = xInt * 10n ** BigInt(decimals);
141
+ return (xIntBig + xDec) * BigInt(sg);
142
142
  }
143
143
 
144
144
  /**
@@ -189,22 +189,22 @@ export function roundToLotString(x: number, lot: number, precision: number = 7):
189
189
 
190
190
  /**
191
191
  *
192
- * @param {BigNumber} x
193
- * @param {BigNumber} y
194
- * @returns {BigNumber} x * y
192
+ * @param {bigint} x
193
+ * @param {bigint} y
194
+ * @returns {bigint} x * y
195
195
  */
196
- export function mul64x64(x: BigNumber, y: BigNumber) {
197
- return x.mul(y).div(ONE_64x64);
196
+ export function mul64x64(x: bigint, y: bigint): bigint {
197
+ return (x * y) / ONE_64x64;
198
198
  }
199
199
 
200
200
  /**
201
201
  *
202
- * @param {BigNumber} x
203
- * @param {BigNumber} y
204
- * @returns {BigNumber} x / y
202
+ * @param {bigint} x
203
+ * @param {bigint} y
204
+ * @returns {bigint} x / y
205
205
  */
206
- export function div64x64(x: BigNumber, y: BigNumber) {
207
- return x.mul(ONE_64x64).div(y);
206
+ export function div64x64(x: bigint, y: bigint): bigint {
207
+ return (x * ONE_64x64) / y;
208
208
  }
209
209
 
210
210
  /**
@@ -1,7 +1,5 @@
1
- import { Signer } from "@ethersproject/abstract-signer";
2
- import { BigNumber } from "@ethersproject/bignumber";
3
- import type { CallOverrides, ContractTransaction, PayableOverrides } from "@ethersproject/contracts";
4
- import { StaticJsonRpcProvider } from "@ethersproject/providers";
1
+ import { ContractTransactionResponse, JsonRpcProvider, Overrides, Signer, TransactionResponse } from "ethers";
2
+ import { PayableOverrides } from "./contracts/common";
5
3
  import { IPyth__factory } from "./contracts/factories";
6
4
  import { ABK64x64ToFloat, floatToABK64x64 } from "./d8XMath";
7
5
  import type { NodeSDKConfig, PriceFeedSubmission } from "./nodeSDKTypes";
@@ -49,7 +47,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
49
47
  if (overrides) {
50
48
  ({ rpcURL, ...overrides } = overrides);
51
49
  }
52
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
50
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
53
51
  let perpID = LiquidatorTool.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
54
52
  if (priceUpdates == undefined) {
55
53
  priceUpdates = await this.fetchLatestFeedPriceInfo(symbol);
@@ -101,7 +99,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
101
99
  liquidatorAddr: string = "",
102
100
  submission?: PriceFeedSubmission,
103
101
  overrides?: PayableOverrides & { rpcURL?: string; splitTx?: boolean }
104
- ): Promise<ContractTransaction> {
102
+ ): Promise<TransactionResponse> {
105
103
  // this operation spends gas, so signer is required
106
104
  if (this.proxyContract == null || this.signer == null) {
107
105
  throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
@@ -115,7 +113,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
115
113
  if (overrides) {
116
114
  ({ rpcURL, splitTx, ...overrides } = overrides);
117
115
  }
118
- const provider = new StaticJsonRpcProvider(rpcURL ?? this.nodeURL);
116
+ const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
119
117
  let perpID = LiquidatorTool.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
120
118
  if (submission == undefined) {
121
119
  submission = await this.fetchLatestFeedPriceInfo(symbol);
@@ -166,9 +164,8 @@ export default class LiquidatorTool extends WriteAccessHandler {
166
164
  ]);
167
165
  value = this.PRICE_UPDATE_FEE_GWEI * submission.timestamps.length;
168
166
  }
169
- if (overrides?.nonce !== undefined) {
170
- const nonce = await overrides!.nonce;
171
- overrides.nonce = BigNumber.from(nonce).add(nonceInc);
167
+ if (!!overrides?.nonce) {
168
+ overrides.nonce = overrides.nonce + nonceInc;
172
169
  }
173
170
  let unsignedTx = {
174
171
  to: this.proxyAddr,
@@ -213,7 +210,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
213
210
  symbol: string,
214
211
  traderAddr: string,
215
212
  indexPrices?: [number, number],
216
- overrides?: CallOverrides
213
+ overrides?: Overrides
217
214
  ): Promise<boolean> {
218
215
  if (this.proxyContract == null) {
219
216
  throw Error("no proxy contract initialized. Use createProxyInstance().");
@@ -228,7 +225,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
228
225
  let traderState = await this.proxyContract.getTraderState(
229
226
  perpID,
230
227
  traderAddr,
231
- indexPrices.map((x) => floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x)) as [BigNumber, BigNumber],
228
+ indexPrices.map((x) => floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x)) as [bigint, bigint],
232
229
  overrides || {}
233
230
  );
234
231
  if (traderState[idx_notional].eq(0)) {
@@ -269,7 +266,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
269
266
  *
270
267
  * @returns {number} Number of active accounts.
271
268
  */
272
- public async countActivePerpAccounts(symbol: string, overrides?: CallOverrides): Promise<number> {
269
+ public async countActivePerpAccounts(symbol: string, overrides?: Overrides): Promise<number> {
273
270
  if (this.proxyContract == null) {
274
271
  throw Error("no proxy contract initialized. Use createProxyInstance().");
275
272
  }
@@ -304,7 +301,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
304
301
  symbol: string,
305
302
  from: number,
306
303
  to: number,
307
- overrides?: CallOverrides
304
+ overrides?: Overrides
308
305
  ): Promise<string[]> {
309
306
  if (this.proxyContract == null) {
310
307
  throw Error("no proxy contract initialized. Use createProxyInstance().");
@@ -333,7 +330,7 @@ export default class LiquidatorTool extends WriteAccessHandler {
333
330
  *
334
331
  * @returns {string[]} Array of addresses.
335
332
  */
336
- public async getAllActiveAccounts(symbol: string, overrides?: CallOverrides): Promise<string[]> {
333
+ public async getAllActiveAccounts(symbol: string, overrides?: Overrides): Promise<string[]> {
337
334
  // checks are done inside the intermediate functions
338
335
  let totalAccounts = await this.countActivePerpAccounts(symbol);
339
336
  return await this.getActiveAccountsByChunks(symbol, 0, totalAccounts, overrides);
@@ -1,5 +1,4 @@
1
- import { Signer } from "@ethersproject/abstract-signer";
2
- import type { ContractTransaction, Overrides } from "@ethersproject/contracts";
1
+ import { ContractTransactionResponse, Overrides, Signer } from "ethers";
3
2
  import { floatToDec18, floatToDecN } from "./d8XMath";
4
3
  import type { NodeSDKConfig } from "./nodeSDKTypes";
5
4
  import PerpetualDataHandler from "./perpetualDataHandler";
@@ -60,7 +59,7 @@ export default class LiquidityProviderTool extends WriteAccessHandler {
60
59
  poolSymbolName: string,
61
60
  amountCC: number,
62
61
  overrides?: Overrides
63
- ): Promise<ContractTransaction> {
62
+ ): Promise<ContractTransactionResponse> {
64
63
  if (this.proxyContract == null || this.signer == null) {
65
64
  throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
66
65
  }
@@ -101,7 +100,7 @@ export default class LiquidityProviderTool extends WriteAccessHandler {
101
100
  poolSymbolName: string,
102
101
  amountPoolShares: number,
103
102
  overrides?: Overrides
104
- ): Promise<ContractTransaction> {
103
+ ): Promise<ContractTransactionResponse> {
105
104
  if (this.proxyContract == null || this.signer == null) {
106
105
  throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
107
106
  }
@@ -135,7 +134,10 @@ export default class LiquidityProviderTool extends WriteAccessHandler {
135
134
  *
136
135
  * @returns Transaction object.
137
136
  */
138
- public async executeLiquidityWithdrawal(poolSymbolName: string, overrides?: Overrides): Promise<ContractTransaction> {
137
+ public async executeLiquidityWithdrawal(
138
+ poolSymbolName: string,
139
+ overrides?: Overrides
140
+ ): Promise<ContractTransactionResponse> {
139
141
  if (this.proxyContract == null || this.signer == null) {
140
142
  throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
141
143
  }