UNPKG

@molecularlabs/nucleus-frontend

Version:
1 lines 2.79 kB
{"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} 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;AACV;","names":[]}