@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.
- package/dist/cjs/abi/testnet/IPerpetualManager.json +5215 -0
- package/dist/cjs/abi/testnet/LimitOrderBook.json +1075 -0
- package/dist/cjs/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
- package/dist/cjs/accountTrade.js +441 -0
- package/dist/cjs/accountTrade.js.map +1 -0
- package/dist/{src → cjs}/brokerTool.js +31 -84
- package/dist/cjs/brokerTool.js.map +1 -0
- package/dist/cjs/config/defaultConfig.json +47 -0
- package/dist/cjs/config/mockSwap.json +4 -0
- package/dist/cjs/config/priceFeedConfig.json +104 -0
- package/dist/cjs/config/symbolList.json +13 -0
- package/dist/cjs/d8XMath.js.map +1 -0
- package/dist/cjs/index.js +29 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/liquidatorTool.js +287 -0
- package/dist/cjs/liquidatorTool.js.map +1 -0
- package/dist/{src → cjs}/liquidityProviderTool.js +12 -65
- package/dist/cjs/liquidityProviderTool.js.map +1 -0
- package/dist/{src → cjs}/marketData.js +52 -134
- package/dist/cjs/marketData.js.map +1 -0
- package/dist/{src → cjs}/nodeSDKTypes.d.ts +5 -5
- package/dist/cjs/nodeSDKTypes.js +64 -0
- package/dist/cjs/nodeSDKTypes.js.map +1 -0
- package/dist/{src → cjs}/orderReferrerTool.d.ts +12 -5
- package/dist/{src → cjs}/orderReferrerTool.js +114 -112
- package/dist/cjs/orderReferrerTool.js.map +1 -0
- package/dist/{src → cjs}/perpetualDataHandler.d.ts +1 -1
- package/dist/{src → cjs}/perpetualDataHandler.js +47 -109
- package/dist/cjs/perpetualDataHandler.js.map +1 -0
- package/dist/{src → cjs}/perpetualEventHandler.d.ts +3 -3
- package/dist/{src → cjs}/perpetualEventHandler.js +12 -74
- package/dist/cjs/perpetualEventHandler.js.map +1 -0
- package/dist/cjs/priceFeeds.js +466 -0
- package/dist/cjs/priceFeeds.js.map +1 -0
- package/dist/{src → cjs}/traderDigests.js +7 -43
- package/dist/cjs/traderDigests.js.map +1 -0
- package/dist/{src → cjs}/traderInterface.js +13 -66
- package/dist/cjs/traderInterface.js.map +1 -0
- package/dist/{src → cjs}/triangulator.js +2 -17
- package/dist/cjs/triangulator.js.map +1 -0
- package/dist/{src → cjs}/utils.js +3 -29
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -0
- package/dist/{src → cjs}/version.js +1 -1
- package/dist/cjs/version.js.map +1 -0
- package/dist/{src → cjs}/writeAccessHandler.js +12 -65
- package/dist/cjs/writeAccessHandler.js.map +1 -0
- package/dist/esm/abi/ERC20.json +288 -0
- package/dist/esm/abi/MockTokenSwap.json +186 -0
- package/dist/{abi/testnet → esm/abi/central-park}/IPerpetualManager.json +404 -214
- package/dist/{abi/testnet → esm/abi/central-park}/LimitOrderBook.json +197 -15
- package/dist/esm/abi/central-park/LimitOrderBookFactory.json +135 -0
- package/dist/esm/abi/testnet/IPerpetualManager.json +5215 -0
- package/dist/esm/abi/testnet/LimitOrderBook.json +1075 -0
- package/dist/esm/abi/testnet/LimitOrderBookFactory.json +135 -0
- package/dist/esm/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
- package/dist/esm/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
- package/dist/esm/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
- package/dist/esm/accountTrade.d.ts +221 -0
- package/dist/{src → esm}/accountTrade.js +22 -93
- package/dist/esm/accountTrade.js.map +1 -0
- package/dist/esm/brokerTool.d.ts +318 -0
- package/dist/esm/brokerTool.js +572 -0
- package/dist/esm/brokerTool.js.map +1 -0
- package/dist/esm/config/defaultConfig.json +47 -0
- package/dist/esm/config/mockSwap.json +4 -0
- package/dist/esm/config/priceFeedConfig.json +104 -0
- package/dist/esm/config/symbolList.json +13 -0
- package/dist/esm/d8XMath.d.ts +122 -0
- package/dist/esm/d8XMath.js +247 -0
- package/dist/esm/d8XMath.js.map +1 -0
- package/{src/index.ts → dist/esm/index.d.ts} +1 -15
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/liquidatorTool.d.ts +158 -0
- package/dist/{src → esm}/liquidatorTool.js +10 -65
- package/dist/esm/liquidatorTool.js.map +1 -0
- package/dist/esm/liquidityProviderTool.d.ts +126 -0
- package/dist/esm/liquidityProviderTool.js +218 -0
- package/dist/esm/liquidityProviderTool.js.map +1 -0
- package/dist/esm/marketData.d.ts +309 -0
- package/dist/esm/marketData.js +1007 -0
- package/dist/esm/marketData.js.map +1 -0
- package/dist/esm/nodeSDKTypes.d.ts +266 -0
- package/dist/esm/nodeSDKTypes.js +60 -0
- package/dist/esm/nodeSDKTypes.js.map +1 -0
- package/dist/esm/orderReferrerTool.d.ts +196 -0
- package/dist/esm/orderReferrerTool.js +491 -0
- package/dist/esm/orderReferrerTool.js.map +1 -0
- package/dist/esm/perpetualDataHandler.d.ts +220 -0
- package/dist/esm/perpetualDataHandler.js +1060 -0
- package/dist/esm/perpetualDataHandler.js.map +1 -0
- package/dist/esm/perpetualEventHandler.d.ts +179 -0
- package/dist/esm/perpetualEventHandler.js +435 -0
- package/dist/esm/perpetualEventHandler.js.map +1 -0
- package/dist/esm/priceFeeds.d.ts +115 -0
- package/dist/{src → esm}/priceFeeds.js +16 -83
- package/dist/esm/priceFeeds.js.map +1 -0
- package/dist/esm/traderDigests.d.ts +21 -0
- package/dist/esm/traderDigests.js +80 -0
- package/dist/esm/traderDigests.js.map +1 -0
- package/dist/esm/traderInterface.d.ts +79 -0
- package/dist/esm/traderInterface.js +196 -0
- package/dist/esm/traderInterface.js.map +1 -0
- package/dist/esm/triangulator.d.ts +27 -0
- package/dist/esm/triangulator.js +110 -0
- package/dist/esm/triangulator.js.map +1 -0
- package/dist/esm/utils.d.ts +59 -0
- package/dist/esm/utils.js +138 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/version.d.ts +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/esm/writeAccessHandler.d.ts +50 -0
- package/dist/esm/writeAccessHandler.js +157 -0
- package/dist/esm/writeAccessHandler.js.map +1 -0
- package/package.json +16 -26
- package/dist/bundle.js +0 -36793
- package/dist/config/defaultConfig.json +0 -47
- package/dist/config/mockSwap.json +0 -4
- package/dist/config/priceFeedConfig.json +0 -104
- package/dist/config/symbolList.json +0 -13
- package/dist/src/index.js +0 -45
- package/dist/src/nodeSDKTypes.js +0 -115
- package/dist/src/version.d.ts +0 -1
- package/module.d.ts +0 -1
- package/src/accountTrade.ts +0 -392
- package/src/brokerTool.ts +0 -507
- package/src/d8XMath.ts +0 -319
- package/src/liquidatorTool.ts +0 -258
- package/src/liquidityProviderTool.ts +0 -186
- package/src/marketData.ts +0 -946
- package/src/nodeSDKTypes.ts +0 -293
- package/src/orderReferrerTool.ts +0 -389
- package/src/perpetualDataHandler.ts +0 -1061
- package/src/perpetualEventHandler.ts +0 -455
- package/src/priceFeeds.ts +0 -381
- package/src/traderDigests.ts +0 -91
- package/src/traderInterface.ts +0 -159
- package/src/triangulator.ts +0 -105
- package/src/utils.ts +0 -134
- package/src/version.ts +0 -1
- package/src/writeAccessHandler.ts +0 -127
- /package/dist/{abi → cjs/abi}/ERC20.json +0 -0
- /package/dist/{abi → cjs/abi}/MockTokenSwap.json +0 -0
- /package/dist/{abi → cjs/abi}/central-park/IPerpetualManager.json +0 -0
- /package/dist/{abi → cjs/abi}/central-park/LimitOrderBook.json +0 -0
- /package/dist/{abi → cjs/abi}/central-park/LimitOrderBookFactory.json +0 -0
- /package/dist/{abi → cjs/abi}/testnet/LimitOrderBookFactory.json +0 -0
- /package/dist/{src → cjs}/accountTrade.d.ts +0 -0
- /package/dist/{src → cjs}/brokerTool.d.ts +0 -0
- /package/dist/{src → cjs}/d8XMath.d.ts +0 -0
- /package/dist/{src → cjs}/d8XMath.js +0 -0
- /package/dist/{src → cjs}/index.d.ts +0 -0
- /package/dist/{src → cjs}/liquidatorTool.d.ts +0 -0
- /package/dist/{src → cjs}/liquidityProviderTool.d.ts +0 -0
- /package/dist/{src → cjs}/marketData.d.ts +0 -0
- /package/dist/{src → cjs}/priceFeeds.d.ts +0 -0
- /package/dist/{src → cjs}/traderDigests.d.ts +0 -0
- /package/dist/{src → cjs}/traderInterface.d.ts +0 -0
- /package/dist/{src → cjs}/triangulator.d.ts +0 -0
- /package/dist/{src → cjs}/utils.d.ts +0 -0
- /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,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"}
|