@oydual31/more-vaults-sdk 1.1.21 → 1.1.23

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.
@@ -408,6 +408,10 @@ var USDC_TOKEN = Object.fromEntries(
408
408
 
409
409
  // src/viem/abis.ts
410
410
  var VAULT_ABI = [
411
+ // ── Errors (for proper revert decoding) ──
412
+ { type: "error", name: "WithdrawalQueueDisabled", inputs: [] },
413
+ { type: "error", name: "WithdrawalQueueEnabled", inputs: [] },
414
+ { type: "error", name: "RequestWithdrawDisabled", inputs: [] },
411
415
  {
412
416
  type: "function",
413
417
  name: "deposit",
@@ -1265,6 +1269,12 @@ var WhitelistQuotaExhaustedError = class extends MoreVaultsError {
1265
1269
  this.name = "WhitelistQuotaExhaustedError";
1266
1270
  }
1267
1271
  };
1272
+ var WithdrawalQueueDisabledError = class extends MoreVaultsError {
1273
+ constructor(vault) {
1274
+ super(`[MoreVaults] Withdrawal queue is disabled on vault ${vault}. Cannot call requestRedeem/requestWithdraw \u2014 use redeemShares/withdrawAssets directly, or smartRedeem which auto-selects the correct flow.`);
1275
+ this.name = "WithdrawalQueueDisabledError";
1276
+ }
1277
+ };
1268
1278
  var InsufficientLiquidityError = class extends MoreVaultsError {
1269
1279
  hubLiquid;
1270
1280
  required;
@@ -2268,6 +2278,9 @@ function parseContractError(err, vault, caller) {
2268
2278
  if (msg.includes("EnforcedPause") || msg.includes("Pausable: paused")) {
2269
2279
  throw new VaultPausedError(vault);
2270
2280
  }
2281
+ if (msg.includes("WithdrawalQueueDisabled") || msg.includes("0xdbb22fbf")) {
2282
+ throw new WithdrawalQueueDisabledError(vault);
2283
+ }
2271
2284
  if (msg.includes("NotCurator") || msg.includes("OwnableUnauthorizedAccount")) {
2272
2285
  if (msg.includes("NotCurator")) {
2273
2286
  throw new NotCuratorError(vault, caller ?? "unknown");
@@ -3412,6 +3425,14 @@ async function requestRedeem(walletClient, publicClient, addresses, shares, owne
3412
3425
  const vault = viem.getAddress(addresses.vault);
3413
3426
  if (shares === 0n) throw new InvalidInputError("shares amount must be greater than zero");
3414
3427
  validateWalletChain(walletClient, addresses.hubChainId);
3428
+ const queueEnabled = await publicClient.readContract({
3429
+ address: vault,
3430
+ abi: CONFIG_ABI,
3431
+ functionName: "getWithdrawalQueueStatus"
3432
+ });
3433
+ if (!queueEnabled) {
3434
+ throw new WithdrawalQueueDisabledError(vault);
3435
+ }
3415
3436
  let useLegacy = false;
3416
3437
  try {
3417
3438
  await publicClient.simulateContract({
@@ -4330,7 +4351,7 @@ async function getCuratorVaultStatus(publicClient, vault) {
4330
4351
  timeLockPeriod,
4331
4352
  maxSlippagePercent,
4332
4353
  currentNonce,
4333
- availableAssets: availableAssets.map(viem.getAddress),
4354
+ availableAssets: availableAssets.map((a) => viem.getAddress(a)),
4334
4355
  lzAdapter: viem.getAddress(lzAdapter),
4335
4356
  paused
4336
4357
  };
@@ -4399,8 +4420,8 @@ async function getVaultAnalysis(publicClient, vault) {
4399
4420
  functionName: "moreVaultsRegistry"
4400
4421
  }).catch(() => null)
4401
4422
  ]);
4402
- const availableAddresses = availableRaw.map(viem.getAddress);
4403
- const depositableAddresses = depositableRaw.map(viem.getAddress);
4423
+ const availableAddresses = availableRaw.map((a) => viem.getAddress(a));
4424
+ const depositableAddresses = depositableRaw.map((a) => viem.getAddress(a));
4404
4425
  const allAddresses = Array.from(/* @__PURE__ */ new Set([...availableAddresses, ...depositableAddresses]));
4405
4426
  const metadataCalls = allAddresses.flatMap((addr) => [
4406
4427
  { address: addr, abi: METADATA_ABI, functionName: "name" },
@@ -4471,7 +4492,7 @@ async function getVaultAssetBreakdown(publicClient, vault) {
4471
4492
  } catch {
4472
4493
  return { assets: [], totalAssets: 0n, totalSupply: 0n, underlyingDecimals: 6 };
4473
4494
  }
4474
- const addresses = availableRaw.map(viem.getAddress);
4495
+ const addresses = availableRaw.map((a) => viem.getAddress(a));
4475
4496
  const results = await publicClient.multicall({
4476
4497
  contracts: [
4477
4498
  // Per-asset: balanceOf, name, symbol, decimals
@@ -4584,7 +4605,7 @@ function encodeCuratorAction(action) {
4584
4605
  return viem.encodeFunctionData({
4585
4606
  abi: ADMIN_WRITE_ABI,
4586
4607
  functionName: "addAvailableAssets",
4587
- args: [action.assets.map(viem.getAddress)]
4608
+ args: [action.assets.map((a) => viem.getAddress(a))]
4588
4609
  });
4589
4610
  case "disableAssetToDeposit":
4590
4611
  return viem.encodeFunctionData({
@@ -4824,7 +4845,7 @@ var UNISWAP_V3_SWAP_ROUTER02_ABI = [
4824
4845
  stateMutability: "payable"
4825
4846
  }
4826
4847
  ];
4827
- var SWAP_ROUTER02_CHAINS = /* @__PURE__ */ new Set([8453]);
4848
+ var SWAP_ROUTER02_CHAINS = /* @__PURE__ */ new Set([8453, 747]);
4828
4849
  function encodeUniswapV3SwapCalldata(params) {
4829
4850
  const { chainId, tokenIn, tokenOut, fee, amountIn, minAmountOut, recipient } = params;
4830
4851
  const router = UNISWAP_V3_ROUTERS[chainId];
@@ -5048,7 +5069,7 @@ async function getVaultConfiguration(publicClient, vault) {
5048
5069
  const bigint_ = (i) => results[i].status === "success" ? results[i].result : 0n;
5049
5070
  const bool_ = (i) => results[i].status === "success" ? results[i].result : false;
5050
5071
  const num_ = (i) => results[i].status === "success" ? Number(results[i].result) : 0;
5051
- const addrArray = (i) => results[i].status === "success" ? results[i].result.map(viem.getAddress) : [];
5072
+ const addrArray = (i) => results[i].status === "success" ? results[i].result.map((a) => viem.getAddress(a)) : [];
5052
5073
  return {
5053
5074
  // Roles
5054
5075
  owner: addr(0),
@@ -5137,7 +5158,7 @@ async function addAvailableAsset(walletClient, publicClient, vault, asset) {
5137
5158
  async function addAvailableAssets(walletClient, publicClient, vault, assets) {
5138
5159
  const account = walletClient.account;
5139
5160
  const v = viem.getAddress(vault);
5140
- const checksummed = assets.map(viem.getAddress);
5161
+ const checksummed = assets.map((a) => viem.getAddress(a));
5141
5162
  try {
5142
5163
  await publicClient.simulateContract({
5143
5164
  address: v,
@@ -5213,7 +5234,7 @@ async function setDepositWhitelist(walletClient, publicClient, vault, depositors
5213
5234
  if (depositors.length !== caps.length) {
5214
5235
  throw new InvalidInputError("depositors and caps arrays must have the same length");
5215
5236
  }
5216
- const checksummed = depositors.map(viem.getAddress);
5237
+ const checksummed = depositors.map((a) => viem.getAddress(a));
5217
5238
  try {
5218
5239
  await publicClient.simulateContract({
5219
5240
  address: v,
@@ -5365,8 +5386,8 @@ async function getSubVaultPositions(publicClient, vault) {
5365
5386
  args: [ERC7540_ID]
5366
5387
  }).catch(() => [])
5367
5388
  ]);
5368
- const erc4626Vaults = erc4626Raw.map(viem.getAddress);
5369
- const erc7540Vaults = erc7540Raw.map(viem.getAddress);
5389
+ const erc4626Vaults = erc4626Raw.map((a) => viem.getAddress(a));
5390
+ const erc7540Vaults = erc7540Raw.map((a) => viem.getAddress(a));
5370
5391
  const allSubVaults = [
5371
5392
  ...erc4626Vaults.map((a) => ({ address: a, type: "erc4626" })),
5372
5393
  ...erc7540Vaults.map((a) => ({ address: a, type: "erc7540" }))
@@ -5575,7 +5596,7 @@ async function getVaultPortfolio(publicClient, vault) {
5575
5596
  const totalAssets = vaultTotals[0]?.status === "success" ? vaultTotals[0].result : 0n;
5576
5597
  const totalSupply = vaultTotals[1]?.status === "success" ? vaultTotals[1].result : 0n;
5577
5598
  const underlyingAsset = vaultTotals[2]?.status === "success" ? viem.getAddress(vaultTotals[2].result) : viem.zeroAddress;
5578
- const availableAddresses = availableRaw.map(viem.getAddress);
5599
+ const availableAddresses = availableRaw.map((a) => viem.getAddress(a));
5579
5600
  const subVaultAddressSet = new Set(subVaultPositions.map((p) => p.address.toLowerCase()));
5580
5601
  const liquidAddresses = availableAddresses.filter(
5581
5602
  (addr) => !subVaultAddressSet.has(addr.toLowerCase())
@@ -5748,6 +5769,7 @@ exports.VAULT_ABI = VAULT_ABI;
5748
5769
  exports.VAULT_ANALYSIS_ABI = VAULT_ANALYSIS_ABI;
5749
5770
  exports.VaultPausedError = VaultPausedError;
5750
5771
  exports.WhitelistQuotaExhaustedError = WhitelistQuotaExhaustedError;
5772
+ exports.WithdrawalQueueDisabledError = WithdrawalQueueDisabledError;
5751
5773
  exports.WithdrawalTimelockActiveError = WithdrawalTimelockActiveError;
5752
5774
  exports.WrongChainError = WrongChainError;
5753
5775
  exports.acceptOwnership = acceptOwnership;