{"version":3,"sources":["../../src/vaults/config.ts"],"sourcesContent":["/**\n * @file Vault configuration\n * @module vaults/config\n * @description Defines the configuration for all supported vaults\n */\n\nimport type { Address } from \"viem\";\n\n/**\n * Available vault keys in the system\n * @constant {Object} VaultKeys\n * @property {string} NRWA - Key for the nRWA vault\n * @property {string} NTBILL - Key for the nTBILL vault\n * @property {string} NBASIS - Key for the nBASIS vault\n * @property {string} NCREDIT - Key for the nCREDIT vault\n * @property {string} NINSTO - Key for the nINSTO vault\n * @property {string} NPAYFI - Key for the nPAYFI vault\n * @property {string} OPNRWA - Key for the Op-nRWA vault\n * @property {string} OPNTBILL - Key for the Op-nTBILL vault\n * @property {string} OPNBASIS - Key for the Op-nBASIS vault\n * @property {string} OPPLUME - Key for the Op-plume vault\n * @property {string} OPPUSD - Key for the Op-pUSD vault\n */\nexport const VaultKeys = {\n  OPNALPHA: \"op-nALPHA\",\n  OPNBASIS: \"op-nBASIS\",\n  OPNETF: \"op-nETF\",\n  OPNPAYFI: \"op-nPAYFI\",\n  OPNPLUME: \"op-PLUME\",\n  OPNRWA: \"op-nRWA\",\n  OPNTBILL: \"op-nTBILL\",\n  OPPUSD: \"op-pUSD\",\n  XLHYPE: \"XLHYPE\",\n  CAMPUSD: \"campUSD\",\n} as const;\n\n/**\n * Type representing valid vault keys\n * @typedef {string} VaultKey\n */\nexport type VaultKey = (typeof VaultKeys)[keyof typeof VaultKeys];\n\ninterface Token {\n  symbol: string;\n  address: Address;\n  decimals: number;\n}\n\ninterface VaultToken extends Token {\n  name: string;\n}\n\ninterface VaultContracts {\n  accountant: Address;\n  boringVault: Address;\n  teller: Address;\n}\n\ninterface Bridge {\n  type: \"hyperlane\" | \"layerzero\" | \"none\";\n  chainIdentifier: number;\n}\n\ninterface Deposit {\n  sourceChains: { [chainId: string]: DepositSourceChain };\n}\n\ninterface DepositSourceChain {\n  displayName: string;\n  destinationChains: { [chainId: string]: DepositDestinationChain };\n  depositTokens: { [tokenSymbol: string]: Token };\n}\n\ninterface DepositDestinationChain {\n  displayName: string;\n  bridge: Bridge;\n}\n\ninterface Withdraw {\n  sourceChains: { [chainId: string]: WithdrawSourceChain };\n}\n\ninterface WithdrawSourceChain {\n  displayName: string;\n  destinationChains: { [chainId: string]: WithdrawDestinationChain };\n}\n\ninterface WithdrawDestinationChain {\n  displayName: string;\n  bridge: Bridge;\n  wantTokens: { [tokenSymbol: string]: Token };\n}\n\ninterface Vault {\n  contracts: VaultContracts;\n  token: VaultToken;\n  deposit: Deposit;\n  withdraw: Withdraw;\n}\n\nexport type { Vault };\n"],"mappings":"AAuBO,MAAM,YAAY;AAAA,EACvB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AACX;","names":[]}