@0dotxyz/p0-ts-sdk 2.10.0-alpha.1 → 2.10.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.d.cts CHANGED
@@ -1,13 +1,13 @@
1
1
  import * as superstruct from 'superstruct';
2
2
  import { Infer } from 'superstruct';
3
- import { b as BankType, R as RiskTier, A as AssetTag, c as BankConfigFlag, O as OperationalState, d as OracleSetup, E as EmodeTag, e as EmodeEntryFlags, f as EmodeFlags, W as WrappedI80F48, I as InterestRateConfigRaw, g as OperationalStateRaw, h as OracleSetupRaw, i as RiskTierRaw, M as MarginfiProgram, j as BankConfigOpt, k as InterestRateConfig, l as BankConfigType, m as BankConfigRaw, a as BankConfigOptRaw, n as EmodeSettingsType, o as BankRateLimiterType, p as BankRaw, q as BankRateLimiterRaw, r as EmodeSettingsRaw, s as MarginfiIdlType, H as HealthCacheFlags, t as HealthCacheStatus, u as AccountFlags, v as MarginfiAccountType, w as OraclePrice, P as PriceWithConfidence, x as PriceBias, y as OraclePriceDto, z as BankIntegrationMetadataMap, C as BalanceType, D as HealthCacheType, F as EmodePair, G as ActiveEmodePair, J as ActionEmodeImpact, K as MarginRequirementType, L as Amount, N as EmodeImpactStatus, T as TypedAmount, Q as BankVaultType, S as RateLimitWindowType, U as BankIntegrationMetadataMapDto, V as BankIntegrationMetadataDto, X as BankIntegrationMetadata, Y as Bank, Z as Environment, _ as Project0Config, $ as MintData } from './types-SQxOiZGm.cjs';
4
- export { ax as AccountType, aC as AmountType, aw as BankAddress, a0 as BankConfig, B as BankConfigCompactRaw, az as BankMap, av as BankMetadata, a3 as BankMetadataRaw, ao as ComputeAssetUsdValueParams, am as ComputeLiabilityUsdValueParams, ak as ComputeUsdValueParams, a8 as EmodeConfigRaw, ab as EmodeEntry, ad as EmodeImpact, a1 as EmodeSettings, af as GetAssetWeightParams, a5 as InterestRateConfigCompactRaw, aa as InterestRateConfigOpt, a6 as InterestRateConfigOptRaw, ay as KaminoStates, as as MARGINFI_IDL, aB as MintDataMap, ac as OracleConfigOpt, a7 as OracleConfigOptRaw, aA as OraclePriceMap, ar as PriceWithConfidenceDto, at as Program, a2 as RateLimitWindowRaw, a9 as RatePoint, a4 as RatePointRaw, au as Wallet, ap as computeAssetUsdValue, an as computeLiabilityUsdValue, aj as computeLoopingParams, ai as computeMaxLeverage, aq as computeTvl, al as computeUsdValue, ag as getAssetWeight, ah as getLiabilityWeight, ae as isWeightedPrice, aD as resolveAmount } from './types-SQxOiZGm.cjs';
3
+ import { c as BankType, R as RiskTier, A as AssetTag, d as BankConfigFlag, e as OperationalState, f as OracleSetup, E as EmodeTag, g as EmodeEntryFlags, h as EmodeFlags, W as WrappedI80F48, I as InterestRateConfigRaw, i as OperationalStateRaw, j as OracleSetupRaw, k as RiskTierRaw, M as MarginfiProgram, l as InterestRateConfig, m as BankConfigType, n as BankConfigRaw, o as BankConfigOpt, p as BankConfigOptRaw, q as EmodeSettingsType, r as BankRateLimiterType, s as BankRaw, t as BankRateLimiterRaw, u as EmodeSettingsRaw, v as MarginfiIdlType, H as HealthCacheFlags, w as HealthCacheStatus, x as AccountFlags, y as MarginfiAccountType, z as OraclePrice, P as PriceWithConfidence, C as PriceBias, D as OraclePriceDto, F as BankIntegrationMetadataMap, G as OrderType, J as BalanceType, K as HealthCacheType, L as EmodePair, N as ActiveEmodePair, Q as ActionEmodeImpact, S as MarginRequirementType, a as BankConfigFastRaw, b as BankConfigGovRaw, T as Amount, U as EmodeImpactStatus, O as OrderTrigger, V as TypedAmount, X as BankVaultType, Y as RateLimitWindowType, Z as BankIntegrationMetadataMapDto, _ as BankIntegrationMetadataDto, $ as BankIntegrationMetadata, a0 as Bank, a1 as Environment, a2 as Project0Config, a3 as MintData } from './types-DQD0k0pr.cjs';
4
+ export { aC as AccountType, aH as AmountType, aB as BankAddress, a4 as BankConfig, B as BankConfigCompactRaw, aE as BankMap, aA as BankMetadata, a7 as BankMetadataRaw, as as ComputeAssetUsdValueParams, aq as ComputeLiabilityUsdValueParams, ao as ComputeUsdValueParams, ac as EmodeConfigRaw, af as EmodeEntry, ah as EmodeImpact, a5 as EmodeSettings, aj as GetAssetWeightParams, a9 as InterestRateConfigCompactRaw, ae as InterestRateConfigOpt, aa as InterestRateConfigOptRaw, aD as KaminoStates, ax as MARGINFI_IDL, aG as MintDataMap, ag as OracleConfigOpt, ab as OracleConfigOptRaw, aF as OraclePriceMap, av as OrderTriggerKind, aw as PriceWithConfidenceDto, ay as Program, a6 as RateLimitWindowRaw, ad as RatePoint, a8 as RatePointRaw, az as Wallet, at as computeAssetUsdValue, ar as computeLiabilityUsdValue, an as computeLoopingParams, am as computeMaxLeverage, au as computeTvl, ap as computeUsdValue, ak as getAssetWeight, al as getLiabilityWeight, ai as isWeightedPrice, aI as resolveAmount } from './types-DQD0k0pr.cjs';
5
5
  import * as _solana_web3_js from '@solana/web3.js';
6
6
  import { VersionedTransaction, Transaction, PublicKey, TransactionError, TransactionInstruction, Keypair, Signer, AddressLookupTableAccount, Blockhash, TransactionMessage, Connection, AccountInfo } from '@solana/web3.js';
7
7
  import { Idl, Instruction, Address } from '@coral-xyz/anchor';
8
8
  import BigNumber$1 from 'bignumber.js';
9
9
  import BN from 'bn.js';
10
- import { K as KaminoReserve, D as DriftSpotMarket, d as DriftRewards, J as JupLendingState, f as JupTokenReserve, i as KaminoReserveJSON, j as KaminoObligationJSON, k as KaminoFarmStateJSON, a as KaminoObligation, b as KaminoFarmState, l as DriftSpotMarketJSON, m as DriftUserJSON, n as DriftRewardsJSON, o as DriftUserStatsJSON, c as DriftUser, e as DriftUserStats, p as JupLendingStateJSON, q as JupTokenReserveJSON, r as JupLendingRewardsRateModelJSON, s as JupRateModelJSON, g as JupLendingRewardsRateModel, h as JupRateModel } from './dto-farm.types-BAA9xrey.cjs';
10
+ import { K as KaminoReserve, D as DriftSpotMarket, d as DriftRewards, J as JupLendingState, f as JupTokenReserve, i as KaminoReserveJSON, j as KaminoObligationJSON, k as KaminoFarmStateJSON, a as KaminoObligation, b as KaminoFarmState, l as DriftSpotMarketJSON, m as DriftUserJSON, n as DriftRewardsJSON, o as DriftUserStatsJSON, c as DriftUser, e as DriftUserStats, p as JupLendingStateJSON, q as JupTokenReserveJSON, r as JupLendingRewardsRateModelJSON, s as JupRateModelJSON, g as JupLendingRewardsRateModel, h as JupRateModel } from './dto-farm.types-6lrPBcZr.cjs';
11
11
  import { JupiterClientConfig, QuoteGetRequest, QuoteResponse } from './jupiter.cjs';
12
12
  import { E as ExponentVault, G as GammaLpVaultRaw, e as GammaWithdrawReceiptRaw } from './types-Pjhu5XMK.cjs';
13
13
  import { Buffer as Buffer$1 } from 'buffer';
@@ -82,6 +82,9 @@ declare enum TransactionType {
82
82
  UNSTAKE_LST = "UNSTAKE_LST",
83
83
  WITHDRAW_EMISSIONS = "WITHDRAW_EMISSIONS",
84
84
  LIQUIDATE_ACCOUNT = "LIQUIDATE_ACCOUNT",
85
+ PLACE_ORDER = "PLACE_ORDER",
86
+ CLOSE_ORDER = "CLOSE_ORDER",
87
+ UPDATE_ORDER = "UPDATE_ORDER",
85
88
  CREATE_PERM_BANK = "CREATE_PERM_BANK",
86
89
  CREATE_GROUP = "CREATE_GROUP",
87
90
  JUPITER_SWAP = "JUPITER_SWAP"
@@ -138,6 +141,18 @@ declare function selectLutsForAccountAction(luts: AddressLookupTableAccount[], t
138
141
  declare function isV0Tx(tx: Transaction | VersionedTransaction): tx is VersionedTransaction;
139
142
  declare function isFlashloan(tx: SolanaTransaction): boolean;
140
143
  declare function makeVersionedTransaction(blockhash: Blockhash, transaction: Transaction, payer: PublicKey, addressLookupTables?: AddressLookupTableAccount[]): Promise<VersionedTransaction>;
144
+ /**
145
+ * Whether the instructions compile into one v0 transaction within MAX_TX_SIZE (minus
146
+ * `sizeMargin`, if given) and `maxAccountLocks` account locks (if given).
147
+ */
148
+ declare function fitsInOneTransaction(ixs: TransactionInstruction[], opts: {
149
+ payerKey: PublicKey;
150
+ luts: AddressLookupTableAccount[];
151
+ /** Bytes reserved below MAX_TX_SIZE, e.g. for compute-budget ixs appended at send time. */
152
+ sizeMargin?: number;
153
+ /** Also cap the total account locks (e.g. MAX_ACCOUNT_LOCKS). */
154
+ maxAccountLocks?: number;
155
+ }): boolean;
141
156
  /**
142
157
  * Splits your instructions into as many VersionedTransactions as needed
143
158
  * so that none exceed MAX_TX_SIZE (minus `sizeMargin`, if given) nor
@@ -152,6 +167,15 @@ declare function splitInstructionsToFitTransactions(mandatoryIxs: TransactionIns
152
167
  /** Also cap the total account locks per transaction (e.g. MAX_ACCOUNT_LOCKS). */
153
168
  maxAccountLocks?: number;
154
169
  }): VersionedTransaction[];
170
+ /**
171
+ * Builds the transactions that run before an action: setup (ATA creation and the like) tagged
172
+ * `CREATE_ATA`, then venue refreshes tagged `CRANK`, each split to fit.
173
+ */
174
+ declare function makePreludeTxs(setupIxs: TransactionInstruction[], refreshIxs: TransactionInstruction[], opts: {
175
+ blockhash: string;
176
+ payerKey: PublicKey;
177
+ luts: AddressLookupTableAccount[];
178
+ }): ExtendedV0Transaction[];
155
179
  /**
156
180
  * Enhances a given transaction with additional metadata.
157
181
  *
@@ -302,6 +326,7 @@ interface BankTypeDto {
302
326
  premiumTag?: number;
303
327
  premiumActive?: boolean;
304
328
  premiumActivatedAt?: number;
329
+ kaminoEmergency?: boolean;
305
330
  rateLimiter?: BankRateLimiterDto;
306
331
  feesDestinationAccount?: string;
307
332
  lendingPositionCount?: string;
@@ -412,7 +437,15 @@ interface EmodeEntryRawDto {
412
437
  assetWeightMaint: WrappedI80F48;
413
438
  }
414
439
 
415
- declare function freezeBankConfigIx(program: MarginfiProgram, bankAddress: PublicKey, bankConfigOpt: BankConfigOpt): Promise<InstructionsWrapper>;
440
+ /**
441
+ * Freezes a bank's settings so they can no longer be changed. Signed by the group's governance
442
+ * admin.
443
+ *
444
+ * @param program - The marginfi program
445
+ * @param bankAddress - The bank to freeze
446
+ * @returns The `lending_pool_configure_bank_gov` instruction
447
+ */
448
+ declare function freezeBankConfigIx(program: MarginfiProgram, bankAddress: PublicKey): Promise<InstructionsWrapper>;
416
449
  type AddOracleToBanksIxArgs = {
417
450
  program: MarginfiProgram;
418
451
  bankAddress: PublicKey;
@@ -423,9 +456,9 @@ type AddOracleToBanksIxArgs = {
423
456
  oracleAccounts?: PublicKey[];
424
457
  setup: OracleSetup;
425
458
  groupAddress?: PublicKey;
426
- adminAddress?: PublicKey;
459
+ governanceAdminAddress?: PublicKey;
427
460
  };
428
- declare function addOracleToBanksIx({ program, bankAddress, feedId, oracleKey, oracleAccounts, setup, groupAddress, adminAddress, }: AddOracleToBanksIxArgs): Promise<InstructionsWrapper>;
461
+ declare function addOracleToBanksIx({ program, bankAddress, feedId, oracleKey, oracleAccounts, setup, groupAddress, governanceAdminAddress, }: AddOracleToBanksIxArgs): Promise<InstructionsWrapper>;
429
462
  type SetOraclePriceIxArgs = {
430
463
  program: MarginfiProgram;
431
464
  bankAddress: PublicKey;
@@ -434,19 +467,24 @@ type SetOraclePriceIxArgs = {
434
467
  /** Fixed venue account, [Pyth, Exponent vault], or [Exponent vault], depending on setup. */
435
468
  oracleAccounts?: PublicKey[];
436
469
  groupAddress?: PublicKey;
437
- adminAddress?: PublicKey;
470
+ governanceAdminAddress?: PublicKey;
438
471
  };
439
- /** Configure a flat fixed price or an Exponent PT price using the 0.1.11 instruction. */
440
- declare function setOraclePriceIx({ program, bankAddress, price, setup, oracleAccounts, groupAddress, adminAddress, }: SetOraclePriceIxArgs): Promise<InstructionsWrapper>;
472
+ /** Configure a flat fixed price or an Exponent PT price, signed by the group's governance admin. */
473
+ declare function setOraclePriceIx({ program, bankAddress, price, setup, oracleAccounts, groupAddress, governanceAdminAddress, }: SetOraclePriceIxArgs): Promise<InstructionsWrapper>;
441
474
  type ConfigureScopeOracleIxArgs = {
442
475
  program: MarginfiProgram;
443
- bankAddress: PublicKey;
476
+ bank: BankType;
444
477
  oracle: PublicKey;
445
478
  entryIndex: number;
446
479
  groupAddress?: PublicKey;
447
- adminAddress?: PublicKey;
480
+ governanceAdminAddress?: PublicKey;
448
481
  };
449
- declare function configureScopeOracleIx({ program, bankAddress, oracle, entryIndex, groupAddress, adminAddress, }: ConfigureScopeOracleIxArgs): Promise<InstructionsWrapper>;
482
+ /**
483
+ * Point a bank at an entry in a Scope OraclePrices account, signed by the group's governance admin.
484
+ * The program picks Scope, ScopeKamino or ScopeJuplend from the bank's asset tag; for Kamino and
485
+ * JupLend banks the reserve / lending account it validates is taken from `bank.config.oracleKeys[1]`.
486
+ */
487
+ declare function configureScopeOracleIx({ program, bank, oracle, entryIndex, groupAddress, governanceAdminAddress, }: ConfigureScopeOracleIxArgs): Promise<InstructionsWrapper>;
450
488
 
451
489
  declare function serializeBankConfigOpt(bankConfigOpt: BankConfigOpt): BankConfigOptRaw;
452
490
  declare function serializeInterestRateConfig(interestRateConfig: InterestRateConfig): InterestRateConfigRaw;
@@ -573,6 +611,7 @@ declare function getLiabilityShares(bank: BankType, liabilityQuantity: BigNumber
573
611
  interface BalanceRaw {
574
612
  active: boolean | number;
575
613
  bankPk: PublicKey;
614
+ tag: number;
576
615
  assetShares: WrappedI80F48;
577
616
  liabilityShares: WrappedI80F48;
578
617
  premiumRateSnapshot: number;
@@ -600,12 +639,31 @@ interface MarginfiAccountRaw {
600
639
  authority: PublicKey;
601
640
  lendingAccount: {
602
641
  balances: BalanceRaw[];
642
+ lastTagUsed: number;
603
643
  };
604
644
  accountFlags: BN;
605
645
  emissionsDestinationAccount: PublicKey;
606
646
  healthCache: HealthCacheRaw;
647
+ activeOrders: number;
607
648
  padding0?: BN[];
608
649
  }
650
+ type OrderTriggerTypeRaw = {
651
+ stopLoss: Record<string, never>;
652
+ } | {
653
+ takeProfit: Record<string, never>;
654
+ } | {
655
+ both: Record<string, never>;
656
+ };
657
+ interface OrderRaw {
658
+ marginfiAccount: PublicKey;
659
+ stopLoss: WrappedI80F48;
660
+ takeProfit: WrappedI80F48;
661
+ createdAt: BN;
662
+ maxSlippage: number;
663
+ tags: number[];
664
+ trigger: OrderTriggerTypeRaw;
665
+ bump: number;
666
+ }
609
667
  type MarginRequirementTypeRaw = {
610
668
  initial: Record<string, never>;
611
669
  } | {
@@ -617,6 +675,8 @@ type MarginRequirementTypeRaw = {
617
675
  interface BalanceTypeDto {
618
676
  active: boolean;
619
677
  bankPk: string;
678
+ /** Optional for backwards compatibility with DTOs serialized before order tags existed. */
679
+ tag?: number;
620
680
  assetShares: string;
621
681
  liabilityShares: string;
622
682
  premiumRate: string;
@@ -643,6 +703,8 @@ interface MarginfiAccountTypeDto {
643
703
  accountFlags: AccountFlags[];
644
704
  emissionsDestinationAccount: string;
645
705
  healthCache: HealthCacheTypeDto;
706
+ /** Optional so DTOs cached before the field existed still parse (defaults to 0). */
707
+ activeOrders?: number;
646
708
  }
647
709
 
648
710
  interface SimulationResultRaw {
@@ -1170,6 +1232,7 @@ declare function runSwapEngine(req: SwapEngineRequest): Promise<SwapEngineResult
1170
1232
 
1171
1233
  declare const EMPTY_HEALTH_CACHE: HealthCacheRaw;
1172
1234
  declare function decodeAccountRaw(encoded: Buffer, idl: MarginfiIdlType): MarginfiAccountRaw;
1235
+ declare function parseOrderRaw(orderAddress: PublicKey, orderRaw: OrderRaw): OrderType;
1173
1236
  declare function parseBalanceRaw(balanceRaw: BalanceRaw): BalanceType;
1174
1237
  declare function parseHealthCacheRaw(healthCacheRaw: HealthCacheRaw): HealthCacheType;
1175
1238
  declare function parseMarginfiAccountRaw(marginfiAccountPk: PublicKey, accountData: MarginfiAccountRaw): MarginfiAccountType;
@@ -1637,6 +1700,31 @@ declare function getBalanceUsdValueWithPriceBias(params: GetBalanceUsdValueWithP
1637
1700
  assets: BigNumber$1;
1638
1701
  liabilities: BigNumber$1;
1639
1702
  };
1703
+ interface OrderPairLegValueInput {
1704
+ balance: BalanceType;
1705
+ bank: BankType;
1706
+ oraclePrice: OraclePrice;
1707
+ assetShareValueMultiplier?: BigNumber$1;
1708
+ }
1709
+ /**
1710
+ * Values an order's collateral/debt pair the way the program's trigger does
1711
+ * (`get_tagged_account_health_components`): Equity requirement, so the time-weighted (EMA) price
1712
+ * at weight 1, with the collateral at the low end of the confidence band and the debt at the high
1713
+ * end. Isolated-tier collateral counts as 0. Take-profit fires at `netUsd >= takeProfit`, stop-loss
1714
+ * at `netUsd <= stopLoss`.
1715
+ *
1716
+ * @param params.collateral - The order's asset-side balance with its bank and oracle price
1717
+ * @param params.debt - The order's liability-side balance with its bank and oracle price
1718
+ * @returns USD values of both legs and the net value the trigger compares against
1719
+ */
1720
+ declare function computeOrderPairNetValue(params: {
1721
+ collateral: OrderPairLegValueInput;
1722
+ debt: OrderPairLegValueInput;
1723
+ }): {
1724
+ collateralUsd: BigNumber$1;
1725
+ debtUsd: BigNumber$1;
1726
+ netUsd: BigNumber$1;
1727
+ };
1640
1728
  /**
1641
1729
  * Computes the native token quantities for a balance.
1642
1730
  *
@@ -1748,6 +1836,19 @@ declare function getActiveBalances(balances: BalanceType[]): BalanceType[];
1748
1836
  * ```
1749
1837
  */
1750
1838
  declare function getBalance(bankAddress: PublicKey, balances: BalanceType[]): BalanceType;
1839
+ /**
1840
+ * Maps an order's balance tags to the collateral (asset) and debt (liability) banks of the
1841
+ * account that owns it, without throwing: a leg whose tagged balance was closed comes back null
1842
+ * (the order is orphaned and can no longer execute). The tag order in `order.tags` follows the
1843
+ * caller-supplied bank key order at placement time, so the side is inferred from the balances.
1844
+ *
1845
+ * @param marginfiAccount - The parsed marginfi account that owns the order
1846
+ * @param order - The order whose bank pair to resolve
1847
+ */
1848
+ declare function resolveOrderLegs(marginfiAccount: MarginfiAccountType, order: Pick<OrderType, "tags">): {
1849
+ collateralBank: PublicKey | null;
1850
+ debtBank: PublicKey | null;
1851
+ };
1751
1852
 
1752
1853
  /**
1753
1854
  * Account-Level Metrics
@@ -2016,10 +2117,20 @@ type MarginfiGroupTypeDto = {
2016
2117
  */
2017
2118
  declare function isGroupRateLimiterEnabled(rateLimiter?: BankRateLimiterType): boolean;
2018
2119
 
2019
- declare function makePoolConfigureBankIx(program: MarginfiProgram, bank: PublicKey, args: BankConfigOptRaw): Promise<InstructionsWrapper>;
2120
+ declare function makePoolConfigureBankIx(program: MarginfiProgram, bank: PublicKey, args: BankConfigFastRaw): Promise<InstructionsWrapper>;
2121
+ /**
2122
+ * Configures a bank's governance settings (weights, risk tier, asset tag, oracle limits,
2123
+ * tokenless repayments, freezing, returning to operational). Signed by the group's governance admin.
2124
+ *
2125
+ * @param program - The marginfi program
2126
+ * @param bank - The bank to configure
2127
+ * @param args - The settings to change; `null` leaves a setting unchanged
2128
+ * @returns The `lending_pool_configure_bank_gov` instruction
2129
+ */
2130
+ declare function makePoolConfigureBankGovIx(program: MarginfiProgram, bank: PublicKey, args: BankConfigGovRaw): Promise<InstructionsWrapper>;
2020
2131
  declare function makeAddPermissionlessStakedBankIx(program: MarginfiProgram, group: PublicKey, voteAccountAddress: PublicKey, feePayer: PublicKey, pythOracle: PublicKey): Promise<InstructionsWrapper>;
2021
2132
  declare function makePoolAddBankIx(program: MarginfiProgram, group: PublicKey, bank: PublicKey, feePayer: PublicKey, bankMint: PublicKey, bankConfig: BankConfigOpt, tokenProgram?: PublicKey, overrideOpt?: {
2022
- admin?: PublicKey;
2133
+ governanceAdmin?: PublicKey;
2023
2134
  globalFeeWallet?: PublicKey;
2024
2135
  }): Promise<InstructionsWrapper>;
2025
2136
 
@@ -2357,6 +2468,25 @@ declare const fetchMarginfiAccountData: (program: MarginfiProgram, marginfiAccou
2357
2468
  marginfiAccount: MarginfiAccountType;
2358
2469
  error?: HealthCacheSimulationError;
2359
2470
  }>;
2471
+ /**
2472
+ * Fetches all open orders for a marginfi account.
2473
+ *
2474
+ * @param program - The marginfi Anchor program (connection is taken from its provider)
2475
+ * @param marginfiAccount - The marginfi account public key
2476
+ */
2477
+ declare const fetchOrdersForAccount: (program: MarginfiProgram, marginfiAccount: PublicKey) => Promise<OrderType[]>;
2478
+ /**
2479
+ * Fetches the order fees from the program's global `FeeState`.
2480
+ *
2481
+ * - `placementFeeLamports`: flat SOL fee charged by `place_order` (and again on every update).
2482
+ * - `executionMaxFee`: the share of the pair's net value a keeper may keep on a take-profit.
2483
+ *
2484
+ * @param program - The marginfi Anchor program
2485
+ */
2486
+ declare const fetchOrderFees: (program: MarginfiProgram) => Promise<{
2487
+ placementFeeLamports: number;
2488
+ executionMaxFee: BigNumber$1;
2489
+ }>;
2360
2490
  /**
2361
2491
  * Generates a random available account index that doesn't collide with existing accounts.
2362
2492
  * Account indices are 0-255 (u8 range).
@@ -2450,6 +2580,27 @@ interface ComputeMaxBorrowForBankParams {
2450
2580
  * ```
2451
2581
  */
2452
2582
  declare function computeMaxBorrowForBank(params: ComputeMaxBorrowForBankParams): BigNumber$1;
2583
+ /**
2584
+ * The binding window of a bank's own outflow (withdraws + borrows) rate limiter.
2585
+ */
2586
+ interface BankOutflowRateLimit {
2587
+ window: "hourly" | "daily";
2588
+ /** Remaining outflow in underlying UI units, clamped at 0 */
2589
+ remaining: BigNumber$1;
2590
+ }
2591
+ /**
2592
+ * The tighter of a bank's hourly and daily outflow windows, in the underlying UI units that
2593
+ * {@link computeMaxWithdrawForBank} and {@link computeMaxBorrowForBank} clamp to.
2594
+ *
2595
+ * Every venue's withdraw records the underlying token amount on the bank limiter (Kamino and
2596
+ * Solend the redeemed liquidity, Drift `token_amount`, JupLend `native_outflow`), except STAKED
2597
+ * banks, which record the LST amount — multiplied here by the LST→SOL rate to reach the SDK's
2598
+ * SOL-equivalent space.
2599
+ *
2600
+ * @returns The window with the least remaining capacity, or `null` when the bank has no rate
2601
+ * limiter enabled
2602
+ */
2603
+ declare function computeBankOutflowRateLimit(bank: BankType, assetShareValueMultiplier?: BigNumber$1): BankOutflowRateLimit | null;
2453
2604
  /**
2454
2605
  * Configuration for computing maximum withdraw amount for a bank
2455
2606
  */
@@ -2683,6 +2834,25 @@ declare function isWholePosition(position: {
2683
2834
  amount: number;
2684
2835
  isLending: boolean;
2685
2836
  }, amount: number, mintDecimals: number): boolean;
2837
+ /**
2838
+ * Whether a position in `bank` counts toward the program's per-account limit on integration
2839
+ * (Kamino, Drift, Solend, JupLend) and staked positions.
2840
+ *
2841
+ * @param bank - The bank to check
2842
+ * @returns True for integration and staked banks
2843
+ */
2844
+ declare function isCostlyBank(bank: BankType): boolean;
2845
+ /**
2846
+ * Whether depositing into `bank` opens a position past the program's limit of
2847
+ * {@link MAX_COSTLY_POSITIONS} integration and staked positions. Topping up an existing position
2848
+ * never does.
2849
+ *
2850
+ * @param balances - The account's balances before the deposit
2851
+ * @param bankMap - Map of bank addresses to bank data
2852
+ * @param bank - The bank deposited into
2853
+ * @returns True when the program would reject the deposit (6073)
2854
+ */
2855
+ declare function exceedsCostlyPositionLimit(balances: BalanceType[], bankMap: Map<string, BankType>, bank: BankType): boolean;
2686
2856
 
2687
2857
  /**
2688
2858
  * Synchronous flashloan TX size estimator.
@@ -2995,6 +3165,7 @@ declare function makeCloseMarginfiAccountTx({ connection, program, marginfiAccou
2995
3165
  * wallet adapter; a `Keypair` is a separate fee payer that signs directly.
2996
3166
  * Defaults to the account's current authority.
2997
3167
  * @returns Versioned transaction to transfer the account
3168
+ * @throws TransactionBuildingError (ACCOUNT_DISABLED) when the account is disabled, e.g. already transferred
2998
3169
  */
2999
3170
  declare function makeAccountTransferToNewAccountTx({ connection, program, marginfiAccount, newMarginfiAccount, newAuthority, feePayer, }: MakeAccountTransferToNewAccountTxParams): Promise<ExtendedV0Transaction>;
3000
3171
  /**
@@ -3055,6 +3226,9 @@ declare function makePulseHealthIx(program: MarginfiProgram, marginfiAccount: Ma
3055
3226
  * rewrites the account's variable borrow premium rates from its collateral after the action.
3056
3227
  * See {@link needsPremiumRefresh} for when it's needed.
3057
3228
  *
3229
+ * Best-effort: returns no instructions when a bank to refresh has no venue state in
3230
+ * `bankMetadataMap`, since `pulse_health` skips the premium write when a leg can't be priced.
3231
+ *
3058
3232
  * @param program - The Marginfi program instance
3059
3233
  * @param state - The account (before the action), bank map and venue state
3060
3234
  * @param mandatoryBanks - Banks the action opens (the deposited bank)
@@ -3062,6 +3236,31 @@ declare function makePulseHealthIx(program: MarginfiProgram, marginfiAccount: Ma
3062
3236
  * @returns Instructions to append after the action
3063
3237
  */
3064
3238
  declare function makePremiumRefreshIxs(program: MarginfiProgram, { marginfiAccount, bankMap, bankMetadataMap }: PremiumRefreshParams, mandatoryBanks: PublicKey[], excludedBanks: PublicKey[]): Promise<TransactionInstruction[]>;
3239
+ /**
3240
+ * Appends the premium refresh ({@link makePremiumRefreshIxs}) to a deposit or repay that lands in
3241
+ * one transaction, and picks the lookup tables to compile it with. The refresh is left out when
3242
+ * `opts.skipPremiumRefresh` is set, no premium-bearing debt remains, venue state is missing, or
3243
+ * it would push the transaction past MAX_TX_SIZE / MAX_ACCOUNT_LOCKS.
3244
+ *
3245
+ * @param params - The builder's params: account (before the action), bank map, venue state,
3246
+ * acted-on bank, authority and lookup tables
3247
+ * @param actionIxs - The action's instructions
3248
+ * @param mandatoryBanks - Banks the action opens (the deposited bank)
3249
+ * @param excludedBanks - Banks the action closes (fully repaid banks)
3250
+ * @returns The transaction's instructions and lookup tables
3251
+ */
3252
+ declare function appendPremiumRefresh(params: PremiumRefreshParams & {
3253
+ program: MarginfiProgram;
3254
+ bank: BankType;
3255
+ authority: PublicKey;
3256
+ luts: AddressLookupTableAccount[];
3257
+ opts?: {
3258
+ skipPremiumRefresh?: boolean;
3259
+ };
3260
+ }, actionIxs: TransactionInstruction[], mandatoryBanks: PublicKey[], excludedBanks: PublicKey[]): Promise<{
3261
+ instructions: TransactionInstruction[];
3262
+ luts: AddressLookupTableAccount[];
3263
+ }>;
3065
3264
  declare function generateDummyAccount(group: PublicKey, authority: PublicKey, accountKey: PublicKey): MarginfiAccountType;
3066
3265
 
3067
3266
  declare function makeDriftWithdrawIx({ program, bank, bankMap, tokenProgram, amount, marginfiAccount, driftSpotMarket, userRewards, authority, withdrawAll, isSync, opts, }: MakeDriftWithdrawIxParams): Promise<InstructionsWrapper>;
@@ -3496,6 +3695,8 @@ declare function makeRollPtTx(params: MakeRollPtTxParams): Promise<{
3496
3695
  transactions: ExtendedV0Transaction[];
3497
3696
  actionTxIndex: number;
3498
3697
  quoteResponse: SwapQuoteResult | undefined;
3698
+ /** true → send as ONE atomic Jito bundle (integration refreshes go stale within a slot) */
3699
+ mustBeAtomicBundle: boolean;
3499
3700
  }>;
3500
3701
 
3501
3702
  /** A single built swap leg (its txs + the swap-engine quote). */
@@ -3654,11 +3855,55 @@ declare function makeTransferPositionsTx(params: MakeTransferPositionsTxParams):
3654
3855
  declare function makeBulkWithdrawTx(params: MakeBulkWithdrawTxParams): Promise<BulkLendTxsResult>;
3655
3856
  /**
3656
3857
  * Repay the FULL debt of every given bank from the wallet, packing as many
3657
- * repays per transaction as fit. Repays carry no health pack and need no
3658
- * oracle cranks, so most batches are a single transaction.
3858
+ * repays per transaction as fit, followed by the premium refresh while
3859
+ * premium-bearing debt remains. Most batches are a single transaction; one
3860
+ * that splits with a premium refresh in it must land as one bundle.
3659
3861
  */
3660
3862
  declare function makeBulkRepayTx(params: MakeBulkRepayTxParams): Promise<BulkLendTxsResult>;
3661
3863
 
3864
+ /**
3865
+ * Converts USD-equity thresholds into the on-chain `OrderTrigger` argument.
3866
+ *
3867
+ * @throws {TransactionBuildingError} `ORDER_INVALID_TRIGGER` if neither threshold is set, a
3868
+ * threshold is not above 0, or take-profit ≤ stop-loss; `ORDER_INVALID_SLIPPAGE` via
3869
+ * {@link percentToMaxSlippageU32}
3870
+ */
3871
+ declare function buildOrderTrigger(params: OrderTriggerParams): OrderTrigger;
3872
+ /**
3873
+ * Creates the instruction that places a take-profit / stop-loss order on a collateral/debt pair.
3874
+ * The order PDA is derived from the pair, so placing a second order on the same pair fails;
3875
+ * use {@link makeUpdateOrderTx} to change an existing order.
3876
+ *
3877
+ * The account must already hold (or, when bundled after a borrow/loop, will hold) an asset
3878
+ * balance in `collateralBank` and a liability balance in `debtBank`. The flat anti-spam fee from
3879
+ * the program's fee state is charged to `feePayer`.
3880
+ */
3881
+ declare function makePlaceOrderIx(params: MakePlaceOrderIxParams): Promise<InstructionsWrapper>;
3882
+ /**
3883
+ * Creates the instruction that closes an order and returns its rent to `feeRecipient`.
3884
+ */
3885
+ declare function makeCloseOrderIx(params: MakeCloseOrderIxParams): Promise<InstructionsWrapper>;
3886
+ /**
3887
+ * Builds a transaction that places a new order on a collateral/debt pair.
3888
+ *
3889
+ * @see {@link makePlaceOrderIx}
3890
+ */
3891
+ declare function makePlaceOrderTx(params: MakePlaceOrderTxParams): Promise<ExtendedV0Transaction>;
3892
+ /**
3893
+ * Builds a transaction that closes an existing order.
3894
+ *
3895
+ * @see {@link makeCloseOrderIx}
3896
+ */
3897
+ declare function makeCloseOrderTx(params: MakeCloseOrderTxParams): Promise<ExtendedV0Transaction>;
3898
+ /**
3899
+ * Builds a transaction that replaces the pair's existing order with new thresholds.
3900
+ *
3901
+ * There is no update instruction on-chain: the existing order (same PDA) is closed and re-placed
3902
+ * in one transaction. Balance tags are preserved across the close, so other orders sharing a
3903
+ * balance are unaffected. The flat anti-spam fee is charged again.
3904
+ */
3905
+ declare function makeUpdateOrderTx(params: MakePlaceOrderTxParams): Promise<ExtendedV0Transaction>;
3906
+
3662
3907
  /**
3663
3908
  * Creates instructions to refresh Kamino lending protocol reserves and obligations.
3664
3909
  *
@@ -3671,6 +3916,7 @@ declare function makeBulkRepayTx(params: MakeBulkRepayTxParams): Promise<BulkLen
3671
3916
  * @param newBanksPk - Public keys of new banks being added to the account
3672
3917
  * @param bankMetadataMap - Map containing Bank-specific metadata (reserve states, lending markets)
3673
3918
  * @returns InstructionsWrapper containing refresh reserve and obligation instructions
3919
+ * @throws TransactionBuildingError (KAMINO_RESERVE_NOT_FOUND) when a Kamino bank has no reserve state in `bankMetadataMap`
3674
3920
  */
3675
3921
  declare function makeRefreshKaminoBanksIxs(marginfiAccount: MarginfiAccountType, bankMap: Map<string, BankType>, newBanksPk: PublicKey[], bankMetadataMap: BankIntegrationMetadataMap): InstructionsWrapper;
3676
3922
 
@@ -3687,6 +3933,7 @@ declare function makeRefreshKaminoBanksIxs(marginfiAccount: MarginfiAccountType,
3687
3933
  * @param banksToExclude - Public keys of banks to exclude from the update
3688
3934
  * @param bankMetadataMap - Map containing Bank-specific metadata (Drift spot market states)
3689
3935
  * @returns InstructionsWrapper containing Drift spot market update instructions
3936
+ * @throws TransactionBuildingError (DRIFT_STATE_NOT_FOUND) when a Drift bank has no spot market state in `bankMetadataMap`
3690
3937
  */
3691
3938
  declare function makeUpdateDriftMarketIxs(marginfiAccount: MarginfiAccountType, bankMap: Map<string, BankType>, banksToExclude: PublicKey[], bankMetadataMap: BankIntegrationMetadataMap): InstructionsWrapper;
3692
3939
 
@@ -3706,6 +3953,7 @@ declare function makeUpdateDriftMarketIxs(marginfiAccount: MarginfiAccountType,
3706
3953
  * @param banksToExclude - Public keys of banks to exclude from the update
3707
3954
  * @param bankMetadataMap - Map containing Bank-specific metadata (JupLend lending states)
3708
3955
  * @returns InstructionsWrapper containing update_rate instructions
3956
+ * @throws TransactionBuildingError (JUPLEND_STATE_NOT_FOUND) when a JupLend bank has no lending state in `bankMetadataMap`
3709
3957
  */
3710
3958
  declare function makeUpdateJupLendRateIxs(marginfiAccount: MarginfiAccountType, bankMap: Map<string, BankType>, banksToExclude: PublicKey[], bankMetadataMap: BankIntegrationMetadataMap): InstructionsWrapper;
3711
3959
 
@@ -3723,6 +3971,7 @@ declare function makeUpdateJupLendRateIxs(marginfiAccount: MarginfiAccountType,
3723
3971
  * @param bankMetadataMap - Map containing Bank-specific metadata (integration states)
3724
3972
  * @param kaminoNewBanksPk - Banks to union into the Kamino refresh set, defaults to `banksToExclude`
3725
3973
  * @returns InstructionsWrapper with instructions ordered kamino -> drift -> juplend
3974
+ * @throws TransactionBuildingError (KAMINO_RESERVE_NOT_FOUND, DRIFT_STATE_NOT_FOUND, JUPLEND_STATE_NOT_FOUND) when a bank to refresh has no venue state in `bankMetadataMap`
3726
3975
  */
3727
3976
  declare function makeRefreshIntegrationBanksIxs(marginfiAccount: MarginfiAccountType, bankMap: Map<string, BankType>, banksToExclude: PublicKey[], bankMetadataMap: BankIntegrationMetadataMap, kaminoNewBanksPk?: PublicKey[]): InstructionsWrapper;
3728
3977
 
@@ -4014,7 +4263,8 @@ interface MakeKaminoDepositIxParams {
4014
4263
  * Account state the deposit and repay transaction builders use to add `pulse_health` after the
4015
4264
  * action while the account has premium-bearing debt, so the program rewrites its variable borrow
4016
4265
  * premium rates as the transaction lands (deposits and repays don't refresh them on their own).
4017
- * Opt out with `opts.skipPremiumRefresh`.
4266
+ * Opt out with `opts.skipPremiumRefresh`. The single-transaction builders leave it out when it
4267
+ * doesn't fit next to the action.
4018
4268
  */
4019
4269
  interface PremiumRefreshParams {
4020
4270
  /** The account before the action */
@@ -4134,14 +4384,14 @@ interface MakeWithdrawIxParams {
4134
4384
  interface MakeWithdrawTxParams extends MakeWithdrawIxParams {
4135
4385
  connection: Connection;
4136
4386
  oraclePrices: Map<string, OraclePrice>;
4137
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4387
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4138
4388
  luts: AddressLookupTableAccount[];
4139
4389
  }
4140
4390
  interface MakeKaminoWithdrawTxParams extends Omit<MakeKaminoWithdrawIxParams, "cTokenAmount"> {
4141
4391
  amount: Amount | TypedAmount;
4142
4392
  connection: Connection;
4143
4393
  oraclePrices: Map<string, OraclePrice>;
4144
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4394
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4145
4395
  luts: AddressLookupTableAccount[];
4146
4396
  }
4147
4397
  interface MakeBorrowIxOpts {
@@ -4173,20 +4423,20 @@ interface MakeBorrowIxParams {
4173
4423
  interface MakeBorrowTxParams extends MakeBorrowIxParams {
4174
4424
  connection: Connection;
4175
4425
  oraclePrices: Map<string, OraclePrice>;
4176
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4426
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4177
4427
  bankMetadataMap: BankIntegrationMetadataMap;
4178
4428
  luts: AddressLookupTableAccount[];
4179
4429
  }
4180
4430
  interface MakeJuplendWithdrawTxParams extends MakeJuplendWithdrawIxParams {
4181
4431
  connection: Connection;
4182
4432
  oraclePrices: Map<string, OraclePrice>;
4183
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4433
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4184
4434
  luts: AddressLookupTableAccount[];
4185
4435
  }
4186
4436
  interface MakeDriftWithdrawTxParams extends MakeDriftWithdrawIxParams {
4187
4437
  connection: Connection;
4188
4438
  oraclePrices: Map<string, OraclePrice>;
4189
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4439
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4190
4440
  luts: AddressLookupTableAccount[];
4191
4441
  }
4192
4442
  interface MakeCloseAccountIxParams {
@@ -4247,7 +4497,7 @@ interface MakeTransferPositionsTxParams {
4247
4497
  bankMap: Map<string, BankType>;
4248
4498
  oraclePrices: Map<string, OraclePrice>;
4249
4499
  bankMetadataMap: BankIntegrationMetadataMap;
4250
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4500
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4251
4501
  /** Token program per transferred bank (base58 bank address → token program id). */
4252
4502
  tokenProgramsByBank: Map<string, PublicKey>;
4253
4503
  addressLookupTableAccounts?: AddressLookupTableAccount[];
@@ -4281,7 +4531,7 @@ interface MakeBulkWithdrawTxParams {
4281
4531
  bankMap: Map<string, BankType>;
4282
4532
  oraclePrices: Map<string, OraclePrice>;
4283
4533
  bankMetadataMap: BankIntegrationMetadataMap;
4284
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4534
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4285
4535
  /** Token program per withdrawn bank (base58 bank address → token program id). */
4286
4536
  tokenProgramsByBank: Map<string, PublicKey>;
4287
4537
  luts: AddressLookupTableAccount[];
@@ -4324,7 +4574,7 @@ interface MakeLoopTxParams {
4324
4574
  bankMap: Map<string, BankType>;
4325
4575
  oraclePrices: Map<string, OraclePrice>;
4326
4576
  bankMetadataMap: BankIntegrationMetadataMap;
4327
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4577
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4328
4578
  depositOpts: {
4329
4579
  inputDepositAmount: number;
4330
4580
  depositBank: BankType;
@@ -4385,7 +4635,7 @@ interface MakeRepayWithCollatTxParams {
4385
4635
  connection: Connection;
4386
4636
  bankMap: Map<string, BankType>;
4387
4637
  oraclePrices: Map<string, OraclePrice>;
4388
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4638
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4389
4639
  bankMetadataMap: BankIntegrationMetadataMap;
4390
4640
  withdrawOpts: {
4391
4641
  totalPositionAmount: number;
@@ -4416,7 +4666,7 @@ interface MakeSwapCollateralTxParams {
4416
4666
  bankMap: Map<string, BankType>;
4417
4667
  oraclePrices: Map<string, OraclePrice>;
4418
4668
  bankMetadataMap: BankIntegrationMetadataMap;
4419
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4669
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4420
4670
  withdrawOpts: {
4421
4671
  totalPositionAmount: number;
4422
4672
  withdrawAmount?: number;
@@ -4457,7 +4707,7 @@ interface MakeRollPtTxParams {
4457
4707
  bankMap: Map<string, BankType>;
4458
4708
  oraclePrices: Map<string, OraclePrice>;
4459
4709
  bankMetadataMap: BankIntegrationMetadataMap;
4460
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4710
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4461
4711
  withdrawOpts: {
4462
4712
  totalPositionAmount: number;
4463
4713
  withdrawAmount?: number;
@@ -4541,7 +4791,7 @@ interface MakeSwapDebtTxParams {
4541
4791
  bankMap: Map<string, BankType>;
4542
4792
  oraclePrices: Map<string, OraclePrice>;
4543
4793
  bankMetadataMap: BankIntegrationMetadataMap;
4544
- assetShareValueMultiplierByBank: Map<string, BigNumber>;
4794
+ assetShareValueMultiplierByBank: Map<string, BigNumber$1>;
4545
4795
  repayOpts: {
4546
4796
  totalPositionAmount: number;
4547
4797
  repayAmount?: number;
@@ -4572,6 +4822,50 @@ interface MakeSetupIxParams {
4572
4822
  tokenProgram: PublicKey;
4573
4823
  }[];
4574
4824
  }
4825
+ /**
4826
+ * Trigger thresholds for a take-profit / stop-loss order. Thresholds are the pair's net equity in
4827
+ * USD (collateral value − debt value of the two tagged balances), not a token price. At least one
4828
+ * of `stopLossUsd` / `takeProfitUsd` must be set; both makes a `Both` order.
4829
+ */
4830
+ interface OrderTriggerParams {
4831
+ /** Pair net equity (USD) at or below which the stop-loss fires. */
4832
+ stopLossUsd?: BigNumber$1;
4833
+ /** Pair net equity (USD) at or above which the take-profit fires. */
4834
+ takeProfitUsd?: BigNumber$1;
4835
+ /** Max slippage the keeper may incur when executing, in percent (protocol cap: 10). */
4836
+ maxSlippagePercent: number;
4837
+ }
4838
+ interface MakePlaceOrderIxParams {
4839
+ program: MarginfiProgram;
4840
+ marginfiAccount: MarginfiAccountType;
4841
+ /** Bank of the asset-side (collateral) balance. */
4842
+ collateralBank: PublicKey;
4843
+ /** Bank of the liability-side (debt) balance. */
4844
+ debtBank: PublicKey;
4845
+ trigger: OrderTriggerParams;
4846
+ /** Pays the order rent and the flat anti-spam fee. Defaults to the account authority. */
4847
+ feePayer?: PublicKey;
4848
+ /** Global fee wallet from the program's `FeeState`; fetched from chain when omitted. */
4849
+ globalFeeWallet?: PublicKey;
4850
+ }
4851
+ interface MakePlaceOrderTxParams extends MakePlaceOrderIxParams {
4852
+ connection: Connection;
4853
+ luts: AddressLookupTableAccount[];
4854
+ blockhash?: string;
4855
+ }
4856
+ interface MakeCloseOrderIxParams {
4857
+ program: MarginfiProgram;
4858
+ marginfiAccount: MarginfiAccountType;
4859
+ /** The order PDA to close (see `deriveOrderPda`). */
4860
+ order: PublicKey;
4861
+ /** Receives the order's rent. Defaults to the account authority. */
4862
+ feeRecipient?: PublicKey;
4863
+ }
4864
+ interface MakeCloseOrderTxParams extends MakeCloseOrderIxParams {
4865
+ connection: Connection;
4866
+ luts: AddressLookupTableAccount[];
4867
+ blockhash?: string;
4868
+ }
4575
4869
 
4576
4870
  /**
4577
4871
  * Vault PDA Utilities
@@ -5287,6 +5581,17 @@ declare function getKaminoMetadata(options: FetchKaminoMetadataOptions): Promise
5287
5581
  declare function getKaminoStatesDto(connection: Connection, kaminoBanks: KaminoBankInput[]): Promise<KaminoStateJsonByBank>;
5288
5582
 
5289
5583
  declare function getKaminoCTokenMultiplier(reserve: KaminoReserve): BigNumber$1;
5584
+ /**
5585
+ * Joins a Kamino bank with its reserve's emergency mode. Decoding a bank or converting its DTO
5586
+ * only sees the market's emergency (bank flags bit 14), so call this wherever a Kamino bank meets
5587
+ * its reserve; otherwise initial health, max borrow and max withdraw overstate borrowing power
5588
+ * while the reserve is in emergency.
5589
+ *
5590
+ * @param bank - The Kamino bank
5591
+ * @param reserve - The bank's Kamino reserve
5592
+ * @returns The bank, with `kaminoEmergency` also set when the reserve is in emergency mode
5593
+ */
5594
+ declare function withKaminoReserveEmergency(bank: BankType, reserve: KaminoReserve): BankType;
5290
5595
 
5291
5596
  type DriftStateJsonByBank = Record<string, {
5292
5597
  driftSpotMarketState: DriftSpotMarketJSON;
@@ -5457,7 +5762,11 @@ declare enum TransactionBuildingErrorCode {
5457
5762
  TRANSFER_POSITIONS_INVALID_SELECTION = "TRANSFER_POSITIONS_INVALID_SELECTION",
5458
5763
  TRANSFER_POSITIONS_UNSUPPORTED_BANK = "TRANSFER_POSITIONS_UNSUPPORTED_BANK",
5459
5764
  TRANSFER_POSITIONS_UNSPLITTABLE = "TRANSFER_POSITIONS_UNSPLITTABLE",
5460
- BRIDGE_CONFLICT = "BRIDGE_CONFLICT"
5765
+ BRIDGE_CONFLICT = "BRIDGE_CONFLICT",
5766
+ ORDER_INVALID_TRIGGER = "ORDER_INVALID_TRIGGER",
5767
+ ORDER_INVALID_SLIPPAGE = "ORDER_INVALID_SLIPPAGE",
5768
+ COSTLY_POSITION_LIMIT_EXCEEDED = "COSTLY_POSITION_LIMIT_EXCEEDED",
5769
+ ACCOUNT_DISABLED = "ACCOUNT_DISABLED"
5461
5770
  }
5462
5771
  /**
5463
5772
  * Typed details for each error code
@@ -5537,6 +5846,24 @@ interface TransactionBuildingErrorDetails {
5537
5846
  /** Whether the bridge token would have been held as collateral ("deposit") or debt ("borrow"). */
5538
5847
  bridgeTokenSide: "deposit" | "borrow";
5539
5848
  };
5849
+ [TransactionBuildingErrorCode.ORDER_INVALID_TRIGGER]: {
5850
+ reason: string;
5851
+ takeProfitUsd?: string;
5852
+ stopLossUsd?: string;
5853
+ };
5854
+ [TransactionBuildingErrorCode.ORDER_INVALID_SLIPPAGE]: {
5855
+ maxSlippagePercent: number;
5856
+ maxAllowedPercent: number;
5857
+ };
5858
+ [TransactionBuildingErrorCode.COSTLY_POSITION_LIMIT_EXCEEDED]: {
5859
+ /** Integration/staked bank the action would open a position in */
5860
+ bankAddress: string;
5861
+ /** Max integration + staked positions per account */
5862
+ limit: number;
5863
+ };
5864
+ [TransactionBuildingErrorCode.ACCOUNT_DISABLED]: {
5865
+ accountAddress: string;
5866
+ };
5540
5867
  }
5541
5868
  /**
5542
5869
  * Error thrown during transaction building in the SDK.
@@ -5606,6 +5933,25 @@ declare class TransactionBuildingError<T extends TransactionBuildingErrorCode =
5606
5933
  mint: string;
5607
5934
  symbol?: string;
5608
5935
  }>, bridgeTokenSide: "deposit" | "borrow"): TransactionBuildingError<TransactionBuildingErrorCode.BRIDGE_CONFLICT>;
5936
+ /**
5937
+ * The order trigger can't be placed: no threshold set, a threshold not above 0, or take-profit
5938
+ * at or below stop-loss (the program rejects all three with `InvalidOrderTakeProfitOrStopLoss`).
5939
+ */
5940
+ static orderInvalidTrigger(reason: string, takeProfitUsd?: string, stopLossUsd?: string): TransactionBuildingError<TransactionBuildingErrorCode.ORDER_INVALID_TRIGGER>;
5941
+ /**
5942
+ * The action would open an integration (Kamino, Drift, Solend, JupLend) or staked position
5943
+ * beyond the per-account limit on such positions.
5944
+ */
5945
+ static costlyPositionLimitExceeded(bankAddress: string): TransactionBuildingError<TransactionBuildingErrorCode.COSTLY_POSITION_LIMIT_EXCEEDED>;
5946
+ /**
5947
+ * The order's max slippage is outside (0, cap]. The program accepts 0, but a keeper can't
5948
+ * execute an order that allows no slippage, so the SDK rejects it.
5949
+ */
5950
+ static orderInvalidSlippage(maxSlippagePercent: number, maxAllowedPercent: number): TransactionBuildingError<TransactionBuildingErrorCode.ORDER_INVALID_SLIPPAGE>;
5951
+ /**
5952
+ * The marginfi account is disabled (e.g. already transferred to a new account), so it can't act.
5953
+ */
5954
+ static accountDisabled(accountAddress: string): TransactionBuildingError<TransactionBuildingErrorCode.ACCOUNT_DISABLED>;
5609
5955
  /**
5610
5956
  * Generic escape hatch for custom errors
5611
5957
  */
@@ -5640,6 +5986,7 @@ declare const PDA_BANK_FEE_STATE_SEED: Buffer<ArrayBuffer>;
5640
5986
  declare const PDA_BANK_EMISSIONS_AUTH_SEED: Buffer<ArrayBuffer>;
5641
5987
  declare const PDA_BANK_EMISSIONS_VAULT_SEED: Buffer<ArrayBuffer>;
5642
5988
  declare const PDA_MARGINFI_ACCOUNT_SEED: Buffer<ArrayBuffer>;
5989
+ declare const PDA_ORDER_SEED: Buffer<ArrayBuffer>;
5643
5990
  declare const PDA_REBALANCE_FEE_POOL_SEED: Buffer<ArrayBuffer>;
5644
5991
  /**
5645
5992
  * Derives the liquidity vault authority PDA for a bank
@@ -5691,6 +6038,14 @@ declare function deriveBankEmissionsVault(programId: PublicKey, bank: PublicKey,
5691
6038
  * Seeds: ["marginfi_account", group, authority, accountIndex, thirdPartyId]
5692
6039
  */
5693
6040
  declare function deriveMarginfiAccount(programId: PublicKey, group: PublicKey, authority: PublicKey, accountIndex: number, thirdPartyId?: number): [PublicKey, number];
6041
+ /**
6042
+ * Derives the order PDA for a marginfi account and bank pair
6043
+ * Seeds: ["order", marginfiAccount, sha256(bank keys sorted by raw bytes, concatenated)]
6044
+ *
6045
+ * Matches the on-chain `keys_sha256_hash`: the bank keys are sorted in ascending byte-wise
6046
+ * lexicographical order before hashing, so the caller may pass them in any order.
6047
+ */
6048
+ declare function deriveOrderPda(programId: PublicKey, marginfiAccount: PublicKey, bankKeys: PublicKey[]): [PublicKey, number];
5694
6049
  /**
5695
6050
  * Derives the auto-rebalance fee pool PDA of a marginfi account (required by account close since 0.1.12)
5696
6051
  * Seeds: ["rebalance_fee_pool", marginfiAccount]
@@ -5741,6 +6096,20 @@ declare function shortenAddress(pubkey: Address, chars?: number): string;
5741
6096
  * Converts basis points (bps) to a decimal percentage value.
5742
6097
  */
5743
6098
  declare function bpsToPercentile(bps: number): number;
6099
+ /**
6100
+ * Converts a slippage tolerance in percent to the on-chain u32 representation
6101
+ * (a fraction of `u32::MAX`, where 100% = `u32::MAX`).
6102
+ *
6103
+ * @param percent - Slippage in percent, must be in (0, 10] (protocol cap). The program accepts 0,
6104
+ * but a keeper can't execute an order that allows no slippage, so 0 is rejected.
6105
+ * @throws {TransactionBuildingError} `ORDER_INVALID_SLIPPAGE` if `percent` is outside (0, 10]
6106
+ */
6107
+ declare function percentToMaxSlippageU32(percent: number): number;
6108
+ /**
6109
+ * Inverse of {@link percentToMaxSlippageU32}: converts the on-chain u32 slippage
6110
+ * representation back to a percent value.
6111
+ */
6112
+ declare function maxSlippageU32ToPercent(maxSlippage: number): number;
5744
6113
  /**
5745
6114
  * Prepares transaction remaining accounts by processing bank-oracle groups:
5746
6115
  * 1. Sorts groups in descending order by bank public key (pushes inactive accounts to end)
@@ -5775,6 +6144,10 @@ declare const STAKED_ORACLE_DISABLED_FLAG: number;
5775
6144
  declare const STAKED_ORACLE_USES_ONRAMP_FLAG: number;
5776
6145
  /** Bank flags bit 13: liabilities in this bank accrue the variable borrow premium */
5777
6146
  declare const PREMIUM_ACTIVE_FLAG: number;
6147
+ /** Bank flags bit 14: the Kamino bank's lending market is in emergency mode (zero initial weight) */
6148
+ declare const KAMINO_MARKET_EMERGENCY_FLAG: number;
6149
+ /** Max integration (Kamino, Drift, Solend, JupLend) + staked positions one account can open (0.1.12) */
6150
+ declare const MAX_COSTLY_POSITIONS = 4;
5778
6151
  declare const MARGINFI_PROGRAM: PublicKey;
5779
6152
  declare const MARGINFI_PROGRAM_STAGING: PublicKey;
5780
6153
  declare const MARGINFI_PROGRAM_STAGING_ALT: PublicKey;
@@ -5830,7 +6203,8 @@ declare class Balance implements BalanceType {
5830
6203
  premiumRate: BigNumber$1;
5831
6204
  premiumOutstanding: BigNumber$1;
5832
6205
  lastUpdate: number;
5833
- constructor(active: boolean, bankPk: PublicKey, assetShares: BigNumber$1, liabilityShares: BigNumber$1, premiumRate: BigNumber$1, premiumOutstanding: BigNumber$1, lastUpdate: number);
6206
+ tag: number;
6207
+ constructor(active: boolean, bankPk: PublicKey, assetShares: BigNumber$1, liabilityShares: BigNumber$1, premiumRate: BigNumber$1, premiumOutstanding: BigNumber$1, lastUpdate: number, tag: number);
5834
6208
  static from(balanceRaw: BalanceRaw): Balance;
5835
6209
  static fromBalanceType(balance: BalanceType): Balance;
5836
6210
  static createEmpty(bankPk: PublicKey): Balance;
@@ -5879,7 +6253,7 @@ declare class MarginfiGroup implements MarginfiGroupType {
5879
6253
  static fromBuffer(address: PublicKey, rawData: Buffer, idl: MarginfiIdlType): MarginfiGroup;
5880
6254
  static decode(encoded: Buffer, idl: MarginfiIdlType): MarginfiGroupRaw;
5881
6255
  static encode(decoded: MarginfiGroupRaw, idl: MarginfiIdlType): Promise<Buffer>;
5882
- makePoolConfigureBankIx(program: MarginfiProgram, bank: PublicKey, args: BankConfigOptRaw): Promise<InstructionsWrapper>;
6256
+ makePoolConfigureBankIx(program: MarginfiProgram, bank: PublicKey, args: BankConfigFastRaw): Promise<InstructionsWrapper>;
5883
6257
  makeAddPermissionlessStakedBankIx(program: MarginfiProgram, voteAccountAddress: PublicKey, feePayer: PublicKey, pythOracle: PublicKey): Promise<InstructionsWrapper>;
5884
6258
  makePoolAddBankIx(program: MarginfiProgram, bankPubkey: PublicKey, bankMint: PublicKey, bankConfig: BankConfigOpt, feePayer?: PublicKey): Promise<InstructionsWrapper>;
5885
6259
  }
@@ -5908,7 +6282,8 @@ declare class MarginfiAccount implements MarginfiAccountType {
5908
6282
  readonly accountFlags: AccountFlags[];
5909
6283
  readonly emissionsDestinationAccount: PublicKey;
5910
6284
  healthCache: HealthCache;
5911
- constructor(address: PublicKey, group: PublicKey, authority: PublicKey, balances: Balance[], accountFlags: AccountFlags[], emissionsDestinationAccount: PublicKey, healthCache: HealthCache);
6285
+ readonly activeOrders: number;
6286
+ constructor(address: PublicKey, group: PublicKey, authority: PublicKey, balances: Balance[], accountFlags: AccountFlags[], emissionsDestinationAccount: PublicKey, healthCache: HealthCache, activeOrders?: number);
5912
6287
  /**
5913
6288
  * Fetches a marginfi account from on-chain data.
5914
6289
  *
@@ -6465,6 +6840,7 @@ declare class MarginfiAccount implements MarginfiAccountType {
6465
6840
  transactions: ExtendedV0Transaction[];
6466
6841
  actionTxIndex: number;
6467
6842
  quoteResponse: SwapQuoteResult | undefined;
6843
+ mustBeAtomicBundle: boolean;
6468
6844
  }>;
6469
6845
  /**
6470
6846
  * Creates a transaction to swap one debt position to another using a flash loan.
@@ -6537,6 +6913,36 @@ declare class MarginfiAccount implements MarginfiAccountType {
6537
6913
  * @see {@link makeBorrowTx} for detailed implementation
6538
6914
  */
6539
6915
  makeBorrowTx(params: Omit<MakeBorrowTxParams, "marginfiAccount">): Promise<TransactionBuilderResult>;
6916
+ /**
6917
+ * Creates a place-order instruction for this marginfi account.
6918
+ *
6919
+ * @see {@link makePlaceOrderIx} for detailed implementation
6920
+ */
6921
+ makePlaceOrderIx(params: Omit<MakePlaceOrderIxParams, "marginfiAccount">): Promise<InstructionsWrapper>;
6922
+ /**
6923
+ * Creates a transaction placing a take-profit / stop-loss order on a collateral/debt pair.
6924
+ *
6925
+ * @see {@link makePlaceOrderTx} for detailed implementation
6926
+ */
6927
+ makePlaceOrderTx(params: Omit<MakePlaceOrderTxParams, "marginfiAccount">): Promise<ExtendedV0Transaction>;
6928
+ /**
6929
+ * Creates a close-order instruction for this marginfi account.
6930
+ *
6931
+ * @see {@link makeCloseOrderIx} for detailed implementation
6932
+ */
6933
+ makeCloseOrderIx(params: Omit<MakeCloseOrderIxParams, "marginfiAccount">): Promise<InstructionsWrapper>;
6934
+ /**
6935
+ * Creates a transaction closing an existing order.
6936
+ *
6937
+ * @see {@link makeCloseOrderTx} for detailed implementation
6938
+ */
6939
+ makeCloseOrderTx(params: Omit<MakeCloseOrderTxParams, "marginfiAccount">): Promise<ExtendedV0Transaction>;
6940
+ /**
6941
+ * Creates a transaction replacing the pair's existing order with new thresholds.
6942
+ *
6943
+ * @see {@link makeUpdateOrderTx} for detailed implementation
6944
+ */
6945
+ makeUpdateOrderTx(params: Omit<MakePlaceOrderTxParams, "marginfiAccount">): Promise<ExtendedV0Transaction>;
6540
6946
  /**
6541
6947
  * Creates a repay transaction.
6542
6948
  *
@@ -6918,6 +7324,7 @@ declare class MarginfiAccountWrapper {
6918
7324
  transactions: ExtendedV0Transaction[];
6919
7325
  actionTxIndex: number;
6920
7326
  quoteResponse: SwapQuoteResult | undefined;
7327
+ mustBeAtomicBundle: boolean;
6921
7328
  }>;
6922
7329
  /**
6923
7330
  * Creates a swap debt transaction with auto-injected client data.
@@ -7029,6 +7436,38 @@ declare class MarginfiAccountWrapper {
7029
7436
  * @returns Promise resolving to a TransactionBuilderResult
7030
7437
  */
7031
7438
  makeBorrowTx(bankAddress: PublicKey, amount: Amount, opts?: MakeBorrowIxOpts): Promise<TransactionBuilderResult>;
7439
+ /**
7440
+ * Creates a place-order instruction, for composing into a larger transaction.
7441
+ *
7442
+ * @param collateralBank - Bank of the asset-side balance
7443
+ * @param debtBank - Bank of the liability-side balance
7444
+ * @param trigger - USD pair-equity thresholds and max slippage
7445
+ */
7446
+ makePlaceOrderIx(collateralBank: PublicKey, debtBank: PublicKey, trigger: OrderTriggerParams): Promise<InstructionsWrapper>;
7447
+ /**
7448
+ * Creates a close-order instruction, for composing into a larger transaction.
7449
+ *
7450
+ * @param order - The order PDA (from `fetchOrdersForAccount` or `deriveOrderPda`)
7451
+ */
7452
+ makeCloseOrderIx(order: PublicKey): Promise<InstructionsWrapper>;
7453
+ /**
7454
+ * Creates a transaction placing a take-profit / stop-loss order on a collateral/debt pair.
7455
+ *
7456
+ * @param collateralBank - Bank of the asset-side balance
7457
+ * @param debtBank - Bank of the liability-side balance
7458
+ * @param trigger - USD pair-equity thresholds and max slippage
7459
+ */
7460
+ makePlaceOrderTx(collateralBank: PublicKey, debtBank: PublicKey, trigger: OrderTriggerParams): Promise<ExtendedV0Transaction>;
7461
+ /**
7462
+ * Creates a transaction replacing the pair's existing order with new thresholds.
7463
+ */
7464
+ makeUpdateOrderTx(collateralBank: PublicKey, debtBank: PublicKey, trigger: OrderTriggerParams): Promise<ExtendedV0Transaction>;
7465
+ /**
7466
+ * Creates a transaction closing an existing order.
7467
+ *
7468
+ * @param order - The order PDA (from `fetchOrdersForAccount` or `deriveOrderPda`)
7469
+ */
7470
+ makeCloseOrderTx(order: PublicKey): Promise<ExtendedV0Transaction>;
7032
7471
  /**
7033
7472
  * Creates a repay transaction with auto-injected client data.
7034
7473
  *
@@ -7218,4 +7657,4 @@ declare class MarginfiAccountWrapper {
7218
7657
  getClient(): Project0Client;
7219
7658
  }
7220
7659
 
7221
- export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, type AccountActiveBalanceForBank, AccountFlags, ActionEmodeImpact, ActiveEmodePair, type ActiveStakePoolMap, Amount, AssetTag, BUNDLE_TX_SIZE, Balance, type BalanceRaw, BalanceType, type BalanceTypeDto, Bank, type BankConfigDto, BankConfigFlag, BankConfigOpt, BankConfigOptRaw, BankConfigRaw, type BankConfigRawDto, BankConfigType, BankIntegrationMetadata, BankIntegrationMetadataDto, BankIntegrationMetadataMap, BankIntegrationMetadataMapDto, type BankMetrics, type BankRateLimiterDto, BankRateLimiterRaw, type BankRateLimiterRawDto, BankRateLimiterType, BankRaw, type BankRawDto, BankType, type BankTypeDto, BankVaultType, type BankVenueStates, type BridgeOpts, type BridgeTokenSide, type BridgedSwapLeg, type BridgedTxResult, type BuildContext, type BulkLendTxsResult, type ClassifiedPosition, type ComposeBridgedSwapParams, type ComposeBridgedSwapResult, type ComputeAssetHealthComponentParams, type ComputeBalanceUsdValueParams, type ComputeBankMetricsParams, type ComputeFreeCollateralFromBalancesParams, type ComputeHealthCacheStatusParams, type ComputeHealthComponentsFromBalancesParams, type ComputeLiabilityHealthComponentParams, type ComputeLiquidationPriceForBankParams, type ComputeMaxBorrowForBankParams, type ComputeMaxDepositForBankParams, type ComputeMaxWithdrawForBankParams, type ComputeNetApyParams, type ComputePremiumRatesParams, ConfigRaw, DEFAULT_BRIDGE_MINTS, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, type DriftBankInput, type DriftMetadata, type DriftStateByBank, type DriftStateJsonByBank, EMPTY_HEALTH_CACHE, EXECUTION_HEADROOM_SECONDS, type EmodeConfigRawDto, type EmodeEntryDto, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodePair, type EmodeSettingsDto, EmodeSettingsRaw, type EmodeSettingsRawDto, EmodeSettingsType, EmodeTag, Environment, type ExactOutEstimateResult, type ExtendedTransaction, type ExtendedTransactionProperties, type ExtendedV0Transaction, FLASHLOAN_ENABLED_FLAG, type FeeStateCache, type FetchBankIntegrationMetadataOptions, type FetchDriftMetadataOptions, type FetchJupLendMetadataOptions, type FetchKaminoMetadataOptions, type FlashloanActionResult, type FlashloanBudgetIx, type FlashloanPrecheckResult, type FlashloanSwapConstraints, type GetBalanceUsdValueWithPriceBiasParams, type GetExactOutEstimateParams, type GetSwapIxsForFlashloanParams, type GetTitanExactOutEstimateParams, type GetTitanSwapIxsParams, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, type HealthCacheRaw, HealthCacheSimulationError, HealthCacheStatus, HealthCacheType, type HealthCacheTypeDto, type InstructionsWrapper, type IntegrationType, InterestRateConfig, type InterestRateConfigDto, InterestRateConfigRaw, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, type JupLendBankInput, type JupLendMetadata, type JupLendStateByBank, type JupLendStateJsonByBank, type KaminoBankInput, type KaminoMetadata, type KaminoStateByBank, type KaminoStateJsonByBank, LST_MINT, type LoopFlashloanDescriptor, 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, type MakeAccountTransferToNewAccountTxParams, type MakeBorrowIxOpts, type MakeBorrowIxParams, type MakeBorrowTxParams, type MakeBridgedLoopTxParams, type MakeBridgedSwapCollateralTxParams, type MakeBridgedSwapDebtTxParams, type MakeBulkRepayTxParams, type MakeBulkWithdrawTxParams, type MakeCloseAccountIxParams, type MakeCloseAccountTxParams, type MakeDepositIxOpts, type MakeDepositIxParams, type MakeDepositTxParams, type MakeDriftDepositIxParams, type MakeDriftDepositTxParams, type MakeDriftWithdrawIxParams, type MakeDriftWithdrawTxParams, type MakeFlashLoanTxParams, type MakeJuplendDepositIxParams, type MakeJuplendDepositTxParams, type MakeJuplendWithdrawIxParams, type MakeJuplendWithdrawTxParams, type MakeKaminoDepositIxParams, type MakeKaminoDepositTxParams, type MakeKaminoWithdrawIxParams, type MakeKaminoWithdrawTxParams, type MakeLoopTxParams, type MakeMergeStakeAccountsTxParams, type MakeMintStakedLstIxParams, type MakeMintStakedLstTxParams, type MakeRedeemStakedLstIxParams, type MakeRedeemStakedLstTxParams, type MakeRepayIxOpts, type MakeRepayIxParams, type MakeRepayTxParams, type MakeRepayWithCollatTxParams, type MakeRollPtTxParams, type MakeSetupIxParams, type MakeSwapCollateralTxParams, type MakeSwapDebtTxParams, type MakeTransferPositionsTxParams, type MakeVaultCompleteWithdrawalIxParams, type MakeVaultCompleteWithdrawalTxParams, type MakeVaultDepositIxParams, type MakeVaultDepositTxParams, type MakeVaultDepositWithSwapTxParams, type MakeVaultWithdrawIxParams, type MakeVaultWithdrawTxParams, type MakeWithdrawIxOpts, type MakeWithdrawIxParams, type MakeWithdrawTxParams, MarginRequirementType, type MarginRequirementTypeRaw, MarginfiAccount, type MarginfiAccountRaw, MarginfiAccountType, type MarginfiAccountTypeDto, MarginfiAccountWrapper, MarginfiGroup, type MarginfiGroupRaw, type MarginfiGroupType, type MarginfiGroupTypeDto, MarginfiIdlType, MarginfiProgram, type MintAuthorityBalance, MintData, type MultiplierAccountState, type MultiplierAccountStates, OperationalState, OperationalStateRaw, type OracleMultiplierBankInput, type OracleMultiplierServiceOpts, OraclePrice, OraclePriceDto, OracleSetup, OracleSetupRaw, type OracleSourceKey, 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_REBALANCE_FEE_POOL_SEED, PREMIUM_ACTIVE_FLAG, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, type PanicStateCache, type PremiumAction, type PremiumCollateralBreakdown, type PremiumEntry, type PremiumImpact, type PremiumRefreshParams, PriceBias, PriceWithConfidence, Project0Client, Project0Config, Project0ConfigRaw, type ProviderSwapRoute, type PythOracleServiceOpts, type RateLimitWindowDto, type RateLimitWindowRawDto, RateLimitWindowType, type RatePointDto, type ResolveBridgeCandidateBanksParams, type ResolvedPinnedSwapRoute, RiskTier, RiskTierRaw, type RollPtOpts, type RollQuoteSimResult, type RollQuoteSimulator, type RollQuoteTokenBalance, 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, type ScopeOracleServiceOpts, type SerializedInstruction, type SerializedLut, type SerializedSwapEngineRequest, type SerializedSwapEngineResult, type SerializedTxFootprint, type SharedBridgeLegContext, type SimulateAccountHealthCacheWithFallbackParams, type SimulationResultRaw, type SolanaTransaction, type StakeAccount, type StakePoolMevMap, type StakedBankMetadata, type SwapAdapter, type SwapApiConfig, type SwapCandidate, type SwapEngineRequest, type SwapEngineResult, type SwapEngineRunner, type SwapIxsResult, type SwapOpts, SwapProvider, type SwapProviderConfig, type SwapProviderEntry, type SwapQuoteResult, TRANSFER_ACCOUNT_AUTHORITY_FLAG, type TitanQuoteParams, TransactionArenaKeyMap, type TransactionBuilderResult, TransactionBuildingError, TransactionBuildingErrorCode, type TransactionBuildingErrorDetails, TransactionConfigMap, TransactionType, type TransferPositionSide, type TransferPositionsResult, type TxFootprint, TypedAmount, U64_MAX, USDC_DECIMALS, USDC_MINT, USDT_MINT, VENUE_AVAILABLE_LIQUIDITY_BUFFER, type ValidatorRateData, type ValidatorStakeGroup, type ValidatorStakeGroupDto, WSOL_MINT, type WithdrawWindowCache, WrappedI80F48, 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, computeBalancePremium, computeBalanceUsdValue, computeBankAvailableLiquidity, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankProjectedAvailableLiquidity, computeBankRateLimitRemaining, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeGroupRateLimitRemainingUsd, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiquidationPriceForBank, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxDepositForBank, computeMaxWithdrawForBank, computeNetApy, computeOracleMultiplier, computeOracleMultipliers, computePremiumBreakdown, computePremiumImpact, computePremiumRatesByBank, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computePtMultiplier, computeQuantity, computeQuantityUi, computeRateLimitWindowRemainingCapacity, computeRateLimiterRemainingCapacity, computeRemainingCapacity, computeStakedBankMultipliers, computeUtilizationRate, computeV0TxSize, computeVenueAvailableLiquidity, configureScopeOracleIx, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decodeMultiplierAccount, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deriveRebalanceFeePool, 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, 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, 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, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx, makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx, makeDepositTx, makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePoolAddBankIx, makePoolConfigureBankIx, makePremiumRefreshIxs, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, marginfiAccountToDto, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, needsPremiumRefresh, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, patchDepositAmount, rateFromU32, requireBank, requireTokenProgram, 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 };
7660
+ export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, type AccountActiveBalanceForBank, AccountFlags, ActionEmodeImpact, ActiveEmodePair, type ActiveStakePoolMap, Amount, AssetTag, BUNDLE_TX_SIZE, Balance, type BalanceRaw, BalanceType, type BalanceTypeDto, Bank, type BankConfigDto, BankConfigFastRaw, BankConfigFlag, BankConfigGovRaw, BankConfigOpt, BankConfigOptRaw, BankConfigRaw, type BankConfigRawDto, BankConfigType, BankIntegrationMetadata, BankIntegrationMetadataDto, BankIntegrationMetadataMap, BankIntegrationMetadataMapDto, type BankMetrics, type BankOutflowRateLimit, type BankRateLimiterDto, BankRateLimiterRaw, type BankRateLimiterRawDto, BankRateLimiterType, BankRaw, type BankRawDto, BankType, type BankTypeDto, BankVaultType, type BankVenueStates, type BridgeOpts, type BridgeTokenSide, type BridgedSwapLeg, type BridgedTxResult, type BuildContext, type BulkLendTxsResult, type ClassifiedPosition, type ComposeBridgedSwapParams, type ComposeBridgedSwapResult, type ComputeAssetHealthComponentParams, type ComputeBalanceUsdValueParams, type ComputeBankMetricsParams, type ComputeFreeCollateralFromBalancesParams, type ComputeHealthCacheStatusParams, type ComputeHealthComponentsFromBalancesParams, type ComputeLiabilityHealthComponentParams, type ComputeLiquidationPriceForBankParams, type ComputeMaxBorrowForBankParams, type ComputeMaxDepositForBankParams, type ComputeMaxWithdrawForBankParams, type ComputeNetApyParams, type ComputePremiumRatesParams, ConfigRaw, DEFAULT_BRIDGE_MINTS, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, type DriftBankInput, type DriftMetadata, type DriftStateByBank, type DriftStateJsonByBank, EMPTY_HEALTH_CACHE, EXECUTION_HEADROOM_SECONDS, type EmodeConfigRawDto, type EmodeEntryDto, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodePair, type EmodeSettingsDto, EmodeSettingsRaw, type EmodeSettingsRawDto, EmodeSettingsType, EmodeTag, Environment, type ExactOutEstimateResult, type ExtendedTransaction, type ExtendedTransactionProperties, type ExtendedV0Transaction, FLASHLOAN_ENABLED_FLAG, type FeeStateCache, type FetchBankIntegrationMetadataOptions, type FetchDriftMetadataOptions, type FetchJupLendMetadataOptions, type FetchKaminoMetadataOptions, type FlashloanActionResult, type FlashloanBudgetIx, type FlashloanPrecheckResult, type FlashloanSwapConstraints, type GetBalanceUsdValueWithPriceBiasParams, type GetExactOutEstimateParams, type GetSwapIxsForFlashloanParams, type GetTitanExactOutEstimateParams, type GetTitanSwapIxsParams, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, type HealthCacheRaw, HealthCacheSimulationError, HealthCacheStatus, HealthCacheType, type HealthCacheTypeDto, type InstructionsWrapper, type IntegrationType, InterestRateConfig, type InterestRateConfigDto, InterestRateConfigRaw, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, type JupLendBankInput, type JupLendMetadata, type JupLendStateByBank, type JupLendStateJsonByBank, KAMINO_MARKET_EMERGENCY_FLAG, type KaminoBankInput, type KaminoMetadata, type KaminoStateByBank, type KaminoStateJsonByBank, LST_MINT, type LoopFlashloanDescriptor, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_COSTLY_POSITIONS, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, type MakeAccountTransferToNewAccountTxParams, type MakeBorrowIxOpts, type MakeBorrowIxParams, type MakeBorrowTxParams, type MakeBridgedLoopTxParams, type MakeBridgedSwapCollateralTxParams, type MakeBridgedSwapDebtTxParams, type MakeBulkRepayTxParams, type MakeBulkWithdrawTxParams, type MakeCloseAccountIxParams, type MakeCloseAccountTxParams, type MakeCloseOrderIxParams, type MakeCloseOrderTxParams, type MakeDepositIxOpts, type MakeDepositIxParams, type MakeDepositTxParams, type MakeDriftDepositIxParams, type MakeDriftDepositTxParams, type MakeDriftWithdrawIxParams, type MakeDriftWithdrawTxParams, type MakeFlashLoanTxParams, type MakeJuplendDepositIxParams, type MakeJuplendDepositTxParams, type MakeJuplendWithdrawIxParams, type MakeJuplendWithdrawTxParams, type MakeKaminoDepositIxParams, type MakeKaminoDepositTxParams, type MakeKaminoWithdrawIxParams, type MakeKaminoWithdrawTxParams, type MakeLoopTxParams, type MakeMergeStakeAccountsTxParams, type MakeMintStakedLstIxParams, type MakeMintStakedLstTxParams, type MakePlaceOrderIxParams, type MakePlaceOrderTxParams, type MakeRedeemStakedLstIxParams, type MakeRedeemStakedLstTxParams, type MakeRepayIxOpts, type MakeRepayIxParams, type MakeRepayTxParams, type MakeRepayWithCollatTxParams, type MakeRollPtTxParams, type MakeSetupIxParams, type MakeSwapCollateralTxParams, type MakeSwapDebtTxParams, type MakeTransferPositionsTxParams, type MakeVaultCompleteWithdrawalIxParams, type MakeVaultCompleteWithdrawalTxParams, type MakeVaultDepositIxParams, type MakeVaultDepositTxParams, type MakeVaultDepositWithSwapTxParams, type MakeVaultWithdrawIxParams, type MakeVaultWithdrawTxParams, type MakeWithdrawIxOpts, type MakeWithdrawIxParams, type MakeWithdrawTxParams, MarginRequirementType, type MarginRequirementTypeRaw, MarginfiAccount, type MarginfiAccountRaw, MarginfiAccountType, type MarginfiAccountTypeDto, MarginfiAccountWrapper, MarginfiGroup, type MarginfiGroupRaw, type MarginfiGroupType, type MarginfiGroupTypeDto, MarginfiIdlType, MarginfiProgram, type MintAuthorityBalance, MintData, type MultiplierAccountState, type MultiplierAccountStates, OperationalState, OperationalStateRaw, type OracleMultiplierBankInput, type OracleMultiplierServiceOpts, OraclePrice, OraclePriceDto, OracleSetup, OracleSetupRaw, type OracleSourceKey, type OrderRaw, OrderTrigger, type OrderTriggerParams, type OrderTriggerTypeRaw, OrderType, 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, PDA_REBALANCE_FEE_POOL_SEED, PREMIUM_ACTIVE_FLAG, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, type PanicStateCache, type PremiumAction, type PremiumCollateralBreakdown, type PremiumEntry, type PremiumImpact, type PremiumRefreshParams, PriceBias, PriceWithConfidence, Project0Client, Project0Config, Project0ConfigRaw, type ProviderSwapRoute, type PythOracleServiceOpts, type RateLimitWindowDto, type RateLimitWindowRawDto, RateLimitWindowType, type RatePointDto, type ResolveBridgeCandidateBanksParams, type ResolvedPinnedSwapRoute, RiskTier, RiskTierRaw, type RollPtOpts, type RollQuoteSimResult, type RollQuoteSimulator, type RollQuoteTokenBalance, 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, type ScopeOracleServiceOpts, type SerializedInstruction, type SerializedLut, type SerializedSwapEngineRequest, type SerializedSwapEngineResult, type SerializedTxFootprint, type SharedBridgeLegContext, type SimulateAccountHealthCacheWithFallbackParams, type SimulationResultRaw, type SolanaTransaction, type StakeAccount, type StakePoolMevMap, type StakedBankMetadata, type SwapAdapter, type SwapApiConfig, type SwapCandidate, type SwapEngineRequest, type SwapEngineResult, type SwapEngineRunner, type SwapIxsResult, type SwapOpts, SwapProvider, type SwapProviderConfig, type SwapProviderEntry, type SwapQuoteResult, TRANSFER_ACCOUNT_AUTHORITY_FLAG, type TitanQuoteParams, TransactionArenaKeyMap, type TransactionBuilderResult, TransactionBuildingError, TransactionBuildingErrorCode, type TransactionBuildingErrorDetails, TransactionConfigMap, TransactionType, type TransferPositionSide, type TransferPositionsResult, type TxFootprint, TypedAmount, U64_MAX, USDC_DECIMALS, USDC_MINT, USDT_MINT, VENUE_AVAILABLE_LIQUIDITY_BUFFER, type ValidatorRateData, type ValidatorStakeGroup, type ValidatorStakeGroupDto, WSOL_MINT, type WithdrawWindowCache, WrappedI80F48, ZERO_ORACLE_KEY, accountConflictsWithBridgeBank, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, appendPremiumRefresh, 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, computeBalancePremium, computeBalanceUsdValue, computeBankAvailableLiquidity, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankOutflowRateLimit, computeBankPoolSize, computeBankProjectedAvailableLiquidity, computeBankRateLimitRemaining, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeGroupRateLimitRemainingUsd, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiquidationPriceForBank, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxDepositForBank, computeMaxWithdrawForBank, computeNetApy, computeOracleMultiplier, computeOracleMultipliers, computeOrderPairNetValue, computePremiumBreakdown, computePremiumImpact, computePremiumRatesByBank, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computePtMultiplier, computeQuantity, computeQuantityUi, computeRateLimitWindowRemainingCapacity, computeRateLimiterRemainingCapacity, computeRemainingCapacity, computeStakedBankMultipliers, computeUtilizationRate, computeV0TxSize, computeVenueAvailableLiquidity, configureScopeOracleIx, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decodeMultiplierAccount, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deriveOrderPda, deriveRebalanceFeePool, deserializeInstruction, deserializeLut, deserializeSwapEngineRequest, deserializeSwapEngineResult, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRateLimiter, dtoToBankRateLimiterRaw, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, exceedsCostlyPositionLimit, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchGammaLpVault, fetchGammaWithdrawReceipt, fetchMarginfiAccountActiveBalancesForBank, fetchMarginfiAccountAddresses, fetchMarginfiAccountAddressesHoldingBank, fetchMarginfiAccountData, fetchMultipleBanks, fetchMultiplierAccountStates, fetchMultiplierAccountStatesFromAPI, fetchNativeStakeAccounts, fetchOracleData, fetchOracleMultipliers, fetchOracleMultipliersFromAPI, fetchOracleMultipliersFromChain, fetchOrderFees, fetchOrdersForAccount, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchScopeOracleData, fetchScopeOraclePricesFromAPI, fetchScopeOraclePricesFromChain, fetchStakeAccount, fetchStakePoolActiveStates, fetchStakePoolMev, findRandomAvailableAccountIndex, fitsInOneTransaction, freezeBankConfigIx, generateDummyAccount, getAccountKeys, getActiveAccountFlags, getActiveBalances, getActiveEmodeEntryFlags, getActiveEmodeFlags, getActiveHealthCacheFlags, getAssetQuantity, getAssetShares, 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, 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, isCostlyBank, isDecomposableSwapError, isDepositIx, isDepositLimitActive, isFlashloan, isGroupRateLimiterEnabled, isStandardBorrowable, isStandardDepositable, isV0Tx, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx, makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCloseOrderIx, makeCloseOrderTx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx, makeDepositTx, makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePlaceOrderIx, makePlaceOrderTx, makePoolAddBankIx, makePoolConfigureBankGovIx, makePoolConfigureBankIx, makePreludeTxs, makePremiumRefreshIxs, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateOrderTx, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, marginfiAccountToDto, maxSlippageU32ToPercent, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, needsPremiumRefresh, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOrderRaw, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, patchDepositAmount, percentToMaxSlippageU32, rateFromU32, requireBank, requireTokenProgram, resolveBridgeCandidateBanks, resolveOrderLegs, 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, withKaminoReserveEmergency, wrappedI80F48toBigNumber };