@0dotxyz/p0-ts-sdk 2.2.2 → 2.2.3-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -15602,12 +15602,20 @@ function makeEndFlashLoanIx(mfiProgram, accounts, remainingAccounts = []) {
15602
15602
  }).accountsPartial(optionalAccounts).remainingAccounts(remainingAccounts).instruction();
15603
15603
  }
15604
15604
  async function makeAccountTransferToNewAccountIx(mfProgram, accounts) {
15605
- const { oldMarginfiAccount, newMarginfiAccount, newAuthority, feePayer, ...optionalAccounts } = accounts;
15605
+ const {
15606
+ oldMarginfiAccount,
15607
+ newMarginfiAccount,
15608
+ newAuthority,
15609
+ globalFeeWallet,
15610
+ feePayer,
15611
+ ...optionalAccounts
15612
+ } = accounts;
15606
15613
  return mfProgram.methods.transferToNewAccount().accounts({
15607
15614
  oldMarginfiAccount,
15608
15615
  newMarginfiAccount,
15609
15616
  newAuthority,
15610
- globalFeeWallet: feePayer
15617
+ globalFeeWallet,
15618
+ feePayer
15611
15619
  }).accountsPartial(optionalAccounts).instruction();
15612
15620
  }
15613
15621
  async function makeGroupInitIx(mfProgram, accounts) {
@@ -19969,7 +19977,7 @@ function dtoToOraclePrice(dto) {
19969
19977
  }
19970
19978
 
19971
19979
  // src/services/price/utils/crankability.utils.ts
19972
- async function checkBatchOracleCrankability(feedHashes, crossbarUrl = "https://integrator-crossbar.prod.mrgn.app") {
19980
+ async function checkBatchOracleCrankability(feedHashes, crossbarUrl = "https://crossbar.0.xyz") {
19973
19981
  const results = /* @__PURE__ */ new Map();
19974
19982
  if (feedHashes.length === 0) {
19975
19983
  return results;
@@ -20501,16 +20509,77 @@ function createActiveEmodePairFromPairs(pairs) {
20501
20509
  assetWeightInit: bestPair.assetWeightInit
20502
20510
  };
20503
20511
  }
20512
+ function indexConfiguredPairs(emodePairs) {
20513
+ const configured = [];
20514
+ const liabTagByBank = /* @__PURE__ */ new Map();
20515
+ for (const p of emodePairs) {
20516
+ if (p.collateralBankTag === 0 /* UNSET */ || p.liabilityBankTag === 0 /* UNSET */) {
20517
+ continue;
20518
+ }
20519
+ const liabStr = p.liabilityBank.toBase58();
20520
+ const liabTagStr = p.liabilityBankTag.toString();
20521
+ configured.push({
20522
+ orig: p,
20523
+ liabStr,
20524
+ liabTagStr,
20525
+ collTagStr: p.collateralBankTag.toString(),
20526
+ collStrs: p.collateralBanks.map((b) => b.toBase58())
20527
+ });
20528
+ liabTagByBank.set(liabStr, liabTagStr);
20529
+ }
20530
+ return { configured, liabTagByBank };
20531
+ }
20532
+ function activePairsFromIndex(configured, liabTagByBank, liabSet, collSet) {
20533
+ const requiredTags = /* @__PURE__ */ new Set();
20534
+ for (const liab of liabSet) {
20535
+ const tag = liabTagByBank.get(liab);
20536
+ if (!tag) return [];
20537
+ requiredTags.add(tag);
20538
+ }
20539
+ const possible = configured.filter(
20540
+ (p) => liabSet.has(p.liabStr) && p.collStrs.some((c) => collSet.has(c))
20541
+ );
20542
+ if (possible.length === 0) return [];
20543
+ const byCollTag = {};
20544
+ for (const p of possible) {
20545
+ (byCollTag[p.collTagStr] ||= []).push(p);
20546
+ }
20547
+ const validGroups = [];
20548
+ for (const group of Object.values(byCollTag)) {
20549
+ const supports = new Set(group.map((p) => p.liabTagStr));
20550
+ let coversAll = true;
20551
+ for (const rt of requiredTags) {
20552
+ if (!supports.has(rt)) {
20553
+ coversAll = false;
20554
+ break;
20555
+ }
20556
+ }
20557
+ if (coversAll) validGroups.push(group);
20558
+ }
20559
+ if (validGroups.length === 0) return [];
20560
+ return validGroups.flat().map((p) => p.orig);
20561
+ }
20504
20562
  function computeEmodeImpacts(emodePairs, activeLiabilities, activeCollateral, allBanks) {
20505
- const toKey = (k) => k.toBase58();
20506
- const basePairs = computeActiveEmodePairs(emodePairs, activeLiabilities, activeCollateral);
20507
- const baseOn = basePairs.length > 0;
20508
- const liabTagMap = /* @__PURE__ */ new Map();
20563
+ const activeLiabilitiesSet = new Set(activeLiabilities.map((b) => b.toBase58()));
20564
+ const activeCollateralSet = new Set(activeCollateral.map((b) => b.toBase58()));
20565
+ const { configured, liabTagByBank } = indexConfiguredPairs(emodePairs);
20566
+ const liabTagMapAll = /* @__PURE__ */ new Map();
20509
20567
  for (const p of emodePairs) {
20510
- liabTagMap.set(p.liabilityBank.toBase58(), p.liabilityBankTag.toString());
20568
+ liabTagMapAll.set(p.liabilityBank.toBase58(), p.liabilityBankTag.toString());
20511
20569
  }
20570
+ const allCollateralBankStrs = /* @__PURE__ */ new Set();
20571
+ for (const p of emodePairs) {
20572
+ for (const c of p.collateralBanks) allCollateralBankStrs.add(c.toBase58());
20573
+ }
20574
+ const basePairs = activePairsFromIndex(
20575
+ configured,
20576
+ liabTagByBank,
20577
+ activeLiabilitiesSet,
20578
+ activeCollateralSet
20579
+ );
20580
+ const baseOn = basePairs.length > 0;
20512
20581
  const existingTags = new Set(
20513
- activeLiabilities.map((l) => liabTagMap.get(l.toBase58())).filter((t) => !!t)
20582
+ Array.from(activeLiabilitiesSet).map((l) => liabTagMapAll.get(l)).filter((t) => !!t)
20514
20583
  );
20515
20584
  function minWeight(ps) {
20516
20585
  let m = ps[0].assetWeightInit;
@@ -20527,27 +20596,26 @@ function computeEmodeImpacts(emodePairs, activeLiabilities, activeCollateral, al
20527
20596
  if (aMin.lt(bMin)) return 3 /* ReduceEmode */;
20528
20597
  return 1 /* ExtendEmode */;
20529
20598
  }
20530
- function simulate(bank, action) {
20531
- bank.equals(new PublicKey("CCKtUs6Cgwo4aaQUmBPmyoApH2gUDErxNZCAntD6LYGh"));
20532
- let L = [...activeLiabilities], C = [...activeCollateral];
20599
+ function simulate(bankStr, action) {
20600
+ const L = new Set(activeLiabilitiesSet), C = new Set(activeCollateralSet);
20533
20601
  switch (action) {
20534
20602
  case "borrow":
20535
- if (!L.some((x) => x.equals(bank))) L.push(bank);
20603
+ L.add(bankStr);
20536
20604
  break;
20537
20605
  case "repay":
20538
- L = L.filter((x) => !x.equals(bank));
20606
+ L.delete(bankStr);
20539
20607
  break;
20540
20608
  case "supply":
20541
- if (!C.some((x) => x.equals(bank))) C.push(bank);
20609
+ C.add(bankStr);
20542
20610
  break;
20543
20611
  case "withdraw":
20544
- C = C.filter((x) => !x.equals(bank));
20612
+ C.delete(bankStr);
20545
20613
  break;
20546
20614
  }
20547
- const after = computeActiveEmodePairs(emodePairs, L, C);
20615
+ const after = activePairsFromIndex(configured, liabTagByBank, L, C);
20548
20616
  let status = diffState(basePairs, after);
20549
20617
  if (action === "borrow") {
20550
- const tag = liabTagMap.get(bank.toBase58());
20618
+ const tag = liabTagMapAll.get(bankStr);
20551
20619
  if (!tag) {
20552
20620
  status = baseOn ? 4 /* RemoveEmode */ : 5 /* InactiveEmode */;
20553
20621
  } else if (baseOn) {
@@ -20583,66 +20651,29 @@ function computeEmodeImpacts(emodePairs, activeLiabilities, activeCollateral, al
20583
20651
  }
20584
20652
  const result = {};
20585
20653
  for (const bank of allBanks) {
20586
- const key = toKey(bank);
20654
+ const key = bank.toBase58();
20587
20655
  const impact = {};
20588
- if (!activeCollateral.some((x) => x.equals(bank))) {
20589
- impact.borrowImpact = simulate(bank, "borrow");
20656
+ if (!activeCollateralSet.has(key)) {
20657
+ impact.borrowImpact = simulate(key, "borrow");
20590
20658
  }
20591
- const collSet = new Set(emodePairs.flatMap((p) => p.collateralBanks.map((c) => c.toBase58())));
20592
- if (collSet.has(key) && !activeCollateral.some((x) => x.equals(bank)) && !activeLiabilities.some((x) => x.equals(bank))) {
20593
- impact.supplyImpact = simulate(bank, "supply");
20659
+ if (allCollateralBankStrs.has(key) && !activeCollateralSet.has(key) && !activeLiabilitiesSet.has(key)) {
20660
+ impact.supplyImpact = simulate(key, "supply");
20594
20661
  }
20595
- if (activeLiabilities.some((x) => x.equals(bank))) {
20596
- impact.repayAllImpact = simulate(bank, "repay");
20662
+ if (activeLiabilitiesSet.has(key)) {
20663
+ impact.repayAllImpact = simulate(key, "repay");
20597
20664
  }
20598
- if (activeCollateral.some((x) => x.equals(bank))) {
20599
- impact.withdrawAllImpact = simulate(bank, "withdraw");
20665
+ if (activeCollateralSet.has(key)) {
20666
+ impact.withdrawAllImpact = simulate(key, "withdraw");
20600
20667
  }
20601
20668
  result[key] = impact;
20602
20669
  }
20603
20670
  return result;
20604
20671
  }
20605
20672
  function computeActiveEmodePairs(emodePairs, activeLiabilities, activeCollateral) {
20606
- const configured = emodePairs.filter(
20607
- (p) => p.collateralBankTag !== 0 /* UNSET */ && p.liabilityBankTag !== 0 /* UNSET */
20608
- );
20609
- const liabTagByBank = /* @__PURE__ */ new Map();
20610
- for (const p of configured) {
20611
- liabTagByBank.set(p.liabilityBank.toBase58(), p.liabilityBankTag.toString());
20612
- }
20613
- const requiredTags = /* @__PURE__ */ new Set();
20614
- for (const liab of activeLiabilities) {
20615
- const tag = liabTagByBank.get(liab.toBase58());
20616
- if (!tag) {
20617
- return [];
20618
- }
20619
- requiredTags.add(tag);
20620
- }
20621
- const possible = configured.filter(
20622
- (p) => activeLiabilities.some((l) => l.equals(p.liabilityBank)) && p.collateralBanks.some((c) => activeCollateral.some((a) => a.equals(c)))
20623
- );
20624
- if (possible.length === 0) return [];
20625
- const byCollTag = {};
20626
- for (const p of possible) {
20627
- const ct = p.collateralBankTag.toString();
20628
- (byCollTag[ct] ||= []).push(p);
20629
- }
20630
- const validGroups = [];
20631
- for (const group of Object.values(byCollTag)) {
20632
- const supports = new Set(group.map((p) => p.liabilityBankTag.toString()));
20633
- let coversAll = true;
20634
- for (const rt of requiredTags) {
20635
- if (!supports.has(rt)) {
20636
- coversAll = false;
20637
- break;
20638
- }
20639
- }
20640
- if (coversAll) {
20641
- validGroups.push(group);
20642
- }
20643
- }
20644
- if (validGroups.length === 0) return [];
20645
- return validGroups.flat();
20673
+ const { configured, liabTagByBank } = indexConfiguredPairs(emodePairs);
20674
+ const liabSet = new Set(activeLiabilities.map((b) => b.toBase58()));
20675
+ const collSet = new Set(activeCollateral.map((b) => b.toBase58()));
20676
+ return activePairsFromIndex(configured, liabTagByBank, liabSet, collSet);
20646
20677
  }
20647
20678
  function computeBalanceUsdValue(params) {
20648
20679
  const {
@@ -36061,6 +36092,48 @@ async function makeCloseMarginfiAccountTx({
36061
36092
  );
36062
36093
  return closeTx;
36063
36094
  }
36095
+ async function makeAccountTransferToNewAccountTx({
36096
+ connection,
36097
+ program,
36098
+ marginfiAccount,
36099
+ newMarginfiAccount,
36100
+ newAuthority,
36101
+ feePayer,
36102
+ feePayerKeypair
36103
+ }) {
36104
+ const [feeStateKey] = PublicKey.findProgramAddressSync(
36105
+ [Buffer.from("feestate", "utf-8")],
36106
+ program.programId
36107
+ );
36108
+ const feeState = await program.account.feeState.fetch(feeStateKey);
36109
+ const transferIx = await instructions_default.makeAccountTransferToNewAccountIx(program, {
36110
+ oldMarginfiAccount: marginfiAccount.address,
36111
+ newMarginfiAccount: newMarginfiAccount.publicKey,
36112
+ newAuthority,
36113
+ globalFeeWallet: feeState.globalFeeWallet,
36114
+ feePayer
36115
+ });
36116
+ const {
36117
+ value: { blockhash }
36118
+ } = await connection.getLatestBlockhashAndContext("confirmed");
36119
+ const signers = [newMarginfiAccount];
36120
+ if (feePayerKeypair) signers.push(feePayerKeypair);
36121
+ const transferTx = addTransactionMetadata(
36122
+ new VersionedTransaction(
36123
+ new TransactionMessage({
36124
+ instructions: [transferIx],
36125
+ payerKey: feePayer,
36126
+ recentBlockhash: blockhash
36127
+ }).compileToV0Message([])
36128
+ ),
36129
+ {
36130
+ signers,
36131
+ addressLookupTables: [],
36132
+ type: "TRANSFER_AUTH" /* TRANSFER_AUTH */
36133
+ }
36134
+ );
36135
+ return transferTx;
36136
+ }
36064
36137
  async function makeCreateAccountTxWithProjection(props) {
36065
36138
  const [marginfiAccountAddress] = deriveMarginfiAccount(
36066
36139
  props.program.programId,
@@ -48749,7 +48822,8 @@ async function getHealthSimulationTransactions({
48749
48822
  authority,
48750
48823
  luts,
48751
48824
  includeCrankTx,
48752
- blockhash
48825
+ blockhash,
48826
+ crossbarUrl
48753
48827
  }) {
48754
48828
  const additionalTxs = [];
48755
48829
  const computeIx = ComputeBudgetProgram.setComputeUnitLimit({
@@ -48761,7 +48835,8 @@ async function getHealthSimulationTransactions({
48761
48835
  marginfiAccount,
48762
48836
  bankMap,
48763
48837
  projectedActiveBanks,
48764
- program.provider
48838
+ program.provider,
48839
+ crossbarUrl
48765
48840
  );
48766
48841
  }
48767
48842
  const activeBanks = marginfiAccount.balances.filter((b) => b.active).map((b) => b.bankPk);
@@ -50454,11 +50529,14 @@ async function makeSmartCrankSwbFeedIx(params) {
50454
50529
  const { instructions: instructions2, luts } = await makeUpdateSwbFeedIx({
50455
50530
  swbPullOracles: oraclesToCrank,
50456
50531
  feePayer: params.marginfiAccount.authority,
50457
- connection: params.connection
50532
+ connection: params.connection,
50533
+ crossbarUrl: params.crossbarUrl
50458
50534
  });
50459
50535
  return { instructions: instructions2, luts };
50460
50536
  }
50461
- async function makeCrankSwbFeedIx(marginfiAccount, bankMap, newBanksPk, provider) {
50537
+ var DEFAULT_CROSSBAR_URL = "https://crossbar.0.xyz";
50538
+ var DEFAULT_FALLBACK_CROSSBAR_URL = "https://crossbar.switchboard.xyz";
50539
+ async function makeCrankSwbFeedIx(marginfiAccount, bankMap, newBanksPk, provider, crossbarUrl) {
50462
50540
  const activeBanksPk = marginfiAccount.balances.filter((balance) => balance.active).map((balance) => balance.bankPk);
50463
50541
  const allActiveBanks = [
50464
50542
  ...(/* @__PURE__ */ new Set([
@@ -50477,7 +50555,8 @@ async function makeCrankSwbFeedIx(marginfiAccount, bankMap, newBanksPk, provider
50477
50555
  const { instructions: instructions2, luts } = await makeUpdateSwbFeedIx({
50478
50556
  swbPullOracles: staleOracles.map((oracle) => ({ key: oracle })),
50479
50557
  feePayer: provider.publicKey,
50480
- connection: provider.connection
50558
+ connection: provider.connection,
50559
+ crossbarUrl
50481
50560
  });
50482
50561
  return { instructions: instructions2, luts };
50483
50562
  }
@@ -50507,16 +50586,26 @@ async function makeUpdateSwbFeedIx(props) {
50507
50586
  if (pullFeedInstances.length === 0) {
50508
50587
  return { instructions: [], luts: [] };
50509
50588
  }
50510
- const crossbarClient = new CrossbarClient(
50511
- process.env.NEXT_PUBLIC_SWITCHBOARD_CROSSSBAR_API || "https://integrator-crossbar.prod.mrgn.app"
50512
- );
50513
- const [pullIx, luts] = await PullFeed.fetchUpdateManyIx(swbProgram, {
50514
- feeds: pullFeedInstances,
50515
- numSignatures: 1,
50516
- crossbarClient,
50517
- payer: props.feePayer
50518
- });
50519
- return { instructions: pullIx, luts };
50589
+ const primaryUrl = props.crossbarUrl ?? DEFAULT_CROSSBAR_URL;
50590
+ const fallbackUrl = props.fallbackCrossbarUrl ?? DEFAULT_FALLBACK_CROSSBAR_URL;
50591
+ try {
50592
+ const [pullIx, luts] = await PullFeed.fetchUpdateManyIx(swbProgram, {
50593
+ feeds: pullFeedInstances,
50594
+ numSignatures: 1,
50595
+ crossbarClient: new CrossbarClient(primaryUrl),
50596
+ payer: props.feePayer
50597
+ });
50598
+ return { instructions: pullIx, luts };
50599
+ } catch (primaryError) {
50600
+ console.warn(`Primary crossbar endpoint failed (${primaryUrl}), trying fallback:`, primaryError);
50601
+ const [pullIx, luts] = await PullFeed.fetchUpdateManyIx(swbProgram, {
50602
+ feeds: pullFeedInstances,
50603
+ numSignatures: 1,
50604
+ crossbarClient: new CrossbarClient(fallbackUrl),
50605
+ payer: props.feePayer
50606
+ });
50607
+ return { instructions: pullIx, luts };
50608
+ }
50520
50609
  }
50521
50610
 
50522
50611
  // src/services/price/actions/klend-reserve-refresh.ts
@@ -51007,7 +51096,7 @@ var fetchSwbOracleData = async (banks, opts) => {
51007
51096
  } else {
51008
51097
  crossbarResponse = await fetchSwbOraclePricesFromCrossbar(
51009
51098
  swbFeedIds,
51010
- opts.crossbarEndpoint || "https://34.97.218.183.sslip.io",
51099
+ opts.crossbarEndpoint || "https://crossbar.0.xyz",
51011
51100
  "https://crossbar.switchboard.xyz"
51012
51101
  );
51013
51102
  birdeyeResponse = {};
@@ -54035,14 +54124,15 @@ var MarginfiAccount = class _MarginfiAccount {
54035
54124
  *
54036
54125
  * @see {@link makeAccountTransferToNewAccountIx} for implementation
54037
54126
  */
54038
- async makeAccountTransferToNewAccountIx(program, newMarginfiAccount, newAuthority) {
54127
+ async makeAccountTransferToNewAccountIx(program, newMarginfiAccount, newAuthority, globalFeeWallet, feePayer) {
54039
54128
  const accountTransferToNewAccountIx = await instructions_default.makeAccountTransferToNewAccountIx(
54040
54129
  program,
54041
54130
  {
54042
54131
  oldMarginfiAccount: this.address,
54043
54132
  newMarginfiAccount,
54044
54133
  newAuthority,
54045
- feePayer: this.authority
54134
+ globalFeeWallet,
54135
+ feePayer
54046
54136
  }
54047
54137
  );
54048
54138
  return { instructions: [accountTransferToNewAccountIx], keys: [] };
@@ -54698,11 +54788,13 @@ var MarginfiAccountWrapper = class {
54698
54788
  * @param newMarginfiAccount - New account public key
54699
54789
  * @param newAuthority - New authority public key
54700
54790
  */
54701
- async makeAccountTransferToNewAccountIx(newMarginfiAccount, newAuthority) {
54791
+ async makeAccountTransferToNewAccountIx(newMarginfiAccount, newAuthority, globalFeeWallet, feePayer) {
54702
54792
  return this.account.makeAccountTransferToNewAccountIx(
54703
54793
  this.client.program,
54704
54794
  newMarginfiAccount,
54705
- newAuthority
54795
+ newAuthority,
54796
+ globalFeeWallet,
54797
+ feePayer
54706
54798
  );
54707
54799
  }
54708
54800
  /**
@@ -55497,6 +55589,6 @@ var EmodeSettings = class _EmodeSettings {
55497
55589
  }
55498
55590
  };
55499
55591
 
55500
- export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_ORACLE_MAX_AGE, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SINGLE_POOL_PROGRAM_ID, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWB_PRICE_CONF_INTERVALS, SYSTEM_PROGRAM_ID, SYSVAR_CLOCK_ID, SYSVAR_RENT_ID, SYSVAR_STAKE_HISTORY_ID, SwapProvider, TRANSFER_ACCOUNT_AUTHORITY_FLAG, TransactionArenaKeyMap, TransactionBuildingError, TransactionBuildingErrorCode, TransactionConfigMap, TransactionType, USDC_DECIMALS, USDC_MINT, WSOL_MINT, ZERO_ORACLE_KEY, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkBatchOracleCrankability, checkMultipleOraclesCrankability, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, compileFlashloanPrecheck, composeRemainingAccounts, computeAccountValue, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeHealthComponentsWithoutBiasFromBalances, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computeQuantity, computeQuantityUi, computeRemainingCapacity, computeSmartCrank, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchMarginfiAccountAddresses, fetchMarginfiAccountData, fetchMultipleBanks, fetchNativeStakeAccounts, fetchOracleData, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchStakeAccount, fetchStakePoolActiveStates, fetchStakePoolMev, fetchSwbOracleAccountsFromAPI, fetchSwbOracleAccountsFromChain, fetchSwbOracleData, fetchSwbOraclePricesFromAPI, fetchSwbOraclePricesFromCrossbar, findRandomAvailableAccountIndex, freezeBankConfigIx, generateDummyAccount, getAccountKeys, getActiveAccountFlags, getActiveBalances, getActiveEmodeEntryFlags, getActiveEmodeFlags, getActiveHealthCacheFlags, getAssetQuantity, getAssetShares, getAssetWeight, getBalance, getBalanceUsdValueWithPriceBias, getBankVaultAuthority, getBankVaultSeeds, getBirdeyeFallbackPricesByFeedId, getBirdeyePricesForMints, getConfig, getDriftCTokenMultiplier, getDriftMetadata, getDriftStatesDto, getEmodePairs, getExactOutEstimate, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isFlashloan, isV0Tx, isWeightedPrice, isWholePosition, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBundleTipIx, makeClearEmissionsIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCrankSwbFeedIx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx3 as makeDepositIx, makeDepositTx, makeDriftDepositIx3 as makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx3 as makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx3 as makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx2 as makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx2 as makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx3 as makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx3 as makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePoolAddBankIx3 as makePoolAddBankIx, makePoolConfigureBankIx3 as makePoolConfigureBankIx, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx2 as makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeSetupIx, makeSmartCrankSwbFeedIx, makeSwapCollateralTx, makeSwapDebtTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateSwbFeedIx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapBrokenFeedsToOraclePrices, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, mapSwbBanksToOraclePrices, marginfiAccountToDto, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, parseSwbOraclePriceData, partitionBanksByCrankability, resolveAmount, serializeBankConfigOpt, serializeInterestRateConfig, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, toBankConfigDto, toBankDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
55592
+ export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_CROSSBAR_URL, DEFAULT_FALLBACK_CROSSBAR_URL, DEFAULT_ORACLE_MAX_AGE, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SINGLE_POOL_PROGRAM_ID, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWB_PRICE_CONF_INTERVALS, SYSTEM_PROGRAM_ID, SYSVAR_CLOCK_ID, SYSVAR_RENT_ID, SYSVAR_STAKE_HISTORY_ID, SwapProvider, TRANSFER_ACCOUNT_AUTHORITY_FLAG, TransactionArenaKeyMap, TransactionBuildingError, TransactionBuildingErrorCode, TransactionConfigMap, TransactionType, USDC_DECIMALS, USDC_MINT, WSOL_MINT, ZERO_ORACLE_KEY, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkBatchOracleCrankability, checkMultipleOraclesCrankability, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, compileFlashloanPrecheck, composeRemainingAccounts, computeAccountValue, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeHealthComponentsWithoutBiasFromBalances, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computeQuantity, computeQuantityUi, computeRemainingCapacity, computeSmartCrank, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchMarginfiAccountAddresses, fetchMarginfiAccountData, fetchMultipleBanks, fetchNativeStakeAccounts, fetchOracleData, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchStakeAccount, fetchStakePoolActiveStates, fetchStakePoolMev, fetchSwbOracleAccountsFromAPI, fetchSwbOracleAccountsFromChain, fetchSwbOracleData, fetchSwbOraclePricesFromAPI, fetchSwbOraclePricesFromCrossbar, findRandomAvailableAccountIndex, freezeBankConfigIx, generateDummyAccount, getAccountKeys, getActiveAccountFlags, getActiveBalances, getActiveEmodeEntryFlags, getActiveEmodeFlags, getActiveHealthCacheFlags, getAssetQuantity, getAssetShares, getAssetWeight, getBalance, getBalanceUsdValueWithPriceBias, getBankVaultAuthority, getBankVaultSeeds, getBirdeyeFallbackPricesByFeedId, getBirdeyePricesForMints, getConfig, getDriftCTokenMultiplier, getDriftMetadata, getDriftStatesDto, getEmodePairs, getExactOutEstimate, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isFlashloan, isV0Tx, isWeightedPrice, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBundleTipIx, makeClearEmissionsIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCrankSwbFeedIx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx3 as makeDepositIx, makeDepositTx, makeDriftDepositIx3 as makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx3 as makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx3 as makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx2 as makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx2 as makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx3 as makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx3 as makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePoolAddBankIx3 as makePoolAddBankIx, makePoolConfigureBankIx3 as makePoolConfigureBankIx, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx2 as makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeSetupIx, makeSmartCrankSwbFeedIx, makeSwapCollateralTx, makeSwapDebtTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateSwbFeedIx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapBrokenFeedsToOraclePrices, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, mapSwbBanksToOraclePrices, marginfiAccountToDto, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, parseSwbOraclePriceData, partitionBanksByCrankability, resolveAmount, serializeBankConfigOpt, serializeInterestRateConfig, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, toBankConfigDto, toBankDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
55501
55593
  //# sourceMappingURL=index.js.map
55502
55594
  //# sourceMappingURL=index.js.map