@0dotxyz/p0-ts-sdk 2.7.4 → 2.8.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -14326,13 +14326,13 @@ var marginfi_0_1_10_default = {
14326
14326
  type: "u16"
14327
14327
  },
14328
14328
  {
14329
- name: "_padding0",
14330
- type: {
14331
- array: [
14332
- "u8",
14333
- 2
14334
- ]
14335
- }
14329
+ name: "scope_entry_index",
14330
+ docs: [
14331
+ "Entry index into the Scope OraclePrices price list. Only read when",
14332
+ "oracle_setup == OracleSetup::Scope; ignored (and zero) for every other setup.",
14333
+ "Occupies what was previously _padding0, so the layout is unchanged."
14334
+ ],
14335
+ type: "u16"
14336
14336
  },
14337
14337
  {
14338
14338
  name: "oracle_max_confidence",
@@ -19283,6 +19283,144 @@ var marginfi_0_1_10_default = {
19283
19283
  },
19284
19284
  {
19285
19285
  name: "FixedJuplend"
19286
+ },
19287
+ {
19288
+ name: "Scope"
19289
+ },
19290
+ {
19291
+ name: "PythMSOL"
19292
+ },
19293
+ {
19294
+ name: "KaminoMSOL"
19295
+ },
19296
+ {
19297
+ name: "JuplendMSOL"
19298
+ },
19299
+ {
19300
+ name: "PythLST"
19301
+ },
19302
+ {
19303
+ name: "KaminoLST"
19304
+ },
19305
+ {
19306
+ name: "JuplendLST"
19307
+ },
19308
+ {
19309
+ name: "PTPyth"
19310
+ },
19311
+ {
19312
+ name: "PTFixed"
19313
+ },
19314
+ {
19315
+ name: "Reserved27"
19316
+ },
19317
+ {
19318
+ name: "Reserved28"
19319
+ },
19320
+ {
19321
+ name: "Reserved29"
19322
+ },
19323
+ {
19324
+ name: "Reserved30"
19325
+ },
19326
+ {
19327
+ name: "Reserved31"
19328
+ },
19329
+ {
19330
+ name: "Reserved32"
19331
+ },
19332
+ {
19333
+ name: "Reserved33"
19334
+ },
19335
+ {
19336
+ name: "Reserved34"
19337
+ },
19338
+ {
19339
+ name: "Reserved35"
19340
+ },
19341
+ {
19342
+ name: "Reserved36"
19343
+ },
19344
+ {
19345
+ name: "Reserved37"
19346
+ },
19347
+ {
19348
+ name: "Reserved38"
19349
+ },
19350
+ {
19351
+ name: "Reserved39"
19352
+ },
19353
+ {
19354
+ name: "Reserved40"
19355
+ },
19356
+ {
19357
+ name: "Reserved41"
19358
+ },
19359
+ {
19360
+ name: "Reserved42"
19361
+ },
19362
+ {
19363
+ name: "Reserved43"
19364
+ },
19365
+ {
19366
+ name: "Reserved44"
19367
+ },
19368
+ {
19369
+ name: "Reserved45"
19370
+ },
19371
+ {
19372
+ name: "Reserved46"
19373
+ },
19374
+ {
19375
+ name: "Reserved47"
19376
+ },
19377
+ {
19378
+ name: "Reserved48"
19379
+ },
19380
+ {
19381
+ name: "Reserved49"
19382
+ },
19383
+ {
19384
+ name: "Reserved50"
19385
+ },
19386
+ {
19387
+ name: "Reserved51"
19388
+ },
19389
+ {
19390
+ name: "Reserved52"
19391
+ },
19392
+ {
19393
+ name: "Reserved53"
19394
+ },
19395
+ {
19396
+ name: "Reserved54"
19397
+ },
19398
+ {
19399
+ name: "Reserved55"
19400
+ },
19401
+ {
19402
+ name: "Reserved56"
19403
+ },
19404
+ {
19405
+ name: "Reserved57"
19406
+ },
19407
+ {
19408
+ name: "Reserved58"
19409
+ },
19410
+ {
19411
+ name: "Reserved59"
19412
+ },
19413
+ {
19414
+ name: "Reserved60"
19415
+ },
19416
+ {
19417
+ name: "Reserved61"
19418
+ },
19419
+ {
19420
+ name: "Reserved62"
19421
+ },
19422
+ {
19423
+ name: "Reserved63"
19286
19424
  }
19287
19425
  ]
19288
19426
  }
@@ -20703,6 +20841,16 @@ var OracleSetup = /* @__PURE__ */ ((OracleSetup3) => {
20703
20841
  OracleSetup3["JuplendPythPull"] = "JuplendPythPull";
20704
20842
  OracleSetup3["JuplendSwitchboardPull"] = "JuplendSwitchboardPull";
20705
20843
  OracleSetup3["FixedJuplend"] = "FixedJuplend";
20844
+ OracleSetup3["Scope"] = "Scope";
20845
+ OracleSetup3["PythMSOL"] = "PythMSOL";
20846
+ OracleSetup3["KaminoMSOL"] = "KaminoMSOL";
20847
+ OracleSetup3["JuplendMSOL"] = "JuplendMSOL";
20848
+ OracleSetup3["PythLST"] = "PythLST";
20849
+ OracleSetup3["KaminoLST"] = "KaminoLST";
20850
+ OracleSetup3["JuplendLST"] = "JuplendLST";
20851
+ OracleSetup3["PTPyth"] = "PTPyth";
20852
+ OracleSetup3["PTFixed"] = "PTFixed";
20853
+ OracleSetup3["Unknown"] = "Unknown";
20706
20854
  return OracleSetup3;
20707
20855
  })(OracleSetup || {});
20708
20856
  var AssetTag = /* @__PURE__ */ ((AssetTag3) => {
@@ -21764,8 +21912,26 @@ function serializeOracleSetupToIndex(oracleSetup) {
21764
21912
  return 16;
21765
21913
  case "FixedJuplend" /* FixedJuplend */:
21766
21914
  return 17;
21915
+ case "Scope" /* Scope */:
21916
+ return 18;
21917
+ case "PythMSOL" /* PythMSOL */:
21918
+ return 19;
21919
+ case "KaminoMSOL" /* KaminoMSOL */:
21920
+ return 20;
21921
+ case "JuplendMSOL" /* JuplendMSOL */:
21922
+ return 21;
21923
+ case "PythLST" /* PythLST */:
21924
+ return 22;
21925
+ case "KaminoLST" /* KaminoLST */:
21926
+ return 23;
21927
+ case "JuplendLST" /* JuplendLST */:
21928
+ return 24;
21929
+ case "PTPyth" /* PTPyth */:
21930
+ return 25;
21931
+ case "PTFixed" /* PTFixed */:
21932
+ return 26;
21767
21933
  default:
21768
- return 0;
21934
+ throw new Error(`Cannot serialize oracle setup "${oracleSetup}"`);
21769
21935
  }
21770
21936
  }
21771
21937
  function serializeOracleSetup(oracleSetup) {
@@ -21806,6 +21972,24 @@ function serializeOracleSetup(oracleSetup) {
21806
21972
  return { juplendSwitchboardPull: {} };
21807
21973
  case "FixedJuplend" /* FixedJuplend */:
21808
21974
  return { fixedJuplend: {} };
21975
+ case "Scope" /* Scope */:
21976
+ return { scope: {} };
21977
+ case "PythMSOL" /* PythMSOL */:
21978
+ return { pythMsol: {} };
21979
+ case "KaminoMSOL" /* KaminoMSOL */:
21980
+ return { kaminoMsol: {} };
21981
+ case "JuplendMSOL" /* JuplendMSOL */:
21982
+ return { juplendMsol: {} };
21983
+ case "PythLST" /* PythLST */:
21984
+ return { pythLst: {} };
21985
+ case "KaminoLST" /* KaminoLST */:
21986
+ return { kaminoLst: {} };
21987
+ case "JuplendLST" /* JuplendLST */:
21988
+ return { juplendLst: {} };
21989
+ case "PTPyth" /* PTPyth */:
21990
+ return { ptPyth: {} };
21991
+ case "PTFixed" /* PTFixed */:
21992
+ return { ptFixed: {} };
21809
21993
  default:
21810
21994
  throw new Error(`Invalid oracle setup "${oracleSetup}"`);
21811
21995
  }
@@ -21919,7 +22103,8 @@ function toBankConfigDto(bankConfig) {
21919
22103
  interestRateConfig: toInterestRateConfigDto(bankConfig.interestRateConfig),
21920
22104
  configFlags: bankConfig.configFlags,
21921
22105
  oracleMaxConfidence: bankConfig.oracleMaxConfidence,
21922
- fixedPrice: bankConfig.fixedPrice.toString()
22106
+ fixedPrice: bankConfig.fixedPrice.toString(),
22107
+ scopeEntryIndex: bankConfig.scopeEntryIndex
21923
22108
  };
21924
22109
  }
21925
22110
  function toInterestRateConfigDto(interestRateConfig) {
@@ -22025,7 +22210,8 @@ function bankConfigToBankConfigRaw(config) {
22025
22210
  totalAssetValueInitLimit: new BN9(config.totalAssetValueInitLimit.toString()),
22026
22211
  oracleMaxAge: config.oracleMaxAge,
22027
22212
  oracleMaxConfidence: config.oracleMaxConfidence,
22028
- fixedPrice: bigNumberToWrappedI80F48(config.fixedPrice)
22213
+ fixedPrice: bigNumberToWrappedI80F48(config.fixedPrice),
22214
+ scopeEntryIndex: config.scopeEntryIndex
22029
22215
  };
22030
22216
  }
22031
22217
  function bankConfigRawToDto(bankConfigRaw) {
@@ -22046,7 +22232,8 @@ function bankConfigRawToDto(bankConfigRaw) {
22046
22232
  interestRateConfig: bankConfigRaw.interestRateConfig,
22047
22233
  configFlags: bankConfigRaw.configFlags,
22048
22234
  oracleMaxConfidence: bankConfigRaw.oracleMaxConfidence,
22049
- fixedPrice: bankConfigRaw.fixedPrice
22235
+ fixedPrice: bankConfigRaw.fixedPrice,
22236
+ scopeEntryIndex: bankConfigRaw.scopeEntryIndex
22050
22237
  };
22051
22238
  }
22052
22239
 
@@ -22334,7 +22521,8 @@ function dtoToBankConfig(bankConfigDto) {
22334
22521
  oracleMaxAge: bankConfigDto.oracleMaxAge,
22335
22522
  interestRateConfig: dtoToInterestRateConfig(bankConfigDto.interestRateConfig),
22336
22523
  oracleMaxConfidence: bankConfigDto.oracleMaxConfidence,
22337
- fixedPrice: new BigNumber3(bankConfigDto.fixedPrice)
22524
+ fixedPrice: new BigNumber3(bankConfigDto.fixedPrice),
22525
+ scopeEntryIndex: bankConfigDto.scopeEntryIndex ?? 0
22338
22526
  };
22339
22527
  }
22340
22528
  function dtoToInterestRateConfig(interestRateConfigDto) {
@@ -22447,7 +22635,8 @@ function dtoToBankConfigRaw(bankConfigDto) {
22447
22635
  oracleMaxAge: bankConfigDto.oracleMaxAge,
22448
22636
  interestRateConfig: bankConfigDto.interestRateConfig,
22449
22637
  oracleMaxConfidence: bankConfigDto.oracleMaxConfidence,
22450
- fixedPrice: bankConfigDto.fixedPrice
22638
+ fixedPrice: bankConfigDto.fixedPrice,
22639
+ scopeEntryIndex: bankConfigDto.scopeEntryIndex ?? 0
22451
22640
  };
22452
22641
  }
22453
22642
  function parseBankConfigRaw(bankConfigRaw) {
@@ -22487,6 +22676,7 @@ function parseBankConfigRaw(bankConfigRaw) {
22487
22676
  };
22488
22677
  const oracleMaxConfidence = bankConfigRaw.oracleMaxConfidence;
22489
22678
  const fixedPrice = wrappedI80F48toBigNumber(bankConfigRaw.fixedPrice);
22679
+ const scopeEntryIndex = bankConfigRaw.scopeEntryIndex ?? 0;
22490
22680
  return {
22491
22681
  assetWeightInit,
22492
22682
  assetWeightMaint,
@@ -22504,7 +22694,8 @@ function parseBankConfigRaw(bankConfigRaw) {
22504
22694
  oracleMaxAge,
22505
22695
  interestRateConfig,
22506
22696
  oracleMaxConfidence,
22507
- fixedPrice
22697
+ fixedPrice,
22698
+ scopeEntryIndex
22508
22699
  };
22509
22700
  }
22510
22701
  function parseRiskTier(riskTierRaw) {
@@ -22566,18 +22757,36 @@ function parseOracleSetup(oracleSetupRaw) {
22566
22757
  return "SolendPythPull" /* SolendPythPull */;
22567
22758
  case "solendswitchboardpull":
22568
22759
  return "SolendSwitchboardPull" /* SolendSwitchboardPull */;
22569
- case "FixedKamino":
22760
+ case "fixedkamino":
22570
22761
  return "FixedKamino" /* FixedKamino */;
22571
- case "FixedDrift":
22762
+ case "fixeddrift":
22572
22763
  return "FixedDrift" /* FixedDrift */;
22573
22764
  case "juplendpythpull":
22574
22765
  return "JuplendPythPull" /* JuplendPythPull */;
22575
22766
  case "juplendswitchboardpull":
22576
22767
  return "JuplendSwitchboardPull" /* JuplendSwitchboardPull */;
22577
- case "FixedJuplend":
22768
+ case "fixedjuplend":
22578
22769
  return "FixedJuplend" /* FixedJuplend */;
22770
+ case "scope":
22771
+ return "Scope" /* Scope */;
22772
+ case "pythmsol":
22773
+ return "PythMSOL" /* PythMSOL */;
22774
+ case "kaminomsol":
22775
+ return "KaminoMSOL" /* KaminoMSOL */;
22776
+ case "juplendmsol":
22777
+ return "JuplendMSOL" /* JuplendMSOL */;
22778
+ case "pythlst":
22779
+ return "PythLST" /* PythLST */;
22780
+ case "kaminolst":
22781
+ return "KaminoLST" /* KaminoLST */;
22782
+ case "juplendlst":
22783
+ return "JuplendLST" /* JuplendLST */;
22784
+ case "ptpyth":
22785
+ return "PTPyth" /* PTPyth */;
22786
+ case "ptfixed":
22787
+ return "PTFixed" /* PTFixed */;
22579
22788
  default:
22580
- return "None" /* None */;
22789
+ return "Unknown" /* Unknown */;
22581
22790
  }
22582
22791
  }
22583
22792
  function getActiveEmodeFlags(flags) {
@@ -25708,6 +25917,17 @@ var categorizePythBanks = (banks) => {
25708
25917
  const juplendPythPullBanks = banks.filter(
25709
25918
  (bank) => bank.config.oracleSetup === "JuplendPythPull" /* JuplendPythPull */
25710
25919
  );
25920
+ const pythMultipliedBanks = banks.filter(
25921
+ (bank) => [
25922
+ "PythMSOL" /* PythMSOL */,
25923
+ "KaminoMSOL" /* KaminoMSOL */,
25924
+ "JuplendMSOL" /* JuplendMSOL */,
25925
+ "PythLST" /* PythLST */,
25926
+ "KaminoLST" /* KaminoLST */,
25927
+ "JuplendLST" /* JuplendLST */,
25928
+ "PTPyth" /* PTPyth */
25929
+ ].includes(bank.config.oracleSetup)
25930
+ );
25711
25931
  return {
25712
25932
  pythLegacyBanks,
25713
25933
  pythPushBanks,
@@ -25715,7 +25935,8 @@ var categorizePythBanks = (banks) => {
25715
25935
  pythPushKaminosBanks,
25716
25936
  driftPythPullBanks,
25717
25937
  solendPythPullBanks,
25718
- juplendPythPullBanks
25938
+ juplendPythPullBanks,
25939
+ pythMultipliedBanks
25719
25940
  };
25720
25941
  };
25721
25942
  var convertVoteAccCoeffsToBankCoeffs = (pythStakedCollateralBanks, validatorVoteAccountByBank, voteAccCoeffs) => {
@@ -25732,7 +25953,7 @@ var extractPythOracleKeys = (pythBanks) => {
25732
25953
  const keys = pythBanks.map((bank) => bank.config.oracleKeys[0].toBase58());
25733
25954
  return [...keys];
25734
25955
  };
25735
- var mapPythBanksToOraclePrices = (pythPushBanks, pythStakedCollateralBanks, oraclePrices, priceCoeffByBank) => {
25956
+ var mapPythBanksToOraclePrices = (pythPushBanks, multipliedBanks, oraclePrices, priceCoeffByBank) => {
25736
25957
  const bankOraclePriceMap = /* @__PURE__ */ new Map();
25737
25958
  pythPushBanks.forEach((bank) => {
25738
25959
  const oracleKey = bank.config.oracleKeys[0].toBase58();
@@ -25741,7 +25962,7 @@ var mapPythBanksToOraclePrices = (pythPushBanks, pythStakedCollateralBanks, orac
25741
25962
  bankOraclePriceMap.set(bank.address.toBase58(), oraclePrice);
25742
25963
  }
25743
25964
  });
25744
- pythStakedCollateralBanks.forEach((bank) => {
25965
+ multipliedBanks.forEach((bank) => {
25745
25966
  const priceCoeff = priceCoeffByBank[bank.address.toBase58()];
25746
25967
  const oracleKey = bank.config.oracleKeys[0]?.toBase58();
25747
25968
  if (oracleKey && priceCoeff !== void 0) {
@@ -25759,7 +25980,7 @@ var mapPythBanksToOraclePrices = (pythPushBanks, pythStakedCollateralBanks, orac
25759
25980
  };
25760
25981
  var adjustPriceComponent = (priceComponent, priceCoeff) => ({
25761
25982
  price: priceComponent.price.multipliedBy(priceCoeff),
25762
- confidence: priceComponent.confidence,
25983
+ confidence: priceComponent.confidence.multipliedBy(priceCoeff),
25763
25984
  lowestPrice: priceComponent.lowestPrice.multipliedBy(priceCoeff),
25764
25985
  highestPrice: priceComponent.highestPrice.multipliedBy(priceCoeff)
25765
25986
  });
@@ -25811,6 +26032,7 @@ var ORACLE_SOURCES = {
25811
26032
  switchboard: "Switchboard",
25812
26033
  pyth: "Pyth",
25813
26034
  fixed: "Fixed",
26035
+ scope: "Scope",
25814
26036
  unknown: "Unknown"
25815
26037
  };
25816
26038
  function getOracleSourceNameFromKey(oracleSourceKey) {
@@ -25837,14 +26059,25 @@ function getOracleSourceFromOracleSetup(oracleSetup) {
25837
26059
  case "DriftPythPull" /* DriftPythPull */:
25838
26060
  case "SolendPythPull" /* SolendPythPull */:
25839
26061
  case "JuplendPythPull" /* JuplendPythPull */:
26062
+ case "PythMSOL" /* PythMSOL */:
26063
+ case "KaminoMSOL" /* KaminoMSOL */:
26064
+ case "JuplendMSOL" /* JuplendMSOL */:
26065
+ case "PythLST" /* PythLST */:
26066
+ case "KaminoLST" /* KaminoLST */:
26067
+ case "JuplendLST" /* JuplendLST */:
26068
+ case "PTPyth" /* PTPyth */:
25840
26069
  oracleSourceKey = "pyth";
25841
26070
  break;
25842
26071
  case "Fixed" /* Fixed */:
25843
26072
  case "FixedKamino" /* FixedKamino */:
25844
26073
  case "FixedDrift" /* FixedDrift */:
25845
26074
  case "FixedJuplend" /* FixedJuplend */:
26075
+ case "PTFixed" /* PTFixed */:
25846
26076
  oracleSourceKey = "fixed";
25847
26077
  break;
26078
+ case "Scope" /* Scope */:
26079
+ oracleSourceKey = "scope";
26080
+ break;
25848
26081
  default:
25849
26082
  oracleSourceKey = "unknown";
25850
26083
  break;
@@ -27319,6 +27552,19 @@ function computeBankRiskAccountKeys(bank) {
27319
27552
  if (bank.config.assetTag === 3 /* KAMINO */ || bank.config.assetTag === 4 /* DRIFT */ || bank.config.assetTag === 5 /* SOLEND */ || bank.config.assetTag === 6 /* JUPLEND */) {
27320
27553
  keys.push(bank.config.oracleKeys[1]);
27321
27554
  }
27555
+ switch (bank.config.oracleSetup) {
27556
+ case "PythMSOL" /* PythMSOL */:
27557
+ case "PythLST" /* PythLST */:
27558
+ case "PTPyth" /* PTPyth */:
27559
+ keys.push(bank.config.oracleKeys[1]);
27560
+ break;
27561
+ case "KaminoMSOL" /* KaminoMSOL */:
27562
+ case "JuplendMSOL" /* JuplendMSOL */:
27563
+ case "KaminoLST" /* KaminoLST */:
27564
+ case "JuplendLST" /* JuplendLST */:
27565
+ keys.push(bank.config.oracleKeys[2]);
27566
+ break;
27567
+ }
27322
27568
  if (bank.config.assetTag === 2 /* STAKED */) {
27323
27569
  keys.push(bank.config.oracleKeys[1], bank.config.oracleKeys[2]);
27324
27570
  const onrampKey = bank.config.oracleKeys[3];
@@ -72073,7 +72319,9 @@ function decodeExponentVault(data) {
72073
72319
  finalSyExchangeRate: exponentNumberToBigNumber(
72074
72320
  get("final_sy_exchange_rate", "finalSyExchangeRate")
72075
72321
  ),
72076
- status: Number(get("status", "status") ?? 0)
72322
+ status: Number(get("status", "status") ?? 0),
72323
+ startTs: Number(get("start_ts", "startTs") ?? 0),
72324
+ duration: Number(get("duration", "duration") ?? 0)
72077
72325
  };
72078
72326
  }
72079
72327
  function decodeExponentMarketVault(data) {
@@ -74942,6 +75190,82 @@ function makeRefreshIntegrationBanksIxs(marginfiAccount, bankMap, banksToExclude
74942
75190
  keys: [...kaminoRefreshIxs.keys, ...updateDriftMarketIxs.keys, ...updateJupLendRateIxs.keys]
74943
75191
  };
74944
75192
  }
75193
+ new PublicKey("HFn8GnPADiny6XqUoWE8uRPPxb29ikn4yTuPa9MF2fWJ");
75194
+ var SCOPE_ORACLE_PRICES_DISCRIMINATOR = Buffer.from([89, 128, 118, 221, 6, 72, 180, 146]);
75195
+ var SCOPE_MAX_ENTRIES = 512;
75196
+ var ENTRIES_OFFSET = 40;
75197
+ var DATED_PRICE_SIZE = 56;
75198
+ var SCOPE_ORACLE_PRICES_SIZE = ENTRIES_OFFSET + SCOPE_MAX_ENTRIES * DATED_PRICE_SIZE;
75199
+ function decodeScopePriceAtIndex(data, entryIndex) {
75200
+ if (data.length !== SCOPE_ORACLE_PRICES_SIZE) {
75201
+ throw new Error(`Invalid Scope OraclePrices account size: ${data.length}`);
75202
+ }
75203
+ if (!data.subarray(0, 8).equals(SCOPE_ORACLE_PRICES_DISCRIMINATOR)) {
75204
+ throw new Error("Invalid Scope OraclePrices discriminator");
75205
+ }
75206
+ if (entryIndex < 0 || entryIndex >= SCOPE_MAX_ENTRIES) {
75207
+ throw new Error(`Scope entry index out of range: ${entryIndex}`);
75208
+ }
75209
+ const offset = ENTRIES_OFFSET + entryIndex * DATED_PRICE_SIZE;
75210
+ const value = data.readBigUInt64LE(offset);
75211
+ const exp = data.readBigUInt64LE(offset + 8);
75212
+ const lastUpdatedSlot = data.readBigUInt64LE(offset + 16);
75213
+ const unixTimestamp = data.readBigUInt64LE(offset + 24);
75214
+ const price = new BigNumber3(value.toString()).shiftedBy(-Number(exp));
75215
+ return {
75216
+ price,
75217
+ lastUpdatedSlot: Number(lastUpdatedSlot),
75218
+ unixTimestamp: Number(unixTimestamp)
75219
+ };
75220
+ }
75221
+ new PublicKey("MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD");
75222
+ var MARINADE_STATE_SIZE = 520;
75223
+ var MSOL_PRICE_OFFSET = 512;
75224
+ var MSOL_PRICE_PRECISION = new BigNumber3(2).pow(32);
75225
+ function decodeMarinadeState(data) {
75226
+ if (data.length !== MARINADE_STATE_SIZE) {
75227
+ throw new Error(`Invalid Marinade State account size: ${data.length}`);
75228
+ }
75229
+ const msolPriceRaw = data.readBigUInt64LE(MSOL_PRICE_OFFSET);
75230
+ return {
75231
+ msolPrice: new BigNumber3(msolPriceRaw.toString()).div(MSOL_PRICE_PRECISION)
75232
+ };
75233
+ }
75234
+ new PublicKey(
75235
+ "SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy"
75236
+ );
75237
+ new PublicKey(
75238
+ "SP12tWFxD9oJsVWNavTTBZvMbA6gkAmxtVgxdqvyvhY"
75239
+ );
75240
+ new PublicKey(
75241
+ "SPMBzsVUuoHA4Jm6KunbsotaahvVikZs1JyTW6iJvbn"
75242
+ );
75243
+ var ACCOUNT_TYPE_STAKE_POOL = 1;
75244
+ var TOTAL_LAMPORTS_OFFSET = 258;
75245
+ var POOL_TOKEN_SUPPLY_OFFSET = 266;
75246
+ var LAST_UPDATE_EPOCH_OFFSET = 274;
75247
+ function decodeStakePool(data) {
75248
+ if (data.length < LAST_UPDATE_EPOCH_OFFSET + 8) {
75249
+ throw new Error(`Invalid StakePool account size: ${data.length}`);
75250
+ }
75251
+ if (data[0] !== ACCOUNT_TYPE_STAKE_POOL) {
75252
+ throw new Error(`Invalid StakePool account type: ${data[0]}`);
75253
+ }
75254
+ const totalLamports = data.readBigUInt64LE(TOTAL_LAMPORTS_OFFSET);
75255
+ const poolTokenSupply = data.readBigUInt64LE(POOL_TOKEN_SUPPLY_OFFSET);
75256
+ const lastUpdateEpoch = Number(data.readBigUInt64LE(LAST_UPDATE_EPOCH_OFFSET));
75257
+ if (poolTokenSupply === 0n) {
75258
+ throw new Error("StakePool has zero token supply");
75259
+ }
75260
+ return {
75261
+ totalLamports,
75262
+ poolTokenSupply,
75263
+ lastUpdateEpoch,
75264
+ exchangeRate: new BigNumber3(totalLamports.toString()).div(
75265
+ new BigNumber3(poolTokenSupply.toString())
75266
+ )
75267
+ };
75268
+ }
74945
75269
  var GAMMA_VAULT_PROGRAM_ID = new PublicKey(
74946
75270
  "GaMmanX9i4jGmqDZZD2tbD6B2v9p21btenPneMXnTczV"
74947
75271
  );
@@ -80549,16 +80873,17 @@ function chunkArray(array4, chunkSize) {
80549
80873
  }
80550
80874
 
80551
80875
  // src/services/price/services/pyth-oracle.service.ts
80552
- var fetchPythOracleData = async (banks, opts) => {
80876
+ var fetchPythOracleData = async (banks, opts, priceCoeffByBank = {}) => {
80553
80877
  const {
80554
80878
  pythPushBanks,
80555
80879
  pythStakedCollateralBanks,
80556
80880
  pythPushKaminosBanks,
80557
80881
  driftPythPullBanks,
80558
80882
  solendPythPullBanks,
80559
- juplendPythPullBanks
80883
+ juplendPythPullBanks,
80884
+ pythMultipliedBanks
80560
80885
  } = categorizePythBanks(banks);
80561
- if (!pythPushBanks.length && !pythStakedCollateralBanks.length && !pythPushKaminosBanks.length && !driftPythPullBanks.length && !solendPythPullBanks.length && !juplendPythPullBanks.length) {
80886
+ if (!pythPushBanks.length && !pythStakedCollateralBanks.length && !pythPushKaminosBanks.length && !driftPythPullBanks.length && !solendPythPullBanks.length && !juplendPythPullBanks.length && !pythMultipliedBanks.length) {
80562
80887
  return {
80563
80888
  bankOraclePriceMap: /* @__PURE__ */ new Map()
80564
80889
  };
@@ -80569,9 +80894,9 @@ var fetchPythOracleData = async (banks, opts) => {
80569
80894
  ...pythPushKaminosBanks,
80570
80895
  ...driftPythPullBanks,
80571
80896
  ...solendPythPullBanks,
80572
- ...juplendPythPullBanks
80897
+ ...juplendPythPullBanks,
80898
+ ...pythMultipliedBanks
80573
80899
  ];
80574
- const priceCoeffByBank = {};
80575
80900
  const pythOracleKeys = extractPythOracleKeys(combinedPythBanks);
80576
80901
  const uniquePythOracleKeys = Array.from(new Set(pythOracleKeys));
80577
80902
  let oraclePrices;
@@ -80586,10 +80911,15 @@ var fetchPythOracleData = async (banks, opts) => {
80586
80911
  }
80587
80912
  const bankOraclePriceMap = mapPythBanksToOraclePrices(
80588
80913
  combinedPythBanks,
80589
- pythStakedCollateralBanks,
80914
+ [...pythStakedCollateralBanks, ...pythMultipliedBanks],
80590
80915
  oraclePrices,
80591
80916
  priceCoeffByBank
80592
80917
  );
80918
+ pythMultipliedBanks.forEach((bank) => {
80919
+ if (priceCoeffByBank[bank.address.toBase58()] === void 0) {
80920
+ bankOraclePriceMap.delete(bank.address.toBase58());
80921
+ }
80922
+ });
80593
80923
  return {
80594
80924
  bankOraclePriceMap
80595
80925
  };
@@ -80861,16 +81191,242 @@ async function fetchSingleCrossbarChunk(endpoint, swbFeedIdsChunk, isPrimary) {
80861
81191
  throw error;
80862
81192
  }
80863
81193
  }
81194
+ var scopeRequestKey = (bank) => `${bank.config.oracleKeys[0].toBase58()}:${bank.config.scopeEntryIndex}`;
81195
+ var fetchScopeOracleData = async (banks, opts) => {
81196
+ const scopeBanks = banks.filter((bank) => getOracleSourceFromBank(bank).key === "scope");
81197
+ if (!scopeBanks.length) {
81198
+ return {
81199
+ bankOraclePriceMap: /* @__PURE__ */ new Map()
81200
+ };
81201
+ }
81202
+ const uniqueRequestKeys = Array.from(new Set(scopeBanks.map(scopeRequestKey)));
81203
+ let oraclePrices;
81204
+ if (opts.mode === "api") {
81205
+ oraclePrices = await fetchScopeOraclePricesFromAPI(
81206
+ uniqueRequestKeys,
81207
+ opts.scopeOnchainData.endpoint,
81208
+ { queryKey: opts.scopeOnchainData.queryKey }
81209
+ );
81210
+ } else {
81211
+ oraclePrices = await fetchScopeOraclePricesFromChain(uniqueRequestKeys, opts.connection);
81212
+ }
81213
+ const bankOraclePriceMap = /* @__PURE__ */ new Map();
81214
+ const nowSeconds = Math.floor(Date.now() / 1e3);
81215
+ scopeBanks.forEach((bank) => {
81216
+ let oraclePrice = oraclePrices[scopeRequestKey(bank)];
81217
+ const isStale = !oraclePrice || nowSeconds - oraclePrice.timestamp.toNumber() > bank.config.oracleMaxAge;
81218
+ if (isStale) {
81219
+ oraclePrice = {
81220
+ priceRealtime: {
81221
+ price: new BigNumber3(0),
81222
+ confidence: new BigNumber3(0),
81223
+ lowestPrice: new BigNumber3(0),
81224
+ highestPrice: new BigNumber3(0)
81225
+ },
81226
+ priceWeighted: {
81227
+ price: new BigNumber3(0),
81228
+ confidence: new BigNumber3(0),
81229
+ lowestPrice: new BigNumber3(0),
81230
+ highestPrice: new BigNumber3(0)
81231
+ },
81232
+ timestamp: oraclePrice?.timestamp ?? new BigNumber3(0)
81233
+ };
81234
+ }
81235
+ bankOraclePriceMap.set(bank.address.toBase58(), oraclePrice);
81236
+ });
81237
+ return {
81238
+ bankOraclePriceMap
81239
+ };
81240
+ };
81241
+ var fetchScopeOraclePricesFromAPI = async (requestKeys, apiEndpoint, opts) => {
81242
+ const queryKey = opts?.queryKey ?? "scopeKeys";
81243
+ const response = await fetch(`${apiEndpoint}?${queryKey}=${requestKeys.join(",")}`);
81244
+ if (!response.ok) {
81245
+ throw new Error("Failed to fetch scope oracle data");
81246
+ }
81247
+ const { data } = await response.json();
81248
+ return Object.fromEntries(
81249
+ Object.entries(data).map(([key, oraclePrice]) => [
81250
+ key,
81251
+ {
81252
+ priceRealtime: {
81253
+ price: BigNumber3(oraclePrice.priceRealtime.price),
81254
+ confidence: BigNumber3(oraclePrice.priceRealtime.confidence),
81255
+ lowestPrice: BigNumber3(oraclePrice.priceRealtime.lowestPrice),
81256
+ highestPrice: BigNumber3(oraclePrice.priceRealtime.highestPrice)
81257
+ },
81258
+ priceWeighted: {
81259
+ price: BigNumber3(oraclePrice.priceWeighted.price),
81260
+ confidence: BigNumber3(oraclePrice.priceWeighted.confidence),
81261
+ lowestPrice: BigNumber3(oraclePrice.priceWeighted.lowestPrice),
81262
+ highestPrice: BigNumber3(oraclePrice.priceWeighted.highestPrice)
81263
+ },
81264
+ timestamp: BigNumber3(oraclePrice.timestamp)
81265
+ }
81266
+ ])
81267
+ );
81268
+ };
81269
+ var fetchScopeOraclePricesFromChain = async (requestKeys, connection) => {
81270
+ const uniqueOracleKeys = Array.from(new Set(requestKeys.map((key) => key.split(":")[0])));
81271
+ const oracleAis = await chunkedGetRawMultipleAccountInfoOrdered(connection, uniqueOracleKeys);
81272
+ const accountDataByKey = {};
81273
+ uniqueOracleKeys.forEach((oracleKey, index) => {
81274
+ accountDataByKey[oracleKey] = oracleAis[index]?.data;
81275
+ });
81276
+ const oraclePriceByRequestKey = {};
81277
+ for (const requestKey of requestKeys) {
81278
+ const [oracleKey, entryIndexRaw] = requestKey.split(":");
81279
+ const data = accountDataByKey[oracleKey];
81280
+ let price = new BigNumber3(0);
81281
+ let timestamp = new BigNumber3(0);
81282
+ if (data) {
81283
+ try {
81284
+ const entry = decodeScopePriceAtIndex(data, Number(entryIndexRaw));
81285
+ price = entry.price;
81286
+ timestamp = new BigNumber3(entry.unixTimestamp);
81287
+ } catch (e) {
81288
+ console.error(`Failed to decode scope entry ${requestKey}`, e);
81289
+ }
81290
+ }
81291
+ oraclePriceByRequestKey[requestKey] = {
81292
+ priceRealtime: {
81293
+ price,
81294
+ confidence: new BigNumber3(0),
81295
+ lowestPrice: price,
81296
+ highestPrice: price
81297
+ },
81298
+ priceWeighted: {
81299
+ price,
81300
+ confidence: new BigNumber3(0),
81301
+ lowestPrice: price,
81302
+ highestPrice: price
81303
+ },
81304
+ timestamp
81305
+ };
81306
+ }
81307
+ return oraclePriceByRequestKey;
81308
+ };
81309
+ function multiplierAccountKey(bank) {
81310
+ switch (bank.config.oracleSetup) {
81311
+ case "PythMSOL" /* PythMSOL */:
81312
+ case "PythLST" /* PythLST */:
81313
+ case "PTPyth" /* PTPyth */:
81314
+ return bank.config.oracleKeys[1];
81315
+ case "KaminoMSOL" /* KaminoMSOL */:
81316
+ case "JuplendMSOL" /* JuplendMSOL */:
81317
+ case "KaminoLST" /* KaminoLST */:
81318
+ case "JuplendLST" /* JuplendLST */:
81319
+ return bank.config.oracleKeys[2];
81320
+ case "PTFixed" /* PTFixed */:
81321
+ return bank.config.oracleKeys[0];
81322
+ default:
81323
+ return void 0;
81324
+ }
81325
+ }
81326
+ function computePtMultiplier(vault, startPrice, nowSeconds) {
81327
+ const maturity = vault.startTs + vault.duration;
81328
+ let expectedRate;
81329
+ if (vault.duration <= 0 || nowSeconds <= vault.startTs) {
81330
+ expectedRate = startPrice;
81331
+ } else if (nowSeconds >= maturity) {
81332
+ expectedRate = new BigNumber3(1);
81333
+ } else {
81334
+ const progress = new BigNumber3(nowSeconds - vault.startTs).div(vault.duration);
81335
+ expectedRate = startPrice.plus(new BigNumber3(1).minus(startPrice).times(progress));
81336
+ }
81337
+ if (vault.ptSupply === 0n) {
81338
+ throw new Error("Exponent vault has zero PT supply");
81339
+ }
81340
+ const syPerPt = new BigNumber3(vault.syForPt.toString()).div(
81341
+ new BigNumber3(vault.ptSupply.toString())
81342
+ );
81343
+ const redemptionCap = syPerPt.times(vault.lastSeenSyExchangeRate);
81344
+ return BigNumber3.min(expectedRate, redemptionCap);
81345
+ }
81346
+ var fetchOracleMultipliers = async (banks, opts) => {
81347
+ const multipliedBanks = banks.filter((bank) => multiplierAccountKey(bank) !== void 0);
81348
+ if (!multipliedBanks.length) {
81349
+ return {};
81350
+ }
81351
+ if (opts.mode === "api") {
81352
+ return fetchOracleMultipliersFromAPI(
81353
+ multipliedBanks.map((bank) => bank.address.toBase58()),
81354
+ opts.multiplierData.endpoint,
81355
+ { queryKey: opts.multiplierData.queryKey }
81356
+ );
81357
+ }
81358
+ return fetchOracleMultipliersFromChain(multipliedBanks, opts.connection);
81359
+ };
81360
+ var fetchOracleMultipliersFromAPI = async (bankAddresses, apiEndpoint, opts) => {
81361
+ const queryKey = opts?.queryKey ?? "bankAddresses";
81362
+ const response = await fetch(`${apiEndpoint}?${queryKey}=${bankAddresses.join(",")}`);
81363
+ if (!response.ok) {
81364
+ throw new Error("Failed to fetch price multiplier data");
81365
+ }
81366
+ const { data } = await response.json();
81367
+ return Object.fromEntries(
81368
+ Object.entries(data).map(([bankAddress, multiplier]) => [bankAddress, Number(multiplier)])
81369
+ );
81370
+ };
81371
+ var fetchOracleMultipliersFromChain = async (multipliedBanks, connection) => {
81372
+ const accountKeyByBank = new Map(
81373
+ multipliedBanks.map((bank) => [bank.address.toBase58(), multiplierAccountKey(bank).toBase58()])
81374
+ );
81375
+ const uniqueAccountKeys = Array.from(new Set(accountKeyByBank.values()));
81376
+ const accountAis = await chunkedGetRawMultipleAccountInfoOrdered(connection, uniqueAccountKeys);
81377
+ const accountDataByKey = {};
81378
+ uniqueAccountKeys.forEach((accountKey, index) => {
81379
+ accountDataByKey[accountKey] = accountAis[index]?.data;
81380
+ });
81381
+ const multiplierByBank = {};
81382
+ const nowSeconds = Math.floor(Date.now() / 1e3);
81383
+ for (const bank of multipliedBanks) {
81384
+ const bankAddress = bank.address.toBase58();
81385
+ const data = accountDataByKey[accountKeyByBank.get(bankAddress)];
81386
+ if (!data) {
81387
+ console.error(`Missing multiplier account for bank ${bankAddress}`);
81388
+ continue;
81389
+ }
81390
+ try {
81391
+ switch (bank.config.oracleSetup) {
81392
+ case "PythMSOL" /* PythMSOL */:
81393
+ case "KaminoMSOL" /* KaminoMSOL */:
81394
+ case "JuplendMSOL" /* JuplendMSOL */:
81395
+ multiplierByBank[bankAddress] = decodeMarinadeState(data).msolPrice.toNumber();
81396
+ break;
81397
+ case "PythLST" /* PythLST */:
81398
+ case "KaminoLST" /* KaminoLST */:
81399
+ case "JuplendLST" /* JuplendLST */:
81400
+ multiplierByBank[bankAddress] = decodeStakePool(data).exchangeRate.toNumber();
81401
+ break;
81402
+ case "PTPyth" /* PTPyth */:
81403
+ case "PTFixed" /* PTFixed */:
81404
+ multiplierByBank[bankAddress] = computePtMultiplier(
81405
+ decodeExponentVault(data),
81406
+ bank.config.fixedPrice,
81407
+ nowSeconds
81408
+ ).toNumber();
81409
+ break;
81410
+ }
81411
+ } catch (e) {
81412
+ console.error(`Failed to compute multiplier for bank ${bankAddress}`, e);
81413
+ }
81414
+ }
81415
+ return multiplierByBank;
81416
+ };
80864
81417
  var fetchOracleData = async (banks, opts) => {
80865
81418
  const { zeroOracleBanks, isolatedAssetBanks, collateralAssetBanks, fixedAssetBanks } = classifyBanksForOracleStrategy(banks);
80866
81419
  const zeroResults = handleZeroOracleBanks(zeroOracleBanks);
80867
81420
  const fetchIsolatedPrice = opts?.isolatedBanksOpts?.fetchPrices ?? false;
80868
81421
  const isolatedResults = fetchIsolatedPrice ? handleIsolatedAssetBanks(isolatedAssetBanks, opts?.isolatedBanksOpts?.staticPricesByBank) : /* @__PURE__ */ new Map();
80869
- const fixedResults = handleFixedOracleBanks(fixedAssetBanks);
81422
+ const multiplierByBank = await fetchOracleMultipliers(banks, opts.oracleMultiplierOpts);
81423
+ const fixedResults = handleFixedOracleBanks(fixedAssetBanks, multiplierByBank);
80870
81424
  const assetBanks = [...collateralAssetBanks, ...fetchIsolatedPrice ? isolatedAssetBanks : []];
80871
81425
  const assetResults = await handleAssetBanks(assetBanks, {
80872
81426
  pythOpts: opts.pythOpts,
80873
- swbOpts: opts.swbOpts
81427
+ swbOpts: opts.swbOpts,
81428
+ scopeOpts: opts.scopeOpts,
81429
+ priceCoeffByBank: multiplierByBank
80874
81430
  });
80875
81431
  return mergeOracleResults([zeroResults, isolatedResults, assetResults, fixedResults], banks);
80876
81432
  };
@@ -80904,10 +81460,11 @@ function classifyBanksForOracleStrategy(banks) {
80904
81460
  fixedAssetBanks
80905
81461
  };
80906
81462
  }
80907
- function handleFixedOracleBanks(banks) {
81463
+ function handleFixedOracleBanks(banks, multiplierByBank) {
80908
81464
  const oracleMap = /* @__PURE__ */ new Map();
80909
81465
  banks.forEach((bank) => {
80910
- const fixedPrice = bank.config.fixedPrice;
81466
+ const multiplier = multiplierByBank[bank.address.toBase58()];
81467
+ const fixedPrice = bank.config.oracleSetup === "PTFixed" /* PTFixed */ && multiplier !== void 0 ? BigNumber3(multiplier) : bank.config.fixedPrice;
80911
81468
  const fixedOraclePrice = {
80912
81469
  priceRealtime: {
80913
81470
  price: fixedPrice,
@@ -80976,9 +81533,10 @@ async function handleAssetBanks(banks, opts) {
80976
81533
  if (banks.length === 0) {
80977
81534
  return /* @__PURE__ */ new Map();
80978
81535
  }
80979
- const [pythData, swbData] = await Promise.all([
80980
- fetchPythOracleData(banks, opts.pythOpts),
80981
- fetchSwbOracleData(banks, opts.swbOpts)
81536
+ const [pythData, swbData, scopeData] = await Promise.all([
81537
+ fetchPythOracleData(banks, opts.pythOpts, opts.priceCoeffByBank),
81538
+ fetchSwbOracleData(banks, opts.swbOpts),
81539
+ fetchScopeOracleData(banks, opts.scopeOpts)
80982
81540
  ]);
80983
81541
  const bankOraclePriceMap = /* @__PURE__ */ new Map();
80984
81542
  pythData.bankOraclePriceMap.forEach((oraclePrice, bankAddress) => {
@@ -80987,6 +81545,9 @@ async function handleAssetBanks(banks, opts) {
80987
81545
  swbData.bankOraclePriceMap.forEach((oraclePrice, bankAddress) => {
80988
81546
  bankOraclePriceMap.set(bankAddress, oraclePrice);
80989
81547
  });
81548
+ scopeData.bankOraclePriceMap.forEach((oraclePrice, bankAddress) => {
81549
+ bankOraclePriceMap.set(bankAddress, oraclePrice);
81550
+ });
80990
81551
  banks.forEach((bank) => {
80991
81552
  const bankAddress = bank.address.toBase58();
80992
81553
  const oraclePrice = bankOraclePriceMap.get(bankAddress);
@@ -83369,7 +83930,8 @@ var Bank = class _Bank {
83369
83930
  bankType.config.operationalState,
83370
83931
  bankType.config.oracleMaxConfidence,
83371
83932
  bankType.config.fixedPrice,
83372
- bankType.config.configFlags
83933
+ bankType.config.configFlags,
83934
+ bankType.config.scopeEntryIndex
83373
83935
  );
83374
83936
  return new _Bank(
83375
83937
  bankType.address,
@@ -83538,7 +84100,7 @@ var Bank = class _Bank {
83538
84100
  }
83539
84101
  };
83540
84102
  var BankConfig = class _BankConfig {
83541
- constructor(assetWeightInit, assetWeightMaint, liabilityWeightInit, liabilityWeightMaint, depositLimit, borrowLimit, riskTier, totalAssetValueInitLimit, assetTag, oracleSetup, oracleKeys, oracleMaxAge, interestRateConfig, operationalState, oracleMaxConfidence, fixedPrice, configFlags) {
84103
+ constructor(assetWeightInit, assetWeightMaint, liabilityWeightInit, liabilityWeightMaint, depositLimit, borrowLimit, riskTier, totalAssetValueInitLimit, assetTag, oracleSetup, oracleKeys, oracleMaxAge, interestRateConfig, operationalState, oracleMaxConfidence, fixedPrice, configFlags, scopeEntryIndex = 0) {
83542
84104
  this.assetWeightInit = assetWeightInit;
83543
84105
  this.assetWeightMaint = assetWeightMaint;
83544
84106
  this.liabilityWeightInit = liabilityWeightInit;
@@ -83556,6 +84118,7 @@ var BankConfig = class _BankConfig {
83556
84118
  this.oracleMaxConfidence = oracleMaxConfidence;
83557
84119
  this.fixedPrice = fixedPrice;
83558
84120
  this.configFlags = configFlags;
84121
+ this.scopeEntryIndex = scopeEntryIndex;
83559
84122
  }
83560
84123
  static fromAccountParsed(bankConfigRaw) {
83561
84124
  const bankConfig = parseBankConfigRaw(bankConfigRaw);
@@ -83576,7 +84139,8 @@ var BankConfig = class _BankConfig {
83576
84139
  bankConfig.operationalState,
83577
84140
  bankConfig.oracleMaxConfidence,
83578
84141
  bankConfig.fixedPrice,
83579
- bankConfig.configFlags
84142
+ bankConfig.configFlags,
84143
+ bankConfig.scopeEntryIndex
83580
84144
  );
83581
84145
  }
83582
84146
  };
@@ -84755,6 +85319,14 @@ var Project0Client = class _Project0Client {
84755
85319
  mode: "on-chain",
84756
85320
  connection
84757
85321
  },
85322
+ scopeOpts: {
85323
+ mode: "on-chain",
85324
+ connection
85325
+ },
85326
+ oracleMultiplierOpts: {
85327
+ mode: "on-chain",
85328
+ connection
85329
+ },
84758
85330
  isolatedBanksOpts: {
84759
85331
  fetchPrices: true
84760
85332
  }
@@ -84887,6 +85459,6 @@ var EmodeSettings = class _EmodeSettings {
84887
85459
  }
84888
85460
  };
84889
85461
 
84890
- export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_BRIDGE_MINTS, DEFAULT_CROSSBAR_URL, DEFAULT_FALLBACK_CROSSBAR_URL, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EXECUTION_HEADROOM_SECONDS, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SECONDS_PER_YEAR, SINGLE_POOL_PROGRAM_ID, STAKED_ORACLE_DISABLED_FLAG, STAKED_ORACLE_USES_ONRAMP_FLAG, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWAP_ADAPTERS, 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, U64_MAX, USDC_DECIMALS, USDC_MINT, USDT_MINT, VENUE_AVAILABLE_LIQUIDITY_BUFFER, WSOL_MINT, ZERO_ORACLE_KEY, accountConflictsWithBridgeBank, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRateLimiterRawToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, buildCollateralLegIxs, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkBatchOracleCrankability, checkJupiterFeeAccount, checkMultipleOraclesCrankability, checkTitanFeeAccount, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, classifyAndValidate, compileFlashloanPrecheck, composeBridgedSwap, composeRemainingAccounts, computeAccountValue, computeAccrualProjectionSeconds, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankAvailableLiquidity, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankProjectedAvailableLiquidity, computeBankRateLimitRemaining, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeGroupRateLimitRemainingUsd, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxDepositForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computeQuantity, computeQuantityUi, computeRateLimitWindowRemainingCapacity, computeRateLimiterRemainingCapacity, computeRemainingCapacity, computeSmartCrank, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, computeVenueAvailableLiquidity, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deserializeInstruction, deserializeLut, deserializeSwapEngineRequest, deserializeSwapEngineResult, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRateLimiter, dtoToBankRateLimiterRaw, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchGammaLpVault, fetchGammaWithdrawReceipt, fetchMarginfiAccountActiveBalancesForBank, fetchMarginfiAccountAddresses, fetchMarginfiAccountAddressesHoldingBank, fetchMarginfiAccountData, fetchMultipleBanks, 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, getEffectiveDepositLimit, getEmodePairs, getExactOutEstimate, getFallbackPricesByFeedId, getFallbackPricesForMints, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterReferralFeeAccount, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapAdapter, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isBorrowLimitActive, isBridgeConflictError, isDecomposableSwapError, isDepositIx, isDepositLimitActive, isFlashloan, isGroupRateLimiterEnabled, isStandardBorrowable, isStandardDepositable, isV0Tx, isWeightedPrice, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, 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, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSmartCrankSwbFeedIx, makeSmartCrankSwbFeedIxForAccounts, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateSwbFeedIx, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapBrokenFeedsToOraclePrices, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, mapSwbBanksToOraclePrices, marginfiAccountToDto, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, parseSwbOraclePriceData, partitionBanksByCrankability, patchDepositAmount, requireBank, requireTokenProgram, resolveAmount, resolveBridgeCandidateBanks, resolvePinnedSwapRoute, resolveTokenProgramForMint, resolveVaultTokenProgram, runSwapEngine, selectLutsForAccountAction, selectLutsForBanks, selectSwapBridges, serializeBankConfigOpt, serializeInstruction, serializeInterestRateConfig, serializeLut, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, serializeSwapEngineRequest, serializeSwapEngineResult, sharedBridgeLegContext, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, swapEngineProvidersFromOpts, swapEngineQuoteFieldsFromOpts, toBankConfigDto, toBankDto, toBankRateLimiterDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, tryBridgeCandidates, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
85462
+ export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_BRIDGE_MINTS, DEFAULT_CROSSBAR_URL, DEFAULT_FALLBACK_CROSSBAR_URL, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EXECUTION_HEADROOM_SECONDS, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SECONDS_PER_YEAR, SINGLE_POOL_PROGRAM_ID, STAKED_ORACLE_DISABLED_FLAG, STAKED_ORACLE_USES_ONRAMP_FLAG, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWAP_ADAPTERS, 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, U64_MAX, USDC_DECIMALS, USDC_MINT, USDT_MINT, VENUE_AVAILABLE_LIQUIDITY_BUFFER, WSOL_MINT, ZERO_ORACLE_KEY, accountConflictsWithBridgeBank, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRateLimiterRawToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, buildCollateralLegIxs, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkBatchOracleCrankability, checkJupiterFeeAccount, checkMultipleOraclesCrankability, checkTitanFeeAccount, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, classifyAndValidate, compileFlashloanPrecheck, composeBridgedSwap, composeRemainingAccounts, computeAccountValue, computeAccrualProjectionSeconds, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankAvailableLiquidity, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankProjectedAvailableLiquidity, computeBankRateLimitRemaining, computeBankRiskAccountKeys, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeGroupRateLimitRemainingUsd, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxDepositForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computePtMultiplier, computeQuantity, computeQuantityUi, computeRateLimitWindowRemainingCapacity, computeRateLimiterRemainingCapacity, computeRemainingCapacity, computeSmartCrank, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, computeVenueAvailableLiquidity, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deserializeInstruction, deserializeLut, deserializeSwapEngineRequest, deserializeSwapEngineResult, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRateLimiter, dtoToBankRateLimiterRaw, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchGammaLpVault, fetchGammaWithdrawReceipt, fetchMarginfiAccountActiveBalancesForBank, fetchMarginfiAccountAddresses, fetchMarginfiAccountAddressesHoldingBank, fetchMarginfiAccountData, fetchMultipleBanks, fetchNativeStakeAccounts, fetchOracleData, fetchOracleMultipliers, fetchOracleMultipliersFromAPI, fetchOracleMultipliersFromChain, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchScopeOracleData, fetchScopeOraclePricesFromAPI, fetchScopeOraclePricesFromChain, 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, getEffectiveDepositLimit, getEmodePairs, getExactOutEstimate, getFallbackPricesByFeedId, getFallbackPricesForMints, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterReferralFeeAccount, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapAdapter, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isBorrowLimitActive, isBridgeConflictError, isDecomposableSwapError, isDepositIx, isDepositLimitActive, isFlashloan, isGroupRateLimiterEnabled, isStandardBorrowable, isStandardDepositable, isV0Tx, isWeightedPrice, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, 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, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSmartCrankSwbFeedIx, makeSmartCrankSwbFeedIxForAccounts, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateSwbFeedIx, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapBrokenFeedsToOraclePrices, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, mapSwbBanksToOraclePrices, marginfiAccountToDto, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, parseSwbOraclePriceData, partitionBanksByCrankability, patchDepositAmount, requireBank, requireTokenProgram, resolveAmount, resolveBridgeCandidateBanks, resolvePinnedSwapRoute, resolveTokenProgramForMint, resolveVaultTokenProgram, runSwapEngine, selectLutsForAccountAction, selectLutsForBanks, selectSwapBridges, serializeBankConfigOpt, serializeInstruction, serializeInterestRateConfig, serializeLut, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, serializeSwapEngineRequest, serializeSwapEngineResult, sharedBridgeLegContext, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, swapEngineProvidersFromOpts, swapEngineQuoteFieldsFromOpts, toBankConfigDto, toBankDto, toBankRateLimiterDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, tryBridgeCandidates, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
84891
85463
  //# sourceMappingURL=index.js.map
84892
85464
  //# sourceMappingURL=index.js.map