@paxoslabs/amplify-sdk 0.0.1 → 0.1.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 (55) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/README.md +5 -480
  3. package/dist/{amplify-sdk-api-DPrRhynk.d.mts → amplify-sdk-api-Biol0OIp.d.mts} +1 -1
  4. package/dist/{amplify-sdk-api-B5hBTGrB.d.ts → amplify-sdk-api-DGRgEybp.d.ts} +1 -1
  5. package/dist/{chunk-IBNTWZ4S.js → chunk-B2QCI6ET.js} +13 -35
  6. package/dist/chunk-B2QCI6ET.js.map +1 -0
  7. package/dist/{chunk-WFCHKDDG.mjs → chunk-CUGK4ZBJ.mjs} +13 -35
  8. package/dist/chunk-CUGK4ZBJ.mjs.map +1 -0
  9. package/dist/{chunk-BXUG3WDV.js → chunk-DTFLXAZJ.js} +27 -52
  10. package/dist/chunk-DTFLXAZJ.js.map +1 -0
  11. package/dist/{chunk-AIBI7ZQM.js → chunk-GS7TDQXA.js} +8 -8
  12. package/dist/{chunk-AIBI7ZQM.js.map → chunk-GS7TDQXA.js.map} +1 -1
  13. package/dist/{chunk-GBWBO6ZF.mjs → chunk-HI44AMLC.mjs} +8 -8
  14. package/dist/chunk-HI44AMLC.mjs.map +1 -0
  15. package/dist/{chunk-ZCVMGIMV.js → chunk-KYR6BFAE.js} +24 -24
  16. package/dist/chunk-KYR6BFAE.js.map +1 -0
  17. package/dist/{chunk-K4DL2AII.js → chunk-LSNRG5Z2.js} +4 -4
  18. package/dist/{chunk-K4DL2AII.js.map → chunk-LSNRG5Z2.js.map} +1 -1
  19. package/dist/{chunk-OPOYGPSS.mjs → chunk-REKEQLQA.mjs} +3 -3
  20. package/dist/{chunk-OPOYGPSS.mjs.map → chunk-REKEQLQA.mjs.map} +1 -1
  21. package/dist/{chunk-ZLS2AAMI.mjs → chunk-VIULRHK6.mjs} +3 -3
  22. package/dist/{chunk-ZLS2AAMI.mjs.map → chunk-VIULRHK6.mjs.map} +1 -1
  23. package/dist/{chunk-YP2TR5RP.mjs → chunk-ZILA73XN.mjs} +25 -50
  24. package/dist/chunk-ZILA73XN.mjs.map +1 -0
  25. package/dist/core.d.mts +6 -6
  26. package/dist/core.d.ts +6 -6
  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 +3 -3
  32. package/dist/display.d.ts +3 -3
  33. package/dist/display.js +16 -16
  34. package/dist/display.js.map +1 -1
  35. package/dist/display.mjs +8 -8
  36. package/dist/display.mjs.map +1 -1
  37. package/dist/{exchange-rate-CRA_CMaX.d.mts → exchange-rate-BfPH_fQt.d.mts} +4 -4
  38. package/dist/{exchange-rate-D3_FVgqa.d.ts → exchange-rate-Cp1ddpw4.d.ts} +4 -4
  39. package/dist/index.d.mts +245 -15
  40. package/dist/index.d.ts +245 -15
  41. package/dist/index.js +341 -145
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +249 -53
  44. package/dist/index.mjs.map +1 -1
  45. package/dist/utils.d.mts +1 -1
  46. package/dist/utils.d.ts +1 -1
  47. package/dist/utils.js +5 -5
  48. package/dist/utils.mjs +2 -2
  49. package/package.json +7 -7
  50. package/dist/chunk-BXUG3WDV.js.map +0 -1
  51. package/dist/chunk-GBWBO6ZF.mjs.map +0 -1
  52. package/dist/chunk-IBNTWZ4S.js.map +0 -1
  53. package/dist/chunk-WFCHKDDG.mjs.map +0 -1
  54. package/dist/chunk-YP2TR5RP.mjs.map +0 -1
  55. package/dist/chunk-ZCVMGIMV.js.map +0 -1
@@ -1,27 +1,27 @@
1
1
  'use strict';
2
2
 
3
- var chunkBXUG3WDV_js = require('./chunk-BXUG3WDV.js');
3
+ var chunkDTFLXAZJ_js = require('./chunk-DTFLXAZJ.js');
4
4
  var chunkICKDAKVS_js = require('./chunk-ICKDAKVS.js');
5
5
  var chunkRUIAH5HY_js = require('./chunk-RUIAH5HY.js');
6
6
  var chunk3I3PYX2F_js = require('./chunk-3I3PYX2F.js');
7
- var chunkIBNTWZ4S_js = require('./chunk-IBNTWZ4S.js');
7
+ var chunkB2QCI6ET_js = require('./chunk-B2QCI6ET.js');
8
8
  var viem = require('viem');
9
9
 
10
10
  var isDepositSpendApproved = async ({
11
11
  yieldType,
12
12
  chainId,
13
13
  depositAssetAddress,
14
- userAddress
14
+ recipientAddress
15
15
  }) => {
16
16
  try {
17
17
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
18
- const config = await chunkIBNTWZ4S_js.findVaultByConfig({
18
+ const config = await chunkB2QCI6ET_js.findVaultByConfig({
19
19
  yieldType,
20
20
  chainId: normalizedChainId,
21
21
  assetAddress: depositAssetAddress
22
22
  });
23
23
  if (!config) {
24
- throw new chunkIBNTWZ4S_js.APIError(
24
+ throw new chunkB2QCI6ET_js.APIError(
25
25
  `Vault not found for ${yieldType} on chain ${normalizedChainId}`,
26
26
  {
27
27
  endpoint: "isDepositSpendApproved"
@@ -30,21 +30,21 @@ var isDepositSpendApproved = async ({
30
30
  }
31
31
  const boringVaultAddress = config.vault.boringVaultAddress;
32
32
  if (!boringVaultAddress) {
33
- throw new chunkIBNTWZ4S_js.APIError(
33
+ throw new chunkB2QCI6ET_js.APIError(
34
34
  `BoringVault contract address not configured for vault ${config.id}`,
35
35
  {
36
36
  endpoint: "isDepositSpendApproved"
37
37
  }
38
38
  );
39
39
  }
40
- const [allowance, decimals] = await chunkBXUG3WDV_js.getErc20AllowanceWithDecimals({
40
+ const [allowance, decimals] = await chunkDTFLXAZJ_js.getErc20AllowanceWithDecimals({
41
41
  chainId: normalizedChainId,
42
42
  tokenAddress: depositAssetAddress,
43
- userAddress,
43
+ recipientAddress,
44
44
  spenderAddress: boringVaultAddress
45
45
  });
46
46
  if (allowance.status === "failure" || decimals.status === "failure") {
47
- throw new chunkIBNTWZ4S_js.APIError(
47
+ throw new chunkB2QCI6ET_js.APIError(
48
48
  `Failed to get allowance: ${allowance.error || decimals.error}`,
49
49
  {
50
50
  endpoint: "isDepositSpendApproved"
@@ -59,10 +59,10 @@ var isDepositSpendApproved = async ({
59
59
  error: null
60
60
  };
61
61
  } catch (error) {
62
- if (error instanceof chunkIBNTWZ4S_js.APIError) {
62
+ if (error instanceof chunkB2QCI6ET_js.APIError) {
63
63
  throw error;
64
64
  }
65
- throw new chunkIBNTWZ4S_js.APIError(
65
+ throw new chunkB2QCI6ET_js.APIError(
66
66
  `Failed to check deposit approval: ${error instanceof Error ? error.message : String(error)}`,
67
67
  {
68
68
  endpoint: "isDepositSpendApproved",
@@ -75,17 +75,17 @@ var isWithdrawalSpendApproved = async ({
75
75
  yieldType,
76
76
  chainId,
77
77
  wantAssetAddress,
78
- userAddress
78
+ recipientAddress
79
79
  }) => {
80
80
  try {
81
81
  const normalizedChainId = chunkRUIAH5HY_js.toChainId(chainId);
82
- const config = await chunkIBNTWZ4S_js.findVaultByConfig({
82
+ const config = await chunkB2QCI6ET_js.findVaultByConfig({
83
83
  yieldType,
84
84
  chainId: normalizedChainId,
85
85
  assetAddress: wantAssetAddress
86
86
  });
87
87
  if (!config) {
88
- throw new chunkIBNTWZ4S_js.APIError(
88
+ throw new chunkB2QCI6ET_js.APIError(
89
89
  `Vault not found for ${yieldType} on chain ${normalizedChainId}`,
90
90
  {
91
91
  endpoint: "isWithdrawalSpendApproved"
@@ -94,18 +94,18 @@ var isWithdrawalSpendApproved = async ({
94
94
  }
95
95
  const boringVaultAddress = config.vault.boringVaultAddress;
96
96
  if (!boringVaultAddress) {
97
- throw new chunkIBNTWZ4S_js.APIError(
97
+ throw new chunkB2QCI6ET_js.APIError(
98
98
  `BoringVault contract address not configured for vault ${config.id}`,
99
99
  {
100
100
  endpoint: "isWithdrawalSpendApproved"
101
101
  }
102
102
  );
103
103
  }
104
- const [allowance, decimals] = await chunkBXUG3WDV_js.getErc20AllowanceWithDecimals({
104
+ const [allowance, decimals] = await chunkDTFLXAZJ_js.getErc20AllowanceWithDecimals({
105
105
  chainId: normalizedChainId,
106
106
  tokenAddress: boringVaultAddress,
107
- userAddress,
108
- spenderAddress: chunkIBNTWZ4S_js.ATOMIC_QUEUE_CONTRACT_ADDRESS
107
+ recipientAddress,
108
+ spenderAddress: chunkB2QCI6ET_js.ATOMIC_QUEUE_CONTRACT_ADDRESS
109
109
  });
110
110
  if (allowance.status === "failure" || decimals.status === "failure") {
111
111
  return {
@@ -124,10 +124,10 @@ var isWithdrawalSpendApproved = async ({
124
124
  error: null
125
125
  };
126
126
  } catch (error) {
127
- if (error instanceof chunkIBNTWZ4S_js.APIError) {
127
+ if (error instanceof chunkB2QCI6ET_js.APIError) {
128
128
  throw error;
129
129
  }
130
- throw new chunkIBNTWZ4S_js.APIError(
130
+ throw new chunkB2QCI6ET_js.APIError(
131
131
  `Failed to check withdrawal approval: ${error instanceof Error ? error.message : String(error)}`,
132
132
  { endpoint: "isWithdrawalSpendApproved", cause: error }
133
133
  );
@@ -159,7 +159,7 @@ var getDepositExchangeRate = async ({
159
159
  if (!tokenAddress) {
160
160
  throw new Error(`Token address not found for ${depositTokenSymbol}`);
161
161
  }
162
- const [decimals, rate] = await chunkBXUG3WDV_js.getRateInQuoteWithAssetDecimals({
162
+ const [decimals, rate] = await chunkDTFLXAZJ_js.getRateInQuoteWithAssetDecimals({
163
163
  assetAddress: tokenAddress,
164
164
  accountantAddress: vault.contracts.accountant,
165
165
  chainId: sourceChainId
@@ -207,7 +207,7 @@ var getWithdrawExchangeRate = async ({
207
207
  if (!tokenAddress) {
208
208
  throw new Error(`Token address not found for ${wantTokenSymbol}`);
209
209
  }
210
- const [decimals, rate] = await chunkBXUG3WDV_js.getRateInQuoteWithAssetDecimals({
210
+ const [decimals, rate] = await chunkDTFLXAZJ_js.getRateInQuoteWithAssetDecimals({
211
211
  assetAddress: tokenAddress,
212
212
  accountantAddress: vault.contracts.accountant,
213
213
  chainId: sourceChainId
@@ -229,5 +229,5 @@ exports.getDepositExchangeRate = getDepositExchangeRate;
229
229
  exports.getWithdrawExchangeRate = getWithdrawExchangeRate;
230
230
  exports.isDepositSpendApproved = isDepositSpendApproved;
231
231
  exports.isWithdrawalSpendApproved = isWithdrawalSpendApproved;
232
- //# sourceMappingURL=chunk-ZCVMGIMV.js.map
233
- //# sourceMappingURL=chunk-ZCVMGIMV.js.map
232
+ //# sourceMappingURL=chunk-KYR6BFAE.js.map
233
+ //# sourceMappingURL=chunk-KYR6BFAE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/display/approvals.ts","../src/display/exchange-rate.ts"],"names":["toChainId","findVaultByConfig","APIError","getErc20AllowanceWithDecimals","formatUnits","ATOMIC_QUEUE_CONTRACT_ADDRESS","getVaultByKey","getRateInQuoteWithAssetDecimals","bigIntToNumberAsString"],"mappings":"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","file":"chunk-KYR6BFAE.js","sourcesContent":["import { type Address, formatUnits } from \"viem\";\nimport { findVaultByConfig } from \"../api/amplify-sdk-client\";\nimport { getErc20AllowanceWithDecimals } from \"../api/erc20\";\nimport { type ChainId, toChainId } from \"../api/vault-config\";\nimport { ATOMIC_QUEUE_CONTRACT_ADDRESS } from \"../constants\";\nimport { APIError, type YieldType } from \"../types/amplify-sdk-api\";\n\nexport const isDepositSpendApproved = async ({\n yieldType,\n chainId,\n depositAssetAddress,\n recipientAddress,\n}: {\n yieldType: YieldType;\n chainId: ChainId;\n depositAssetAddress: Address;\n recipientAddress: Address;\n}) => {\n try {\n const normalizedChainId = toChainId(chainId);\n const config = await findVaultByConfig({\n yieldType,\n chainId: normalizedChainId,\n assetAddress: depositAssetAddress,\n });\n\n if (!config) {\n throw new APIError(\n `Vault not found for ${yieldType} on chain ${normalizedChainId}`,\n {\n endpoint: \"isDepositSpendApproved\",\n }\n );\n }\n\n const boringVaultAddress = config.vault.boringVaultAddress;\n if (!boringVaultAddress) {\n throw new APIError(\n `BoringVault contract address not configured for vault ${config.id}`,\n {\n endpoint: \"isDepositSpendApproved\",\n }\n );\n }\n\n const [allowance, decimals] = await getErc20AllowanceWithDecimals({\n chainId: normalizedChainId,\n tokenAddress: depositAssetAddress,\n recipientAddress: recipientAddress,\n spenderAddress: boringVaultAddress,\n });\n\n if (allowance.status === \"failure\" || decimals.status === \"failure\") {\n throw new APIError(\n `Failed to get allowance: ${allowance.error || decimals.error}`,\n {\n endpoint: \"isDepositSpendApproved\",\n }\n );\n }\n\n return {\n isApproved: allowance.result > 0n,\n allowance: formatUnits(allowance.result, decimals.result),\n allowanceAsBigInt: allowance.result.toString(),\n decimals: decimals.result,\n error: null,\n };\n } catch (error) {\n if (error instanceof APIError) {\n throw error;\n }\n\n // Wrap other errors\n throw new APIError(\n `Failed to check deposit approval: ${\n error instanceof Error ? error.message : String(error)\n }`,\n {\n endpoint: \"isDepositSpendApproved\",\n cause: error,\n }\n );\n }\n};\n\nexport const isWithdrawalSpendApproved = async ({\n yieldType,\n chainId,\n wantAssetAddress,\n recipientAddress,\n}: {\n yieldType: YieldType;\n chainId: ChainId;\n wantAssetAddress: Address;\n recipientAddress: Address;\n}) => {\n try {\n const normalizedChainId = toChainId(chainId);\n\n const config = await findVaultByConfig({\n yieldType,\n chainId: normalizedChainId,\n assetAddress: wantAssetAddress,\n });\n\n if (!config) {\n throw new APIError(\n `Vault not found for ${yieldType} on chain ${normalizedChainId}`,\n {\n endpoint: \"isWithdrawalSpendApproved\",\n }\n );\n }\n\n const boringVaultAddress = config.vault.boringVaultAddress;\n\n if (!boringVaultAddress) {\n throw new APIError(\n `BoringVault contract address not configured for vault ${config.id}`,\n {\n endpoint: \"isWithdrawalSpendApproved\",\n }\n );\n }\n\n const [allowance, decimals] = await getErc20AllowanceWithDecimals({\n chainId: normalizedChainId,\n tokenAddress: boringVaultAddress,\n recipientAddress: recipientAddress,\n spenderAddress: ATOMIC_QUEUE_CONTRACT_ADDRESS,\n });\n\n if (allowance.status === \"failure\" || decimals.status === \"failure\") {\n return {\n isApproved: false,\n allowance: \"0\",\n allowanceAsBigInt: \"0\",\n decimals: \"0\",\n error: allowance.error || decimals.error,\n };\n }\n\n return {\n isApproved: allowance.result > 0n,\n allowance: formatUnits(allowance.result, decimals.result),\n allowanceAsBigInt: allowance.result.toString(),\n decimals: decimals.result,\n error: null,\n };\n } catch (error) {\n if (error instanceof APIError) {\n throw error;\n }\n\n throw new APIError(\n `Failed to check withdrawal approval: ${\n error instanceof Error ? error.message : String(error)\n }`,\n { endpoint: \"isWithdrawalSpendApproved\", cause: error }\n );\n }\n};\n","import { getRateInQuoteWithAssetDecimals } from \"../api/accountant\";\nimport type { ChainId } from \"../api/vault-config\";\nimport { bigIntToNumberAsString } from \"../utils/bigint\";\nimport { getVaultByKey } from \"../vaults\";\nimport type { VaultKey } from \"../vaults/config\";\n\ninterface GetDepositExchangeRateParams {\n vaultKey: VaultKey;\n sourceChainId: ChainId;\n depositTokenSymbol: string;\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n}\n\n/**\n * Gets the deposit exchange rate for a vault (tokens per share)\n * @throws {Error} If the token address is not found or if there's an error fetching the rate\n * @returns Promise<string> The exchange rate as a formatted string representing how many deposit tokens are worth 1 share\n */\nconst getDepositExchangeRate = async ({\n vaultKey,\n sourceChainId,\n depositTokenSymbol,\n minimumFractionDigits,\n maximumFractionDigits = 3,\n}: GetDepositExchangeRateParams) => {\n const vault = await getVaultByKey(vaultKey);\n\n const sourceChain = vault.deposit.sourceChains[sourceChainId];\n if (!sourceChain) {\n throw new Error(\n `Source chain ${sourceChainId} not found for vault ${vaultKey}`\n );\n }\n\n const depositToken = sourceChain.depositTokens?.[depositTokenSymbol];\n if (!depositToken) {\n throw new Error(\n `Deposit token ${depositTokenSymbol} not found for chain ${sourceChainId}`\n );\n }\n\n const tokenAddress = depositToken.address;\n if (!tokenAddress) {\n throw new Error(`Token address not found for ${depositTokenSymbol}`);\n }\n\n const [decimals, rate] = await getRateInQuoteWithAssetDecimals({\n assetAddress: tokenAddress,\n accountantAddress: vault.contracts.accountant,\n chainId: sourceChainId,\n });\n\n if (rate.status === \"failure\") {\n throw new Error(`Failed to get rate: ${rate.error.message}`);\n }\n if (decimals.status === \"failure\") {\n throw new Error(`Failed to get decimals: ${decimals.error.message}`);\n }\n\n return bigIntToNumberAsString(rate.result, {\n decimals: decimals.result,\n minimumFractionDigits,\n maximumFractionDigits,\n });\n};\n\ninterface GetWithdrawExchangeRateParams {\n vaultKey: VaultKey;\n sourceChainId: ChainId;\n destinationChainId: ChainId;\n wantTokenSymbol: string;\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n}\n\n/**\n * Gets the withdraw exchange rate for a vault (tokens per share)\n * @throws {Error} If the token address is not found or if there's an error fetching the rate\n * @returns Promise<string> The exchange rate as a formatted string representing how many want tokens are worth 1 share\n */\nconst getWithdrawExchangeRate = async ({\n vaultKey,\n sourceChainId,\n destinationChainId,\n wantTokenSymbol,\n minimumFractionDigits,\n maximumFractionDigits = 3,\n}: GetWithdrawExchangeRateParams) => {\n const vault = await getVaultByKey(vaultKey);\n\n const sourceChain = vault.withdraw.sourceChains[sourceChainId];\n if (!sourceChain) {\n throw new Error(\n `Source chain ${sourceChainId} not found for vault ${vaultKey}`\n );\n }\n\n const destinationChain = sourceChain.destinationChains[destinationChainId];\n if (!destinationChain) {\n throw new Error(\n `Destination chain ${destinationChainId} not found for source chain ${sourceChainId}`\n );\n }\n\n const wantToken = destinationChain.wantTokens?.[wantTokenSymbol];\n if (!wantToken) {\n throw new Error(\n `Want token ${wantTokenSymbol} not found for chain ${destinationChainId}`\n );\n }\n\n const tokenAddress = wantToken.address;\n if (!tokenAddress) {\n throw new Error(`Token address not found for ${wantTokenSymbol}`);\n }\n\n const [decimals, rate] = await getRateInQuoteWithAssetDecimals({\n assetAddress: tokenAddress,\n accountantAddress: vault.contracts.accountant,\n chainId: sourceChainId,\n });\n\n if (rate.status === \"failure\") {\n throw new Error(`Failed to get rate: ${rate.error.message}`);\n }\n if (decimals.status === \"failure\") {\n throw new Error(`Failed to get decimals: ${decimals.error.message}`);\n }\n\n return bigIntToNumberAsString(rate.result, {\n decimals: decimals.result,\n minimumFractionDigits,\n maximumFractionDigits,\n });\n};\n\nexport { getDepositExchangeRate, getWithdrawExchangeRate };\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkIBNTWZ4S_js = require('./chunk-IBNTWZ4S.js');
3
+ var chunkB2QCI6ET_js = require('./chunk-B2QCI6ET.js');
4
4
 
5
5
  // src/utils/time.ts
6
- var calculateDeadline = (daysFromNow = chunkIBNTWZ4S_js.DEFAULT_DEADLINE) => {
6
+ var calculateDeadline = (daysFromNow = chunkB2QCI6ET_js.DEFAULT_DEADLINE) => {
7
7
  const daysInSeconds = daysFromNow * 24 * 60 * 60;
8
8
  const currentTimeStamp = Math.floor(Date.now() / 1e3);
9
9
  const deadline = currentTimeStamp + daysInSeconds;
@@ -11,5 +11,5 @@ var calculateDeadline = (daysFromNow = chunkIBNTWZ4S_js.DEFAULT_DEADLINE) => {
11
11
  };
12
12
 
13
13
  exports.calculateDeadline = calculateDeadline;
14
- //# sourceMappingURL=chunk-K4DL2AII.js.map
15
- //# sourceMappingURL=chunk-K4DL2AII.js.map
14
+ //# sourceMappingURL=chunk-LSNRG5Z2.js.map
15
+ //# sourceMappingURL=chunk-LSNRG5Z2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/time.ts"],"names":["DEFAULT_DEADLINE"],"mappings":";;;;;AAoBO,IAAM,iBAAA,GAAoB,CAAC,WAAA,GAAcA,iCAAA,KAAqB;AAEnE,EAAA,MAAM,aAAA,GAAgB,WAAA,GAAc,EAAA,GAAK,EAAA,GAAK,EAAA;AAG9C,EAAA,MAAM,mBAAmB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AAGrD,EAAA,MAAM,WAAW,gBAAA,GAAmB,aAAA;AAEpC,EAAA,OAAO,OAAO,QAAQ,CAAA;AACxB","file":"chunk-K4DL2AII.js","sourcesContent":["/**\n * @fileoverview Utility functions for time-related operations\n */\n\nimport { DEFAULT_DEADLINE } from \"../constants\";\n\n/**\n * Calculates a deadline timestamp in seconds from the current time\n *\n * @param {number} [daysFromNow=DEFAULT_DEADLINE] - Number of days from now to set the deadline\n * @returns {number} Unix timestamp in seconds representing the deadline\n *\n * @example\n * // Returns a timestamp 3 days from now (in seconds)\n * const threeDay = calculateDeadline();\n *\n * @example\n * // Returns a timestamp 7 days from now (in seconds)\n * const weekDeadline = calculateDeadline(7);\n */\nexport const calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {\n // Get days in seconds\n const daysInSeconds = daysFromNow * 24 * 60 * 60;\n\n // Get current timestamp in seconds\n const currentTimeStamp = Math.floor(Date.now() / 1000);\n\n // Calculate deadline (current time + 3 days in seconds)\n const deadline = currentTimeStamp + daysInSeconds;\n\n return BigInt(deadline);\n};\n"]}
1
+ {"version":3,"sources":["../src/utils/time.ts"],"names":["DEFAULT_DEADLINE"],"mappings":";;;;;AAoBO,IAAM,iBAAA,GAAoB,CAAC,WAAA,GAAcA,iCAAA,KAAqB;AAEnE,EAAA,MAAM,aAAA,GAAgB,WAAA,GAAc,EAAA,GAAK,EAAA,GAAK,EAAA;AAG9C,EAAA,MAAM,mBAAmB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AAGrD,EAAA,MAAM,WAAW,gBAAA,GAAmB,aAAA;AAEpC,EAAA,OAAO,OAAO,QAAQ,CAAA;AACxB","file":"chunk-LSNRG5Z2.js","sourcesContent":["/**\n * @fileoverview Utility functions for time-related operations\n */\n\nimport { DEFAULT_DEADLINE } from \"../constants\";\n\n/**\n * Calculates a deadline timestamp in seconds from the current time\n *\n * @param {number} [daysFromNow=DEFAULT_DEADLINE] - Number of days from now to set the deadline\n * @returns {number} Unix timestamp in seconds representing the deadline\n *\n * @example\n * // Returns a timestamp 3 days from now (in seconds)\n * const threeDay = calculateDeadline();\n *\n * @example\n * // Returns a timestamp 7 days from now (in seconds)\n * const weekDeadline = calculateDeadline(7);\n */\nexport const calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {\n // Get days in seconds\n const daysInSeconds = daysFromNow * 24 * 60 * 60;\n\n // Get current timestamp in seconds\n const currentTimeStamp = Math.floor(Date.now() / 1000);\n\n // Calculate deadline (current time + 3 days in seconds)\n const deadline = currentTimeStamp + daysInSeconds;\n\n return BigInt(deadline);\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { DEFAULT_DEADLINE } from './chunk-WFCHKDDG.mjs';
1
+ import { DEFAULT_DEADLINE } from './chunk-CUGK4ZBJ.mjs';
2
2
 
3
3
  // src/utils/time.ts
4
4
  var calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {
@@ -9,5 +9,5 @@ var calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {
9
9
  };
10
10
 
11
11
  export { calculateDeadline };
12
- //# sourceMappingURL=chunk-OPOYGPSS.mjs.map
13
- //# sourceMappingURL=chunk-OPOYGPSS.mjs.map
12
+ //# sourceMappingURL=chunk-REKEQLQA.mjs.map
13
+ //# sourceMappingURL=chunk-REKEQLQA.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/time.ts"],"names":[],"mappings":";;;AAoBO,IAAM,iBAAA,GAAoB,CAAC,WAAA,GAAc,gBAAA,KAAqB;AAEnE,EAAA,MAAM,aAAA,GAAgB,WAAA,GAAc,EAAA,GAAK,EAAA,GAAK,EAAA;AAG9C,EAAA,MAAM,mBAAmB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AAGrD,EAAA,MAAM,WAAW,gBAAA,GAAmB,aAAA;AAEpC,EAAA,OAAO,OAAO,QAAQ,CAAA;AACxB","file":"chunk-OPOYGPSS.mjs","sourcesContent":["/**\n * @fileoverview Utility functions for time-related operations\n */\n\nimport { DEFAULT_DEADLINE } from \"../constants\";\n\n/**\n * Calculates a deadline timestamp in seconds from the current time\n *\n * @param {number} [daysFromNow=DEFAULT_DEADLINE] - Number of days from now to set the deadline\n * @returns {number} Unix timestamp in seconds representing the deadline\n *\n * @example\n * // Returns a timestamp 3 days from now (in seconds)\n * const threeDay = calculateDeadline();\n *\n * @example\n * // Returns a timestamp 7 days from now (in seconds)\n * const weekDeadline = calculateDeadline(7);\n */\nexport const calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {\n // Get days in seconds\n const daysInSeconds = daysFromNow * 24 * 60 * 60;\n\n // Get current timestamp in seconds\n const currentTimeStamp = Math.floor(Date.now() / 1000);\n\n // Calculate deadline (current time + 3 days in seconds)\n const deadline = currentTimeStamp + daysInSeconds;\n\n return BigInt(deadline);\n};\n"]}
1
+ {"version":3,"sources":["../src/utils/time.ts"],"names":[],"mappings":";;;AAoBO,IAAM,iBAAA,GAAoB,CAAC,WAAA,GAAc,gBAAA,KAAqB;AAEnE,EAAA,MAAM,aAAA,GAAgB,WAAA,GAAc,EAAA,GAAK,EAAA,GAAK,EAAA;AAG9C,EAAA,MAAM,mBAAmB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AAGrD,EAAA,MAAM,WAAW,gBAAA,GAAmB,aAAA;AAEpC,EAAA,OAAO,OAAO,QAAQ,CAAA;AACxB","file":"chunk-REKEQLQA.mjs","sourcesContent":["/**\n * @fileoverview Utility functions for time-related operations\n */\n\nimport { DEFAULT_DEADLINE } from \"../constants\";\n\n/**\n * Calculates a deadline timestamp in seconds from the current time\n *\n * @param {number} [daysFromNow=DEFAULT_DEADLINE] - Number of days from now to set the deadline\n * @returns {number} Unix timestamp in seconds representing the deadline\n *\n * @example\n * // Returns a timestamp 3 days from now (in seconds)\n * const threeDay = calculateDeadline();\n *\n * @example\n * // Returns a timestamp 7 days from now (in seconds)\n * const weekDeadline = calculateDeadline(7);\n */\nexport const calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {\n // Get days in seconds\n const daysInSeconds = daysFromNow * 24 * 60 * 60;\n\n // Get current timestamp in seconds\n const currentTimeStamp = Math.floor(Date.now() / 1000);\n\n // Calculate deadline (current time + 3 days in seconds)\n const deadline = currentTimeStamp + daysInSeconds;\n\n return BigInt(deadline);\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { getClient, TellerAbi, AccountantAbi } from './chunk-YP2TR5RP.mjs';
1
+ import { getClient, TellerAbi, AccountantAbi } from './chunk-ZILA73XN.mjs';
2
2
  import 'viem';
3
3
 
4
4
  var getPausedStates = async ({
@@ -42,5 +42,5 @@ var getPreviewFee = async ({
42
42
  };
43
43
 
44
44
  export { getPausedStates, getPreviewFee };
45
- //# sourceMappingURL=chunk-ZLS2AAMI.mjs.map
46
- //# sourceMappingURL=chunk-ZLS2AAMI.mjs.map
45
+ //# sourceMappingURL=chunk-VIULRHK6.mjs.map
46
+ //# sourceMappingURL=chunk-VIULRHK6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/multi-call.ts","../src/api/teller.ts"],"names":[],"mappings":";;;AA2CA,IAAM,kBAAkB,OAAO;AAAA,EAC7B,iBAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAyB;AACvB,EAAA,MAAM,MAAA,GAAS,MAAM,SAAA,CAAU,OAAO,CAAA;AAEtC,EAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,SAAA,CAAU;AAAA,IACrC,SAAA,EAAW;AAAA,MACT;AAAA,QACE,GAAA,EAAK,SAAA;AAAA,QACL,OAAA,EAAS,aAAA;AAAA,QACT,YAAA,EAAc;AAAA,OAChB;AAAA,MACA;AAAA,QACE,GAAA,EAAK,aAAA;AAAA,QACL,OAAA,EAAS,iBAAA;AAAA,QACT,YAAA,EAAc;AAAA;AAChB;AACF,GACD,CAAA;AACD,EAAA,OAAO,OAAA;AACT;;;ACjCA,IAAM,gBAAgB,OAAO;AAAA,EAC3B,WAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAA2C;AACzC,EAAA,MAAM,MAAA,GAAS,MAAM,SAAA,CAAU,OAAO,CAAA;AAEtC,EAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,IACrC,GAAA,EAAK,SAAA;AAAA,IACL,OAAA,EAAS,eAAA;AAAA,IACT,YAAA,EAAc,YAAA;AAAA,IACd,IAAA,EAAM,CAAC,WAAA,EAAa,UAAU;AAAA,GAC/B,CAAA;AAED,EAAA,OAAO,IAAA;AACT","file":"chunk-ZLS2AAMI.mjs","sourcesContent":["import { type Address, erc20Abi } from \"viem\";\nimport { AccountantAbi } from \"../abi/accountant-abi\";\nimport { TellerAbi } from \"../abi/teller-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\ntype RateInQuoteWithAssetDecimalsProps = {\n assetAddress: Address;\n accountantAddress: Address;\n chainId: ChainId;\n};\n\nconst getRateInQuoteWithAssetDecimals = async ({\n assetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteWithAssetDecimalsProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: assetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [assetAddress],\n },\n ],\n });\n return results;\n};\n\ntype PausedStatusProps = {\n accountantAddress: Address;\n tellerAddress: Address;\n chainId: ChainId;\n};\n\nconst getPausedStates = async ({\n accountantAddress,\n tellerAddress,\n chainId,\n}: PausedStatusProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: TellerAbi,\n address: tellerAddress,\n functionName: \"isPaused\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"accountantState\",\n },\n ],\n });\n return results;\n};\n\nexport { getPausedStates, getRateInQuoteWithAssetDecimals };\n","/**\n * @fileoverview Functions for interacting with the Teller contract\n */\nimport type { Address } from \"viem\";\nimport { TellerAbi } from \"../abi/teller-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\n/**\n * Arguments required by the bridge contract for cross-chain transfers\n * @interface BridgeData\n * @property {number} chainSelector - Unique identifier for the destination chain\n * @property {Address} destinationChainReceiver - Address that will receive the bridged tokens\n * @property {Address} bridgeFeeToken - Token used to pay the bridge fee\n * @property {bigint} messageGas - Amount of gas allocated for the cross-chain message\n * @property {`0x${string}`} data - Additional data required for the bridge operation (hex encoded)\n */\nexport type BridgeData = {\n chainSelector: number;\n destinationChainReceiver: Address;\n bridgeFeeToken: Address;\n messageGas: bigint;\n data: `0x${string}`;\n};\n\ntype GetPreviewFeeProps = {\n shareAmount: bigint;\n bridgeData: BridgeData;\n contractAddress: Address;\n chainId: ChainId;\n};\n\nconst getPreviewFee = async ({\n shareAmount,\n bridgeData,\n contractAddress,\n chainId,\n}: GetPreviewFeeProps): Promise<bigint> => {\n const client = await getClient(chainId);\n\n const rate = await client.readContract({\n abi: TellerAbi,\n address: contractAddress,\n functionName: \"previewFee\",\n args: [shareAmount, bridgeData],\n });\n\n return rate;\n};\n\nexport { getPreviewFee };\n"]}
1
+ {"version":3,"sources":["../src/api/multi-call.ts","../src/api/teller.ts"],"names":[],"mappings":";;;AA2CA,IAAM,kBAAkB,OAAO;AAAA,EAC7B,iBAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAyB;AACvB,EAAA,MAAM,MAAA,GAAS,MAAM,SAAA,CAAU,OAAO,CAAA;AAEtC,EAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,SAAA,CAAU;AAAA,IACrC,SAAA,EAAW;AAAA,MACT;AAAA,QACE,GAAA,EAAK,SAAA;AAAA,QACL,OAAA,EAAS,aAAA;AAAA,QACT,YAAA,EAAc;AAAA,OAChB;AAAA,MACA;AAAA,QACE,GAAA,EAAK,aAAA;AAAA,QACL,OAAA,EAAS,iBAAA;AAAA,QACT,YAAA,EAAc;AAAA;AAChB;AACF,GACD,CAAA;AACD,EAAA,OAAO,OAAA;AACT;;;ACjCA,IAAM,gBAAgB,OAAO;AAAA,EAC3B,WAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAA2C;AACzC,EAAA,MAAM,MAAA,GAAS,MAAM,SAAA,CAAU,OAAO,CAAA;AAEtC,EAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,IACrC,GAAA,EAAK,SAAA;AAAA,IACL,OAAA,EAAS,eAAA;AAAA,IACT,YAAA,EAAc,YAAA;AAAA,IACd,IAAA,EAAM,CAAC,WAAA,EAAa,UAAU;AAAA,GAC/B,CAAA;AAED,EAAA,OAAO,IAAA;AACT","file":"chunk-VIULRHK6.mjs","sourcesContent":["import { type Address, erc20Abi } from \"viem\";\nimport { AccountantAbi } from \"../abi/accountant-abi\";\nimport { TellerAbi } from \"../abi/teller-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\ntype RateInQuoteWithAssetDecimalsProps = {\n assetAddress: Address;\n accountantAddress: Address;\n chainId: ChainId;\n};\n\nconst getRateInQuoteWithAssetDecimals = async ({\n assetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteWithAssetDecimalsProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: assetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [assetAddress],\n },\n ],\n });\n return results;\n};\n\ntype PausedStatusProps = {\n accountantAddress: Address;\n tellerAddress: Address;\n chainId: ChainId;\n};\n\nconst getPausedStates = async ({\n accountantAddress,\n tellerAddress,\n chainId,\n}: PausedStatusProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: TellerAbi,\n address: tellerAddress,\n functionName: \"isPaused\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"accountantState\",\n },\n ],\n });\n return results;\n};\n\nexport { getPausedStates, getRateInQuoteWithAssetDecimals };\n","/**\n * @fileoverview Functions for interacting with the Teller contract\n */\nimport type { Address } from \"viem\";\nimport { TellerAbi } from \"../abi/teller-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\n/**\n * Arguments required by the bridge contract for cross-chain transfers\n * @interface BridgeData\n * @property {number} chainSelector - Unique identifier for the destination chain\n * @property {Address} destinationChainReceiver - Address that will receive the bridged tokens\n * @property {Address} bridgeFeeToken - Token used to pay the bridge fee\n * @property {bigint} messageGas - Amount of gas allocated for the cross-chain message\n * @property {`0x${string}`} data - Additional data required for the bridge operation (hex encoded)\n */\nexport type BridgeData = {\n chainSelector: number;\n destinationChainReceiver: Address;\n bridgeFeeToken: Address;\n messageGas: bigint;\n data: `0x${string}`;\n};\n\ntype GetPreviewFeeProps = {\n shareAmount: bigint;\n bridgeData: BridgeData;\n contractAddress: Address;\n chainId: ChainId;\n};\n\nconst getPreviewFee = async ({\n shareAmount,\n bridgeData,\n contractAddress,\n chainId,\n}: GetPreviewFeeProps): Promise<bigint> => {\n const client = await getClient(chainId);\n\n const rate = await client.readContract({\n abi: TellerAbi,\n address: contractAddress,\n functionName: \"previewFee\",\n args: [shareAmount, bridgeData],\n });\n\n return rate;\n};\n\nexport { getPreviewFee };\n"]}
@@ -1,34 +1,22 @@
1
1
  import { toChainId } from './chunk-J3662HYT.mjs';
2
- import { getChainFromConfig, fetchVaults } from './chunk-WFCHKDDG.mjs';
2
+ import { getChainFromConfig, fetchVaults } from './chunk-CUGK4ZBJ.mjs';
3
3
  import { createPublicClient, http, erc20Abi } from 'viem';
4
4
 
5
5
  var clients = /* @__PURE__ */ new Map();
6
6
  var getClient = async (chainId) => {
7
- console.log("[Amplify SDK] getClient called for chainId:", chainId);
8
7
  if (!chainId) {
9
8
  throw new Error("Chain ID is required");
10
9
  }
11
10
  if (!clients.has(chainId)) {
12
- console.log("[Amplify SDK] Creating new client for chainId:", chainId);
13
11
  const chain = await getChainFromConfig(
14
12
  toChainId(chainId),
15
13
  await fetchVaults()
16
14
  );
17
- console.log("[Amplify SDK] Chain config obtained:", {
18
- chainId: chain.id,
19
- name: chain.name,
20
- rpcUrl: chain.rpcUrls.default.http[0],
21
- hasMulticall3: !!chain.contracts?.multicall3,
22
- multicall3Address: chain.contracts?.multicall3?.address
23
- });
24
15
  const client2 = createPublicClient({
25
16
  chain,
26
17
  transport: http(chain.rpcUrls.default.http[0])
27
18
  });
28
19
  clients.set(chainId, client2);
29
- console.log("[Amplify SDK] Client created and cached for chainId:", chainId);
30
- } else {
31
- console.log("[Amplify SDK] Using cached client for chainId:", chainId);
32
20
  }
33
21
  const client = clients.get(chainId);
34
22
  if (!client) {
@@ -41,14 +29,14 @@ var getClient = async (chainId) => {
41
29
  var getErc20Balance = async ({
42
30
  chainId,
43
31
  tokenAddress,
44
- userAddress
32
+ recipientAddress
45
33
  }) => {
46
34
  const client = await getClient(chainId);
47
35
  const balance = await client.readContract({
48
36
  abi: erc20Abi,
49
37
  address: tokenAddress,
50
38
  functionName: "balanceOf",
51
- args: [userAddress]
39
+ args: [recipientAddress]
52
40
  });
53
41
  return balance;
54
42
  };
@@ -67,7 +55,7 @@ var getErc20Decimals = async ({
67
55
  var getErc20Allowance = async ({
68
56
  chainId,
69
57
  tokenAddress,
70
- userAddress,
58
+ recipientAddress,
71
59
  spenderAddress
72
60
  }) => {
73
61
  const client = await getClient(chainId);
@@ -75,14 +63,14 @@ var getErc20Allowance = async ({
75
63
  abi: erc20Abi,
76
64
  address: tokenAddress,
77
65
  functionName: "allowance",
78
- args: [userAddress, spenderAddress]
66
+ args: [recipientAddress, spenderAddress]
79
67
  });
80
68
  return allowance;
81
69
  };
82
70
  var getErc20AllowanceWithDecimals = async ({
83
71
  chainId,
84
72
  tokenAddress,
85
- userAddress,
73
+ recipientAddress,
86
74
  spenderAddress
87
75
  }) => {
88
76
  const client = await getClient(chainId);
@@ -92,7 +80,7 @@ var getErc20AllowanceWithDecimals = async ({
92
80
  abi: erc20Abi,
93
81
  address: tokenAddress,
94
82
  functionName: "allowance",
95
- args: [userAddress, spenderAddress]
83
+ args: [recipientAddress, spenderAddress]
96
84
  },
97
85
  {
98
86
  abi: erc20Abi,
@@ -1004,36 +992,23 @@ var getRateInQuoteWithAssetDecimals = async ({
1004
992
  accountantAddress,
1005
993
  chainId
1006
994
  }) => {
1007
- console.log("[Amplify SDK] getRateInQuoteWithAssetDecimals called", {
1008
- assetAddress,
1009
- accountantAddress,
1010
- chainId
1011
- });
1012
995
  const client = await getClient(chainId);
1013
- console.log("[Amplify SDK] Client obtained for chainId:", chainId);
1014
- try {
1015
- console.log("[Amplify SDK] Executing multicall for decimals and getRateInQuote...");
1016
- const results = await client.multicall({
1017
- contracts: [
1018
- {
1019
- abi: erc20Abi,
1020
- address: assetAddress,
1021
- functionName: "decimals"
1022
- },
1023
- {
1024
- abi: AccountantAbi,
1025
- address: accountantAddress,
1026
- functionName: "getRateInQuote",
1027
- args: [assetAddress]
1028
- }
1029
- ]
1030
- });
1031
- console.log("[Amplify SDK] Multicall completed successfully");
1032
- return results;
1033
- } catch (error) {
1034
- console.error("[Amplify SDK] Multicall failed:", error);
1035
- throw error;
1036
- }
996
+ const results = await client.multicall({
997
+ contracts: [
998
+ {
999
+ abi: erc20Abi,
1000
+ address: assetAddress,
1001
+ functionName: "decimals"
1002
+ },
1003
+ {
1004
+ abi: AccountantAbi,
1005
+ address: accountantAddress,
1006
+ functionName: "getRateInQuote",
1007
+ args: [assetAddress]
1008
+ }
1009
+ ]
1010
+ });
1011
+ return results;
1037
1012
  };
1038
1013
  var getRateInQuoteAndSharesAndWantAssetDecimals = async ({
1039
1014
  sharesAssetAddress,
@@ -2071,5 +2046,5 @@ var TellerAbi = [
2071
2046
  ];
2072
2047
 
2073
2048
  export { AccountantAbi, BoringVaultAbi, TellerAbi, getClient, getErc20Allowance, getErc20AllowanceWithDecimals, getErc20Balance, getErc20Decimals, getRateInQuoteAndSharesAndWantAssetDecimals, getRateInQuoteWithAssetDecimals };
2074
- //# sourceMappingURL=chunk-YP2TR5RP.mjs.map
2075
- //# sourceMappingURL=chunk-YP2TR5RP.mjs.map
2049
+ //# sourceMappingURL=chunk-ZILA73XN.mjs.map
2050
+ //# sourceMappingURL=chunk-ZILA73XN.mjs.map