@drift-labs/sdk 0.1.18 → 0.1.19-master.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.
@@ -34,7 +34,7 @@ class DefaultClearingHouseAccountSubscriber {
34
34
  this.subscriptionPromise = new Promise((res) => {
35
35
  this.subscriptionPromiseResolver = res;
36
36
  });
37
- const statePublicKey = yield addresses_1.getClearingHouseStateAccountPublicKey(this.program.programId);
37
+ const statePublicKey = yield (0, addresses_1.getClearingHouseStateAccountPublicKey)(this.program.programId);
38
38
  // create and activate main state account subscription
39
39
  this.stateAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('state', this.program, statePublicKey);
40
40
  yield this.stateAccountSubscriber.subscribe((data) => {
@@ -26,7 +26,7 @@ class DefaultUserAccountSubscriber {
26
26
  if (this.isSubscribed) {
27
27
  return true;
28
28
  }
29
- const userPublicKey = yield addresses_1.getUserAccountPublicKey(this.program.programId, this.authority);
29
+ const userPublicKey = yield (0, addresses_1.getUserAccountPublicKey)(this.program.programId, this.authority);
30
30
  this.userDataAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('user', this.program, userPublicKey);
31
31
  yield this.userDataAccountSubscriber.subscribe((data) => {
32
32
  this.eventEmitter.emit('userAccountData', data);
package/lib/admin.js CHANGED
@@ -69,7 +69,7 @@ class Admin extends clearingHouse_1.ClearingHouse {
69
69
  const tradeHistory = anchor.web3.Keypair.generate();
70
70
  const liquidationHistory = anchor.web3.Keypair.generate();
71
71
  const curveHistory = anchor.web3.Keypair.generate();
72
- const [clearingHouseStatePublicKey, clearingHouseNonce] = yield addresses_1.getClearingHouseStateAccountPublicKeyAndNonce(this.program.programId);
72
+ const [clearingHouseStatePublicKey, clearingHouseNonce] = yield (0, addresses_1.getClearingHouseStateAccountPublicKeyAndNonce)(this.program.programId);
73
73
  const initializeTx = yield this.program.transaction.initialize(clearingHouseNonce, collateralVaultNonce, insuranceVaultNonce, adminControlsPrices, {
74
74
  accounts: {
75
75
  admin: this.wallet.publicKey,
@@ -188,8 +188,8 @@ class Admin extends clearingHouse_1.ClearingHouse {
188
188
  moveAmmToPrice(marketIndex, targetPrice) {
189
189
  return __awaiter(this, void 0, void 0, function* () {
190
190
  const market = this.getMarket(marketIndex);
191
- const [direction, tradeSize, _] = trade_1.calculateTargetPriceTrade(market, targetPrice);
192
- const [newQuoteAssetAmount, newBaseAssetAmount] = amm_1.calculateAmmReservesAfterSwap(market.amm, 'quote', tradeSize, amm_1.getSwapDirection('quote', direction));
191
+ const [direction, tradeSize, _] = (0, trade_1.calculateTargetPriceTrade)(market, targetPrice);
192
+ const [newQuoteAssetAmount, newBaseAssetAmount] = (0, amm_1.calculateAmmReservesAfterSwap)(market.amm, 'quote', tradeSize, (0, amm_1.getSwapDirection)('quote', direction));
193
193
  const state = this.getStateAccount();
194
194
  return yield this.program.rpc.moveAmmPrice(newBaseAssetAmount, newQuoteAssetAmount, marketIndex, {
195
195
  accounts: {
@@ -115,7 +115,7 @@ class ClearingHouse {
115
115
  if (this.statePublicKey) {
116
116
  return this.statePublicKey;
117
117
  }
118
- this.statePublicKey = yield addresses_1.getClearingHouseStateAccountPublicKey(this.program.programId);
118
+ this.statePublicKey = yield (0, addresses_1.getClearingHouseStateAccountPublicKey)(this.program.programId);
119
119
  return this.statePublicKey;
120
120
  });
121
121
  }
@@ -174,7 +174,7 @@ class ClearingHouse {
174
174
  }
175
175
  getInitializeUserInstructions() {
176
176
  return __awaiter(this, void 0, void 0, function* () {
177
- const [userPublicKey, userAccountNonce] = yield addresses_1.getUserAccountPublicKeyAndNonce(this.program.programId, this.wallet.publicKey);
177
+ const [userPublicKey, userAccountNonce] = yield (0, addresses_1.getUserAccountPublicKeyAndNonce)(this.program.programId, this.wallet.publicKey);
178
178
  const remainingAccounts = [];
179
179
  const optionalAccounts = {
180
180
  whitelistToken: false,
@@ -213,7 +213,7 @@ class ClearingHouse {
213
213
  if (this.userAccountPublicKey) {
214
214
  return this.userAccountPublicKey;
215
215
  }
216
- this.userAccountPublicKey = yield addresses_1.getUserAccountPublicKey(this.program.programId, this.wallet.publicKey);
216
+ this.userAccountPublicKey = yield (0, addresses_1.getUserAccountPublicKey)(this.program.programId, this.wallet.publicKey);
217
217
  return this.userAccountPublicKey;
218
218
  });
219
219
  }
@@ -303,7 +303,7 @@ class ClearingHouse {
303
303
  }
304
304
  withdrawCollateral(amount, collateralAccountPublicKey) {
305
305
  return __awaiter(this, void 0, void 0, function* () {
306
- return this.txSender.send(utils_1.wrapInTx(yield this.getWithdrawCollateralIx(amount, collateralAccountPublicKey)), [], this.opts);
306
+ return this.txSender.send((0, utils_1.wrapInTx)(yield this.getWithdrawCollateralIx(amount, collateralAccountPublicKey)), [], this.opts);
307
307
  });
308
308
  }
309
309
  getWithdrawCollateralIx(amount, collateralAccountPublicKey) {
@@ -332,7 +332,7 @@ class ClearingHouse {
332
332
  }
333
333
  openPosition(direction, amount, marketIndex, limitPrice, discountToken, referrer) {
334
334
  return __awaiter(this, void 0, void 0, function* () {
335
- return yield this.txSender.send(utils_1.wrapInTx(yield this.getOpenPositionIx(direction, amount, marketIndex, limitPrice, discountToken, referrer)), [], this.opts);
335
+ return yield this.txSender.send((0, utils_1.wrapInTx)(yield this.getOpenPositionIx(direction, amount, marketIndex, limitPrice, discountToken, referrer)), [], this.opts);
336
336
  });
337
337
  }
338
338
  getOpenPositionIx(direction, amount, marketIndex, limitPrice, discountToken, referrer) {
@@ -390,7 +390,7 @@ class ClearingHouse {
390
390
  */
391
391
  closePosition(marketIndex, discountToken, referrer) {
392
392
  return __awaiter(this, void 0, void 0, function* () {
393
- return yield this.txSender.send(utils_1.wrapInTx(yield this.getClosePositionIx(marketIndex, discountToken, referrer)), [], this.opts);
393
+ return yield this.txSender.send((0, utils_1.wrapInTx)(yield this.getClosePositionIx(marketIndex, discountToken, referrer)), [], this.opts);
394
394
  });
395
395
  }
396
396
  getClosePositionIx(marketIndex, discountToken, referrer) {
@@ -438,7 +438,7 @@ class ClearingHouse {
438
438
  }
439
439
  liquidate(liquidateeUserAccountPublicKey) {
440
440
  return __awaiter(this, void 0, void 0, function* () {
441
- return this.txSender.send(utils_1.wrapInTx(yield this.getLiquidateIx(liquidateeUserAccountPublicKey)), [], this.opts);
441
+ return this.txSender.send((0, utils_1.wrapInTx)(yield this.getLiquidateIx(liquidateeUserAccountPublicKey)), [], this.opts);
442
442
  });
443
443
  }
444
444
  getLiquidateIx(liquidateeUserAccountPublicKey) {
@@ -482,7 +482,7 @@ class ClearingHouse {
482
482
  }
483
483
  updateFundingRate(oracle, marketIndex) {
484
484
  return __awaiter(this, void 0, void 0, function* () {
485
- return this.txSender.send(utils_1.wrapInTx(yield this.getUpdateFundingRateIx(oracle, marketIndex)), [], this.opts);
485
+ return this.txSender.send((0, utils_1.wrapInTx)(yield this.getUpdateFundingRateIx(oracle, marketIndex)), [], this.opts);
486
486
  });
487
487
  }
488
488
  getUpdateFundingRateIx(oracle, marketIndex) {
@@ -500,7 +500,7 @@ class ClearingHouse {
500
500
  }
501
501
  settleFundingPayment(userAccount, userPositionsAccount) {
502
502
  return __awaiter(this, void 0, void 0, function* () {
503
- return this.txSender.send(utils_1.wrapInTx(yield this.getSettleFundingPaymentIx(userAccount, userPositionsAccount)), [], this.opts);
503
+ return this.txSender.send((0, utils_1.wrapInTx)(yield this.getSettleFundingPaymentIx(userAccount, userPositionsAccount)), [], this.opts);
504
504
  });
505
505
  }
506
506
  getSettleFundingPaymentIx(userAccount, userPositionsAccount) {
@@ -84,7 +84,7 @@ class ClearingHouseUser {
84
84
  if (this.userAccountPublicKey) {
85
85
  return this.userAccountPublicKey;
86
86
  }
87
- this.userAccountPublicKey = yield addresses_1.getUserAccountPublicKey(this.clearingHouse.program.programId, this.authority);
87
+ this.userAccountPublicKey = yield (0, addresses_1.getUserAccountPublicKey)(this.clearingHouse.program.programId, this.authority);
88
88
  return this.userAccountPublicKey;
89
89
  });
90
90
  }
@@ -122,7 +122,7 @@ class ClearingHouseUser {
122
122
  .positions.filter((pos) => marketIndex ? pos.marketIndex === marketIndex : true)
123
123
  .reduce((pnl, marketPosition) => {
124
124
  const market = this.clearingHouse.getMarket(marketPosition.marketIndex);
125
- return pnl.add(_1.calculatePositionPNL(market, marketPosition, withFunding));
125
+ return pnl.add((0, _1.calculatePositionPNL)(market, marketPosition, withFunding));
126
126
  }, numericConstants_1.ZERO);
127
127
  }
128
128
  /**
@@ -134,7 +134,7 @@ class ClearingHouseUser {
134
134
  .positions.filter((pos) => marketIndex ? pos.marketIndex === marketIndex : true)
135
135
  .reduce((pnl, marketPosition) => {
136
136
  const market = this.clearingHouse.getMarket(marketPosition.marketIndex);
137
- return pnl.add(_1.calculatePositionFundingPNL(market, marketPosition));
137
+ return pnl.add((0, _1.calculatePositionFundingPNL)(market, marketPosition));
138
138
  }, numericConstants_1.ZERO);
139
139
  }
140
140
  /**
@@ -152,7 +152,7 @@ class ClearingHouseUser {
152
152
  getTotalPositionValue() {
153
153
  return this.getUserPositionsAccount().positions.reduce((positionValue, marketPosition) => {
154
154
  const market = this.clearingHouse.getMarket(marketPosition.marketIndex);
155
- return positionValue.add(_1.calculateBaseAssetValue(market, marketPosition));
155
+ return positionValue.add((0, _1.calculateBaseAssetValue)(market, marketPosition));
156
156
  }, numericConstants_1.ZERO);
157
157
  }
158
158
  /**
@@ -162,7 +162,7 @@ class ClearingHouseUser {
162
162
  getPositionValue(marketIndex) {
163
163
  const userPosition = this.getUserPosition(marketIndex) || this.getEmptyPosition(marketIndex);
164
164
  const market = this.clearingHouse.getMarket(userPosition.marketIndex);
165
- return _1.calculateBaseAssetValue(market, userPosition);
165
+ return (0, _1.calculateBaseAssetValue)(market, userPosition);
166
166
  }
167
167
  getPositionSide(currentPosition) {
168
168
  if (currentPosition.baseAssetAmount.gt(numericConstants_1.ZERO)) {
@@ -181,10 +181,10 @@ class ClearingHouseUser {
181
181
  */
182
182
  getPositionEstimatedExitPriceAndPnl(position, amountToClose) {
183
183
  const market = this.clearingHouse.getMarket(position.marketIndex);
184
- const entryPrice = position_1.calculateEntryPrice(position);
184
+ const entryPrice = (0, position_1.calculateEntryPrice)(position);
185
185
  if (amountToClose) {
186
186
  if (amountToClose.eq(numericConstants_1.ZERO)) {
187
- return [_1.calculateMarkPrice(market), numericConstants_1.ZERO];
187
+ return [(0, _1.calculateMarkPrice)(market), numericConstants_1.ZERO];
188
188
  }
189
189
  position = {
190
190
  baseAssetAmount: amountToClose,
@@ -193,7 +193,7 @@ class ClearingHouseUser {
193
193
  quoteAssetAmount: position.quoteAssetAmount,
194
194
  };
195
195
  }
196
- const baseAssetValue = _1.calculateBaseAssetValue(market, position);
196
+ const baseAssetValue = (0, _1.calculateBaseAssetValue)(market, position);
197
197
  if (position.baseAssetAmount.eq(numericConstants_1.ZERO)) {
198
198
  return [numericConstants_1.ZERO, numericConstants_1.ZERO];
199
199
  }
@@ -300,7 +300,7 @@ class ClearingHouseUser {
300
300
 
301
301
  for 10x long, BTC down $400:
302
302
  3. (10k - 4k) / (100k - 4k) = 6k/96k => .0625 */
303
- const currentPrice = _1.calculateMarkPrice(this.clearingHouse.getMarket(targetMarket.marketIndex));
303
+ const currentPrice = (0, _1.calculateMarkPrice)(this.clearingHouse.getMarket(targetMarket.marketIndex));
304
304
  const totalCollateralUSDC = this.getTotalCollateral();
305
305
  // calculate the total position value ignoring any value from the target market of the trade
306
306
  const totalCurrentPositionValueIgnoringTargetUSDC = this.getTotalPositionValueExcludingMarket(targetMarket.marketIndex);
@@ -315,7 +315,7 @@ class ClearingHouseUser {
315
315
  quoteAssetAmount: new bn_js_1.default(0),
316
316
  };
317
317
  const market = this.clearingHouse.getMarket(proposedMarketPosition.marketIndex);
318
- const proposedMarketPositionValueUSDC = _1.calculateBaseAssetValue(market, proposedMarketPosition);
318
+ const proposedMarketPositionValueUSDC = (0, _1.calculateBaseAssetValue)(market, proposedMarketPosition);
319
319
  // total position value after trade
320
320
  const targetTotalPositionValueUSDC = totalCurrentPositionValueIgnoringTargetUSDC.add(proposedMarketPositionValueUSDC);
321
321
  let totalFreeCollateralUSDC = this.getTotalCollateral().sub(this.getTotalPositionValue()
@@ -400,7 +400,7 @@ class ClearingHouseUser {
400
400
  quoteAssetAmount: new bn_js_1.default(0),
401
401
  };
402
402
  const market = this.clearingHouse.getMarket(proposedMarketPosition.marketIndex);
403
- const proposedMarketPositionValueUSDC = _1.calculateBaseAssetValue(market, proposedMarketPosition);
403
+ const proposedMarketPositionValueUSDC = (0, _1.calculateBaseAssetValue)(market, proposedMarketPosition);
404
404
  // total position value after trade
405
405
  const targetTotalPositionValueUSDC = totalCurrentPositionValueIgnoringTargetUSDC.add(proposedMarketPositionValueUSDC);
406
406
  let totalFreeCollateralUSDC = tc.sub(totalCurrentPositionValueIgnoringTargetUSDC
@@ -428,13 +428,13 @@ class ClearingHouseUser {
428
428
  }
429
429
  let currentPrice;
430
430
  if (positionBaseSizeChange.eq(numericConstants_1.ZERO)) {
431
- currentPrice = _1.calculateMarkPrice(this.clearingHouse.getMarket(targetMarket.marketIndex));
431
+ currentPrice = (0, _1.calculateMarkPrice)(this.clearingHouse.getMarket(targetMarket.marketIndex));
432
432
  }
433
433
  else {
434
434
  const direction = positionBaseSizeChange.gt(numericConstants_1.ZERO)
435
435
  ? _1.PositionDirection.LONG
436
436
  : _1.PositionDirection.SHORT;
437
- currentPrice = _1.calculateTradeSlippage(direction, positionBaseSizeChange.abs(), this.clearingHouse.getMarket(targetMarket.marketIndex), 'base')[3]; // newPrice after swap
437
+ currentPrice = (0, _1.calculateTradeSlippage)(direction, positionBaseSizeChange.abs(), this.clearingHouse.getMarket(targetMarket.marketIndex), 'base')[3]; // newPrice after swap
438
438
  }
439
439
  // if the position value after the trade is less than total collateral, there is no liq price
440
440
  if (targetTotalPositionValueUSDC.lte(totalFreeCollateralUSDC) &&
@@ -21,7 +21,7 @@ const getTokenAddress = (mintAddress, userPubKey) => {
21
21
  exports.getTokenAddress = getTokenAddress;
22
22
  const main = () => __awaiter(void 0, void 0, void 0, function* () {
23
23
  // Initialize Drift SDK
24
- const sdkConfig = __2.initialize({ env: 'devnet' });
24
+ const sdkConfig = (0, __2.initialize)({ env: 'devnet' });
25
25
  // Set up the Wallet and Provider
26
26
  const privateKey = process.env.BOT_PRIVATE_KEY; // stored as an array string
27
27
  const keypair = web3_js_1.Keypair.fromSecretKey(Uint8Array.from(JSON.parse(privateKey)));
@@ -35,7 +35,7 @@ const main = () => __awaiter(void 0, void 0, void 0, function* () {
35
35
  const lamportsBalance = yield connection.getBalance(wallet.publicKey);
36
36
  console.log('SOL balance:', lamportsBalance / Math.pow(10, 9));
37
37
  // Misc. other things to set up
38
- const usdcTokenAddress = yield exports.getTokenAddress(sdkConfig.USDC_MINT_ADDRESS, wallet.publicKey.toString());
38
+ const usdcTokenAddress = yield (0, exports.getTokenAddress)(sdkConfig.USDC_MINT_ADDRESS, wallet.publicKey.toString());
39
39
  // Set up the Drift Clearing House
40
40
  const clearingHousePublicKey = new web3_js_1.PublicKey(sdkConfig.CLEARING_HOUSE_PROGRAM_ID);
41
41
  const clearingHouse = __2.ClearingHouse.from(connection, provider.wallet, clearingHousePublicKey);
@@ -47,18 +47,18 @@ const main = () => __awaiter(void 0, void 0, void 0, function* () {
47
47
  if (!userAccountExists) {
48
48
  //// Create a Clearing House account by Depositing some USDC ($10,000 in this case)
49
49
  const depositAmount = new anchor_1.BN(10000).mul(__2.QUOTE_PRECISION);
50
- yield clearingHouse.initializeUserAccountAndDepositCollateral(depositAmount, yield exports.getTokenAddress(usdcTokenAddress.toString(), wallet.publicKey.toString()));
50
+ yield clearingHouse.initializeUserAccountAndDepositCollateral(depositAmount, yield (0, exports.getTokenAddress)(usdcTokenAddress.toString(), wallet.publicKey.toString()));
51
51
  }
52
52
  yield user.subscribe();
53
53
  // Get current price
54
54
  const solMarketInfo = __2.Markets.find((market) => market.baseAssetSymbol === 'SOL');
55
- const currentMarketPrice = __2.calculateMarkPrice(clearingHouse.getMarket(solMarketInfo.marketIndex));
56
- const formattedPrice = __2.convertToNumber(currentMarketPrice, __2.QUOTE_PRECISION);
55
+ const currentMarketPrice = (0, __2.calculateMarkPrice)(clearingHouse.getMarket(solMarketInfo.marketIndex));
56
+ const formattedPrice = (0, __2.convertToNumber)(currentMarketPrice, __2.QUOTE_PRECISION);
57
57
  console.log(`Current Market Price is $${formattedPrice}`);
58
58
  // Estimate the slippage for a $5000 LONG trade
59
59
  const solMarketAccount = clearingHouse.getMarket(solMarketInfo.marketIndex);
60
60
  const longAmount = new anchor_1.BN(5000).mul(__2.QUOTE_PRECISION);
61
- const slippage = __2.convertToNumber(__2.calculateTradeSlippage(__2.PositionDirection.LONG, longAmount, solMarketAccount)[0], __2.MARK_PRICE_PRECISION);
61
+ const slippage = (0, __2.convertToNumber)((0, __2.calculateTradeSlippage)(__2.PositionDirection.LONG, longAmount, solMarketAccount)[0], __2.MARK_PRICE_PRECISION);
62
62
  console.log(`Slippage for a $5000 LONG on the SOL market would be $${slippage}`);
63
63
  // Make a $5000 LONG trade
64
64
  yield clearingHouse.openPosition(__2.PositionDirection.LONG, longAmount, solMarketInfo.marketIndex);
package/lib/math/amm.js CHANGED
@@ -36,7 +36,7 @@ exports.calculatePrice = calculatePrice;
36
36
  * @returns quoteAssetReserve and baseAssetReserve after swap. : Precision AMM_RESERVE_PRECISION
37
37
  */
38
38
  function calculateAmmReservesAfterSwap(amm, inputAssetType, swapAmount, swapDirection) {
39
- assert_1.assert(swapAmount.gte(numericConstants_1.ZERO), 'swapAmount must be greater than 0');
39
+ (0, assert_1.assert)(swapAmount.gte(numericConstants_1.ZERO), 'swapAmount must be greater than 0');
40
40
  let newQuoteAssetReserve;
41
41
  let newBaseAssetReserve;
42
42
  if (inputAssetType === 'quote') {
@@ -105,7 +105,7 @@ function calculateAdjustKCost(market, marketIndex, numerator, denomenator) {
105
105
  marketIndex: new anchor_1.BN(marketIndex),
106
106
  quoteAssetAmount: new anchor_1.BN(0),
107
107
  };
108
- const currentValue = position_1.calculateBaseAssetValue(market, netUserPosition);
108
+ const currentValue = (0, position_1.calculateBaseAssetValue)(market, netUserPosition);
109
109
  const marketNewK = Object.assign({}, market);
110
110
  marketNewK.amm = Object.assign({}, market.amm);
111
111
  marketNewK.amm.baseAssetReserve = market.amm.baseAssetReserve
@@ -116,7 +116,7 @@ function calculateAdjustKCost(market, marketIndex, numerator, denomenator) {
116
116
  .div(denomenator);
117
117
  marketNewK.amm.sqrtK = market.amm.sqrtK.mul(numerator).div(denomenator);
118
118
  netUserPosition.quoteAssetAmount = currentValue;
119
- const cost = __1.calculatePositionPNL(marketNewK, netUserPosition);
119
+ const cost = (0, __1.calculatePositionPNL)(marketNewK, netUserPosition);
120
120
  return cost;
121
121
  }
122
122
  exports.calculateAdjustKCost = calculateAdjustKCost;
@@ -135,15 +135,15 @@ function calculateRepegCost(market, marketIndex, newPeg) {
135
135
  marketIndex: new anchor_1.BN(marketIndex),
136
136
  quoteAssetAmount: new anchor_1.BN(0),
137
137
  };
138
- const currentValue = position_1.calculateBaseAssetValue(market, netUserPosition);
138
+ const currentValue = (0, position_1.calculateBaseAssetValue)(market, netUserPosition);
139
139
  netUserPosition.quoteAssetAmount = currentValue;
140
- const prevMarketPrice = __1.calculateMarkPrice(market);
140
+ const prevMarketPrice = (0, __1.calculateMarkPrice)(market);
141
141
  const marketNewPeg = Object.assign({}, market);
142
142
  marketNewPeg.amm = Object.assign({}, market.amm);
143
143
  // const marketNewPeg = JSON.parse(JSON.stringify(market));
144
144
  marketNewPeg.amm.pegMultiplier = newPeg;
145
- console.log('Price moves from', __1.convertToNumber(prevMarketPrice), 'to', __1.convertToNumber(__1.calculateMarkPrice(marketNewPeg)));
146
- const cost = __1.calculatePositionPNL(marketNewPeg, netUserPosition);
145
+ console.log('Price moves from', (0, __1.convertToNumber)(prevMarketPrice), 'to', (0, __1.convertToNumber)((0, __1.calculateMarkPrice)(marketNewPeg)));
146
+ const cost = (0, __1.calculatePositionPNL)(marketNewPeg, netUserPosition);
147
147
  return cost;
148
148
  }
149
149
  exports.calculateRepegCost = calculateRepegCost;
@@ -10,6 +10,6 @@ const convertToNumber = (bigNumber, precision = numericConstants_1.MARK_PRICE_PR
10
10
  };
11
11
  exports.convertToNumber = convertToNumber;
12
12
  const convertBaseAssetAmountToNumber = (baseAssetAmount) => {
13
- return exports.convertToNumber(baseAssetAmount, numericConstants_1.MARK_PRICE_PRECISION.mul(numericConstants_1.PEG_PRECISION));
13
+ return (0, exports.convertToNumber)(baseAssetAmount, numericConstants_1.MARK_PRICE_PRECISION.mul(numericConstants_1.PEG_PRECISION));
14
14
  };
15
15
  exports.convertBaseAssetAmountToNumber = convertBaseAssetAmountToNumber;
@@ -40,7 +40,7 @@ function calculateAllEstimatedFundingRate(market, oraclePriceData, periodAdjustm
40
40
  const lastMarkPriceTwapTs = market.amm.lastMarkPriceTwapTs;
41
41
  const timeSinceLastMarkChange = now.sub(lastMarkPriceTwapTs);
42
42
  const markTwapTimeSinceLastUpdate = anchor_1.BN.max(secondsInHour, secondsInHour.sub(timeSinceLastMarkChange));
43
- const baseAssetPriceWithMantissa = market_1.calculateMarkPrice(market);
43
+ const baseAssetPriceWithMantissa = (0, market_1.calculateMarkPrice)(market);
44
44
  const markTwapWithMantissa = markTwapTimeSinceLastUpdate
45
45
  .mul(lastMarkTwapWithMantissa)
46
46
  .add(timeSinceLastMarkChange.mul(baseAssetPriceWithMantissa))
@@ -9,6 +9,6 @@ const amm_1 = require("./amm");
9
9
  * @return markPrice : Precision MARK_PRICE_PRECISION
10
10
  */
11
11
  function calculateMarkPrice(market) {
12
- return amm_1.calculatePrice(market.amm.baseAssetReserve, market.amm.quoteAssetReserve, market.amm.pegMultiplier);
12
+ return (0, amm_1.calculatePrice)(market.amm.baseAssetReserve, market.amm.quoteAssetReserve, market.amm.pegMultiplier);
13
13
  }
14
14
  exports.calculateMarkPrice = calculateMarkPrice;
@@ -22,7 +22,7 @@ function calculateBaseAssetValue(market, userPosition) {
22
22
  const directionToClose = userPosition.baseAssetAmount.gt(numericConstants_1.ZERO)
23
23
  ? types_1.PositionDirection.SHORT
24
24
  : types_1.PositionDirection.LONG;
25
- const [newQuoteAssetReserve, _] = amm_1.calculateAmmReservesAfterSwap(market.amm, 'base', userPosition.baseAssetAmount.abs(), amm_1.getSwapDirection('base', directionToClose));
25
+ const [newQuoteAssetReserve, _] = (0, amm_1.calculateAmmReservesAfterSwap)(market.amm, 'base', userPosition.baseAssetAmount.abs(), (0, amm_1.getSwapDirection)('base', directionToClose));
26
26
  switch (directionToClose) {
27
27
  case types_1.PositionDirection.SHORT:
28
28
  return market.amm.quoteAssetReserve
package/lib/math/trade.js CHANGED
@@ -25,18 +25,18 @@ const MAXPCT = new anchor_1.BN(1000); //percentage units are [0,1000] => [0,1]
25
25
  * 'newPrice' => the price of the asset after the trade : Precision MARK_PRICE_PRECISION
26
26
  */
27
27
  function calculateTradeSlippage(direction, amount, market, inputAssetType = 'quote') {
28
- const oldPrice = market_1.calculateMarkPrice(market);
28
+ const oldPrice = (0, market_1.calculateMarkPrice)(market);
29
29
  if (amount.eq(numericConstants_1.ZERO)) {
30
30
  return [numericConstants_1.ZERO, numericConstants_1.ZERO, oldPrice, oldPrice];
31
31
  }
32
32
  const [acquiredBase, acquiredQuote] = calculateTradeAcquiredAmounts(direction, amount, market, inputAssetType);
33
- const entryPrice = amm_1.calculatePrice(acquiredBase, acquiredQuote, market.amm.pegMultiplier).mul(new anchor_1.BN(-1));
34
- const newPrice = amm_1.calculatePrice(market.amm.baseAssetReserve.sub(acquiredBase), market.amm.quoteAssetReserve.sub(acquiredQuote), market.amm.pegMultiplier);
33
+ const entryPrice = (0, amm_1.calculatePrice)(acquiredBase, acquiredQuote, market.amm.pegMultiplier).mul(new anchor_1.BN(-1));
34
+ const newPrice = (0, amm_1.calculatePrice)(market.amm.baseAssetReserve.sub(acquiredBase), market.amm.quoteAssetReserve.sub(acquiredQuote), market.amm.pegMultiplier);
35
35
  if (direction == types_1.PositionDirection.SHORT) {
36
- assert_1.assert(newPrice.lt(oldPrice));
36
+ (0, assert_1.assert)(newPrice.lt(oldPrice));
37
37
  }
38
38
  else {
39
- assert_1.assert(oldPrice.lt(newPrice));
39
+ (0, assert_1.assert)(oldPrice.lt(newPrice));
40
40
  }
41
41
  const pctMaxSlippage = newPrice
42
42
  .sub(oldPrice)
@@ -64,7 +64,7 @@ function calculateTradeAcquiredAmounts(direction, amount, market, inputAssetType
64
64
  if (amount.eq(numericConstants_1.ZERO)) {
65
65
  return [numericConstants_1.ZERO, numericConstants_1.ZERO];
66
66
  }
67
- const [newQuoteAssetReserve, newBaseAssetReserve] = amm_1.calculateAmmReservesAfterSwap(market.amm, inputAssetType, amount, amm_1.getSwapDirection(inputAssetType, direction));
67
+ const [newQuoteAssetReserve, newBaseAssetReserve] = (0, amm_1.calculateAmmReservesAfterSwap)(market.amm, inputAssetType, amount, (0, amm_1.getSwapDirection)(inputAssetType, direction));
68
68
  const acquiredBase = market.amm.baseAssetReserve.sub(newBaseAssetReserve);
69
69
  const acquiredQuote = market.amm.quoteAssetReserve.sub(newQuoteAssetReserve);
70
70
  return [acquiredBase, acquiredQuote];
@@ -86,10 +86,10 @@ exports.calculateTradeAcquiredAmounts = calculateTradeAcquiredAmounts;
86
86
  * ]
87
87
  */
88
88
  function calculateTargetPriceTrade(market, targetPrice, pct = MAXPCT, outputAssetType = 'quote') {
89
- assert_1.assert(market.amm.baseAssetReserve.gt(numericConstants_1.ZERO));
90
- assert_1.assert(targetPrice.gt(numericConstants_1.ZERO));
91
- assert_1.assert(pct.lte(MAXPCT) && pct.gt(numericConstants_1.ZERO));
92
- const markPriceBefore = market_1.calculateMarkPrice(market);
89
+ (0, assert_1.assert)(market.amm.baseAssetReserve.gt(numericConstants_1.ZERO));
90
+ (0, assert_1.assert)(targetPrice.gt(numericConstants_1.ZERO));
91
+ (0, assert_1.assert)(pct.lte(MAXPCT) && pct.gt(numericConstants_1.ZERO));
92
+ const markPriceBefore = (0, market_1.calculateMarkPrice)(market);
93
93
  if (targetPrice.gt(markPriceBefore)) {
94
94
  const priceGap = targetPrice.sub(markPriceBefore);
95
95
  const priceGapScaled = priceGap.mul(pct).div(MAXPCT);
@@ -114,11 +114,11 @@ function calculateTargetPriceTrade(market, targetPrice, pct = MAXPCT, outputAsse
114
114
  let markPriceAfter;
115
115
  if (markPriceBefore.gt(targetPrice)) {
116
116
  // overestimate y2
117
- baseAssetReserveAfter = utils_1.squareRootBN(k.div(targetPrice).mul(peg).div(numericConstants_1.PEG_PRECISION).sub(biasModifier)).sub(new anchor_1.BN(1));
117
+ baseAssetReserveAfter = (0, utils_1.squareRootBN)(k.div(targetPrice).mul(peg).div(numericConstants_1.PEG_PRECISION).sub(biasModifier)).sub(new anchor_1.BN(1));
118
118
  quoteAssetReserveAfter = k
119
119
  .div(numericConstants_1.MARK_PRICE_PRECISION)
120
120
  .div(baseAssetReserveAfter);
121
- markPriceAfter = amm_1.calculatePrice(baseAssetReserveAfter, quoteAssetReserveAfter, peg);
121
+ markPriceAfter = (0, amm_1.calculatePrice)(baseAssetReserveAfter, quoteAssetReserveAfter, peg);
122
122
  direction = types_1.PositionDirection.SHORT;
123
123
  tradeSize = quoteAssetReserveBefore
124
124
  .sub(quoteAssetReserveAfter)
@@ -129,11 +129,11 @@ function calculateTargetPriceTrade(market, targetPrice, pct = MAXPCT, outputAsse
129
129
  }
130
130
  else if (markPriceBefore.lt(targetPrice)) {
131
131
  // underestimate y2
132
- baseAssetReserveAfter = utils_1.squareRootBN(k.div(targetPrice).mul(peg).div(numericConstants_1.PEG_PRECISION).add(biasModifier)).add(new anchor_1.BN(1));
132
+ baseAssetReserveAfter = (0, utils_1.squareRootBN)(k.div(targetPrice).mul(peg).div(numericConstants_1.PEG_PRECISION).add(biasModifier)).add(new anchor_1.BN(1));
133
133
  quoteAssetReserveAfter = k
134
134
  .div(numericConstants_1.MARK_PRICE_PRECISION)
135
135
  .div(baseAssetReserveAfter);
136
- markPriceAfter = amm_1.calculatePrice(baseAssetReserveAfter, quoteAssetReserveAfter, peg);
136
+ markPriceAfter = (0, amm_1.calculatePrice)(baseAssetReserveAfter, quoteAssetReserveAfter, peg);
137
137
  direction = types_1.PositionDirection.LONG;
138
138
  tradeSize = quoteAssetReserveAfter
139
139
  .sub(quoteAssetReserveBefore)
@@ -160,8 +160,8 @@ function calculateTargetPriceTrade(market, targetPrice, pct = MAXPCT, outputAsse
160
160
  .mul(numericConstants_1.AMM_TO_QUOTE_PRECISION_RATIO)
161
161
  .mul(numericConstants_1.MARK_PRICE_PRECISION)
162
162
  .div(baseSize.abs());
163
- assert_1.assert(tp1.sub(tp2).lte(originalDiff), 'Target Price Calculation incorrect');
164
- assert_1.assert(tp2.lte(tp1) || tp2.sub(tp1).abs() < 100000, 'Target Price Calculation incorrect' +
163
+ (0, assert_1.assert)(tp1.sub(tp2).lte(originalDiff), 'Target Price Calculation incorrect');
164
+ (0, assert_1.assert)(tp2.lte(tp1) || tp2.sub(tp1).abs() < 100000, 'Target Price Calculation incorrect' +
165
165
  tp2.toString() +
166
166
  '>=' +
167
167
  tp1.toString() +
package/lib/pythClient.js CHANGED
@@ -18,7 +18,7 @@ class PythClient {
18
18
  getPriceData(pricePublicKey) {
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
20
  const account = yield this.connection.getAccountInfo(pricePublicKey);
21
- return client_1.parsePriceData(account.data);
21
+ return (0, client_1.parsePriceData)(account.data);
22
22
  });
23
23
  }
24
24
  }
package/lib/types.d.ts CHANGED
@@ -221,6 +221,7 @@ export declare type AMM = {
221
221
  totalFeeWithdrawn: BN;
222
222
  totalFee: BN;
223
223
  minimumTradeSize: BN;
224
+ lastOraclePrice: BN;
224
225
  };
225
226
  export declare type UserPosition = {
226
227
  baseAssetAmount: BN;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "0.1.18",
3
+ "version": "0.1.19-master.0",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "author": "crispheaney",
package/src/types.ts CHANGED
@@ -239,6 +239,7 @@ export type AMM = {
239
239
  totalFeeWithdrawn: BN;
240
240
  totalFee: BN;
241
241
  minimumTradeSize: BN;
242
+ lastOraclePrice: BN;
242
243
  };
243
244
 
244
245
  // # User Account Types