@oydual31/more-vaults-sdk 0.1.1 → 0.1.2
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 +69 -0
- package/dist/ethers/index.cjs.map +1 -1
- package/dist/ethers/index.d.cts +44 -1
- package/dist/ethers/index.d.ts +44 -1
- package/dist/ethers/index.js +64 -1
- package/dist/ethers/index.js.map +1 -1
- package/dist/viem/index.cjs +67 -0
- package/dist/viem/index.cjs.map +1 -1
- package/dist/viem/index.d.cts +46 -1
- package/dist/viem/index.d.ts +46 -1
- package/dist/viem/index.js +62 -1
- package/dist/viem/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ethers/chainValidation.ts +16 -0
- package/src/ethers/chains.ts +35 -0
- package/src/ethers/depositFlows.ts +13 -0
- package/src/ethers/errors.ts +9 -0
- package/src/ethers/index.ts +7 -0
- package/src/ethers/redeemFlows.ts +13 -0
- package/src/ethers/types.ts +6 -0
- package/src/ethers/wagmiCompat.ts +17 -0
- package/src/viem/chainValidation.ts +14 -0
- package/src/viem/chains.ts +35 -0
- package/src/viem/depositFlows.ts +13 -0
- package/src/viem/errors.ts +9 -0
- package/src/viem/index.ts +11 -0
- package/src/viem/redeemFlows.ts +13 -0
- package/src/viem/types.ts +6 -0
- package/src/viem/wagmiCompat.ts +18 -0
package/dist/ethers/index.cjs
CHANGED
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
var ethers = require('ethers');
|
|
4
4
|
|
|
5
|
+
// src/ethers/chains.ts
|
|
6
|
+
var CHAIN_IDS = {
|
|
7
|
+
flowEVMMainnet: 747,
|
|
8
|
+
flowEVMTestnet: 545,
|
|
9
|
+
arbitrum: 42161,
|
|
10
|
+
base: 8453,
|
|
11
|
+
ethereum: 1
|
|
12
|
+
};
|
|
13
|
+
var LZ_EIDS = {
|
|
14
|
+
flowMainnet: 30332,
|
|
15
|
+
flowTestnet: 30333,
|
|
16
|
+
arbitrum: 30110,
|
|
17
|
+
base: 30184,
|
|
18
|
+
ethereum: 30101
|
|
19
|
+
};
|
|
20
|
+
var EID_TO_CHAIN_ID = {
|
|
21
|
+
[LZ_EIDS.flowMainnet]: CHAIN_IDS.flowEVMMainnet,
|
|
22
|
+
[LZ_EIDS.flowTestnet]: CHAIN_IDS.flowEVMTestnet,
|
|
23
|
+
[LZ_EIDS.arbitrum]: CHAIN_IDS.arbitrum,
|
|
24
|
+
[LZ_EIDS.base]: CHAIN_IDS.base,
|
|
25
|
+
[LZ_EIDS.ethereum]: CHAIN_IDS.ethereum
|
|
26
|
+
};
|
|
27
|
+
var CHAIN_ID_TO_EID = {
|
|
28
|
+
[CHAIN_IDS.flowEVMMainnet]: LZ_EIDS.flowMainnet,
|
|
29
|
+
[CHAIN_IDS.flowEVMTestnet]: LZ_EIDS.flowTestnet,
|
|
30
|
+
[CHAIN_IDS.arbitrum]: LZ_EIDS.arbitrum,
|
|
31
|
+
[CHAIN_IDS.base]: LZ_EIDS.base,
|
|
32
|
+
[CHAIN_IDS.ethereum]: LZ_EIDS.ethereum
|
|
33
|
+
};
|
|
34
|
+
|
|
5
35
|
// src/ethers/types.ts
|
|
6
36
|
var ActionType = {
|
|
7
37
|
DEPOSIT: 0,
|
|
@@ -147,6 +177,14 @@ var MissingEscrowAddressError = class extends MoreVaultsError {
|
|
|
147
177
|
this.name = "MissingEscrowAddressError";
|
|
148
178
|
}
|
|
149
179
|
};
|
|
180
|
+
var WrongChainError = class extends MoreVaultsError {
|
|
181
|
+
constructor(currentChainId, expectedChainId) {
|
|
182
|
+
super(
|
|
183
|
+
`Wrong network: wallet is on chain ${currentChainId}, but the vault hub requires chain ${expectedChainId}. Switch networks before proceeding.`
|
|
184
|
+
);
|
|
185
|
+
this.name = "WrongChainError";
|
|
186
|
+
}
|
|
187
|
+
};
|
|
150
188
|
async function preflightAsync(provider, vault, escrow) {
|
|
151
189
|
const config = new ethers.Contract(vault, CONFIG_ABI, provider);
|
|
152
190
|
const bridge = new ethers.Contract(vault, BRIDGE_ABI, provider);
|
|
@@ -218,6 +256,17 @@ async function preflightSync(provider, vault) {
|
|
|
218
256
|
);
|
|
219
257
|
}
|
|
220
258
|
}
|
|
259
|
+
|
|
260
|
+
// src/ethers/chainValidation.ts
|
|
261
|
+
async function validateWalletChain(signer, hubChainId) {
|
|
262
|
+
if (!hubChainId) return;
|
|
263
|
+
const network = await signer.provider?.getNetwork();
|
|
264
|
+
if (!network) return;
|
|
265
|
+
const current = Number(network.chainId);
|
|
266
|
+
if (current !== hubChainId) {
|
|
267
|
+
throw new WrongChainError(current, hubChainId);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
221
270
|
var MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
222
271
|
var MULTICALL3_ABI = [
|
|
223
272
|
"function aggregate3(tuple(address target, bool allowFailure, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)"
|
|
@@ -409,6 +458,7 @@ async function ensureAllowance2(signer, token, spender, amount) {
|
|
|
409
458
|
}
|
|
410
459
|
async function depositSimple(signer, addresses, assets, receiver) {
|
|
411
460
|
const provider = signer.provider;
|
|
461
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
412
462
|
await preflightSync(provider, addresses.vault);
|
|
413
463
|
const vault = new ethers.Contract(addresses.vault, VAULT_ABI, signer);
|
|
414
464
|
const underlying = await vault.asset();
|
|
@@ -432,6 +482,7 @@ async function depositSimple(signer, addresses, assets, receiver) {
|
|
|
432
482
|
return { receipt, shares };
|
|
433
483
|
}
|
|
434
484
|
async function depositMultiAsset(signer, addresses, tokens, amounts, receiver, minShares) {
|
|
485
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
435
486
|
for (let i = 0; i < tokens.length; i++) {
|
|
436
487
|
await ensureAllowance2(signer, tokens[i], addresses.vault, amounts[i]);
|
|
437
488
|
}
|
|
@@ -459,6 +510,7 @@ async function depositAsync(signer, addresses, assets, receiver, lzFee, extraOpt
|
|
|
459
510
|
const provider = signer.provider;
|
|
460
511
|
if (!addresses.escrow) throw new MissingEscrowAddressError();
|
|
461
512
|
const escrow = addresses.escrow;
|
|
513
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
462
514
|
await preflightAsync(provider, addresses.vault);
|
|
463
515
|
const vault = new ethers.Contract(addresses.vault, VAULT_ABI, signer);
|
|
464
516
|
const underlying = await vault.asset();
|
|
@@ -491,6 +543,7 @@ async function mintAsync(signer, addresses, shares, maxAssets, receiver, lzFee,
|
|
|
491
543
|
const provider = signer.provider;
|
|
492
544
|
if (!addresses.escrow) throw new MissingEscrowAddressError();
|
|
493
545
|
const escrow = addresses.escrow;
|
|
546
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
494
547
|
await preflightAsync(provider, addresses.vault);
|
|
495
548
|
const vault = new ethers.Contract(addresses.vault, VAULT_ABI, signer);
|
|
496
549
|
const underlying = await vault.asset();
|
|
@@ -631,6 +684,7 @@ async function ensureAllowance4(signer, token, spender, amount) {
|
|
|
631
684
|
}
|
|
632
685
|
}
|
|
633
686
|
async function redeemShares(signer, addresses, shares, receiver, owner) {
|
|
687
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
634
688
|
const vault = new ethers.Contract(addresses.vault, VAULT_ABI, signer);
|
|
635
689
|
const assets = await vault.redeem.staticCall(shares, receiver, owner);
|
|
636
690
|
const tx = await vault.redeem(shares, receiver, owner);
|
|
@@ -638,12 +692,14 @@ async function redeemShares(signer, addresses, shares, receiver, owner) {
|
|
|
638
692
|
return { receipt, assets };
|
|
639
693
|
}
|
|
640
694
|
async function withdrawAssets(signer, addresses, assets, receiver, owner) {
|
|
695
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
641
696
|
const vault = new ethers.Contract(addresses.vault, VAULT_ABI, signer);
|
|
642
697
|
const tx = await vault.withdraw(assets, receiver, owner);
|
|
643
698
|
const receipt = await tx.wait();
|
|
644
699
|
return { receipt, assets };
|
|
645
700
|
}
|
|
646
701
|
async function requestRedeem(signer, addresses, shares, owner) {
|
|
702
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
647
703
|
const vault = new ethers.Contract(addresses.vault, VAULT_ABI, signer);
|
|
648
704
|
const tx = await vault.requestRedeem(shares, owner);
|
|
649
705
|
const receipt = await tx.wait();
|
|
@@ -661,6 +717,7 @@ async function redeemAsync(signer, addresses, shares, receiver, owner, lzFee, ex
|
|
|
661
717
|
const provider = signer.provider;
|
|
662
718
|
if (!addresses.escrow) throw new MissingEscrowAddressError();
|
|
663
719
|
const escrow = addresses.escrow;
|
|
720
|
+
await validateWalletChain(signer, addresses.hubChainId);
|
|
664
721
|
await preflightAsync(provider, addresses.vault);
|
|
665
722
|
await preflightRedeemLiquidity(provider, addresses.vault, shares);
|
|
666
723
|
await ensureAllowance4(signer, addresses.vault, escrow, shares);
|
|
@@ -921,14 +978,24 @@ async function getVaultSummary(provider, vault) {
|
|
|
921
978
|
return { ...status, ...metadata };
|
|
922
979
|
}
|
|
923
980
|
|
|
981
|
+
// src/ethers/wagmiCompat.ts
|
|
982
|
+
function asSdkSigner(signer) {
|
|
983
|
+
if (!signer) throw new Error("[MoreVaults] No signer available. Make sure the wallet is connected and wagmi is configured correctly.");
|
|
984
|
+
return signer;
|
|
985
|
+
}
|
|
986
|
+
|
|
924
987
|
exports.ActionType = ActionType;
|
|
925
988
|
exports.BRIDGE_ABI = BRIDGE_ABI;
|
|
926
989
|
exports.CCManagerNotConfiguredError = CCManagerNotConfiguredError;
|
|
990
|
+
exports.CHAIN_IDS = CHAIN_IDS;
|
|
991
|
+
exports.CHAIN_ID_TO_EID = CHAIN_ID_TO_EID;
|
|
927
992
|
exports.CONFIG_ABI = CONFIG_ABI;
|
|
928
993
|
exports.CapacityFullError = CapacityFullError;
|
|
994
|
+
exports.EID_TO_CHAIN_ID = EID_TO_CHAIN_ID;
|
|
929
995
|
exports.ERC20_ABI = ERC20_ABI;
|
|
930
996
|
exports.EscrowNotConfiguredError = EscrowNotConfiguredError;
|
|
931
997
|
exports.InsufficientLiquidityError = InsufficientLiquidityError;
|
|
998
|
+
exports.LZ_EIDS = LZ_EIDS;
|
|
932
999
|
exports.METADATA_ABI = METADATA_ABI;
|
|
933
1000
|
exports.MissingEscrowAddressError = MissingEscrowAddressError;
|
|
934
1001
|
exports.MoreVaultsError = MoreVaultsError;
|
|
@@ -937,6 +1004,8 @@ exports.NotWhitelistedError = NotWhitelistedError;
|
|
|
937
1004
|
exports.OFT_ABI = OFT_ABI;
|
|
938
1005
|
exports.VAULT_ABI = VAULT_ABI;
|
|
939
1006
|
exports.VaultPausedError = VaultPausedError;
|
|
1007
|
+
exports.WrongChainError = WrongChainError;
|
|
1008
|
+
exports.asSdkSigner = asSdkSigner;
|
|
940
1009
|
exports.bridgeSharesToHub = bridgeSharesToHub;
|
|
941
1010
|
exports.canDeposit = canDeposit;
|
|
942
1011
|
exports.depositAsync = depositAsync;
|