@drift-labs/sdk 0.1.17 → 0.1.18-master.3

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/README.md CHANGED
@@ -84,7 +84,7 @@ convertToNumber(new BN(10500), new BN(1000)); // = 10.5
84
84
  ### Setting up an account and making a trade
85
85
 
86
86
  ```typescript
87
- import { BN, Provider, Wallet } from '@project-serum/anchor';
87
+ import { BN, Provider } from '@project-serum/anchor';
88
88
  import { Token, TOKEN_PROGRAM_ID } from '@solana/spl-token';
89
89
  import { Connection, Keypair, PublicKey } from '@solana/web3.js';
90
90
  import {
@@ -98,6 +98,7 @@ import {
98
98
  calculateTradeSlippage,
99
99
  MARK_PRICE_PRECISION,
100
100
  QUOTE_PRECISION,
101
+ Wallet
101
102
  } from '@drift-labs/sdk';
102
103
 
103
104
  export const getTokenAddress = (
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { ClearingHouseAccountSubscriber, ClearingHouseAccountEvents, ClearingHouseAccountTypes } from './types';
3
3
  import { AccountSubscriber } from './types';
4
- import { CurveHistoryAccount, DepositHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, LiquidationHistoryAccount, MarketsAccount, StateAccount, TradeHistoryAccount } from '../types';
4
+ import { DepositHistoryAccount, ExtendedCurveHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, LiquidationHistoryAccount, MarketsAccount, StateAccount, TradeHistoryAccount } from '../types';
5
5
  import { Program } from '@project-serum/anchor';
6
6
  import StrictEventEmitter from 'strict-event-emitter-types';
7
7
  import { EventEmitter } from 'events';
@@ -15,7 +15,7 @@ export declare class DefaultClearingHouseAccountSubscriber implements ClearingHo
15
15
  depositHistoryAccountSubscriber?: AccountSubscriber<DepositHistoryAccount>;
16
16
  fundingPaymentHistoryAccountSubscriber?: AccountSubscriber<FundingPaymentHistoryAccount>;
17
17
  fundingRateHistoryAccountSubscriber?: AccountSubscriber<FundingRateHistoryAccount>;
18
- curveHistoryAccountSubscriber?: AccountSubscriber<CurveHistoryAccount>;
18
+ curveHistoryAccountSubscriber?: AccountSubscriber<ExtendedCurveHistoryAccount>;
19
19
  liquidationHistoryAccountSubscriber?: AccountSubscriber<LiquidationHistoryAccount>;
20
20
  optionalExtraSubscriptions: ClearingHouseAccountTypes[];
21
21
  private isSubscribing;
@@ -33,7 +33,7 @@ export declare class DefaultClearingHouseAccountSubscriber implements ClearingHo
33
33
  getDepositHistoryAccount(): DepositHistoryAccount;
34
34
  getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
35
35
  getFundingRateHistoryAccount(): FundingRateHistoryAccount;
36
- getCurveHistoryAccount(): CurveHistoryAccount;
36
+ getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
37
37
  getLiquidationHistoryAccount(): LiquidationHistoryAccount;
38
38
  }
39
39
  //# sourceMappingURL=defaultClearingHouseAccountSubscriber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultClearingHouseAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/defaultClearingHouseAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAChE,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,qBAAa,qCACZ,YAAW,8BAA8B;IAEzC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACzD,wBAAwB,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC7D,6BAA6B,CAAC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACvE,+BAA+B,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC3E,sCAAsC,CAAC,EAAE,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IACzF,mCAAmC,CAAC,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IACnF,6BAA6B,CAAC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACvE,mCAAmC,CAAC,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAEnF,0BAA0B,EAAE,yBAAyB,EAAE,CAAM;IAE7D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,mBAAmB,CAAmB;IAC9C,OAAO,CAAC,2BAA2B,CAAyB;gBAEzC,OAAO,EAAE,OAAO;IAMtB,SAAS,CACrB,qBAAqB,CAAC,EAAE,yBAAyB,EAAE,GACjD,OAAO,CAAC,OAAO,CAAC;IAiJN,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCzC,kBAAkB,IAAI,IAAI;IAQ1B,0BAA0B,CACzB,oBAAoB,EAAE,yBAAyB,GAC7C,IAAI;IAcA,eAAe,IAAI,YAAY;IAK/B,iBAAiB,IAAI,cAAc;IAKnC,sBAAsB,IAAI,mBAAmB;IAM7C,wBAAwB,IAAI,qBAAqB;IAMjD,+BAA+B,IAAI,4BAA4B;IAM/D,4BAA4B,IAAI,yBAAyB;IAMzD,sBAAsB,IAAI,mBAAmB;IAM7C,4BAA4B,IAAI,yBAAyB;CAKhE"}
1
+ {"version":3,"file":"defaultClearingHouseAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/defaultClearingHouseAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAChE,OAAO,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,qBAAa,qCACZ,YAAW,8BAA8B;IAEzC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACzD,wBAAwB,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC7D,6BAA6B,CAAC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACvE,+BAA+B,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC3E,sCAAsC,CAAC,EAAE,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IACzF,mCAAmC,CAAC,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IACnF,6BAA6B,CAAC,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;IAC/E,mCAAmC,CAAC,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAEnF,0BAA0B,EAAE,yBAAyB,EAAE,CAAM;IAE7D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,mBAAmB,CAAmB;IAC9C,OAAO,CAAC,2BAA2B,CAAyB;gBAEzC,OAAO,EAAE,OAAO;IAMtB,SAAS,CACrB,qBAAqB,CAAC,EAAE,yBAAyB,EAAE,GACjD,OAAO,CAAC,OAAO,CAAC;IAiJN,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCzC,kBAAkB,IAAI,IAAI;IAQ1B,0BAA0B,CACzB,oBAAoB,EAAE,yBAAyB,GAC7C,IAAI;IAcA,eAAe,IAAI,YAAY;IAK/B,iBAAiB,IAAI,cAAc;IAKnC,sBAAsB,IAAI,mBAAmB;IAM7C,wBAAwB,IAAI,qBAAqB;IAMjD,+BAA+B,IAAI,4BAA4B;IAM/D,4BAA4B,IAAI,yBAAyB;IAMzD,sBAAsB,IAAI,2BAA2B;IAMrD,4BAA4B,IAAI,yBAAyB;CAKhE"}
@@ -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) => {
@@ -54,7 +54,7 @@ class DefaultClearingHouseAccountSubscriber {
54
54
  new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('fundingPaymentHistory', this.program, state.fundingPaymentHistory);
55
55
  this.fundingRateHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('fundingRateHistory', this.program, state.fundingRateHistory);
56
56
  this.liquidationHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('liquidationHistory', this.program, state.liquidationHistory);
57
- this.curveHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('curveHistory', this.program, state.curveHistory);
57
+ this.curveHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('extendedCurveHistory', this.program, state.extendedCurveHistory);
58
58
  const extraSusbcribersToUse = [];
59
59
  if (optionalSubscriptions === null || optionalSubscriptions === void 0 ? void 0 : optionalSubscriptions.includes('tradeHistoryAccount'))
60
60
  extraSusbcribersToUse.push({
@@ -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);
@@ -56,8 +56,8 @@ class DefaultUserAccountSubscriber {
56
56
  if (!this.isSubscribed) {
57
57
  return;
58
58
  }
59
- this.userDataAccountSubscriber.unsubscribe();
60
- this.userPositionsAccountSubscriber.unsubscribe();
59
+ yield this.userDataAccountSubscriber.unsubscribe();
60
+ yield this.userPositionsAccountSubscriber.unsubscribe();
61
61
  this.isSubscribed = false;
62
62
  });
63
63
  }
@@ -1,12 +1,12 @@
1
1
  /// <reference types="node" />
2
- import { CurveHistoryAccount, DepositHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, LiquidationHistoryAccount, MarketsAccount, StateAccount, TradeHistoryAccount, UserAccount, UserPositionsAccount } from '../types';
2
+ import { DepositHistoryAccount, ExtendedCurveHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, LiquidationHistoryAccount, MarketsAccount, StateAccount, TradeHistoryAccount, UserAccount, UserPositionsAccount } from '../types';
3
3
  import StrictEventEmitter from 'strict-event-emitter-types';
4
4
  import { EventEmitter } from 'events';
5
5
  export interface AccountSubscriber<T> {
6
6
  data?: T;
7
7
  subscribe(onChange: (data: T) => void): Promise<void>;
8
8
  fetch(): Promise<void>;
9
- unsubscribe(): void;
9
+ unsubscribe(): Promise<void>;
10
10
  }
11
11
  export declare class NotSubscribedError extends Error {
12
12
  name: string;
@@ -19,7 +19,7 @@ export interface ClearingHouseAccountEvents {
19
19
  tradeHistoryAccountUpdate: (payload: TradeHistoryAccount) => void;
20
20
  liquidationHistoryAccountUpdate: (payload: LiquidationHistoryAccount) => void;
21
21
  depositHistoryAccountUpdate: (payload: DepositHistoryAccount) => void;
22
- curveHistoryAccountUpdate: (payload: CurveHistoryAccount) => void;
22
+ curveHistoryAccountUpdate: (payload: ExtendedCurveHistoryAccount) => void;
23
23
  update: void;
24
24
  }
25
25
  export declare type ClearingHouseAccountTypes = 'tradeHistoryAccount' | 'depositHistoryAccount' | 'fundingPaymentHistoryAccount' | 'fundingRateHistoryAccount' | 'curveHistoryAccount' | 'liquidationHistoryAccount';
@@ -36,7 +36,7 @@ export interface ClearingHouseAccountSubscriber {
36
36
  getDepositHistoryAccount(): DepositHistoryAccount;
37
37
  getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
38
38
  getFundingRateHistoryAccount(): FundingRateHistoryAccount;
39
- getCurveHistoryAccount(): CurveHistoryAccount;
39
+ getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
40
40
  getLiquidationHistoryAccount(): LiquidationHistoryAccount;
41
41
  }
42
42
  export interface UserAccountEvents {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/accounts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/accounts/types.ts"],"names":[],"mappings":"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"}
package/lib/admin.d.ts CHANGED
@@ -9,6 +9,7 @@ export declare class Admin extends ClearingHouse {
9
9
  initializeMarket(marketIndex: BN, priceOracle: PublicKey, baseAssetReserve: BN, quoteAssetReserve: BN, periodicity: BN, pegMultiplier?: BN): Promise<TransactionSignature>;
10
10
  moveAmmPrice(baseAssetReserve: BN, quoteAssetReserve: BN, marketIndex: BN): Promise<TransactionSignature>;
11
11
  updateK(sqrtK: BN, marketIndex: BN): Promise<TransactionSignature>;
12
+ updateCurveHistory(): Promise<TransactionSignature>;
12
13
  moveAmmToPrice(marketIndex: BN, targetPrice: BN): Promise<TransactionSignature>;
13
14
  repegAmmCurve(newPeg: BN, marketIndex: BN): Promise<TransactionSignature>;
14
15
  withdrawFromInsuranceVault(amount: BN, recipient: PublicKey): Promise<TransactionSignature>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,cAAc,EACd,UAAU,EACV,SAAS,EAET,oBAAoB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,EAAE,EAA0B,MAAM,uBAAuB,CAAC;AAInE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,qBAAa,KAAM,SAAQ,aAAa;WACzB,IAAI,CACjB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,OAAO,EACf,sBAAsB,EAAE,SAAS,EACjC,IAAI,GAAE,cAA0C,GAC9C,KAAK;IAqBK,UAAU,CACtB,QAAQ,EAAE,SAAS,EACnB,mBAAmB,EAAE,OAAO,GAC1B,OAAO,CAAC,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IA+H3C,gBAAgB,CAC5B,WAAW,EAAE,EAAE,EACf,WAAW,EAAE,SAAS,EACtB,gBAAgB,EAAE,EAAE,EACpB,iBAAiB,EAAE,EAAE,EACrB,WAAW,EAAE,EAAE,EACf,aAAa,GAAE,EAAkB,GAC/B,OAAO,CAAC,oBAAoB,CAAC;IAuBnB,YAAY,CACxB,gBAAgB,EAAE,EAAE,EACpB,iBAAiB,EAAE,EAAE,EACrB,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAgBnB,OAAO,CACnB,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAYnB,cAAc,CAC1B,WAAW,EAAE,EAAE,EACf,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IA+BnB,aAAa,CACzB,MAAM,EAAE,EAAE,EACV,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAiBnB,0BAA0B,CACtC,MAAM,EAAE,EAAE,EACV,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,oBAAoB,CAAC;IAcnB,YAAY,CACxB,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,EACV,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,oBAAoB,CAAC;IAenB,kCAAkC,CAC9C,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACR,OAAO,CAAC,oBAAoB,CAAC;IAmBnB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAS5D,iBAAiB,CAC7B,kBAAkB,EAAE,EAAE,EACtB,kBAAkB,EAAE,EAAE,EACtB,sBAAsB,EAAE,EAAE,GACxB,OAAO,CAAC,oBAAoB,CAAC;IAcnB,uCAAuC,CACnD,SAAS,EAAE,EAAE,EACb,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAanB,yCAAyC,CACrD,SAAS,EAAE,EAAE,EACb,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAanB,sCAAsC,CAClD,SAAS,EAAE,EAAE,EACb,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAanB,wCAAwC,CACpD,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAYnB,qCAAqC,CACjD,WAAW,EAAE,EAAE,GACb,OAAO,CAAC,oBAAoB,CAAC;IAYnB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAS5D,sBAAsB,CAClC,gBAAgB,EAAE,gBAAgB,GAChC,OAAO,CAAC,oBAAoB,CAAC;IASnB,kBAAkB,CAC9B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,YAAY,GACxB,OAAO,CAAC,oBAAoB,CAAC;IAgBnB,4BAA4B,CACxC,WAAW,EAAE,EAAE,EACf,gBAAgB,EAAE,EAAE,GAClB,OAAO,CAAC,oBAAoB,CAAC;IAenB,mBAAmB,CAC/B,aAAa,CAAC,EAAE,SAAS,GACvB,OAAO,CAAC,oBAAoB,CAAC;IASnB,kBAAkB,CAC9B,YAAY,EAAE,SAAS,GACrB,OAAO,CAAC,oBAAoB,CAAC;IASnB,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAS/D,mBAAmB,CAC/B,aAAa,EAAE,OAAO,GACpB,OAAO,CAAC,oBAAoB,CAAC;IASnB,oBAAoB,CAChC,cAAc,EAAE,OAAO,GACrB,OAAO,CAAC,oBAAoB,CAAC;IASnB,0BAA0B,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAQxE"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
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,
@@ -108,7 +108,7 @@ class Admin extends clearingHouse_1.ClearingHouse {
108
108
  yield this.program.account.tradeHistory.createInstruction(tradeHistory),
109
109
  yield this.program.account.liquidationHistory.createInstruction(liquidationHistory),
110
110
  yield this.program.account.depositHistory.createInstruction(depositHistory),
111
- yield this.program.account.curveHistory.createInstruction(curveHistory),
111
+ yield this.program.account.extendedCurveHistory.createInstruction(curveHistory),
112
112
  ],
113
113
  });
114
114
  const initializeHistoryTxSig = yield this.txSender.send(initializeHistoryTx, [
@@ -153,21 +153,43 @@ class Admin extends clearingHouse_1.ClearingHouse {
153
153
  updateK(sqrtK, marketIndex) {
154
154
  return __awaiter(this, void 0, void 0, function* () {
155
155
  const state = this.getStateAccount();
156
+ const markets = this.getMarketsAccount();
157
+ const marketData = markets.markets[marketIndex.toNumber()];
158
+ const ammData = marketData.amm;
156
159
  return yield this.program.rpc.updateK(sqrtK, marketIndex, {
157
160
  accounts: {
158
161
  state: yield this.getStatePublicKey(),
159
162
  admin: this.wallet.publicKey,
160
163
  markets: state.markets,
164
+ curveHistory: state.extendedCurveHistory,
165
+ oracle: ammData.oracle,
166
+ },
167
+ });
168
+ });
169
+ }
170
+ updateCurveHistory() {
171
+ return __awaiter(this, void 0, void 0, function* () {
172
+ const extendedCurveHistory = anchor.web3.Keypair.generate();
173
+ const state = this.getStateAccount();
174
+ return yield this.program.rpc.updateCurveHistory({
175
+ accounts: {
176
+ state: yield this.getStatePublicKey(),
177
+ admin: this.wallet.publicKey,
161
178
  curveHistory: state.curveHistory,
179
+ extendedCurveHistory: extendedCurveHistory.publicKey,
162
180
  },
181
+ instructions: [
182
+ yield this.program.account.extendedCurveHistory.createInstruction(extendedCurveHistory),
183
+ ],
184
+ signers: [extendedCurveHistory],
163
185
  });
164
186
  });
165
187
  }
166
188
  moveAmmToPrice(marketIndex, targetPrice) {
167
189
  return __awaiter(this, void 0, void 0, function* () {
168
190
  const market = this.getMarket(marketIndex);
169
- const [direction, tradeSize, _] = trade_1.calculateTargetPriceTrade(market, targetPrice);
170
- 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));
171
193
  const state = this.getStateAccount();
172
194
  return yield this.program.rpc.moveAmmPrice(newBaseAssetAmount, newQuoteAssetAmount, marketIndex, {
173
195
  accounts: {
@@ -190,7 +212,7 @@ class Admin extends clearingHouse_1.ClearingHouse {
190
212
  admin: this.wallet.publicKey,
191
213
  oracle: ammData.oracle,
192
214
  markets: state.markets,
193
- curveHistory: state.curveHistory,
215
+ curveHistory: state.extendedCurveHistory,
194
216
  },
195
217
  });
196
218
  });
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="bn.js" />
3
3
  import { BN, Program, Provider } from '@project-serum/anchor';
4
- import { MarketsAccount, StateAccount, CurveHistoryAccount, DepositHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, IWallet, LiquidationHistoryAccount, PositionDirection, TradeHistoryAccount, UserAccount, Market } from './types';
4
+ import { MarketsAccount, StateAccount, DepositHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, IWallet, LiquidationHistoryAccount, PositionDirection, TradeHistoryAccount, UserAccount, Market, ExtendedCurveHistoryAccount } from './types';
5
5
  import { Connection, PublicKey, TransactionSignature, Keypair, ConfirmOptions, TransactionInstruction } from '@solana/web3.js';
6
6
  import { MockUSDCFaucet } from './mockUSDCFaucet';
7
7
  import { EventEmitter } from 'events';
@@ -56,7 +56,7 @@ export declare class ClearingHouse {
56
56
  getTradeHistoryAccount(): TradeHistoryAccount;
57
57
  getLiquidationHistoryAccount(): LiquidationHistoryAccount;
58
58
  getDepositHistoryAccount(): DepositHistoryAccount;
59
- getCurveHistoryAccount(): CurveHistoryAccount;
59
+ getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
60
60
  /**
61
61
  * Update the wallet to use for clearing house transactions and linked user account
62
62
  * @param newWallet
@@ -1 +1 @@
1
- {"version":3,"file":"clearingHouse.d.ts","sourceRoot":"","sources":["../src/clearingHouse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clearingHouse.d.ts","sourceRoot":"","sources":["../src/clearingHouse.ts"],"names":[],"mappings":"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"}
@@ -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);