@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.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 U32_MAX = 4294967295;
71331
+ var U32_MAX2 = 4294967295;
71298
71332
  function rateFromU32(rate) {
71299
- const ratio = new BigNumber3(rate).div(U32_MAX);
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(U32_MAX);
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