@drift-labs/sdk 0.1.25-master.0 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/accounts/pollingOracleSubscriber.d.ts +26 -0
- package/lib/accounts/pollingOracleSubscriber.js +79 -0
- package/lib/accounts/types.d.ts +14 -1
- package/lib/clearingHouse.d.ts +6 -4
- package/lib/clearingHouse.js +56 -7
- package/lib/constants/markets.d.ts +4 -2
- package/lib/constants/markets.js +76 -28
- package/lib/idl/clearing_house.json +65 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/math/market.d.ts +2 -0
- package/lib/math/market.js +6 -1
- package/lib/orderParams.d.ts +1 -1
- package/lib/orderParams.js +2 -2
- package/lib/orders.d.ts +3 -2
- package/lib/orders.js +11 -4
- package/lib/types.d.ts +3 -0
- package/lib/types.js +1 -0
- package/package.json +1 -1
- package/src/accounts/bulkAccountLoader.js +180 -0
- package/src/accounts/bulkAccountLoader.js.map +1 -0
- package/src/accounts/bulkUserSubscription.js +56 -0
- package/src/accounts/bulkUserSubscription.js.map +1 -0
- package/src/accounts/pollingClearingHouseAccountSubscriber.js +210 -0
- package/src/accounts/pollingClearingHouseAccountSubscriber.js.map +1 -0
- package/src/accounts/pollingOracleSubscriber.js +65 -0
- package/src/accounts/pollingOracleSubscriber.js.map +1 -0
- package/src/accounts/pollingOracleSubscriber.ts +103 -0
- package/src/accounts/pollingTokenAccountSubscriber.js +65 -0
- package/src/accounts/pollingTokenAccountSubscriber.js.map +1 -0
- package/src/accounts/pollingUserAccountSubscriber.js +139 -0
- package/src/accounts/pollingUserAccountSubscriber.js.map +1 -0
- package/src/accounts/types.js +1 -0
- package/src/accounts/types.js.map +1 -0
- package/src/accounts/types.ts +22 -1
- package/src/accounts/utils.js +1 -0
- package/src/accounts/utils.js.map +1 -0
- package/src/accounts/webSocketAccountSubscriber.js +15 -27
- package/src/accounts/webSocketAccountSubscriber.js.map +1 -0
- package/src/accounts/webSocketClearingHouseAccountSubscriber.js +212 -0
- package/src/accounts/webSocketClearingHouseAccountSubscriber.js.map +1 -0
- package/src/accounts/webSocketUserAccountSubscriber.js +78 -0
- package/src/accounts/webSocketUserAccountSubscriber.js.map +1 -0
- package/src/addresses.js +20 -44
- package/src/addresses.js.map +1 -0
- package/src/admin.js +443 -0
- package/src/admin.js.map +1 -0
- package/src/assert/assert.js +10 -0
- package/src/assert/assert.js.map +1 -0
- package/src/clearingHouse.ts +85 -7
- package/src/clearingHouseUser.js +581 -0
- package/src/clearingHouseUser.js.map +1 -0
- package/src/config.js +37 -0
- package/src/config.js.map +1 -0
- package/src/constants/markets.js +167 -0
- package/src/constants/markets.js.map +1 -0
- package/src/constants/markets.ts +80 -30
- package/src/constants/numericConstants.js +22 -0
- package/src/constants/numericConstants.js.map +1 -0
- package/src/factory/clearingHouse.js +65 -0
- package/src/factory/clearingHouse.js.map +1 -0
- package/src/factory/clearingHouseUser.js +35 -0
- package/src/factory/clearingHouseUser.js.map +1 -0
- package/src/factory/oracleClient.js +17 -0
- package/src/factory/oracleClient.js.map +1 -0
- package/src/idl/clearing_house.json +65 -1
- package/src/index.js +56 -0
- package/src/index.js.map +1 -0
- package/src/index.ts +1 -0
- package/src/math/amm.js +285 -0
- package/src/math/amm.js.map +1 -0
- package/src/math/conversion.js +16 -0
- package/src/math/conversion.js.map +1 -0
- package/src/math/funding.js +223 -0
- package/src/math/funding.js.map +1 -0
- package/src/math/insuranceFund.js +23 -0
- package/src/math/insuranceFund.js.map +1 -0
- package/src/math/market.js +30 -0
- package/src/math/market.js.map +1 -0
- package/src/math/market.ts +9 -0
- package/src/math/orders.js +73 -0
- package/src/math/orders.js.map +1 -0
- package/src/math/position.js +121 -0
- package/src/math/position.js.map +1 -0
- package/src/math/trade.js +182 -0
- package/src/math/trade.js.map +1 -0
- package/src/math/utils.js +27 -0
- package/src/math/utils.js.map +1 -0
- package/src/mockUSDCFaucet.js +88 -116
- package/src/mockUSDCFaucet.js.map +1 -0
- package/src/oracles/pythClient.js +39 -0
- package/src/oracles/pythClient.js.map +1 -0
- package/src/oracles/switchboardClient.js +60 -0
- package/src/oracles/switchboardClient.js.map +1 -0
- package/src/oracles/types.js +3 -0
- package/src/oracles/types.js.map +1 -0
- package/src/orderParams.js +109 -0
- package/src/orderParams.js.map +1 -0
- package/src/orderParams.ts +3 -2
- package/src/orders.js +172 -0
- package/src/orders.js.map +1 -0
- package/src/orders.ts +17 -4
- package/src/token/index.js +39 -0
- package/src/token/index.js.map +1 -0
- package/src/tx/defaultTxSender.js +13 -0
- package/src/tx/defaultTxSender.js.map +1 -0
- package/src/tx/retryTxSender.js +137 -0
- package/src/tx/retryTxSender.js.map +1 -0
- package/src/tx/types.js +3 -0
- package/src/tx/types.js.map +1 -0
- package/src/tx/utils.js +9 -0
- package/src/tx/utils.js.map +1 -0
- package/src/types.js +1 -0
- package/src/types.js.map +1 -0
- package/src/types.ts +1 -0
- package/src/util/computeUnits.js +17 -0
- package/src/util/computeUnits.js.map +1 -0
- package/src/util/tps.js +17 -0
- package/src/util/tps.js.map +1 -0
- package/src/wallet.js +23 -0
- package/src/wallet.js.map +1 -0
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
|
package/src/admin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/src/clearingHouse.ts
CHANGED
|
@@ -57,6 +57,7 @@ import {
|
|
|
57
57
|
getClearingHouse,
|
|
58
58
|
getWebSocketClearingHouseConfig,
|
|
59
59
|
} from './factory/clearingHouse';
|
|
60
|
+
import { ZERO } from './constants/numericConstants';
|
|
60
61
|
|
|
61
62
|
/**
|
|
62
63
|
* # ClearingHouse
|
|
@@ -760,6 +761,14 @@ export class ClearingHouse {
|
|
|
760
761
|
});
|
|
761
762
|
}
|
|
762
763
|
|
|
764
|
+
if (!orderParams.oraclePriceOffset.eq(ZERO)) {
|
|
765
|
+
remainingAccounts.push({
|
|
766
|
+
pubkey: priceOracle,
|
|
767
|
+
isWritable: false,
|
|
768
|
+
isSigner: false,
|
|
769
|
+
});
|
|
770
|
+
}
|
|
771
|
+
|
|
763
772
|
const state = this.getStateAccount();
|
|
764
773
|
const orderState = this.getOrderStateAccount();
|
|
765
774
|
return await this.program.instruction.placeOrder(orderParams, {
|
|
@@ -774,26 +783,81 @@ export class ClearingHouse {
|
|
|
774
783
|
fundingRateHistory: state.fundingRateHistory,
|
|
775
784
|
orderState: await this.getOrderStatePublicKey(),
|
|
776
785
|
orderHistory: orderState.orderHistory,
|
|
777
|
-
oracle: priceOracle,
|
|
778
786
|
},
|
|
779
787
|
remainingAccounts,
|
|
780
788
|
});
|
|
781
789
|
}
|
|
782
790
|
|
|
783
|
-
public async
|
|
791
|
+
public async expireOrders(
|
|
792
|
+
userAccountPublicKey: PublicKey,
|
|
793
|
+
userOrdersAccountPublicKey: PublicKey
|
|
794
|
+
): Promise<TransactionSignature> {
|
|
795
|
+
return await this.txSender.send(
|
|
796
|
+
wrapInTx(
|
|
797
|
+
await this.getExpireOrdersIx(
|
|
798
|
+
userAccountPublicKey,
|
|
799
|
+
userOrdersAccountPublicKey
|
|
800
|
+
)
|
|
801
|
+
),
|
|
802
|
+
[],
|
|
803
|
+
this.opts
|
|
804
|
+
);
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
public async getExpireOrdersIx(
|
|
808
|
+
userAccountPublicKey: PublicKey,
|
|
809
|
+
userOrdersAccountPublicKey: PublicKey
|
|
810
|
+
): Promise<TransactionInstruction> {
|
|
811
|
+
const fillerPublicKey = await this.getUserAccountPublicKey();
|
|
812
|
+
const userAccount: any = await this.program.account.user.fetch(
|
|
813
|
+
userAccountPublicKey
|
|
814
|
+
);
|
|
815
|
+
|
|
816
|
+
const orderState = this.getOrderStateAccount();
|
|
817
|
+
return await this.program.instruction.expireOrders({
|
|
818
|
+
accounts: {
|
|
819
|
+
state: await this.getStatePublicKey(),
|
|
820
|
+
filler: fillerPublicKey,
|
|
821
|
+
user: userAccountPublicKey,
|
|
822
|
+
authority: this.wallet.publicKey,
|
|
823
|
+
userPositions: userAccount.positions,
|
|
824
|
+
userOrders: userOrdersAccountPublicKey,
|
|
825
|
+
orderState: await this.getOrderStatePublicKey(),
|
|
826
|
+
orderHistory: orderState.orderHistory,
|
|
827
|
+
},
|
|
828
|
+
});
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
public async cancelOrder(
|
|
832
|
+
orderId: BN,
|
|
833
|
+
oracle?: PublicKey
|
|
834
|
+
): Promise<TransactionSignature> {
|
|
784
835
|
return await this.txSender.send(
|
|
785
|
-
wrapInTx(await this.getCancelOrderIx(orderId)),
|
|
836
|
+
wrapInTx(await this.getCancelOrderIx(orderId, oracle)),
|
|
786
837
|
[],
|
|
787
838
|
this.opts
|
|
788
839
|
);
|
|
789
840
|
}
|
|
790
841
|
|
|
791
|
-
public async getCancelOrderIx(
|
|
842
|
+
public async getCancelOrderIx(
|
|
843
|
+
orderId: BN,
|
|
844
|
+
oracle?: PublicKey
|
|
845
|
+
): Promise<TransactionInstruction> {
|
|
792
846
|
const userAccountPublicKey = await this.getUserAccountPublicKey();
|
|
793
847
|
const userAccount = await this.getUserAccount();
|
|
794
848
|
|
|
795
849
|
const state = this.getStateAccount();
|
|
796
850
|
const orderState = this.getOrderStateAccount();
|
|
851
|
+
|
|
852
|
+
const remainingAccounts = [];
|
|
853
|
+
if (oracle) {
|
|
854
|
+
remainingAccounts.push({
|
|
855
|
+
pubkey: oracle,
|
|
856
|
+
isWritable: false,
|
|
857
|
+
isSigner: false,
|
|
858
|
+
});
|
|
859
|
+
}
|
|
860
|
+
|
|
797
861
|
return await this.program.instruction.cancelOrder(orderId, {
|
|
798
862
|
accounts: {
|
|
799
863
|
state: await this.getStatePublicKey(),
|
|
@@ -807,27 +871,40 @@ export class ClearingHouse {
|
|
|
807
871
|
orderState: await this.getOrderStatePublicKey(),
|
|
808
872
|
orderHistory: orderState.orderHistory,
|
|
809
873
|
},
|
|
874
|
+
remainingAccounts,
|
|
810
875
|
});
|
|
811
876
|
}
|
|
812
877
|
|
|
813
878
|
public async cancelOrderByUserId(
|
|
814
|
-
userOrderId: number
|
|
879
|
+
userOrderId: number,
|
|
880
|
+
oracle?: PublicKey
|
|
815
881
|
): Promise<TransactionSignature> {
|
|
816
882
|
return await this.txSender.send(
|
|
817
|
-
wrapInTx(await this.getCancelOrderByUserIdIx(userOrderId)),
|
|
883
|
+
wrapInTx(await this.getCancelOrderByUserIdIx(userOrderId, oracle)),
|
|
818
884
|
[],
|
|
819
885
|
this.opts
|
|
820
886
|
);
|
|
821
887
|
}
|
|
822
888
|
|
|
823
889
|
public async getCancelOrderByUserIdIx(
|
|
824
|
-
userOrderId: number
|
|
890
|
+
userOrderId: number,
|
|
891
|
+
oracle?: PublicKey
|
|
825
892
|
): Promise<TransactionInstruction> {
|
|
826
893
|
const userAccountPublicKey = await this.getUserAccountPublicKey();
|
|
827
894
|
const userAccount = await this.getUserAccount();
|
|
828
895
|
|
|
829
896
|
const state = this.getStateAccount();
|
|
830
897
|
const orderState = this.getOrderStateAccount();
|
|
898
|
+
|
|
899
|
+
const remainingAccounts = [];
|
|
900
|
+
if (oracle) {
|
|
901
|
+
remainingAccounts.push({
|
|
902
|
+
pubkey: oracle,
|
|
903
|
+
isWritable: false,
|
|
904
|
+
isSigner: false,
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
|
|
831
908
|
return await this.program.instruction.cancelOrderByUserId(userOrderId, {
|
|
832
909
|
accounts: {
|
|
833
910
|
state: await this.getStatePublicKey(),
|
|
@@ -841,6 +918,7 @@ export class ClearingHouse {
|
|
|
841
918
|
orderState: await this.getOrderStatePublicKey(),
|
|
842
919
|
orderHistory: orderState.orderHistory,
|
|
843
920
|
},
|
|
921
|
+
remainingAccounts,
|
|
844
922
|
});
|
|
845
923
|
}
|
|
846
924
|
|