@drift-labs/sdk 0.1.30-master.0 → 0.1.30-master.1
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/lib/accounts/bulkAccountLoader.d.ts +2 -2
- package/lib/accounts/bulkAccountLoader.js +20 -23
- package/lib/accounts/pollingClearingHouseAccountSubscriber.d.ts +15 -0
- package/lib/accounts/pollingClearingHouseAccountSubscriber.js +50 -23
- package/lib/clearingHouse.d.ts +0 -1
- package/lib/clearingHouse.js +0 -14
- package/lib/constants/accounts.d.ts +15 -0
- package/lib/constants/accounts.js +18 -0
- package/lib/factory/clearingHouse.d.ts +14 -4
- package/lib/factory/clearingHouse.js +23 -6
- package/lib/idl/clearing_house.json +2 -33
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -1
- package/lib/math/amm.d.ts +20 -0
- package/lib/math/amm.js +151 -1
- package/lib/util/promiseTimeout.d.ts +1 -0
- package/lib/util/promiseTimeout.js +14 -0
- package/package.json +1 -1
- package/src/accounts/bulkAccountLoader.ts +21 -31
- package/src/accounts/pollingClearingHouseAccountSubscriber.ts +73 -30
- package/src/clearingHouse.ts +0 -13
- package/src/constants/accounts.ts +26 -0
- package/src/factory/clearingHouse.ts +47 -7
- package/src/idl/clearing_house.json +2 -33
- package/src/index.ts +0 -1
- package/src/math/amm.ts +212 -1
- package/src/util/promiseTimeout.ts +14 -0
- package/lib/math/repeg.d.ts +0 -32
- package/lib/math/repeg.js +0 -178
- package/src/accounts/pollingClearingHouseAccountSubscriber.js +0 -210
- package/src/accounts/pollingClearingHouseAccountSubscriber.js.map +0 -1
- package/src/accounts/pollingOracleSubscriber.js +0 -65
- package/src/accounts/pollingOracleSubscriber.js.map +0 -1
- package/src/accounts/pollingTokenAccountSubscriber.js +0 -65
- package/src/accounts/pollingTokenAccountSubscriber.js.map +0 -1
- package/src/accounts/utils.js +0 -8
- package/src/accounts/utils.js.map +0 -1
- package/src/accounts/webSocketAccountSubscriber.js +0 -64
- package/src/accounts/webSocketAccountSubscriber.js.map +0 -1
- package/src/accounts/webSocketClearingHouseAccountSubscriber.js +0 -212
- package/src/accounts/webSocketClearingHouseAccountSubscriber.js.map +0 -1
- package/src/constants/markets.js +0 -167
- package/src/constants/markets.js.map +0 -1
- package/src/constants/numericConstants.js +0 -22
- package/src/constants/numericConstants.js.map +0 -1
- package/src/math/repeg.ts +0 -253
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webSocketClearingHouseAccountSubscriber.js","sourceRoot":"","sources":["webSocketClearingHouseAccountSubscriber.ts"],"names":[],"mappings":"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"}
|
package/src/constants/markets.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Markets = void 0;
|
|
4
|
-
const __1 = require("../");
|
|
5
|
-
exports.Markets = [
|
|
6
|
-
{
|
|
7
|
-
fullName: 'Solana',
|
|
8
|
-
category: ['L1', 'Infra'],
|
|
9
|
-
symbol: 'SOL-PERP',
|
|
10
|
-
baseAssetSymbol: 'SOL',
|
|
11
|
-
marketIndex: new __1.BN(0),
|
|
12
|
-
devnetPublicKey: 'J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix',
|
|
13
|
-
mainnetPublicKey: 'H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG',
|
|
14
|
-
launchTs: 1635209696886,
|
|
15
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
fullName: 'Bitcoin',
|
|
19
|
-
category: ['L1', 'Payment'],
|
|
20
|
-
symbol: 'BTC-PERP',
|
|
21
|
-
baseAssetSymbol: 'BTC',
|
|
22
|
-
marketIndex: new __1.BN(1),
|
|
23
|
-
devnetPublicKey: 'HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J',
|
|
24
|
-
mainnetPublicKey: 'GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU',
|
|
25
|
-
launchTs: 1637691088868,
|
|
26
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
fullName: 'Ethereum',
|
|
30
|
-
category: ['L1', 'Infra'],
|
|
31
|
-
symbol: 'ETH-PERP',
|
|
32
|
-
baseAssetSymbol: 'ETH',
|
|
33
|
-
marketIndex: new __1.BN(2),
|
|
34
|
-
devnetPublicKey: 'EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw',
|
|
35
|
-
mainnetPublicKey: 'JBu1AL4obBcCMqKBBxhpWCNUt136ijcuMZLFvTP7iWdB',
|
|
36
|
-
launchTs: 1637691133472,
|
|
37
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
fullName: 'Terra',
|
|
41
|
-
category: ['L1', 'Infra'],
|
|
42
|
-
symbol: 'LUNA-PERP',
|
|
43
|
-
baseAssetSymbol: 'LUNA',
|
|
44
|
-
marketIndex: new __1.BN(3),
|
|
45
|
-
devnetPublicKey: '8PugCXTAHLM9kfLSQWe2njE5pzAgUdpPk3Nx5zSm7BD3',
|
|
46
|
-
mainnetPublicKey: '5bmWuR1dgP4avtGYMNKLuxumZTVKGgoN2BCMXWDNL9nY',
|
|
47
|
-
launchTs: 1638821738525,
|
|
48
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
symbol: 'AVAX-PERP',
|
|
52
|
-
category: ['L1', 'Infra'],
|
|
53
|
-
baseAssetSymbol: 'AVAX',
|
|
54
|
-
marketIndex: new __1.BN(4),
|
|
55
|
-
devnetPublicKey: 'FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz',
|
|
56
|
-
mainnetPublicKey: 'Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU',
|
|
57
|
-
launchTs: 1639092501080,
|
|
58
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
fullName: 'Binance Coin',
|
|
62
|
-
symbol: 'BNB-PERP',
|
|
63
|
-
category: ['L1', 'Exchange'],
|
|
64
|
-
baseAssetSymbol: 'BNB',
|
|
65
|
-
marketIndex: new __1.BN(5),
|
|
66
|
-
devnetPublicKey: 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b',
|
|
67
|
-
mainnetPublicKey: '4CkQJBxhU8EZ2UjhigbtdaPbpTe6mqf811fipYBFbSYN',
|
|
68
|
-
launchTs: 1639523193012,
|
|
69
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
fullName: 'Polygon',
|
|
73
|
-
category: ['L1', 'Infra'],
|
|
74
|
-
symbol: 'MATIC-PERP',
|
|
75
|
-
baseAssetSymbol: 'MATIC',
|
|
76
|
-
marketIndex: new __1.BN(6),
|
|
77
|
-
devnetPublicKey: 'FBirwuDFuRAu4iSGc7RGxN5koHB7EJM1wbCmyPuQoGur',
|
|
78
|
-
mainnetPublicKey: '7KVswB9vkCgeM3SHP7aGDijvdRAHK8P5wi9JXViCrtYh',
|
|
79
|
-
launchTs: 1641488603564,
|
|
80
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
fullName: 'Cosmos',
|
|
84
|
-
category: ['L1', 'Infra'],
|
|
85
|
-
symbol: 'ATOM-PERP',
|
|
86
|
-
baseAssetSymbol: 'ATOM',
|
|
87
|
-
marketIndex: new __1.BN(7),
|
|
88
|
-
devnetPublicKey: '7YAze8qFUMkBnyLVdKT4TFUUFui99EwS5gfRArMcrvFk',
|
|
89
|
-
mainnetPublicKey: 'CrCpTerNqtZvqLcKqz1k13oVeXV9WkMD2zA9hBKXrsbN',
|
|
90
|
-
launchTs: 1641920238195,
|
|
91
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
fullName: 'Polkadot',
|
|
95
|
-
symbol: 'DOT-PERP',
|
|
96
|
-
baseAssetSymbol: 'DOT',
|
|
97
|
-
marketIndex: new __1.BN(8),
|
|
98
|
-
devnetPublicKey: '4dqq5VBpN4EwYb7wyywjjfknvMKu7m78j9mKZRXTj462',
|
|
99
|
-
mainnetPublicKey: 'EcV1X1gY2yb4KXxjVQtTHTbioum2gvmPnFk4zYAt7zne',
|
|
100
|
-
launchTs: 1642629253786,
|
|
101
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
fullName: 'Cardano',
|
|
105
|
-
category: ['L1', 'Infra'],
|
|
106
|
-
symbol: 'ADA-PERP',
|
|
107
|
-
baseAssetSymbol: 'ADA',
|
|
108
|
-
marketIndex: new __1.BN(9),
|
|
109
|
-
devnetPublicKey: '8oGTURNmSQkrBS1AQ5NjB2p8qY34UVmMA9ojrw8vnHus',
|
|
110
|
-
mainnetPublicKey: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
|
|
111
|
-
launchTs: 1643084413000,
|
|
112
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
fullName: 'Algorand',
|
|
116
|
-
category: ['L1', 'Infra'],
|
|
117
|
-
symbol: 'ALGO-PERP',
|
|
118
|
-
baseAssetSymbol: 'ALGO',
|
|
119
|
-
marketIndex: new __1.BN(10),
|
|
120
|
-
devnetPublicKey: 'c1A946dY5NHuVda77C8XXtXytyR3wK1SCP3eA9VRfC3',
|
|
121
|
-
mainnetPublicKey: 'HqFyq1wh1xKvL7KDqqT7NJeSPdAqsDqnmBisUC2XdXAX',
|
|
122
|
-
launchTs: 1643686767000,
|
|
123
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
fullName: 'FTX Coin',
|
|
127
|
-
category: ['L1', 'Exchange'],
|
|
128
|
-
symbol: 'FTT-PERP',
|
|
129
|
-
baseAssetSymbol: 'FTT',
|
|
130
|
-
marketIndex: new __1.BN(11),
|
|
131
|
-
devnetPublicKey: '6vivTRs5ZPeeXbjo7dfburfaYDWoXjBtdtuYgQRuGfu',
|
|
132
|
-
mainnetPublicKey: '8JPJJkmDScpcNmBRKGZuPuG2GYAveQgP3t5gFuMymwvF',
|
|
133
|
-
launchTs: 1644382122000,
|
|
134
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
fullName: 'Litecoin',
|
|
138
|
-
category: ['L1', 'Payments'],
|
|
139
|
-
symbol: 'LTC-PERP',
|
|
140
|
-
baseAssetSymbol: 'LTC',
|
|
141
|
-
marketIndex: new __1.BN(12),
|
|
142
|
-
devnetPublicKey: 'BLArYBCUYhdWiY8PCUTpvFE21iaJq85dvxLk9bYMobcU',
|
|
143
|
-
mainnetPublicKey: '8RMnV1eD55iqUFJLMguPkYBkq8DCtx81XcmAja93LvRR',
|
|
144
|
-
launchTs: 1645027429000,
|
|
145
|
-
oracleSource: __1.OracleSource.PYTH,
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
fullName: 'Ripple',
|
|
149
|
-
category: ['L1', 'Payments'],
|
|
150
|
-
symbol: 'XRP-PERP',
|
|
151
|
-
baseAssetSymbol: 'XRP',
|
|
152
|
-
marketIndex: new __1.BN(13),
|
|
153
|
-
devnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
|
|
154
|
-
mainnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
|
|
155
|
-
launchTs: 1647543166000,
|
|
156
|
-
oracleSource: __1.OracleSource.SWITCHBOARD,
|
|
157
|
-
},
|
|
158
|
-
// {
|
|
159
|
-
// symbol: 'mSOL-PERP',
|
|
160
|
-
// baseAssetSymbol: 'mSOL',
|
|
161
|
-
// marketIndex: new BN(11), //todo
|
|
162
|
-
// devnetPythOracle: '9a6RNx3tCu1TSs6TBSfV2XRXEPEZXQ6WB7jRojZRvyeZ',
|
|
163
|
-
// mainnetPythOracle: 'E4v1BBgoso9s64TQvmyownAVJbhbEPGyzA3qn4n46qj9',
|
|
164
|
-
// launchTs: 1643346125000,
|
|
165
|
-
// },
|
|
166
|
-
];
|
|
167
|
-
//# sourceMappingURL=markets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markets.js","sourceRoot":"","sources":["markets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_PAYMENT_PRECISION = exports.MARK_PRICE_PRECISION = exports.QUOTE_PRECISION = exports.MAX_LEVERAGE = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
4
|
-
const __1 = require("../");
|
|
5
|
-
exports.ZERO = new __1.BN(0);
|
|
6
|
-
exports.ONE = new __1.BN(1);
|
|
7
|
-
exports.TWO = new __1.BN(2);
|
|
8
|
-
exports.TEN = new __1.BN(10);
|
|
9
|
-
exports.TEN_THOUSAND = new __1.BN(10000);
|
|
10
|
-
exports.BN_MAX = new __1.BN(Number.MAX_SAFE_INTEGER);
|
|
11
|
-
exports.MAX_LEVERAGE = new __1.BN(5);
|
|
12
|
-
exports.QUOTE_PRECISION = new __1.BN(10 ** 6);
|
|
13
|
-
exports.MARK_PRICE_PRECISION = new __1.BN(10 ** 10);
|
|
14
|
-
exports.FUNDING_PAYMENT_PRECISION = new __1.BN(10000);
|
|
15
|
-
exports.PEG_PRECISION = new __1.BN(1000);
|
|
16
|
-
exports.AMM_RESERVE_PRECISION = new __1.BN(10 ** 13);
|
|
17
|
-
exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION;
|
|
18
|
-
exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.div(exports.QUOTE_PRECISION); // 10^7
|
|
19
|
-
exports.PRICE_TO_QUOTE_PRECISION = exports.MARK_PRICE_PRECISION.div(exports.QUOTE_PRECISION);
|
|
20
|
-
exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.mul(exports.PEG_PRECISION).div(exports.QUOTE_PRECISION); // 10^10
|
|
21
|
-
exports.MARGIN_PRECISION = exports.TEN_THOUSAND;
|
|
22
|
-
//# sourceMappingURL=numericConstants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"numericConstants.js","sourceRoot":"","sources":["numericConstants.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAEZ,QAAA,IAAI,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AACjB,QAAA,GAAG,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AAChB,QAAA,GAAG,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AAChB,QAAA,GAAG,GAAG,IAAI,MAAE,CAAC,EAAE,CAAC,CAAC;AACjB,QAAA,YAAY,GAAG,IAAI,MAAE,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,MAAM,GAAG,IAAI,MAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEzC,QAAA,YAAY,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AAEzB,QAAA,eAAe,GAAG,IAAI,MAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClC,QAAA,oBAAoB,GAAG,IAAI,MAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,QAAA,yBAAyB,GAAG,IAAI,MAAE,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAA,aAAa,GAAG,IAAI,MAAE,CAAC,IAAI,CAAC,CAAC;AAE7B,QAAA,qBAAqB,GAAG,IAAI,MAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,QAAA,cAAc,GAAG,6BAAqB,CAAC;AACvC,QAAA,4BAA4B,GACxC,6BAAqB,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAC,CAAC,OAAO;AACvC,QAAA,wBAAwB,GACpC,4BAAoB,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAC;AAC9B,QAAA,sCAAsC,GAClD,6BAAqB,CAAC,GAAG,CAAC,qBAAa,CAAC,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAC,CAAC,QAAQ;AAC3D,QAAA,gBAAgB,GAAG,oBAAY,CAAC"}
|
package/src/math/repeg.ts
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { BN } from '@project-serum/anchor';
|
|
2
|
-
import {
|
|
3
|
-
MARK_PRICE_PRECISION,
|
|
4
|
-
AMM_RESERVE_PRECISION,
|
|
5
|
-
PEG_PRECISION,
|
|
6
|
-
AMM_TO_QUOTE_PRECISION_RATIO,
|
|
7
|
-
QUOTE_PRECISION,
|
|
8
|
-
ZERO,
|
|
9
|
-
} from '../constants/numericConstants';
|
|
10
|
-
import { calculateBaseAssetValue } from './position';
|
|
11
|
-
import { calculateTerminalPrice } from './amm';
|
|
12
|
-
|
|
13
|
-
import { Market } from '../types';
|
|
14
|
-
import { calculatePositionPNL, calculateMarkPrice, convertToNumber } from '..';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Helper function calculating adjust k cost
|
|
18
|
-
* @param market
|
|
19
|
-
* @param marketIndex
|
|
20
|
-
* @param numerator
|
|
21
|
-
* @param denomenator
|
|
22
|
-
* @returns cost : Precision QUOTE_ASSET_PRECISION
|
|
23
|
-
*/
|
|
24
|
-
export function calculateAdjustKCost(
|
|
25
|
-
market: Market,
|
|
26
|
-
marketIndex: BN,
|
|
27
|
-
numerator: BN,
|
|
28
|
-
denomenator: BN
|
|
29
|
-
): BN {
|
|
30
|
-
const netUserPosition = {
|
|
31
|
-
baseAssetAmount: market.baseAssetAmount,
|
|
32
|
-
lastCumulativeFundingRate: market.amm.cumulativeFundingRate,
|
|
33
|
-
marketIndex: new BN(marketIndex),
|
|
34
|
-
quoteAssetAmount: ZERO,
|
|
35
|
-
openOrders: ZERO,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const currentValue = calculateBaseAssetValue(market, netUserPosition);
|
|
39
|
-
|
|
40
|
-
const marketNewK = Object.assign({}, market);
|
|
41
|
-
marketNewK.amm = Object.assign({}, market.amm);
|
|
42
|
-
|
|
43
|
-
marketNewK.amm.baseAssetReserve = market.amm.baseAssetReserve
|
|
44
|
-
.mul(numerator)
|
|
45
|
-
.div(denomenator);
|
|
46
|
-
marketNewK.amm.quoteAssetReserve = market.amm.quoteAssetReserve
|
|
47
|
-
.mul(numerator)
|
|
48
|
-
.div(denomenator);
|
|
49
|
-
marketNewK.amm.sqrtK = market.amm.sqrtK.mul(numerator).div(denomenator);
|
|
50
|
-
|
|
51
|
-
netUserPosition.quoteAssetAmount = currentValue;
|
|
52
|
-
|
|
53
|
-
const cost = calculatePositionPNL(marketNewK, netUserPosition);
|
|
54
|
-
|
|
55
|
-
return cost;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Helper function calculating adjust pegMultiplier (repeg) cost
|
|
60
|
-
*
|
|
61
|
-
* @param market
|
|
62
|
-
* @param marketIndex
|
|
63
|
-
* @param newPeg
|
|
64
|
-
* @returns cost : Precision QUOTE_ASSET_PRECISION
|
|
65
|
-
*/
|
|
66
|
-
export function calculateRepegCost(
|
|
67
|
-
market: Market,
|
|
68
|
-
marketIndex: BN,
|
|
69
|
-
newPeg: BN
|
|
70
|
-
): BN {
|
|
71
|
-
const netUserPosition = {
|
|
72
|
-
baseAssetAmount: market.baseAssetAmount,
|
|
73
|
-
lastCumulativeFundingRate: market.amm.cumulativeFundingRate,
|
|
74
|
-
marketIndex: new BN(marketIndex),
|
|
75
|
-
quoteAssetAmount: new BN(0),
|
|
76
|
-
openOrders: ZERO,
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const currentValue = calculateBaseAssetValue(market, netUserPosition);
|
|
80
|
-
netUserPosition.quoteAssetAmount = currentValue;
|
|
81
|
-
const prevMarketPrice = calculateMarkPrice(market);
|
|
82
|
-
const marketNewPeg = Object.assign({}, market);
|
|
83
|
-
marketNewPeg.amm = Object.assign({}, market.amm);
|
|
84
|
-
|
|
85
|
-
// const marketNewPeg = JSON.parse(JSON.stringify(market));
|
|
86
|
-
marketNewPeg.amm.pegMultiplier = newPeg;
|
|
87
|
-
|
|
88
|
-
console.log(
|
|
89
|
-
'Price moves from',
|
|
90
|
-
convertToNumber(prevMarketPrice),
|
|
91
|
-
'to',
|
|
92
|
-
convertToNumber(calculateMarkPrice(marketNewPeg))
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
const cost = calculatePositionPNL(marketNewPeg, netUserPosition);
|
|
96
|
-
|
|
97
|
-
return cost;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Helper function calculating adjust pegMultiplier (repeg) cost
|
|
102
|
-
*
|
|
103
|
-
* @param market
|
|
104
|
-
* @param marketIndex
|
|
105
|
-
* @param newPeg
|
|
106
|
-
* @returns cost : Precision QUOTE_ASSET_PRECISION
|
|
107
|
-
*/
|
|
108
|
-
export function calculateReserveRebalanceCost(
|
|
109
|
-
market: Market,
|
|
110
|
-
marketIndex: BN
|
|
111
|
-
): BN {
|
|
112
|
-
const netUserPosition = {
|
|
113
|
-
baseAssetAmount: market.baseAssetAmount,
|
|
114
|
-
lastCumulativeFundingRate: market.amm.cumulativeFundingRate,
|
|
115
|
-
marketIndex: new BN(marketIndex),
|
|
116
|
-
quoteAssetAmount: new BN(0),
|
|
117
|
-
openOrders: ZERO,
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
const currentValue = calculateBaseAssetValue(market, netUserPosition);
|
|
121
|
-
netUserPosition.quoteAssetAmount = currentValue;
|
|
122
|
-
const prevMarketPrice = calculateMarkPrice(market);
|
|
123
|
-
const marketNewPeg = Object.assign({}, market);
|
|
124
|
-
marketNewPeg.amm = Object.assign({}, market.amm);
|
|
125
|
-
|
|
126
|
-
// const marketNewPeg = JSON.parse(JSON.stringify(market));
|
|
127
|
-
const newPeg = calculateTerminalPrice(market)
|
|
128
|
-
.mul(PEG_PRECISION)
|
|
129
|
-
.div(MARK_PRICE_PRECISION);
|
|
130
|
-
// const newPeg = prevMarketPrice.mul(PEG_PRECISION).div(MARK_PRICE_PRECISION);
|
|
131
|
-
|
|
132
|
-
const newBaseReserve = market.amm.baseAssetReserve.add(
|
|
133
|
-
market.baseAssetAmount
|
|
134
|
-
);
|
|
135
|
-
const newQuoteReserve = market.amm.sqrtK
|
|
136
|
-
.mul(market.amm.sqrtK)
|
|
137
|
-
.div(newBaseReserve);
|
|
138
|
-
console.log(
|
|
139
|
-
'current reserves on close, quote:',
|
|
140
|
-
convertToNumber(newQuoteReserve, AMM_RESERVE_PRECISION),
|
|
141
|
-
'base:',
|
|
142
|
-
convertToNumber(newBaseReserve, AMM_RESERVE_PRECISION)
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
let newSqrtK;
|
|
146
|
-
if (newPeg.lt(market.amm.pegMultiplier)) {
|
|
147
|
-
newSqrtK = newBaseReserve;
|
|
148
|
-
} else {
|
|
149
|
-
newSqrtK = newQuoteReserve;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
marketNewPeg.amm.baseAssetReserve = newSqrtK.sub(market.baseAssetAmount); // newSqrtK.sub(market.baseAssetAmount);
|
|
153
|
-
marketNewPeg.amm.quoteAssetReserve = newSqrtK
|
|
154
|
-
.mul(newSqrtK)
|
|
155
|
-
.div(marketNewPeg.amm.baseAssetReserve);
|
|
156
|
-
marketNewPeg.amm.sqrtK = newSqrtK;
|
|
157
|
-
marketNewPeg.amm.pegMultiplier = newPeg;
|
|
158
|
-
|
|
159
|
-
console.log(
|
|
160
|
-
'Price moves from',
|
|
161
|
-
convertToNumber(prevMarketPrice),
|
|
162
|
-
'to',
|
|
163
|
-
convertToNumber(calculateMarkPrice(marketNewPeg))
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
const cost = calculatePositionPNL(marketNewPeg, netUserPosition);
|
|
167
|
-
|
|
168
|
-
return cost;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export function calculateBudgetedK(market: Market, cost: BN): [BN, BN] {
|
|
172
|
-
// wolframalpha.com
|
|
173
|
-
// (1/(x+d) - p/(x*p+d))*y*d*Q = C solve for p
|
|
174
|
-
// p = (d(y*d*Q - C(x+d))) / (C*x(x+d) + y*y*d*Q)
|
|
175
|
-
|
|
176
|
-
// todo: assumes k = x * y
|
|
177
|
-
// otherwise use: (y(1-p) + (kp^2/(x*p+d)) - k/(x+d)) * Q = C solve for p
|
|
178
|
-
|
|
179
|
-
// const k = market.amm.sqrtK.mul(market.amm.sqrtK);
|
|
180
|
-
const x = market.amm.baseAssetReserve;
|
|
181
|
-
const y = market.amm.quoteAssetReserve;
|
|
182
|
-
|
|
183
|
-
const d = market.baseAssetAmount;
|
|
184
|
-
const Q = market.amm.pegMultiplier;
|
|
185
|
-
|
|
186
|
-
const C = cost.mul(new BN(-1));
|
|
187
|
-
|
|
188
|
-
const numer1 = y.mul(d).mul(Q).div(AMM_RESERVE_PRECISION).div(PEG_PRECISION);
|
|
189
|
-
const numer2 = C.mul(x.add(d)).div(QUOTE_PRECISION);
|
|
190
|
-
const denom1 = C.mul(x)
|
|
191
|
-
.mul(x.add(d))
|
|
192
|
-
.div(AMM_RESERVE_PRECISION)
|
|
193
|
-
.div(QUOTE_PRECISION);
|
|
194
|
-
const denom2 = y
|
|
195
|
-
.mul(d)
|
|
196
|
-
.mul(d)
|
|
197
|
-
.mul(Q)
|
|
198
|
-
.div(AMM_RESERVE_PRECISION)
|
|
199
|
-
.div(AMM_RESERVE_PRECISION)
|
|
200
|
-
.div(PEG_PRECISION);
|
|
201
|
-
|
|
202
|
-
const numerator = d
|
|
203
|
-
.mul(numer1.add(numer2))
|
|
204
|
-
.div(AMM_RESERVE_PRECISION)
|
|
205
|
-
.div(AMM_RESERVE_PRECISION)
|
|
206
|
-
.div(AMM_TO_QUOTE_PRECISION_RATIO);
|
|
207
|
-
const denominator = denom1
|
|
208
|
-
.add(denom2)
|
|
209
|
-
.div(AMM_RESERVE_PRECISION)
|
|
210
|
-
.div(AMM_TO_QUOTE_PRECISION_RATIO);
|
|
211
|
-
console.log(numerator, denominator);
|
|
212
|
-
// const p = (numerator).div(denominator);
|
|
213
|
-
|
|
214
|
-
// const formulaCost = (numer21.sub(numer20).sub(numer1)).mul(market.amm.pegMultiplier).div(AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO)
|
|
215
|
-
// console.log(convertToNumber(formulaCost, QUOTE_PRECISION))
|
|
216
|
-
|
|
217
|
-
return [numerator, denominator];
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export function calculateBudgetedPeg(market: Market, cost: BN): BN {
|
|
221
|
-
// wolframalpha.com
|
|
222
|
-
// (1/(x+d) - p/(x*p+d))*y*d*Q = C solve for p
|
|
223
|
-
// p = (d(y*d*Q - C(x+d))) / (C*x(x+d) + y*y*d*Q)
|
|
224
|
-
|
|
225
|
-
// todo: assumes k = x * y
|
|
226
|
-
// otherwise use: (y(1-p) + (kp^2/(x*p+d)) - k/(x+d)) * Q = C solve for p
|
|
227
|
-
|
|
228
|
-
const k = market.amm.sqrtK.mul(market.amm.sqrtK);
|
|
229
|
-
const x = market.amm.baseAssetReserve;
|
|
230
|
-
const y = market.amm.quoteAssetReserve;
|
|
231
|
-
|
|
232
|
-
const d = market.baseAssetAmount;
|
|
233
|
-
const Q = market.amm.pegMultiplier;
|
|
234
|
-
|
|
235
|
-
const C = cost.mul(new BN(-1));
|
|
236
|
-
|
|
237
|
-
const deltaQuoteAssetReserves = y.sub(k.div(x.add(d)));
|
|
238
|
-
const deltaPegMultiplier = C.mul(MARK_PRICE_PRECISION).div(
|
|
239
|
-
deltaQuoteAssetReserves.div(AMM_TO_QUOTE_PRECISION_RATIO)
|
|
240
|
-
);
|
|
241
|
-
// .mul(PEG_PRECISION)
|
|
242
|
-
// .div(QUOTE_PRECISION);
|
|
243
|
-
console.log(
|
|
244
|
-
Q.toNumber(),
|
|
245
|
-
'change by',
|
|
246
|
-
deltaPegMultiplier.toNumber() / MARK_PRICE_PRECISION.toNumber()
|
|
247
|
-
);
|
|
248
|
-
const newPeg = Q.sub(
|
|
249
|
-
deltaPegMultiplier.mul(PEG_PRECISION).div(MARK_PRICE_PRECISION)
|
|
250
|
-
);
|
|
251
|
-
|
|
252
|
-
return newPeg;
|
|
253
|
-
}
|