@paxoslabs/amplify-sdk 0.1.1 → 0.2.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.
Files changed (53) hide show
  1. package/CHANGELOG.md +0 -2
  2. package/README.md +42 -0
  3. package/dist/{chunk-DTFLXAZJ.js → chunk-4NQCOMCZ.js} +147 -5
  4. package/dist/chunk-4NQCOMCZ.js.map +1 -0
  5. package/dist/{chunk-KYR6BFAE.js → chunk-5VOI4WPL.js} +38 -33
  6. package/dist/chunk-5VOI4WPL.js.map +1 -0
  7. package/dist/{chunk-ZILA73XN.mjs → chunk-5Y7M43XN.mjs} +144 -4
  8. package/dist/chunk-5Y7M43XN.mjs.map +1 -0
  9. package/dist/{chunk-VIULRHK6.mjs → chunk-7PCUTZF6.mjs} +3 -3
  10. package/dist/{chunk-VIULRHK6.mjs.map → chunk-7PCUTZF6.mjs.map} +1 -1
  11. package/dist/{chunk-XXHRCCZS.mjs → chunk-AQFFMJX7.mjs} +3 -3
  12. package/dist/chunk-AQFFMJX7.mjs.map +1 -0
  13. package/dist/{chunk-REKEQLQA.mjs → chunk-BOW2QPQC.mjs} +3 -3
  14. package/dist/{chunk-REKEQLQA.mjs.map → chunk-BOW2QPQC.mjs.map} +1 -1
  15. package/dist/{chunk-HI44AMLC.mjs → chunk-E7R7TL7J.mjs} +24 -19
  16. package/dist/chunk-E7R7TL7J.mjs.map +1 -0
  17. package/dist/{chunk-CUGK4ZBJ.mjs → chunk-IMS2HBJ7.mjs} +305 -30
  18. package/dist/chunk-IMS2HBJ7.mjs.map +1 -0
  19. package/dist/{chunk-LSNRG5Z2.js → chunk-KB4EPCK2.js} +4 -4
  20. package/dist/{chunk-LSNRG5Z2.js.map → chunk-KB4EPCK2.js.map} +1 -1
  21. package/dist/{chunk-ITB7FXG4.js → chunk-OJOKPBK7.js} +3 -3
  22. package/dist/chunk-OJOKPBK7.js.map +1 -0
  23. package/dist/{chunk-B2QCI6ET.js → chunk-UMRTU75Q.js} +309 -30
  24. package/dist/chunk-UMRTU75Q.js.map +1 -0
  25. package/dist/{chunk-GS7TDQXA.js → chunk-XUS6KI3G.js} +8 -8
  26. package/dist/{chunk-GS7TDQXA.js.map → chunk-XUS6KI3G.js.map} +1 -1
  27. package/dist/core.js +16 -16
  28. package/dist/core.js.map +1 -1
  29. package/dist/core.mjs +6 -6
  30. package/dist/core.mjs.map +1 -1
  31. package/dist/display.d.mts +1 -1
  32. package/dist/display.d.ts +1 -1
  33. package/dist/display.js +12 -12
  34. package/dist/display.mjs +4 -4
  35. package/dist/{exchange-rate-BfPH_fQt.d.mts → exchange-rate-DCB2CY9v.d.mts} +5 -0
  36. package/dist/{exchange-rate-Cp1ddpw4.d.ts → exchange-rate-DOmoqut9.d.ts} +5 -0
  37. package/dist/index.d.mts +455 -8
  38. package/dist/index.d.ts +455 -8
  39. package/dist/index.js +402 -215
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.mjs +292 -123
  42. package/dist/index.mjs.map +1 -1
  43. package/dist/utils.js +5 -5
  44. package/dist/utils.mjs +2 -2
  45. package/package.json +2 -1
  46. package/dist/chunk-B2QCI6ET.js.map +0 -1
  47. package/dist/chunk-CUGK4ZBJ.mjs.map +0 -1
  48. package/dist/chunk-DTFLXAZJ.js.map +0 -1
  49. package/dist/chunk-HI44AMLC.mjs.map +0 -1
  50. package/dist/chunk-ITB7FXG4.js.map +0 -1
  51. package/dist/chunk-KYR6BFAE.js.map +0 -1
  52. package/dist/chunk-XXHRCCZS.mjs.map +0 -1
  53. package/dist/chunk-ZILA73XN.mjs.map +0 -1
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkITB7FXG4_js = require('./chunk-ITB7FXG4.js');
4
- var chunkKYR6BFAE_js = require('./chunk-KYR6BFAE.js');
5
- var chunkDTFLXAZJ_js = require('./chunk-DTFLXAZJ.js');
3
+ var chunkOJOKPBK7_js = require('./chunk-OJOKPBK7.js');
4
+ var chunk5VOI4WPL_js = require('./chunk-5VOI4WPL.js');
5
+ var chunk4NQCOMCZ_js = require('./chunk-4NQCOMCZ.js');
6
6
  require('./chunk-ICKDAKVS.js');
7
7
  var chunkRUIAH5HY_js = require('./chunk-RUIAH5HY.js');
8
- var chunkLSNRG5Z2_js = require('./chunk-LSNRG5Z2.js');
8
+ var chunkKB4EPCK2_js = require('./chunk-KB4EPCK2.js');
9
9
  var chunk3I3PYX2F_js = require('./chunk-3I3PYX2F.js');
10
- var chunkB2QCI6ET_js = require('./chunk-B2QCI6ET.js');
10
+ var chunkUMRTU75Q_js = require('./chunk-UMRTU75Q.js');
11
11
  var viem = require('viem');
12
12
 
13
13
  async function prepareApproveDepositTokenTxData({
@@ -18,33 +18,33 @@ async function prepareApproveDepositTokenTxData({
18
18
  }) {
19
19
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
20
20
  try {
21
- const config = await chunkB2QCI6ET_js.findVaultByConfig({
21
+ const config = await chunkUMRTU75Q_js.findVaultByConfig({
22
22
  assetAddress: depositToken,
23
23
  yieldType,
24
24
  chainId: normalizedChainId
25
25
  });
26
26
  if (!config) {
27
- throw new chunkB2QCI6ET_js.APIError(
27
+ throw new chunkUMRTU75Q_js.APIError(
28
28
  `No vault found for token address ${depositToken} with yield type '${yieldType}' on chain ${normalizedChainId}. This combination may not be supported.`,
29
29
  { endpoint: "prepareApproveDepositToken" }
30
30
  );
31
31
  }
32
32
  const boringVaultAddress = config.vault.boringVaultAddress;
33
33
  if (!boringVaultAddress) {
34
- throw new chunkB2QCI6ET_js.APIError(
34
+ throw new chunkUMRTU75Q_js.APIError(
35
35
  `BoringVault contract address not configured for vault ${config.id}`,
36
36
  { endpoint: "prepareApproveDepositToken" }
37
37
  );
38
38
  }
39
- const assets = await chunkB2QCI6ET_js.getAssetsFromCache({ address: depositToken });
39
+ const assets = await chunkUMRTU75Q_js.getAssetsFromCache({ address: depositToken });
40
40
  if (assets.length === 0) {
41
- throw new chunkB2QCI6ET_js.APIError(
41
+ throw new chunkUMRTU75Q_js.APIError(
42
42
  `Asset metadata not found for token ${depositToken} on chain ${normalizedChainId}`,
43
43
  { endpoint: "prepareApproveDepositToken" }
44
44
  );
45
45
  }
46
46
  const decimals = assets[0].decimals;
47
- const amount = approvalAmount ? viem.parseUnits(approvalAmount, decimals) : chunkB2QCI6ET_js.DEFAULT_APPROVAL_AMOUNT;
47
+ const amount = approvalAmount ? viem.parseUnits(approvalAmount, decimals) : chunkUMRTU75Q_js.DEFAULT_APPROVAL_AMOUNT;
48
48
  return {
49
49
  abi: viem.erc20Abi,
50
50
  address: depositToken,
@@ -52,10 +52,10 @@ async function prepareApproveDepositTokenTxData({
52
52
  args: [boringVaultAddress, amount]
53
53
  };
54
54
  } catch (error) {
55
- if (error instanceof chunkB2QCI6ET_js.APIError) {
55
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
56
56
  throw error;
57
57
  }
58
- throw new chunkB2QCI6ET_js.APIError(
58
+ throw new chunkUMRTU75Q_js.APIError(
59
59
  `Failed to prepare approval transaction: ${error instanceof Error ? error.message : String(error)}`,
60
60
  {
61
61
  endpoint: "prepareApproveDepositToken",
@@ -296,7 +296,7 @@ var CommunityCodeDepositorAbi = [
296
296
 
297
297
  // src/vaults/deposit/utils.ts
298
298
  var calculateMinimumMint = (depositAmount, rate, vaultTokenDecimals, slippage) => {
299
- const slippageValue = slippage ?? chunkITB7FXG4_js.DEFAULT_SLIPPAGE_BPS;
299
+ const slippageValue = slippage ?? chunkOJOKPBK7_js.DEFAULT_SLIPPAGE_BPS;
300
300
  const slippageAsBigInt = BigInt(slippageValue) * chunk3I3PYX2F_js.WAD.bigint / BigInt(1e4);
301
301
  const minimumMint = depositAmount * chunk3I3PYX2F_js.WAD.bigint / rate;
302
302
  const slippageAmount = minimumMint * slippageAsBigInt / chunk3I3PYX2F_js.WAD.bigint;
@@ -313,7 +313,7 @@ async function prepareDepositTxData(params) {
313
313
  depositToken,
314
314
  depositAmount,
315
315
  chainId,
316
- slippage = chunkITB7FXG4_js.DEFAULT_SLIPPAGE_BPS,
316
+ slippage = chunkOJOKPBK7_js.DEFAULT_SLIPPAGE_BPS,
317
317
  recipientAddress,
318
318
  partnerCode
319
319
  } = params;
@@ -321,13 +321,13 @@ async function prepareDepositTxData(params) {
321
321
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
322
322
  let vault;
323
323
  try {
324
- vault = await chunkB2QCI6ET_js.findVaultByConfig({
324
+ vault = await chunkUMRTU75Q_js.findVaultByConfig({
325
325
  assetAddress: depositToken,
326
326
  yieldType,
327
327
  chainId: normalizedChainId
328
328
  });
329
329
  } catch (error) {
330
- throw new chunkB2QCI6ET_js.APIError(
330
+ throw new chunkUMRTU75Q_js.APIError(
331
331
  `Failed to resolve vault for token ${depositToken} with yield type ${yieldType} on chain ${normalizedChainId}: ${error instanceof Error ? error.message : "Unknown error"}`,
332
332
  {
333
333
  endpoint: "prepareDepositTransactionData",
@@ -336,7 +336,7 @@ async function prepareDepositTxData(params) {
336
336
  );
337
337
  }
338
338
  if (!vault) {
339
- throw new chunkB2QCI6ET_js.APIError(
339
+ throw new chunkUMRTU75Q_js.APIError(
340
340
  `No vault found for token address ${depositToken} with yield type '${yieldType}' on chain ${normalizedChainId}. This combination may not be supported.`,
341
341
  {
342
342
  endpoint: "prepareDepositTransactionData"
@@ -344,12 +344,12 @@ async function prepareDepositTxData(params) {
344
344
  );
345
345
  }
346
346
  let asset = null;
347
- const assets = await chunkB2QCI6ET_js.getAssetsFromCache({ address: depositToken });
347
+ const assets = await chunkUMRTU75Q_js.getAssetsFromCache({ address: depositToken });
348
348
  if (assets.length > 0) {
349
349
  asset = assets.find((a) => a.chains.includes(normalizedChainId)) || assets[0] || null;
350
350
  }
351
351
  if (!asset) {
352
- throw new chunkB2QCI6ET_js.APIError(
352
+ throw new chunkUMRTU75Q_js.APIError(
353
353
  `Asset metadata not found for token ${depositToken} on chain ${normalizedChainId}`,
354
354
  {
355
355
  endpoint: "prepareDepositTransactionData"
@@ -359,13 +359,13 @@ async function prepareDepositTxData(params) {
359
359
  const communityCodeDepositorAddress = vault.vault.communityCodeDepositorAddress;
360
360
  const accountantAddress = vault.vault.accountantAddress;
361
361
  const depositAssetAddress = asset.address;
362
- const [depositAssetDecimalsResult, rateInQuoteResult] = await chunkDTFLXAZJ_js.getRateInQuoteWithAssetDecimals({
362
+ const [depositAssetDecimalsResult, rateInQuoteResult] = await chunk4NQCOMCZ_js.getRateInQuoteWithAssetDecimals({
363
363
  assetAddress: depositAssetAddress,
364
364
  accountantAddress,
365
365
  chainId: normalizedChainId
366
366
  });
367
367
  if (depositAssetDecimalsResult.status === "failure") {
368
- throw new chunkB2QCI6ET_js.APIError(
368
+ throw new chunkUMRTU75Q_js.APIError(
369
369
  `Failed to get asset decimals: ${depositAssetDecimalsResult.error?.message || "Unknown error"}`,
370
370
  {
371
371
  endpoint: "prepareDepositTransactionData",
@@ -374,7 +374,7 @@ async function prepareDepositTxData(params) {
374
374
  );
375
375
  }
376
376
  if (rateInQuoteResult.status === "failure") {
377
- throw new chunkB2QCI6ET_js.APIError(
377
+ throw new chunkUMRTU75Q_js.APIError(
378
378
  `Failed to get exchange rate: ${rateInQuoteResult.error?.message || "Unknown error"}`,
379
379
  {
380
380
  endpoint: "prepareDepositTransactionData",
@@ -386,11 +386,11 @@ async function prepareDepositTxData(params) {
386
386
  depositAmount,
387
387
  depositAssetDecimalsResult.result
388
388
  );
389
- const vaultSharesAssets = await chunkB2QCI6ET_js.fetchSupportedAssets({
389
+ const vaultSharesAssets = await chunkUMRTU75Q_js.fetchSupportedAssets({
390
390
  address: vault.vault.boringVaultAddress
391
391
  });
392
392
  if (vaultSharesAssets.length === 0) {
393
- throw new chunkB2QCI6ET_js.APIError(
393
+ throw new chunkUMRTU75Q_js.APIError(
394
394
  `Vault shares token not found in supported assets: ${vault.vault.boringVaultAddress}`,
395
395
  { endpoint: "prepareDepositTransactionData" }
396
396
  );
@@ -402,7 +402,7 @@ async function prepareDepositTxData(params) {
402
402
  slippage
403
403
  );
404
404
  if (!communityCodeDepositorAddress) {
405
- throw new chunkB2QCI6ET_js.APIError(
405
+ throw new chunkUMRTU75Q_js.APIError(
406
406
  `CommunityCodeDepositor contract address not found for vault ${vault.id}`,
407
407
  { endpoint: "prepareDepositTransactionData" }
408
408
  );
@@ -421,10 +421,10 @@ async function prepareDepositTxData(params) {
421
421
  chainId: normalizedChainId
422
422
  };
423
423
  } catch (error) {
424
- if (error instanceof chunkB2QCI6ET_js.APIError) {
424
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
425
425
  throw error;
426
426
  }
427
- throw new chunkB2QCI6ET_js.APIError(
427
+ throw new chunkUMRTU75Q_js.APIError(
428
428
  `Failed to prepare deposit transaction: ${error instanceof Error ? error.message : String(error)}`,
429
429
  {
430
430
  endpoint: "prepareDepositTransactionData",
@@ -433,56 +433,6 @@ async function prepareDepositTxData(params) {
433
433
  );
434
434
  }
435
435
  }
436
-
437
- // src/abi/erc2612-abi.ts
438
- var erc2612Abi = [
439
- // Standard ERC20 functions (subset needed for permit flow)
440
- {
441
- constant: true,
442
- inputs: [{ name: "_owner", type: "address" }],
443
- name: "nonces",
444
- outputs: [{ name: "", type: "uint256" }],
445
- type: "function"
446
- },
447
- {
448
- constant: true,
449
- inputs: [],
450
- name: "DOMAIN_SEPARATOR",
451
- outputs: [{ name: "", type: "bytes32" }],
452
- type: "function"
453
- },
454
- {
455
- constant: false,
456
- inputs: [
457
- { name: "owner", type: "address" },
458
- { name: "spender", type: "address" },
459
- { name: "value", type: "uint256" },
460
- { name: "deadline", type: "uint256" },
461
- { name: "v", type: "uint8" },
462
- { name: "r", type: "bytes32" },
463
- { name: "s", type: "bytes32" }
464
- ],
465
- name: "permit",
466
- outputs: [],
467
- type: "function"
468
- },
469
- {
470
- constant: true,
471
- inputs: [],
472
- name: "name",
473
- outputs: [{ name: "", type: "string" }],
474
- type: "function"
475
- },
476
- {
477
- constant: true,
478
- inputs: [],
479
- name: "version",
480
- outputs: [{ name: "", type: "string" }],
481
- type: "function"
482
- }
483
- ];
484
-
485
- // src/vaults/deposit/deposit-with-permit.ts
486
436
  var PERMIT_TYPES = {
487
437
  Permit: [
488
438
  { name: "owner", type: "address" },
@@ -499,19 +449,24 @@ async function prepareDepositPermitSignature(params) {
499
449
  depositAmount,
500
450
  recipientAddress,
501
451
  chainId,
502
- deadline
452
+ deadline,
453
+ // Optional pre-fetched data to skip RPC calls
454
+ nonce: prefetchedNonce,
455
+ decimals: prefetchedDecimals,
456
+ tokenName: prefetchedTokenName,
457
+ tokenVersion: prefetchedTokenVersion
503
458
  } = params;
504
459
  try {
505
460
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
506
461
  let vault;
507
462
  try {
508
- vault = await chunkB2QCI6ET_js.findVaultByConfig({
463
+ vault = await chunkUMRTU75Q_js.findVaultByConfig({
509
464
  assetAddress: depositToken,
510
465
  yieldType,
511
466
  chainId: normalizedChainId
512
467
  });
513
468
  } catch (error) {
514
- throw new chunkB2QCI6ET_js.APIError(
469
+ throw new chunkUMRTU75Q_js.APIError(
515
470
  `Failed to resolve vault for token ${depositToken} with yield type ${yieldType} on chain ${normalizedChainId}: ${error instanceof Error ? error.message : "Unknown error"}`,
516
471
  {
517
472
  endpoint: "prepareDepositPermitSignature",
@@ -520,7 +475,7 @@ async function prepareDepositPermitSignature(params) {
520
475
  );
521
476
  }
522
477
  if (!vault) {
523
- throw new chunkB2QCI6ET_js.APIError(
478
+ throw new chunkUMRTU75Q_js.APIError(
524
479
  `No vault found for token address ${depositToken} with yield type '${yieldType}' on chain ${normalizedChainId}. This combination may not be supported.`,
525
480
  {
526
481
  endpoint: "prepareDepositPermitSignature"
@@ -529,84 +484,107 @@ async function prepareDepositPermitSignature(params) {
529
484
  }
530
485
  const communityCodeDepositorAddress = vault.vault.communityCodeDepositorAddress;
531
486
  if (!communityCodeDepositorAddress) {
532
- throw new chunkB2QCI6ET_js.APIError(
487
+ throw new chunkUMRTU75Q_js.APIError(
533
488
  `CommunityCodeDepositor contract address not found for vault ${vault.id}`,
534
489
  { endpoint: "prepareDepositPermitSignature" }
535
490
  );
536
491
  }
537
- const client = await chunkDTFLXAZJ_js.getClient(normalizedChainId);
538
- let tokenName;
539
- let tokenVersion;
540
- let nonce;
541
- try {
542
- const [nameResult, versionResult, nonceResult] = await Promise.allSettled(
543
- [
544
- client.readContract({
545
- address: depositToken,
546
- abi: erc2612Abi,
547
- functionName: "name"
548
- }),
549
- client.readContract({
550
- address: depositToken,
551
- abi: erc2612Abi,
552
- functionName: "version"
553
- }),
554
- client.readContract({
555
- address: depositToken,
556
- abi: erc2612Abi,
557
- functionName: "nonces",
558
- args: [recipientAddress]
559
- })
560
- ]
561
- );
562
- if (nameResult.status === "fulfilled") {
563
- tokenName = nameResult.value;
564
- } else {
565
- throw new chunkB2QCI6ET_js.APIError(`Failed to read token name from ${depositToken}`, {
566
- endpoint: "prepareDepositPermitSignature",
567
- cause: nameResult.reason
568
- });
569
- }
570
- if (versionResult.status === "fulfilled") {
571
- tokenVersion = versionResult.value;
572
- } else {
573
- tokenVersion = "1";
574
- }
575
- if (nonceResult.status === "fulfilled") {
576
- nonce = nonceResult.value;
577
- } else {
578
- throw new chunkB2QCI6ET_js.APIError(
579
- `Token ${depositToken} does not support EIP-2612 permit. Missing required function: nonces()`,
492
+ let resolvedTokenName;
493
+ let resolvedTokenVersion;
494
+ let resolvedNonce;
495
+ const hasAllPrefetchedData = prefetchedTokenName !== void 0 && prefetchedTokenVersion !== void 0 && prefetchedNonce !== void 0;
496
+ if (hasAllPrefetchedData) {
497
+ resolvedTokenName = prefetchedTokenName;
498
+ resolvedTokenVersion = prefetchedTokenVersion;
499
+ resolvedNonce = prefetchedNonce;
500
+ } else {
501
+ const client = await chunk4NQCOMCZ_js.getClient(normalizedChainId);
502
+ try {
503
+ const [nameResult, versionResult, nonceResult] = await client.multicall(
580
504
  {
505
+ contracts: [
506
+ {
507
+ address: depositToken,
508
+ abi: chunk4NQCOMCZ_js.erc2612Abi,
509
+ functionName: "name"
510
+ },
511
+ {
512
+ address: depositToken,
513
+ abi: chunk4NQCOMCZ_js.erc2612Abi,
514
+ functionName: "version"
515
+ },
516
+ {
517
+ address: depositToken,
518
+ abi: chunk4NQCOMCZ_js.erc2612Abi,
519
+ functionName: "nonces",
520
+ args: [recipientAddress]
521
+ }
522
+ ]
523
+ }
524
+ );
525
+ if (prefetchedTokenName !== void 0) {
526
+ resolvedTokenName = prefetchedTokenName;
527
+ } else if (nameResult.status === "success") {
528
+ resolvedTokenName = nameResult.result;
529
+ } else {
530
+ throw new chunkUMRTU75Q_js.APIError(`Failed to read token name from ${depositToken}`, {
581
531
  endpoint: "prepareDepositPermitSignature",
582
- cause: nonceResult.reason
532
+ cause: nameResult.error
533
+ });
534
+ }
535
+ if (prefetchedTokenVersion !== void 0) {
536
+ resolvedTokenVersion = prefetchedTokenVersion;
537
+ } else if (versionResult.status === "success") {
538
+ resolvedTokenVersion = versionResult.result;
539
+ } else {
540
+ resolvedTokenVersion = "1";
541
+ }
542
+ if (prefetchedNonce !== void 0) {
543
+ resolvedNonce = prefetchedNonce;
544
+ } else if (nonceResult.status === "success") {
545
+ resolvedNonce = nonceResult.result;
546
+ } else {
547
+ throw new chunkUMRTU75Q_js.APIError(
548
+ `Token ${depositToken} does not support EIP-2612 permit. Missing required function: nonces()`,
549
+ {
550
+ endpoint: "prepareDepositPermitSignature",
551
+ cause: nonceResult.error
552
+ }
553
+ );
554
+ }
555
+ } catch (error) {
556
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
557
+ throw error;
558
+ }
559
+ throw new chunkUMRTU75Q_js.APIError(
560
+ `Failed to read token metadata: ${error instanceof Error ? error.message : "Unknown error"}`,
561
+ {
562
+ endpoint: "prepareDepositPermitSignature",
563
+ cause: error
583
564
  }
584
565
  );
585
566
  }
586
- } catch (error) {
587
- if (error instanceof chunkB2QCI6ET_js.APIError) {
588
- throw error;
589
- }
590
- throw new chunkB2QCI6ET_js.APIError(
591
- `Failed to read token metadata: ${error instanceof Error ? error.message : "Unknown error"}`,
592
- {
593
- endpoint: "prepareDepositPermitSignature",
594
- cause: error
595
- }
596
- );
597
567
  }
598
568
  const permitDeadline = deadline ?? BigInt(Math.floor(Date.now() / 1e3) + 3600);
599
- const assets = await chunkB2QCI6ET_js.fetchSupportedAssets({ address: depositToken });
600
- if (assets.length === 0) {
601
- throw new chunkB2QCI6ET_js.APIError(`Asset metadata not found for token ${depositToken}`, {
602
- endpoint: "prepareDepositPermitSignature"
603
- });
569
+ let resolvedDecimals;
570
+ if (prefetchedDecimals !== void 0) {
571
+ resolvedDecimals = prefetchedDecimals;
572
+ } else {
573
+ const assets = await chunkUMRTU75Q_js.fetchSupportedAssets({ address: depositToken });
574
+ if (assets.length === 0) {
575
+ throw new chunkUMRTU75Q_js.APIError(
576
+ `Asset metadata not found for token ${depositToken}`,
577
+ {
578
+ endpoint: "prepareDepositPermitSignature"
579
+ }
580
+ );
581
+ }
582
+ resolvedDecimals = assets[0].decimals;
604
583
  }
605
- const asset = assets[0];
606
- const value = viem.parseUnits(depositAmount, asset.decimals);
584
+ const value = viem.parseUnits(depositAmount, resolvedDecimals);
607
585
  const domain = {
608
- name: tokenName,
609
- version: tokenVersion,
586
+ name: resolvedTokenName,
587
+ version: resolvedTokenVersion,
610
588
  chainId: normalizedChainId,
611
589
  verifyingContract: depositToken
612
590
  };
@@ -614,7 +592,7 @@ async function prepareDepositPermitSignature(params) {
614
592
  owner: recipientAddress,
615
593
  spender: communityCodeDepositorAddress,
616
594
  value,
617
- nonce,
595
+ nonce: resolvedNonce,
618
596
  deadline: permitDeadline
619
597
  };
620
598
  return {
@@ -624,10 +602,10 @@ async function prepareDepositPermitSignature(params) {
624
602
  types: PERMIT_TYPES
625
603
  };
626
604
  } catch (error) {
627
- if (error instanceof chunkB2QCI6ET_js.APIError) {
605
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
628
606
  throw error;
629
607
  }
630
- throw new chunkB2QCI6ET_js.APIError(
608
+ throw new chunkUMRTU75Q_js.APIError(
631
609
  `Failed to prepare permit signature: ${error instanceof Error ? error.message : String(error)}`,
632
610
  {
633
611
  endpoint: "prepareDepositPermitSignature",
@@ -653,7 +631,7 @@ function parsePermitSignature(signature) {
653
631
  s: parsed.s
654
632
  };
655
633
  } catch (error) {
656
- throw new chunkB2QCI6ET_js.APIError(
634
+ throw new chunkUMRTU75Q_js.APIError(
657
635
  `Invalid permit signature format. Expected hex string but received: ${signature}. ${error instanceof Error ? error.message : "Unknown error"}`,
658
636
  {
659
637
  endpoint: "parsePermitSignature",
@@ -670,14 +648,14 @@ async function prepareDepositWithPermitTxData(params) {
670
648
  chainId,
671
649
  signature,
672
650
  deadline,
673
- slippage = chunkITB7FXG4_js.DEFAULT_SLIPPAGE_BPS,
651
+ slippage = chunkOJOKPBK7_js.DEFAULT_SLIPPAGE_BPS,
674
652
  recipientAddress,
675
653
  partnerCode
676
654
  } = params;
677
655
  try {
678
656
  const { v, r, s } = parsePermitSignature(signature);
679
657
  if (slippage < 0 || slippage > 1e4) {
680
- throw new chunkB2QCI6ET_js.APIError(
658
+ throw new chunkUMRTU75Q_js.APIError(
681
659
  `Invalid slippage value: ${slippage}. Slippage must be between 0 and 10000 basis points.`,
682
660
  {
683
661
  endpoint: "prepareDepositWithPermitTxData"
@@ -687,13 +665,13 @@ async function prepareDepositWithPermitTxData(params) {
687
665
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
688
666
  let vault;
689
667
  try {
690
- vault = await chunkB2QCI6ET_js.findVaultByConfig({
668
+ vault = await chunkUMRTU75Q_js.findVaultByConfig({
691
669
  assetAddress: depositToken,
692
670
  yieldType,
693
671
  chainId: normalizedChainId
694
672
  });
695
673
  } catch (error) {
696
- throw new chunkB2QCI6ET_js.APIError(
674
+ throw new chunkUMRTU75Q_js.APIError(
697
675
  `Failed to resolve vault for token ${depositToken} with yield type ${yieldType} on chain ${normalizedChainId}: ${error instanceof Error ? error.message : "Unknown error"}`,
698
676
  {
699
677
  endpoint: "prepareDepositWithPermitTxData",
@@ -702,7 +680,7 @@ async function prepareDepositWithPermitTxData(params) {
702
680
  );
703
681
  }
704
682
  if (!vault) {
705
- throw new chunkB2QCI6ET_js.APIError(
683
+ throw new chunkUMRTU75Q_js.APIError(
706
684
  `No vault found for token address ${depositToken} with yield type '${yieldType}' on chain ${normalizedChainId}. This combination may not be supported.`,
707
685
  {
708
686
  endpoint: "prepareDepositWithPermitTxData"
@@ -710,12 +688,12 @@ async function prepareDepositWithPermitTxData(params) {
710
688
  );
711
689
  }
712
690
  let asset = null;
713
- const assets = await chunkB2QCI6ET_js.fetchSupportedAssets({ address: depositToken });
691
+ const assets = await chunkUMRTU75Q_js.fetchSupportedAssets({ address: depositToken });
714
692
  if (assets.length > 0) {
715
693
  asset = assets.find((a) => a.chains.includes(normalizedChainId)) || assets[0] || null;
716
694
  }
717
695
  if (!asset) {
718
- throw new chunkB2QCI6ET_js.APIError(
696
+ throw new chunkUMRTU75Q_js.APIError(
719
697
  `Asset metadata not found for token ${depositToken} on chain ${normalizedChainId}`,
720
698
  {
721
699
  endpoint: "prepareDepositWithPermitTxData"
@@ -723,7 +701,7 @@ async function prepareDepositWithPermitTxData(params) {
723
701
  );
724
702
  }
725
703
  if (!asset.chains || !asset.chains.includes(normalizedChainId)) {
726
- throw new chunkB2QCI6ET_js.APIError(
704
+ throw new chunkUMRTU75Q_js.APIError(
727
705
  `Token ${asset.symbol || depositToken} not supported on chain ${normalizedChainId}`,
728
706
  {
729
707
  endpoint: "prepareDepositWithPermitTxData"
@@ -734,18 +712,18 @@ async function prepareDepositWithPermitTxData(params) {
734
712
  const accountantAddress = vault.vault.accountantAddress;
735
713
  const depositAssetAddress = asset.address;
736
714
  if (!communityCodeDepositorAddress) {
737
- throw new chunkB2QCI6ET_js.APIError(
715
+ throw new chunkUMRTU75Q_js.APIError(
738
716
  `CommunityCodeDepositor contract address not found for vault ${vault.id}`,
739
717
  { endpoint: "prepareDepositWithPermitTxData" }
740
718
  );
741
719
  }
742
- const [depositAssetDecimalsResult, rateInQuoteResult] = await chunkDTFLXAZJ_js.getRateInQuoteWithAssetDecimals({
720
+ const [depositAssetDecimalsResult, rateInQuoteResult] = await chunk4NQCOMCZ_js.getRateInQuoteWithAssetDecimals({
743
721
  assetAddress: depositAssetAddress,
744
722
  accountantAddress,
745
723
  chainId: normalizedChainId
746
724
  });
747
725
  if (depositAssetDecimalsResult.status === "failure") {
748
- throw new chunkB2QCI6ET_js.APIError(
726
+ throw new chunkUMRTU75Q_js.APIError(
749
727
  `Failed to get asset decimals: ${depositAssetDecimalsResult.error?.message || "Unknown error"}`,
750
728
  {
751
729
  endpoint: "prepareDepositWithPermitTxData",
@@ -754,7 +732,7 @@ async function prepareDepositWithPermitTxData(params) {
754
732
  );
755
733
  }
756
734
  if (rateInQuoteResult.status === "failure") {
757
- throw new chunkB2QCI6ET_js.APIError(
735
+ throw new chunkUMRTU75Q_js.APIError(
758
736
  `Failed to get exchange rate: ${rateInQuoteResult.error?.message || "Unknown error"}`,
759
737
  {
760
738
  endpoint: "prepareDepositWithPermitTxData",
@@ -763,11 +741,11 @@ async function prepareDepositWithPermitTxData(params) {
763
741
  );
764
742
  }
765
743
  const depositAmountAsBigInt = viem.parseUnits(depositAmount, asset.decimals);
766
- const vaultSharesAssets = await chunkB2QCI6ET_js.fetchSupportedAssets({
744
+ const vaultSharesAssets = await chunkUMRTU75Q_js.fetchSupportedAssets({
767
745
  address: vault.vault.boringVaultAddress
768
746
  });
769
747
  if (vaultSharesAssets.length === 0) {
770
- throw new chunkB2QCI6ET_js.APIError(
748
+ throw new chunkUMRTU75Q_js.APIError(
771
749
  `Vault shares token not found in supported assets: ${vault.vault.boringVaultAddress}`,
772
750
  { endpoint: "prepareDepositWithPermitTxData" }
773
751
  );
@@ -798,10 +776,10 @@ async function prepareDepositWithPermitTxData(params) {
798
776
  chainId: normalizedChainId
799
777
  };
800
778
  } catch (error) {
801
- if (error instanceof chunkB2QCI6ET_js.APIError) {
779
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
802
780
  throw error;
803
781
  }
804
- throw new chunkB2QCI6ET_js.APIError(
782
+ throw new chunkUMRTU75Q_js.APIError(
805
783
  `Failed to prepare deposit with permit transaction: ${error instanceof Error ? error.message : String(error)}`,
806
784
  {
807
785
  endpoint: "prepareDepositWithPermitTxData",
@@ -810,6 +788,196 @@ async function prepareDepositWithPermitTxData(params) {
810
788
  );
811
789
  }
812
790
  }
791
+ var DepositAuthMethod = {
792
+ PERMIT: "permit",
793
+ APPROVAL: "approval",
794
+ ALREADY_APPROVED: "already_approved"
795
+ };
796
+ async function prepareDepositAuthorization(params) {
797
+ const {
798
+ yieldType,
799
+ depositToken,
800
+ depositAmount,
801
+ recipientAddress,
802
+ chainId,
803
+ deadline,
804
+ forceMethod
805
+ } = params;
806
+ try {
807
+ const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
808
+ const vault = await chunkUMRTU75Q_js.findVaultByConfig({
809
+ assetAddress: depositToken,
810
+ yieldType,
811
+ chainId: normalizedChainId
812
+ });
813
+ if (!vault) {
814
+ throw new chunkUMRTU75Q_js.APIError(
815
+ `No vault found for token ${depositToken} with yield type '${yieldType}' on chain ${normalizedChainId}`,
816
+ { endpoint: "prepareDepositAuthorization" }
817
+ );
818
+ }
819
+ const tokenInfo = await chunk5VOI4WPL_js.isDepositSpendApproved({
820
+ yieldType,
821
+ chainId: normalizedChainId,
822
+ depositAssetAddress: depositToken,
823
+ recipientAddress
824
+ });
825
+ if (forceMethod === "permit") {
826
+ const permitData = await prepareDepositPermitSignature({
827
+ yieldType,
828
+ depositToken,
829
+ depositAmount,
830
+ recipientAddress,
831
+ chainId: normalizedChainId,
832
+ deadline,
833
+ // Pass pre-fetched data to avoid redundant RPC calls
834
+ nonce: tokenInfo.nonce ?? void 0,
835
+ decimals: tokenInfo.decimals,
836
+ tokenName: tokenInfo.tokenName,
837
+ tokenVersion: tokenInfo.tokenVersion
838
+ });
839
+ return {
840
+ method: DepositAuthMethod.PERMIT,
841
+ permitData
842
+ };
843
+ }
844
+ if (forceMethod === "approval") {
845
+ const txData2 = await prepareApproveDepositTokenTxData({
846
+ yieldType,
847
+ depositToken,
848
+ approvalAmount: depositAmount,
849
+ chainId: normalizedChainId
850
+ });
851
+ return {
852
+ method: DepositAuthMethod.APPROVAL,
853
+ txData: txData2,
854
+ currentAllowance: tokenInfo.allowance,
855
+ currentAllowanceAsBigInt: tokenInfo.allowanceAsBigInt
856
+ };
857
+ }
858
+ if (tokenInfo.supportsPermit) {
859
+ const permitData = await prepareDepositPermitSignature({
860
+ yieldType,
861
+ depositToken,
862
+ depositAmount,
863
+ recipientAddress,
864
+ chainId: normalizedChainId,
865
+ deadline,
866
+ // Pass pre-fetched data to avoid redundant RPC calls
867
+ nonce: tokenInfo.nonce ?? void 0,
868
+ decimals: tokenInfo.decimals,
869
+ tokenName: tokenInfo.tokenName,
870
+ tokenVersion: tokenInfo.tokenVersion
871
+ });
872
+ return {
873
+ method: DepositAuthMethod.PERMIT,
874
+ permitData
875
+ };
876
+ }
877
+ const depositAmountBigInt = viem.parseUnits(depositAmount, tokenInfo.decimals);
878
+ const currentAllowanceBigInt = BigInt(tokenInfo.allowanceAsBigInt);
879
+ if (tokenInfo.isApproved && currentAllowanceBigInt >= depositAmountBigInt) {
880
+ return {
881
+ method: DepositAuthMethod.ALREADY_APPROVED,
882
+ allowance: tokenInfo.allowance,
883
+ allowanceAsBigInt: tokenInfo.allowanceAsBigInt
884
+ };
885
+ }
886
+ const txData = await prepareApproveDepositTokenTxData({
887
+ yieldType,
888
+ depositToken,
889
+ approvalAmount: depositAmount,
890
+ chainId: normalizedChainId
891
+ });
892
+ return {
893
+ method: DepositAuthMethod.APPROVAL,
894
+ txData,
895
+ currentAllowance: tokenInfo.allowance,
896
+ currentAllowanceAsBigInt: tokenInfo.allowanceAsBigInt
897
+ };
898
+ } catch (error) {
899
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
900
+ throw error;
901
+ }
902
+ throw new chunkUMRTU75Q_js.APIError(
903
+ `Failed to prepare deposit authorization: ${error instanceof Error ? error.message : String(error)}`,
904
+ {
905
+ endpoint: "prepareDepositAuthorization",
906
+ cause: error
907
+ }
908
+ );
909
+ }
910
+ }
911
+ async function prepareDeposit(params) {
912
+ const {
913
+ yieldType,
914
+ depositToken,
915
+ depositAmount,
916
+ recipientAddress,
917
+ chainId,
918
+ slippage,
919
+ partnerCode,
920
+ signature,
921
+ deadline,
922
+ forceMethod
923
+ } = params;
924
+ try {
925
+ if (forceMethod === "permit" && (!signature || deadline === void 0)) {
926
+ throw new chunkUMRTU75Q_js.APIError(
927
+ "Permit deposit requires both signature and deadline parameters when forceMethod is 'permit'",
928
+ { endpoint: "prepareDeposit" }
929
+ );
930
+ }
931
+ const usePermit = forceMethod === "permit" || forceMethod !== "approval" && signature !== void 0 && deadline !== void 0;
932
+ if (usePermit) {
933
+ if (!signature || deadline === void 0) {
934
+ throw new chunkUMRTU75Q_js.APIError(
935
+ "Permit deposit requires both signature and deadline parameters",
936
+ { endpoint: "prepareDeposit" }
937
+ );
938
+ }
939
+ const txData2 = await prepareDepositWithPermitTxData({
940
+ yieldType,
941
+ depositToken,
942
+ depositAmount,
943
+ recipientAddress,
944
+ chainId,
945
+ signature,
946
+ deadline,
947
+ slippage,
948
+ partnerCode
949
+ });
950
+ return {
951
+ method: DepositAuthMethod.PERMIT,
952
+ txData: txData2
953
+ };
954
+ }
955
+ const txData = await prepareDepositTxData({
956
+ yieldType,
957
+ depositToken,
958
+ depositAmount,
959
+ recipientAddress,
960
+ chainId,
961
+ slippage,
962
+ partnerCode
963
+ });
964
+ return {
965
+ method: DepositAuthMethod.APPROVAL,
966
+ txData
967
+ };
968
+ } catch (error) {
969
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
970
+ throw error;
971
+ }
972
+ throw new chunkUMRTU75Q_js.APIError(
973
+ `Failed to prepare deposit: ${error instanceof Error ? error.message : String(error)}`,
974
+ {
975
+ endpoint: "prepareDeposit",
976
+ cause: error
977
+ }
978
+ );
979
+ }
980
+ }
813
981
  async function prepareApproveWithdrawTxData({
814
982
  yieldType,
815
983
  wantAssetAddress,
@@ -818,45 +986,45 @@ async function prepareApproveWithdrawTxData({
818
986
  }) {
819
987
  try {
820
988
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
821
- const config = await chunkB2QCI6ET_js.findVaultByConfig({
989
+ const config = await chunkUMRTU75Q_js.findVaultByConfig({
822
990
  assetAddress: wantAssetAddress,
823
991
  yieldType,
824
992
  chainId: normalizedChainId
825
993
  });
826
994
  if (!config || config.chainId !== normalizedChainId) {
827
- throw new chunkB2QCI6ET_js.APIError(
995
+ throw new chunkUMRTU75Q_js.APIError(
828
996
  `Vault chain mismatch: vault is on chain ${config?.chainId}, requested chain ${normalizedChainId}`,
829
997
  { endpoint: "prepareApproveWithdrawToken" }
830
998
  );
831
999
  }
832
1000
  if (!config.vault.boringVaultAddress) {
833
- throw new chunkB2QCI6ET_js.APIError(
1001
+ throw new chunkUMRTU75Q_js.APIError(
834
1002
  `BoringVault contract address not configured for vault ${config.id}`,
835
1003
  { endpoint: "prepareApproveWithdrawToken" }
836
1004
  );
837
1005
  }
838
1006
  const boringVaultAddress = config.vault.boringVaultAddress;
839
- const vaultSharesAssets = await chunkB2QCI6ET_js.getAssetsFromCache({
1007
+ const vaultSharesAssets = await chunkUMRTU75Q_js.getAssetsFromCache({
840
1008
  address: boringVaultAddress
841
1009
  });
842
1010
  if (vaultSharesAssets.length === 0) {
843
- throw new chunkB2QCI6ET_js.APIError(
1011
+ throw new chunkUMRTU75Q_js.APIError(
844
1012
  `Vault shares token not found in supported assets: ${boringVaultAddress}`,
845
1013
  { endpoint: "prepareApproveWithdrawToken" }
846
1014
  );
847
1015
  }
848
- const withdrawAmountAsBigInt = withdrawAmount ? viem.parseUnits(withdrawAmount, vaultSharesAssets[0].decimals) : chunkB2QCI6ET_js.DEFAULT_APPROVAL_AMOUNT;
1016
+ const withdrawAmountAsBigInt = withdrawAmount ? viem.parseUnits(withdrawAmount, vaultSharesAssets[0].decimals) : chunkUMRTU75Q_js.DEFAULT_APPROVAL_AMOUNT;
849
1017
  return {
850
- abi: chunkDTFLXAZJ_js.BoringVaultAbi,
1018
+ abi: chunk4NQCOMCZ_js.BoringVaultAbi,
851
1019
  address: boringVaultAddress,
852
1020
  functionName: "approve",
853
- args: [chunkB2QCI6ET_js.ATOMIC_QUEUE_CONTRACT_ADDRESS, withdrawAmountAsBigInt]
1021
+ args: [chunkUMRTU75Q_js.ATOMIC_QUEUE_CONTRACT_ADDRESS, withdrawAmountAsBigInt]
854
1022
  };
855
1023
  } catch (error) {
856
- if (error instanceof chunkB2QCI6ET_js.APIError) {
1024
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
857
1025
  throw error;
858
1026
  }
859
- throw new chunkB2QCI6ET_js.APIError(
1027
+ throw new chunkUMRTU75Q_js.APIError(
860
1028
  `Failed to prepare approval transaction: ${error instanceof Error ? error.message : String(error)}`,
861
1029
  {
862
1030
  endpoint: "prepareApproveWithdrawToken",
@@ -868,7 +1036,7 @@ async function prepareApproveWithdrawTxData({
868
1036
 
869
1037
  // src/vaults/withdraw/utils.ts
870
1038
  var prepareUserRequest = (offerAmount, atomicPrice, deadline) => {
871
- const deadlineTimeStamp = chunkLSNRG5Z2_js.calculateDeadline(deadline);
1039
+ const deadlineTimeStamp = chunkKB4EPCK2_js.calculateDeadline(deadline);
872
1040
  return {
873
1041
  deadline: deadlineTimeStamp,
874
1042
  atomicPrice,
@@ -889,35 +1057,35 @@ async function prepareBulkWithdrawTxData(params) {
889
1057
  wantAssetAddress,
890
1058
  shareAmount,
891
1059
  chainId,
892
- slippage = chunkITB7FXG4_js.DEFAULT_SLIPPAGE_BPS,
1060
+ slippage = chunkOJOKPBK7_js.DEFAULT_SLIPPAGE_BPS,
893
1061
  recipientAddress
894
1062
  } = params;
895
1063
  try {
896
1064
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
897
- const vault = await chunkB2QCI6ET_js.findVaultByConfig({
1065
+ const vault = await chunkUMRTU75Q_js.findVaultByConfig({
898
1066
  assetAddress: wantAssetAddress,
899
1067
  yieldType,
900
1068
  chainId: normalizedChainId
901
1069
  });
902
1070
  if (vault && vault.chainId !== normalizedChainId) {
903
- throw new chunkB2QCI6ET_js.APIError(
1071
+ throw new chunkUMRTU75Q_js.APIError(
904
1072
  `Vault chain mismatch: vault is on chain ${vault.chainId}, requested chain ${normalizedChainId}`,
905
1073
  { endpoint: "prepareBulkWithdrawTransactionData" }
906
1074
  );
907
1075
  }
908
1076
  if (!vault || !vault.vault.boringVaultAddress) {
909
- throw new chunkB2QCI6ET_js.APIError(
1077
+ throw new chunkUMRTU75Q_js.APIError(
910
1078
  `BoringVault contract address not configured for vault ${vault?.vault.boringVaultAddress}`,
911
1079
  { endpoint: "prepareBulkWithdrawTransactionData" }
912
1080
  );
913
1081
  }
914
1082
  const boringVaultAddress = vault.vault.boringVaultAddress;
915
1083
  const accountantAddress = vault.vault.accountantAddress;
916
- const wantAsset = await chunkB2QCI6ET_js.getAssetsFromCache({
1084
+ const wantAsset = await chunkUMRTU75Q_js.getAssetsFromCache({
917
1085
  address: wantAssetAddress
918
1086
  });
919
1087
  if (wantAsset.length === 0) {
920
- throw new chunkB2QCI6ET_js.APIError(
1088
+ throw new chunkUMRTU75Q_js.APIError(
921
1089
  `Vault shares token not found in supported assets: ${boringVaultAddress}`,
922
1090
  { endpoint: "prepareBulkWithdrawTransactionData" }
923
1091
  );
@@ -926,14 +1094,14 @@ async function prepareBulkWithdrawTxData(params) {
926
1094
  wantAssetDecimalsResult,
927
1095
  sharesAssetDecimalsResult,
928
1096
  rateInQuoteResult
929
- ] = await chunkDTFLXAZJ_js.getRateInQuoteAndSharesAndWantAssetDecimals({
1097
+ ] = await chunk4NQCOMCZ_js.getRateInQuoteAndSharesAndWantAssetDecimals({
930
1098
  sharesAssetAddress: boringVaultAddress,
931
1099
  wantAssetAddress,
932
1100
  accountantAddress,
933
1101
  chainId: normalizedChainId
934
1102
  });
935
1103
  if (rateInQuoteResult.status === "failure" || wantAssetDecimalsResult.status === "failure" || sharesAssetDecimalsResult.status === "failure") {
936
- throw new chunkB2QCI6ET_js.APIError(
1104
+ throw new chunkUMRTU75Q_js.APIError(
937
1105
  `Failed to get exchange rate: ${rateInQuoteResult?.error?.message || wantAssetDecimalsResult?.error?.message || sharesAssetDecimalsResult?.error?.message}`,
938
1106
  {
939
1107
  endpoint: "prepareBulkWithdrawTransactionData",
@@ -954,7 +1122,7 @@ async function prepareBulkWithdrawTxData(params) {
954
1122
  );
955
1123
  const minimumAssets = atomicPrice * offerAmountAsBigInt / BigInt(10 ** sharesAssetDecimalsResult.result);
956
1124
  return {
957
- abi: chunkDTFLXAZJ_js.TellerAbi,
1125
+ abi: chunk4NQCOMCZ_js.TellerAbi,
958
1126
  address: vault.vault.tellerAddress,
959
1127
  functionName: "bulkWithdraw",
960
1128
  args: [
@@ -966,10 +1134,10 @@ async function prepareBulkWithdrawTxData(params) {
966
1134
  chainId: normalizedChainId
967
1135
  };
968
1136
  } catch (error) {
969
- if (error instanceof chunkB2QCI6ET_js.APIError) {
1137
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
970
1138
  throw error;
971
1139
  }
972
- throw new chunkB2QCI6ET_js.APIError(
1140
+ throw new chunkUMRTU75Q_js.APIError(
973
1141
  `Failed to prepare withdrawal transaction: ${error instanceof Error ? error.message : String(error)}`,
974
1142
  {
975
1143
  endpoint: "prepareBulkWithdrawTransactionData",
@@ -1220,30 +1388,30 @@ var prepareWithdrawTxData = async ({
1220
1388
  wantAssetAddress,
1221
1389
  chainId,
1222
1390
  offerAmount,
1223
- deadline = chunkB2QCI6ET_js.DEFAULT_DEADLINE,
1224
- slippage = chunkITB7FXG4_js.DEFAULT_SLIPPAGE_BPS
1391
+ deadline = chunkUMRTU75Q_js.DEFAULT_DEADLINE,
1392
+ slippage = chunkOJOKPBK7_js.DEFAULT_SLIPPAGE_BPS
1225
1393
  }) => {
1226
1394
  try {
1227
1395
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
1228
- const config = await chunkB2QCI6ET_js.findVaultByConfig({
1396
+ const config = await chunkUMRTU75Q_js.findVaultByConfig({
1229
1397
  assetAddress: wantAssetAddress,
1230
1398
  yieldType,
1231
1399
  chainId: normalizedChainId
1232
1400
  });
1233
1401
  if (config && config.chainId !== normalizedChainId) {
1234
- throw new chunkB2QCI6ET_js.APIError(
1402
+ throw new chunkUMRTU75Q_js.APIError(
1235
1403
  `Vault chain mismatch: vault is on chain ${config.chainId}, requested chain ${normalizedChainId}`,
1236
1404
  { endpoint: "prepareWithdrawTransactionData" }
1237
1405
  );
1238
1406
  }
1239
1407
  if (!config || !config.vault.boringVaultAddress) {
1240
- throw new chunkB2QCI6ET_js.APIError(
1408
+ throw new chunkUMRTU75Q_js.APIError(
1241
1409
  `BoringVault contract address not configured for vault ${config?.id}`,
1242
1410
  { endpoint: "prepareWithdrawTransactionData" }
1243
1411
  );
1244
1412
  }
1245
1413
  if (!config.vault.accountantAddress) {
1246
- throw new chunkB2QCI6ET_js.APIError(
1414
+ throw new chunkUMRTU75Q_js.APIError(
1247
1415
  `Accountant contract address not configured for vault ${config.id}`,
1248
1416
  { endpoint: "prepareWithdrawTransactionData" }
1249
1417
  );
@@ -1254,14 +1422,14 @@ var prepareWithdrawTxData = async ({
1254
1422
  wantAssetDecimalsResult,
1255
1423
  sharesAssetDecimalsResult,
1256
1424
  rateInQuoteResult
1257
- ] = await chunkDTFLXAZJ_js.getRateInQuoteAndSharesAndWantAssetDecimals({
1425
+ ] = await chunk4NQCOMCZ_js.getRateInQuoteAndSharesAndWantAssetDecimals({
1258
1426
  sharesAssetAddress: boringVaultAddress,
1259
1427
  wantAssetAddress,
1260
1428
  accountantAddress,
1261
1429
  chainId: normalizedChainId
1262
1430
  });
1263
1431
  if (rateInQuoteResult?.status === "failure" || wantAssetDecimalsResult?.status === "failure" || sharesAssetDecimalsResult?.status === "failure") {
1264
- throw new chunkB2QCI6ET_js.APIError(
1432
+ throw new chunkUMRTU75Q_js.APIError(
1265
1433
  `Failed to get exchange rate: ${rateInQuoteResult?.error?.message || wantAssetDecimalsResult?.error?.message || sharesAssetDecimalsResult?.error?.message}`,
1266
1434
  {
1267
1435
  endpoint: "prepareWithdrawTransactionData",
@@ -1287,16 +1455,16 @@ var prepareWithdrawTxData = async ({
1287
1455
  );
1288
1456
  return {
1289
1457
  abi: AtomicQueueAbi,
1290
- address: chunkB2QCI6ET_js.ATOMIC_QUEUE_CONTRACT_ADDRESS,
1458
+ address: chunkUMRTU75Q_js.ATOMIC_QUEUE_CONTRACT_ADDRESS,
1291
1459
  functionName: "updateAtomicRequest",
1292
1460
  args: [boringVaultAddress, wantAssetAddress, userRequest],
1293
1461
  chainId: normalizedChainId
1294
1462
  };
1295
1463
  } catch (error) {
1296
- if (error instanceof chunkB2QCI6ET_js.APIError) {
1464
+ if (error instanceof chunkUMRTU75Q_js.APIError) {
1297
1465
  throw error;
1298
1466
  }
1299
- throw new chunkB2QCI6ET_js.APIError(
1467
+ throw new chunkUMRTU75Q_js.APIError(
1300
1468
  `Failed to prepare withdrawal transaction: ${error instanceof Error ? error.message : String(error)}`,
1301
1469
  {
1302
1470
  endpoint: "prepareWithdrawTransactionData",
@@ -1308,69 +1476,88 @@ var prepareWithdrawTxData = async ({
1308
1476
 
1309
1477
  Object.defineProperty(exports, "YieldType", {
1310
1478
  enumerable: true,
1311
- get: function () { return chunkITB7FXG4_js.YieldType; }
1479
+ get: function () { return chunkOJOKPBK7_js.YieldType; }
1312
1480
  });
1313
1481
  Object.defineProperty(exports, "getDepositExchangeRate", {
1314
1482
  enumerable: true,
1315
- get: function () { return chunkKYR6BFAE_js.getDepositExchangeRate; }
1483
+ get: function () { return chunk5VOI4WPL_js.getDepositExchangeRate; }
1316
1484
  });
1317
1485
  Object.defineProperty(exports, "getWithdrawExchangeRate", {
1318
1486
  enumerable: true,
1319
- get: function () { return chunkKYR6BFAE_js.getWithdrawExchangeRate; }
1487
+ get: function () { return chunk5VOI4WPL_js.getWithdrawExchangeRate; }
1320
1488
  });
1321
1489
  Object.defineProperty(exports, "isDepositSpendApproved", {
1322
1490
  enumerable: true,
1323
- get: function () { return chunkKYR6BFAE_js.isDepositSpendApproved; }
1491
+ get: function () { return chunk5VOI4WPL_js.isDepositSpendApproved; }
1324
1492
  });
1325
1493
  Object.defineProperty(exports, "isWithdrawalSpendApproved", {
1326
1494
  enumerable: true,
1327
- get: function () { return chunkKYR6BFAE_js.isWithdrawalSpendApproved; }
1495
+ get: function () { return chunk5VOI4WPL_js.isWithdrawalSpendApproved; }
1328
1496
  });
1329
1497
  Object.defineProperty(exports, "APIError", {
1330
1498
  enumerable: true,
1331
- get: function () { return chunkB2QCI6ET_js.APIError; }
1499
+ get: function () { return chunkUMRTU75Q_js.APIError; }
1500
+ });
1501
+ Object.defineProperty(exports, "LogLevel", {
1502
+ enumerable: true,
1503
+ get: function () { return chunkUMRTU75Q_js.LogLevel; }
1332
1504
  });
1333
1505
  Object.defineProperty(exports, "fetchSupportedAssets", {
1334
1506
  enumerable: true,
1335
- get: function () { return chunkB2QCI6ET_js.fetchSupportedAssets; }
1507
+ get: function () { return chunkUMRTU75Q_js.fetchSupportedAssets; }
1336
1508
  });
1337
1509
  Object.defineProperty(exports, "fetchVaults", {
1338
1510
  enumerable: true,
1339
- get: function () { return chunkB2QCI6ET_js.fetchVaults; }
1511
+ get: function () { return chunkUMRTU75Q_js.fetchVaults; }
1340
1512
  });
1341
1513
  Object.defineProperty(exports, "findVaultByConfig", {
1342
1514
  enumerable: true,
1343
- get: function () { return chunkB2QCI6ET_js.findVaultByConfig; }
1515
+ get: function () { return chunkUMRTU75Q_js.findVaultByConfig; }
1344
1516
  });
1345
1517
  Object.defineProperty(exports, "getAssetsFromCache", {
1346
1518
  enumerable: true,
1347
- get: function () { return chunkB2QCI6ET_js.getAssetsFromCache; }
1519
+ get: function () { return chunkUMRTU75Q_js.getAssetsFromCache; }
1348
1520
  });
1349
1521
  Object.defineProperty(exports, "getCache", {
1350
1522
  enumerable: true,
1351
- get: function () { return chunkB2QCI6ET_js.getCache; }
1523
+ get: function () { return chunkUMRTU75Q_js.getCache; }
1524
+ });
1525
+ Object.defineProperty(exports, "getLogger", {
1526
+ enumerable: true,
1527
+ get: function () { return chunkUMRTU75Q_js.getLogger; }
1352
1528
  });
1353
1529
  Object.defineProperty(exports, "getWithdrawSupportedAssets", {
1354
1530
  enumerable: true,
1355
- get: function () { return chunkB2QCI6ET_js.getWithdrawSupportedAssets; }
1531
+ get: function () { return chunkUMRTU75Q_js.getWithdrawSupportedAssets; }
1356
1532
  });
1357
1533
  Object.defineProperty(exports, "initAmplifySDK", {
1358
1534
  enumerable: true,
1359
- get: function () { return chunkB2QCI6ET_js.initAmplifySDK; }
1535
+ get: function () { return chunkUMRTU75Q_js.initAmplifySDK; }
1360
1536
  });
1361
1537
  Object.defineProperty(exports, "initializeCache", {
1362
1538
  enumerable: true,
1363
- get: function () { return chunkB2QCI6ET_js.initializeCache; }
1539
+ get: function () { return chunkUMRTU75Q_js.initializeCache; }
1364
1540
  });
1365
1541
  Object.defineProperty(exports, "refreshVaultCache", {
1366
1542
  enumerable: true,
1367
- get: function () { return chunkB2QCI6ET_js.refreshVaultCache; }
1543
+ get: function () { return chunkUMRTU75Q_js.refreshVaultCache; }
1544
+ });
1545
+ Object.defineProperty(exports, "setLogLevel", {
1546
+ enumerable: true,
1547
+ get: function () { return chunkUMRTU75Q_js.setLogLevel; }
1548
+ });
1549
+ Object.defineProperty(exports, "setLogger", {
1550
+ enumerable: true,
1551
+ get: function () { return chunkUMRTU75Q_js.setLogger; }
1368
1552
  });
1553
+ exports.DepositAuthMethod = DepositAuthMethod;
1369
1554
  exports.PERMIT_TYPES = PERMIT_TYPES;
1370
1555
  exports.parsePermitSignature = parsePermitSignature;
1371
1556
  exports.prepareApproveDepositTokenTxData = prepareApproveDepositTokenTxData;
1372
1557
  exports.prepareApproveWithdrawTxData = prepareApproveWithdrawTxData;
1373
1558
  exports.prepareBulkWithdrawTxData = prepareBulkWithdrawTxData;
1559
+ exports.prepareDeposit = prepareDeposit;
1560
+ exports.prepareDepositAuthorization = prepareDepositAuthorization;
1374
1561
  exports.prepareDepositPermitSignature = prepareDepositPermitSignature;
1375
1562
  exports.prepareDepositTxData = prepareDepositTxData;
1376
1563
  exports.prepareDepositWithPermitTxData = prepareDepositWithPermitTxData;