@d8x/perpetuals-sdk 0.1.12 → 0.2.0

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 (165) hide show
  1. package/dist/cjs/abi/testnet/IPerpetualManager.json +5215 -0
  2. package/dist/cjs/abi/testnet/LimitOrderBook.json +1075 -0
  3. package/dist/cjs/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
  4. package/dist/cjs/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
  5. package/dist/cjs/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
  6. package/dist/cjs/accountTrade.js +441 -0
  7. package/dist/cjs/accountTrade.js.map +1 -0
  8. package/dist/{src → cjs}/brokerTool.js +31 -84
  9. package/dist/cjs/brokerTool.js.map +1 -0
  10. package/dist/cjs/config/defaultConfig.json +47 -0
  11. package/dist/cjs/config/mockSwap.json +4 -0
  12. package/dist/cjs/config/priceFeedConfig.json +104 -0
  13. package/dist/cjs/config/symbolList.json +13 -0
  14. package/dist/cjs/d8XMath.js.map +1 -0
  15. package/dist/cjs/index.js +29 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/liquidatorTool.js +287 -0
  18. package/dist/cjs/liquidatorTool.js.map +1 -0
  19. package/dist/{src → cjs}/liquidityProviderTool.js +12 -65
  20. package/dist/cjs/liquidityProviderTool.js.map +1 -0
  21. package/dist/{src → cjs}/marketData.js +52 -134
  22. package/dist/cjs/marketData.js.map +1 -0
  23. package/dist/{src → cjs}/nodeSDKTypes.d.ts +5 -5
  24. package/dist/cjs/nodeSDKTypes.js +64 -0
  25. package/dist/cjs/nodeSDKTypes.js.map +1 -0
  26. package/dist/{src → cjs}/orderReferrerTool.d.ts +12 -5
  27. package/dist/{src → cjs}/orderReferrerTool.js +114 -112
  28. package/dist/cjs/orderReferrerTool.js.map +1 -0
  29. package/dist/{src → cjs}/perpetualDataHandler.d.ts +1 -1
  30. package/dist/{src → cjs}/perpetualDataHandler.js +47 -109
  31. package/dist/cjs/perpetualDataHandler.js.map +1 -0
  32. package/dist/{src → cjs}/perpetualEventHandler.d.ts +3 -3
  33. package/dist/{src → cjs}/perpetualEventHandler.js +12 -74
  34. package/dist/cjs/perpetualEventHandler.js.map +1 -0
  35. package/dist/cjs/priceFeeds.js +466 -0
  36. package/dist/cjs/priceFeeds.js.map +1 -0
  37. package/dist/{src → cjs}/traderDigests.js +7 -43
  38. package/dist/cjs/traderDigests.js.map +1 -0
  39. package/dist/{src → cjs}/traderInterface.js +13 -66
  40. package/dist/cjs/traderInterface.js.map +1 -0
  41. package/dist/{src → cjs}/triangulator.js +2 -17
  42. package/dist/cjs/triangulator.js.map +1 -0
  43. package/dist/{src → cjs}/utils.js +3 -29
  44. package/dist/cjs/utils.js.map +1 -0
  45. package/dist/cjs/version.d.ts +1 -0
  46. package/dist/{src → cjs}/version.js +1 -1
  47. package/dist/cjs/version.js.map +1 -0
  48. package/dist/{src → cjs}/writeAccessHandler.js +12 -65
  49. package/dist/cjs/writeAccessHandler.js.map +1 -0
  50. package/dist/esm/abi/ERC20.json +288 -0
  51. package/dist/esm/abi/MockTokenSwap.json +186 -0
  52. package/dist/{abi/testnet → esm/abi/central-park}/IPerpetualManager.json +404 -214
  53. package/dist/{abi/testnet → esm/abi/central-park}/LimitOrderBook.json +197 -15
  54. package/dist/esm/abi/central-park/LimitOrderBookFactory.json +135 -0
  55. package/dist/esm/abi/testnet/IPerpetualManager.json +5215 -0
  56. package/dist/esm/abi/testnet/LimitOrderBook.json +1075 -0
  57. package/dist/esm/abi/testnet/LimitOrderBookFactory.json +135 -0
  58. package/dist/esm/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
  59. package/dist/esm/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
  60. package/dist/esm/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
  61. package/dist/esm/accountTrade.d.ts +221 -0
  62. package/dist/{src → esm}/accountTrade.js +22 -93
  63. package/dist/esm/accountTrade.js.map +1 -0
  64. package/dist/esm/brokerTool.d.ts +318 -0
  65. package/dist/esm/brokerTool.js +572 -0
  66. package/dist/esm/brokerTool.js.map +1 -0
  67. package/dist/esm/config/defaultConfig.json +47 -0
  68. package/dist/esm/config/mockSwap.json +4 -0
  69. package/dist/esm/config/priceFeedConfig.json +104 -0
  70. package/dist/esm/config/symbolList.json +13 -0
  71. package/dist/esm/d8XMath.d.ts +122 -0
  72. package/dist/esm/d8XMath.js +247 -0
  73. package/dist/esm/d8XMath.js.map +1 -0
  74. package/{src/index.ts → dist/esm/index.d.ts} +1 -15
  75. package/dist/esm/index.js +16 -0
  76. package/dist/esm/index.js.map +1 -0
  77. package/dist/esm/liquidatorTool.d.ts +158 -0
  78. package/dist/{src → esm}/liquidatorTool.js +10 -65
  79. package/dist/esm/liquidatorTool.js.map +1 -0
  80. package/dist/esm/liquidityProviderTool.d.ts +126 -0
  81. package/dist/esm/liquidityProviderTool.js +218 -0
  82. package/dist/esm/liquidityProviderTool.js.map +1 -0
  83. package/dist/esm/marketData.d.ts +309 -0
  84. package/dist/esm/marketData.js +1007 -0
  85. package/dist/esm/marketData.js.map +1 -0
  86. package/dist/esm/nodeSDKTypes.d.ts +266 -0
  87. package/dist/esm/nodeSDKTypes.js +60 -0
  88. package/dist/esm/nodeSDKTypes.js.map +1 -0
  89. package/dist/esm/orderReferrerTool.d.ts +196 -0
  90. package/dist/esm/orderReferrerTool.js +491 -0
  91. package/dist/esm/orderReferrerTool.js.map +1 -0
  92. package/dist/esm/perpetualDataHandler.d.ts +220 -0
  93. package/dist/esm/perpetualDataHandler.js +1060 -0
  94. package/dist/esm/perpetualDataHandler.js.map +1 -0
  95. package/dist/esm/perpetualEventHandler.d.ts +179 -0
  96. package/dist/esm/perpetualEventHandler.js +435 -0
  97. package/dist/esm/perpetualEventHandler.js.map +1 -0
  98. package/dist/esm/priceFeeds.d.ts +115 -0
  99. package/dist/{src → esm}/priceFeeds.js +16 -83
  100. package/dist/esm/priceFeeds.js.map +1 -0
  101. package/dist/esm/traderDigests.d.ts +21 -0
  102. package/dist/esm/traderDigests.js +80 -0
  103. package/dist/esm/traderDigests.js.map +1 -0
  104. package/dist/esm/traderInterface.d.ts +79 -0
  105. package/dist/esm/traderInterface.js +196 -0
  106. package/dist/esm/traderInterface.js.map +1 -0
  107. package/dist/esm/triangulator.d.ts +27 -0
  108. package/dist/esm/triangulator.js +110 -0
  109. package/dist/esm/triangulator.js.map +1 -0
  110. package/dist/esm/utils.d.ts +59 -0
  111. package/dist/esm/utils.js +138 -0
  112. package/dist/esm/utils.js.map +1 -0
  113. package/dist/esm/version.d.ts +1 -0
  114. package/dist/esm/version.js +2 -0
  115. package/dist/esm/version.js.map +1 -0
  116. package/dist/esm/writeAccessHandler.d.ts +50 -0
  117. package/dist/esm/writeAccessHandler.js +157 -0
  118. package/dist/esm/writeAccessHandler.js.map +1 -0
  119. package/package.json +16 -26
  120. package/dist/bundle.js +0 -36793
  121. package/dist/config/defaultConfig.json +0 -47
  122. package/dist/config/mockSwap.json +0 -4
  123. package/dist/config/priceFeedConfig.json +0 -104
  124. package/dist/config/symbolList.json +0 -13
  125. package/dist/src/index.js +0 -45
  126. package/dist/src/nodeSDKTypes.js +0 -115
  127. package/dist/src/version.d.ts +0 -1
  128. package/module.d.ts +0 -1
  129. package/src/accountTrade.ts +0 -392
  130. package/src/brokerTool.ts +0 -507
  131. package/src/d8XMath.ts +0 -319
  132. package/src/liquidatorTool.ts +0 -258
  133. package/src/liquidityProviderTool.ts +0 -186
  134. package/src/marketData.ts +0 -946
  135. package/src/nodeSDKTypes.ts +0 -293
  136. package/src/orderReferrerTool.ts +0 -389
  137. package/src/perpetualDataHandler.ts +0 -1061
  138. package/src/perpetualEventHandler.ts +0 -455
  139. package/src/priceFeeds.ts +0 -381
  140. package/src/traderDigests.ts +0 -91
  141. package/src/traderInterface.ts +0 -159
  142. package/src/triangulator.ts +0 -105
  143. package/src/utils.ts +0 -134
  144. package/src/version.ts +0 -1
  145. package/src/writeAccessHandler.ts +0 -127
  146. /package/dist/{abi → cjs/abi}/ERC20.json +0 -0
  147. /package/dist/{abi → cjs/abi}/MockTokenSwap.json +0 -0
  148. /package/dist/{abi → cjs/abi}/central-park/IPerpetualManager.json +0 -0
  149. /package/dist/{abi → cjs/abi}/central-park/LimitOrderBook.json +0 -0
  150. /package/dist/{abi → cjs/abi}/central-park/LimitOrderBookFactory.json +0 -0
  151. /package/dist/{abi → cjs/abi}/testnet/LimitOrderBookFactory.json +0 -0
  152. /package/dist/{src → cjs}/accountTrade.d.ts +0 -0
  153. /package/dist/{src → cjs}/brokerTool.d.ts +0 -0
  154. /package/dist/{src → cjs}/d8XMath.d.ts +0 -0
  155. /package/dist/{src → cjs}/d8XMath.js +0 -0
  156. /package/dist/{src → cjs}/index.d.ts +0 -0
  157. /package/dist/{src → cjs}/liquidatorTool.d.ts +0 -0
  158. /package/dist/{src → cjs}/liquidityProviderTool.d.ts +0 -0
  159. /package/dist/{src → cjs}/marketData.d.ts +0 -0
  160. /package/dist/{src → cjs}/priceFeeds.d.ts +0 -0
  161. /package/dist/{src → cjs}/traderDigests.d.ts +0 -0
  162. /package/dist/{src → cjs}/traderInterface.d.ts +0 -0
  163. /package/dist/{src → cjs}/triangulator.d.ts +0 -0
  164. /package/dist/{src → cjs}/utils.d.ts +0 -0
  165. /package/dist/{src → cjs}/writeAccessHandler.d.ts +0 -0
@@ -0,0 +1,104 @@
1
+ [
2
+ {
3
+ "network": "testnet",
4
+ "ids": [
5
+ {
6
+ "symbol": "BTC-USD",
7
+ "id": "0xf9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b",
8
+ "type": "pyth",
9
+ "origin": "Crypto.BTC/USD"
10
+ },
11
+ {
12
+ "symbol": "ETH-USD",
13
+ "id": "0xca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6",
14
+ "type": "pyth",
15
+ "origin": "Crypto.ETH/USD"
16
+ },
17
+ {
18
+ "symbol": "MATIC-USD",
19
+ "id": "0xd2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5",
20
+ "type": "pyth",
21
+ "origin": "Crypto.MATIC/USD"
22
+ },
23
+ {
24
+ "symbol": "USDC-USD",
25
+ "id": "0x41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722",
26
+ "type": "pyth",
27
+ "origin": "Crypto.USDC/USD"
28
+ },
29
+ {
30
+ "symbol": "XAU-USD",
31
+ "id": "0x30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e",
32
+ "type": "pyth",
33
+ "origin": "Metal.XAU/USD"
34
+ },
35
+ {
36
+ "symbol": "USD-CHF",
37
+ "id": "0x796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb",
38
+ "type": "pyth",
39
+ "origin": "FX.USD/CHF"
40
+ },
41
+ {
42
+ "symbol": "GBP-USD",
43
+ "id": "0xbcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd",
44
+ "type": "pyth",
45
+ "origin": "FX.GBP/USD"
46
+ },
47
+ {
48
+ "symbol": "EUR-USD",
49
+ "id": "0xc1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154",
50
+ "type": "pyth",
51
+ "origin": "FX.EUR/USD"
52
+ },
53
+ {
54
+ "symbol": "USD-JPY",
55
+ "id": "0x20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776",
56
+ "type": "pyth",
57
+ "origin": "FX.USD/JPY"
58
+ }
59
+ ],
60
+ "endpoints": [{ "type": "pyth", "endpoint": "https://pyth.testnet.quantena.tech/api" }]
61
+ },
62
+ {
63
+ "network": "mainnet",
64
+ "ids": [
65
+ {
66
+ "symbol": "USDC-USD",
67
+ "id": "0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
68
+ "type": "pyth",
69
+ "origin": "Crypto.USDC/USD"
70
+ },
71
+ {
72
+ "symbol": "BTC-USD",
73
+ "id": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
74
+ "type": "pyth",
75
+ "origin": "Crypto.BTC/USD"
76
+ },
77
+ {
78
+ "symbol": "ETH-USD",
79
+ "id": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
80
+ "type": "pyth",
81
+ "origin": "Crypto.ETH/USD"
82
+ },
83
+ {
84
+ "symbol": "MATIC-USD",
85
+ "id": "0x5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52",
86
+ "type": "pyth",
87
+ "origin": "Crypto.MATIC/USD"
88
+ },
89
+ {
90
+ "symbol": "USD-CHF",
91
+ "id": "0x0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8",
92
+ "type": "pyth",
93
+ "origin": "FX.USD/CHF"
94
+ },
95
+ {
96
+ "symbol": "XAU-USD",
97
+ "id": "0x765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2",
98
+ "type": "pyth",
99
+ "origin": "Metal.XAU/USD"
100
+ }
101
+ ],
102
+ "endpoints": [{ "type": "pyth", "endpoint": "" }]
103
+ }
104
+ ]
@@ -0,0 +1,13 @@
1
+ {
2
+ "MATC": "MATIC",
3
+ "ETH": "ETH",
4
+ "BTC": "BTC",
5
+ "USDC": "USDC",
6
+ "XAU": "XAU",
7
+ "XAG": "XAG",
8
+ "USD": "USD",
9
+ "GBP": "GBP",
10
+ "CHF": "CHF",
11
+ "EUR": "EUR",
12
+ "JPY": "JPY"
13
+ }
@@ -0,0 +1,122 @@
1
+ import { BigNumber } from "ethers";
2
+ /**
3
+ * @module d8xMath
4
+ */
5
+ /**
6
+ * Convert ABK64x64 bigint-format to float.
7
+ * Result = x/2^64 if big number, x/2^29 if number
8
+ * @param {BigNumber|number} x number in ABDK-format or 2^29
9
+ * @returns {number} x/2^64 in number-format (float)
10
+ */
11
+ export declare function ABK64x64ToFloat(x: BigNumber | number): number;
12
+ /**
13
+ *
14
+ * @param {BigNumber} x BigNumber in Dec-N format
15
+ * @returns {number} x as a float (number)
16
+ */
17
+ export declare function decNToFloat(x: BigNumber, numDec: number): number;
18
+ /**
19
+ *
20
+ * @param {BigNumber} x BigNumber in Dec18 format
21
+ * @returns {number} x as a float (number)
22
+ */
23
+ export declare function dec18ToFloat(x: BigNumber): number;
24
+ /**
25
+ * Converts x into ABDK64x64 format
26
+ * @param {number} x number (float)
27
+ * @returns {BigNumber} x^64 in big number format
28
+ */
29
+ export declare function floatToABK64x64(x: number): BigNumber;
30
+ /**
31
+ *
32
+ * @param {number} x number (float)
33
+ * @returns {BigNumber} x as a BigNumber in Dec18 format
34
+ */
35
+ export declare function floatToDec18(x: number): BigNumber;
36
+ /**
37
+ *
38
+ * @param {BigNumber} x
39
+ * @param {BigNumber} y
40
+ * @returns {BigNumber} x * y
41
+ */
42
+ export declare function mul64x64(x: BigNumber, y: BigNumber): BigNumber;
43
+ /**
44
+ *
45
+ * @param {BigNumber} x
46
+ * @param {BigNumber} y
47
+ * @returns {BigNumber} x / y
48
+ */
49
+ export declare function div64x64(x: BigNumber, y: BigNumber): BigNumber;
50
+ /**
51
+ * Determine the liquidation price
52
+ * @param {number} LockedInValueQC - trader locked in value in quote currency
53
+ * @param {number} position - trader position in base currency
54
+ * @param {number} cash_cc - trader available margin cash in collateral currency
55
+ * @param {number} maintenance_margin_rate - maintenance margin ratio
56
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quuote collateral, = index S3 if quanto)
57
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos
58
+ */
59
+ export declare function calculateLiquidationPriceCollateralBase(LockedInValueQC: number, position: number, cash_cc: number, maintenance_margin_rate: number): number;
60
+ /**
61
+ * Determine the liquidation price
62
+ * @param {number} LockedInValueQC - trader locked in value in quote currency
63
+ * @param {number} position - trader position in base currency
64
+ * @param {number} cash_cc - trader available margin cash in collateral currency
65
+ * @param {number} maintenance_margin_rate - maintenance margin ratio
66
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quuote collateral, = index S3 if quanto)
67
+ * @param {number} Sm - mark price
68
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos
69
+ */
70
+ export declare function calculateLiquidationPriceCollateralQuanto(LockedInValueQC: number, position: number, cash_cc: number, maintenance_margin_rate: number, S3: number, Sm: number): number;
71
+ /**
72
+ * Determine the liquidation price
73
+ * @param {number} LockedInValueQC - trader locked in value in quote currency
74
+ * @param {number} position - trader position in base currency
75
+ * @param {number} cash_cc - trader available margin cash in collateral currency
76
+ * @param {number} maintenance_margin_rate - maintenance margin ratio
77
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quuote collateral, = index S3 if quanto)
78
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos
79
+ */
80
+ export declare function calculateLiquidationPriceCollateralQuote(LockedInValueQC: number, position: number, cash_cc: number, maintenance_margin_rate: number): number;
81
+ /**
82
+ *
83
+ * @param targetLeverage Leverage of the resulting position. It must be positive unless the resulting position is closed.
84
+ * @param currentPosition Current position size, in base currency, signed.
85
+ * @param currentLockedInValue Current locked in value, average entry price times position size, in quote currency.
86
+ * @param tradeAmount Trade amount, in base currency, signed.
87
+ * @param markPrice Mark price, positive.
88
+ * @param indexPriceS2 Index price, positive.
89
+ * @param indexPriceS3 Collateral index price, positive.
90
+ * @param tradePrice Expected price to trade tradeAmount.
91
+ * @param feeRate
92
+ * @returns {number} Total collateral amount needed for the new position to have he desired leverage.
93
+ */
94
+ export declare function getMarginRequiredForLeveragedTrade(targetLeverage: number | undefined, currentPosition: number, currentLockedInValue: number, tradeAmount: number, markPrice: number, indexPriceS2: number, indexPriceS3: number, tradePrice: number, feeRate: number): number;
95
+ export declare function getMaxSignedPositionSize(marginCollateral: number, currentPosition: number, currentLockedInValue: number, direction: number, limitPrice: number, initialMarginRate: number, feeRate: number, markPrice: number, indexPriceS2: number, indexPriceS3: number): number;
96
+ /**
97
+ * Compute the leverage resulting from a trade
98
+ * @param tradeAmount Amount to trade, in base currency, signed
99
+ * @param marginCollateral Amount of cash in the margin account, in collateral currency
100
+ * @param currentPosition Position size before the trade
101
+ * @param currentLockedInValue Locked-in value before the trade
102
+ * @param price Price charged to trade tradeAmount
103
+ * @param indexPriceS3 Spot price of the collateral currency when the trade happens
104
+ * @param markPrice Mark price of the index when the trade happens
105
+ * @returns Leverage of the resulting position
106
+ */
107
+ export declare function getNewPositionLeverage(tradeAmount: number, marginCollateral: number, currentPosition: number, currentLockedInValue: number, price: number, indexPriceS3: number, markPrice: number): number;
108
+ /**
109
+ * Determine amount to be deposited into margin account so that the given leverage
110
+ * is obtained when trading a position pos (trade amount = position)
111
+ * Does NOT include fees
112
+ * Smart contract equivalent: calcMarginForTargetLeverage(..., _ignorePosBalance = false & balance = b0)
113
+ * @param {number} pos0 - current position
114
+ * @param {number} b0 - current balance
115
+ * @param {number} tradeAmnt - amount to trade
116
+ * @param {number} targetLvg - target leverage
117
+ * @param {number} price - price to trade amount 'tradeAmnt'
118
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quote collateral, = index S3 if quanto)
119
+ * @param {number} S2Mark - mark price
120
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos before fees
121
+ */
122
+ export declare function getDepositAmountForLvgTrade(pos0: number, b0: number, tradeAmnt: number, targetLvg: number, price: number, S3: number, S2Mark: number): number;
@@ -0,0 +1,247 @@
1
+ import { BigNumber } from "ethers";
2
+ import { DECIMALS, ONE_64x64 } from "./nodeSDKTypes";
3
+ /**
4
+ * @module d8xMath
5
+ */
6
+ /**
7
+ * Convert ABK64x64 bigint-format to float.
8
+ * Result = x/2^64 if big number, x/2^29 if number
9
+ * @param {BigNumber|number} x number in ABDK-format or 2^29
10
+ * @returns {number} x/2^64 in number-format (float)
11
+ */
12
+ export function ABK64x64ToFloat(x) {
13
+ if (typeof x == "number") {
14
+ return x / Math.pow(2, 29);
15
+ }
16
+ var s = x.lt(0) ? -1 : 1;
17
+ x = x.mul(s);
18
+ var xInt = x.div(ONE_64x64);
19
+ var dec18 = BigNumber.from(10).pow(BigNumber.from(18));
20
+ var xDec = x.sub(xInt.mul(ONE_64x64));
21
+ xDec = xDec.mul(dec18).div(ONE_64x64);
22
+ var k = 18 - xDec.toString().length;
23
+ // console.assert(k >= 0);
24
+ var sPad = "0".repeat(k);
25
+ var NumberStr = xInt.toString() + "." + sPad + xDec.toString();
26
+ return parseFloat(NumberStr) * s;
27
+ }
28
+ /**
29
+ *
30
+ * @param {BigNumber} x BigNumber in Dec-N format
31
+ * @returns {number} x as a float (number)
32
+ */
33
+ export function decNToFloat(x, numDec) {
34
+ //x: BigNumber in DecN format to float
35
+ var DECIMALS = BigNumber.from(10).pow(BigNumber.from(numDec));
36
+ var s = x.lt(0) ? -1 : 1;
37
+ x = x.mul(s);
38
+ var xInt = x.div(DECIMALS);
39
+ var xDec = x.sub(xInt.mul(DECIMALS));
40
+ var k = numDec - xDec.toString().length;
41
+ var sPad = "0".repeat(k);
42
+ var NumberStr = xInt.toString() + "." + sPad + xDec.toString();
43
+ return parseFloat(NumberStr) * s;
44
+ }
45
+ /**
46
+ *
47
+ * @param {BigNumber} x BigNumber in Dec18 format
48
+ * @returns {number} x as a float (number)
49
+ */
50
+ export function dec18ToFloat(x) {
51
+ //x: BigNumber in Dec18 format to float
52
+ var s = x.lt(0) ? -1 : 1;
53
+ x = x.mul(s);
54
+ var xInt = x.div(DECIMALS);
55
+ var xDec = x.sub(xInt.mul(DECIMALS));
56
+ var k = 18 - xDec.toString().length;
57
+ var sPad = "0".repeat(k);
58
+ var NumberStr = xInt.toString() + "." + sPad + xDec.toString();
59
+ return parseFloat(NumberStr) * s;
60
+ }
61
+ /**
62
+ * Converts x into ABDK64x64 format
63
+ * @param {number} x number (float)
64
+ * @returns {BigNumber} x^64 in big number format
65
+ */
66
+ export function floatToABK64x64(x) {
67
+ // convert float to ABK64x64 bigint-format
68
+ // Create string from number with 18 decimals
69
+ if (x === 0) {
70
+ return BigNumber.from(0);
71
+ }
72
+ var sg = Math.sign(x);
73
+ x = Math.abs(x);
74
+ var strX = Number(x).toFixed(18);
75
+ var arrX = strX.split(".");
76
+ var xInt = BigNumber.from(arrX[0]);
77
+ var xDec = BigNumber.from(arrX[1]);
78
+ var xIntBig = xInt.mul(ONE_64x64);
79
+ var dec18 = BigNumber.from(10).pow(BigNumber.from(18));
80
+ var xDecBig = xDec.mul(ONE_64x64).div(dec18);
81
+ return xIntBig.add(xDecBig).mul(sg);
82
+ }
83
+ /**
84
+ *
85
+ * @param {number} x number (float)
86
+ * @returns {BigNumber} x as a BigNumber in Dec18 format
87
+ */
88
+ export function floatToDec18(x) {
89
+ // float number to dec 18
90
+ if (x === 0) {
91
+ return BigNumber.from(0);
92
+ }
93
+ var sg = Math.sign(x);
94
+ x = Math.abs(x);
95
+ var strX = x.toFixed(18);
96
+ var arrX = strX.split(".");
97
+ var xInt = BigNumber.from(arrX[0]);
98
+ var xDec = BigNumber.from(arrX[1]);
99
+ var xIntBig = xInt.mul(DECIMALS);
100
+ return xIntBig.add(xDec).mul(sg);
101
+ }
102
+ /**
103
+ *
104
+ * @param {BigNumber} x
105
+ * @param {BigNumber} y
106
+ * @returns {BigNumber} x * y
107
+ */
108
+ export function mul64x64(x, y) {
109
+ return x.mul(y).div(ONE_64x64);
110
+ }
111
+ /**
112
+ *
113
+ * @param {BigNumber} x
114
+ * @param {BigNumber} y
115
+ * @returns {BigNumber} x / y
116
+ */
117
+ export function div64x64(x, y) {
118
+ return x.mul(ONE_64x64).div(y);
119
+ }
120
+ /**
121
+ * Determine the liquidation price
122
+ * @param {number} LockedInValueQC - trader locked in value in quote currency
123
+ * @param {number} position - trader position in base currency
124
+ * @param {number} cash_cc - trader available margin cash in collateral currency
125
+ * @param {number} maintenance_margin_rate - maintenance margin ratio
126
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quuote collateral, = index S3 if quanto)
127
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos
128
+ */
129
+ export function calculateLiquidationPriceCollateralBase(LockedInValueQC, position, cash_cc, maintenance_margin_rate) {
130
+ // correct only if markprice = spot price
131
+ // m_r <= (Sm * Pi - L + cash * S3) / (Sm * |Pi|)
132
+ // -> Sm * (Pi + cash - m_r|Pi|) => L
133
+ return LockedInValueQC / (position - maintenance_margin_rate * Math.abs(position) + cash_cc);
134
+ }
135
+ /**
136
+ * Determine the liquidation price
137
+ * @param {number} LockedInValueQC - trader locked in value in quote currency
138
+ * @param {number} position - trader position in base currency
139
+ * @param {number} cash_cc - trader available margin cash in collateral currency
140
+ * @param {number} maintenance_margin_rate - maintenance margin ratio
141
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quuote collateral, = index S3 if quanto)
142
+ * @param {number} Sm - mark price
143
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos
144
+ */
145
+ export function calculateLiquidationPriceCollateralQuanto(LockedInValueQC, position, cash_cc, maintenance_margin_rate, S3, Sm) {
146
+ // correct only if markprice = spot price and S3 co-moves with Sm
147
+ // m_r = (Sm * Pi - L + cash * S3) / (Sm * |Pi|)
148
+ // m_r = [Sm * Pi - L + cash * S3(0) * (1 + sign(Pi) (Sm / Sm(0) - 1)] / (Sm * |Pi|)
149
+ // -> Sm * (m_r |Pi| - Pi - cash * S3(0) * sign(Pi) / Sm(0)) = - L + cash * S3(0) * (1 - sign(Pi))
150
+ var numerator = -LockedInValueQC + cash_cc * S3 * (1 - Math.sign(position));
151
+ var denominator = maintenance_margin_rate * Math.abs(position) - position - (cash_cc * S3 * Math.sign(position)) / Sm;
152
+ return numerator / denominator;
153
+ }
154
+ /**
155
+ * Determine the liquidation price
156
+ * @param {number} LockedInValueQC - trader locked in value in quote currency
157
+ * @param {number} position - trader position in base currency
158
+ * @param {number} cash_cc - trader available margin cash in collateral currency
159
+ * @param {number} maintenance_margin_rate - maintenance margin ratio
160
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quuote collateral, = index S3 if quanto)
161
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos
162
+ */
163
+ export function calculateLiquidationPriceCollateralQuote(LockedInValueQC, position, cash_cc, maintenance_margin_rate) {
164
+ // m_r = (Sm * Pi - L + cash ) / (Sm * |Pi|)
165
+ // -> Sm * (m_r |Pi| - Pi) = - L + cash
166
+ var numerator = -LockedInValueQC + cash_cc;
167
+ var denominator = maintenance_margin_rate * Math.abs(position) - position;
168
+ return numerator / denominator;
169
+ }
170
+ /**
171
+ *
172
+ * @param targetLeverage Leverage of the resulting position. It must be positive unless the resulting position is closed.
173
+ * @param currentPosition Current position size, in base currency, signed.
174
+ * @param currentLockedInValue Current locked in value, average entry price times position size, in quote currency.
175
+ * @param tradeAmount Trade amount, in base currency, signed.
176
+ * @param markPrice Mark price, positive.
177
+ * @param indexPriceS2 Index price, positive.
178
+ * @param indexPriceS3 Collateral index price, positive.
179
+ * @param tradePrice Expected price to trade tradeAmount.
180
+ * @param feeRate
181
+ * @returns {number} Total collateral amount needed for the new position to have he desired leverage.
182
+ */
183
+ export function getMarginRequiredForLeveragedTrade(targetLeverage, currentPosition, currentLockedInValue, tradeAmount, markPrice, indexPriceS2, indexPriceS3, tradePrice, feeRate) {
184
+ // we solve for margin in:
185
+ // |new position| * Sm / leverage + fee rate * |trade amount| * S2 = margin * S3 + current position * Sm - L + trade amount * (Sm - trade price)
186
+ // --> M S3 = |P'|Sm/L + FeeQC - PnL + (P'-P)(Price - Sm) = pos value / leverage + fees + price impact - pnl
187
+ var isClosing = currentPosition != 0 && currentPosition * tradeAmount < 0 && currentPosition * (currentPosition + tradeAmount) >= 0;
188
+ var feesCC = (feeRate * Math.abs(tradeAmount) * indexPriceS2) / indexPriceS3;
189
+ var collRequired = feesCC;
190
+ if (!isClosing) {
191
+ if (targetLeverage == undefined || targetLeverage <= 0) {
192
+ throw Error("opening trades must have positive leverage");
193
+ }
194
+ // unrealized pnl (could be + or -) - price impact premium (+)
195
+ var pnlQC = currentPosition * markPrice - currentLockedInValue - tradeAmount * (tradePrice - markPrice);
196
+ collRequired +=
197
+ Math.max(0, (Math.abs(currentPosition + tradeAmount) * markPrice) / targetLeverage - pnlQC) / indexPriceS3;
198
+ }
199
+ return collRequired;
200
+ }
201
+ export function getMaxSignedPositionSize(marginCollateral, currentPosition, currentLockedInValue, direction, limitPrice, initialMarginRate, feeRate, markPrice, indexPriceS2, indexPriceS3) {
202
+ // we solve for new position in:
203
+ // |new position| * Sm / leverage + fee rate * |trade amount| * S2 = margin * S3 + current position * Sm - L + trade amount * (Sm - entry price)
204
+ // |trade amount| = (new position - current position) * direction
205
+ var availableCash = marginCollateral * indexPriceS3 + currentPosition * markPrice - currentLockedInValue;
206
+ var effectiveMarginRate = markPrice * initialMarginRate + feeRate * indexPriceS2 + direction * (limitPrice - markPrice);
207
+ return availableCash / effectiveMarginRate;
208
+ }
209
+ /**
210
+ * Compute the leverage resulting from a trade
211
+ * @param tradeAmount Amount to trade, in base currency, signed
212
+ * @param marginCollateral Amount of cash in the margin account, in collateral currency
213
+ * @param currentPosition Position size before the trade
214
+ * @param currentLockedInValue Locked-in value before the trade
215
+ * @param price Price charged to trade tradeAmount
216
+ * @param indexPriceS3 Spot price of the collateral currency when the trade happens
217
+ * @param markPrice Mark price of the index when the trade happens
218
+ * @returns Leverage of the resulting position
219
+ */
220
+ export function getNewPositionLeverage(tradeAmount, marginCollateral, currentPosition, currentLockedInValue, price, indexPriceS3, markPrice) {
221
+ var newPosition = tradeAmount + currentPosition;
222
+ var pnlQC = currentPosition * markPrice - currentLockedInValue + tradeAmount * (markPrice - price);
223
+ return (Math.abs(newPosition) * markPrice) / (marginCollateral * indexPriceS3 + pnlQC);
224
+ }
225
+ /**
226
+ * Determine amount to be deposited into margin account so that the given leverage
227
+ * is obtained when trading a position pos (trade amount = position)
228
+ * Does NOT include fees
229
+ * Smart contract equivalent: calcMarginForTargetLeverage(..., _ignorePosBalance = false & balance = b0)
230
+ * @param {number} pos0 - current position
231
+ * @param {number} b0 - current balance
232
+ * @param {number} tradeAmnt - amount to trade
233
+ * @param {number} targetLvg - target leverage
234
+ * @param {number} price - price to trade amount 'tradeAmnt'
235
+ * @param {number} S3 - collateral to quote conversion (=S2 if base-collateral, =1 if quote collateral, = index S3 if quanto)
236
+ * @param {number} S2Mark - mark price
237
+ * @returns {number} Amount to be deposited to have the given leverage when trading into position pos before fees
238
+ */
239
+ export function getDepositAmountForLvgTrade(pos0, b0, tradeAmnt, targetLvg, price, S3, S2Mark) {
240
+ var pnl = (tradeAmnt * (S2Mark - price)) / S3;
241
+ if (targetLvg == 0) {
242
+ targetLvg = (Math.abs(pos0) * S2Mark) / S3 / b0;
243
+ }
244
+ var b = (Math.abs(pos0 + tradeAmnt) * S2Mark) / S3 / targetLvg;
245
+ return -(b0 + pnl - b);
246
+ }
247
+ //# sourceMappingURL=d8XMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  export * from "./nodeSDKTypes";
2
2
  export * from "./utils";
3
3
  export * from "./d8XMath";
4
-
5
4
  import AccountTrade from "./accountTrade";
6
5
  import BrokerTool from "./brokerTool";
7
6
  import LiquidityProviderTool from "./liquidityProviderTool";
@@ -12,18 +11,5 @@ import WriteAccessHandler from "./writeAccessHandler";
12
11
  import LiquidatorTool from "./liquidatorTool";
13
12
  import TraderInterface from "./traderInterface";
14
13
  import PerpetualEventHandler from "./perpetualEventHandler";
15
-
16
- export {
17
- AccountTrade,
18
- BrokerTool,
19
- LiquidityProviderTool,
20
- MarketData,
21
- OrderReferrerTool,
22
- PerpetualDataHandler,
23
- WriteAccessHandler,
24
- LiquidatorTool,
25
- TraderInterface,
26
- PerpetualEventHandler,
27
- };
28
-
14
+ export { AccountTrade, BrokerTool, LiquidityProviderTool, MarketData, OrderReferrerTool, PerpetualDataHandler, WriteAccessHandler, LiquidatorTool, TraderInterface, PerpetualEventHandler, };
29
15
  export * from "./version";
@@ -0,0 +1,16 @@
1
+ export * from "./nodeSDKTypes";
2
+ export * from "./utils";
3
+ export * from "./d8XMath";
4
+ import AccountTrade from "./accountTrade";
5
+ import BrokerTool from "./brokerTool";
6
+ import LiquidityProviderTool from "./liquidityProviderTool";
7
+ import MarketData from "./marketData";
8
+ import OrderReferrerTool from "./orderReferrerTool";
9
+ import PerpetualDataHandler from "./perpetualDataHandler";
10
+ import WriteAccessHandler from "./writeAccessHandler";
11
+ import LiquidatorTool from "./liquidatorTool";
12
+ import TraderInterface from "./traderInterface";
13
+ import PerpetualEventHandler from "./perpetualEventHandler";
14
+ export { AccountTrade, BrokerTool, LiquidityProviderTool, MarketData, OrderReferrerTool, PerpetualDataHandler, WriteAccessHandler, LiquidatorTool, TraderInterface, PerpetualEventHandler, };
15
+ export * from "./version";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAE1B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EACL,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,qBAAqB,GACtB,CAAC;AAEF,cAAc,WAAW,CAAC"}