@drift-labs/sdk 0.1.24 → 0.1.27

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 (167) hide show
  1. package/lib/accounts/bulkAccountLoader.d.ts +1 -0
  2. package/lib/accounts/bulkAccountLoader.js +16 -2
  3. package/lib/accounts/pollingClearingHouseAccountSubscriber.js +3 -3
  4. package/lib/accounts/pollingOracleSubscriber.d.ts +26 -0
  5. package/lib/accounts/pollingOracleSubscriber.js +79 -0
  6. package/lib/accounts/pollingTokenAccountSubscriber.js +2 -2
  7. package/lib/accounts/pollingUserAccountSubscriber.js +4 -4
  8. package/lib/accounts/types.d.ts +14 -1
  9. package/lib/accounts/webSocketAccountSubscriber.js +2 -2
  10. package/lib/accounts/webSocketClearingHouseAccountSubscriber.js +1 -1
  11. package/lib/accounts/webSocketUserAccountSubscriber.js +2 -2
  12. package/lib/addresses.js +5 -1
  13. package/lib/admin.d.ts +1 -1
  14. package/lib/admin.js +15 -10
  15. package/lib/clearingHouse.d.ts +4 -4
  16. package/lib/clearingHouse.js +56 -25
  17. package/lib/clearingHouseUser.js +18 -18
  18. package/lib/constants/markets.d.ts +8 -6
  19. package/lib/constants/markets.js +85 -26
  20. package/lib/constants/numericConstants.d.ts +1 -0
  21. package/lib/constants/numericConstants.js +2 -1
  22. package/lib/examples/makeTradeExample.js +6 -6
  23. package/lib/factory/oracleClient.d.ts +5 -0
  24. package/lib/factory/oracleClient.js +16 -0
  25. package/lib/idl/clearing_house.json +22 -2
  26. package/lib/idl/switchboard_v2.json +4663 -0
  27. package/lib/index.d.ts +5 -1
  28. package/lib/index.js +10 -2
  29. package/lib/math/amm.js +12 -12
  30. package/lib/math/conversion.js +1 -1
  31. package/lib/math/funding.d.ts +6 -6
  32. package/lib/math/funding.js +5 -17
  33. package/lib/math/market.d.ts +2 -0
  34. package/lib/math/market.js +8 -3
  35. package/lib/math/orders.js +9 -9
  36. package/lib/math/position.js +1 -1
  37. package/lib/math/trade.js +18 -18
  38. package/lib/mockUSDCFaucet.js +5 -1
  39. package/lib/oracles/pythClient.d.ts +14 -0
  40. package/lib/oracles/pythClient.js +53 -0
  41. package/lib/oracles/switchboardClient.d.ts +13 -0
  42. package/lib/oracles/switchboardClient.js +76 -0
  43. package/lib/oracles/types.d.ts +15 -0
  44. package/lib/oracles/types.js +2 -0
  45. package/lib/orderParams.d.ts +1 -1
  46. package/lib/orderParams.js +3 -3
  47. package/lib/orders.d.ts +3 -2
  48. package/lib/orders.js +29 -22
  49. package/lib/tx/retryTxSender.js +1 -1
  50. package/lib/types.d.ts +1 -0
  51. package/package.json +2 -1
  52. package/src/accounts/bulkAccountLoader.js +180 -0
  53. package/src/accounts/bulkAccountLoader.js.map +1 -0
  54. package/src/accounts/bulkAccountLoader.ts +19 -0
  55. package/src/accounts/bulkUserSubscription.js +56 -0
  56. package/src/accounts/bulkUserSubscription.js.map +1 -0
  57. package/src/accounts/pollingClearingHouseAccountSubscriber.js +210 -0
  58. package/src/accounts/pollingClearingHouseAccountSubscriber.js.map +1 -0
  59. package/src/accounts/pollingOracleSubscriber.js +65 -0
  60. package/src/accounts/pollingOracleSubscriber.js.map +1 -0
  61. package/src/accounts/pollingOracleSubscriber.ts +103 -0
  62. package/src/accounts/pollingTokenAccountSubscriber.js +65 -0
  63. package/src/accounts/pollingTokenAccountSubscriber.js.map +1 -0
  64. package/src/accounts/pollingUserAccountSubscriber.js +139 -0
  65. package/src/accounts/pollingUserAccountSubscriber.js.map +1 -0
  66. package/src/accounts/types.js +1 -0
  67. package/src/accounts/types.js.map +1 -0
  68. package/src/accounts/types.ts +22 -1
  69. package/src/accounts/utils.js +1 -0
  70. package/src/accounts/utils.js.map +1 -0
  71. package/src/accounts/webSocketAccountSubscriber.js +15 -27
  72. package/src/accounts/webSocketAccountSubscriber.js.map +1 -0
  73. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +212 -0
  74. package/src/accounts/webSocketClearingHouseAccountSubscriber.js.map +1 -0
  75. package/src/accounts/webSocketUserAccountSubscriber.js +78 -0
  76. package/src/accounts/webSocketUserAccountSubscriber.js.map +1 -0
  77. package/src/addresses.js +20 -44
  78. package/src/addresses.js.map +1 -0
  79. package/src/admin.js +443 -0
  80. package/src/admin.js.map +1 -0
  81. package/src/admin.ts +2 -0
  82. package/src/assert/assert.js +10 -0
  83. package/src/assert/assert.js.map +1 -0
  84. package/src/clearingHouse.js +769 -0
  85. package/src/clearingHouse.js.map +1 -0
  86. package/src/clearingHouse.ts +47 -7
  87. package/src/clearingHouseUser.js +581 -0
  88. package/src/clearingHouseUser.js.map +1 -0
  89. package/src/config.js +37 -0
  90. package/src/config.js.map +1 -0
  91. package/src/constants/markets.js +167 -0
  92. package/src/constants/markets.js.map +1 -0
  93. package/src/constants/markets.ts +93 -31
  94. package/src/constants/numericConstants.js +22 -0
  95. package/src/constants/numericConstants.js.map +1 -0
  96. package/src/constants/numericConstants.ts +1 -0
  97. package/src/factory/clearingHouse.js +65 -0
  98. package/src/factory/clearingHouse.js.map +1 -0
  99. package/src/factory/clearingHouseUser.js +35 -0
  100. package/src/factory/clearingHouseUser.js.map +1 -0
  101. package/src/factory/oracleClient.js +17 -0
  102. package/src/factory/oracleClient.js.map +1 -0
  103. package/src/factory/oracleClient.ts +22 -0
  104. package/src/idl/clearing_house.json +22 -2
  105. package/src/idl/switchboard_v2.json +4663 -0
  106. package/src/index.js +56 -0
  107. package/src/index.js.map +1 -0
  108. package/src/index.ts +5 -1
  109. package/src/math/amm.js +285 -0
  110. package/src/math/amm.js.map +1 -0
  111. package/src/math/conversion.js +16 -0
  112. package/src/math/conversion.js.map +1 -0
  113. package/src/math/funding.js +223 -0
  114. package/src/math/funding.js.map +1 -0
  115. package/src/math/funding.ts +9 -25
  116. package/src/math/insuranceFund.js +23 -0
  117. package/src/math/insuranceFund.js.map +1 -0
  118. package/src/math/market.js +30 -0
  119. package/src/math/market.js.map +1 -0
  120. package/src/math/market.ts +9 -0
  121. package/src/math/orders.js +73 -0
  122. package/src/math/orders.js.map +1 -0
  123. package/src/math/position.js +121 -0
  124. package/src/math/position.js.map +1 -0
  125. package/src/math/trade.js +182 -0
  126. package/src/math/trade.js.map +1 -0
  127. package/src/math/utils.js +27 -0
  128. package/src/math/utils.js.map +1 -0
  129. package/src/mockUSDCFaucet.js +88 -116
  130. package/src/mockUSDCFaucet.js.map +1 -0
  131. package/src/oracles/pythClient.js +39 -0
  132. package/src/oracles/pythClient.js.map +1 -0
  133. package/src/oracles/pythClient.ts +49 -0
  134. package/src/oracles/switchboardClient.js +60 -0
  135. package/src/oracles/switchboardClient.js.map +1 -0
  136. package/src/oracles/switchboardClient.ts +87 -0
  137. package/src/oracles/types.js +3 -0
  138. package/src/oracles/types.js.map +1 -0
  139. package/src/oracles/types.ts +15 -0
  140. package/src/orderParams.js +109 -0
  141. package/src/orderParams.js.map +1 -0
  142. package/src/orderParams.ts +5 -3
  143. package/src/orders.js +172 -0
  144. package/src/orders.js.map +1 -0
  145. package/src/orders.ts +17 -4
  146. package/src/token/index.js +39 -0
  147. package/src/token/index.js.map +1 -0
  148. package/src/tx/defaultTxSender.js +13 -0
  149. package/src/tx/defaultTxSender.js.map +1 -0
  150. package/src/tx/retryTxSender.js +137 -0
  151. package/src/tx/retryTxSender.js.map +1 -0
  152. package/src/tx/types.js +3 -0
  153. package/src/tx/types.js.map +1 -0
  154. package/src/tx/utils.js +9 -0
  155. package/src/tx/utils.js.map +1 -0
  156. package/src/types.js +1 -0
  157. package/src/types.js.map +1 -0
  158. package/src/types.ts +1 -0
  159. package/src/util/computeUnits.js +17 -0
  160. package/src/util/computeUnits.js.map +1 -0
  161. package/src/util/tps.js +17 -0
  162. package/src/util/tps.js.map +1 -0
  163. package/src/wallet.js +23 -0
  164. package/src/wallet.js.map +1 -0
  165. package/lib/pythClient.d.ts +0 -7
  166. package/lib/pythClient.js +0 -25
  167. package/src/pythClient.ts +0 -15
package/src/admin.js ADDED
@@ -0,0 +1,443 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.Admin = void 0;
23
+ const web3_js_1 = require("@solana/web3.js");
24
+ const types_1 = require("./types");
25
+ const anchor_1 = require("@project-serum/anchor");
26
+ const anchor = __importStar(require("@project-serum/anchor"));
27
+ const addresses_1 = require("./addresses");
28
+ const spl_token_1 = require("@solana/spl-token");
29
+ const clearingHouse_1 = require("./clearingHouse");
30
+ const numericConstants_1 = require("./constants/numericConstants");
31
+ const trade_1 = require("./math/trade");
32
+ const amm_1 = require("./math/amm");
33
+ const clearingHouse_2 = require("./factory/clearingHouse");
34
+ class Admin extends clearingHouse_1.ClearingHouse {
35
+ static from(connection, wallet, clearingHouseProgramId, opts = anchor_1.Provider.defaultOptions()) {
36
+ const config = (0, clearingHouse_2.getWebSocketClearingHouseConfig)(connection, wallet, clearingHouseProgramId, opts);
37
+ return (0, clearingHouse_2.getAdmin)(config);
38
+ }
39
+ async initialize(usdcMint, adminControlsPrices) {
40
+ const stateAccountRPCResponse = await this.connection.getParsedAccountInfo(await this.getStatePublicKey());
41
+ if (stateAccountRPCResponse.value !== null) {
42
+ throw new Error('Clearing house already initialized');
43
+ }
44
+ const [collateralVaultPublicKey, collateralVaultNonce] = await web3_js_1.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('collateral_vault'))], this.program.programId);
45
+ const [collateralVaultAuthority, _collateralVaultAuthorityNonce] = await web3_js_1.PublicKey.findProgramAddress([collateralVaultPublicKey.toBuffer()], this.program.programId);
46
+ const [insuranceVaultPublicKey, insuranceVaultNonce] = await web3_js_1.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('insurance_vault'))], this.program.programId);
47
+ const [insuranceVaultAuthority, _insuranceVaultAuthorityNonce] = await web3_js_1.PublicKey.findProgramAddress([insuranceVaultPublicKey.toBuffer()], this.program.programId);
48
+ const markets = anchor.web3.Keypair.generate();
49
+ const depositHistory = anchor.web3.Keypair.generate();
50
+ const fundingRateHistory = anchor.web3.Keypair.generate();
51
+ const fundingPaymentHistory = anchor.web3.Keypair.generate();
52
+ const tradeHistory = anchor.web3.Keypair.generate();
53
+ const liquidationHistory = anchor.web3.Keypair.generate();
54
+ const curveHistory = anchor.web3.Keypair.generate();
55
+ const [clearingHouseStatePublicKey, clearingHouseNonce] = await (0, addresses_1.getClearingHouseStateAccountPublicKeyAndNonce)(this.program.programId);
56
+ const initializeTx = await this.program.transaction.initialize(clearingHouseNonce, collateralVaultNonce, insuranceVaultNonce, adminControlsPrices, {
57
+ accounts: {
58
+ admin: this.wallet.publicKey,
59
+ state: clearingHouseStatePublicKey,
60
+ collateralMint: usdcMint,
61
+ collateralVault: collateralVaultPublicKey,
62
+ collateralVaultAuthority: collateralVaultAuthority,
63
+ insuranceVault: insuranceVaultPublicKey,
64
+ insuranceVaultAuthority: insuranceVaultAuthority,
65
+ markets: markets.publicKey,
66
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
67
+ systemProgram: anchor.web3.SystemProgram.programId,
68
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
69
+ },
70
+ instructions: [
71
+ await this.program.account.markets.createInstruction(markets),
72
+ ],
73
+ });
74
+ const initializeTxSig = await this.txSender.send(initializeTx, [markets], this.opts);
75
+ const initializeHistoryTx = await this.program.transaction.initializeHistory({
76
+ accounts: {
77
+ admin: this.wallet.publicKey,
78
+ state: clearingHouseStatePublicKey,
79
+ depositHistory: depositHistory.publicKey,
80
+ fundingRateHistory: fundingRateHistory.publicKey,
81
+ fundingPaymentHistory: fundingPaymentHistory.publicKey,
82
+ tradeHistory: tradeHistory.publicKey,
83
+ liquidationHistory: liquidationHistory.publicKey,
84
+ curveHistory: curveHistory.publicKey,
85
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
86
+ systemProgram: anchor.web3.SystemProgram.programId,
87
+ },
88
+ instructions: [
89
+ await this.program.account.fundingRateHistory.createInstruction(fundingRateHistory),
90
+ await this.program.account.fundingPaymentHistory.createInstruction(fundingPaymentHistory),
91
+ await this.program.account.tradeHistory.createInstruction(tradeHistory),
92
+ await this.program.account.liquidationHistory.createInstruction(liquidationHistory),
93
+ await this.program.account.depositHistory.createInstruction(depositHistory),
94
+ await this.program.account.extendedCurveHistory.createInstruction(curveHistory),
95
+ ],
96
+ });
97
+ const initializeHistoryTxSig = await this.txSender.send(initializeHistoryTx, [
98
+ depositHistory,
99
+ fundingPaymentHistory,
100
+ tradeHistory,
101
+ liquidationHistory,
102
+ fundingRateHistory,
103
+ curveHistory,
104
+ ], this.opts);
105
+ const initializeOrderStateTxSig = await this.initializeOrderState();
106
+ return [initializeTxSig, initializeHistoryTxSig, initializeOrderStateTxSig];
107
+ }
108
+ async initializeOrderState() {
109
+ const orderHistory = anchor.web3.Keypair.generate();
110
+ const [orderStatePublicKey, orderStateNonce] = await (0, addresses_1.getOrderStateAccountPublicKeyAndNonce)(this.program.programId);
111
+ const clearingHouseStatePublicKey = await (0, addresses_1.getClearingHouseStateAccountPublicKey)(this.program.programId);
112
+ const initializeOrderStateTx = await this.program.transaction.initializeOrderState(orderStateNonce, {
113
+ accounts: {
114
+ admin: this.wallet.publicKey,
115
+ state: clearingHouseStatePublicKey,
116
+ orderHistory: orderHistory.publicKey,
117
+ orderState: orderStatePublicKey,
118
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
119
+ systemProgram: anchor.web3.SystemProgram.programId,
120
+ },
121
+ instructions: [
122
+ await this.program.account.orderHistory.createInstruction(orderHistory),
123
+ ],
124
+ });
125
+ return await this.txSender.send(initializeOrderStateTx, [orderHistory], this.opts);
126
+ }
127
+ async initializeMarket(marketIndex, priceOracle, baseAssetReserve, quoteAssetReserve, periodicity, pegMultiplier = numericConstants_1.PEG_PRECISION, oracleSource = types_1.OracleSource.PYTH, marginRatioInitial = 2000, marginRatioPartial = 625, marginRatioMaintenance = 500) {
128
+ if (this.getMarketsAccount().markets[marketIndex.toNumber()].initialized) {
129
+ throw Error(`MarketIndex ${marketIndex.toNumber()} already initialized`);
130
+ }
131
+ const initializeMarketTx = await this.program.transaction.initializeMarket(marketIndex, baseAssetReserve, quoteAssetReserve, periodicity, pegMultiplier, oracleSource, marginRatioInitial, marginRatioPartial, marginRatioMaintenance, {
132
+ accounts: {
133
+ state: await this.getStatePublicKey(),
134
+ admin: this.wallet.publicKey,
135
+ oracle: priceOracle,
136
+ markets: this.getStateAccount().markets,
137
+ },
138
+ });
139
+ return await this.txSender.send(initializeMarketTx, [], this.opts);
140
+ }
141
+ async moveAmmPrice(baseAssetReserve, quoteAssetReserve, marketIndex) {
142
+ const state = this.getStateAccount();
143
+ return await this.program.rpc.moveAmmPrice(baseAssetReserve, quoteAssetReserve, marketIndex, {
144
+ accounts: {
145
+ state: await this.getStatePublicKey(),
146
+ admin: this.wallet.publicKey,
147
+ markets: state.markets,
148
+ },
149
+ });
150
+ }
151
+ async updateK(sqrtK, marketIndex) {
152
+ const state = this.getStateAccount();
153
+ const markets = this.getMarketsAccount();
154
+ const marketData = markets.markets[marketIndex.toNumber()];
155
+ const ammData = marketData.amm;
156
+ return await this.program.rpc.updateK(sqrtK, marketIndex, {
157
+ accounts: {
158
+ state: await this.getStatePublicKey(),
159
+ admin: this.wallet.publicKey,
160
+ markets: state.markets,
161
+ curveHistory: state.extendedCurveHistory,
162
+ oracle: ammData.oracle,
163
+ },
164
+ });
165
+ }
166
+ async updateCurveHistory() {
167
+ const extendedCurveHistory = anchor.web3.Keypair.generate();
168
+ const state = this.getStateAccount();
169
+ return await this.program.rpc.updateCurveHistory({
170
+ accounts: {
171
+ state: await this.getStatePublicKey(),
172
+ admin: this.wallet.publicKey,
173
+ curveHistory: state.curveHistory,
174
+ extendedCurveHistory: extendedCurveHistory.publicKey,
175
+ },
176
+ instructions: [
177
+ await this.program.account.extendedCurveHistory.createInstruction(extendedCurveHistory),
178
+ ],
179
+ signers: [extendedCurveHistory],
180
+ });
181
+ }
182
+ async moveAmmToPrice(marketIndex, targetPrice) {
183
+ const market = this.getMarket(marketIndex);
184
+ const [direction, tradeSize, _] = (0, trade_1.calculateTargetPriceTrade)(market, targetPrice);
185
+ const [newQuoteAssetAmount, newBaseAssetAmount] = (0, amm_1.calculateAmmReservesAfterSwap)(market.amm, 'quote', tradeSize, (0, amm_1.getSwapDirection)('quote', direction));
186
+ const state = this.getStateAccount();
187
+ return await this.program.rpc.moveAmmPrice(newBaseAssetAmount, newQuoteAssetAmount, marketIndex, {
188
+ accounts: {
189
+ state: await this.getStatePublicKey(),
190
+ admin: this.wallet.publicKey,
191
+ markets: state.markets,
192
+ },
193
+ });
194
+ }
195
+ async repegAmmCurve(newPeg, marketIndex) {
196
+ const state = this.getStateAccount();
197
+ const markets = this.getMarketsAccount();
198
+ const marketData = markets.markets[marketIndex.toNumber()];
199
+ const ammData = marketData.amm;
200
+ return await this.program.rpc.repegAmmCurve(newPeg, marketIndex, {
201
+ accounts: {
202
+ state: await this.getStatePublicKey(),
203
+ admin: this.wallet.publicKey,
204
+ oracle: ammData.oracle,
205
+ markets: state.markets,
206
+ curveHistory: state.extendedCurveHistory,
207
+ },
208
+ });
209
+ }
210
+ async updateAmmOracleTwap(marketIndex) {
211
+ const state = this.getStateAccount();
212
+ const markets = this.getMarketsAccount();
213
+ const marketData = markets.markets[marketIndex.toNumber()];
214
+ const ammData = marketData.amm;
215
+ return await this.program.rpc.updateAmmOracleTwap(marketIndex, {
216
+ accounts: {
217
+ state: await this.getStatePublicKey(),
218
+ admin: this.wallet.publicKey,
219
+ oracle: ammData.oracle,
220
+ markets: state.markets,
221
+ curveHistory: state.extendedCurveHistory,
222
+ },
223
+ });
224
+ }
225
+ async resetAmmOracleTwap(marketIndex) {
226
+ const state = this.getStateAccount();
227
+ const markets = this.getMarketsAccount();
228
+ const marketData = markets.markets[marketIndex.toNumber()];
229
+ const ammData = marketData.amm;
230
+ return await this.program.rpc.resetAmmOracleTwap(marketIndex, {
231
+ accounts: {
232
+ state: await this.getStatePublicKey(),
233
+ admin: this.wallet.publicKey,
234
+ oracle: ammData.oracle,
235
+ markets: state.markets,
236
+ curveHistory: state.extendedCurveHistory,
237
+ },
238
+ });
239
+ }
240
+ async withdrawFromInsuranceVault(amount, recipient) {
241
+ const state = await this.getStateAccount();
242
+ return await this.program.rpc.withdrawFromInsuranceVault(amount, {
243
+ accounts: {
244
+ admin: this.wallet.publicKey,
245
+ state: await this.getStatePublicKey(),
246
+ insuranceVault: state.insuranceVault,
247
+ insuranceVaultAuthority: state.insuranceVaultAuthority,
248
+ recipient: recipient,
249
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
250
+ },
251
+ });
252
+ }
253
+ async withdrawFees(marketIndex, amount, recipient) {
254
+ const state = await this.getStateAccount();
255
+ return await this.program.rpc.withdrawFees(marketIndex, amount, {
256
+ accounts: {
257
+ admin: this.wallet.publicKey,
258
+ state: await this.getStatePublicKey(),
259
+ markets: state.markets,
260
+ collateralVault: state.collateralVault,
261
+ collateralVaultAuthority: state.collateralVaultAuthority,
262
+ recipient: recipient,
263
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
264
+ },
265
+ });
266
+ }
267
+ async withdrawFromInsuranceVaultToMarket(marketIndex, amount) {
268
+ const state = await this.getStateAccount();
269
+ return await this.program.rpc.withdrawFromInsuranceVaultToMarket(marketIndex, amount, {
270
+ accounts: {
271
+ admin: this.wallet.publicKey,
272
+ state: await this.getStatePublicKey(),
273
+ markets: state.markets,
274
+ insuranceVault: state.insuranceVault,
275
+ insuranceVaultAuthority: state.insuranceVaultAuthority,
276
+ collateralVault: state.collateralVault,
277
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
278
+ },
279
+ });
280
+ }
281
+ async updateAdmin(admin) {
282
+ return await this.program.rpc.updateAdmin(admin, {
283
+ accounts: {
284
+ admin: this.wallet.publicKey,
285
+ state: await this.getStatePublicKey(),
286
+ },
287
+ });
288
+ }
289
+ async updateMarginRatio(marketIndex, marginRatioInitial, marginRatioPartial, marginRatioMaintenance) {
290
+ return await this.program.rpc.updateMarginRatio(marketIndex, marginRatioInitial, marginRatioPartial, marginRatioMaintenance, {
291
+ accounts: {
292
+ admin: this.wallet.publicKey,
293
+ state: await this.getStatePublicKey(),
294
+ markets: this.getStateAccount().markets,
295
+ },
296
+ });
297
+ }
298
+ async updatePartialLiquidationClosePercentage(numerator, denominator) {
299
+ return await this.program.rpc.updatePartialLiquidationClosePercentage(numerator, denominator, {
300
+ accounts: {
301
+ admin: this.wallet.publicKey,
302
+ state: await this.getStatePublicKey(),
303
+ },
304
+ });
305
+ }
306
+ async updatePartialLiquidationPenaltyPercentage(numerator, denominator) {
307
+ return await this.program.rpc.updatePartialLiquidationPenaltyPercentage(numerator, denominator, {
308
+ accounts: {
309
+ admin: this.wallet.publicKey,
310
+ state: await this.getStatePublicKey(),
311
+ },
312
+ });
313
+ }
314
+ async updateFullLiquidationPenaltyPercentage(numerator, denominator) {
315
+ return await this.program.rpc.updateFullLiquidationPenaltyPercentage(numerator, denominator, {
316
+ accounts: {
317
+ admin: this.wallet.publicKey,
318
+ state: await this.getStatePublicKey(),
319
+ },
320
+ });
321
+ }
322
+ async updatePartialLiquidationShareDenominator(denominator) {
323
+ return await this.program.rpc.updatePartialLiquidationLiquidatorShareDenominator(denominator, {
324
+ accounts: {
325
+ admin: this.wallet.publicKey,
326
+ state: await this.getStatePublicKey(),
327
+ },
328
+ });
329
+ }
330
+ async updateFullLiquidationShareDenominator(denominator) {
331
+ return await this.program.rpc.updateFullLiquidationLiquidatorShareDenominator(denominator, {
332
+ accounts: {
333
+ admin: this.wallet.publicKey,
334
+ state: await this.getStatePublicKey(),
335
+ },
336
+ });
337
+ }
338
+ async updateOrderFillerRewardStructure(orderFillerRewardStructure) {
339
+ return await this.program.rpc.updateOrderFillerRewardStructure(orderFillerRewardStructure, {
340
+ accounts: {
341
+ admin: this.wallet.publicKey,
342
+ state: await this.getStatePublicKey(),
343
+ orderState: await this.getOrderStatePublicKey(),
344
+ },
345
+ });
346
+ }
347
+ async updateFee(fees) {
348
+ return await this.program.rpc.updateFee(fees, {
349
+ accounts: {
350
+ admin: this.wallet.publicKey,
351
+ state: await this.getStatePublicKey(),
352
+ },
353
+ });
354
+ }
355
+ async updateOracleGuardRails(oracleGuardRails) {
356
+ return await this.program.rpc.updateOracleGuardRails(oracleGuardRails, {
357
+ accounts: {
358
+ admin: this.wallet.publicKey,
359
+ state: await this.getStatePublicKey(),
360
+ },
361
+ });
362
+ }
363
+ async updateMarketOracle(marketIndex, oracle, oracleSource) {
364
+ const state = this.getStateAccount();
365
+ return await this.program.rpc.updateMarketOracle(marketIndex, oracle, oracleSource, {
366
+ accounts: {
367
+ admin: this.wallet.publicKey,
368
+ state: await this.getStatePublicKey(),
369
+ markets: state.markets,
370
+ },
371
+ });
372
+ }
373
+ async updateMarketMinimumQuoteAssetTradeSize(marketIndex, minimumTradeSize) {
374
+ const state = this.getStateAccount();
375
+ return await this.program.rpc.updateMarketMinimumQuoteAssetTradeSize(marketIndex, minimumTradeSize, {
376
+ accounts: {
377
+ admin: this.wallet.publicKey,
378
+ state: await this.getStatePublicKey(),
379
+ markets: state.markets,
380
+ },
381
+ });
382
+ }
383
+ async updateMarketMinimumBaseAssetTradeSize(marketIndex, minimumTradeSize) {
384
+ const state = this.getStateAccount();
385
+ return await this.program.rpc.updateMarketMinimumBaseAssetTradeSize(marketIndex, minimumTradeSize, {
386
+ accounts: {
387
+ admin: this.wallet.publicKey,
388
+ state: await this.getStatePublicKey(),
389
+ markets: state.markets,
390
+ },
391
+ });
392
+ }
393
+ async updateWhitelistMint(whitelistMint) {
394
+ return await this.program.rpc.updateWhitelistMint(whitelistMint, {
395
+ accounts: {
396
+ admin: this.wallet.publicKey,
397
+ state: await this.getStatePublicKey(),
398
+ },
399
+ });
400
+ }
401
+ async updateDiscountMint(discountMint) {
402
+ return await this.program.rpc.updateDiscountMint(discountMint, {
403
+ accounts: {
404
+ admin: this.wallet.publicKey,
405
+ state: await this.getStatePublicKey(),
406
+ },
407
+ });
408
+ }
409
+ async updateMaxDeposit(maxDeposit) {
410
+ return await this.program.rpc.updateMaxDeposit(maxDeposit, {
411
+ accounts: {
412
+ admin: this.wallet.publicKey,
413
+ state: await this.getStatePublicKey(),
414
+ },
415
+ });
416
+ }
417
+ async updateFundingPaused(fundingPaused) {
418
+ return await this.program.rpc.updateFundingPaused(fundingPaused, {
419
+ accounts: {
420
+ admin: this.wallet.publicKey,
421
+ state: await this.getStatePublicKey(),
422
+ },
423
+ });
424
+ }
425
+ async updateExchangePaused(exchangePaused) {
426
+ return await this.program.rpc.updateExchangePaused(exchangePaused, {
427
+ accounts: {
428
+ admin: this.wallet.publicKey,
429
+ state: await this.getStatePublicKey(),
430
+ },
431
+ });
432
+ }
433
+ async disableAdminControlsPrices() {
434
+ return await this.program.rpc.disableAdminControlsPrices({
435
+ accounts: {
436
+ admin: this.wallet.publicKey,
437
+ state: await this.getStatePublicKey(),
438
+ },
439
+ });
440
+ }
441
+ }
442
+ exports.Admin = Admin;
443
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["admin.ts"],"names":[],"mappings":"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"}
package/src/admin.ts CHANGED
@@ -217,6 +217,7 @@ export class Admin extends ClearingHouse {
217
217
  quoteAssetReserve: BN,
218
218
  periodicity: BN,
219
219
  pegMultiplier: BN = PEG_PRECISION,
220
+ oracleSource: OracleSource = OracleSource.PYTH,
220
221
  marginRatioInitial = 2000,
221
222
  marginRatioPartial = 625,
222
223
  marginRatioMaintenance = 500
@@ -231,6 +232,7 @@ export class Admin extends ClearingHouse {
231
232
  quoteAssetReserve,
232
233
  periodicity,
233
234
  pegMultiplier,
235
+ oracleSource,
234
236
  marginRatioInitial,
235
237
  marginRatioPartial,
236
238
  marginRatioMaintenance,
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assert = void 0;
4
+ function assert(condition, error) {
5
+ if (!condition) {
6
+ throw new Error(error || 'Unspecified AssertionError');
7
+ }
8
+ }
9
+ exports.assert = assert;
10
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["assert.ts"],"names":[],"mappings":";;;AAAA,SAAgB,MAAM,CAAC,SAAkB,EAAE,KAAc;IACxD,IAAI,CAAC,SAAS,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,4BAA4B,CAAC,CAAC;KACvD;AACF,CAAC;AAJD,wBAIC"}