@drift-labs/sdk 0.1.18-orders.1 → 0.1.19-master.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +2 -1
  2. package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts +4 -7
  3. package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts.map +1 -0
  4. package/lib/accounts/defaultClearingHouseAccountSubscriber.js +2 -27
  5. package/lib/accounts/defaultUserAccountSubscriber.d.ts +2 -3
  6. package/lib/accounts/defaultUserAccountSubscriber.d.ts.map +1 -0
  7. package/lib/accounts/defaultUserAccountSubscriber.js +5 -14
  8. package/lib/accounts/types.d.ts +6 -32
  9. package/lib/accounts/types.d.ts.map +1 -0
  10. package/lib/accounts/webSocketAccountSubscriber.d.ts +1 -0
  11. package/lib/accounts/webSocketAccountSubscriber.d.ts.map +1 -0
  12. package/lib/addresses.d.ts +1 -4
  13. package/lib/addresses.d.ts.map +1 -0
  14. package/lib/addresses.js +1 -28
  15. package/lib/admin.d.ts +7 -10
  16. package/lib/admin.d.ts.map +1 -0
  17. package/lib/admin.js +64 -53
  18. package/lib/assert/assert.d.ts +1 -0
  19. package/lib/assert/assert.d.ts.map +1 -0
  20. package/lib/clearingHouse.d.ts +3 -22
  21. package/lib/clearingHouse.d.ts.map +1 -0
  22. package/lib/clearingHouse.js +15 -246
  23. package/lib/clearingHouseUser.d.ts +17 -10
  24. package/lib/clearingHouseUser.d.ts.map +1 -0
  25. package/lib/clearingHouseUser.js +97 -111
  26. package/lib/config.d.ts +1 -0
  27. package/lib/config.d.ts.map +1 -0
  28. package/lib/config.js +1 -1
  29. package/lib/constants/markets.d.ts +1 -0
  30. package/lib/constants/markets.d.ts.map +1 -0
  31. package/lib/constants/markets.js +16 -0
  32. package/lib/constants/numericConstants.d.ts +1 -0
  33. package/lib/constants/numericConstants.d.ts.map +1 -0
  34. package/lib/examples/makeTradeExample.d.ts +1 -0
  35. package/lib/examples/makeTradeExample.d.ts.map +1 -0
  36. package/lib/examples/makeTradeExample.js +6 -6
  37. package/lib/idl/clearing_house.json +233 -911
  38. package/lib/index.d.ts +1 -4
  39. package/lib/index.d.ts.map +1 -0
  40. package/lib/index.js +0 -4
  41. package/lib/math/amm.d.ts +1 -1
  42. package/lib/math/amm.d.ts.map +1 -0
  43. package/lib/math/amm.js +15 -38
  44. package/lib/math/conversion.d.ts +1 -0
  45. package/lib/math/conversion.d.ts.map +1 -0
  46. package/lib/math/conversion.js +1 -1
  47. package/lib/math/funding.d.ts +1 -0
  48. package/lib/math/funding.d.ts.map +1 -0
  49. package/lib/math/funding.js +5 -2
  50. package/lib/math/insuranceFund.d.ts +1 -0
  51. package/lib/math/insuranceFund.d.ts.map +1 -0
  52. package/lib/math/market.d.ts +2 -2
  53. package/lib/math/market.d.ts.map +1 -0
  54. package/lib/math/market.js +2 -12
  55. package/lib/math/position.d.ts +2 -4
  56. package/lib/math/position.d.ts.map +1 -0
  57. package/lib/math/position.js +5 -19
  58. package/lib/math/trade.d.ts +1 -0
  59. package/lib/math/trade.d.ts.map +1 -0
  60. package/lib/math/trade.js +16 -16
  61. package/lib/math/utils.d.ts +1 -0
  62. package/lib/math/utils.d.ts.map +1 -0
  63. package/lib/mockUSDCFaucet.d.ts +1 -0
  64. package/lib/mockUSDCFaucet.d.ts.map +1 -0
  65. package/lib/pythClient.d.ts +1 -0
  66. package/lib/pythClient.d.ts.map +1 -0
  67. package/lib/pythClient.js +1 -1
  68. package/lib/tx/defaultTxSender.d.ts +1 -0
  69. package/lib/tx/defaultTxSender.d.ts.map +1 -0
  70. package/lib/tx/types.d.ts +1 -0
  71. package/lib/tx/types.d.ts.map +1 -0
  72. package/lib/tx/utils.d.ts +1 -0
  73. package/lib/tx/utils.d.ts.map +1 -0
  74. package/lib/types.d.ts +9 -140
  75. package/lib/types.d.ts.map +1 -0
  76. package/lib/types.js +1 -36
  77. package/lib/util/computeUnits.d.ts +1 -0
  78. package/lib/util/computeUnits.d.ts.map +1 -0
  79. package/lib/util/tps.d.ts +1 -0
  80. package/lib/util/tps.d.ts.map +1 -0
  81. package/lib/wallet.d.ts +1 -0
  82. package/lib/wallet.d.ts.map +1 -0
  83. package/package.json +1 -1
  84. package/src/accounts/defaultClearingHouseAccountSubscriber.ts +5 -52
  85. package/src/accounts/defaultUserAccountSubscriber.ts +6 -31
  86. package/src/accounts/types.ts +5 -42
  87. package/src/addresses.ts +0 -35
  88. package/src/admin.ts +71 -86
  89. package/src/clearingHouse.ts +7 -340
  90. package/src/clearingHouseUser.ts +102 -154
  91. package/src/config.ts +1 -1
  92. package/src/constants/markets.ts +16 -0
  93. package/src/idl/clearing_house.json +233 -911
  94. package/src/index.ts +0 -4
  95. package/src/math/amm.ts +14 -47
  96. package/src/math/funding.ts +5 -1
  97. package/src/math/market.ts +2 -28
  98. package/src/math/position.ts +3 -23
  99. package/src/types.ts +8 -124
  100. package/tsconfig.json +1 -0
  101. package/lib/accounts/defaultHistoryAccountSubscriber.d.ts +0 -28
  102. package/lib/accounts/defaultHistoryAccountSubscriber.js +0 -110
  103. package/lib/math/orders.d.ts +0 -3
  104. package/lib/math/orders.js +0 -30
  105. package/lib/orderParams.d.ts +0 -7
  106. package/lib/orderParams.js +0 -88
  107. package/lib/orders.d.ts +0 -5
  108. package/lib/orders.js +0 -136
  109. package/src/accounts/defaultHistoryAccountSubscriber.ts +0 -176
  110. package/src/math/orders.ts +0 -39
  111. package/src/orderParams.ts +0 -128
  112. package/src/orders.ts +0 -230
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, OrderHistoryAccount, OrderStateAccount, 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,10 +15,8 @@ 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
- orderStateAccountSubscriber?: AccountSubscriber<OrderStateAccount>;
21
- orderHistoryAccountSubscriber?: AccountSubscriber<OrderHistoryAccount>;
22
20
  optionalExtraSubscriptions: ClearingHouseAccountTypes[];
23
21
  private isSubscribing;
24
22
  private subscriptionPromise;
@@ -35,8 +33,7 @@ export declare class DefaultClearingHouseAccountSubscriber implements ClearingHo
35
33
  getDepositHistoryAccount(): DepositHistoryAccount;
36
34
  getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
37
35
  getFundingRateHistoryAccount(): FundingRateHistoryAccount;
38
- getCurveHistoryAccount(): CurveHistoryAccount;
36
+ getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
39
37
  getLiquidationHistoryAccount(): LiquidationHistoryAccount;
40
- getOrderHistoryAccount(): OrderHistoryAccount;
41
- getOrderStateAccount(): OrderStateAccount;
42
38
  }
39
+ //# sourceMappingURL=defaultClearingHouseAccountSubscriber.d.ts.map
@@ -0,0 +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,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) => {
@@ -47,12 +47,6 @@ class DefaultClearingHouseAccountSubscriber {
47
47
  this.eventEmitter.emit('marketsAccountUpdate', data);
48
48
  this.eventEmitter.emit('update');
49
49
  });
50
- this.orderStateAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('orderState', this.program, state.orderState);
51
- yield this.orderStateAccountSubscriber.subscribe((data) => {
52
- this.eventEmitter.emit('orderStateAccountUpdate', data);
53
- this.eventEmitter.emit('update');
54
- });
55
- const orderState = this.orderStateAccountSubscriber.data;
56
50
  // create subscribers for other state accounts
57
51
  this.tradeHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('tradeHistory', this.program, state.tradeHistory);
58
52
  this.depositHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('depositHistory', this.program, state.depositHistory);
@@ -60,8 +54,7 @@ class DefaultClearingHouseAccountSubscriber {
60
54
  new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('fundingPaymentHistory', this.program, state.fundingPaymentHistory);
61
55
  this.fundingRateHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('fundingRateHistory', this.program, state.fundingRateHistory);
62
56
  this.liquidationHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('liquidationHistory', this.program, state.liquidationHistory);
63
- this.curveHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('curveHistory', this.program, state.curveHistory);
64
- this.orderHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('orderHistory', this.program, orderState.orderHistory);
57
+ this.curveHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('extendedCurveHistory', this.program, state.extendedCurveHistory);
65
58
  const extraSusbcribersToUse = [];
66
59
  if (optionalSubscriptions === null || optionalSubscriptions === void 0 ? void 0 : optionalSubscriptions.includes('tradeHistoryAccount'))
67
60
  extraSusbcribersToUse.push({
@@ -93,11 +86,6 @@ class DefaultClearingHouseAccountSubscriber {
93
86
  subscriber: this.curveHistoryAccountSubscriber,
94
87
  eventType: 'curveHistoryAccountUpdate',
95
88
  });
96
- if (optionalSubscriptions === null || optionalSubscriptions === void 0 ? void 0 : optionalSubscriptions.includes('orderHistoryAccount'))
97
- extraSusbcribersToUse.push({
98
- subscriber: this.orderHistoryAccountSubscriber,
99
- eventType: 'orderHistoryAccountUpdate',
100
- });
101
89
  this.optionalExtraSubscriptions = optionalSubscriptions !== null && optionalSubscriptions !== void 0 ? optionalSubscriptions : [];
102
90
  // await all subcriptions in parallel to boost performance
103
91
  //// the state account subscription above can't happen in here, because some of these susbcriptions are dependent on clearing house state being available
@@ -136,7 +124,6 @@ class DefaultClearingHouseAccountSubscriber {
136
124
  }
137
125
  yield this.stateAccountSubscriber.unsubscribe();
138
126
  yield this.marketsAccountSubscriber.unsubscribe();
139
- yield this.orderStateAccountSubscriber.unsubscribe();
140
127
  if (this.optionalExtraSubscriptions.includes('tradeHistoryAccount')) {
141
128
  yield this.tradeHistoryAccountSubscriber.unsubscribe();
142
129
  }
@@ -155,9 +142,6 @@ class DefaultClearingHouseAccountSubscriber {
155
142
  if (this.optionalExtraSubscriptions.includes('liquidationHistoryAccount')) {
156
143
  yield this.liquidationHistoryAccountSubscriber.unsubscribe();
157
144
  }
158
- if (this.optionalExtraSubscriptions.includes('orderHistoryAccount')) {
159
- yield this.orderHistoryAccountSubscriber.unsubscribe();
160
- }
161
145
  this.isSubscribed = false;
162
146
  });
163
147
  }
@@ -212,14 +196,5 @@ class DefaultClearingHouseAccountSubscriber {
212
196
  this.assertOptionalIsSubscribed('liquidationHistoryAccount');
213
197
  return this.liquidationHistoryAccountSubscriber.data;
214
198
  }
215
- getOrderHistoryAccount() {
216
- this.assertIsSubscribed();
217
- this.assertOptionalIsSubscribed('orderHistoryAccount');
218
- return this.orderHistoryAccountSubscriber.data;
219
- }
220
- getOrderStateAccount() {
221
- this.assertIsSubscribed();
222
- return this.orderStateAccountSubscriber.data;
223
- }
224
199
  }
225
200
  exports.DefaultClearingHouseAccountSubscriber = DefaultClearingHouseAccountSubscriber;
@@ -4,7 +4,7 @@ import { Program } from '@project-serum/anchor';
4
4
  import StrictEventEmitter from 'strict-event-emitter-types';
5
5
  import { EventEmitter } from 'events';
6
6
  import { PublicKey } from '@solana/web3.js';
7
- import { UserAccount, UserOrdersAccount, UserPositionsAccount } from '../types';
7
+ import { UserAccount, UserPositionsAccount } from '../types';
8
8
  export declare class DefaultUserAccountSubscriber implements UserAccountSubscriber {
9
9
  isSubscribed: boolean;
10
10
  program: Program;
@@ -12,7 +12,6 @@ export declare class DefaultUserAccountSubscriber implements UserAccountSubscrib
12
12
  authority: PublicKey;
13
13
  userDataAccountSubscriber: AccountSubscriber<UserAccount>;
14
14
  userPositionsAccountSubscriber: AccountSubscriber<UserPositionsAccount>;
15
- userOrdersAccountSubscriber: AccountSubscriber<UserOrdersAccount>;
16
15
  constructor(program: Program, authority: PublicKey);
17
16
  subscribe(): Promise<boolean>;
18
17
  fetch(): Promise<void>;
@@ -20,5 +19,5 @@ export declare class DefaultUserAccountSubscriber implements UserAccountSubscrib
20
19
  assertIsSubscribed(): void;
21
20
  getUserAccount(): UserAccount;
22
21
  getUserPositionsAccount(): UserPositionsAccount;
23
- getUserOrdersAccount(): UserOrdersAccount;
24
22
  }
23
+ //# sourceMappingURL=defaultUserAccountSubscriber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/defaultUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7D,qBAAa,4BAA6B,YAAW,qBAAqB;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,SAAS,EAAE,SAAS,CAAC;IAErB,yBAAyB,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1D,8BAA8B,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gBAErD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAOnD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAsC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAalC,kBAAkB,IAAI,IAAI;IAQnB,cAAc,IAAI,WAAW;IAK7B,uBAAuB,IAAI,oBAAoB;CAItD"}
@@ -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);
@@ -38,12 +38,6 @@ class DefaultUserAccountSubscriber {
38
38
  this.eventEmitter.emit('userPositionsData', data);
39
39
  this.eventEmitter.emit('update');
40
40
  });
41
- const userOrdersPublicKey = yield addresses_1.getUserOrdersAccountPublicKey(this.program.programId, this.authority);
42
- this.userOrdersAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('userOrders', this.program, userOrdersPublicKey);
43
- yield this.userOrdersAccountSubscriber.subscribe((data) => {
44
- this.eventEmitter.emit('userOrdersData', data);
45
- this.eventEmitter.emit('update');
46
- });
47
41
  this.eventEmitter.emit('update');
48
42
  this.isSubscribed = true;
49
43
  return true;
@@ -54,7 +48,6 @@ class DefaultUserAccountSubscriber {
54
48
  yield Promise.all([
55
49
  this.userDataAccountSubscriber.fetch(),
56
50
  this.userPositionsAccountSubscriber.fetch(),
57
- this.userOrdersAccountSubscriber.fetch(),
58
51
  ]);
59
52
  });
60
53
  }
@@ -63,9 +56,10 @@ class DefaultUserAccountSubscriber {
63
56
  if (!this.isSubscribed) {
64
57
  return;
65
58
  }
66
- this.userDataAccountSubscriber.unsubscribe();
67
- this.userPositionsAccountSubscriber.unsubscribe();
68
- this.userOrdersAccountSubscriber.unsubscribe();
59
+ yield Promise.all([
60
+ this.userDataAccountSubscriber.unsubscribe(),
61
+ this.userPositionsAccountSubscriber.unsubscribe(),
62
+ ]);
69
63
  this.isSubscribed = false;
70
64
  });
71
65
  }
@@ -82,8 +76,5 @@ class DefaultUserAccountSubscriber {
82
76
  this.assertIsSubscribed();
83
77
  return this.userPositionsAccountSubscriber.data;
84
78
  }
85
- getUserOrdersAccount() {
86
- return this.userOrdersAccountSubscriber.data;
87
- }
88
79
  }
89
80
  exports.DefaultUserAccountSubscriber = DefaultUserAccountSubscriber;
@@ -1,12 +1,12 @@
1
1
  /// <reference types="node" />
2
- import { CurveHistoryAccount, DepositHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, LiquidationHistoryAccount, MarketsAccount, OrderHistoryAccount, OrderStateAccount, StateAccount, TradeHistoryAccount, UserAccount, UserOrdersAccount, 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,12 +19,10 @@ 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;
23
- orderHistoryAccountUpdate: (payload: OrderHistoryAccount) => void;
24
- orderStateAccountUpdate: (payload: OrderStateAccount) => void;
22
+ curveHistoryAccountUpdate: (payload: ExtendedCurveHistoryAccount) => void;
25
23
  update: void;
26
24
  }
27
- export declare type ClearingHouseAccountTypes = 'tradeHistoryAccount' | 'depositHistoryAccount' | 'fundingPaymentHistoryAccount' | 'fundingRateHistoryAccount' | 'curveHistoryAccount' | 'liquidationHistoryAccount' | 'orderHistoryAccount';
25
+ export declare type ClearingHouseAccountTypes = 'tradeHistoryAccount' | 'depositHistoryAccount' | 'fundingPaymentHistoryAccount' | 'fundingRateHistoryAccount' | 'curveHistoryAccount' | 'liquidationHistoryAccount';
28
26
  export interface ClearingHouseAccountSubscriber {
29
27
  eventEmitter: StrictEventEmitter<EventEmitter, ClearingHouseAccountEvents>;
30
28
  isSubscribed: boolean;
@@ -38,36 +36,12 @@ export interface ClearingHouseAccountSubscriber {
38
36
  getDepositHistoryAccount(): DepositHistoryAccount;
39
37
  getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
40
38
  getFundingRateHistoryAccount(): FundingRateHistoryAccount;
41
- getCurveHistoryAccount(): CurveHistoryAccount;
42
- getLiquidationHistoryAccount(): LiquidationHistoryAccount;
43
- getOrderStateAccount(): OrderStateAccount;
44
- getOrderHistoryAccount(): OrderHistoryAccount;
45
- }
46
- export interface HistoryAccountEvents {
47
- fundingPaymentHistoryAccountUpdate: (payload: FundingPaymentHistoryAccount) => void;
48
- fundingRateHistoryAccountUpdate: (payload: FundingRateHistoryAccount) => void;
49
- tradeHistoryAccountUpdate: (payload: TradeHistoryAccount) => void;
50
- liquidationHistoryAccountUpdate: (payload: LiquidationHistoryAccount) => void;
51
- depositHistoryAccountUpdate: (payload: DepositHistoryAccount) => void;
52
- curveHistoryAccountUpdate: (payload: CurveHistoryAccount) => void;
53
- update: void;
54
- }
55
- export interface HistoryAccountSubscriber {
56
- eventEmitter: StrictEventEmitter<EventEmitter, HistoryAccountEvents>;
57
- isSubscribed: boolean;
58
- subscribe(): Promise<boolean>;
59
- unsubscribe(): Promise<void>;
60
- getTradeHistoryAccount(): TradeHistoryAccount;
61
- getDepositHistoryAccount(): DepositHistoryAccount;
62
- getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
63
- getFundingRateHistoryAccount(): FundingRateHistoryAccount;
64
- getCurveHistoryAccount(): CurveHistoryAccount;
39
+ getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
65
40
  getLiquidationHistoryAccount(): LiquidationHistoryAccount;
66
41
  }
67
42
  export interface UserAccountEvents {
68
43
  userAccountData: (payload: UserAccount) => void;
69
44
  userPositionsData: (payload: UserPositionsAccount) => void;
70
- userOrdersData: (payload: UserOrdersAccount) => void;
71
45
  update: void;
72
46
  }
73
47
  export interface UserAccountSubscriber {
@@ -78,5 +52,5 @@ export interface UserAccountSubscriber {
78
52
  unsubscribe(): Promise<void>;
79
53
  getUserAccount(): UserAccount;
80
54
  getUserPositionsAccount(): UserPositionsAccount;
81
- getUserOrdersAccount(): UserOrdersAccount;
82
55
  }
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/accounts/types.ts"],"names":[],"mappings":"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"}
@@ -12,3 +12,4 @@ export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<
12
12
  fetch(): Promise<void>;
13
13
  unsubscribe(): Promise<void>;
14
14
  }
15
+ //# sourceMappingURL=webSocketAccountSubscriber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webSocketAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/webSocketAccountSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,0BAA0B,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;gBAG3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,SAAS;IAOtB,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
@@ -1,9 +1,6 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  export declare function getClearingHouseStateAccountPublicKeyAndNonce(programId: PublicKey): Promise<[PublicKey, number]>;
3
- export declare function getOrderStateAccountPublicKey(programId: PublicKey): Promise<PublicKey>;
4
- export declare function getOrderStateAccountPublicKeyAndNonce(programId: PublicKey): Promise<[PublicKey, number]>;
5
3
  export declare function getClearingHouseStateAccountPublicKey(programId: PublicKey): Promise<PublicKey>;
6
4
  export declare function getUserAccountPublicKeyAndNonce(programId: PublicKey, authority: PublicKey): Promise<[PublicKey, number]>;
7
5
  export declare function getUserAccountPublicKey(programId: PublicKey, authority: PublicKey): Promise<PublicKey>;
8
- export declare function getUserOrdersAccountPublicKeyAndNonce(programId: PublicKey, authority: PublicKey): Promise<[PublicKey, number]>;
9
- export declare function getUserOrdersAccountPublicKey(programId: PublicKey, authority: PublicKey): Promise<PublicKey>;
6
+ //# sourceMappingURL=addresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../src/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAsB,6CAA6C,CAClE,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAK9B;AAED,wBAAsB,qCAAqC,CAC1D,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,SAAS,CAAC,CAEpB;AAED,wBAAsB,+BAA+B,CACpD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAK9B;AAED,wBAAsB,uBAAuB,CAC5C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,SAAS,CAAC,CAEpB"}
package/lib/addresses.js CHANGED
@@ -28,7 +28,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
28
28
  });
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.getUserOrdersAccountPublicKey = exports.getUserOrdersAccountPublicKeyAndNonce = exports.getUserAccountPublicKey = exports.getUserAccountPublicKeyAndNonce = exports.getClearingHouseStateAccountPublicKey = exports.getOrderStateAccountPublicKeyAndNonce = exports.getOrderStateAccountPublicKey = exports.getClearingHouseStateAccountPublicKeyAndNonce = void 0;
31
+ exports.getUserAccountPublicKey = exports.getUserAccountPublicKeyAndNonce = exports.getClearingHouseStateAccountPublicKey = exports.getClearingHouseStateAccountPublicKeyAndNonce = void 0;
32
32
  const anchor = __importStar(require("@project-serum/anchor"));
33
33
  function getClearingHouseStateAccountPublicKeyAndNonce(programId) {
34
34
  return __awaiter(this, void 0, void 0, function* () {
@@ -36,18 +36,6 @@ function getClearingHouseStateAccountPublicKeyAndNonce(programId) {
36
36
  });
37
37
  }
38
38
  exports.getClearingHouseStateAccountPublicKeyAndNonce = getClearingHouseStateAccountPublicKeyAndNonce;
39
- function getOrderStateAccountPublicKey(programId) {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- return (yield getOrderStateAccountPublicKeyAndNonce(programId))[0];
42
- });
43
- }
44
- exports.getOrderStateAccountPublicKey = getOrderStateAccountPublicKey;
45
- function getOrderStateAccountPublicKeyAndNonce(programId) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- return anchor.web3.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('order_state'))], programId);
48
- });
49
- }
50
- exports.getOrderStateAccountPublicKeyAndNonce = getOrderStateAccountPublicKeyAndNonce;
51
39
  function getClearingHouseStateAccountPublicKey(programId) {
52
40
  return __awaiter(this, void 0, void 0, function* () {
53
41
  return (yield getClearingHouseStateAccountPublicKeyAndNonce(programId))[0];
@@ -66,18 +54,3 @@ function getUserAccountPublicKey(programId, authority) {
66
54
  });
67
55
  }
68
56
  exports.getUserAccountPublicKey = getUserAccountPublicKey;
69
- function getUserOrdersAccountPublicKeyAndNonce(programId, authority) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- return anchor.web3.PublicKey.findProgramAddress([
72
- Buffer.from(anchor.utils.bytes.utf8.encode('user_orders')),
73
- authority.toBuffer(),
74
- ], programId);
75
- });
76
- }
77
- exports.getUserOrdersAccountPublicKeyAndNonce = getUserOrdersAccountPublicKeyAndNonce;
78
- function getUserOrdersAccountPublicKey(programId, authority) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- return (yield getUserOrdersAccountPublicKeyAndNonce(programId, authority))[0];
81
- });
82
- }
83
- exports.getUserOrdersAccountPublicKey = getUserOrdersAccountPublicKey;
package/lib/admin.d.ts CHANGED
@@ -1,21 +1,19 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { ConfirmOptions, Connection, PublicKey, TransactionSignature } from '@solana/web3.js';
3
- import { FeeStructure, IWallet, OracleGuardRails, OracleSource, OrderFillerRewardStructure } from './types';
3
+ import { FeeStructure, IWallet, OracleGuardRails, OracleSource } from './types';
4
4
  import { BN } from '@project-serum/anchor';
5
5
  import { ClearingHouse } from './clearingHouse';
6
6
  export declare class Admin extends ClearingHouse {
7
7
  static from(connection: Connection, wallet: IWallet, clearingHouseProgramId: PublicKey, opts?: ConfirmOptions): Admin;
8
- initialize(usdcMint: PublicKey, adminControlsPrices: boolean): Promise<[
9
- TransactionSignature,
10
- TransactionSignature,
11
- TransactionSignature
12
- ]>;
13
- initializeOrderState(): Promise<TransactionSignature>;
8
+ initialize(usdcMint: PublicKey, adminControlsPrices: boolean): Promise<[TransactionSignature, TransactionSignature]>;
14
9
  initializeMarket(marketIndex: BN, priceOracle: PublicKey, baseAssetReserve: BN, quoteAssetReserve: BN, periodicity: BN, pegMultiplier?: BN): Promise<TransactionSignature>;
15
10
  moveAmmPrice(baseAssetReserve: BN, quoteAssetReserve: BN, marketIndex: BN): Promise<TransactionSignature>;
16
11
  updateK(sqrtK: BN, marketIndex: BN): Promise<TransactionSignature>;
12
+ updateCurveHistory(): Promise<TransactionSignature>;
17
13
  moveAmmToPrice(marketIndex: BN, targetPrice: BN): Promise<TransactionSignature>;
18
14
  repegAmmCurve(newPeg: BN, marketIndex: BN): Promise<TransactionSignature>;
15
+ updateAmmOracleTwap(marketIndex: BN): Promise<TransactionSignature>;
16
+ resetAmmOracleTwap(marketIndex: BN): Promise<TransactionSignature>;
19
17
  withdrawFromInsuranceVault(amount: BN, recipient: PublicKey): Promise<TransactionSignature>;
20
18
  withdrawFees(marketIndex: BN, amount: BN, recipient: PublicKey): Promise<TransactionSignature>;
21
19
  withdrawFromInsuranceVaultToMarket(marketIndex: BN, amount: BN): Promise<TransactionSignature>;
@@ -26,12 +24,10 @@ export declare class Admin extends ClearingHouse {
26
24
  updateFullLiquidationPenaltyPercentage(numerator: BN, denominator: BN): Promise<TransactionSignature>;
27
25
  updatePartialLiquidationShareDenominator(denominator: BN): Promise<TransactionSignature>;
28
26
  updateFullLiquidationShareDenominator(denominator: BN): Promise<TransactionSignature>;
29
- updateOrderFillerRewardStructure(orderFillerRewardStructure: OrderFillerRewardStructure): Promise<TransactionSignature>;
30
27
  updateFee(fees: FeeStructure): Promise<TransactionSignature>;
31
28
  updateOracleGuardRails(oracleGuardRails: OracleGuardRails): Promise<TransactionSignature>;
32
29
  updateMarketOracle(marketIndex: BN, oracle: PublicKey, oracleSource: OracleSource): Promise<TransactionSignature>;
33
- updateMarketMinimumQuoteAssetTradeSize(marketIndex: BN, minimumTradeSize: BN): Promise<TransactionSignature>;
34
- updateMarketMinimumBaseAssetTradeSize(marketIndex: BN, minimumTradeSize: BN): Promise<TransactionSignature>;
30
+ updateMarketMinimumTradeSize(marketIndex: BN, minimumTradeSize: BN): Promise<TransactionSignature>;
35
31
  updateWhitelistMint(whitelistMint?: PublicKey): Promise<TransactionSignature>;
36
32
  updateDiscountMint(discountMint: PublicKey): Promise<TransactionSignature>;
37
33
  updateMaxDeposit(maxDeposit: BN): Promise<TransactionSignature>;
@@ -39,3 +35,4 @@ export declare class Admin extends ClearingHouse {
39
35
  updateExchangePaused(exchangePaused: boolean): Promise<TransactionSignature>;
40
36
  disableAdminControlsPrices(): Promise<TransactionSignature>;
41
37
  }
38
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
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, [
@@ -119,29 +119,7 @@ class Admin extends clearingHouse_1.ClearingHouse {
119
119
  fundingRateHistory,
120
120
  curveHistory,
121
121
  ], this.opts);
122
- const initializeOrderStateTxSig = yield this.initializeOrderState();
123
- return [initializeTxSig, initializeHistoryTxSig, initializeOrderStateTxSig];
124
- });
125
- }
126
- initializeOrderState() {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const orderHistory = anchor.web3.Keypair.generate();
129
- const [orderStatePublicKey, orderStateNonce] = yield addresses_1.getOrderStateAccountPublicKeyAndNonce(this.program.programId);
130
- const clearingHouseStatePublicKey = yield addresses_1.getClearingHouseStateAccountPublicKey(this.program.programId);
131
- const initializeOrderStateTx = yield this.program.transaction.initializeOrderState(orderStateNonce, {
132
- accounts: {
133
- admin: this.wallet.publicKey,
134
- state: clearingHouseStatePublicKey,
135
- orderHistory: orderHistory.publicKey,
136
- orderState: orderStatePublicKey,
137
- rent: web3_js_1.SYSVAR_RENT_PUBKEY,
138
- systemProgram: anchor.web3.SystemProgram.programId,
139
- },
140
- instructions: [
141
- yield this.program.account.orderHistory.createInstruction(orderHistory),
142
- ],
143
- });
144
- return yield this.txSender.send(initializeOrderStateTx, [orderHistory], this.opts);
122
+ return [initializeTxSig, initializeHistoryTxSig];
145
123
  });
146
124
  }
147
125
  initializeMarket(marketIndex, priceOracle, baseAssetReserve, quoteAssetReserve, periodicity, pegMultiplier = numericConstants_1.PEG_PRECISION) {
@@ -175,21 +153,43 @@ class Admin extends clearingHouse_1.ClearingHouse {
175
153
  updateK(sqrtK, marketIndex) {
176
154
  return __awaiter(this, void 0, void 0, function* () {
177
155
  const state = this.getStateAccount();
156
+ const markets = this.getMarketsAccount();
157
+ const marketData = markets.markets[marketIndex.toNumber()];
158
+ const ammData = marketData.amm;
178
159
  return yield this.program.rpc.updateK(sqrtK, marketIndex, {
179
160
  accounts: {
180
161
  state: yield this.getStatePublicKey(),
181
162
  admin: this.wallet.publicKey,
182
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,
183
178
  curveHistory: state.curveHistory,
179
+ extendedCurveHistory: extendedCurveHistory.publicKey,
184
180
  },
181
+ instructions: [
182
+ yield this.program.account.extendedCurveHistory.createInstruction(extendedCurveHistory),
183
+ ],
184
+ signers: [extendedCurveHistory],
185
185
  });
186
186
  });
187
187
  }
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: {
@@ -212,7 +212,41 @@ class Admin extends clearingHouse_1.ClearingHouse {
212
212
  admin: this.wallet.publicKey,
213
213
  oracle: ammData.oracle,
214
214
  markets: state.markets,
215
- curveHistory: state.curveHistory,
215
+ curveHistory: state.extendedCurveHistory,
216
+ },
217
+ });
218
+ });
219
+ }
220
+ updateAmmOracleTwap(marketIndex) {
221
+ return __awaiter(this, void 0, void 0, function* () {
222
+ const state = this.getStateAccount();
223
+ const markets = this.getMarketsAccount();
224
+ const marketData = markets.markets[marketIndex.toNumber()];
225
+ const ammData = marketData.amm;
226
+ return yield this.program.rpc.updateAmmOracleTwap(marketIndex, {
227
+ accounts: {
228
+ state: yield this.getStatePublicKey(),
229
+ admin: this.wallet.publicKey,
230
+ oracle: ammData.oracle,
231
+ markets: state.markets,
232
+ curveHistory: state.extendedCurveHistory,
233
+ },
234
+ });
235
+ });
236
+ }
237
+ resetAmmOracleTwap(marketIndex) {
238
+ return __awaiter(this, void 0, void 0, function* () {
239
+ const state = this.getStateAccount();
240
+ const markets = this.getMarketsAccount();
241
+ const marketData = markets.markets[marketIndex.toNumber()];
242
+ const ammData = marketData.amm;
243
+ return yield this.program.rpc.resetAmmOracleTwap(marketIndex, {
244
+ accounts: {
245
+ state: yield this.getStatePublicKey(),
246
+ admin: this.wallet.publicKey,
247
+ oracle: ammData.oracle,
248
+ markets: state.markets,
249
+ curveHistory: state.extendedCurveHistory,
216
250
  },
217
251
  });
218
252
  });
@@ -334,17 +368,6 @@ class Admin extends clearingHouse_1.ClearingHouse {
334
368
  });
335
369
  });
336
370
  }
337
- updateOrderFillerRewardStructure(orderFillerRewardStructure) {
338
- return __awaiter(this, void 0, void 0, function* () {
339
- return yield this.program.rpc.updateOrderFillerRewardStructure(orderFillerRewardStructure, {
340
- accounts: {
341
- admin: this.wallet.publicKey,
342
- state: yield this.getStatePublicKey(),
343
- orderState: yield this.getOrderStatePublicKey(),
344
- },
345
- });
346
- });
347
- }
348
371
  updateFee(fees) {
349
372
  return __awaiter(this, void 0, void 0, function* () {
350
373
  return yield this.program.rpc.updateFee(fees, {
@@ -377,22 +400,10 @@ class Admin extends clearingHouse_1.ClearingHouse {
377
400
  });
378
401
  });
379
402
  }
380
- updateMarketMinimumQuoteAssetTradeSize(marketIndex, minimumTradeSize) {
381
- return __awaiter(this, void 0, void 0, function* () {
382
- const state = this.getStateAccount();
383
- return yield this.program.rpc.updateMarketMinimumQuoteAssetTradeSize(marketIndex, minimumTradeSize, {
384
- accounts: {
385
- admin: this.wallet.publicKey,
386
- state: yield this.getStatePublicKey(),
387
- markets: state.markets,
388
- },
389
- });
390
- });
391
- }
392
- updateMarketMinimumBaseAssetTradeSize(marketIndex, minimumTradeSize) {
403
+ updateMarketMinimumTradeSize(marketIndex, minimumTradeSize) {
393
404
  return __awaiter(this, void 0, void 0, function* () {
394
405
  const state = this.getStateAccount();
395
- return yield this.program.rpc.updateMarketMinimumBaseAssetTradeSize(marketIndex, minimumTradeSize, {
406
+ return yield this.program.rpc.updateMarketMinimumTradeSize(marketIndex, minimumTradeSize, {
396
407
  accounts: {
397
408
  admin: this.wallet.publicKey,
398
409
  state: yield this.getStatePublicKey(),
@@ -1 +1,2 @@
1
1
  export declare function assert(condition: boolean, error?: string): void;
2
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/assert/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAI/D"}