@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.
- package/dist/ethers/index.cjs +20 -0
- package/dist/ethers/index.cjs.map +1 -1
- package/dist/ethers/index.d.cts +5 -2
- package/dist/ethers/index.d.ts +5 -2
- package/dist/ethers/index.js +20 -1
- package/dist/ethers/index.js.map +1 -1
- package/dist/react/index.cjs +22 -9
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +22 -9
- package/dist/react/index.js.map +1 -1
- package/dist/viem/index.cjs +34 -12
- package/dist/viem/index.cjs.map +1 -1
- package/dist/viem/index.d.cts +20 -4
- package/dist/viem/index.d.ts +20 -4
- package/dist/viem/index.js +34 -13
- package/dist/viem/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ethers/abis.ts +5 -0
- package/src/ethers/errorParser.ts +8 -0
- package/src/ethers/errors.ts +7 -0
- package/src/ethers/index.ts +1 -0
- package/src/ethers/redeemFlows.ts +11 -1
- package/src/viem/abis.ts +4 -0
- package/src/viem/adminActions.ts +2 -2
- package/src/viem/chains.ts +3 -2
- package/src/viem/curatorMulticall.ts +1 -1
- package/src/viem/curatorStatus.ts +4 -4
- package/src/viem/curatorSubVaults.ts +3 -3
- package/src/viem/curatorSwaps.ts +4 -2
- package/src/viem/errorParser.ts +8 -0
- package/src/viem/errors.ts +7 -0
- package/src/viem/index.ts +1 -0
- package/src/viem/redeemFlows.ts +13 -1
- package/src/viem/vaultConfig.ts +1 -1
package/dist/viem/index.cjs
CHANGED
|
@@ -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;
|