@drift-labs/sdk 0.2.0-master.21 → 0.2.0-master.24
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/types.d.ts +1 -0
- package/lib/addresses/pda.d.ts +3 -0
- package/lib/addresses/pda.js +23 -1
- package/lib/admin.d.ts +3 -0
- package/lib/admin.js +31 -0
- package/lib/clearingHouse.d.ts +9 -2
- package/lib/clearingHouse.js +132 -4
- package/lib/clearingHouseUser.js +5 -5
- package/lib/config.js +1 -1
- package/lib/constants/banks.d.ts +2 -0
- package/lib/constants/banks.js +9 -0
- package/lib/constants/numericConstants.d.ts +2 -0
- package/lib/constants/numericConstants.js +4 -1
- package/lib/events/sort.js +7 -10
- package/lib/events/types.d.ts +2 -1
- package/lib/events/types.js +1 -0
- package/lib/idl/clearing_house.json +1008 -147
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/math/amm.js +2 -2
- package/lib/math/insurance.d.ts +4 -0
- package/lib/math/insurance.js +27 -0
- package/lib/math/margin.d.ts +1 -1
- package/lib/math/margin.js +5 -7
- package/lib/math/position.js +1 -1
- package/lib/types.d.ts +56 -20
- package/lib/types.js +0 -3
- package/package.json +1 -1
- package/src/addresses/marketAddresses.js +26 -0
- package/src/addresses/pda.ts +47 -0
- package/src/admin.ts +65 -0
- package/src/assert/assert.js +9 -0
- package/src/clearingHouse.ts +217 -9
- package/src/clearingHouseUser.ts +10 -6
- package/src/config.ts +1 -1
- package/src/constants/banks.js +42 -0
- package/src/constants/banks.ts +16 -0
- package/src/constants/markets.js +42 -0
- package/src/constants/numericConstants.js +41 -0
- package/src/constants/numericConstants.ts +4 -0
- package/src/events/eventList.js +77 -0
- package/src/events/sort.ts +10 -14
- package/src/events/txEventCache.js +71 -0
- package/src/events/types.ts +3 -0
- package/src/examples/makeTradeExample.js +80 -0
- package/src/factory/bigNum.js +390 -0
- package/src/factory/oracleClient.js +20 -0
- package/src/idl/clearing_house.json +1008 -147
- package/src/index.ts +1 -0
- package/src/math/amm.ts +2 -2
- package/src/math/auction.js +42 -0
- package/src/math/conversion.js +11 -0
- package/src/math/funding.js +248 -0
- package/src/math/insurance.ts +35 -0
- package/src/math/margin.ts +3 -10
- package/src/math/oracles.js +26 -0
- package/src/math/position.ts +2 -2
- package/src/math/repeg.js +128 -0
- package/src/math/state.js +15 -0
- package/src/math/trade.js +253 -0
- package/src/math/utils.js +26 -0
- package/src/math/utils.js.map +1 -0
- package/src/oracles/oracleClientCache.js +19 -0
- package/src/oracles/pythClient.js +46 -0
- package/src/oracles/quoteAssetOracleClient.js +32 -0
- package/src/oracles/switchboardClient.js +69 -0
- package/src/oracles/types.js +2 -0
- package/src/orderParams.js +20 -0
- package/src/slot/SlotSubscriber.js +39 -0
- package/src/token/index.js +38 -0
- package/src/tokenFaucet.js +189 -0
- package/src/tx/types.js +2 -0
- package/src/tx/utils.js +17 -0
- package/src/types.ts +64 -20
- package/src/userName.js +20 -0
- package/src/util/computeUnits.js +27 -0
- package/src/util/getTokenAddress.js +9 -0
- package/src/util/promiseTimeout.js +14 -0
- package/src/util/tps.js +27 -0
- package/src/wallet.js +35 -0
- package/my-script/.env +0 -7
- package/my-script/getUserStats.ts +0 -124
- package/my-script/multiConnections.ts +0 -137
- package/my-script/test-regex.ts +0 -11
- package/my-script/utils.ts +0 -52
- package/my-script/ww18NdhuLSQPCrHSx7V68eZJpe2y311heWeXJfSmP3Q.json +0 -1
- package/my-script/ww2z7N9TG1PLLUQGQF2VKzCFaPtQ5FBhRfeEAuy6c5C.json +0 -1
- package/my-script/ww3StJtTubhwssqAhvSSAc5ifCgKjzmF8hz7Gt2DmSa.json +0 -1
package/lib/accounts/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="bn.js" />
|
|
3
|
+
/// <reference types="node" />
|
|
3
4
|
import { BankAccount, MarketAccount, OracleSource, StateAccount, UserAccount, UserStatsAccount } from '../types';
|
|
4
5
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
6
|
import { EventEmitter } from 'events';
|
package/lib/addresses/pda.d.ts
CHANGED
|
@@ -11,3 +11,6 @@ export declare function getMarketPublicKey(programId: PublicKey, marketIndex: BN
|
|
|
11
11
|
export declare function getBankPublicKey(programId: PublicKey, bankIndex: BN): Promise<PublicKey>;
|
|
12
12
|
export declare function getBankVaultPublicKey(programId: PublicKey, bankIndex: BN): Promise<PublicKey>;
|
|
13
13
|
export declare function getBankVaultAuthorityPublicKey(programId: PublicKey, bankIndex: BN): Promise<PublicKey>;
|
|
14
|
+
export declare function getInsuranceFundVaultPublicKey(programId: PublicKey, bankIndex: BN): Promise<PublicKey>;
|
|
15
|
+
export declare function getInsuranceFundVaultAuthorityPublicKey(programId: PublicKey, bankIndex: BN): Promise<PublicKey>;
|
|
16
|
+
export declare function getInsuranceFundStakeAccountPublicKey(programId: PublicKey, authority: PublicKey, bankIndex: BN): PublicKey;
|
package/lib/addresses/pda.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.getBankVaultAuthorityPublicKey = exports.getBankVaultPublicKey = exports.getBankPublicKey = exports.getMarketPublicKey = exports.getUserStatsAccountPublicKey = exports.getUserAccountPublicKeySync = exports.getUserAccountPublicKey = exports.getUserAccountPublicKeyAndNonce = exports.getClearingHouseStateAccountPublicKey = exports.getClearingHouseStateAccountPublicKeyAndNonce = void 0;
|
|
26
|
+
exports.getInsuranceFundStakeAccountPublicKey = exports.getInsuranceFundVaultAuthorityPublicKey = exports.getInsuranceFundVaultPublicKey = exports.getBankVaultAuthorityPublicKey = exports.getBankVaultPublicKey = exports.getBankPublicKey = exports.getMarketPublicKey = exports.getUserStatsAccountPublicKey = exports.getUserAccountPublicKeySync = exports.getUserAccountPublicKey = exports.getUserAccountPublicKeyAndNonce = exports.getClearingHouseStateAccountPublicKey = exports.getClearingHouseStateAccountPublicKeyAndNonce = void 0;
|
|
27
27
|
const anchor = __importStar(require("@project-serum/anchor"));
|
|
28
28
|
async function getClearingHouseStateAccountPublicKeyAndNonce(programId) {
|
|
29
29
|
return anchor.web3.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('clearing_house'))], programId);
|
|
@@ -88,3 +88,25 @@ async function getBankVaultAuthorityPublicKey(programId, bankIndex) {
|
|
|
88
88
|
], programId))[0];
|
|
89
89
|
}
|
|
90
90
|
exports.getBankVaultAuthorityPublicKey = getBankVaultAuthorityPublicKey;
|
|
91
|
+
async function getInsuranceFundVaultPublicKey(programId, bankIndex) {
|
|
92
|
+
return (await anchor.web3.PublicKey.findProgramAddress([
|
|
93
|
+
Buffer.from(anchor.utils.bytes.utf8.encode('insurance_fund_vault')),
|
|
94
|
+
bankIndex.toArrayLike(Buffer, 'le', 8),
|
|
95
|
+
], programId))[0];
|
|
96
|
+
}
|
|
97
|
+
exports.getInsuranceFundVaultPublicKey = getInsuranceFundVaultPublicKey;
|
|
98
|
+
async function getInsuranceFundVaultAuthorityPublicKey(programId, bankIndex) {
|
|
99
|
+
return (await anchor.web3.PublicKey.findProgramAddress([
|
|
100
|
+
Buffer.from(anchor.utils.bytes.utf8.encode('insurance_fund_vault_authority')),
|
|
101
|
+
bankIndex.toArrayLike(Buffer, 'le', 8),
|
|
102
|
+
], programId))[0];
|
|
103
|
+
}
|
|
104
|
+
exports.getInsuranceFundVaultAuthorityPublicKey = getInsuranceFundVaultAuthorityPublicKey;
|
|
105
|
+
function getInsuranceFundStakeAccountPublicKey(programId, authority, bankIndex) {
|
|
106
|
+
return anchor.web3.PublicKey.findProgramAddressSync([
|
|
107
|
+
Buffer.from(anchor.utils.bytes.utf8.encode('insurance_fund_stake')),
|
|
108
|
+
authority.toBuffer(),
|
|
109
|
+
bankIndex.toArrayLike(Buffer, 'le', 8),
|
|
110
|
+
], programId)[0];
|
|
111
|
+
}
|
|
112
|
+
exports.getInsuranceFundStakeAccountPublicKey = getInsuranceFundStakeAccountPublicKey;
|
package/lib/admin.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare class Admin extends ClearingHouse {
|
|
|
20
20
|
updateCurveUpdateIntensity(marketIndex: BN, curveUpdateIntensity: number): Promise<TransactionSignature>;
|
|
21
21
|
updateMarginRatio(marketIndex: BN, marginRatioInitial: number, marginRatioMaintenance: number): Promise<TransactionSignature>;
|
|
22
22
|
updateMarketBaseSpread(marketIndex: BN, baseSpread: number): Promise<TransactionSignature>;
|
|
23
|
+
updateAmmJitIntensity(marketIndex: BN, ammJitIntensity: number): Promise<TransactionSignature>;
|
|
23
24
|
updateMarketMaxSpread(marketIndex: BN, maxSpread: number): Promise<TransactionSignature>;
|
|
24
25
|
updatePartialLiquidationClosePercentage(numerator: BN, denominator: BN): Promise<TransactionSignature>;
|
|
25
26
|
updatePartialLiquidationPenaltyPercentage(numerator: BN, denominator: BN): Promise<TransactionSignature>;
|
|
@@ -30,6 +31,8 @@ export declare class Admin extends ClearingHouse {
|
|
|
30
31
|
updateFee(fees: FeeStructure): Promise<TransactionSignature>;
|
|
31
32
|
updateOracleGuardRails(oracleGuardRails: OracleGuardRails): Promise<TransactionSignature>;
|
|
32
33
|
updateBankWithdrawGuardThreshold(bankIndex: BN, withdrawGuardThreshold: BN): Promise<TransactionSignature>;
|
|
34
|
+
updateBankIfFactor(bankIndex: BN, userIfFactor: BN, totalIfFactor: BN, liquidationIfFactor: BN): Promise<TransactionSignature>;
|
|
35
|
+
updateBankInsuranceWithdrawEscrowPeriod(bankIndex: BN, insuranceWithdrawEscrowPeriod: BN): Promise<TransactionSignature>;
|
|
33
36
|
updateLpCooldownTime(marketIndex: BN, cooldownTime: BN): Promise<TransactionSignature>;
|
|
34
37
|
updateMarketOracle(marketIndex: BN, oracle: PublicKey, oracleSource: OracleSource): Promise<TransactionSignature>;
|
|
35
38
|
updateMarketMinimumQuoteAssetTradeSize(marketIndex: BN, minimumTradeSize: BN): Promise<TransactionSignature>;
|
package/lib/admin.js
CHANGED
|
@@ -63,6 +63,8 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
63
63
|
const bank = await (0, pda_1.getBankPublicKey)(this.program.programId, bankIndex);
|
|
64
64
|
const bankVault = await (0, pda_1.getBankVaultPublicKey)(this.program.programId, bankIndex);
|
|
65
65
|
const bankVaultAuthority = await (0, pda_1.getBankVaultAuthorityPublicKey)(this.program.programId, bankIndex);
|
|
66
|
+
const insuranceFundVault = await (0, pda_1.getInsuranceFundVaultPublicKey)(this.program.programId, bankIndex);
|
|
67
|
+
const insuranceFundVaultAuthority = await (0, pda_1.getInsuranceFundVaultAuthorityPublicKey)(this.program.programId, bankIndex);
|
|
66
68
|
const initializeTx = await this.program.transaction.initializeBank(optimalUtilization, optimalRate, maxRate, oracleSource, initialAssetWeight, maintenanceAssetWeight, initialLiabilityWeight, maintenanceLiabilityWeight, imfFactor, liquidationFee, {
|
|
67
69
|
accounts: {
|
|
68
70
|
admin: this.wallet.publicKey,
|
|
@@ -70,6 +72,8 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
70
72
|
bank,
|
|
71
73
|
bankVault,
|
|
72
74
|
bankVaultAuthority,
|
|
75
|
+
insuranceFundVault,
|
|
76
|
+
insuranceFundVaultAuthority,
|
|
73
77
|
bankMint: mint,
|
|
74
78
|
oracle,
|
|
75
79
|
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
@@ -260,6 +264,15 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
260
264
|
},
|
|
261
265
|
});
|
|
262
266
|
}
|
|
267
|
+
async updateAmmJitIntensity(marketIndex, ammJitIntensity) {
|
|
268
|
+
return await this.program.rpc.updateAmmJitIntensity(ammJitIntensity, {
|
|
269
|
+
accounts: {
|
|
270
|
+
admin: this.wallet.publicKey,
|
|
271
|
+
state: await this.getStatePublicKey(),
|
|
272
|
+
market: await (0, pda_1.getMarketPublicKey)(this.program.programId, marketIndex),
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
}
|
|
263
276
|
async updateMarketMaxSpread(marketIndex, maxSpread) {
|
|
264
277
|
return await this.program.rpc.updateMarketMaxSpread(maxSpread, {
|
|
265
278
|
accounts: {
|
|
@@ -342,6 +355,24 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
342
355
|
},
|
|
343
356
|
});
|
|
344
357
|
}
|
|
358
|
+
async updateBankIfFactor(bankIndex, userIfFactor, totalIfFactor, liquidationIfFactor) {
|
|
359
|
+
return await this.program.rpc.updateBankIfFactor(bankIndex, userIfFactor, totalIfFactor, liquidationIfFactor, {
|
|
360
|
+
accounts: {
|
|
361
|
+
admin: this.wallet.publicKey,
|
|
362
|
+
state: await this.getStatePublicKey(),
|
|
363
|
+
bank: await (0, pda_1.getBankPublicKey)(this.program.programId, bankIndex),
|
|
364
|
+
},
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
async updateBankInsuranceWithdrawEscrowPeriod(bankIndex, insuranceWithdrawEscrowPeriod) {
|
|
368
|
+
return await this.program.rpc.updateBankInsuranceWithdrawEscrowPeriod(insuranceWithdrawEscrowPeriod, {
|
|
369
|
+
accounts: {
|
|
370
|
+
admin: this.wallet.publicKey,
|
|
371
|
+
state: await this.getStatePublicKey(),
|
|
372
|
+
bank: await (0, pda_1.getBankPublicKey)(this.program.programId, bankIndex),
|
|
373
|
+
},
|
|
374
|
+
});
|
|
375
|
+
}
|
|
345
376
|
async updateLpCooldownTime(marketIndex, cooldownTime) {
|
|
346
377
|
return await this.program.rpc.updateLpCooldownTime(cooldownTime, {
|
|
347
378
|
accounts: {
|
package/lib/clearingHouse.d.ts
CHANGED
|
@@ -149,8 +149,8 @@ export declare class ClearingHouse {
|
|
|
149
149
|
getLiquidateBorrowForPerpPnlIx(userAccountPublicKey: PublicKey, userAccount: UserAccount, perpMarketIndex: BN, liabilityBankIndex: BN, maxLiabilityTransfer: BN): Promise<TransactionInstruction>;
|
|
150
150
|
liquidatePerpPnlForDeposit(userAccountPublicKey: PublicKey, userAccount: UserAccount, perpMarketIndex: BN, assetBankIndex: BN, maxPnlTransfer: BN): Promise<TransactionSignature>;
|
|
151
151
|
getLiquidatePerpPnlForDepositIx(userAccountPublicKey: PublicKey, userAccount: UserAccount, perpMarketIndex: BN, assetBankIndex: BN, maxPnlTransfer: BN): Promise<TransactionInstruction>;
|
|
152
|
-
resolvePerpBankruptcy(userAccountPublicKey: PublicKey, userAccount: UserAccount, marketIndex: BN): Promise<TransactionSignature>;
|
|
153
|
-
getResolvePerpBankruptcyIx(userAccountPublicKey: PublicKey, userAccount: UserAccount, marketIndex: BN): Promise<TransactionInstruction>;
|
|
152
|
+
resolvePerpBankruptcy(userAccountPublicKey: PublicKey, userAccount: UserAccount, bankIndex: BN, marketIndex: BN): Promise<TransactionSignature>;
|
|
153
|
+
getResolvePerpBankruptcyIx(userAccountPublicKey: PublicKey, userAccount: UserAccount, bankIndex: BN, marketIndex: BN): Promise<TransactionInstruction>;
|
|
154
154
|
resolveBorrowBankruptcy(userAccountPublicKey: PublicKey, userAccount: UserAccount, bankIndex: BN): Promise<TransactionSignature>;
|
|
155
155
|
getResolveBorrowBankruptcyIx(userAccountPublicKey: PublicKey, userAccount: UserAccount, bankIndex: BN): Promise<TransactionInstruction>;
|
|
156
156
|
getRemainingAccountsWithCounterparty(params: {
|
|
@@ -164,4 +164,11 @@ export declare class ClearingHouse {
|
|
|
164
164
|
getSettleFundingPaymentIx(userAccount: PublicKey): Promise<TransactionInstruction>;
|
|
165
165
|
triggerEvent(eventName: keyof ClearingHouseAccountEvents, data?: any): void;
|
|
166
166
|
getOracleDataForMarket(marketIndex: BN): OraclePriceData;
|
|
167
|
+
initializeInsuranceFundStake(bankIndex: BN): Promise<TransactionSignature>;
|
|
168
|
+
getInitializeInsuranceFundStakeIx(bankIndex: BN): Promise<TransactionInstruction>;
|
|
169
|
+
addInsuranceFundStake(bankIndex: BN, amount: BN, collateralAccountPublicKey: PublicKey): Promise<TransactionSignature>;
|
|
170
|
+
requestRemoveInsuranceFundStake(bankIndex: BN, amount: BN): Promise<TransactionSignature>;
|
|
171
|
+
cancelRequestRemoveInsuranceFundStake(bankIndex: BN): Promise<TransactionSignature>;
|
|
172
|
+
removeInsuranceFundStake(bankIndex: BN, collateralAccountPublicKey: PublicKey): Promise<TransactionSignature>;
|
|
173
|
+
settleRevenueToInsuranceFund(bankIndex: BN): Promise<TransactionSignature>;
|
|
167
174
|
}
|
package/lib/clearingHouse.js
CHANGED
|
@@ -1300,22 +1300,28 @@ class ClearingHouse {
|
|
|
1300
1300
|
remainingAccounts: remainingAccounts,
|
|
1301
1301
|
});
|
|
1302
1302
|
}
|
|
1303
|
-
async resolvePerpBankruptcy(userAccountPublicKey, userAccount, marketIndex) {
|
|
1304
|
-
const { txSig } = await this.txSender.send((0, utils_1.wrapInTx)(await this.getResolvePerpBankruptcyIx(userAccountPublicKey, userAccount, marketIndex)), [], this.opts);
|
|
1303
|
+
async resolvePerpBankruptcy(userAccountPublicKey, userAccount, bankIndex, marketIndex) {
|
|
1304
|
+
const { txSig } = await this.txSender.send((0, utils_1.wrapInTx)(await this.getResolvePerpBankruptcyIx(userAccountPublicKey, userAccount, bankIndex, marketIndex)), [], this.opts);
|
|
1305
1305
|
return txSig;
|
|
1306
1306
|
}
|
|
1307
|
-
async getResolvePerpBankruptcyIx(userAccountPublicKey, userAccount, marketIndex) {
|
|
1307
|
+
async getResolvePerpBankruptcyIx(userAccountPublicKey, userAccount, bankIndex, marketIndex) {
|
|
1308
1308
|
const liquidatorPublicKey = await this.getUserAccountPublicKey();
|
|
1309
1309
|
const remainingAccounts = this.getRemainingAccountsWithCounterparty({
|
|
1310
1310
|
writableMarketIndex: marketIndex,
|
|
1311
|
+
writableBankIndexes: [bankIndex],
|
|
1311
1312
|
counterPartyUserAccount: userAccount,
|
|
1312
1313
|
});
|
|
1313
|
-
|
|
1314
|
+
const bank = this.getBankAccount(bankIndex);
|
|
1315
|
+
return await this.program.instruction.resolvePerpBankruptcy(bankIndex, marketIndex, {
|
|
1314
1316
|
accounts: {
|
|
1315
1317
|
state: await this.getStatePublicKey(),
|
|
1316
1318
|
authority: this.wallet.publicKey,
|
|
1317
1319
|
user: userAccountPublicKey,
|
|
1318
1320
|
liquidator: liquidatorPublicKey,
|
|
1321
|
+
bankVault: bank.vault,
|
|
1322
|
+
insuranceFundVault: bank.insuranceFundVault,
|
|
1323
|
+
insuranceFundVaultAuthority: bank.insuranceFundVaultAuthority,
|
|
1324
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
1319
1325
|
},
|
|
1320
1326
|
remainingAccounts: remainingAccounts,
|
|
1321
1327
|
});
|
|
@@ -1330,12 +1336,17 @@ class ClearingHouse {
|
|
|
1330
1336
|
writableBankIndexes: [bankIndex],
|
|
1331
1337
|
counterPartyUserAccount: userAccount,
|
|
1332
1338
|
});
|
|
1339
|
+
const bank = this.getBankAccount(bankIndex);
|
|
1333
1340
|
return await this.program.instruction.resolveBorrowBankruptcy(bankIndex, {
|
|
1334
1341
|
accounts: {
|
|
1335
1342
|
state: await this.getStatePublicKey(),
|
|
1336
1343
|
authority: this.wallet.publicKey,
|
|
1337
1344
|
user: userAccountPublicKey,
|
|
1338
1345
|
liquidator: liquidatorPublicKey,
|
|
1346
|
+
bankVault: bank.vault,
|
|
1347
|
+
insuranceFundVault: bank.insuranceFundVault,
|
|
1348
|
+
insuranceFundVaultAuthority: bank.insuranceFundVaultAuthority,
|
|
1349
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
1339
1350
|
},
|
|
1340
1351
|
remainingAccounts: remainingAccounts,
|
|
1341
1352
|
});
|
|
@@ -1517,5 +1528,122 @@ class ClearingHouse {
|
|
|
1517
1528
|
const oracleData = this.getOraclePriceDataAndSlot(oracleKey).data;
|
|
1518
1529
|
return oracleData;
|
|
1519
1530
|
}
|
|
1531
|
+
async initializeInsuranceFundStake(bankIndex) {
|
|
1532
|
+
const { txSig } = await this.txSender.send((0, utils_1.wrapInTx)(await this.getInitializeInsuranceFundStakeIx(bankIndex)), [], this.opts);
|
|
1533
|
+
return txSig;
|
|
1534
|
+
}
|
|
1535
|
+
async getInitializeInsuranceFundStakeIx(bankIndex) {
|
|
1536
|
+
const ifStakeAccountPublicKey = (0, pda_1.getInsuranceFundStakeAccountPublicKey)(this.program.programId, this.wallet.publicKey, bankIndex);
|
|
1537
|
+
return await this.program.instruction.initializeInsuranceFundStake(bankIndex, {
|
|
1538
|
+
accounts: {
|
|
1539
|
+
insuranceFundStake: ifStakeAccountPublicKey,
|
|
1540
|
+
bank: this.getBankAccount(bankIndex).pubkey,
|
|
1541
|
+
userStats: this.getUserStatsAccountPublicKey(),
|
|
1542
|
+
authority: this.wallet.publicKey,
|
|
1543
|
+
payer: this.wallet.publicKey,
|
|
1544
|
+
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
|
|
1545
|
+
systemProgram: anchor.web3.SystemProgram.programId,
|
|
1546
|
+
state: await this.getStatePublicKey(),
|
|
1547
|
+
},
|
|
1548
|
+
});
|
|
1549
|
+
}
|
|
1550
|
+
async addInsuranceFundStake(bankIndex, amount, collateralAccountPublicKey) {
|
|
1551
|
+
const bank = this.getBankAccount(bankIndex);
|
|
1552
|
+
const ifStakeAccountPublicKey = (0, pda_1.getInsuranceFundStakeAccountPublicKey)(this.program.programId, this.wallet.publicKey, bankIndex);
|
|
1553
|
+
const remainingAccounts = this.getRemainingAccounts({
|
|
1554
|
+
writableBankIndex: bankIndex,
|
|
1555
|
+
});
|
|
1556
|
+
return await this.program.rpc.addInsuranceFundStake(bankIndex, amount, {
|
|
1557
|
+
accounts: {
|
|
1558
|
+
state: await this.getStatePublicKey(),
|
|
1559
|
+
bank: bank.pubkey,
|
|
1560
|
+
insuranceFundStake: ifStakeAccountPublicKey,
|
|
1561
|
+
userStats: this.getUserStatsAccountPublicKey(),
|
|
1562
|
+
authority: this.wallet.publicKey,
|
|
1563
|
+
insuranceFundVault: bank.insuranceFundVault,
|
|
1564
|
+
userTokenAccount: collateralAccountPublicKey,
|
|
1565
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
1566
|
+
},
|
|
1567
|
+
remainingAccounts,
|
|
1568
|
+
});
|
|
1569
|
+
}
|
|
1570
|
+
async requestRemoveInsuranceFundStake(bankIndex, amount) {
|
|
1571
|
+
const bank = this.getBankAccount(bankIndex);
|
|
1572
|
+
const ifStakeAccountPublicKey = (0, pda_1.getInsuranceFundStakeAccountPublicKey)(this.program.programId, this.wallet.publicKey, bankIndex);
|
|
1573
|
+
const remainingAccounts = this.getRemainingAccounts({
|
|
1574
|
+
writableBankIndex: bankIndex,
|
|
1575
|
+
});
|
|
1576
|
+
return await this.program.rpc.requestRemoveInsuranceFundStake(bankIndex, amount, {
|
|
1577
|
+
accounts: {
|
|
1578
|
+
state: await this.getStatePublicKey(),
|
|
1579
|
+
bank: bank.pubkey,
|
|
1580
|
+
insuranceFundStake: ifStakeAccountPublicKey,
|
|
1581
|
+
userStats: this.getUserStatsAccountPublicKey(),
|
|
1582
|
+
authority: this.wallet.publicKey,
|
|
1583
|
+
insuranceFundVault: bank.insuranceFundVault,
|
|
1584
|
+
// userTokenAccount: collateralAccountPublicKey,
|
|
1585
|
+
// tokenProgram: TOKEN_PROGRAM_ID,
|
|
1586
|
+
},
|
|
1587
|
+
remainingAccounts,
|
|
1588
|
+
});
|
|
1589
|
+
}
|
|
1590
|
+
async cancelRequestRemoveInsuranceFundStake(bankIndex) {
|
|
1591
|
+
const bank = this.getBankAccount(bankIndex);
|
|
1592
|
+
const ifStakeAccountPublicKey = (0, pda_1.getInsuranceFundStakeAccountPublicKey)(this.program.programId, this.wallet.publicKey, bankIndex);
|
|
1593
|
+
const remainingAccounts = this.getRemainingAccounts({
|
|
1594
|
+
writableBankIndex: bankIndex,
|
|
1595
|
+
});
|
|
1596
|
+
return await this.program.rpc.cancelRequestRemoveInsuranceFundStake(bankIndex, {
|
|
1597
|
+
accounts: {
|
|
1598
|
+
state: await this.getStatePublicKey(),
|
|
1599
|
+
bank: bank.pubkey,
|
|
1600
|
+
insuranceFundStake: ifStakeAccountPublicKey,
|
|
1601
|
+
userStats: this.getUserStatsAccountPublicKey(),
|
|
1602
|
+
authority: this.wallet.publicKey,
|
|
1603
|
+
insuranceFundVault: bank.insuranceFundVault,
|
|
1604
|
+
// userTokenAccount: collateralAccountPublicKey,
|
|
1605
|
+
// tokenProgram: TOKEN_PROGRAM_ID,
|
|
1606
|
+
},
|
|
1607
|
+
remainingAccounts,
|
|
1608
|
+
});
|
|
1609
|
+
}
|
|
1610
|
+
async removeInsuranceFundStake(bankIndex, collateralAccountPublicKey) {
|
|
1611
|
+
const bank = this.getBankAccount(bankIndex);
|
|
1612
|
+
const ifStakeAccountPublicKey = (0, pda_1.getInsuranceFundStakeAccountPublicKey)(this.program.programId, this.wallet.publicKey, bankIndex);
|
|
1613
|
+
const remainingAccounts = this.getRemainingAccounts({
|
|
1614
|
+
writableBankIndex: bankIndex,
|
|
1615
|
+
});
|
|
1616
|
+
return await this.program.rpc.removeInsuranceFundStake(bankIndex, {
|
|
1617
|
+
accounts: {
|
|
1618
|
+
state: await this.getStatePublicKey(),
|
|
1619
|
+
bank: bank.pubkey,
|
|
1620
|
+
insuranceFundStake: ifStakeAccountPublicKey,
|
|
1621
|
+
userStats: this.getUserStatsAccountPublicKey(),
|
|
1622
|
+
authority: this.wallet.publicKey,
|
|
1623
|
+
insuranceFundVault: bank.insuranceFundVault,
|
|
1624
|
+
insuranceFundVaultAuthority: bank.insuranceFundVaultAuthority,
|
|
1625
|
+
userTokenAccount: collateralAccountPublicKey,
|
|
1626
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
1627
|
+
},
|
|
1628
|
+
remainingAccounts,
|
|
1629
|
+
});
|
|
1630
|
+
}
|
|
1631
|
+
async settleRevenueToInsuranceFund(bankIndex) {
|
|
1632
|
+
const bank = this.getBankAccount(bankIndex);
|
|
1633
|
+
const remainingAccounts = this.getRemainingAccounts({
|
|
1634
|
+
writableBankIndex: bankIndex,
|
|
1635
|
+
});
|
|
1636
|
+
return await this.program.rpc.settleRevenueToInsuranceFund(bankIndex, {
|
|
1637
|
+
accounts: {
|
|
1638
|
+
state: await this.getStatePublicKey(),
|
|
1639
|
+
bank: bank.pubkey,
|
|
1640
|
+
bankVault: bank.vault,
|
|
1641
|
+
bankVaultAuthority: bank.vaultAuthority,
|
|
1642
|
+
insuranceFundVault: bank.insuranceFundVault,
|
|
1643
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
1644
|
+
},
|
|
1645
|
+
remainingAccounts,
|
|
1646
|
+
});
|
|
1647
|
+
}
|
|
1520
1648
|
}
|
|
1521
1649
|
exports.ClearingHouse = ClearingHouse;
|
package/lib/clearingHouseUser.js
CHANGED
|
@@ -363,7 +363,7 @@ class ClearingHouseUser {
|
|
|
363
363
|
getTotalPositionValue() {
|
|
364
364
|
return this.getUserAccount().positions.reduce((positionValue, marketPosition) => {
|
|
365
365
|
const market = this.clearingHouse.getMarketAccount(marketPosition.marketIndex);
|
|
366
|
-
const posVal = (0, margin_1.
|
|
366
|
+
const posVal = (0, margin_1.calculateBaseAssetValueWithOracle)(market, marketPosition, this.getOracleDataForMarket(market.marketIndex));
|
|
367
367
|
return positionValue.add(posVal);
|
|
368
368
|
}, numericConstants_1.ZERO);
|
|
369
369
|
}
|
|
@@ -374,7 +374,7 @@ class ClearingHouseUser {
|
|
|
374
374
|
getPositionValue(marketIndex, oraclePriceData) {
|
|
375
375
|
const userPosition = this.getUserPosition(marketIndex) || this.getEmptyPosition(marketIndex);
|
|
376
376
|
const market = this.clearingHouse.getMarketAccount(userPosition.marketIndex);
|
|
377
|
-
return (0, margin_1.
|
|
377
|
+
return (0, margin_1.calculateBaseAssetValueWithOracle)(market, userPosition, oraclePriceData);
|
|
378
378
|
}
|
|
379
379
|
getPositionSide(currentPosition) {
|
|
380
380
|
if (currentPosition.baseAssetAmount.gt(numericConstants_1.ZERO)) {
|
|
@@ -411,7 +411,7 @@ class ClearingHouseUser {
|
|
|
411
411
|
baseAssetValue = (0, _1.calculateBaseAssetValue)(market, position, oraclePriceData);
|
|
412
412
|
}
|
|
413
413
|
else {
|
|
414
|
-
baseAssetValue = (0, margin_1.
|
|
414
|
+
baseAssetValue = (0, margin_1.calculateBaseAssetValueWithOracle)(market, position, oraclePriceData);
|
|
415
415
|
}
|
|
416
416
|
if (position.baseAssetAmount.eq(numericConstants_1.ZERO)) {
|
|
417
417
|
return [numericConstants_1.ZERO, numericConstants_1.ZERO];
|
|
@@ -533,13 +533,13 @@ class ClearingHouseUser {
|
|
|
533
533
|
if (proposedBaseAssetAmount.eq(numericConstants_1.ZERO))
|
|
534
534
|
return new _1.BN(-1);
|
|
535
535
|
const market = this.clearingHouse.getMarketAccount(proposedMarketPosition.marketIndex);
|
|
536
|
-
const proposedMarketPositionValue = (0, margin_1.
|
|
536
|
+
const proposedMarketPositionValue = (0, margin_1.calculateBaseAssetValueWithOracle)(market, proposedMarketPosition, this.getOracleDataForMarket(market.marketIndex));
|
|
537
537
|
// total position value after trade
|
|
538
538
|
const totalPositionValueAfterTrade = totalPositionValueExcludingTargetMarket.add(proposedMarketPositionValue);
|
|
539
539
|
const marginRequirementExcludingTargetMarket = this.getUserAccount().positions.reduce((totalMarginRequirement, position) => {
|
|
540
540
|
if (!position.marketIndex.eq(marketPosition.marketIndex)) {
|
|
541
541
|
const market = this.clearingHouse.getMarketAccount(position.marketIndex);
|
|
542
|
-
const positionValue = (0, margin_1.
|
|
542
|
+
const positionValue = (0, margin_1.calculateBaseAssetValueWithOracle)(market, position, this.getOracleDataForMarket(market.marketIndex));
|
|
543
543
|
const marketMarginRequirement = positionValue
|
|
544
544
|
.mul(new _1.BN((0, _1.calculateMarketMarginRatio)(market, position.baseAssetAmount.abs(), 'Maintenance')))
|
|
545
545
|
.div(numericConstants_1.MARGIN_PRECISION);
|
package/lib/config.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.configs = {
|
|
|
7
7
|
devnet: {
|
|
8
8
|
ENV: 'devnet',
|
|
9
9
|
PYTH_ORACLE_MAPPING_ADDRESS: 'BmA9Z6FjioHJPpjT39QazZyhDRUdZy2ezwx4GiDdE2u2',
|
|
10
|
-
CLEARING_HOUSE_PROGRAM_ID: '
|
|
10
|
+
CLEARING_HOUSE_PROGRAM_ID: 'HbUKwqFPjz9r7ZtT416AU8aaecDQMKKiDCTS3AdXnS6c',
|
|
11
11
|
USDC_MINT_ADDRESS: '8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2',
|
|
12
12
|
MARKETS: markets_1.DevnetMarkets,
|
|
13
13
|
BANKS: banks_1.DevnetBanks,
|
package/lib/constants/banks.d.ts
CHANGED
package/lib/constants/banks.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Banks = exports.MainnetBanks = exports.DevnetBanks = exports.WRAPPED_SOL_MINT = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
const __1 = require("../");
|
|
6
|
+
const numericConstants_1 = require("./numericConstants");
|
|
6
7
|
exports.WRAPPED_SOL_MINT = new web3_js_1.PublicKey('So11111111111111111111111111111111111111112');
|
|
7
8
|
exports.DevnetBanks = [
|
|
8
9
|
{
|
|
@@ -11,6 +12,8 @@ exports.DevnetBanks = [
|
|
|
11
12
|
oracle: web3_js_1.PublicKey.default,
|
|
12
13
|
oracleSource: __1.OracleSource.QUOTE_ASSET,
|
|
13
14
|
mint: new web3_js_1.PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
|
|
15
|
+
precision: numericConstants_1.BANK_BALANCE_PRECISION,
|
|
16
|
+
precisionExp: numericConstants_1.BANK_BALANCE_PRECISION_EXP,
|
|
14
17
|
},
|
|
15
18
|
{
|
|
16
19
|
symbol: 'SOL',
|
|
@@ -18,6 +21,8 @@ exports.DevnetBanks = [
|
|
|
18
21
|
oracle: new web3_js_1.PublicKey('J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix'),
|
|
19
22
|
oracleSource: __1.OracleSource.PYTH,
|
|
20
23
|
mint: new web3_js_1.PublicKey(exports.WRAPPED_SOL_MINT),
|
|
24
|
+
precision: numericConstants_1.LAMPORTS_PRECISION,
|
|
25
|
+
precisionExp: numericConstants_1.LAMPORTS_EXP,
|
|
21
26
|
},
|
|
22
27
|
{
|
|
23
28
|
symbol: 'BTC',
|
|
@@ -25,6 +30,8 @@ exports.DevnetBanks = [
|
|
|
25
30
|
oracle: new web3_js_1.PublicKey('HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J'),
|
|
26
31
|
oracleSource: __1.OracleSource.PYTH,
|
|
27
32
|
mint: new web3_js_1.PublicKey('3BZPwbcqB5kKScF3TEXxwNfx5ipV13kbRVDvfVp5c6fv'),
|
|
33
|
+
precision: numericConstants_1.BANK_BALANCE_PRECISION,
|
|
34
|
+
precisionExp: numericConstants_1.BANK_BALANCE_PRECISION_EXP,
|
|
28
35
|
},
|
|
29
36
|
];
|
|
30
37
|
exports.MainnetBanks = [
|
|
@@ -34,6 +41,8 @@ exports.MainnetBanks = [
|
|
|
34
41
|
oracle: web3_js_1.PublicKey.default,
|
|
35
42
|
oracleSource: __1.OracleSource.QUOTE_ASSET,
|
|
36
43
|
mint: new web3_js_1.PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
|
|
44
|
+
precision: numericConstants_1.BANK_BALANCE_PRECISION,
|
|
45
|
+
precisionExp: numericConstants_1.BANK_BALANCE_PRECISION_EXP,
|
|
37
46
|
},
|
|
38
47
|
];
|
|
39
48
|
exports.Banks = {
|
|
@@ -41,3 +41,5 @@ export declare const MARGIN_PRECISION: BN;
|
|
|
41
41
|
export declare const BID_ASK_SPREAD_PRECISION: BN;
|
|
42
42
|
export declare const ONE_YEAR: BN;
|
|
43
43
|
export declare const QUOTE_ASSET_BANK_INDEX: BN;
|
|
44
|
+
export declare const LAMPORTS_PRECISION: BN;
|
|
45
|
+
export declare const LAMPORTS_EXP: BN;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QUOTE_ASSET_BANK_INDEX = exports.ONE_YEAR = exports.BID_ASK_SPREAD_PRECISION = exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_PAYMENT_PRECISION = exports.MARK_PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.BANK_IMF_PRECISION = exports.BANK_IMF_PRECISION_EXP = exports.BANK_BALANCE_PRECISION = exports.BANK_BALANCE_PRECISION_EXP = exports.BANK_WEIGHT_PRECISION = exports.BANK_RATE_PRECISION = exports.BANK_UTILIZATION_PRECISION = exports.BANK_CUMULATIVE_INTEREST_PRECISION = exports.BANK_CUMULATIVE_INTEREST_PRECISION_EXP = exports.BANK_INTEREST_PRECISION = exports.BANK_INTEREST_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.MARK_PRICE_PRECISION_EXP = exports.FUNDING_PAYMENT_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
3
|
+
exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_ASSET_BANK_INDEX = exports.ONE_YEAR = exports.BID_ASK_SPREAD_PRECISION = exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_PAYMENT_PRECISION = exports.MARK_PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.BANK_IMF_PRECISION = exports.BANK_IMF_PRECISION_EXP = exports.BANK_BALANCE_PRECISION = exports.BANK_BALANCE_PRECISION_EXP = exports.BANK_WEIGHT_PRECISION = exports.BANK_RATE_PRECISION = exports.BANK_UTILIZATION_PRECISION = exports.BANK_CUMULATIVE_INTEREST_PRECISION = exports.BANK_CUMULATIVE_INTEREST_PRECISION_EXP = exports.BANK_INTEREST_PRECISION = exports.BANK_INTEREST_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.MARK_PRICE_PRECISION_EXP = exports.FUNDING_PAYMENT_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
4
5
|
const __1 = require("../");
|
|
5
6
|
exports.ZERO = new __1.BN(0);
|
|
6
7
|
exports.ONE = new __1.BN(1);
|
|
@@ -43,3 +44,5 @@ exports.MARGIN_PRECISION = exports.TEN_THOUSAND;
|
|
|
43
44
|
exports.BID_ASK_SPREAD_PRECISION = new __1.BN(1000000);
|
|
44
45
|
exports.ONE_YEAR = new __1.BN(31536000);
|
|
45
46
|
exports.QUOTE_ASSET_BANK_INDEX = new __1.BN(0);
|
|
47
|
+
exports.LAMPORTS_PRECISION = new __1.BN(web3_js_1.LAMPORTS_PER_SOL);
|
|
48
|
+
exports.LAMPORTS_EXP = new __1.BN(Math.log10(web3_js_1.LAMPORTS_PER_SOL));
|
package/lib/events/sort.js
CHANGED
|
@@ -11,17 +11,14 @@ function clientSortDescFn() {
|
|
|
11
11
|
function defaultBlockchainSortFn(currentEvent, newEvent) {
|
|
12
12
|
return currentEvent.slot <= newEvent.slot ? 'less than' : 'greater than';
|
|
13
13
|
}
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const newEventMarketIndex = !newEvent.maker.equals(index_1.PublicKey.default)
|
|
19
|
-
? newEvent.makerOrder.marketIndex
|
|
20
|
-
: newEvent.takerOrder.marketIndex;
|
|
14
|
+
function orderActionRecordSortFn(currentEvent, newEvent) {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
const currentEventMarketIndex = currentEvent.marketIndex;
|
|
17
|
+
const newEventMarketIndex = newEvent.marketIndex;
|
|
21
18
|
if (!currentEventMarketIndex.eq(newEventMarketIndex)) {
|
|
22
19
|
return currentEvent.ts.lte(newEvent.ts) ? 'less than' : 'greater than';
|
|
23
20
|
}
|
|
24
|
-
if (currentEvent.fillRecordId.gt(index_1.ZERO) && newEvent.fillRecordId.gt(index_1.ZERO)) {
|
|
21
|
+
if (((_a = currentEvent.fillRecordId) === null || _a === void 0 ? void 0 : _a.gt(index_1.ZERO)) && ((_b = newEvent.fillRecordId) === null || _b === void 0 ? void 0 : _b.gt(index_1.ZERO))) {
|
|
25
22
|
return currentEvent.fillRecordId.lte(newEvent.fillRecordId)
|
|
26
23
|
? 'less than'
|
|
27
24
|
: 'greater than';
|
|
@@ -35,8 +32,8 @@ function getSortFn(orderBy, orderDir, eventType) {
|
|
|
35
32
|
return orderDir === 'asc' ? clientSortAscFn : clientSortDescFn;
|
|
36
33
|
}
|
|
37
34
|
switch (eventType) {
|
|
38
|
-
case '
|
|
39
|
-
return
|
|
35
|
+
case 'OrderActionRecord':
|
|
36
|
+
return orderActionRecordSortFn;
|
|
40
37
|
default:
|
|
41
38
|
return defaultBlockchainSortFn;
|
|
42
39
|
}
|
package/lib/events/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Commitment, TransactionSignature } from '@solana/web3.js';
|
|
2
|
-
import { DepositRecord, FundingPaymentRecord, FundingRateRecord, LiquidationRecord, NewUserRecord, OrderRecord, SettlePnlRecord } from '../index';
|
|
2
|
+
import { DepositRecord, FundingPaymentRecord, FundingRateRecord, LiquidationRecord, NewUserRecord, OrderActionRecord, OrderRecord, SettlePnlRecord } from '../index';
|
|
3
3
|
export declare type EventSubscriptionOptions = {
|
|
4
4
|
eventTypes?: EventType[];
|
|
5
5
|
maxEventsPerType?: number;
|
|
@@ -27,6 +27,7 @@ export declare type EventMap = {
|
|
|
27
27
|
LiquidationRecord: Event<LiquidationRecord>;
|
|
28
28
|
FundingRateRecord: Event<FundingRateRecord>;
|
|
29
29
|
OrderRecord: Event<OrderRecord>;
|
|
30
|
+
OrderActionRecord: Event<OrderActionRecord>;
|
|
30
31
|
SettlePnlRecord: Event<SettlePnlRecord>;
|
|
31
32
|
NewUserRecord: Event<NewUserRecord>;
|
|
32
33
|
};
|