@0dotxyz/p0-ts-sdk 2.8.4 → 2.9.0-alpha.0
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/dist/index.cjs +305 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +218 -16
- package/dist/index.d.ts +218 -16
- package/dist/index.js +292 -11
- package/dist/index.js.map +1 -1
- package/dist/instructions.cjs +19 -1
- package/dist/instructions.cjs.map +1 -1
- package/dist/instructions.d.cts +30 -1
- package/dist/instructions.d.ts +30 -1
- package/dist/instructions.js +19 -1
- package/dist/instructions.js.map +1 -1
- package/dist/{types-BsUi_Zrx.d.ts → types-Auh-s318.d.ts} +40 -1
- package/dist/{types-Bah-JjSM.d.cts → types-CvvHQs7G.d.cts} +40 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PublicKey, SolanaJSONRPCError, ComputeBudgetProgram, SystemProgram, TransactionMessage, VersionedTransaction, AddressLookupTableAccount, Transaction, TransactionInstruction, Keypair, StakeProgram, LAMPORTS_PER_SOL, StakeAuthorizationLayout, SYSVAR_INSTRUCTIONS_PUBKEY, SYSVAR_RENT_PUBKEY, STAKE_CONFIG_ID as STAKE_CONFIG_ID$1 } from '@solana/web3.js';
|
|
2
2
|
import { object, string, enums, array, assert } from 'superstruct';
|
|
3
|
+
import { sha256 } from '@noble/hashes/sha2';
|
|
3
4
|
import BigNumber3, { BigNumber } from 'bignumber.js';
|
|
4
5
|
import BN8, { BN } from 'bn.js';
|
|
5
6
|
import Decimal3, { Decimal } from 'decimal.js';
|
|
@@ -258,6 +259,7 @@ var PDA_BANK_FEE_STATE_SEED = Buffer.from("feestate");
|
|
|
258
259
|
var PDA_BANK_EMISSIONS_AUTH_SEED = Buffer.from("emissions_auth_seed");
|
|
259
260
|
var PDA_BANK_EMISSIONS_VAULT_SEED = Buffer.from("emissions_vault");
|
|
260
261
|
var PDA_MARGINFI_ACCOUNT_SEED = Buffer.from("marginfi_account");
|
|
262
|
+
var PDA_ORDER_SEED = Buffer.from("order");
|
|
261
263
|
function deriveBankLiquidityVaultAuthority(programId, bank) {
|
|
262
264
|
return PublicKey.findProgramAddressSync(
|
|
263
265
|
[PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, bank.toBuffer()],
|
|
@@ -322,6 +324,14 @@ function deriveMarginfiAccount(programId, group, authority, accountIndex, thirdP
|
|
|
322
324
|
programId
|
|
323
325
|
);
|
|
324
326
|
}
|
|
327
|
+
function deriveOrderPda(programId, marginfiAccount, bankKeys) {
|
|
328
|
+
const sortedBankKeys = bankKeys.map((key) => key.toBuffer()).sort(Buffer.compare);
|
|
329
|
+
const bankKeysHash = Buffer.from(sha256(Buffer.concat(sortedBankKeys)));
|
|
330
|
+
return PublicKey.findProgramAddressSync(
|
|
331
|
+
[PDA_ORDER_SEED, marginfiAccount.toBuffer(), bankKeysHash],
|
|
332
|
+
programId
|
|
333
|
+
);
|
|
334
|
+
}
|
|
325
335
|
var PYTH_PUSH_ORACLE_ID = new PublicKey("pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT");
|
|
326
336
|
var PYTH_SPONSORED_SHARD_ID = 0;
|
|
327
337
|
var MARGINFI_SPONSORED_SHARD_ID = 3301;
|
|
@@ -493,6 +503,19 @@ function shortenAddress(pubkey, chars = 4) {
|
|
|
493
503
|
function bpsToPercentile(bps) {
|
|
494
504
|
return bps / 1e4;
|
|
495
505
|
}
|
|
506
|
+
var U32_MAX = 4294967295;
|
|
507
|
+
var MAX_ORDER_SLIPPAGE_PERCENT = 10;
|
|
508
|
+
function percentToMaxSlippageU32(percent) {
|
|
509
|
+
if (!(percent > 0) || percent > MAX_ORDER_SLIPPAGE_PERCENT) {
|
|
510
|
+
throw new Error(
|
|
511
|
+
`Max slippage percent must be in (0, ${MAX_ORDER_SLIPPAGE_PERCENT}], got ${percent}`
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
return Math.round(percent / 100 * U32_MAX);
|
|
515
|
+
}
|
|
516
|
+
function maxSlippageU32ToPercent(maxSlippage) {
|
|
517
|
+
return maxSlippage / U32_MAX * 100;
|
|
518
|
+
}
|
|
496
519
|
var composeRemainingAccounts = (banksAndOracles) => {
|
|
497
520
|
banksAndOracles.sort((a, b) => {
|
|
498
521
|
const A = a[0].toBytes();
|
|
@@ -21432,6 +21455,9 @@ var TransactionType = /* @__PURE__ */ ((TransactionType2) => {
|
|
|
21432
21455
|
TransactionType2["UNSTAKE_LST"] = "UNSTAKE_LST";
|
|
21433
21456
|
TransactionType2["WITHDRAW_EMISSIONS"] = "WITHDRAW_EMISSIONS";
|
|
21434
21457
|
TransactionType2["LIQUIDATE_ACCOUNT"] = "LIQUIDATE_ACCOUNT";
|
|
21458
|
+
TransactionType2["PLACE_ORDER"] = "PLACE_ORDER";
|
|
21459
|
+
TransactionType2["CLOSE_ORDER"] = "CLOSE_ORDER";
|
|
21460
|
+
TransactionType2["UPDATE_ORDER"] = "UPDATE_ORDER";
|
|
21435
21461
|
TransactionType2["CREATE_PERM_BANK"] = "CREATE_PERM_BANK";
|
|
21436
21462
|
TransactionType2["CREATE_GROUP"] = "CREATE_GROUP";
|
|
21437
21463
|
TransactionType2["JUPITER_SWAP"] = "JUPITER_SWAP";
|
|
@@ -21518,6 +21544,14 @@ var TransactionConfigMap = {
|
|
|
21518
21544
|
["WITHDRAW_EMISSIONS" /* WITHDRAW_EMISSIONS */]: { label: () => "Withdraw emissions" },
|
|
21519
21545
|
// LIQUIDATE
|
|
21520
21546
|
["LIQUIDATE_ACCOUNT" /* LIQUIDATE_ACCOUNT */]: { label: () => "Liquidate account" },
|
|
21547
|
+
// ORDERS (TP/SL)
|
|
21548
|
+
["PLACE_ORDER" /* PLACE_ORDER */]: {
|
|
21549
|
+
label: ({ collateralToken, debtToken } = {}) => collateralToken && debtToken ? `Place TP/SL order on ${collateralToken}/${debtToken}` : "Place TP/SL order"
|
|
21550
|
+
},
|
|
21551
|
+
["CLOSE_ORDER" /* CLOSE_ORDER */]: { label: () => "Close TP/SL order" },
|
|
21552
|
+
["UPDATE_ORDER" /* UPDATE_ORDER */]: {
|
|
21553
|
+
label: ({ collateralToken, debtToken } = {}) => collateralToken && debtToken ? `Update TP/SL order on ${collateralToken}/${debtToken}` : "Update TP/SL order"
|
|
21554
|
+
},
|
|
21521
21555
|
// BANK and GROUPS
|
|
21522
21556
|
["CREATE_PERM_BANK" /* CREATE_PERM_BANK */]: { label: () => "Create permissionless bank" },
|
|
21523
21557
|
["CREATE_GROUP" /* CREATE_GROUP */]: { label: () => "Create marginfi group" },
|
|
@@ -71294,13 +71328,13 @@ function computeInterestRates(bank) {
|
|
|
71294
71328
|
const borrowingRate = baseInterestRate.times(new BigNumber3(1).plus(rateFee)).plus(fixedFee);
|
|
71295
71329
|
return { lendingRate, borrowingRate };
|
|
71296
71330
|
}
|
|
71297
|
-
var
|
|
71331
|
+
var U32_MAX2 = 4294967295;
|
|
71298
71332
|
function rateFromU32(rate) {
|
|
71299
|
-
const ratio = new BigNumber3(rate).div(
|
|
71333
|
+
const ratio = new BigNumber3(rate).div(U32_MAX2);
|
|
71300
71334
|
return ratio.times(10);
|
|
71301
71335
|
}
|
|
71302
71336
|
function utilFromU32(util) {
|
|
71303
|
-
return new BigNumber3(util).div(
|
|
71337
|
+
return new BigNumber3(util).div(U32_MAX2);
|
|
71304
71338
|
}
|
|
71305
71339
|
function calculateRateBetweenPoints(startX, startY, endX, endY, targetX) {
|
|
71306
71340
|
if (endX.lte(startX)) return startY;
|
|
@@ -71909,6 +71943,22 @@ async function makePulseHealthIx(mfProgram, accounts, remainingAccounts = []) {
|
|
|
71909
71943
|
marginfiAccount: accounts.marginfiAccount
|
|
71910
71944
|
}).remainingAccounts(remainingAccounts).instruction();
|
|
71911
71945
|
}
|
|
71946
|
+
async function makePlaceOrderIx(mfProgram, accounts, args, remainingAccounts = []) {
|
|
71947
|
+
const { marginfiAccount, feePayer, authority, order, globalFeeWallet, ...optionalAccounts } = accounts;
|
|
71948
|
+
return mfProgram.methods.marginfiAccountPlaceOrder(args.bankKeys, args.trigger).accounts({
|
|
71949
|
+
marginfiAccount,
|
|
71950
|
+
feePayer,
|
|
71951
|
+
order
|
|
71952
|
+
}).accountsPartial({ authority, globalFeeWallet, ...optionalAccounts }).remainingAccounts(remainingAccounts).instruction();
|
|
71953
|
+
}
|
|
71954
|
+
async function makeCloseOrderIx(mfProgram, accounts, remainingAccounts = []) {
|
|
71955
|
+
const { marginfiAccount, authority, order, feeRecipient, ...optionalAccounts } = accounts;
|
|
71956
|
+
return mfProgram.methods.marginfiAccountCloseOrder().accounts({
|
|
71957
|
+
authority,
|
|
71958
|
+
order,
|
|
71959
|
+
feeRecipient
|
|
71960
|
+
}).accountsPartial({ marginfiAccount, ...optionalAccounts }).remainingAccounts(remainingAccounts).instruction();
|
|
71961
|
+
}
|
|
71912
71962
|
var instructions = {
|
|
71913
71963
|
makeDepositIx,
|
|
71914
71964
|
makeJuplendDepositIx,
|
|
@@ -71934,7 +71984,9 @@ var instructions = {
|
|
|
71934
71984
|
makeLendingPoolConfigureBankOracleIx,
|
|
71935
71985
|
makeLendingPoolConfigureBankOracleScopeIx,
|
|
71936
71986
|
makeLendingPoolSetOraclePriceIx,
|
|
71937
|
-
makePulseHealthIx
|
|
71987
|
+
makePulseHealthIx,
|
|
71988
|
+
makePlaceOrderIx,
|
|
71989
|
+
makeCloseOrderIx
|
|
71938
71990
|
};
|
|
71939
71991
|
var instructions_default3 = instructions;
|
|
71940
71992
|
|
|
@@ -72100,9 +72152,25 @@ function decodeAccountRaw(encoded, idl) {
|
|
|
72100
72152
|
const coder = new BorshCoder(idl);
|
|
72101
72153
|
return coder.accounts.decode("marginfiAccount" /* MarginfiAccount */, encoded);
|
|
72102
72154
|
}
|
|
72155
|
+
function parseOrderRaw(orderAddress, orderRaw) {
|
|
72156
|
+
let trigger = "stopLoss";
|
|
72157
|
+
if ("takeProfit" in orderRaw.trigger) trigger = "takeProfit";
|
|
72158
|
+
if ("both" in orderRaw.trigger) trigger = "both";
|
|
72159
|
+
return {
|
|
72160
|
+
address: orderAddress,
|
|
72161
|
+
marginfiAccount: orderRaw.marginfiAccount,
|
|
72162
|
+
trigger,
|
|
72163
|
+
stopLoss: trigger === "takeProfit" ? null : wrappedI80F48toBigNumber(orderRaw.stopLoss),
|
|
72164
|
+
takeProfit: trigger === "stopLoss" ? null : wrappedI80F48toBigNumber(orderRaw.takeProfit),
|
|
72165
|
+
tags: [orderRaw.tags[0], orderRaw.tags[1]],
|
|
72166
|
+
createdAt: orderRaw.createdAt.toNumber(),
|
|
72167
|
+
maxSlippagePercent: maxSlippageU32ToPercent(orderRaw.maxSlippage)
|
|
72168
|
+
};
|
|
72169
|
+
}
|
|
72103
72170
|
function parseBalanceRaw(balanceRaw) {
|
|
72104
72171
|
const active = typeof balanceRaw.active === "number" ? balanceRaw.active === 1 : balanceRaw.active;
|
|
72105
72172
|
const bankPk = balanceRaw.bankPk;
|
|
72173
|
+
const tag = balanceRaw.tag;
|
|
72106
72174
|
const assetShares = wrappedI80F48toBigNumber(balanceRaw.assetShares);
|
|
72107
72175
|
const liabilityShares = wrappedI80F48toBigNumber(balanceRaw.liabilityShares);
|
|
72108
72176
|
const emissionsOutstanding = wrappedI80F48toBigNumber(balanceRaw.emissionsOutstanding);
|
|
@@ -72110,6 +72178,7 @@ function parseBalanceRaw(balanceRaw) {
|
|
|
72110
72178
|
return {
|
|
72111
72179
|
active,
|
|
72112
72180
|
bankPk,
|
|
72181
|
+
tag,
|
|
72113
72182
|
assetShares,
|
|
72114
72183
|
liabilityShares,
|
|
72115
72184
|
emissionsOutstanding,
|
|
@@ -72219,6 +72288,7 @@ function dtoToBalance(balanceDto) {
|
|
|
72219
72288
|
return {
|
|
72220
72289
|
active: balanceDto.active,
|
|
72221
72290
|
bankPk: new PublicKey(balanceDto.bankPk),
|
|
72291
|
+
tag: balanceDto.tag ?? 0,
|
|
72222
72292
|
assetShares: new BigNumber3(balanceDto.assetShares),
|
|
72223
72293
|
liabilityShares: new BigNumber3(balanceDto.liabilityShares),
|
|
72224
72294
|
emissionsOutstanding: new BigNumber3(balanceDto.emissionsOutstanding),
|
|
@@ -72257,6 +72327,7 @@ function balanceToDto(balance) {
|
|
|
72257
72327
|
return {
|
|
72258
72328
|
active: balance.active,
|
|
72259
72329
|
bankPk: balance.bankPk.toBase58(),
|
|
72330
|
+
tag: balance.tag,
|
|
72260
72331
|
assetShares: balance.assetShares.toString(),
|
|
72261
72332
|
liabilityShares: balance.liabilityShares.toString(),
|
|
72262
72333
|
emissionsOutstanding: balance.emissionsOutstanding.toString(),
|
|
@@ -72774,6 +72845,7 @@ function createEmptyBalance(bankPk) {
|
|
|
72774
72845
|
const balance = {
|
|
72775
72846
|
active: false,
|
|
72776
72847
|
bankPk,
|
|
72848
|
+
tag: 0,
|
|
72777
72849
|
assetShares: new BigNumber3(0),
|
|
72778
72850
|
liabilityShares: new BigNumber3(0),
|
|
72779
72851
|
emissionsOutstanding: new BigNumber3(0),
|
|
@@ -73076,6 +73148,7 @@ function computeProjectedActiveBalancesNoCpi({
|
|
|
73076
73148
|
const projectedBalances = account.balances.map((b) => ({
|
|
73077
73149
|
active: b.active,
|
|
73078
73150
|
bankPk: b.bankPk,
|
|
73151
|
+
tag: b.tag,
|
|
73079
73152
|
assetShares: new BigNumber3(b.assetShares),
|
|
73080
73153
|
liabilityShares: new BigNumber3(b.liabilityShares),
|
|
73081
73154
|
emissionsOutstanding: new BigNumber3(b.emissionsOutstanding),
|
|
@@ -73349,6 +73422,36 @@ var fetchMarginfiAccountData = async (program, marginfiAccountPk, banksMap, bank
|
|
|
73349
73422
|
return { marginfiAccount };
|
|
73350
73423
|
}
|
|
73351
73424
|
};
|
|
73425
|
+
var fetchOrder = async (program, orderAddress) => {
|
|
73426
|
+
const orderRaw = await program.account.order.fetchNullable(orderAddress);
|
|
73427
|
+
if (!orderRaw) return null;
|
|
73428
|
+
return parseOrderRaw(orderAddress, orderRaw);
|
|
73429
|
+
};
|
|
73430
|
+
var fetchOrdersForAccount = async (program, marginfiAccount) => {
|
|
73431
|
+
const orders = await program.account.order.all([
|
|
73432
|
+
{
|
|
73433
|
+
memcmp: {
|
|
73434
|
+
bytes: marginfiAccount.toBase58(),
|
|
73435
|
+
offset: 8
|
|
73436
|
+
// first field after the discriminator
|
|
73437
|
+
}
|
|
73438
|
+
}
|
|
73439
|
+
]);
|
|
73440
|
+
return orders.map(({ publicKey: publicKey5, account }) => parseOrderRaw(publicKey5, account));
|
|
73441
|
+
};
|
|
73442
|
+
var resolveOrderBanks = (marginfiAccount, order) => {
|
|
73443
|
+
const taggedBalances = marginfiAccount.balances.filter(
|
|
73444
|
+
(balance) => balance.tag !== 0 && order.tags.includes(balance.tag)
|
|
73445
|
+
);
|
|
73446
|
+
const collateral = taggedBalances.find((balance) => balance.assetShares.gt(0));
|
|
73447
|
+
const debt = taggedBalances.find((balance) => balance.liabilityShares.gt(0));
|
|
73448
|
+
if (!collateral || !debt) {
|
|
73449
|
+
throw new Error(
|
|
73450
|
+
`Could not resolve banks for order ${order.address.toBase58()}: tagged balances are missing or closed`
|
|
73451
|
+
);
|
|
73452
|
+
}
|
|
73453
|
+
return { collateralBank: collateral.bankPk, debtBank: debt.bankPk };
|
|
73454
|
+
};
|
|
73352
73455
|
function randomDistinctIndices(count, maxExclusive) {
|
|
73353
73456
|
const chosen = /* @__PURE__ */ new Set();
|
|
73354
73457
|
while (chosen.size < count) {
|
|
@@ -78073,6 +78176,7 @@ function generateDummyAccount(group, authority, accountKey) {
|
|
|
78073
78176
|
const dummyBalances = Array(15).fill({
|
|
78074
78177
|
active: false,
|
|
78075
78178
|
bankPk: new PublicKey("11111111111111111111111111111111"),
|
|
78179
|
+
tag: 0,
|
|
78076
78180
|
assetShares: dummyWrappedI80F48,
|
|
78077
78181
|
liabilityShares: dummyWrappedI80F48,
|
|
78078
78182
|
emissionsOutstanding: dummyWrappedI80F48,
|
|
@@ -78081,7 +78185,7 @@ function generateDummyAccount(group, authority, accountKey) {
|
|
|
78081
78185
|
const rawAccount = {
|
|
78082
78186
|
group,
|
|
78083
78187
|
authority,
|
|
78084
|
-
lendingAccount: { balances: dummyBalances },
|
|
78188
|
+
lendingAccount: { balances: dummyBalances, lastTagUsed: 0 },
|
|
78085
78189
|
healthCache: {
|
|
78086
78190
|
assetValue: {
|
|
78087
78191
|
value: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
@@ -78103,20 +78207,20 @@ function generateDummyAccount(group, authority, accountKey) {
|
|
|
78103
78207
|
mrgnErr: 0
|
|
78104
78208
|
},
|
|
78105
78209
|
emissionsDestinationAccount: new PublicKey("11111111111111111111111111111111"),
|
|
78106
|
-
accountFlags: new BN8([0, 0, 0])
|
|
78107
|
-
};
|
|
78210
|
+
accountFlags: new BN8([0, 0, 0])};
|
|
78108
78211
|
return parseMarginfiAccountRaw(accountKey, rawAccount);
|
|
78109
78212
|
}
|
|
78110
78213
|
|
|
78111
78214
|
// src/models/balance.ts
|
|
78112
78215
|
var Balance = class _Balance {
|
|
78113
|
-
constructor(active, bankPk, assetShares, liabilityShares, emissionsOutstanding, lastUpdate) {
|
|
78216
|
+
constructor(active, bankPk, assetShares, liabilityShares, emissionsOutstanding, lastUpdate, tag) {
|
|
78114
78217
|
this.active = active;
|
|
78115
78218
|
this.bankPk = bankPk;
|
|
78116
78219
|
this.assetShares = assetShares;
|
|
78117
78220
|
this.liabilityShares = liabilityShares;
|
|
78118
78221
|
this.emissionsOutstanding = emissionsOutstanding;
|
|
78119
78222
|
this.lastUpdate = lastUpdate;
|
|
78223
|
+
this.tag = tag;
|
|
78120
78224
|
}
|
|
78121
78225
|
static from(balanceRaw) {
|
|
78122
78226
|
const props = parseBalanceRaw(balanceRaw);
|
|
@@ -78126,7 +78230,8 @@ var Balance = class _Balance {
|
|
|
78126
78230
|
props.assetShares,
|
|
78127
78231
|
props.liabilityShares,
|
|
78128
78232
|
props.emissionsOutstanding,
|
|
78129
|
-
props.lastUpdate
|
|
78233
|
+
props.lastUpdate,
|
|
78234
|
+
props.tag
|
|
78130
78235
|
);
|
|
78131
78236
|
}
|
|
78132
78237
|
static fromBalanceType(balance) {
|
|
@@ -78136,7 +78241,8 @@ var Balance = class _Balance {
|
|
|
78136
78241
|
balance.assetShares,
|
|
78137
78242
|
balance.liabilityShares,
|
|
78138
78243
|
balance.emissionsOutstanding,
|
|
78139
|
-
balance.lastUpdate
|
|
78244
|
+
balance.lastUpdate,
|
|
78245
|
+
balance.tag
|
|
78140
78246
|
);
|
|
78141
78247
|
}
|
|
78142
78248
|
static createEmpty(bankPk) {
|
|
@@ -79100,6 +79206,41 @@ var MarginfiAccount = class _MarginfiAccount {
|
|
|
79100
79206
|
}
|
|
79101
79207
|
});
|
|
79102
79208
|
}
|
|
79209
|
+
// ----------------------------------------------------------------------------
|
|
79210
|
+
// Orders (take-profit / stop-loss)
|
|
79211
|
+
// ----------------------------------------------------------------------------
|
|
79212
|
+
/**
|
|
79213
|
+
* Creates a place-order instruction for this marginfi account.
|
|
79214
|
+
*
|
|
79215
|
+
* @see {@link makePlaceOrderIx} for detailed implementation
|
|
79216
|
+
*/
|
|
79217
|
+
async makePlaceOrderIx(params) {
|
|
79218
|
+
return makePlaceOrderIx2({ ...params, marginfiAccount: this });
|
|
79219
|
+
}
|
|
79220
|
+
/**
|
|
79221
|
+
* Creates a transaction placing a take-profit / stop-loss order on a collateral/debt pair.
|
|
79222
|
+
*
|
|
79223
|
+
* @see {@link makePlaceOrderTx} for detailed implementation
|
|
79224
|
+
*/
|
|
79225
|
+
async makePlaceOrderTx(params) {
|
|
79226
|
+
return makePlaceOrderTx({ ...params, marginfiAccount: this });
|
|
79227
|
+
}
|
|
79228
|
+
/**
|
|
79229
|
+
* Creates a transaction closing an existing order.
|
|
79230
|
+
*
|
|
79231
|
+
* @see {@link makeCloseOrderTx} for detailed implementation
|
|
79232
|
+
*/
|
|
79233
|
+
async makeCloseOrderTx(params) {
|
|
79234
|
+
return makeCloseOrderTx({ ...params, marginfiAccount: this });
|
|
79235
|
+
}
|
|
79236
|
+
/**
|
|
79237
|
+
* Creates a transaction replacing the pair's existing order with new thresholds.
|
|
79238
|
+
*
|
|
79239
|
+
* @see {@link makeUpdateOrderTx} for detailed implementation
|
|
79240
|
+
*/
|
|
79241
|
+
async makeUpdateOrderTx(params) {
|
|
79242
|
+
return makeUpdateOrderTx({ ...params, marginfiAccount: this });
|
|
79243
|
+
}
|
|
79103
79244
|
/**
|
|
79104
79245
|
* Creates a repay transaction.
|
|
79105
79246
|
*
|
|
@@ -81660,6 +81801,100 @@ async function makeBulkRepayTx(params) {
|
|
|
81660
81801
|
);
|
|
81661
81802
|
return { transactions, actionTxIndex: 0, mustBeAtomicBundle: false };
|
|
81662
81803
|
}
|
|
81804
|
+
function buildOrderTrigger(params) {
|
|
81805
|
+
const { stopLossUsd, takeProfitUsd } = params;
|
|
81806
|
+
const maxSlippage = percentToMaxSlippageU32(params.maxSlippagePercent);
|
|
81807
|
+
if (stopLossUsd && takeProfitUsd) {
|
|
81808
|
+
if (takeProfitUsd.lte(stopLossUsd)) {
|
|
81809
|
+
throw new Error(
|
|
81810
|
+
`Take-profit threshold (${takeProfitUsd}) must be above stop-loss threshold (${stopLossUsd})`
|
|
81811
|
+
);
|
|
81812
|
+
}
|
|
81813
|
+
return {
|
|
81814
|
+
both: {
|
|
81815
|
+
stopLoss: bigNumberToWrappedI80F48(stopLossUsd),
|
|
81816
|
+
takeProfit: bigNumberToWrappedI80F48(takeProfitUsd),
|
|
81817
|
+
maxSlippage
|
|
81818
|
+
}
|
|
81819
|
+
};
|
|
81820
|
+
}
|
|
81821
|
+
if (stopLossUsd) {
|
|
81822
|
+
return { stopLoss: { threshold: bigNumberToWrappedI80F48(stopLossUsd), maxSlippage } };
|
|
81823
|
+
}
|
|
81824
|
+
if (takeProfitUsd) {
|
|
81825
|
+
return { takeProfit: { threshold: bigNumberToWrappedI80F48(takeProfitUsd), maxSlippage } };
|
|
81826
|
+
}
|
|
81827
|
+
throw new Error("An order needs a stop-loss threshold, a take-profit threshold, or both");
|
|
81828
|
+
}
|
|
81829
|
+
async function makePlaceOrderIx2(params) {
|
|
81830
|
+
const { program, marginfiAccount, collateralBank, debtBank, trigger, feePayer } = params;
|
|
81831
|
+
const [order] = deriveOrderPda(program.programId, marginfiAccount.address, [
|
|
81832
|
+
collateralBank,
|
|
81833
|
+
debtBank
|
|
81834
|
+
]);
|
|
81835
|
+
const globalFeeWallet = params.globalFeeWallet ?? (await program.account.feeState.fetch(deriveFeeState(program.programId)[0])).globalFeeWallet;
|
|
81836
|
+
const placeOrderIx = await instructions_default3.makePlaceOrderIx(
|
|
81837
|
+
program,
|
|
81838
|
+
{
|
|
81839
|
+
marginfiAccount: marginfiAccount.address,
|
|
81840
|
+
feePayer: feePayer ?? marginfiAccount.authority,
|
|
81841
|
+
authority: marginfiAccount.authority,
|
|
81842
|
+
order,
|
|
81843
|
+
globalFeeWallet,
|
|
81844
|
+
group: marginfiAccount.group
|
|
81845
|
+
},
|
|
81846
|
+
{ bankKeys: [collateralBank, debtBank], trigger: buildOrderTrigger(trigger) }
|
|
81847
|
+
);
|
|
81848
|
+
return { instructions: [placeOrderIx], keys: [] };
|
|
81849
|
+
}
|
|
81850
|
+
async function makeCloseOrderIx2(params) {
|
|
81851
|
+
const { program, marginfiAccount, order, feeRecipient } = params;
|
|
81852
|
+
const closeOrderIx = await instructions_default3.makeCloseOrderIx(program, {
|
|
81853
|
+
marginfiAccount: marginfiAccount.address,
|
|
81854
|
+
authority: marginfiAccount.authority,
|
|
81855
|
+
order,
|
|
81856
|
+
feeRecipient: feeRecipient ?? marginfiAccount.authority,
|
|
81857
|
+
group: marginfiAccount.group
|
|
81858
|
+
});
|
|
81859
|
+
return { instructions: [closeOrderIx], keys: [] };
|
|
81860
|
+
}
|
|
81861
|
+
async function compileOrderTx(params, payerKey, ixs, type) {
|
|
81862
|
+
const blockhash = params.blockhash ?? (await params.connection.getLatestBlockhashAndContext("confirmed")).value.blockhash;
|
|
81863
|
+
return addTransactionMetadata(
|
|
81864
|
+
new VersionedTransaction(
|
|
81865
|
+
new TransactionMessage({
|
|
81866
|
+
instructions: ixs.flatMap((ix) => ix.instructions),
|
|
81867
|
+
payerKey,
|
|
81868
|
+
recentBlockhash: blockhash
|
|
81869
|
+
}).compileToV0Message(params.luts)
|
|
81870
|
+
),
|
|
81871
|
+
{ type, signers: ixs.flatMap((ix) => ix.keys), addressLookupTables: params.luts }
|
|
81872
|
+
);
|
|
81873
|
+
}
|
|
81874
|
+
async function makePlaceOrderTx(params) {
|
|
81875
|
+
const placeIxs = await makePlaceOrderIx2(params);
|
|
81876
|
+
const payerKey = params.feePayer ?? params.marginfiAccount.authority;
|
|
81877
|
+
return compileOrderTx(params, payerKey, [placeIxs], "PLACE_ORDER" /* PLACE_ORDER */);
|
|
81878
|
+
}
|
|
81879
|
+
async function makeCloseOrderTx(params) {
|
|
81880
|
+
const closeIxs = await makeCloseOrderIx2(params);
|
|
81881
|
+
return compileOrderTx(
|
|
81882
|
+
params,
|
|
81883
|
+
params.marginfiAccount.authority,
|
|
81884
|
+
[closeIxs],
|
|
81885
|
+
"CLOSE_ORDER" /* CLOSE_ORDER */
|
|
81886
|
+
);
|
|
81887
|
+
}
|
|
81888
|
+
async function makeUpdateOrderTx(params) {
|
|
81889
|
+
const [order] = deriveOrderPda(params.program.programId, params.marginfiAccount.address, [
|
|
81890
|
+
params.collateralBank,
|
|
81891
|
+
params.debtBank
|
|
81892
|
+
]);
|
|
81893
|
+
const closeIxs = await makeCloseOrderIx2({ ...params, order, feeRecipient: params.feePayer });
|
|
81894
|
+
const placeIxs = await makePlaceOrderIx2(params);
|
|
81895
|
+
const payerKey = params.feePayer ?? params.marginfiAccount.authority;
|
|
81896
|
+
return compileOrderTx(params, payerKey, [closeIxs, placeIxs], "UPDATE_ORDER" /* UPDATE_ORDER */);
|
|
81897
|
+
}
|
|
81663
81898
|
|
|
81664
81899
|
// src/services/account/services/account-simulation.service.ts
|
|
81665
81900
|
async function simulateAccountHealthCacheWithFallback(params) {
|
|
@@ -84520,6 +84755,52 @@ var MarginfiAccountWrapper = class {
|
|
|
84520
84755
|
opts
|
|
84521
84756
|
});
|
|
84522
84757
|
}
|
|
84758
|
+
// ----------------------------------------------------------------------------
|
|
84759
|
+
// Orders (take-profit / stop-loss)
|
|
84760
|
+
// ----------------------------------------------------------------------------
|
|
84761
|
+
/**
|
|
84762
|
+
* Creates a transaction placing a take-profit / stop-loss order on a collateral/debt pair.
|
|
84763
|
+
*
|
|
84764
|
+
* @param collateralBank - Bank of the asset-side balance
|
|
84765
|
+
* @param debtBank - Bank of the liability-side balance
|
|
84766
|
+
* @param trigger - USD pair-equity thresholds and max slippage
|
|
84767
|
+
*/
|
|
84768
|
+
async makePlaceOrderTx(collateralBank, debtBank, trigger) {
|
|
84769
|
+
return this.account.makePlaceOrderTx({
|
|
84770
|
+
program: this.client.program,
|
|
84771
|
+
collateralBank,
|
|
84772
|
+
debtBank,
|
|
84773
|
+
trigger,
|
|
84774
|
+
luts: this.client.addressLookupTables,
|
|
84775
|
+
connection: this.client.program.provider.connection
|
|
84776
|
+
});
|
|
84777
|
+
}
|
|
84778
|
+
/**
|
|
84779
|
+
* Creates a transaction replacing the pair's existing order with new thresholds.
|
|
84780
|
+
*/
|
|
84781
|
+
async makeUpdateOrderTx(collateralBank, debtBank, trigger) {
|
|
84782
|
+
return this.account.makeUpdateOrderTx({
|
|
84783
|
+
program: this.client.program,
|
|
84784
|
+
collateralBank,
|
|
84785
|
+
debtBank,
|
|
84786
|
+
trigger,
|
|
84787
|
+
luts: this.client.addressLookupTables,
|
|
84788
|
+
connection: this.client.program.provider.connection
|
|
84789
|
+
});
|
|
84790
|
+
}
|
|
84791
|
+
/**
|
|
84792
|
+
* Creates a transaction closing an existing order.
|
|
84793
|
+
*
|
|
84794
|
+
* @param order - The order PDA (from `fetchOrdersForAccount` or `deriveOrderPda`)
|
|
84795
|
+
*/
|
|
84796
|
+
async makeCloseOrderTx(order) {
|
|
84797
|
+
return this.account.makeCloseOrderTx({
|
|
84798
|
+
program: this.client.program,
|
|
84799
|
+
order,
|
|
84800
|
+
luts: this.client.addressLookupTables,
|
|
84801
|
+
connection: this.client.program.provider.connection
|
|
84802
|
+
});
|
|
84803
|
+
}
|
|
84523
84804
|
/**
|
|
84524
84805
|
* Creates a repay transaction with auto-injected client data.
|
|
84525
84806
|
*
|
|
@@ -85204,6 +85485,6 @@ var EmodeSettings = class _EmodeSettings {
|
|
|
85204
85485
|
}
|
|
85205
85486
|
};
|
|
85206
85487
|
|
|
85207
|
-
export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_BRIDGE_MINTS, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EXECUTION_HEADROOM_SECONDS, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SECONDS_PER_YEAR, SINGLE_POOL_PROGRAM_ID, STAKED_ORACLE_DISABLED_FLAG, STAKED_ORACLE_USES_ONRAMP_FLAG, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWAP_ADAPTERS, SYSTEM_PROGRAM_ID, SYSVAR_CLOCK_ID, SYSVAR_RENT_ID, SYSVAR_STAKE_HISTORY_ID, SwapProvider, TRANSFER_ACCOUNT_AUTHORITY_FLAG, TransactionArenaKeyMap, TransactionBuildingError, TransactionBuildingErrorCode, TransactionConfigMap, TransactionType, U64_MAX2 as U64_MAX, USDC_DECIMALS, USDC_MINT, USDT_MINT, VENUE_AVAILABLE_LIQUIDITY_BUFFER, WSOL_MINT, ZERO_ORACLE_KEY, accountConflictsWithBridgeBank, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRateLimiterRawToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, buildCollateralLegIxs, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkJupiterFeeAccount, checkTitanFeeAccount, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, classifyAndValidate, compileFlashloanPrecheck, composeBridgedSwap, composeRemainingAccounts, computeAccountValue, computeAccrualProjectionSeconds, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankAvailableLiquidity, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankProjectedAvailableLiquidity, computeBankRateLimitRemaining, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeGroupRateLimitRemainingUsd, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxDepositForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeOracleMultiplier, computeOracleMultipliers, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computePtMultiplier, computeQuantity, computeQuantityUi, computeRateLimitWindowRemainingCapacity, computeRateLimiterRemainingCapacity, computeRemainingCapacity, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, computeVenueAvailableLiquidity, configureScopeOracleIx, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decodeMultiplierAccount, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deserializeInstruction, deserializeLut, deserializeSwapEngineRequest, deserializeSwapEngineResult, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRateLimiter, dtoToBankRateLimiterRaw, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchGammaLpVault, fetchGammaWithdrawReceipt, fetchMarginfiAccountActiveBalancesForBank, fetchMarginfiAccountAddresses, fetchMarginfiAccountAddressesHoldingBank, fetchMarginfiAccountData, fetchMultipleBanks, fetchMultiplierAccountStates, fetchMultiplierAccountStatesFromAPI, fetchNativeStakeAccounts, fetchOracleData, fetchOracleMultipliers, fetchOracleMultipliersFromAPI, fetchOracleMultipliersFromChain, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchScopeOracleData, fetchScopeOraclePricesFromAPI, fetchScopeOraclePricesFromChain, fetchStakeAccount, fetchStakePoolActiveStates, fetchStakePoolMev, findRandomAvailableAccountIndex, freezeBankConfigIx, generateDummyAccount, getAccountKeys, getActiveAccountFlags, getActiveBalances, getActiveEmodeEntryFlags, getActiveEmodeFlags, getActiveHealthCacheFlags, getAssetQuantity, getAssetShares, getAssetWeight, getBalance, getBalanceUsdValueWithPriceBias, getBankVaultAuthority, getBankVaultSeeds, getBirdeyeFallbackPricesByFeedId, getBirdeyePricesForMints, getConfig, getDriftCTokenMultiplier, getDriftMetadata, getDriftStatesDto, getEffectiveDepositLimit, getEmodePairs, getExactOutEstimate, getFallbackPricesByFeedId, getFallbackPricesForMints, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterReferralFeeAccount, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleMultiplierBankInput, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapAdapter, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isBorrowLimitActive, isBridgeConflictError, isDecomposableSwapError, isDepositIx, isDepositLimitActive, isFlashloan, isGroupRateLimiterEnabled, isStandardBorrowable, isStandardDepositable, isV0Tx, isWeightedPrice, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx3 as makeDepositIx, makeDepositTx, makeDriftDepositIx3 as makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx3 as makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx3 as makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx2 as makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx2 as makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx3 as makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx3 as makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePoolAddBankIx3 as makePoolAddBankIx, makePoolConfigureBankIx3 as makePoolConfigureBankIx, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx3 as makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, marginfiAccountToDto, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, patchDepositAmount, requireBank, requireTokenProgram, resolveAmount, resolveBridgeCandidateBanks, resolvePinnedSwapRoute, resolveTokenProgramForMint, resolveVaultTokenProgram, runSwapEngine, selectLutsForAccountAction, selectLutsForBanks, selectSwapBridges, serializeBankConfigOpt, serializeInstruction, serializeInterestRateConfig, serializeLut, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, serializeSwapEngineRequest, serializeSwapEngineResult, setOraclePriceIx, sharedBridgeLegContext, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, swapEngineProvidersFromOpts, swapEngineQuoteFieldsFromOpts, toBankConfigDto, toBankDto, toBankRateLimiterDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, tryBridgeCandidates, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
|
|
85488
|
+
export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_BRIDGE_MINTS, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EXECUTION_HEADROOM_SECONDS, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PDA_ORDER_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SECONDS_PER_YEAR, SINGLE_POOL_PROGRAM_ID, STAKED_ORACLE_DISABLED_FLAG, STAKED_ORACLE_USES_ONRAMP_FLAG, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWAP_ADAPTERS, SYSTEM_PROGRAM_ID, SYSVAR_CLOCK_ID, SYSVAR_RENT_ID, SYSVAR_STAKE_HISTORY_ID, SwapProvider, TRANSFER_ACCOUNT_AUTHORITY_FLAG, TransactionArenaKeyMap, TransactionBuildingError, TransactionBuildingErrorCode, TransactionConfigMap, TransactionType, U64_MAX2 as U64_MAX, USDC_DECIMALS, USDC_MINT, USDT_MINT, VENUE_AVAILABLE_LIQUIDITY_BUFFER, WSOL_MINT, ZERO_ORACLE_KEY, accountConflictsWithBridgeBank, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRateLimiterRawToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, buildCollateralLegIxs, buildOrderTrigger, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkJupiterFeeAccount, checkTitanFeeAccount, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, classifyAndValidate, compileFlashloanPrecheck, composeBridgedSwap, composeRemainingAccounts, computeAccountValue, computeAccrualProjectionSeconds, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankAvailableLiquidity, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankProjectedAvailableLiquidity, computeBankRateLimitRemaining, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeGroupRateLimitRemainingUsd, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxDepositForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeOracleMultiplier, computeOracleMultipliers, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computePtMultiplier, computeQuantity, computeQuantityUi, computeRateLimitWindowRemainingCapacity, computeRateLimiterRemainingCapacity, computeRemainingCapacity, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, computeVenueAvailableLiquidity, configureScopeOracleIx, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decodeMultiplierAccount, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deriveOrderPda, deserializeInstruction, deserializeLut, deserializeSwapEngineRequest, deserializeSwapEngineResult, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRateLimiter, dtoToBankRateLimiterRaw, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchGammaLpVault, fetchGammaWithdrawReceipt, fetchMarginfiAccountActiveBalancesForBank, fetchMarginfiAccountAddresses, fetchMarginfiAccountAddressesHoldingBank, fetchMarginfiAccountData, fetchMultipleBanks, fetchMultiplierAccountStates, fetchMultiplierAccountStatesFromAPI, fetchNativeStakeAccounts, fetchOracleData, fetchOracleMultipliers, fetchOracleMultipliersFromAPI, fetchOracleMultipliersFromChain, fetchOrder, fetchOrdersForAccount, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchScopeOracleData, fetchScopeOraclePricesFromAPI, fetchScopeOraclePricesFromChain, fetchStakeAccount, fetchStakePoolActiveStates, fetchStakePoolMev, findRandomAvailableAccountIndex, freezeBankConfigIx, generateDummyAccount, getAccountKeys, getActiveAccountFlags, getActiveBalances, getActiveEmodeEntryFlags, getActiveEmodeFlags, getActiveHealthCacheFlags, getAssetQuantity, getAssetShares, getAssetWeight, getBalance, getBalanceUsdValueWithPriceBias, getBankVaultAuthority, getBankVaultSeeds, getBirdeyeFallbackPricesByFeedId, getBirdeyePricesForMints, getConfig, getDriftCTokenMultiplier, getDriftMetadata, getDriftStatesDto, getEffectiveDepositLimit, getEmodePairs, getExactOutEstimate, getFallbackPricesByFeedId, getFallbackPricesForMints, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterReferralFeeAccount, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleMultiplierBankInput, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapAdapter, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isBorrowLimitActive, isBridgeConflictError, isDecomposableSwapError, isDepositIx, isDepositLimitActive, isFlashloan, isGroupRateLimiterEnabled, isStandardBorrowable, isStandardDepositable, isV0Tx, isWeightedPrice, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCloseOrderIx2 as makeCloseOrderIx, makeCloseOrderTx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx3 as makeDepositIx, makeDepositTx, makeDriftDepositIx3 as makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx3 as makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx3 as makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx2 as makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx2 as makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx3 as makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx3 as makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePlaceOrderIx2 as makePlaceOrderIx, makePlaceOrderTx, makePoolAddBankIx3 as makePoolAddBankIx, makePoolConfigureBankIx3 as makePoolConfigureBankIx, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx3 as makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateOrderTx, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, marginfiAccountToDto, maxSlippageU32ToPercent, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOrderRaw, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, patchDepositAmount, percentToMaxSlippageU32, requireBank, requireTokenProgram, resolveAmount, resolveBridgeCandidateBanks, resolveOrderBanks, resolvePinnedSwapRoute, resolveTokenProgramForMint, resolveVaultTokenProgram, runSwapEngine, selectLutsForAccountAction, selectLutsForBanks, selectSwapBridges, serializeBankConfigOpt, serializeInstruction, serializeInterestRateConfig, serializeLut, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, serializeSwapEngineRequest, serializeSwapEngineResult, setOraclePriceIx, sharedBridgeLegContext, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, swapEngineProvidersFromOpts, swapEngineQuoteFieldsFromOpts, toBankConfigDto, toBankDto, toBankRateLimiterDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, tryBridgeCandidates, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
|
|
85208
85489
|
//# sourceMappingURL=index.js.map
|
|
85209
85490
|
//# sourceMappingURL=index.js.map
|