@paxoslabs/amplify-sdk 0.0.1-alpha.1

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 (80) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/LICENSE +28 -0
  3. package/README.md +533 -0
  4. package/dist/amplify-sdk-api-B5hBTGrB.d.ts +258 -0
  5. package/dist/amplify-sdk-api-DPrRhynk.d.mts +258 -0
  6. package/dist/chunk-3I3PYX2F.js +45 -0
  7. package/dist/chunk-3I3PYX2F.js.map +1 -0
  8. package/dist/chunk-7RWWVUHP.mjs +39 -0
  9. package/dist/chunk-7RWWVUHP.mjs.map +1 -0
  10. package/dist/chunk-AFWUOS3M.js +15 -0
  11. package/dist/chunk-AFWUOS3M.js.map +1 -0
  12. package/dist/chunk-BDXS57YH.js +828 -0
  13. package/dist/chunk-BDXS57YH.js.map +1 -0
  14. package/dist/chunk-FYNPQXCR.mjs +46 -0
  15. package/dist/chunk-FYNPQXCR.mjs.map +1 -0
  16. package/dist/chunk-GE2VQUPP.mjs +228 -0
  17. package/dist/chunk-GE2VQUPP.mjs.map +1 -0
  18. package/dist/chunk-ICKDAKVS.js +16 -0
  19. package/dist/chunk-ICKDAKVS.js.map +1 -0
  20. package/dist/chunk-ISO6Z7LD.mjs +809 -0
  21. package/dist/chunk-ISO6Z7LD.mjs.map +1 -0
  22. package/dist/chunk-ITB7FXG4.js +14 -0
  23. package/dist/chunk-ITB7FXG4.js.map +1 -0
  24. package/dist/chunk-J3662HYT.mjs +29 -0
  25. package/dist/chunk-J3662HYT.mjs.map +1 -0
  26. package/dist/chunk-JLXNOGZB.js +2061 -0
  27. package/dist/chunk-JLXNOGZB.js.map +1 -0
  28. package/dist/chunk-O5P6SP2O.js +233 -0
  29. package/dist/chunk-O5P6SP2O.js.map +1 -0
  30. package/dist/chunk-R663BFAZ.mjs +14 -0
  31. package/dist/chunk-R663BFAZ.mjs.map +1 -0
  32. package/dist/chunk-RUIAH5HY.js +32 -0
  33. package/dist/chunk-RUIAH5HY.js.map +1 -0
  34. package/dist/chunk-SIR2TCAR.mjs +13 -0
  35. package/dist/chunk-SIR2TCAR.mjs.map +1 -0
  36. package/dist/chunk-XXHRCCZS.mjs +11 -0
  37. package/dist/chunk-XXHRCCZS.mjs.map +1 -0
  38. package/dist/chunk-ZSFIOWWT.js +49 -0
  39. package/dist/chunk-ZSFIOWWT.js.map +1 -0
  40. package/dist/chunk-ZZBZIDZP.mjs +2050 -0
  41. package/dist/chunk-ZZBZIDZP.mjs.map +1 -0
  42. package/dist/config-B-u3VqEX.d.mts +21 -0
  43. package/dist/config-B-u3VqEX.d.ts +21 -0
  44. package/dist/config-BQynVNDC.d.mts +101 -0
  45. package/dist/config-BQynVNDC.d.ts +101 -0
  46. package/dist/core.d.mts +152 -0
  47. package/dist/core.d.ts +152 -0
  48. package/dist/core.js +187 -0
  49. package/dist/core.js.map +1 -0
  50. package/dist/core.mjs +150 -0
  51. package/dist/core.mjs.map +1 -0
  52. package/dist/display.d.mts +25 -0
  53. package/dist/display.d.ts +25 -0
  54. package/dist/display.js +124 -0
  55. package/dist/display.js.map +1 -0
  56. package/dist/display.mjs +105 -0
  57. package/dist/display.mjs.map +1 -0
  58. package/dist/exchange-rate-CRA_CMaX.d.mts +65 -0
  59. package/dist/exchange-rate-D3_FVgqa.d.ts +65 -0
  60. package/dist/index.d.mts +3236 -0
  61. package/dist/index.d.ts +3236 -0
  62. package/dist/index.js +1115 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/index.mjs +1047 -0
  65. package/dist/index.mjs.map +1 -0
  66. package/dist/utils.d.mts +111 -0
  67. package/dist/utils.d.ts +111 -0
  68. package/dist/utils.js +51 -0
  69. package/dist/utils.js.map +1 -0
  70. package/dist/utils.mjs +17 -0
  71. package/dist/utils.mjs.map +1 -0
  72. package/dist/vault-config-BNzhv3QV.d.ts +15 -0
  73. package/dist/vault-config-BjSE7oL8.d.mts +15 -0
  74. package/dist/vaults.d.mts +6 -0
  75. package/dist/vaults.d.ts +6 -0
  76. package/dist/vaults.js +13 -0
  77. package/dist/vaults.js.map +1 -0
  78. package/dist/vaults.mjs +4 -0
  79. package/dist/vaults.mjs.map +1 -0
  80. package/package.json +142 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/viem/client.ts","../src/api/erc20.ts","../src/abi/accountant-abi.ts","../src/abi/boring-vault-abi.ts","../src/api/accountant.ts","../src/abi/teller-abi.ts"],"names":["client","erc20Abi"],"mappings":"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","file":"chunk-ZZBZIDZP.mjs","sourcesContent":["import { createPublicClient, http, type PublicClient } from \"viem\";\nimport { fetchVaults } from \"../../api/amplify-sdk-client\";\nimport { type ChainId, toChainId } from \"../../api/vault-config\";\nimport { getChainFromConfig } from \"../../utils/chain-utils\";\n\n// Cache to store PublicClient instances for different chains\nconst clients: Map<ChainId, PublicClient> = new Map();\n\n/**\n * Gets or creates a PublicClient instance for the specified blockchain\n * @param chainId - The blockchain ID\n * @returns A PublicClient instance for interacting with the specified chain\n */\nconst getClient = async (chainId: ChainId): Promise<PublicClient> => {\n if (!chainId) {\n throw new Error(\"Chain ID is required\");\n }\n\n if (!clients.has(chainId)) {\n const chain = await getChainFromConfig(\n toChainId(chainId),\n await fetchVaults()\n );\n const client = createPublicClient({\n chain,\n transport: http(chain.rpcUrls.default.http[0]),\n });\n clients.set(chainId, client);\n }\n\n const client = clients.get(chainId);\n if (!client) {\n throw new Error(`Client not found for chain ID ${chainId}`);\n }\n return client;\n};\n\nexport { getClient };\n","import { type Address, erc20Abi } from \"viem\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\ninterface GetErc20BalanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n userAddress: Address;\n}\n\nconst getErc20Balance = async ({\n chainId,\n tokenAddress,\n userAddress,\n}: GetErc20BalanceParams): Promise<bigint> => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"balanceOf\",\n args: [userAddress],\n });\n\n return balance;\n};\n\ninterface GetErc20DecimalsParams {\n chainId: ChainId;\n tokenAddress: Address;\n}\nconst getErc20Decimals = async ({\n chainId,\n tokenAddress,\n}: GetErc20DecimalsParams) => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n });\n\n return balance;\n};\n\ninterface GetErc20AllowanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n userAddress: Address;\n spenderAddress: Address;\n}\n\nconst getErc20Allowance = async ({\n chainId,\n tokenAddress,\n userAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [userAddress, spenderAddress],\n });\n\n return allowance;\n};\n\nconst getErc20AllowanceWithDecimals = async ({\n chainId,\n tokenAddress,\n userAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [userAddress, spenderAddress],\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n },\n ],\n });\n return allowance;\n};\n\nexport {\n getErc20Allowance,\n getErc20AllowanceWithDecimals,\n getErc20Balance,\n getErc20Decimals,\n};\n","export const AccountantAbi = [\n {\n type: \"constructor\",\n inputs: [\n { name: \"_owner\", type: \"address\", internalType: \"address\" },\n { name: \"_vault\", type: \"address\", internalType: \"address\" },\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n { name: \"startingExchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n { name: \"_base\", type: \"address\", internalType: \"address\" },\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n { name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"accountantState\",\n inputs: [],\n outputs: [\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n { name: \"feesOwedInBase\", type: \"uint128\", internalType: \"uint128\" },\n {\n name: \"totalSharesLastUpdate\",\n type: \"uint128\",\n internalType: \"uint128\",\n },\n { name: \"exchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n { name: \"lastUpdateTimestamp\", type: \"uint64\", internalType: \"uint64\" },\n { name: \"isPaused\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n { name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"authority\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract Authority\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"base\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"contract ERC20\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"claimFees\",\n inputs: [\n { name: \"feeAsset\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint8\", internalType: \"uint8\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRate\",\n inputs: [],\n outputs: [{ name: \"rate\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateInQuote\",\n inputs: [\n { name: \"quote\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [\n { name: \"rateInQuote\", type: \"uint256\", internalType: \"uint256\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateInQuoteSafe\",\n inputs: [\n { name: \"quote\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [\n { name: \"rateInQuote\", type: \"uint256\", internalType: \"uint256\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateSafe\",\n inputs: [],\n outputs: [{ name: \"rate\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"owner\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"pause\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"rateProviderData\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"contract ERC20\" }],\n outputs: [\n { name: \"isPeggedToBase\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"rateProvider\",\n type: \"address\",\n internalType: \"contract IRateProvider\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"setAuthority\",\n inputs: [\n {\n name: \"newAuthority\",\n type: \"address\",\n internalType: \"contract Authority\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setRateProviderData\",\n inputs: [\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"isPeggedToBase\", type: \"bool\", internalType: \"bool\" },\n { name: \"rateProvider\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferOwnership\",\n inputs: [{ name: \"newOwner\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"unpause\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateDelay\",\n inputs: [\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateExchangeRate\",\n inputs: [\n { name: \"newExchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateLower\",\n inputs: [\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateManagementFee\",\n inputs: [{ name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updatePayoutAddress\",\n inputs: [\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateUpper\",\n inputs: [\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"vault\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract BoringVault\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"event\",\n name: \"AuthorityUpdated\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newAuthority\",\n type: \"address\",\n indexed: true,\n internalType: \"contract Authority\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"DelayInSecondsUpdated\",\n inputs: [\n {\n name: \"oldDelay\",\n type: \"uint32\",\n indexed: false,\n internalType: \"uint32\",\n },\n {\n name: \"newDelay\",\n type: \"uint32\",\n indexed: false,\n internalType: \"uint32\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"ExchangeRateUpdated\",\n inputs: [\n {\n name: \"oldRate\",\n type: \"uint96\",\n indexed: false,\n internalType: \"uint96\",\n },\n {\n name: \"newRate\",\n type: \"uint96\",\n indexed: false,\n internalType: \"uint96\",\n },\n {\n name: \"currentTime\",\n type: \"uint64\",\n indexed: false,\n internalType: \"uint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"FeesClaimed\",\n inputs: [\n {\n name: \"feeAsset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"LowerBoundUpdated\",\n inputs: [\n {\n name: \"oldBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"ManagementFeeUpdated\",\n inputs: [\n {\n name: \"oldFee\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newFee\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferred\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n { type: \"event\", name: \"Paused\", inputs: [], anonymous: false },\n {\n type: \"event\",\n name: \"PayoutAddressUpdated\",\n inputs: [\n {\n name: \"oldPayout\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n {\n name: \"newPayout\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"RateProviderUpdated\",\n inputs: [\n {\n name: \"asset\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n { name: \"isPegged\", type: \"bool\", indexed: false, internalType: \"bool\" },\n {\n name: \"rateProvider\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n { type: \"event\", name: \"Unpaused\", inputs: [], anonymous: false },\n {\n type: \"event\",\n name: \"UpperBoundUpdated\",\n inputs: [\n {\n name: \"oldBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__LowerBoundTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__ManagementFeeTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__OnlyCallableByBoringVault\",\n inputs: [],\n },\n { type: \"error\", name: \"AccountantWithRateProviders__Paused\", inputs: [] },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__UpdateDelayTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__UpperBoundTooSmall\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__ZeroFeesOwed\",\n inputs: [],\n },\n] as const;\n","export const BoringVaultAbi = [\n {\n type: \"constructor\",\n inputs: [\n { name: \"_owner\", type: \"address\", internalType: \"address\" },\n { name: \"_name\", type: \"string\", internalType: \"string\" },\n { name: \"_symbol\", type: \"string\", internalType: \"string\" },\n { name: \"_decimals\", type: \"uint8\", internalType: \"uint8\" },\n ],\n stateMutability: \"nonpayable\",\n },\n { type: \"receive\", stateMutability: \"payable\" },\n {\n type: \"function\",\n name: \"DOMAIN_SEPARATOR\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"allowance\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"approve\",\n inputs: [\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"authority\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract Authority\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint8\", internalType: \"uint8\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"enter\",\n inputs: [\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"assetAmount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"shareAmount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"exit\",\n inputs: [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"assetAmount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"shareAmount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"hook\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"contract BeforeTransferHook\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"manage\",\n inputs: [\n { name: \"targets\", type: \"address[]\", internalType: \"address[]\" },\n { name: \"data\", type: \"bytes[]\", internalType: \"bytes[]\" },\n { name: \"values\", type: \"uint256[]\", internalType: \"uint256[]\" },\n ],\n outputs: [{ name: \"results\", type: \"bytes[]\", internalType: \"bytes[]\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"manage\",\n inputs: [\n { name: \"target\", type: \"address\", internalType: \"address\" },\n { name: \"data\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"result\", type: \"bytes\", internalType: \"bytes\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"name\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"nonces\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"onERC1155BatchReceived\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256[]\", internalType: \"uint256[]\" },\n { name: \"\", type: \"uint256[]\", internalType: \"uint256[]\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onERC1155Received\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onERC721Received\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"owner\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"permit\",\n inputs: [\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"v\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"r\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"s\", type: \"bytes32\", internalType: \"bytes32\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setAuthority\",\n inputs: [\n {\n name: \"newAuthority\",\n type: \"address\",\n internalType: \"contract Authority\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setBeforeTransferHook\",\n inputs: [{ name: \"_hook\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"supportsInterface\",\n inputs: [{ name: \"interfaceId\", type: \"bytes4\", internalType: \"bytes4\" }],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"symbol\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"transfer\",\n inputs: [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n inputs: [\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferOwnership\",\n inputs: [{ name: \"newOwner\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"AuthorityUpdated\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newAuthority\",\n type: \"address\",\n indexed: true,\n internalType: \"contract Authority\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Enter\",\n inputs: [\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"asset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"shares\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Exit\",\n inputs: [\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"asset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"shares\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferred\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"error\",\n name: \"AddressEmptyCode\",\n inputs: [{ name: \"target\", type: \"address\", internalType: \"address\" }],\n },\n {\n type: \"error\",\n name: \"AddressInsufficientBalance\",\n inputs: [{ name: \"account\", type: \"address\", internalType: \"address\" }],\n },\n { type: \"error\", name: \"FailedInnerCall\", inputs: [] },\n] as const;\n","import { type Address, erc20Abi } from \"viem\";\nimport { AccountantAbi } from \"../abi/accountant-abi\";\nimport { BoringVaultAbi } from \"../abi/boring-vault-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\ntype AccountantBaseProps = {\n accountantAddress: Address;\n chainId: ChainId;\n};\n\ntype RateInQuoteWithAssetDecimalsProps = AccountantBaseProps & {\n assetAddress: Address;\n};\n\n// TODO: Duplicated in multicall compare and remove\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 RateInQuoteAndSharesAndWantAssetDecimalsParams = {\n sharesAssetAddress: Address;\n wantAssetAddress: Address;\n accountantAddress: Address;\n chainId: ChainId;\n};\n\n// TODO: Move to multicall\nconst getRateInQuoteAndSharesAndWantAssetDecimals = async ({\n sharesAssetAddress,\n wantAssetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteAndSharesAndWantAssetDecimalsParams) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: wantAssetAddress,\n functionName: \"decimals\",\n },\n {\n abi: BoringVaultAbi,\n address: sharesAssetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [wantAssetAddress],\n },\n ],\n });\n return results;\n};\n\nexport {\n getRateInQuoteAndSharesAndWantAssetDecimals,\n getRateInQuoteWithAssetDecimals,\n};\n","export const TellerAbi = [\n {\n inputs: [\n { internalType: \"address\", name: \"_owner\", type: \"address\" },\n { internalType: \"address\", name: \"_vault\", type: \"address\" },\n { internalType: \"address\", name: \"_accountant\", type: \"address\" },\n { internalType: \"address\", name: \"_endpoint\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n { inputs: [], name: \"InvalidDelegate\", type: \"error\" },\n { inputs: [], name: \"InvalidEndpointCall\", type: \"error\" },\n {\n inputs: [{ internalType: \"uint16\", name: \"optionType\", type: \"uint16\" }],\n name: \"InvalidOptionType\",\n type: \"error\",\n },\n { inputs: [], name: \"LzTokenUnavailable\", type: \"error\" },\n {\n inputs: [],\n name: \"MultiChainLayerZeroTellerWithMultiAssetSupport_InvalidToken\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"MultiChainTellerBase_DestinationChainReceiverIsZeroAddress\",\n type: \"error\",\n },\n { inputs: [], name: \"MultiChainTellerBase_GasLimitExceeded\", type: \"error\" },\n { inputs: [], name: \"MultiChainTellerBase_GasTooLow\", type: \"error\" },\n {\n inputs: [{ internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" }],\n name: \"MultiChainTellerBase_MessagesNotAllowedFrom\",\n type: \"error\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"chainSelector\", type: \"uint256\" },\n ],\n name: \"MultiChainTellerBase_MessagesNotAllowedTo\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"MultiChainTellerBase_TargetTellerIsZeroAddress\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"MultiChainTellerBase_ZeroMessageGasLimit\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"uint32\", name: \"eid\", type: \"uint32\" }],\n name: \"NoPeer\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"msgValue\", type: \"uint256\" }],\n name: \"NotEnoughNative\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"addr\", type: \"address\" }],\n name: \"OnlyEndpoint\",\n type: \"error\",\n },\n {\n inputs: [\n { internalType: \"uint32\", name: \"eid\", type: \"uint32\" },\n { internalType: \"bytes32\", name: \"sender\", type: \"bytes32\" },\n ],\n name: \"OnlyPeer\",\n type: \"error\",\n },\n {\n inputs: [\n { internalType: \"uint8\", name: \"bits\", type: \"uint8\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n ],\n name: \"SafeCastOverflowedUintDowncast\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"token\", type: \"address\" }],\n name: \"SafeERC20FailedOperation\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__AssetNotSupported\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__BadDepositHash\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__MinimumAssetsNotMet\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__MinimumMintNotMet\",\n type: \"error\",\n },\n { inputs: [], name: \"TellerWithMultiAssetSupport__Paused\", type: \"error\" },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__PermitFailedAndAllowanceTooLow\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__ShareLockPeriodTooLong\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__SharesAreLocked\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__SharesAreUnLocked\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__ZeroAssets\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TellerWithMultiAssetSupport__ZeroShares\",\n type: \"error\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"asset\",\n type: \"address\",\n },\n ],\n name: \"AssetAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"asset\",\n type: \"address\",\n },\n ],\n name: \"AssetRemoved\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"user\", type: \"address\" },\n {\n indexed: true,\n internalType: \"contract Authority\",\n name: \"newAuthority\",\n type: \"address\",\n },\n ],\n name: \"AuthorityUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"asset\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"depositAmount\",\n type: \"uint256\",\n },\n ],\n name: \"BulkDeposit\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"asset\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"shareAmount\",\n type: \"uint256\",\n },\n ],\n name: \"BulkWithdraw\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"chainSelector\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"allowMessagesFrom\",\n type: \"bool\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"allowMessagesTo\",\n type: \"bool\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"targetTeller\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"messageGasLimit\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"messageGasMin\",\n type: \"uint64\",\n },\n ],\n name: \"ChainAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"chainSelector\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"targetTeller\",\n type: \"address\",\n },\n ],\n name: \"ChainAllowMessagesFrom\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"chainSelector\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"targetTeller\",\n type: \"address\",\n },\n ],\n name: \"ChainAllowMessagesTo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"chainSelector\",\n type: \"uint256\",\n },\n ],\n name: \"ChainRemoved\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"chainSelector\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"messageGasLimit\",\n type: \"uint64\",\n },\n ],\n name: \"ChainSetGasLimit\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"chainSelector\",\n type: \"uint256\",\n },\n ],\n name: \"ChainStopMessagesFrom\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"chainSelector\",\n type: \"uint256\",\n },\n ],\n name: \"ChainStopMessagesTo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"depositAsset\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"depositAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"shareAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"depositTimestamp\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"shareLockPeriodAtTimeOfDeposit\",\n type: \"uint256\",\n },\n ],\n name: \"Deposit\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"depositHash\",\n type: \"bytes32\",\n },\n { indexed: true, internalType: \"address\", name: \"user\", type: \"address\" },\n ],\n name: \"DepositRefunded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"messageId\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"shareAmount\",\n type: \"uint256\",\n },\n { indexed: false, internalType: \"address\", name: \"to\", type: \"address\" },\n ],\n name: \"MessageReceived\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"messageId\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"shareAmount\",\n type: \"uint256\",\n },\n { indexed: false, internalType: \"address\", name: \"to\", type: \"address\" },\n ],\n name: \"MessageSent\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"user\", type: \"address\" },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n { anonymous: false, inputs: [], name: \"Paused\", type: \"event\" },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint32\", name: \"eid\", type: \"uint32\" },\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"peer\",\n type: \"bytes32\",\n },\n ],\n name: \"PeerSet\",\n type: \"event\",\n },\n { anonymous: false, inputs: [], name: \"Unpaused\", type: \"event\" },\n {\n inputs: [],\n name: \"accountant\",\n outputs: [\n {\n internalType: \"contract AccountantWithRateProviders\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"contract ERC20\", name: \"asset\", type: \"address\" },\n ],\n name: \"addAsset\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" },\n { internalType: \"bool\", name: \"allowMessagesFrom\", type: \"bool\" },\n { internalType: \"bool\", name: \"allowMessagesTo\", type: \"bool\" },\n { internalType: \"address\", name: \"targetTeller\", type: \"address\" },\n { internalType: \"uint64\", name: \"messageGasLimit\", type: \"uint64\" },\n { internalType: \"uint64\", name: \"messageGasMin\", type: \"uint64\" },\n ],\n name: \"addChain\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"uint32\", name: \"srcEid\", type: \"uint32\" },\n { internalType: \"bytes32\", name: \"sender\", type: \"bytes32\" },\n { internalType: \"uint64\", name: \"nonce\", type: \"uint64\" },\n ],\n internalType: \"struct Origin\",\n name: \"origin\",\n type: \"tuple\",\n },\n ],\n name: \"allowInitializePath\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" },\n { internalType: \"address\", name: \"targetTeller\", type: \"address\" },\n ],\n name: \"allowMessagesFromChain\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" },\n { internalType: \"address\", name: \"targetTeller\", type: \"address\" },\n { internalType: \"uint64\", name: \"messageGasLimit\", type: \"uint64\" },\n ],\n name: \"allowMessagesToChain\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"authority\",\n outputs: [\n { internalType: \"contract Authority\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"from\", type: \"address\" }],\n name: \"beforeTransfer\",\n outputs: [],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"shareAmount\", type: \"uint256\" },\n {\n components: [\n { internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" },\n {\n internalType: \"address\",\n name: \"destinationChainReceiver\",\n type: \"address\",\n },\n {\n internalType: \"contract ERC20\",\n name: \"bridgeFeeToken\",\n type: \"address\",\n },\n { internalType: \"uint64\", name: \"messageGas\", type: \"uint64\" },\n { internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n ],\n internalType: \"struct BridgeData\",\n name: \"data\",\n type: \"tuple\",\n },\n ],\n name: \"bridge\",\n outputs: [{ internalType: \"bytes32\", name: \"messageId\", type: \"bytes32\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"contract ERC20\", name: \"depositAsset\", type: \"address\" },\n { internalType: \"uint256\", name: \"depositAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minimumMint\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n ],\n name: \"bulkDeposit\",\n outputs: [{ internalType: \"uint256\", name: \"shares\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract ERC20\",\n name: \"withdrawAsset\",\n type: \"address\",\n },\n { internalType: \"uint256\", name: \"shareAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minimumAssets\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n ],\n name: \"bulkWithdraw\",\n outputs: [{ internalType: \"uint256\", name: \"assetsOut\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"contract ERC20\", name: \"depositAsset\", type: \"address\" },\n { internalType: \"uint256\", name: \"depositAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minimumMint\", type: \"uint256\" },\n ],\n name: \"deposit\",\n outputs: [{ internalType: \"uint256\", name: \"shares\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"contract ERC20\", name: \"depositAsset\", type: \"address\" },\n { internalType: \"uint256\", name: \"depositAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minimumMint\", type: \"uint256\" },\n {\n components: [\n { internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" },\n {\n internalType: \"address\",\n name: \"destinationChainReceiver\",\n type: \"address\",\n },\n {\n internalType: \"contract ERC20\",\n name: \"bridgeFeeToken\",\n type: \"address\",\n },\n { internalType: \"uint64\", name: \"messageGas\", type: \"uint64\" },\n { internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n ],\n internalType: \"struct BridgeData\",\n name: \"data\",\n type: \"tuple\",\n },\n ],\n name: \"depositAndBridge\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"depositNonce\",\n outputs: [{ internalType: \"uint96\", name: \"\", type: \"uint96\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"contract ERC20\", name: \"depositAsset\", type: \"address\" },\n { internalType: \"uint256\", name: \"depositAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minimumMint\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"depositWithPermit\",\n outputs: [{ internalType: \"uint256\", name: \"shares\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"endpoint\",\n outputs: [\n {\n internalType: \"contract ILayerZeroEndpointV2\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"uint32\", name: \"srcEid\", type: \"uint32\" },\n { internalType: \"bytes32\", name: \"sender\", type: \"bytes32\" },\n { internalType: \"uint64\", name: \"nonce\", type: \"uint64\" },\n ],\n internalType: \"struct Origin\",\n name: \"\",\n type: \"tuple\",\n },\n { internalType: \"bytes\", name: \"\", type: \"bytes\" },\n { internalType: \"address\", name: \"_sender\", type: \"address\" },\n ],\n name: \"isComposeMsgSender\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"isPaused\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"contract ERC20\", name: \"\", type: \"address\" }],\n name: \"isSupported\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"uint32\", name: \"srcEid\", type: \"uint32\" },\n { internalType: \"bytes32\", name: \"sender\", type: \"bytes32\" },\n { internalType: \"uint64\", name: \"nonce\", type: \"uint64\" },\n ],\n internalType: \"struct Origin\",\n name: \"_origin\",\n type: \"tuple\",\n },\n { internalType: \"bytes32\", name: \"_guid\", type: \"bytes32\" },\n { internalType: \"bytes\", name: \"_message\", type: \"bytes\" },\n { internalType: \"address\", name: \"_executor\", type: \"address\" },\n { internalType: \"bytes\", name: \"_extraData\", type: \"bytes\" },\n ],\n name: \"lzReceive\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint32\", name: \"\", type: \"uint32\" },\n { internalType: \"bytes32\", name: \"\", type: \"bytes32\" },\n ],\n name: \"nextNonce\",\n outputs: [{ internalType: \"uint64\", name: \"nonce\", type: \"uint64\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"oAppVersion\",\n outputs: [\n { internalType: \"uint64\", name: \"senderVersion\", type: \"uint64\" },\n { internalType: \"uint64\", name: \"receiverVersion\", type: \"uint64\" },\n ],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"pause\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint32\", name: \"eid\", type: \"uint32\" }],\n name: \"peers\",\n outputs: [{ internalType: \"bytes32\", name: \"peer\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"shareAmount\", type: \"uint256\" },\n {\n components: [\n { internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" },\n {\n internalType: \"address\",\n name: \"destinationChainReceiver\",\n type: \"address\",\n },\n {\n internalType: \"contract ERC20\",\n name: \"bridgeFeeToken\",\n type: \"address\",\n },\n { internalType: \"uint64\", name: \"messageGas\", type: \"uint64\" },\n { internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n ],\n internalType: \"struct BridgeData\",\n name: \"data\",\n type: \"tuple\",\n },\n ],\n name: \"previewFee\",\n outputs: [{ internalType: \"uint256\", name: \"fee\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"publicDepositHistory\",\n outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"nonce\", type: \"uint256\" },\n { internalType: \"address\", name: \"receiver\", type: \"address\" },\n { internalType: \"address\", name: \"depositAsset\", type: \"address\" },\n { internalType: \"uint256\", name: \"depositAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"shareAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"depositTimestamp\", type: \"uint256\" },\n {\n internalType: \"uint256\",\n name: \"shareLockUpPeriodAtTimeOfDeposit\",\n type: \"uint256\",\n },\n ],\n name: \"refundDeposit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"contract ERC20\", name: \"asset\", type: \"address\" },\n ],\n name: \"removeAsset\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" }],\n name: \"removeChain\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint32\", name: \"\", type: \"uint32\" }],\n name: \"selectorToChains\",\n outputs: [\n { internalType: \"bool\", name: \"allowMessagesFrom\", type: \"bool\" },\n { internalType: \"bool\", name: \"allowMessagesTo\", type: \"bool\" },\n { internalType: \"address\", name: \"targetTeller\", type: \"address\" },\n { internalType: \"uint64\", name: \"messageGasLimit\", type: \"uint64\" },\n { internalType: \"uint64\", name: \"minimumMessageGas\", type: \"uint64\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract Authority\",\n name: \"newAuthority\",\n type: \"address\",\n },\n ],\n name: \"setAuthority\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" },\n { internalType: \"uint64\", name: \"messageGasLimit\", type: \"uint64\" },\n ],\n name: \"setChainGasLimit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"_delegate\", type: \"address\" }],\n name: \"setDelegate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint32\", name: \"_eid\", type: \"uint32\" },\n { internalType: \"bytes32\", name: \"_peer\", type: \"bytes32\" },\n ],\n name: \"setPeer\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint64\", name: \"_shareLockPeriod\", type: \"uint64\" },\n ],\n name: \"setShareLockPeriod\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"shareLockPeriod\",\n outputs: [{ internalType: \"uint64\", name: \"\", type: \"uint64\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"shareUnlockTime\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" }],\n name: \"stopMessagesFromChain\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint32\", name: \"chainSelector\", type: \"uint32\" }],\n name: \"stopMessagesToChain\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"newOwner\", type: \"address\" }],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"unpause\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"vault\",\n outputs: [\n { internalType: \"contract BoringVault\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * SDK Configuration Constants
3
+ *
4
+ * Global constants for supported chains, yield types, tokens, and defaults.
5
+ * Centralized configuration for address book integration and permit deposits.
6
+ */
7
+
8
+ /**
9
+ * Yield Type identifiers
10
+ *
11
+ * Use as const values: YieldType.PRIME, YieldType.TBILL, YieldType.LENDING
12
+ * Use as type annotation: yieldType: YieldType
13
+ */
14
+ declare const YieldType: {
15
+ readonly PRIME: "PRIME";
16
+ readonly TBILL: "TBILL";
17
+ readonly LENDING: "LENDING";
18
+ };
19
+ type YieldType = (typeof YieldType)[keyof typeof YieldType];
20
+
21
+ export { YieldType as Y };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * SDK Configuration Constants
3
+ *
4
+ * Global constants for supported chains, yield types, tokens, and defaults.
5
+ * Centralized configuration for address book integration and permit deposits.
6
+ */
7
+
8
+ /**
9
+ * Yield Type identifiers
10
+ *
11
+ * Use as const values: YieldType.PRIME, YieldType.TBILL, YieldType.LENDING
12
+ * Use as type annotation: yieldType: YieldType
13
+ */
14
+ declare const YieldType: {
15
+ readonly PRIME: "PRIME";
16
+ readonly TBILL: "TBILL";
17
+ readonly LENDING: "LENDING";
18
+ };
19
+ type YieldType = (typeof YieldType)[keyof typeof YieldType];
20
+
21
+ export { YieldType as Y };
@@ -0,0 +1,101 @@
1
+ import { Address } from 'viem';
2
+
3
+ /**
4
+ * @file Vault configuration
5
+ * @module vaults/config
6
+ * @description Defines the configuration for all supported vaults
7
+ */
8
+
9
+ /**
10
+ * Available vault keys in the system
11
+ * @constant {Object} VaultKeys
12
+ * @property {string} NRWA - Key for the nRWA vault
13
+ * @property {string} NTBILL - Key for the nTBILL vault
14
+ * @property {string} NBASIS - Key for the nBASIS vault
15
+ * @property {string} NCREDIT - Key for the nCREDIT vault
16
+ * @property {string} NINSTO - Key for the nINSTO vault
17
+ * @property {string} NPAYFI - Key for the nPAYFI vault
18
+ * @property {string} OPNRWA - Key for the Op-nRWA vault
19
+ * @property {string} OPNTBILL - Key for the Op-nTBILL vault
20
+ * @property {string} OPNBASIS - Key for the Op-nBASIS vault
21
+ * @property {string} OPPLUME - Key for the Op-plume vault
22
+ * @property {string} OPPUSD - Key for the Op-pUSD vault
23
+ */
24
+ declare const VaultKeys: {
25
+ readonly OPNALPHA: "op-nALPHA";
26
+ readonly OPNBASIS: "op-nBASIS";
27
+ readonly OPNETF: "op-nETF";
28
+ readonly OPNPAYFI: "op-nPAYFI";
29
+ readonly OPNPLUME: "op-PLUME";
30
+ readonly OPNRWA: "op-nRWA";
31
+ readonly OPNTBILL: "op-nTBILL";
32
+ readonly OPPUSD: "op-pUSD";
33
+ readonly XLHYPE: "XLHYPE";
34
+ readonly CAMPUSD: "campUSD";
35
+ };
36
+ /**
37
+ * Type representing valid vault keys
38
+ * @typedef {string} VaultKey
39
+ */
40
+ type VaultKey = (typeof VaultKeys)[keyof typeof VaultKeys];
41
+ interface Token {
42
+ symbol: string;
43
+ address: Address;
44
+ decimals: number;
45
+ }
46
+ interface VaultToken extends Token {
47
+ name: string;
48
+ }
49
+ interface VaultContracts {
50
+ accountant: Address;
51
+ boringVault: Address;
52
+ teller: Address;
53
+ }
54
+ interface Bridge {
55
+ type: "hyperlane" | "layerzero" | "none";
56
+ chainIdentifier: number;
57
+ }
58
+ interface Deposit {
59
+ sourceChains: {
60
+ [chainId: string]: DepositSourceChain;
61
+ };
62
+ }
63
+ interface DepositSourceChain {
64
+ displayName: string;
65
+ destinationChains: {
66
+ [chainId: string]: DepositDestinationChain;
67
+ };
68
+ depositTokens: {
69
+ [tokenSymbol: string]: Token;
70
+ };
71
+ }
72
+ interface DepositDestinationChain {
73
+ displayName: string;
74
+ bridge: Bridge;
75
+ }
76
+ interface Withdraw {
77
+ sourceChains: {
78
+ [chainId: string]: WithdrawSourceChain;
79
+ };
80
+ }
81
+ interface WithdrawSourceChain {
82
+ displayName: string;
83
+ destinationChains: {
84
+ [chainId: string]: WithdrawDestinationChain;
85
+ };
86
+ }
87
+ interface WithdrawDestinationChain {
88
+ displayName: string;
89
+ bridge: Bridge;
90
+ wantTokens: {
91
+ [tokenSymbol: string]: Token;
92
+ };
93
+ }
94
+ interface Vault {
95
+ contracts: VaultContracts;
96
+ token: VaultToken;
97
+ deposit: Deposit;
98
+ withdraw: Withdraw;
99
+ }
100
+
101
+ export type { VaultKey as V, Vault as a };
@@ -0,0 +1,101 @@
1
+ import { Address } from 'viem';
2
+
3
+ /**
4
+ * @file Vault configuration
5
+ * @module vaults/config
6
+ * @description Defines the configuration for all supported vaults
7
+ */
8
+
9
+ /**
10
+ * Available vault keys in the system
11
+ * @constant {Object} VaultKeys
12
+ * @property {string} NRWA - Key for the nRWA vault
13
+ * @property {string} NTBILL - Key for the nTBILL vault
14
+ * @property {string} NBASIS - Key for the nBASIS vault
15
+ * @property {string} NCREDIT - Key for the nCREDIT vault
16
+ * @property {string} NINSTO - Key for the nINSTO vault
17
+ * @property {string} NPAYFI - Key for the nPAYFI vault
18
+ * @property {string} OPNRWA - Key for the Op-nRWA vault
19
+ * @property {string} OPNTBILL - Key for the Op-nTBILL vault
20
+ * @property {string} OPNBASIS - Key for the Op-nBASIS vault
21
+ * @property {string} OPPLUME - Key for the Op-plume vault
22
+ * @property {string} OPPUSD - Key for the Op-pUSD vault
23
+ */
24
+ declare const VaultKeys: {
25
+ readonly OPNALPHA: "op-nALPHA";
26
+ readonly OPNBASIS: "op-nBASIS";
27
+ readonly OPNETF: "op-nETF";
28
+ readonly OPNPAYFI: "op-nPAYFI";
29
+ readonly OPNPLUME: "op-PLUME";
30
+ readonly OPNRWA: "op-nRWA";
31
+ readonly OPNTBILL: "op-nTBILL";
32
+ readonly OPPUSD: "op-pUSD";
33
+ readonly XLHYPE: "XLHYPE";
34
+ readonly CAMPUSD: "campUSD";
35
+ };
36
+ /**
37
+ * Type representing valid vault keys
38
+ * @typedef {string} VaultKey
39
+ */
40
+ type VaultKey = (typeof VaultKeys)[keyof typeof VaultKeys];
41
+ interface Token {
42
+ symbol: string;
43
+ address: Address;
44
+ decimals: number;
45
+ }
46
+ interface VaultToken extends Token {
47
+ name: string;
48
+ }
49
+ interface VaultContracts {
50
+ accountant: Address;
51
+ boringVault: Address;
52
+ teller: Address;
53
+ }
54
+ interface Bridge {
55
+ type: "hyperlane" | "layerzero" | "none";
56
+ chainIdentifier: number;
57
+ }
58
+ interface Deposit {
59
+ sourceChains: {
60
+ [chainId: string]: DepositSourceChain;
61
+ };
62
+ }
63
+ interface DepositSourceChain {
64
+ displayName: string;
65
+ destinationChains: {
66
+ [chainId: string]: DepositDestinationChain;
67
+ };
68
+ depositTokens: {
69
+ [tokenSymbol: string]: Token;
70
+ };
71
+ }
72
+ interface DepositDestinationChain {
73
+ displayName: string;
74
+ bridge: Bridge;
75
+ }
76
+ interface Withdraw {
77
+ sourceChains: {
78
+ [chainId: string]: WithdrawSourceChain;
79
+ };
80
+ }
81
+ interface WithdrawSourceChain {
82
+ displayName: string;
83
+ destinationChains: {
84
+ [chainId: string]: WithdrawDestinationChain;
85
+ };
86
+ }
87
+ interface WithdrawDestinationChain {
88
+ displayName: string;
89
+ bridge: Bridge;
90
+ wantTokens: {
91
+ [tokenSymbol: string]: Token;
92
+ };
93
+ }
94
+ interface Vault {
95
+ contracts: VaultContracts;
96
+ token: VaultToken;
97
+ deposit: Deposit;
98
+ withdraw: Withdraw;
99
+ }
100
+
101
+ export type { VaultKey as V, Vault as a };