@augustdigital/sdk 4.26.0-alpha.1 → 4.27.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.
Files changed (59) hide show
  1. package/README.md +1 -1
  2. package/lib/abis/{SendersAllocationWhitelist.d.ts → OFT.d.ts} +46 -63
  3. package/lib/abis/OFT.js +65 -0
  4. package/lib/abis/OFT.js.map +1 -0
  5. package/lib/abis/index.d.ts +1 -0
  6. package/lib/abis/index.js +1 -0
  7. package/lib/abis/index.js.map +1 -1
  8. package/lib/evm/index.d.ts +2 -0
  9. package/lib/evm/index.js +19 -0
  10. package/lib/evm/index.js.map +1 -0
  11. package/lib/evm/methods/crossChainVault.d.ts +38 -0
  12. package/lib/evm/methods/crossChainVault.js +608 -0
  13. package/lib/evm/methods/crossChainVault.js.map +1 -0
  14. package/lib/evm/methods/index.d.ts +1 -0
  15. package/lib/evm/methods/index.js +18 -0
  16. package/lib/evm/methods/index.js.map +1 -0
  17. package/lib/evm/types/crossChain.d.ts +157 -0
  18. package/lib/{types/rwa-redemption.js → evm/types/crossChain.js} +1 -1
  19. package/lib/evm/types/crossChain.js.map +1 -0
  20. package/lib/evm/types/index.d.ts +1 -0
  21. package/lib/evm/types/index.js +18 -0
  22. package/lib/evm/types/index.js.map +1 -0
  23. package/lib/index.d.ts +1 -0
  24. package/lib/index.js +1 -0
  25. package/lib/index.js.map +1 -1
  26. package/lib/modules/vaults/getters.js +1 -0
  27. package/lib/modules/vaults/getters.js.map +1 -1
  28. package/lib/modules/vaults/main.d.ts +1 -1
  29. package/lib/modules/vaults/main.js +4 -2
  30. package/lib/modules/vaults/main.js.map +1 -1
  31. package/lib/modules/vaults/write.actions.js +97 -26
  32. package/lib/modules/vaults/write.actions.js.map +1 -1
  33. package/lib/services/debank/fetcher.d.ts +108 -5
  34. package/lib/services/debank/fetcher.js.map +1 -1
  35. package/lib/services/debank/utils.js +51 -1
  36. package/lib/services/debank/utils.js.map +1 -1
  37. package/package.json +14 -14
  38. package/lib/abis/RwaRedeem.d.ts +0 -76
  39. package/lib/abis/RwaRedeem.js +0 -55
  40. package/lib/abis/RwaRedeem.js.map +0 -1
  41. package/lib/abis/SendersAllocationWhitelist.js +0 -157
  42. package/lib/abis/SendersAllocationWhitelist.js.map +0 -1
  43. package/lib/abis/TokenizedVaultV2Whitelist.d.ts +0 -454
  44. package/lib/abis/TokenizedVaultV2Whitelist.js +0 -327
  45. package/lib/abis/TokenizedVaultV2Whitelist.js.map +0 -1
  46. package/lib/core/analytics/version.d.ts +0 -1
  47. package/lib/core/analytics/version.js +0 -5
  48. package/lib/core/analytics/version.js.map +0 -1
  49. package/lib/core/constants/hardcoded-vaults.d.ts +0 -7
  50. package/lib/core/constants/hardcoded-vaults.js +0 -248
  51. package/lib/core/constants/hardcoded-vaults.js.map +0 -1
  52. package/lib/core/constants/rwa-vaults.d.ts +0 -4
  53. package/lib/core/constants/rwa-vaults.js +0 -28
  54. package/lib/core/constants/rwa-vaults.js.map +0 -1
  55. package/lib/core/helpers/address-utils.d.ts +0 -3
  56. package/lib/core/helpers/address-utils.js +0 -18
  57. package/lib/core/helpers/address-utils.js.map +0 -1
  58. package/lib/types/rwa-redemption.d.ts +0 -13
  59. package/lib/types/rwa-redemption.js.map +0 -1
@@ -0,0 +1,608 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.LAYERZERO_ENDPOINT_IDS = void 0;
37
+ exports.buildCrossChainVaultTx = buildCrossChainVaultTx;
38
+ exports.quoteCrossChainDeposit = quoteCrossChainDeposit;
39
+ exports.quoteCrossChainRedeem = quoteCrossChainRedeem;
40
+ exports.needsCrossChainApproval = needsCrossChainApproval;
41
+ exports.approveCrossChain = approveCrossChain;
42
+ exports.crossChainVaultDeposit = crossChainVaultDeposit;
43
+ exports.crossChainVaultRedeem = crossChainVaultRedeem;
44
+ exports.isNoPeerError = isNoPeerError;
45
+ exports.classifyCrossChainError = classifyCrossChainError;
46
+ exports.canDepositFromChain = canDepositFromChain;
47
+ exports.canRedeemFromChain = canRedeemFromChain;
48
+ exports.isCrossChainOperation = isCrossChainOperation;
49
+ exports.getAvailableChains = getAvailableChains;
50
+ exports.formatCrossChainError = formatCrossChainError;
51
+ exports.getLayerZeroScanUrl = getLayerZeroScanUrl;
52
+ const core_1 = require("../../core");
53
+ const OFT_1 = require("../../abis/OFT");
54
+ const LZ_RECEIVE_OPTION_HEX = '010011010000000000000000000000000007a120';
55
+ const DEFAULT_FEE_BUFFER_PERCENT = 50;
56
+ const DEFAULT_SLIPPAGE_BPS = 100;
57
+ const DEFAULT_DEPOSIT_GAS_BUFFER_PERCENT = 150;
58
+ const DEFAULT_REDEEM_GAS_BUFFER_PERCENT = 200;
59
+ const DEFAULT_MIN_REDEEM_GAS = 5000000n;
60
+ const DEFAULT_HUB_LZ_COMPOSE_GAS_LIMIT = 2000000n;
61
+ const PATCH_LOCK_TIMEOUT_MS = 30000;
62
+ let patchLock = Promise.resolve();
63
+ async function redeemPreview(publicClient, vaultAddress, shares) {
64
+ try {
65
+ const result = await publicClient.readContract({
66
+ address: vaultAddress,
67
+ abi: OFT_1.ABI_MULTI_ASSET_PREVIEW_REDEEM,
68
+ functionName: 'previewRedemption',
69
+ args: [shares, false],
70
+ });
71
+ const [, assetsAfterFee] = result;
72
+ return assetsAfterFee;
73
+ }
74
+ catch {
75
+ }
76
+ try {
77
+ return (await publicClient.readContract({
78
+ address: vaultAddress,
79
+ abi: OFT_1.ABI_STANDARD_PREVIEW_REDEEM,
80
+ functionName: 'previewRedeem',
81
+ args: [shares],
82
+ }));
83
+ }
84
+ catch {
85
+ }
86
+ return shares;
87
+ }
88
+ async function generateOVaultInputsWithOverride(input, config, hubPublicClient, ovaultSdk) {
89
+ const OVaultSyncMessageBuilder = ovaultSdk.OVaultSyncMessageBuilder;
90
+ const OVaultSyncOperations = ovaultSdk.OVaultSyncOperations;
91
+ const isRedeemFromHub = input.operation === OVaultSyncOperations.REDEEM &&
92
+ input.srcEid === input.hubEid;
93
+ const isMultiAsset = !!config.multiAsset;
94
+ if (!isMultiAsset && !isRedeemFromHub) {
95
+ return OVaultSyncMessageBuilder.generateOVaultInputs(input);
96
+ }
97
+ const prev = patchLock;
98
+ let unlock;
99
+ patchLock = new Promise((r) => {
100
+ unlock = r;
101
+ });
102
+ await Promise.race([
103
+ prev,
104
+ new Promise((resolve) => setTimeout(resolve, PATCH_LOCK_TIMEOUT_MS)),
105
+ ]);
106
+ const Builder = OVaultSyncMessageBuilder;
107
+ const origGetOutputAmount = Builder.getOutputAmount;
108
+ const origQuoteOVaultOutput = Builder.quoteOVaultOutput;
109
+ const origBuildSendParams = Builder.buildSendParams;
110
+ const origBuildApproval = Builder.buildApproval;
111
+ try {
112
+ if (isRedeemFromHub) {
113
+ Builder.getOutputAmount = async () => input.amount;
114
+ Builder.buildApproval = async () => undefined;
115
+ }
116
+ if (isMultiAsset) {
117
+ const { hubAssetAddress } = config.multiAsset;
118
+ Builder.quoteOVaultOutput = async (quoteInput) => {
119
+ const getOutputAmount = Builder.getOutputAmount;
120
+ const sourceAmount = await getOutputAmount({
121
+ ...quoteInput,
122
+ dstAmount: 0n,
123
+ minDstAmount: 0n,
124
+ dstAddress: quoteInput.walletAddress,
125
+ tokenAddress: quoteInput.tokenAddress ?? quoteInput.oftAddress,
126
+ });
127
+ let outputAmount;
128
+ if (quoteInput.operation === OVaultSyncOperations.REDEEM) {
129
+ outputAmount = await redeemPreview(hubPublicClient, config.vaultAddress, sourceAmount);
130
+ }
131
+ else {
132
+ const [depositOutput] = (await hubPublicClient.readContract({
133
+ address: config.vaultAddress,
134
+ abi: OFT_1.ABI_MULTI_ASSET_PREVIEW_DEPOSIT,
135
+ functionName: 'previewDeposit',
136
+ args: [hubAssetAddress, sourceAmount],
137
+ }));
138
+ outputAmount = depositOutput;
139
+ }
140
+ const slippageBps = BigInt(Math.round(quoteInput.slippage * 10000));
141
+ const slippageAmount = (outputAmount * slippageBps) / 10000n;
142
+ return {
143
+ dstAmount: outputAmount,
144
+ minDstAmount: outputAmount - slippageAmount,
145
+ };
146
+ };
147
+ Builder.buildSendParams = async (spInput) => {
148
+ const origFn = origBuildSendParams;
149
+ const result = await origFn.call(Builder, spInput);
150
+ if (result.composeMsg && result.composeMsg !== '0x') {
151
+ const opts = result.extraOptions;
152
+ if (opts && opts.length >= 6 && opts.startsWith('0x0003')) {
153
+ const body = opts.slice(6);
154
+ const hasLzReceive = body.startsWith('01001101');
155
+ if (!hasLzReceive) {
156
+ result.extraOptions = `0x0003${LZ_RECEIVE_OPTION_HEX}${body}`;
157
+ }
158
+ }
159
+ }
160
+ return result;
161
+ };
162
+ }
163
+ return (await OVaultSyncMessageBuilder.generateOVaultInputs(input));
164
+ }
165
+ finally {
166
+ Builder.getOutputAmount = origGetOutputAmount;
167
+ Builder.quoteOVaultOutput = origQuoteOVaultOutput;
168
+ Builder.buildSendParams = origBuildSendParams;
169
+ Builder.buildApproval = origBuildApproval;
170
+ unlock();
171
+ }
172
+ }
173
+ async function buildCrossChainVaultTx(props) {
174
+ try {
175
+ const { config } = props;
176
+ const slippageBps = props.slippageBps ?? DEFAULT_SLIPPAGE_BPS;
177
+ if (slippageBps < 1 || slippageBps > 10000) {
178
+ return {
179
+ success: false,
180
+ error: `Slippage must be between 1 and 10000 basis points (got ${slippageBps})`,
181
+ };
182
+ }
183
+ const hubChain = props.hubChain;
184
+ const sourceChain = props.sourceChain;
185
+ if (!hubChain || !sourceChain) {
186
+ return {
187
+ success: false,
188
+ error: 'Hub chain and source chain are required',
189
+ };
190
+ }
191
+ let srcEid;
192
+ let dstEid;
193
+ let tokenAddress;
194
+ let oftAddress;
195
+ switch (props.operation) {
196
+ case 'DEPOSIT': {
197
+ srcEid =
198
+ config.layerZeroEids.spokes[props.userChainId] ||
199
+ config.layerZeroEids.hub;
200
+ dstEid = props.destinationChainId
201
+ ? config.layerZeroEids.spokes[props.destinationChainId] ||
202
+ config.layerZeroEids.hub
203
+ : srcEid;
204
+ tokenAddress = config.contracts.assetToken[props.userChainId];
205
+ oftAddress = config.contracts.assetOFT[props.userChainId];
206
+ if (!tokenAddress || !oftAddress) {
207
+ return {
208
+ success: false,
209
+ error: `Chain ${props.userChainId} is not configured for deposits on this vault`,
210
+ };
211
+ }
212
+ break;
213
+ }
214
+ case 'REDEEM': {
215
+ srcEid = config.layerZeroEids.hub;
216
+ dstEid = props.destinationChainId
217
+ ? config.layerZeroEids.spokes[props.destinationChainId] ||
218
+ config.layerZeroEids.hub
219
+ : config.layerZeroEids.spokes[props.userChainId] ||
220
+ config.layerZeroEids.hub;
221
+ tokenAddress = config.vaultAddress;
222
+ oftAddress = config.contracts.shareOFTAdapter;
223
+ break;
224
+ }
225
+ default:
226
+ return {
227
+ success: false,
228
+ error: `Invalid operation: ${props.operation}`,
229
+ };
230
+ }
231
+ const normalizedAmount = (0, core_1.toNormalizedBn)(props.amount, props.decimals);
232
+ const input = {
233
+ srcEid,
234
+ hubEid: config.layerZeroEids.hub,
235
+ dstEid,
236
+ dstAddress: props.recipientAddress || props.walletAddress,
237
+ walletAddress: props.walletAddress,
238
+ vaultAddress: config.vaultAddress,
239
+ composerAddress: config.contracts.composerSync,
240
+ hubChain: hubChain,
241
+ sourceChain: sourceChain,
242
+ operation: props.operation === 'DEPOSIT'
243
+ ? props.ovaultSdk.OVaultSyncOperations.DEPOSIT
244
+ : props.ovaultSdk.OVaultSyncOperations.REDEEM,
245
+ amount: BigInt(normalizedAmount.raw),
246
+ slippage: slippageBps / 10000,
247
+ tokenAddress,
248
+ oftAddress,
249
+ hubLzComposeGasLimit: props.hubLzComposeGasLimit ?? DEFAULT_HUB_LZ_COMPOSE_GAS_LIMIT,
250
+ };
251
+ const hubRpc = hubChain?.rpcUrls;
252
+ const hubRpcUrl = hubRpc?.default?.http?.[0];
253
+ let hubPublicClient;
254
+ try {
255
+ const viem = await Promise.resolve().then(() => __importStar(require('viem')));
256
+ hubPublicClient = viem.createPublicClient({
257
+ chain: hubChain,
258
+ transport: viem.http(hubRpcUrl),
259
+ });
260
+ }
261
+ catch {
262
+ hubPublicClient = {
263
+ readContract: async () => {
264
+ throw new Error('viem is required for multi-asset vault operations. Install viem as a peer dependency.');
265
+ },
266
+ };
267
+ }
268
+ const inputs = await generateOVaultInputsWithOverride(input, config, hubPublicClient, props.ovaultSdk);
269
+ const feeBufferPercent = props.feeBufferPercent ?? DEFAULT_FEE_BUFFER_PERCENT;
270
+ const rawNativeFee = inputs.messageFee.nativeFee;
271
+ const rawMessageValue = inputs.messageValue;
272
+ const feeBuffer = (rawNativeFee * BigInt(feeBufferPercent)) / 100n;
273
+ inputs.messageFee.nativeFee = rawNativeFee + feeBuffer;
274
+ inputs.messageValue = rawMessageValue + feeBuffer;
275
+ if (inputs.contractFunctionName === 'send') {
276
+ const sendFee = inputs.txArgs[1];
277
+ sendFee.nativeFee = inputs.messageFee.nativeFee;
278
+ }
279
+ return {
280
+ success: true,
281
+ data: {
282
+ contractAddress: inputs.contractAddress,
283
+ contractFunctionName: inputs.contractFunctionName,
284
+ abi: inputs.abi,
285
+ txArgs: inputs.txArgs,
286
+ messageValue: inputs.messageValue,
287
+ messageFee: {
288
+ nativeFee: inputs.messageFee.nativeFee,
289
+ lzTokenFee: inputs.messageFee.lzTokenFee,
290
+ },
291
+ dstAmount: inputs.dstAmount.amount,
292
+ minDstAmount: inputs.dstAmount.minAmount,
293
+ approval: inputs.approval
294
+ ? {
295
+ tokenAddress: inputs.approval.tokenAddress,
296
+ spender: inputs.approval.spender,
297
+ amount: inputs.approval.amount,
298
+ }
299
+ : undefined,
300
+ },
301
+ };
302
+ }
303
+ catch (error) {
304
+ return {
305
+ success: false,
306
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
307
+ };
308
+ }
309
+ }
310
+ async function quoteCrossChainDeposit(props) {
311
+ const result = await buildCrossChainVaultTx({
312
+ ovaultSdk: props.ovaultSdk,
313
+ config: props.config,
314
+ operation: 'DEPOSIT',
315
+ amount: props.amount,
316
+ decimals: props.decimals,
317
+ userChainId: props.userChainId,
318
+ walletAddress: props.walletAddress,
319
+ destinationChainId: props.destinationChainId,
320
+ slippageBps: props.slippageBps,
321
+ feeBufferPercent: props.feeBufferPercent,
322
+ hubChain: props.hubChain,
323
+ sourceChain: props.sourceChain,
324
+ });
325
+ if (!result.success || !result.data)
326
+ return null;
327
+ return {
328
+ nativeFee: result.data.messageFee.nativeFee,
329
+ dstAmount: result.data.dstAmount,
330
+ minDstAmount: result.data.minDstAmount,
331
+ };
332
+ }
333
+ async function quoteCrossChainRedeem(props) {
334
+ const result = await buildCrossChainVaultTx({
335
+ ovaultSdk: props.ovaultSdk,
336
+ config: props.config,
337
+ operation: 'REDEEM',
338
+ amount: props.amount,
339
+ decimals: props.decimals,
340
+ userChainId: props.config.hubChainId,
341
+ walletAddress: props.walletAddress,
342
+ destinationChainId: props.destinationChainId,
343
+ slippageBps: props.slippageBps,
344
+ feeBufferPercent: props.feeBufferPercent,
345
+ hubChain: props.hubChain,
346
+ sourceChain: props.sourceChain,
347
+ });
348
+ if (!result.success || !result.data)
349
+ return null;
350
+ return {
351
+ nativeFee: result.data.messageFee.nativeFee,
352
+ dstAmount: result.data.dstAmount,
353
+ minDstAmount: result.data.minDstAmount,
354
+ };
355
+ }
356
+ async function needsCrossChainApproval(tokenAddress, spenderAddress, walletAddress, amount, publicClient) {
357
+ try {
358
+ const allowance = (await publicClient.readContract({
359
+ address: tokenAddress,
360
+ abi: OFT_1.ABI_CROSS_CHAIN_ERC20,
361
+ functionName: 'allowance',
362
+ args: [walletAddress, spenderAddress],
363
+ }));
364
+ return allowance < amount;
365
+ }
366
+ catch {
367
+ return true;
368
+ }
369
+ }
370
+ async function approveCrossChain(tokenAddress, spenderAddress, amount, walletClient, publicClient) {
371
+ if (!walletClient.account) {
372
+ throw new Error('Wallet not ready — please reconnect your wallet');
373
+ }
374
+ const hash = await walletClient.writeContract({
375
+ account: walletClient.account,
376
+ address: tokenAddress,
377
+ abi: OFT_1.ABI_CROSS_CHAIN_ERC20,
378
+ functionName: 'approve',
379
+ args: [spenderAddress, amount],
380
+ });
381
+ await publicClient.waitForTransactionReceipt({ hash: hash });
382
+ return hash;
383
+ }
384
+ async function crossChainVaultDeposit(props) {
385
+ const walletClient = props.walletClient;
386
+ const publicClient = props.publicClient;
387
+ const result = await buildCrossChainVaultTx({
388
+ ovaultSdk: props.ovaultSdk,
389
+ config: props.config,
390
+ operation: 'DEPOSIT',
391
+ amount: props.amount,
392
+ decimals: props.decimals,
393
+ userChainId: props.userChainId,
394
+ walletAddress: props.walletAddress,
395
+ destinationChainId: props.destinationChainId,
396
+ slippageBps: props.slippageBps,
397
+ feeBufferPercent: props.feeBufferPercent,
398
+ hubChain: props.hubChain,
399
+ sourceChain: props.sourceChain,
400
+ });
401
+ if (!result.success || !result.data) {
402
+ throw new Error(result.error || 'Failed to build transaction');
403
+ }
404
+ const txInputs = result.data;
405
+ if (!props.skipApprovalCheck) {
406
+ const tokenAddr = txInputs.approval?.tokenAddress ??
407
+ props.config.contracts.assetToken[props.userChainId];
408
+ const spenderAddr = txInputs.approval?.spender ?? txInputs.contractAddress;
409
+ const approvalAmount = txInputs.approval?.amount ??
410
+ BigInt((0, core_1.toNormalizedBn)(props.amount, props.decimals).raw);
411
+ const approvalNeeded = await needsCrossChainApproval(tokenAddr, spenderAddr, props.walletAddress, approvalAmount, publicClient);
412
+ if (approvalNeeded) {
413
+ await approveCrossChain(tokenAddr, spenderAddr, approvalAmount, walletClient, publicClient);
414
+ }
415
+ }
416
+ if (!walletClient.account) {
417
+ throw new Error('Wallet not ready — please reconnect your wallet');
418
+ }
419
+ const gasBufferPercent = props.gasBufferPercent ?? DEFAULT_DEPOSIT_GAS_BUFFER_PERCENT;
420
+ let gasLimit;
421
+ try {
422
+ const estimated = await publicClient.estimateContractGas({
423
+ account: walletClient.account,
424
+ address: txInputs.contractAddress,
425
+ abi: txInputs.abi,
426
+ functionName: txInputs.contractFunctionName,
427
+ args: txInputs.txArgs,
428
+ value: txInputs.messageValue,
429
+ });
430
+ gasLimit = (estimated * BigInt(gasBufferPercent)) / 100n;
431
+ }
432
+ catch (estimateErr) {
433
+ throw new Error(`Gas estimation failed for cross-chain deposit. Ensure you have sufficient native tokens for the LayerZero fee (${txInputs.messageFee.nativeFee.toString()} wei). Original error: ${estimateErr instanceof Error ? estimateErr.message : String(estimateErr)}`);
434
+ }
435
+ const hash = await walletClient.writeContract({
436
+ account: walletClient.account,
437
+ address: txInputs.contractAddress,
438
+ abi: txInputs.abi,
439
+ functionName: txInputs.contractFunctionName,
440
+ args: txInputs.txArgs,
441
+ value: txInputs.messageValue,
442
+ gas: gasLimit,
443
+ });
444
+ const receipt = await publicClient.waitForTransactionReceipt({
445
+ hash: hash,
446
+ });
447
+ if (receipt.status === 'reverted') {
448
+ throw new Error('Transaction reverted on-chain. This may be due to insufficient gas for the LayerZero compose call or a contract error.');
449
+ }
450
+ return {
451
+ transactionHash: hash,
452
+ success: true,
453
+ };
454
+ }
455
+ async function crossChainVaultRedeem(props) {
456
+ if (props.userChainId !== props.config.hubChainId) {
457
+ throw new Error(`Redemptions must be executed from hub chain (${props.config.hubChainId}). ` +
458
+ `Please switch to the hub chain first.`);
459
+ }
460
+ const walletClient = props.walletClient;
461
+ const publicClient = props.publicClient;
462
+ const result = await buildCrossChainVaultTx({
463
+ ovaultSdk: props.ovaultSdk,
464
+ config: props.config,
465
+ operation: 'REDEEM',
466
+ amount: props.amount,
467
+ decimals: props.decimals,
468
+ userChainId: props.userChainId,
469
+ walletAddress: props.walletAddress,
470
+ destinationChainId: props.destinationChainId ?? props.userChainId,
471
+ slippageBps: props.slippageBps,
472
+ feeBufferPercent: props.feeBufferPercent,
473
+ hubChain: props.hubChain,
474
+ sourceChain: props.sourceChain,
475
+ });
476
+ if (!result.success || !result.data) {
477
+ throw new Error(result.error || 'Failed to build transaction');
478
+ }
479
+ const txInputs = result.data;
480
+ if (!props.skipApprovalCheck && txInputs.approval) {
481
+ const approvalNeeded = await needsCrossChainApproval(txInputs.approval.tokenAddress, txInputs.approval.spender, props.walletAddress, txInputs.approval.amount, publicClient);
482
+ if (approvalNeeded) {
483
+ await approveCrossChain(txInputs.approval.tokenAddress, txInputs.approval.spender, txInputs.approval.amount, walletClient, publicClient);
484
+ }
485
+ }
486
+ if (!walletClient.account) {
487
+ throw new Error('Wallet account not available');
488
+ }
489
+ const gasBufferPercent = props.gasBufferPercent ?? DEFAULT_REDEEM_GAS_BUFFER_PERCENT;
490
+ const minGasLimit = props.minGasLimit ?? DEFAULT_MIN_REDEEM_GAS;
491
+ let gasLimit;
492
+ try {
493
+ const estimated = await publicClient.estimateContractGas({
494
+ account: walletClient.account,
495
+ address: txInputs.contractAddress,
496
+ abi: txInputs.abi,
497
+ functionName: txInputs.contractFunctionName,
498
+ args: txInputs.txArgs,
499
+ value: txInputs.messageValue,
500
+ });
501
+ const buffered = (estimated * BigInt(gasBufferPercent)) / 100n;
502
+ gasLimit = buffered > minGasLimit ? buffered : minGasLimit;
503
+ }
504
+ catch (estimateErr) {
505
+ throw new Error(`Gas estimation failed for cross-chain redeem. Ensure you have sufficient native tokens for the LayerZero fee (${txInputs.messageFee.nativeFee.toString()} wei). Original error: ${estimateErr instanceof Error ? estimateErr.message : String(estimateErr)}`);
506
+ }
507
+ const hash = await walletClient.writeContract({
508
+ account: walletClient.account,
509
+ address: txInputs.contractAddress,
510
+ abi: txInputs.abi,
511
+ functionName: txInputs.contractFunctionName,
512
+ args: txInputs.txArgs,
513
+ value: txInputs.messageValue,
514
+ gas: gasLimit,
515
+ });
516
+ const receipt = await publicClient.waitForTransactionReceipt({
517
+ hash: hash,
518
+ });
519
+ if (receipt.status === 'reverted') {
520
+ throw new Error('Transaction reverted on-chain. This may be due to insufficient gas for the LayerZero compose call or a contract error.');
521
+ }
522
+ return {
523
+ transactionHash: hash,
524
+ success: true,
525
+ };
526
+ }
527
+ function isNoPeerError(errStr) {
528
+ return errStr.includes('0xf6ff4fb7') || errStr.includes('NoPeer');
529
+ }
530
+ function classifyCrossChainError(error) {
531
+ const err = error;
532
+ const msg = err?.message ?? String(error);
533
+ const lower = msg.toLowerCase();
534
+ if (msg.includes('0x79012fb2') || msg.includes('ERC4626ExceededMaxDeposit'))
535
+ return 'max-deposit';
536
+ if (lower.includes('nonce') || msg.includes('invalid nonce'))
537
+ return 'nonce';
538
+ if (lower.includes('user rejected') || msg.includes('User denied'))
539
+ return 'user-rejected';
540
+ if (isNoPeerError(msg))
541
+ return 'no-peer';
542
+ if (msg.includes('quoteSend') ||
543
+ lower.includes('layerzero') ||
544
+ lower.includes('lz fee') ||
545
+ lower.includes('oft') ||
546
+ lower.includes('unable to decode signature'))
547
+ return 'bridge-fee';
548
+ if (msg.includes('insufficient') || lower.includes('balance'))
549
+ return 'insufficient-balance';
550
+ if (lower.includes('gas'))
551
+ return 'gas';
552
+ if (lower.includes('network') || lower.includes('connection'))
553
+ return 'network';
554
+ return 'unknown';
555
+ }
556
+ function canDepositFromChain(config, userChainId) {
557
+ return (userChainId === config.hubChainId ||
558
+ config.spokeChainIds.includes(userChainId));
559
+ }
560
+ function canRedeemFromChain(config, userChainId) {
561
+ return userChainId === config.hubChainId;
562
+ }
563
+ function isCrossChainOperation(config, userChainId, destinationChainId) {
564
+ if (userChainId !== config.hubChainId)
565
+ return true;
566
+ if (destinationChainId !== undefined &&
567
+ destinationChainId !== config.hubChainId)
568
+ return true;
569
+ return false;
570
+ }
571
+ function getAvailableChains(config) {
572
+ return [config.hubChainId, ...config.spokeChainIds];
573
+ }
574
+ function formatCrossChainError(errMsg) {
575
+ if (errMsg.includes('Cross-chain fee is') ||
576
+ errMsg.includes('Gas estimation failed'))
577
+ return errMsg;
578
+ const lower = errMsg.toLowerCase();
579
+ if (lower.includes('nonce') || errMsg.includes('invalid nonce'))
580
+ return 'Transaction nonce conflict. Please cancel any pending transactions and try again.';
581
+ if (errMsg.includes('quoteSend') ||
582
+ lower.includes('layerzero') ||
583
+ lower.includes('oft') ||
584
+ lower.includes('unable to decode signature'))
585
+ return 'Cross-chain fee estimation failed. The bridge may be temporarily unavailable — please try again.';
586
+ if (lower.includes('user rejected'))
587
+ return 'Transaction cancelled by user.';
588
+ if (lower.includes('hub chain'))
589
+ return errMsg;
590
+ if (errMsg.includes('reverted'))
591
+ return 'Transaction reverted on-chain. This may be due to insufficient gas or a contract error.';
592
+ return 'Cross-chain transaction failed. Please try again.';
593
+ }
594
+ function getLayerZeroScanUrl(txHash, testnet = false) {
595
+ const baseUrl = testnet
596
+ ? 'https://testnet.layerzeroscan.com'
597
+ : 'https://layerzeroscan.com';
598
+ return `${baseUrl}/tx/${txHash}`;
599
+ }
600
+ exports.LAYERZERO_ENDPOINT_IDS = {
601
+ ETHEREUM: 30101,
602
+ ARBITRUM: 30110,
603
+ AVALANCHE: 30106,
604
+ BASE: 30184,
605
+ SONIC: 30332,
606
+ MONAD: 30390,
607
+ };
608
+ //# sourceMappingURL=crossChainVault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crossChainVault.js","sourceRoot":"","sources":["../../../src.ts/evm/methods/crossChainVault.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './crossChainVault';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./crossChainVault"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src.ts/evm/methods/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}