@lombard.finance/sdk 4.7.1 → 4.7.2
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.
- package/CHANGELOG.md +8 -0
- package/dist/api.cjs +1 -1
- package/dist/api.js +5 -5
- package/dist/bridge.cjs +1 -1
- package/dist/bridge.js +1 -1
- package/dist/btc.cjs +1 -1
- package/dist/btc.js +2 -2
- package/dist/chunks/{BtcActions-BczTnzRn.js → BtcActions-Ds6YrAKZ.js} +7 -7
- package/dist/chunks/{BtcActions-BczTnzRn.js.map → BtcActions-Ds6YrAKZ.js.map} +1 -1
- package/dist/chunks/{BtcActions-PyJhuiZN.cjs → BtcActions-DywyNv3O.cjs} +2 -2
- package/dist/chunks/{BtcActions-PyJhuiZN.cjs.map → BtcActions-DywyNv3O.cjs.map} +1 -1
- package/dist/chunks/{EvmActions-DSKThOAy.js → EvmActions-BDk1vvRY.js} +9 -9
- package/dist/chunks/{EvmActions-DSKThOAy.js.map → EvmActions-BDk1vvRY.js.map} +1 -1
- package/dist/chunks/{EvmActions-D3RAK9_Z.cjs → EvmActions-BzlEACJk.cjs} +2 -2
- package/dist/chunks/{EvmActions-D3RAK9_Z.cjs.map → EvmActions-BzlEACJk.cjs.map} +1 -1
- package/dist/chunks/{ReferralsClient-W-0-383w.js → ReferralsClient-DT3qvRXP.js} +4 -4
- package/dist/chunks/{ReferralsClient-W-0-383w.js.map → ReferralsClient-DT3qvRXP.js.map} +1 -1
- package/dist/chunks/{ReferralsClient-D8dHEk_X.cjs → ReferralsClient-o-3AUm7s.cjs} +2 -2
- package/dist/chunks/{ReferralsClient-D8dHEk_X.cjs.map → ReferralsClient-o-3AUm7s.cjs.map} +1 -1
- package/dist/chunks/{approveLBTC-BMC4cZEk.cjs → approveLBTC-BBl3KcT2.cjs} +2 -2
- package/dist/chunks/{approveLBTC-BMC4cZEk.cjs.map → approveLBTC-BBl3KcT2.cjs.map} +1 -1
- package/dist/chunks/{approveLBTC-BkdT1N3V.js → approveLBTC-DZQpza0E.js} +3 -3
- package/dist/chunks/{approveLBTC-BkdT1N3V.js.map → approveLBTC-DZQpza0E.js.map} +1 -1
- package/dist/chunks/{blockchain-identifier-BLPnwbIN.js → blockchain-identifier-C2GkWxmw.js} +2 -2
- package/dist/chunks/{blockchain-identifier-BLPnwbIN.js.map → blockchain-identifier-C2GkWxmw.js.map} +1 -1
- package/dist/chunks/{blockchain-identifier-Bp-LTIdG.cjs → blockchain-identifier-DWfC3Es2.cjs} +2 -2
- package/dist/chunks/{blockchain-identifier-Bp-LTIdG.cjs.map → blockchain-identifier-DWfC3Es2.cjs.map} +1 -1
- package/dist/chunks/{bridge-DbB23m2a.js → bridge-62Nuzkt6.js} +4 -4
- package/dist/chunks/{bridge-DbB23m2a.js.map → bridge-62Nuzkt6.js.map} +1 -1
- package/dist/chunks/{bridge-7Eq_Jmi2.cjs → bridge-DZp5x4Yb.cjs} +2 -2
- package/dist/chunks/{bridge-7Eq_Jmi2.cjs.map → bridge-DZp5x4Yb.cjs.map} +1 -1
- package/dist/chunks/{config-ow9X5H0c.cjs → config-8IroHCdP.cjs} +2 -2
- package/dist/chunks/{config-ow9X5H0c.cjs.map → config-8IroHCdP.cjs.map} +1 -1
- package/dist/chunks/{config-C8BfN_9P.js → config-ej-tsP3s.js} +2 -2
- package/dist/chunks/{config-C8BfN_9P.js.map → config-ej-tsP3s.js.map} +1 -1
- package/dist/chunks/{defi-registry-CD8EUcNu.js → defi-registry-DLP7nuRn.js} +3 -3
- package/dist/chunks/{defi-registry-CD8EUcNu.js.map → defi-registry-DLP7nuRn.js.map} +1 -1
- package/dist/chunks/{defi-registry-B8V6dRVB.cjs → defi-registry-QwFZR4oK.cjs} +2 -2
- package/dist/chunks/{defi-registry-B8V6dRVB.cjs.map → defi-registry-QwFZR4oK.cjs.map} +1 -1
- package/dist/chunks/{depositStatus-BJA7tNqc.cjs → depositStatus-B9P1YXEU.cjs} +2 -2
- package/dist/chunks/{depositStatus-BJA7tNqc.cjs.map → depositStatus-B9P1YXEU.cjs.map} +1 -1
- package/dist/chunks/{depositStatus-HosfExLl.js → depositStatus-DMDUj1Zi.js} +5 -5
- package/dist/chunks/{depositStatus-HosfExLl.js.map → depositStatus-DMDUj1Zi.js.map} +1 -1
- package/dist/chunks/{events-DNehj45M.cjs → events-DADaEsss.cjs} +2 -2
- package/dist/chunks/{events-DNehj45M.cjs.map → events-DADaEsss.cjs.map} +1 -1
- package/dist/chunks/{events-BlzP_SCT.js → events-DmrU6jV2.js} +12 -12
- package/dist/chunks/{events-BlzP_SCT.js.map → events-DmrU6jV2.js.map} +1 -1
- package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs → get-exchange-ratio-DGztGO7i.cjs} +2 -2
- package/dist/chunks/{get-exchange-ratio-t1PW8I6_.cjs.map → get-exchange-ratio-DGztGO7i.cjs.map} +1 -1
- package/dist/chunks/{get-exchange-ratio-Bl6pt546.js → get-exchange-ratio-D_5R035-.js} +2 -2
- package/dist/chunks/{get-exchange-ratio-Bl6pt546.js.map → get-exchange-ratio-D_5R035-.js.map} +1 -1
- package/dist/chunks/{get-positions-summary-DdZvBmCN.cjs → get-positions-summary-CC7BDtlY.cjs} +2 -2
- package/dist/chunks/{get-positions-summary-DdZvBmCN.cjs.map → get-positions-summary-CC7BDtlY.cjs.map} +1 -1
- package/dist/chunks/{get-positions-summary-CaX2BCHp.js → get-positions-summary-CSTG4Ni0.js} +2 -2
- package/dist/chunks/{get-positions-summary-CaX2BCHp.js.map → get-positions-summary-CSTG4Ni0.js.map} +1 -1
- package/dist/chunks/{get-vault-tvl-DZ-xzehy.cjs → get-vault-tvl-D6XcYucx.cjs} +2 -2
- package/dist/chunks/{get-vault-tvl-DZ-xzehy.cjs.map → get-vault-tvl-D6XcYucx.cjs.map} +1 -1
- package/dist/chunks/{get-vault-tvl-CihHEkqK.js → get-vault-tvl-DwdB1FA1.js} +4 -4
- package/dist/chunks/{get-vault-tvl-CihHEkqK.js.map → get-vault-tvl-DwdB1FA1.js.map} +1 -1
- package/dist/chunks/{get-vault-withdrawals-QJOdxB5Z.js → get-vault-withdrawals-BLwcsT0Q.js} +3 -3
- package/dist/chunks/{get-vault-withdrawals-QJOdxB5Z.js.map → get-vault-withdrawals-BLwcsT0Q.js.map} +1 -1
- package/dist/chunks/{get-vault-withdrawals-DLwFMQEB.cjs → get-vault-withdrawals-CuSwGy0M.cjs} +2 -2
- package/dist/chunks/{get-vault-withdrawals-DLwFMQEB.cjs.map → get-vault-withdrawals-CuSwGy0M.cjs.map} +1 -1
- package/dist/chunks/{getUserStakeAndBakeSignature-CqlrwA0t.js → getUserStakeAndBakeSignature-Bqp_BTOt.js} +4 -4
- package/dist/chunks/{getUserStakeAndBakeSignature-CqlrwA0t.js.map → getUserStakeAndBakeSignature-Bqp_BTOt.js.map} +1 -1
- package/dist/chunks/{getUserStakeAndBakeSignature-BmY5j0OM.cjs → getUserStakeAndBakeSignature-VlC_GHmz.cjs} +2 -2
- package/dist/chunks/{getUserStakeAndBakeSignature-BmY5j0OM.cjs.map → getUserStakeAndBakeSignature-VlC_GHmz.cjs.map} +1 -1
- package/dist/chunks/{lbtc-addresses-BlyGFWnW.js → lbtc-addresses-BzalXq8D.js} +2 -2
- package/dist/chunks/{lbtc-addresses-BlyGFWnW.js.map → lbtc-addresses-BzalXq8D.js.map} +1 -1
- package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs → lbtc-addresses-D3jG1VUC.cjs} +2 -2
- package/dist/chunks/{lbtc-addresses-DjsipX5Q.cjs.map → lbtc-addresses-D3jG1VUC.cjs.map} +1 -1
- package/dist/chunks/{statusConstants-BJIXJNIC.cjs → statusConstants-C4MCQQX7.cjs} +2 -2
- package/dist/chunks/{statusConstants-BJIXJNIC.cjs.map → statusConstants-C4MCQQX7.cjs.map} +1 -1
- package/dist/chunks/{statusConstants-BQna5LGH.js → statusConstants-DAn1Atsp.js} +4 -4
- package/dist/chunks/{statusConstants-BQna5LGH.js.map → statusConstants-DAn1Atsp.js.map} +1 -1
- package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js → storeNetworkFeeSignature-B4xx2WLI.js} +2 -2
- package/dist/chunks/{storeNetworkFeeSignature-tprCigR1.js.map → storeNetworkFeeSignature-B4xx2WLI.js.map} +1 -1
- package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs → storeNetworkFeeSignature-DJgBfZp7.cjs} +2 -2
- package/dist/chunks/{storeNetworkFeeSignature-CLm8I2pf.cjs.map → storeNetworkFeeSignature-DJgBfZp7.cjs.map} +1 -1
- package/dist/chunks/token-addresses-C7H9E4qz.cjs +2 -0
- package/dist/chunks/token-addresses-C7H9E4qz.cjs.map +1 -0
- package/dist/chunks/{token-addresses-Ddar0FyS.js → token-addresses-J-EuQVP6.js} +14 -14
- package/dist/chunks/token-addresses-J-EuQVP6.js.map +1 -0
- package/dist/chunks/{tokens-HhVpKe3K.js → tokens-CwbSzyK9.js} +2 -2
- package/dist/chunks/{tokens-HhVpKe3K.js.map → tokens-CwbSzyK9.js.map} +1 -1
- package/dist/chunks/{tokens-CBsz6l_2.cjs → tokens-DEYY7W7O.cjs} +2 -2
- package/dist/chunks/{tokens-CBsz6l_2.cjs.map → tokens-DEYY7W7O.cjs.map} +1 -1
- package/dist/chunks/{unstakeLBTC-Bg8OsAMV.js → unstakeLBTC-CEqb4N-_.js} +5 -5
- package/dist/chunks/{unstakeLBTC-Bg8OsAMV.js.map → unstakeLBTC-CEqb4N-_.js.map} +1 -1
- package/dist/chunks/{unstakeLBTC-BmHvDxBN.cjs → unstakeLBTC-DMI79XHm.cjs} +2 -2
- package/dist/chunks/{unstakeLBTC-BmHvDxBN.cjs.map → unstakeLBTC-DMI79XHm.cjs.map} +1 -1
- package/dist/chunks/{withdraw-kf8mYbYH.js → withdraw-CYUXQ9HY.js} +4 -4
- package/dist/chunks/{withdraw-kf8mYbYH.js.map → withdraw-CYUXQ9HY.js.map} +1 -1
- package/dist/chunks/{withdraw-Bkp5-2dG.cjs → withdraw-D-FlPc10.cjs} +2 -2
- package/dist/chunks/{withdraw-Bkp5-2dG.cjs.map → withdraw-D-FlPc10.cjs.map} +1 -1
- package/dist/chunks/{wrapToBtce-DDeIlv3d.cjs → wrapToBtce-D-TaAhqb.cjs} +2 -2
- package/dist/chunks/{wrapToBtce-DDeIlv3d.cjs.map → wrapToBtce-D-TaAhqb.cjs.map} +1 -1
- package/dist/chunks/{wrapToBtce-By2mh503.js → wrapToBtce-yEQfbDAw.js} +5 -5
- package/dist/chunks/{wrapToBtce-By2mh503.js.map → wrapToBtce-yEQfbDAw.js.map} +1 -1
- package/dist/common/chains.d.ts +1 -1
- package/dist/common/chains.d.ts.map +1 -1
- package/dist/contracts.cjs +1 -1
- package/dist/contracts.js +3 -3
- package/dist/core.cjs +1 -1
- package/dist/core.js +7 -7
- package/dist/defi.cjs +1 -1
- package/dist/defi.js +2 -2
- package/dist/entries/evm.d.ts.map +1 -1
- package/dist/evm.cjs +1 -1
- package/dist/evm.js +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.js +23 -23
- package/dist/metrics.cjs +1 -1
- package/dist/metrics.js +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +4 -4
- package/dist/vaults.cjs +1 -1
- package/dist/vaults.js +7 -7
- package/package.json +1 -1
- package/dist/chunks/token-addresses-Ddar0FyS.js.map +0 -1
- package/dist/chunks/token-addresses-DvY-Mw7b.cjs +0 -2
- package/dist/chunks/token-addresses-DvY-Mw7b.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-ow9X5H0c.cjs","sources":["../../src/vaults/lib/config.ts"],"sourcesContent":["import { Abi, Address } from 'viem';\n\nimport { ChainId } from '../../common/chains';\nimport { Token } from '../../tokens/token-addresses';\nimport BTCE_VAULT_ABI from '../abi/BTCE_VAULT_ABI.json';\nimport VEDA_VAULT_ABI from '../abi/VEDA_VAULT_ABI.json';\nimport VEDA_VAULT_ACCOUNTANT_ABI from '../abi/VEDA_VAULT_ACCOUNTANT_ABI.json';\nimport VEDA_VAULT_BASE_ASSET_ABI from '../abi/VEDA_VAULT_BASE_ASSET_ABI.json';\nimport VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI from '../abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json';\nimport VEDA_VAULT_LENS_ABI from '../abi/VEDA_VAULT_LENS_ABI.json';\nimport VEDA_VAULT_SPENDER_ABI from '../abi/VEDA_VAULT_SPENDER_ABI.json';\nimport VEDA_VAULT_TELLER_ABI from '../abi/VEDA_VAULT_TELLER_ABI.json';\n\ntype ContractInfo = {\n abi: Abi;\n address: Address;\n chainId: ChainId;\n};\n\nexport const VEDA_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n ChainId.corn,\n] as const;\n\nexport type VedaVaultChain = (typeof VEDA_VAULT_CHAINS)[number];\nexport const isVedaVaultChain = (chainId: number): chainId is VedaVaultChain =>\n VEDA_VAULT_CHAINS.includes(chainId as VedaVaultChain);\n\nexport const VEDA_VAULT_CHAIN_TO_NETWORK_MAP: Record<VedaVaultChain, string> = {\n [ChainId.ethereum]: 'ethereum',\n [ChainId.base]: 'base',\n [ChainId.corn]: 'corn',\n [ChainId.binanceSmartChain]: 'bnb',\n};\n\nexport const NETWORK_TO_VEDA_VAULT_CHAIN_MAP: Record<string, VedaVaultChain> = {\n ethereum: ChainId.ethereum,\n base: ChainId.base,\n corn: ChainId.corn,\n bnb: ChainId.binanceSmartChain,\n};\n\n/** A list of chains where stake and bake is enabled */\nexport const VEDA_VAULT_STAKE_AND_BAKE_CHAINS = [\n ChainId.ethereum,\n // Testnets:\n ChainId.sepolia,\n];\nexport type VedaVaultStakeAndBakeChain =\n (typeof VEDA_VAULT_STAKE_AND_BAKE_CHAINS)[number];\nexport const isVedaVaultStakeAndBakeChain = (\n chainId: number,\n): chainId is VedaVaultStakeAndBakeChain =>\n VEDA_VAULT_STAKE_AND_BAKE_CHAINS.includes(\n chainId as VedaVaultStakeAndBakeChain,\n );\n\nexport const VEDA_VAULT_DEFAULT_CHAIN_ID: VedaVaultChain = ChainId.ethereum;\n\nexport const VEDA_VAULT_CONTRACT = '0x5401b8620E5FB570064CA9114fd1e135fd77D57c';\nexport const VEDA_VAULT_ACCOUNTANT_CONTRACT =\n '0x28634D0c5edC67CF2450E74deA49B90a4FF93dCE';\nexport const VEDA_VAULT_LENS_CONTRACT =\n '0x5232bc0F5999f8dA604c42E1748A13a170F94A1B';\n\nexport const VEDA_VAULT_TELLER_CONTRACTS: Record<VedaVaultChain, ContractInfo> =\n {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x4E8f5128F473C6948127f9Cbca474a6700F99bab',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.base,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.binanceSmartChain,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.corn,\n },\n } as const;\n\n/** Stake and bake contracts */\nexport const VEDA_VAULT_SPENDER_CONTRACTS: Record<\n VedaVaultStakeAndBakeChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0xC8bbF6153D7Ba105f1399D992ebd32B0541996ef',\n chainId: ChainId.ethereum,\n },\n // Testnets:\n [ChainId.sepolia]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0x77eD6a84fEF665156e81247ECbd43A847B8A6398',\n chainId: ChainId.sepolia,\n },\n} as const;\n\nexport const VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS: Record<\n VedaVaultChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n};\n\nexport const VEDA_VAULT_BASE_ASSET = {\n abi: VEDA_VAULT_BASE_ASSET_ABI,\n symbol: 'WBTC',\n displayName: 'wBTC',\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n decimals: 8,\n};\n\n/**\n * BTCe is an ERC4626 wrapper vault around the Veda vault's LBTCv share token.\n * Holders of BTCe shares have a claim on the underlying LBTCv position.\n *\n * The wrapper is currently a 1:1 pass-through (totalSupply == totalAssets,\n * convertToAssets(1e8) == 1e8 on every supported chain). Convert through\n * `convertToAssets` rather than naive summation in case fees or rebases ever\n * change the ratio.\n *\n * Currently deployed at the same address on every supported chain, but kept\n * in a Record so future deployments can diverge without an API change.\n */\nexport const BTCE_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n] as const;\n\nexport type BtceVaultChain = (typeof BTCE_VAULT_CHAINS)[number];\n\nexport const isBtceVaultChain = (chainId: number): chainId is BtceVaultChain =>\n BTCE_VAULT_CHAINS.includes(chainId as BtceVaultChain);\n\nexport const BTCE_VAULT_CONTRACTS: Record<BtceVaultChain, Address> = {\n [ChainId.ethereum]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.base]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.binanceSmartChain]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n};\n\nexport const BTCE_VAULT_DECIMALS = 8;\n\nexport const BTCE_VAULT = {\n abi: BTCE_VAULT_ABI as Abi,\n decimals: BTCE_VAULT_DECIMALS,\n chains: BTCE_VAULT_CHAINS,\n contracts: BTCE_VAULT_CONTRACTS,\n} as const;\n\nexport enum Vault {\n Veda = 'veda',\n}\n\nexport const VaultNameMap = {\n [Vault.Veda]: 'Veda / Lombard DeFi Vault',\n} as const;\n\nexport const VAULTS = {\n [Vault.Veda]: {\n defaultChainId: VEDA_VAULT_DEFAULT_CHAIN_ID,\n chains: VEDA_VAULT_CHAINS,\n tokens: {\n [Token.LBTC]: VEDA_VAULT_CHAINS,\n [Token.BTCBinance]: [ChainId.binanceSmartChain],\n [Token.cbBTC]: [ChainId.ethereum, ChainId.base],\n [Token.eBTC]: [ChainId.ethereum],\n [Token.wBTC]: [ChainId.ethereum],\n [Token.wBTCN]: [ChainId.corn],\n },\n stakeAndBakeChains: VEDA_VAULT_STAKE_AND_BAKE_CHAINS,\n decimals: 8,\n vaultContract: {\n abi: VEDA_VAULT_ABI,\n address: VEDA_VAULT_CONTRACT,\n },\n accountantContract: {\n abi: VEDA_VAULT_ACCOUNTANT_ABI,\n address: VEDA_VAULT_ACCOUNTANT_CONTRACT,\n },\n lensContract: {\n abi: VEDA_VAULT_LENS_ABI,\n address: VEDA_VAULT_LENS_CONTRACT,\n },\n spenderContracts: VEDA_VAULT_SPENDER_CONTRACTS,\n tellerContracts: VEDA_VAULT_TELLER_CONTRACTS,\n withdrawQueueContracts: VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS,\n\n queueWithdrawDiscountPercent: '0.01',\n queueWithdrawDaysValid: '14',\n },\n} as const;\n"],"names":["VEDA_VAULT_CHAINS","ChainId","isVedaVaultChain","chainId","VEDA_VAULT_CHAIN_TO_NETWORK_MAP","NETWORK_TO_VEDA_VAULT_CHAIN_MAP","VEDA_VAULT_STAKE_AND_BAKE_CHAINS","isVedaVaultStakeAndBakeChain","VEDA_VAULT_DEFAULT_CHAIN_ID","VEDA_VAULT_CONTRACT","VEDA_VAULT_ACCOUNTANT_CONTRACT","VEDA_VAULT_LENS_CONTRACT","VEDA_VAULT_TELLER_CONTRACTS","VEDA_VAULT_TELLER_ABI","VEDA_VAULT_SPENDER_CONTRACTS","VEDA_VAULT_SPENDER_ABI","VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS","VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI","BTCE_VAULT_CHAINS","isBtceVaultChain","BTCE_VAULT_CONTRACTS","BTCE_VAULT_DECIMALS","BTCE_VAULT","BTCE_VAULT_ABI","Vault","VAULTS","Token","VEDA_VAULT_ABI","VEDA_VAULT_ACCOUNTANT_ABI","VEDA_VAULT_LENS_ABI"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-8IroHCdP.cjs","sources":["../../src/vaults/lib/config.ts"],"sourcesContent":["import { Abi, Address } from 'viem';\n\nimport { ChainId } from '../../common/chains';\nimport { Token } from '../../tokens/token-addresses';\nimport BTCE_VAULT_ABI from '../abi/BTCE_VAULT_ABI.json';\nimport VEDA_VAULT_ABI from '../abi/VEDA_VAULT_ABI.json';\nimport VEDA_VAULT_ACCOUNTANT_ABI from '../abi/VEDA_VAULT_ACCOUNTANT_ABI.json';\nimport VEDA_VAULT_BASE_ASSET_ABI from '../abi/VEDA_VAULT_BASE_ASSET_ABI.json';\nimport VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI from '../abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json';\nimport VEDA_VAULT_LENS_ABI from '../abi/VEDA_VAULT_LENS_ABI.json';\nimport VEDA_VAULT_SPENDER_ABI from '../abi/VEDA_VAULT_SPENDER_ABI.json';\nimport VEDA_VAULT_TELLER_ABI from '../abi/VEDA_VAULT_TELLER_ABI.json';\n\ntype ContractInfo = {\n abi: Abi;\n address: Address;\n chainId: ChainId;\n};\n\nexport const VEDA_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n ChainId.corn,\n] as const;\n\nexport type VedaVaultChain = (typeof VEDA_VAULT_CHAINS)[number];\nexport const isVedaVaultChain = (chainId: number): chainId is VedaVaultChain =>\n VEDA_VAULT_CHAINS.includes(chainId as VedaVaultChain);\n\nexport const VEDA_VAULT_CHAIN_TO_NETWORK_MAP: Record<VedaVaultChain, string> = {\n [ChainId.ethereum]: 'ethereum',\n [ChainId.base]: 'base',\n [ChainId.corn]: 'corn',\n [ChainId.binanceSmartChain]: 'bnb',\n};\n\nexport const NETWORK_TO_VEDA_VAULT_CHAIN_MAP: Record<string, VedaVaultChain> = {\n ethereum: ChainId.ethereum,\n base: ChainId.base,\n corn: ChainId.corn,\n bnb: ChainId.binanceSmartChain,\n};\n\n/** A list of chains where stake and bake is enabled */\nexport const VEDA_VAULT_STAKE_AND_BAKE_CHAINS = [\n ChainId.ethereum,\n // Testnets:\n ChainId.sepolia,\n];\nexport type VedaVaultStakeAndBakeChain =\n (typeof VEDA_VAULT_STAKE_AND_BAKE_CHAINS)[number];\nexport const isVedaVaultStakeAndBakeChain = (\n chainId: number,\n): chainId is VedaVaultStakeAndBakeChain =>\n VEDA_VAULT_STAKE_AND_BAKE_CHAINS.includes(\n chainId as VedaVaultStakeAndBakeChain,\n );\n\nexport const VEDA_VAULT_DEFAULT_CHAIN_ID: VedaVaultChain = ChainId.ethereum;\n\nexport const VEDA_VAULT_CONTRACT = '0x5401b8620E5FB570064CA9114fd1e135fd77D57c';\nexport const VEDA_VAULT_ACCOUNTANT_CONTRACT =\n '0x28634D0c5edC67CF2450E74deA49B90a4FF93dCE';\nexport const VEDA_VAULT_LENS_CONTRACT =\n '0x5232bc0F5999f8dA604c42E1748A13a170F94A1B';\n\nexport const VEDA_VAULT_TELLER_CONTRACTS: Record<VedaVaultChain, ContractInfo> =\n {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x4E8f5128F473C6948127f9Cbca474a6700F99bab',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.base,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.binanceSmartChain,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.corn,\n },\n } as const;\n\n/** Stake and bake contracts */\nexport const VEDA_VAULT_SPENDER_CONTRACTS: Record<\n VedaVaultStakeAndBakeChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0xC8bbF6153D7Ba105f1399D992ebd32B0541996ef',\n chainId: ChainId.ethereum,\n },\n // Testnets:\n [ChainId.sepolia]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0x77eD6a84fEF665156e81247ECbd43A847B8A6398',\n chainId: ChainId.sepolia,\n },\n} as const;\n\nexport const VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS: Record<\n VedaVaultChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n};\n\nexport const VEDA_VAULT_BASE_ASSET = {\n abi: VEDA_VAULT_BASE_ASSET_ABI,\n symbol: 'WBTC',\n displayName: 'wBTC',\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n decimals: 8,\n};\n\n/**\n * BTCe is an ERC4626 wrapper vault around the Veda vault's LBTCv share token.\n * Holders of BTCe shares have a claim on the underlying LBTCv position.\n *\n * The wrapper is currently a 1:1 pass-through (totalSupply == totalAssets,\n * convertToAssets(1e8) == 1e8 on every supported chain). Convert through\n * `convertToAssets` rather than naive summation in case fees or rebases ever\n * change the ratio.\n *\n * Currently deployed at the same address on every supported chain, but kept\n * in a Record so future deployments can diverge without an API change.\n */\nexport const BTCE_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n] as const;\n\nexport type BtceVaultChain = (typeof BTCE_VAULT_CHAINS)[number];\n\nexport const isBtceVaultChain = (chainId: number): chainId is BtceVaultChain =>\n BTCE_VAULT_CHAINS.includes(chainId as BtceVaultChain);\n\nexport const BTCE_VAULT_CONTRACTS: Record<BtceVaultChain, Address> = {\n [ChainId.ethereum]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.base]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.binanceSmartChain]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n};\n\nexport const BTCE_VAULT_DECIMALS = 8;\n\nexport const BTCE_VAULT = {\n abi: BTCE_VAULT_ABI as Abi,\n decimals: BTCE_VAULT_DECIMALS,\n chains: BTCE_VAULT_CHAINS,\n contracts: BTCE_VAULT_CONTRACTS,\n} as const;\n\nexport enum Vault {\n Veda = 'veda',\n}\n\nexport const VaultNameMap = {\n [Vault.Veda]: 'Veda / Lombard DeFi Vault',\n} as const;\n\nexport const VAULTS = {\n [Vault.Veda]: {\n defaultChainId: VEDA_VAULT_DEFAULT_CHAIN_ID,\n chains: VEDA_VAULT_CHAINS,\n tokens: {\n [Token.LBTC]: VEDA_VAULT_CHAINS,\n [Token.BTCBinance]: [ChainId.binanceSmartChain],\n [Token.cbBTC]: [ChainId.ethereum, ChainId.base],\n [Token.eBTC]: [ChainId.ethereum],\n [Token.wBTC]: [ChainId.ethereum],\n [Token.wBTCN]: [ChainId.corn],\n },\n stakeAndBakeChains: VEDA_VAULT_STAKE_AND_BAKE_CHAINS,\n decimals: 8,\n vaultContract: {\n abi: VEDA_VAULT_ABI,\n address: VEDA_VAULT_CONTRACT,\n },\n accountantContract: {\n abi: VEDA_VAULT_ACCOUNTANT_ABI,\n address: VEDA_VAULT_ACCOUNTANT_CONTRACT,\n },\n lensContract: {\n abi: VEDA_VAULT_LENS_ABI,\n address: VEDA_VAULT_LENS_CONTRACT,\n },\n spenderContracts: VEDA_VAULT_SPENDER_CONTRACTS,\n tellerContracts: VEDA_VAULT_TELLER_CONTRACTS,\n withdrawQueueContracts: VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS,\n\n queueWithdrawDiscountPercent: '0.01',\n queueWithdrawDaysValid: '14',\n },\n} as const;\n"],"names":["VEDA_VAULT_CHAINS","ChainId","isVedaVaultChain","chainId","VEDA_VAULT_CHAIN_TO_NETWORK_MAP","NETWORK_TO_VEDA_VAULT_CHAIN_MAP","VEDA_VAULT_STAKE_AND_BAKE_CHAINS","isVedaVaultStakeAndBakeChain","VEDA_VAULT_DEFAULT_CHAIN_ID","VEDA_VAULT_CONTRACT","VEDA_VAULT_ACCOUNTANT_CONTRACT","VEDA_VAULT_LENS_CONTRACT","VEDA_VAULT_TELLER_CONTRACTS","VEDA_VAULT_TELLER_ABI","VEDA_VAULT_SPENDER_CONTRACTS","VEDA_VAULT_SPENDER_ABI","VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS","VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI","BTCE_VAULT_CHAINS","isBtceVaultChain","BTCE_VAULT_CONTRACTS","BTCE_VAULT_DECIMALS","BTCE_VAULT","BTCE_VAULT_ABI","Vault","VAULTS","Token","VEDA_VAULT_ABI","VEDA_VAULT_ACCOUNTANT_ABI","VEDA_VAULT_LENS_ABI"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChainId as e, Token as n } from "./token-addresses-
|
|
1
|
+
import { ChainId as e, Token as n } from "./token-addresses-J-EuQVP6.js";
|
|
2
2
|
const u = /* @__PURE__ */ JSON.parse('[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"name":"AccessControlEnforcedDefaultAdminDelay","type":"error"},{"inputs":[],"name":"AccessControlEnforcedDefaultAdminRules","type":"error"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"AccessControlInvalidDefaultAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"ERC2612ExpiredSignature","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC2612InvalidSigner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxDeposit","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxMint","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxRedeem","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxWithdraw","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"name":"InvalidAccountNonce","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"uint256","name":"minimumMint","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"MinimumMintNotMet","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"RescueAssetAmountTooBig","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"UnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"uint256","name":"totalSharesSupply","type":"uint256"},{"internalType":"uint256","name":"assetBalance","type":"uint256"}],"name":"UnexpectedAssetBalance","type":"error"},{"inputs":[],"name":"VaultCannotBeChanged","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminDelayChangeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"newDelay","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"name":"DefaultAdminDelayChangeScheduled","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminTransferCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"name":"DefaultAdminTransferScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"}],"name":"NameAndSymbolChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakeAndBake","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"}],"name":"StakeAndBakeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakeAndBake","type":"address"}],"name":"StakeAndBakeRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract ITeller","name":"prevVal","type":"address"},{"indexed":true,"internalType":"contract ITeller","name":"newVal","type":"address"}],"name":"TellerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakeAndBake","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"addStakeAndBake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"beginDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"name":"changeDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITeller","name":"teller_","type":"address"}],"name":"changeTeller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"depositAmount","type":"uint256"},{"internalType":"bytes","name":"depositPayload","type":"bytes"}],"name":"deposit","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"minShareAmount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint48","name":"ownerDelay_","type":"uint48"},{"internalType":"address","name":"pauser_","type":"address"},{"internalType":"contract ITeller","name":"teller_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakeAndBake","type":"address"}],"name":"removeStakeAndBake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenContract","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rollbackDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]'), d = /* @__PURE__ */ JSON.parse('[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Enter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Exit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"uint256","name":"assetAmount","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"shareAmount","type":"uint256"}],"name":"enter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"uint256","name":"assetAmount","type":"uint256"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"shareAmount","type":"uint256"}],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hook","outputs":[{"internalType":"contract BeforeTransferHook","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"manage","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"manage","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_hook","type":"address"}],"name":"setBeforeTransferHook","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]'), o = /* @__PURE__ */ JSON.parse('[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"payoutAddress","type":"address"},{"internalType":"uint96","name":"startingExchangeRate","type":"uint96"},{"internalType":"address","name":"_base","type":"address"},{"internalType":"uint16","name":"allowedExchangeRateChangeUpper","type":"uint16"},{"internalType":"uint16","name":"allowedExchangeRateChangeLower","type":"uint16"},{"internalType":"uint24","name":"minimumUpdateDelayInSeconds","type":"uint24"},{"internalType":"uint16","name":"managementFee","type":"uint16"},{"internalType":"uint16","name":"performanceFee","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccountantWithRateProviders__ExchangeRateAboveHighwaterMark","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__LowerBoundTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__ManagementFeeTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__OnlyCallableByBoringVault","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__Paused","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__PerformanceFeeTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__UpdateDelayTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__UpperBoundTooSmall","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__ZeroFeesOwed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"oldDelay","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"newDelay","type":"uint24"}],"name":"DelayInSecondsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint96","name":"oldRate","type":"uint96"},{"indexed":false,"internalType":"uint96","name":"newRate","type":"uint96"},{"indexed":false,"internalType":"uint64","name":"currentTime","type":"uint64"}],"name":"ExchangeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeAsset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeesClaimed","type":"event"},{"anonymous":false,"inputs":[],"name":"HighwaterMarkReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldBound","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newBound","type":"uint16"}],"name":"LowerBoundUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newFee","type":"uint16"}],"name":"ManagementFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPayout","type":"address"},{"indexed":false,"internalType":"address","name":"newPayout","type":"address"}],"name":"PayoutAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newFee","type":"uint16"}],"name":"PerformanceFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"bool","name":"isPegged","type":"bool"},{"indexed":false,"internalType":"address","name":"rateProvider","type":"address"}],"name":"RateProviderUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldBound","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newBound","type":"uint16"}],"name":"UpperBoundUpdated","type":"event"},{"inputs":[],"name":"accountantState","outputs":[{"internalType":"address","name":"payoutAddress","type":"address"},{"internalType":"uint96","name":"highwaterMark","type":"uint96"},{"internalType":"uint128","name":"feesOwedInBase","type":"uint128"},{"internalType":"uint128","name":"totalSharesLastUpdate","type":"uint128"},{"internalType":"uint96","name":"exchangeRate","type":"uint96"},{"internalType":"uint16","name":"allowedExchangeRateChangeUpper","type":"uint16"},{"internalType":"uint16","name":"allowedExchangeRateChangeLower","type":"uint16"},{"internalType":"uint64","name":"lastUpdateTimestamp","type":"uint64"},{"internalType":"bool","name":"isPaused","type":"bool"},{"internalType":"uint24","name":"minimumUpdateDelayInSeconds","type":"uint24"},{"internalType":"uint16","name":"managementFee","type":"uint16"},{"internalType":"uint16","name":"performanceFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"base","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"feeAsset","type":"address"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRate","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"quote","type":"address"}],"name":"getRateInQuote","outputs":[{"internalType":"uint256","name":"rateInQuote","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"quote","type":"address"}],"name":"getRateInQuoteSafe","outputs":[{"internalType":"uint256","name":"rateInQuote","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRateSafe","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"name":"rateProviderData","outputs":[{"internalType":"bool","name":"isPeggedToBase","type":"bool"},{"internalType":"contract IRateProvider","name":"rateProvider","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resetHighwaterMark","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"bool","name":"isPeggedToBase","type":"bool"},{"internalType":"address","name":"rateProvider","type":"address"}],"name":"setRateProviderData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"minimumUpdateDelayInSeconds","type":"uint24"}],"name":"updateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint96","name":"newExchangeRate","type":"uint96"}],"name":"updateExchangeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"allowedExchangeRateChangeLower","type":"uint16"}],"name":"updateLower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"managementFee","type":"uint16"}],"name":"updateManagementFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payoutAddress","type":"address"}],"name":"updatePayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"performanceFee","type":"uint16"}],"name":"updatePerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"allowedExchangeRateChangeUpper","type":"uint16"}],"name":"updateUpper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract BoringVault","name":"","type":"address"}],"stateMutability":"view","type":"function"}]'), a = /* @__PURE__ */ JSON.parse('[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract Authority","name":"_auth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AtomicQueue__Paused","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__RequestDeadlineExceeded","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestAccountantOfferMismatch","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestCannotCastToUint88","type":"error"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"AtomicQueue__SafeRequestDeadlineExceeded","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestDiscountTooLarge","type":"error"},{"inputs":[{"internalType":"uint256","name":"offerAmount","type":"uint256"},{"internalType":"uint256","name":"offerAllowance","type":"uint256"}],"name":"AtomicQueue__SafeRequestInsufficientOfferAllowance","type":"error"},{"inputs":[{"internalType":"uint256","name":"offerAmount","type":"uint256"},{"internalType":"uint256","name":"offerBalance","type":"uint256"}],"name":"AtomicQueue__SafeRequestOfferAmountGreaterThanOfferBalance","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestOfferAmountZero","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__UserNotInSolve","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__UserRepeated","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__ZeroOfferAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"offerToken","type":"address"},{"indexed":true,"internalType":"address","name":"wantToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"offerAmountSpent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wantAmountReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AtomicRequestFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"offerToken","type":"address"},{"indexed":true,"internalType":"address","name":"wantToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AtomicRequestUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"inputs":[],"name":"MAX_DISCOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"}],"name":"getUserAtomicRequest","outputs":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"userRequest","type":"tuple"}],"name":"isAtomicRequestValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"userRequest","type":"tuple"},{"internalType":"contract AccountantWithRateProviders","name":"accountant","type":"address"},{"internalType":"uint256","name":"discount","type":"uint256"}],"name":"safeUpdateAtomicRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bytes","name":"runData","type":"bytes"},{"internalType":"address","name":"solver","type":"address"}],"name":"solve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"userRequest","type":"tuple"}],"name":"updateAtomicRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"contract ERC20","name":"","type":"address"},{"internalType":"contract ERC20","name":"","type":"address"}],"name":"userAtomicRequest","outputs":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"internalType":"address[]","name":"users","type":"address[]"}],"name":"viewSolveMetaData","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"flags","type":"uint8"},{"internalType":"uint256","name":"assetsToOffer","type":"uint256"},{"internalType":"uint256","name":"assetsForWant","type":"uint256"}],"internalType":"struct AtomicQueue.SolveMetaData[]","name":"metaData","type":"tuple[]"},{"internalType":"uint256","name":"totalAssetsForWant","type":"uint256"},{"internalType":"uint256","name":"totalAssetsToOffer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"internalType":"address[]","name":"users","type":"address[]"}],"name":"viewVerboseSolveMetaData","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"deadlineExceeded","type":"bool"},{"internalType":"bool","name":"zeroOfferAmount","type":"bool"},{"internalType":"bool","name":"insufficientOfferBalance","type":"bool"},{"internalType":"bool","name":"insufficientOfferAllowance","type":"bool"},{"internalType":"uint256","name":"assetsToOffer","type":"uint256"},{"internalType":"uint256","name":"assetsForWant","type":"uint256"}],"internalType":"struct AtomicQueue.VerboseSolveMetaData[]","name":"metaData","type":"tuple[]"},{"internalType":"uint256","name":"totalAssetsForWant","type":"uint256"},{"internalType":"uint256","name":"totalAssetsToOffer","type":"uint256"}],"stateMutability":"view","type":"function"}]'), l = [
|
|
3
3
|
{
|
|
4
4
|
inputs: [
|
|
@@ -389,4 +389,4 @@ export {
|
|
|
389
389
|
C as isVedaVaultChain,
|
|
390
390
|
E as isVedaVaultStakeAndBakeChain
|
|
391
391
|
};
|
|
392
|
-
//# sourceMappingURL=config-
|
|
392
|
+
//# sourceMappingURL=config-ej-tsP3s.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-C8BfN_9P.js","sources":["../../src/vaults/lib/config.ts"],"sourcesContent":["import { Abi, Address } from 'viem';\n\nimport { ChainId } from '../../common/chains';\nimport { Token } from '../../tokens/token-addresses';\nimport BTCE_VAULT_ABI from '../abi/BTCE_VAULT_ABI.json';\nimport VEDA_VAULT_ABI from '../abi/VEDA_VAULT_ABI.json';\nimport VEDA_VAULT_ACCOUNTANT_ABI from '../abi/VEDA_VAULT_ACCOUNTANT_ABI.json';\nimport VEDA_VAULT_BASE_ASSET_ABI from '../abi/VEDA_VAULT_BASE_ASSET_ABI.json';\nimport VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI from '../abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json';\nimport VEDA_VAULT_LENS_ABI from '../abi/VEDA_VAULT_LENS_ABI.json';\nimport VEDA_VAULT_SPENDER_ABI from '../abi/VEDA_VAULT_SPENDER_ABI.json';\nimport VEDA_VAULT_TELLER_ABI from '../abi/VEDA_VAULT_TELLER_ABI.json';\n\ntype ContractInfo = {\n abi: Abi;\n address: Address;\n chainId: ChainId;\n};\n\nexport const VEDA_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n ChainId.corn,\n] as const;\n\nexport type VedaVaultChain = (typeof VEDA_VAULT_CHAINS)[number];\nexport const isVedaVaultChain = (chainId: number): chainId is VedaVaultChain =>\n VEDA_VAULT_CHAINS.includes(chainId as VedaVaultChain);\n\nexport const VEDA_VAULT_CHAIN_TO_NETWORK_MAP: Record<VedaVaultChain, string> = {\n [ChainId.ethereum]: 'ethereum',\n [ChainId.base]: 'base',\n [ChainId.corn]: 'corn',\n [ChainId.binanceSmartChain]: 'bnb',\n};\n\nexport const NETWORK_TO_VEDA_VAULT_CHAIN_MAP: Record<string, VedaVaultChain> = {\n ethereum: ChainId.ethereum,\n base: ChainId.base,\n corn: ChainId.corn,\n bnb: ChainId.binanceSmartChain,\n};\n\n/** A list of chains where stake and bake is enabled */\nexport const VEDA_VAULT_STAKE_AND_BAKE_CHAINS = [\n ChainId.ethereum,\n // Testnets:\n ChainId.sepolia,\n];\nexport type VedaVaultStakeAndBakeChain =\n (typeof VEDA_VAULT_STAKE_AND_BAKE_CHAINS)[number];\nexport const isVedaVaultStakeAndBakeChain = (\n chainId: number,\n): chainId is VedaVaultStakeAndBakeChain =>\n VEDA_VAULT_STAKE_AND_BAKE_CHAINS.includes(\n chainId as VedaVaultStakeAndBakeChain,\n );\n\nexport const VEDA_VAULT_DEFAULT_CHAIN_ID: VedaVaultChain = ChainId.ethereum;\n\nexport const VEDA_VAULT_CONTRACT = '0x5401b8620E5FB570064CA9114fd1e135fd77D57c';\nexport const VEDA_VAULT_ACCOUNTANT_CONTRACT =\n '0x28634D0c5edC67CF2450E74deA49B90a4FF93dCE';\nexport const VEDA_VAULT_LENS_CONTRACT =\n '0x5232bc0F5999f8dA604c42E1748A13a170F94A1B';\n\nexport const VEDA_VAULT_TELLER_CONTRACTS: Record<VedaVaultChain, ContractInfo> =\n {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x4E8f5128F473C6948127f9Cbca474a6700F99bab',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.base,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.binanceSmartChain,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.corn,\n },\n } as const;\n\n/** Stake and bake contracts */\nexport const VEDA_VAULT_SPENDER_CONTRACTS: Record<\n VedaVaultStakeAndBakeChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0xC8bbF6153D7Ba105f1399D992ebd32B0541996ef',\n chainId: ChainId.ethereum,\n },\n // Testnets:\n [ChainId.sepolia]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0x77eD6a84fEF665156e81247ECbd43A847B8A6398',\n chainId: ChainId.sepolia,\n },\n} as const;\n\nexport const VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS: Record<\n VedaVaultChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n};\n\nexport const VEDA_VAULT_BASE_ASSET = {\n abi: VEDA_VAULT_BASE_ASSET_ABI,\n symbol: 'WBTC',\n displayName: 'wBTC',\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n decimals: 8,\n};\n\n/**\n * BTCe is an ERC4626 wrapper vault around the Veda vault's LBTCv share token.\n * Holders of BTCe shares have a claim on the underlying LBTCv position.\n *\n * The wrapper is currently a 1:1 pass-through (totalSupply == totalAssets,\n * convertToAssets(1e8) == 1e8 on every supported chain). Convert through\n * `convertToAssets` rather than naive summation in case fees or rebases ever\n * change the ratio.\n *\n * Currently deployed at the same address on every supported chain, but kept\n * in a Record so future deployments can diverge without an API change.\n */\nexport const BTCE_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n] as const;\n\nexport type BtceVaultChain = (typeof BTCE_VAULT_CHAINS)[number];\n\nexport const isBtceVaultChain = (chainId: number): chainId is BtceVaultChain =>\n BTCE_VAULT_CHAINS.includes(chainId as BtceVaultChain);\n\nexport const BTCE_VAULT_CONTRACTS: Record<BtceVaultChain, Address> = {\n [ChainId.ethereum]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.base]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.binanceSmartChain]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n};\n\nexport const BTCE_VAULT_DECIMALS = 8;\n\nexport const BTCE_VAULT = {\n abi: BTCE_VAULT_ABI as Abi,\n decimals: BTCE_VAULT_DECIMALS,\n chains: BTCE_VAULT_CHAINS,\n contracts: BTCE_VAULT_CONTRACTS,\n} as const;\n\nexport enum Vault {\n Veda = 'veda',\n}\n\nexport const VaultNameMap = {\n [Vault.Veda]: 'Veda / Lombard DeFi Vault',\n} as const;\n\nexport const VAULTS = {\n [Vault.Veda]: {\n defaultChainId: VEDA_VAULT_DEFAULT_CHAIN_ID,\n chains: VEDA_VAULT_CHAINS,\n tokens: {\n [Token.LBTC]: VEDA_VAULT_CHAINS,\n [Token.BTCBinance]: [ChainId.binanceSmartChain],\n [Token.cbBTC]: [ChainId.ethereum, ChainId.base],\n [Token.eBTC]: [ChainId.ethereum],\n [Token.wBTC]: [ChainId.ethereum],\n [Token.wBTCN]: [ChainId.corn],\n },\n stakeAndBakeChains: VEDA_VAULT_STAKE_AND_BAKE_CHAINS,\n decimals: 8,\n vaultContract: {\n abi: VEDA_VAULT_ABI,\n address: VEDA_VAULT_CONTRACT,\n },\n accountantContract: {\n abi: VEDA_VAULT_ACCOUNTANT_ABI,\n address: VEDA_VAULT_ACCOUNTANT_CONTRACT,\n },\n lensContract: {\n abi: VEDA_VAULT_LENS_ABI,\n address: VEDA_VAULT_LENS_CONTRACT,\n },\n spenderContracts: VEDA_VAULT_SPENDER_CONTRACTS,\n tellerContracts: VEDA_VAULT_TELLER_CONTRACTS,\n withdrawQueueContracts: VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS,\n\n queueWithdrawDiscountPercent: '0.01',\n queueWithdrawDaysValid: '14',\n },\n} as const;\n"],"names":["VEDA_VAULT_CHAINS","ChainId","isVedaVaultChain","chainId","VEDA_VAULT_CHAIN_TO_NETWORK_MAP","NETWORK_TO_VEDA_VAULT_CHAIN_MAP","VEDA_VAULT_STAKE_AND_BAKE_CHAINS","isVedaVaultStakeAndBakeChain","VEDA_VAULT_DEFAULT_CHAIN_ID","VEDA_VAULT_CONTRACT","VEDA_VAULT_ACCOUNTANT_CONTRACT","VEDA_VAULT_LENS_CONTRACT","VEDA_VAULT_TELLER_CONTRACTS","VEDA_VAULT_TELLER_ABI","VEDA_VAULT_SPENDER_CONTRACTS","VEDA_VAULT_SPENDER_ABI","VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS","VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI","BTCE_VAULT_CHAINS","isBtceVaultChain","BTCE_VAULT_CONTRACTS","BTCE_VAULT_DECIMALS","BTCE_VAULT","BTCE_VAULT_ABI","Vault","VAULTS","Token","VEDA_VAULT_ABI","VEDA_VAULT_ACCOUNTANT_ABI","VEDA_VAULT_LENS_ABI"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-ej-tsP3s.js","sources":["../../src/vaults/lib/config.ts"],"sourcesContent":["import { Abi, Address } from 'viem';\n\nimport { ChainId } from '../../common/chains';\nimport { Token } from '../../tokens/token-addresses';\nimport BTCE_VAULT_ABI from '../abi/BTCE_VAULT_ABI.json';\nimport VEDA_VAULT_ABI from '../abi/VEDA_VAULT_ABI.json';\nimport VEDA_VAULT_ACCOUNTANT_ABI from '../abi/VEDA_VAULT_ACCOUNTANT_ABI.json';\nimport VEDA_VAULT_BASE_ASSET_ABI from '../abi/VEDA_VAULT_BASE_ASSET_ABI.json';\nimport VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI from '../abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json';\nimport VEDA_VAULT_LENS_ABI from '../abi/VEDA_VAULT_LENS_ABI.json';\nimport VEDA_VAULT_SPENDER_ABI from '../abi/VEDA_VAULT_SPENDER_ABI.json';\nimport VEDA_VAULT_TELLER_ABI from '../abi/VEDA_VAULT_TELLER_ABI.json';\n\ntype ContractInfo = {\n abi: Abi;\n address: Address;\n chainId: ChainId;\n};\n\nexport const VEDA_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n ChainId.corn,\n] as const;\n\nexport type VedaVaultChain = (typeof VEDA_VAULT_CHAINS)[number];\nexport const isVedaVaultChain = (chainId: number): chainId is VedaVaultChain =>\n VEDA_VAULT_CHAINS.includes(chainId as VedaVaultChain);\n\nexport const VEDA_VAULT_CHAIN_TO_NETWORK_MAP: Record<VedaVaultChain, string> = {\n [ChainId.ethereum]: 'ethereum',\n [ChainId.base]: 'base',\n [ChainId.corn]: 'corn',\n [ChainId.binanceSmartChain]: 'bnb',\n};\n\nexport const NETWORK_TO_VEDA_VAULT_CHAIN_MAP: Record<string, VedaVaultChain> = {\n ethereum: ChainId.ethereum,\n base: ChainId.base,\n corn: ChainId.corn,\n bnb: ChainId.binanceSmartChain,\n};\n\n/** A list of chains where stake and bake is enabled */\nexport const VEDA_VAULT_STAKE_AND_BAKE_CHAINS = [\n ChainId.ethereum,\n // Testnets:\n ChainId.sepolia,\n];\nexport type VedaVaultStakeAndBakeChain =\n (typeof VEDA_VAULT_STAKE_AND_BAKE_CHAINS)[number];\nexport const isVedaVaultStakeAndBakeChain = (\n chainId: number,\n): chainId is VedaVaultStakeAndBakeChain =>\n VEDA_VAULT_STAKE_AND_BAKE_CHAINS.includes(\n chainId as VedaVaultStakeAndBakeChain,\n );\n\nexport const VEDA_VAULT_DEFAULT_CHAIN_ID: VedaVaultChain = ChainId.ethereum;\n\nexport const VEDA_VAULT_CONTRACT = '0x5401b8620E5FB570064CA9114fd1e135fd77D57c';\nexport const VEDA_VAULT_ACCOUNTANT_CONTRACT =\n '0x28634D0c5edC67CF2450E74deA49B90a4FF93dCE';\nexport const VEDA_VAULT_LENS_CONTRACT =\n '0x5232bc0F5999f8dA604c42E1748A13a170F94A1B';\n\nexport const VEDA_VAULT_TELLER_CONTRACTS: Record<VedaVaultChain, ContractInfo> =\n {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x4E8f5128F473C6948127f9Cbca474a6700F99bab',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.base,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.binanceSmartChain,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.corn,\n },\n } as const;\n\n/** Stake and bake contracts */\nexport const VEDA_VAULT_SPENDER_CONTRACTS: Record<\n VedaVaultStakeAndBakeChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0xC8bbF6153D7Ba105f1399D992ebd32B0541996ef',\n chainId: ChainId.ethereum,\n },\n // Testnets:\n [ChainId.sepolia]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0x77eD6a84fEF665156e81247ECbd43A847B8A6398',\n chainId: ChainId.sepolia,\n },\n} as const;\n\nexport const VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS: Record<\n VedaVaultChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n};\n\nexport const VEDA_VAULT_BASE_ASSET = {\n abi: VEDA_VAULT_BASE_ASSET_ABI,\n symbol: 'WBTC',\n displayName: 'wBTC',\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n decimals: 8,\n};\n\n/**\n * BTCe is an ERC4626 wrapper vault around the Veda vault's LBTCv share token.\n * Holders of BTCe shares have a claim on the underlying LBTCv position.\n *\n * The wrapper is currently a 1:1 pass-through (totalSupply == totalAssets,\n * convertToAssets(1e8) == 1e8 on every supported chain). Convert through\n * `convertToAssets` rather than naive summation in case fees or rebases ever\n * change the ratio.\n *\n * Currently deployed at the same address on every supported chain, but kept\n * in a Record so future deployments can diverge without an API change.\n */\nexport const BTCE_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n] as const;\n\nexport type BtceVaultChain = (typeof BTCE_VAULT_CHAINS)[number];\n\nexport const isBtceVaultChain = (chainId: number): chainId is BtceVaultChain =>\n BTCE_VAULT_CHAINS.includes(chainId as BtceVaultChain);\n\nexport const BTCE_VAULT_CONTRACTS: Record<BtceVaultChain, Address> = {\n [ChainId.ethereum]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.base]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n [ChainId.binanceSmartChain]: '0x3a4baaBf4DC9910596821615e848f0e6545762F3',\n};\n\nexport const BTCE_VAULT_DECIMALS = 8;\n\nexport const BTCE_VAULT = {\n abi: BTCE_VAULT_ABI as Abi,\n decimals: BTCE_VAULT_DECIMALS,\n chains: BTCE_VAULT_CHAINS,\n contracts: BTCE_VAULT_CONTRACTS,\n} as const;\n\nexport enum Vault {\n Veda = 'veda',\n}\n\nexport const VaultNameMap = {\n [Vault.Veda]: 'Veda / Lombard DeFi Vault',\n} as const;\n\nexport const VAULTS = {\n [Vault.Veda]: {\n defaultChainId: VEDA_VAULT_DEFAULT_CHAIN_ID,\n chains: VEDA_VAULT_CHAINS,\n tokens: {\n [Token.LBTC]: VEDA_VAULT_CHAINS,\n [Token.BTCBinance]: [ChainId.binanceSmartChain],\n [Token.cbBTC]: [ChainId.ethereum, ChainId.base],\n [Token.eBTC]: [ChainId.ethereum],\n [Token.wBTC]: [ChainId.ethereum],\n [Token.wBTCN]: [ChainId.corn],\n },\n stakeAndBakeChains: VEDA_VAULT_STAKE_AND_BAKE_CHAINS,\n decimals: 8,\n vaultContract: {\n abi: VEDA_VAULT_ABI,\n address: VEDA_VAULT_CONTRACT,\n },\n accountantContract: {\n abi: VEDA_VAULT_ACCOUNTANT_ABI,\n address: VEDA_VAULT_ACCOUNTANT_CONTRACT,\n },\n lensContract: {\n abi: VEDA_VAULT_LENS_ABI,\n address: VEDA_VAULT_LENS_CONTRACT,\n },\n spenderContracts: VEDA_VAULT_SPENDER_CONTRACTS,\n tellerContracts: VEDA_VAULT_TELLER_CONTRACTS,\n withdrawQueueContracts: VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS,\n\n queueWithdrawDiscountPercent: '0.01',\n queueWithdrawDaysValid: '14',\n },\n} as const;\n"],"names":["VEDA_VAULT_CHAINS","ChainId","isVedaVaultChain","chainId","VEDA_VAULT_CHAIN_TO_NETWORK_MAP","NETWORK_TO_VEDA_VAULT_CHAIN_MAP","VEDA_VAULT_STAKE_AND_BAKE_CHAINS","isVedaVaultStakeAndBakeChain","VEDA_VAULT_DEFAULT_CHAIN_ID","VEDA_VAULT_CONTRACT","VEDA_VAULT_ACCOUNTANT_CONTRACT","VEDA_VAULT_LENS_CONTRACT","VEDA_VAULT_TELLER_CONTRACTS","VEDA_VAULT_TELLER_ABI","VEDA_VAULT_SPENDER_CONTRACTS","VEDA_VAULT_SPENDER_ABI","VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS","VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI","BTCE_VAULT_CHAINS","isBtceVaultChain","BTCE_VAULT_CONTRACTS","BTCE_VAULT_DECIMALS","BTCE_VAULT","BTCE_VAULT_ABI","Vault","VAULTS","Token","VEDA_VAULT_ABI","VEDA_VAULT_ACCOUNTANT_ABI","VEDA_VAULT_LENS_ABI"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as A } from "./index-CfcQ_g3t.js";
|
|
2
|
-
import { Token as p, ChainId as L } from "./token-addresses-
|
|
3
|
-
import { VEDA_VAULT_STAKE_AND_BAKE_CHAINS as m, VEDA_VAULT_SPENDER_CONTRACTS as _ } from "./config-
|
|
2
|
+
import { Token as p, ChainId as L } from "./token-addresses-J-EuQVP6.js";
|
|
3
|
+
import { VEDA_VAULT_STAKE_AND_BAKE_CHAINS as m, VEDA_VAULT_SPENDER_CONTRACTS as _ } from "./config-ej-tsP3s.js";
|
|
4
4
|
const r = {
|
|
5
5
|
// Bitcoin assets
|
|
6
6
|
BTC: "BTC",
|
|
@@ -169,4 +169,4 @@ export {
|
|
|
169
169
|
N as getSupportedProtocols,
|
|
170
170
|
O as isAssetId
|
|
171
171
|
};
|
|
172
|
-
//# sourceMappingURL=defi-registry-
|
|
172
|
+
//# sourceMappingURL=defi-registry-DLP7nuRn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defi-registry-CD8EUcNu.js","sources":["../../src/core/assets/types.ts","../../src/defi/defi-registry.ts"],"sourcesContent":["/**\n * Asset Types\n *\n * Type definitions for the asset catalog.\n * Designed to be JSON-serializable for S3 hosting.\n *\n * @module core/assets/types\n */\n\nimport type { Env } from '@lombard.finance/sdk-common';\n\nimport type { Chain } from '../chains';\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Asset Identifiers\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Asset identifiers for all supported assets in the Lombard ecosystem.\n *\n * Naming convention:\n * - Native assets: BTC, ETH, SOL, ZEC, XRP, DOGE\n * - L-Assets (Lombard wrapped): LBTC, L-ETH, L-ZEC, L-XRP, L-DOGE, L-SOL\n * - Wrapped assets: WBTC, BTC.b (Bitcoin on EVM chains)\n */\nexport const AssetId = {\n // Bitcoin assets\n BTC: 'BTC',\n BTCb: 'BTC.b',\n LBTC: 'LBTC',\n BTCK: 'BTCK',\n cbBTC: 'cbBTC',\n WBTC: 'WBTC',\n WBTCN: 'wBTCN',\n eBTC: 'eBTC',\n BTCBinance: 'BTCB',\n\n // Solana assets\n SOL: 'SOL',\n L_SOL: 'L-SOL',\n\n // Sui assets\n SUI: 'SUI',\n L_SUI: 'L-SUI',\n\n // Ethereum assets\n ETH: 'ETH',\n L_ETH: 'L-ETH',\n\n // Zcash assets\n ZEC: 'ZEC',\n L_ZEC: 'L-ZEC',\n\n // XRP assets\n XRP: 'XRP',\n L_XRP: 'L-XRP',\n\n // Dogecoin assets\n DOGE: 'DOGE',\n L_DOGE: 'L-DOGE',\n\n // Stablecoin assets (for BSA)\n USDC: 'USDC',\n USDT: 'USDT',\n DAI: 'DAI',\n} as const;\n\nexport type AssetId = (typeof AssetId)[keyof typeof AssetId];\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Catalog Types\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Deployment entry for a specific asset on specific chain(s)\n */\nexport interface Deployment {\n /** Environment (prod, testnet, stage, dev) */\n env: Env;\n /** Single chain deployment */\n chain?: Chain;\n /** Multi-chain deployment (same address on multiple chains) */\n chains?: Chain[];\n /** Token contract address */\n address: string;\n /** Asset router contract address */\n assetRouter?: string;\n /** Bridge adapter contract address */\n bridgeAdapter?: string;\n /** Public market maker contract address */\n publicMarketMaker?: string;\n}\n\n/**\n * Asset entry with metadata and deployments\n */\nexport interface AssetEntry {\n /** Token decimals */\n decimals: number;\n /** Token symbol */\n symbol: string;\n /** Token display name */\n name?: string;\n /** All deployments for this asset */\n deployments: Deployment[];\n}\n\n/**\n * Complete asset catalog structure\n */\nexport interface AssetCatalog {\n /** Schema version */\n version: string;\n /** Asset definitions keyed by AssetId */\n assets: Partial<Record<AssetId, AssetEntry>>;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Utility Functions\n// ═══════════════════════════════════════════════════════════════════════════\n\n/** Convert AssetId value to its key name */\nexport function assetValueToKey(value: string): string {\n return (\n Object.keys(AssetId).find(\n key => AssetId[key as keyof typeof AssetId] === value,\n ) ?? ''\n );\n}\n\n/** Type guard to check if a value is a valid AssetId */\nexport function isAssetId(value: unknown): value is AssetId {\n return (\n typeof value === 'string' &&\n Object.values(AssetId).includes(value as AssetId)\n );\n}\n\n/** Get asset display name */\nexport function getAssetDisplayName(assetId: AssetId): string {\n return assetId;\n}\n","/**\n * DeFi Stake & Bake Registry\n *\n * Provides a strongly typed registry of staking integrations so that\n * protocol/token/env/chain support is declarative and composable.\n */\n\nimport { Env } from '@lombard.finance/sdk-common';\nimport { Abi } from 'viem';\n\nimport { ChainId } from '../common/chains';\nimport { ContractInfo } from '../common/contract-info';\nimport { AssetId } from '../core/assets';\nimport { Token } from '../tokens/token-addresses';\nimport { SILO_VAULT_SPENDER_ABI } from '../vaults/abi';\nimport {\n VEDA_VAULT_SPENDER_CONTRACTS,\n VEDA_VAULT_STAKE_AND_BAKE_CHAINS,\n VedaVaultStakeAndBakeChain,\n} from '../vaults/lib/config';\n\n/**\n * Approval mode for stake and bake operations.\n * - `permit`: Off-chain EIP-2612 signature (gasless for user, backend pays gas)\n * - `approve`: On-chain ERC-20 approval transaction (user pays gas)\n */\nexport type ApprovalMode = 'permit' | 'approve';\n\nexport type StakeAndBakeAmountStrategy = 'identity' | 'btcToLbtc';\nexport type StakeAndBakeDeadlineStrategy = 'expiry' | 'zero';\nexport type StakeAndBakeNonceStrategy = 'chain' | 'skip';\n\nexport interface StakeAndBakeStrategyConfig {\n amountStrategy: StakeAndBakeAmountStrategy;\n approval: {\n mode: ApprovalMode;\n domainName: string;\n domainVersion: string;\n deadlineStrategy: StakeAndBakeDeadlineStrategy;\n nonceStrategy: StakeAndBakeNonceStrategy;\n };\n spenderContract: ContractInfo;\n}\n\nexport interface StakeAndBakeStrategy extends StakeAndBakeStrategyConfig {\n protocol: DefiProtocol;\n token: StakeAndBakeToken;\n env: Env;\n chainId: ChainId;\n}\n\ntype ChainStrategyMap = Partial<Record<ChainId, StakeAndBakeStrategyConfig>>;\ntype EnvStrategyMap = Partial<Record<Env, ChainStrategyMap>>;\ntype TokenStrategyMap = Partial<Record<StakeAndBakeToken, EnvStrategyMap>>;\nexport type StakeAndBakeRegistry = Record<DefiProtocol, TokenStrategyMap>;\n\nconst ALL_ENVS = Object.values(Env) as Env[];\n\n// Use single source of truth from vaults/lib/config.ts\n// VEDA_VAULT_STAKE_AND_BAKE_CHAINS is imported and used directly below\n\nexport const SILO_VAULT_SPENDER_CONTRACT_GASTALD_FUJI: `0x${string}` =\n '0xFe1e76D9e065e879A9D1914482f0F13d85F39877';\n\nfunction mapChains<const C extends readonly ChainId[]>(\n chains: C,\n factory: (chain: C[number]) => StakeAndBakeStrategyConfig,\n): ChainStrategyMap {\n return chains.reduce<ChainStrategyMap>((acc, chain) => {\n acc[chain] = factory(chain);\n return acc;\n }, {} as ChainStrategyMap);\n}\n\nfunction mapEnvs<const E extends readonly Env[]>(\n envs: E,\n factory: (env: E[number]) => ChainStrategyMap,\n): EnvStrategyMap {\n return envs.reduce<EnvStrategyMap>((acc, env) => {\n acc[env] = factory(env);\n return acc;\n }, {} as EnvStrategyMap);\n}\n\nfunction getVedaSpenderContract(\n chainId: VedaVaultStakeAndBakeChain,\n): ContractInfo {\n const contract = VEDA_VAULT_SPENDER_CONTRACTS[chainId];\n if (!contract) {\n throw new Error(`Missing Veda spender contract for chain ${chainId}`);\n }\n return contract;\n}\n\nconst _DefiRegistryTokens = {\n LBTC: Token.LBTC,\n BTCb: Token.BTCb,\n BTC: 'BTC',\n} as const;\n\nexport type DefiRegistryToken =\n (typeof _DefiRegistryTokens)[keyof typeof _DefiRegistryTokens];\n\n/**\n * DeFi Protocol identifiers - SINGLE SOURCE OF TRUTH\n *\n * These are the canonical protocol identifiers used throughout the SDK.\n * All other protocol references should use these values.\n */\nexport const DefiProtocol = {\n Veda: 'veda',\n Silo: 'silo',\n} as const;\n\nexport type DefiProtocol = (typeof DefiProtocol)[keyof typeof DefiProtocol];\n\nexport const DefiProtocols = {\n [DefiProtocol.Veda]: {\n name: 'Lombard DeFi Vault',\n url: 'https://lombard.finance',\n },\n [DefiProtocol.Silo]: {\n name: 'Silo Finance Vault',\n url: 'https://silo.finance',\n },\n} as const;\n\nconst VEDA_LBTC_PERMIT_APPROVAL: StakeAndBakeStrategyConfig['approval'] = {\n mode: 'permit',\n domainName: 'Lombard Staked Bitcoin',\n domainVersion: '1',\n deadlineStrategy: 'expiry',\n nonceStrategy: 'chain',\n};\n\nconst SILO_BTCB_APPROVE_APPROVAL: StakeAndBakeStrategyConfig['approval'] = {\n mode: 'approve',\n domainName: 'Bitcoin',\n domainVersion: '1',\n deadlineStrategy: 'zero',\n nonceStrategy: 'skip',\n};\n\n/**\n * DeFi Registry: Token approval configurations by vault, token, env, and chain.\n * \n * TODO: Update the format of this registry to match asset catalog and chain catalog\n */\nexport const DEFI_REGISTRY: StakeAndBakeRegistry = {\n [DefiProtocol.Veda]: {\n [Token.LBTC]: mapEnvs(ALL_ENVS, () =>\n mapChains(VEDA_VAULT_STAKE_AND_BAKE_CHAINS, chain => ({\n amountStrategy: 'identity',\n approval: { ...VEDA_LBTC_PERMIT_APPROVAL },\n spenderContract: getVedaSpenderContract(chain),\n })),\n ),\n BTC: mapEnvs(ALL_ENVS, () =>\n mapChains(VEDA_VAULT_STAKE_AND_BAKE_CHAINS, chain => ({\n amountStrategy: 'btcToLbtc',\n approval: { ...VEDA_LBTC_PERMIT_APPROVAL },\n spenderContract: getVedaSpenderContract(chain),\n })),\n ),\n },\n [DefiProtocol.Silo]: {\n [Token.BTCb]: {\n // Silo on Avalanche Fuji is only available on testnet (Gastald backend)\n // Stage environment does not support Avalanche Fuji\n [Env.testnet]: mapChains([ChainId.avalancheFuji], chain => ({\n amountStrategy: 'identity',\n approval: { ...SILO_BTCB_APPROVE_APPROVAL },\n spenderContract: {\n abi: SILO_VAULT_SPENDER_ABI as Abi,\n address: SILO_VAULT_SPENDER_CONTRACT_GASTALD_FUJI,\n chainId: chain,\n },\n })),\n },\n },\n};\n\n/**\n * Type for a token that can be used with stake and bake.\n * Includes both Token enum values and virtual tokens like 'BTC'.\n */\nexport type StakeAndBakeToken = DefiRegistryToken;\n\n/**\n * Get supported chains for a protocol/token/env combination.\n *\n * @example\n * ```typescript\n * // Get chains supporting Veda with BTC token on testnet\n * const chains = getStakeAndBakeSupportedChains(DefiProtocol.Veda, 'BTC', Env.testnet);\n * // Returns: [ChainId.binanceSmartChainTestnet, ChainId.holesky]\n * ```\n */\nexport function getStakeAndBakeSupportedChains(\n protocol: DefiProtocol,\n token: StakeAndBakeToken,\n env: Env,\n): ChainId[] {\n const protocolRegistry = DEFI_REGISTRY[protocol];\n if (!protocolRegistry) return [];\n\n const tokenRegistry =\n protocolRegistry[token as keyof typeof protocolRegistry];\n if (!tokenRegistry) return [];\n\n const envRegistry = tokenRegistry[env];\n if (!envRegistry) return [];\n\n return Object.keys(envRegistry).map(Number) as ChainId[];\n}\n\n/**\n * Get all supported protocols for stake and bake (regardless of environment).\n */\nexport function getSupportedProtocols(assetId: AssetId): DefiProtocol[] {\n return Object.entries(DEFI_REGISTRY)\n .filter(([_, tokenMap]) => assetId in tokenMap)\n .map(([protocol]) => protocol as DefiProtocol);\n}\n\n/**\n * Get available protocols for a specific environment and token.\n *\n * This filters protocols based on what is actually configured in the DEFI_REGISTRY\n * for the given environment. Use this to determine which protocol options should\n * be shown in the UI.\n *\n * @example\n * ```typescript\n * // Get protocols available for LBTC in production\n * const prodProtocols = getAvailableProtocols(AssetId.LBTC, Env.prod);\n * // Returns: ['veda'] - Silo is only on Avalanche which has no mainnet prod config\n *\n * // Get protocols available for BTCb in testnet\n * const testnetProtocols = getAvailableProtocols(AssetId.BTCb, Env.testnet);\n * // Returns: ['silo'] - Silo is available on Avalanche Fuji in testnet\n * ```\n */\nexport function getAvailableProtocols(\n assetId: AssetId,\n env: Env,\n): DefiProtocol[] {\n // Map asset IDs to registry tokens\n const tokenMap: Partial<Record<AssetId, StakeAndBakeToken[]>> = {\n [AssetId.LBTC]: [Token.LBTC, 'BTC'],\n [AssetId.BTCb]: [Token.BTCb],\n [AssetId.BTC]: ['BTC'],\n };\n\n const tokens = tokenMap[assetId];\n if (!tokens) return [];\n\n const availableProtocols: Set<DefiProtocol> = new Set();\n\n for (const [protocol, tokenStrategyMap] of Object.entries(DEFI_REGISTRY)) {\n for (const token of tokens) {\n const tokenRegistry = tokenStrategyMap[token as keyof typeof tokenStrategyMap];\n if (!tokenRegistry) continue;\n\n const envRegistry = tokenRegistry[env];\n if (!envRegistry || Object.keys(envRegistry).length === 0) continue;\n\n availableProtocols.add(protocol as DefiProtocol);\n }\n }\n\n return Array.from(availableProtocols);\n}\n\n/**\n * Get available protocols with their metadata for UI display.\n *\n * @example\n * ```typescript\n * const protocols = getAvailableProtocolsWithMetadata(AssetId.LBTC, Env.prod);\n * // Returns: [{ value: 'veda', label: 'Lombard DeFi Vault', url: '...' }]\n * ```\n */\nexport function getAvailableProtocolsWithMetadata(\n assetId: AssetId,\n env: Env,\n): Array<{ value: DefiProtocol; label: string; url: string }> {\n const protocols = getAvailableProtocols(assetId, env);\n \n return protocols.map(protocol => ({\n value: protocol,\n label: DefiProtocols[protocol]?.name ?? protocol,\n url: DefiProtocols[protocol]?.url ?? '',\n }));\n}\n"],"names":["AssetId","assetValueToKey","value","key","isAssetId","ALL_ENVS","Env","SILO_VAULT_SPENDER_CONTRACT_GASTALD_FUJI","mapChains","chains","factory","acc","chain","mapEnvs","envs","env","getVedaSpenderContract","chainId","contract","VEDA_VAULT_SPENDER_CONTRACTS","Token","DefiProtocol","DefiProtocols","VEDA_LBTC_PERMIT_APPROVAL","SILO_BTCB_APPROVE_APPROVAL","DEFI_REGISTRY","VEDA_VAULT_STAKE_AND_BAKE_CHAINS","ChainId","SILO_VAULT_SPENDER_ABI","getStakeAndBakeSupportedChains","protocol","token","protocolRegistry","tokenRegistry","envRegistry","getSupportedProtocols","assetId","_","tokenMap","getAvailableProtocols","tokens","availableProtocols","tokenStrategyMap","getAvailableProtocolsWithMetadata","_a","_b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"defi-registry-DLP7nuRn.js","sources":["../../src/core/assets/types.ts","../../src/defi/defi-registry.ts"],"sourcesContent":["/**\n * Asset Types\n *\n * Type definitions for the asset catalog.\n * Designed to be JSON-serializable for S3 hosting.\n *\n * @module core/assets/types\n */\n\nimport type { Env } from '@lombard.finance/sdk-common';\n\nimport type { Chain } from '../chains';\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Asset Identifiers\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Asset identifiers for all supported assets in the Lombard ecosystem.\n *\n * Naming convention:\n * - Native assets: BTC, ETH, SOL, ZEC, XRP, DOGE\n * - L-Assets (Lombard wrapped): LBTC, L-ETH, L-ZEC, L-XRP, L-DOGE, L-SOL\n * - Wrapped assets: WBTC, BTC.b (Bitcoin on EVM chains)\n */\nexport const AssetId = {\n // Bitcoin assets\n BTC: 'BTC',\n BTCb: 'BTC.b',\n LBTC: 'LBTC',\n BTCK: 'BTCK',\n cbBTC: 'cbBTC',\n WBTC: 'WBTC',\n WBTCN: 'wBTCN',\n eBTC: 'eBTC',\n BTCBinance: 'BTCB',\n\n // Solana assets\n SOL: 'SOL',\n L_SOL: 'L-SOL',\n\n // Sui assets\n SUI: 'SUI',\n L_SUI: 'L-SUI',\n\n // Ethereum assets\n ETH: 'ETH',\n L_ETH: 'L-ETH',\n\n // Zcash assets\n ZEC: 'ZEC',\n L_ZEC: 'L-ZEC',\n\n // XRP assets\n XRP: 'XRP',\n L_XRP: 'L-XRP',\n\n // Dogecoin assets\n DOGE: 'DOGE',\n L_DOGE: 'L-DOGE',\n\n // Stablecoin assets (for BSA)\n USDC: 'USDC',\n USDT: 'USDT',\n DAI: 'DAI',\n} as const;\n\nexport type AssetId = (typeof AssetId)[keyof typeof AssetId];\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Catalog Types\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Deployment entry for a specific asset on specific chain(s)\n */\nexport interface Deployment {\n /** Environment (prod, testnet, stage, dev) */\n env: Env;\n /** Single chain deployment */\n chain?: Chain;\n /** Multi-chain deployment (same address on multiple chains) */\n chains?: Chain[];\n /** Token contract address */\n address: string;\n /** Asset router contract address */\n assetRouter?: string;\n /** Bridge adapter contract address */\n bridgeAdapter?: string;\n /** Public market maker contract address */\n publicMarketMaker?: string;\n}\n\n/**\n * Asset entry with metadata and deployments\n */\nexport interface AssetEntry {\n /** Token decimals */\n decimals: number;\n /** Token symbol */\n symbol: string;\n /** Token display name */\n name?: string;\n /** All deployments for this asset */\n deployments: Deployment[];\n}\n\n/**\n * Complete asset catalog structure\n */\nexport interface AssetCatalog {\n /** Schema version */\n version: string;\n /** Asset definitions keyed by AssetId */\n assets: Partial<Record<AssetId, AssetEntry>>;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Utility Functions\n// ═══════════════════════════════════════════════════════════════════════════\n\n/** Convert AssetId value to its key name */\nexport function assetValueToKey(value: string): string {\n return (\n Object.keys(AssetId).find(\n key => AssetId[key as keyof typeof AssetId] === value,\n ) ?? ''\n );\n}\n\n/** Type guard to check if a value is a valid AssetId */\nexport function isAssetId(value: unknown): value is AssetId {\n return (\n typeof value === 'string' &&\n Object.values(AssetId).includes(value as AssetId)\n );\n}\n\n/** Get asset display name */\nexport function getAssetDisplayName(assetId: AssetId): string {\n return assetId;\n}\n","/**\n * DeFi Stake & Bake Registry\n *\n * Provides a strongly typed registry of staking integrations so that\n * protocol/token/env/chain support is declarative and composable.\n */\n\nimport { Env } from '@lombard.finance/sdk-common';\nimport { Abi } from 'viem';\n\nimport { ChainId } from '../common/chains';\nimport { ContractInfo } from '../common/contract-info';\nimport { AssetId } from '../core/assets';\nimport { Token } from '../tokens/token-addresses';\nimport { SILO_VAULT_SPENDER_ABI } from '../vaults/abi';\nimport {\n VEDA_VAULT_SPENDER_CONTRACTS,\n VEDA_VAULT_STAKE_AND_BAKE_CHAINS,\n VedaVaultStakeAndBakeChain,\n} from '../vaults/lib/config';\n\n/**\n * Approval mode for stake and bake operations.\n * - `permit`: Off-chain EIP-2612 signature (gasless for user, backend pays gas)\n * - `approve`: On-chain ERC-20 approval transaction (user pays gas)\n */\nexport type ApprovalMode = 'permit' | 'approve';\n\nexport type StakeAndBakeAmountStrategy = 'identity' | 'btcToLbtc';\nexport type StakeAndBakeDeadlineStrategy = 'expiry' | 'zero';\nexport type StakeAndBakeNonceStrategy = 'chain' | 'skip';\n\nexport interface StakeAndBakeStrategyConfig {\n amountStrategy: StakeAndBakeAmountStrategy;\n approval: {\n mode: ApprovalMode;\n domainName: string;\n domainVersion: string;\n deadlineStrategy: StakeAndBakeDeadlineStrategy;\n nonceStrategy: StakeAndBakeNonceStrategy;\n };\n spenderContract: ContractInfo;\n}\n\nexport interface StakeAndBakeStrategy extends StakeAndBakeStrategyConfig {\n protocol: DefiProtocol;\n token: StakeAndBakeToken;\n env: Env;\n chainId: ChainId;\n}\n\ntype ChainStrategyMap = Partial<Record<ChainId, StakeAndBakeStrategyConfig>>;\ntype EnvStrategyMap = Partial<Record<Env, ChainStrategyMap>>;\ntype TokenStrategyMap = Partial<Record<StakeAndBakeToken, EnvStrategyMap>>;\nexport type StakeAndBakeRegistry = Record<DefiProtocol, TokenStrategyMap>;\n\nconst ALL_ENVS = Object.values(Env) as Env[];\n\n// Use single source of truth from vaults/lib/config.ts\n// VEDA_VAULT_STAKE_AND_BAKE_CHAINS is imported and used directly below\n\nexport const SILO_VAULT_SPENDER_CONTRACT_GASTALD_FUJI: `0x${string}` =\n '0xFe1e76D9e065e879A9D1914482f0F13d85F39877';\n\nfunction mapChains<const C extends readonly ChainId[]>(\n chains: C,\n factory: (chain: C[number]) => StakeAndBakeStrategyConfig,\n): ChainStrategyMap {\n return chains.reduce<ChainStrategyMap>((acc, chain) => {\n acc[chain] = factory(chain);\n return acc;\n }, {} as ChainStrategyMap);\n}\n\nfunction mapEnvs<const E extends readonly Env[]>(\n envs: E,\n factory: (env: E[number]) => ChainStrategyMap,\n): EnvStrategyMap {\n return envs.reduce<EnvStrategyMap>((acc, env) => {\n acc[env] = factory(env);\n return acc;\n }, {} as EnvStrategyMap);\n}\n\nfunction getVedaSpenderContract(\n chainId: VedaVaultStakeAndBakeChain,\n): ContractInfo {\n const contract = VEDA_VAULT_SPENDER_CONTRACTS[chainId];\n if (!contract) {\n throw new Error(`Missing Veda spender contract for chain ${chainId}`);\n }\n return contract;\n}\n\nconst _DefiRegistryTokens = {\n LBTC: Token.LBTC,\n BTCb: Token.BTCb,\n BTC: 'BTC',\n} as const;\n\nexport type DefiRegistryToken =\n (typeof _DefiRegistryTokens)[keyof typeof _DefiRegistryTokens];\n\n/**\n * DeFi Protocol identifiers - SINGLE SOURCE OF TRUTH\n *\n * These are the canonical protocol identifiers used throughout the SDK.\n * All other protocol references should use these values.\n */\nexport const DefiProtocol = {\n Veda: 'veda',\n Silo: 'silo',\n} as const;\n\nexport type DefiProtocol = (typeof DefiProtocol)[keyof typeof DefiProtocol];\n\nexport const DefiProtocols = {\n [DefiProtocol.Veda]: {\n name: 'Lombard DeFi Vault',\n url: 'https://lombard.finance',\n },\n [DefiProtocol.Silo]: {\n name: 'Silo Finance Vault',\n url: 'https://silo.finance',\n },\n} as const;\n\nconst VEDA_LBTC_PERMIT_APPROVAL: StakeAndBakeStrategyConfig['approval'] = {\n mode: 'permit',\n domainName: 'Lombard Staked Bitcoin',\n domainVersion: '1',\n deadlineStrategy: 'expiry',\n nonceStrategy: 'chain',\n};\n\nconst SILO_BTCB_APPROVE_APPROVAL: StakeAndBakeStrategyConfig['approval'] = {\n mode: 'approve',\n domainName: 'Bitcoin',\n domainVersion: '1',\n deadlineStrategy: 'zero',\n nonceStrategy: 'skip',\n};\n\n/**\n * DeFi Registry: Token approval configurations by vault, token, env, and chain.\n * \n * TODO: Update the format of this registry to match asset catalog and chain catalog\n */\nexport const DEFI_REGISTRY: StakeAndBakeRegistry = {\n [DefiProtocol.Veda]: {\n [Token.LBTC]: mapEnvs(ALL_ENVS, () =>\n mapChains(VEDA_VAULT_STAKE_AND_BAKE_CHAINS, chain => ({\n amountStrategy: 'identity',\n approval: { ...VEDA_LBTC_PERMIT_APPROVAL },\n spenderContract: getVedaSpenderContract(chain),\n })),\n ),\n BTC: mapEnvs(ALL_ENVS, () =>\n mapChains(VEDA_VAULT_STAKE_AND_BAKE_CHAINS, chain => ({\n amountStrategy: 'btcToLbtc',\n approval: { ...VEDA_LBTC_PERMIT_APPROVAL },\n spenderContract: getVedaSpenderContract(chain),\n })),\n ),\n },\n [DefiProtocol.Silo]: {\n [Token.BTCb]: {\n // Silo on Avalanche Fuji is only available on testnet (Gastald backend)\n // Stage environment does not support Avalanche Fuji\n [Env.testnet]: mapChains([ChainId.avalancheFuji], chain => ({\n amountStrategy: 'identity',\n approval: { ...SILO_BTCB_APPROVE_APPROVAL },\n spenderContract: {\n abi: SILO_VAULT_SPENDER_ABI as Abi,\n address: SILO_VAULT_SPENDER_CONTRACT_GASTALD_FUJI,\n chainId: chain,\n },\n })),\n },\n },\n};\n\n/**\n * Type for a token that can be used with stake and bake.\n * Includes both Token enum values and virtual tokens like 'BTC'.\n */\nexport type StakeAndBakeToken = DefiRegistryToken;\n\n/**\n * Get supported chains for a protocol/token/env combination.\n *\n * @example\n * ```typescript\n * // Get chains supporting Veda with BTC token on testnet\n * const chains = getStakeAndBakeSupportedChains(DefiProtocol.Veda, 'BTC', Env.testnet);\n * // Returns: [ChainId.binanceSmartChainTestnet, ChainId.holesky]\n * ```\n */\nexport function getStakeAndBakeSupportedChains(\n protocol: DefiProtocol,\n token: StakeAndBakeToken,\n env: Env,\n): ChainId[] {\n const protocolRegistry = DEFI_REGISTRY[protocol];\n if (!protocolRegistry) return [];\n\n const tokenRegistry =\n protocolRegistry[token as keyof typeof protocolRegistry];\n if (!tokenRegistry) return [];\n\n const envRegistry = tokenRegistry[env];\n if (!envRegistry) return [];\n\n return Object.keys(envRegistry).map(Number) as ChainId[];\n}\n\n/**\n * Get all supported protocols for stake and bake (regardless of environment).\n */\nexport function getSupportedProtocols(assetId: AssetId): DefiProtocol[] {\n return Object.entries(DEFI_REGISTRY)\n .filter(([_, tokenMap]) => assetId in tokenMap)\n .map(([protocol]) => protocol as DefiProtocol);\n}\n\n/**\n * Get available protocols for a specific environment and token.\n *\n * This filters protocols based on what is actually configured in the DEFI_REGISTRY\n * for the given environment. Use this to determine which protocol options should\n * be shown in the UI.\n *\n * @example\n * ```typescript\n * // Get protocols available for LBTC in production\n * const prodProtocols = getAvailableProtocols(AssetId.LBTC, Env.prod);\n * // Returns: ['veda'] - Silo is only on Avalanche which has no mainnet prod config\n *\n * // Get protocols available for BTCb in testnet\n * const testnetProtocols = getAvailableProtocols(AssetId.BTCb, Env.testnet);\n * // Returns: ['silo'] - Silo is available on Avalanche Fuji in testnet\n * ```\n */\nexport function getAvailableProtocols(\n assetId: AssetId,\n env: Env,\n): DefiProtocol[] {\n // Map asset IDs to registry tokens\n const tokenMap: Partial<Record<AssetId, StakeAndBakeToken[]>> = {\n [AssetId.LBTC]: [Token.LBTC, 'BTC'],\n [AssetId.BTCb]: [Token.BTCb],\n [AssetId.BTC]: ['BTC'],\n };\n\n const tokens = tokenMap[assetId];\n if (!tokens) return [];\n\n const availableProtocols: Set<DefiProtocol> = new Set();\n\n for (const [protocol, tokenStrategyMap] of Object.entries(DEFI_REGISTRY)) {\n for (const token of tokens) {\n const tokenRegistry = tokenStrategyMap[token as keyof typeof tokenStrategyMap];\n if (!tokenRegistry) continue;\n\n const envRegistry = tokenRegistry[env];\n if (!envRegistry || Object.keys(envRegistry).length === 0) continue;\n\n availableProtocols.add(protocol as DefiProtocol);\n }\n }\n\n return Array.from(availableProtocols);\n}\n\n/**\n * Get available protocols with their metadata for UI display.\n *\n * @example\n * ```typescript\n * const protocols = getAvailableProtocolsWithMetadata(AssetId.LBTC, Env.prod);\n * // Returns: [{ value: 'veda', label: 'Lombard DeFi Vault', url: '...' }]\n * ```\n */\nexport function getAvailableProtocolsWithMetadata(\n assetId: AssetId,\n env: Env,\n): Array<{ value: DefiProtocol; label: string; url: string }> {\n const protocols = getAvailableProtocols(assetId, env);\n \n return protocols.map(protocol => ({\n value: protocol,\n label: DefiProtocols[protocol]?.name ?? protocol,\n url: DefiProtocols[protocol]?.url ?? '',\n }));\n}\n"],"names":["AssetId","assetValueToKey","value","key","isAssetId","ALL_ENVS","Env","SILO_VAULT_SPENDER_CONTRACT_GASTALD_FUJI","mapChains","chains","factory","acc","chain","mapEnvs","envs","env","getVedaSpenderContract","chainId","contract","VEDA_VAULT_SPENDER_CONTRACTS","Token","DefiProtocol","DefiProtocols","VEDA_LBTC_PERMIT_APPROVAL","SILO_BTCB_APPROVE_APPROVAL","DEFI_REGISTRY","VEDA_VAULT_STAKE_AND_BAKE_CHAINS","ChainId","SILO_VAULT_SPENDER_ABI","getStakeAndBakeSupportedChains","protocol","token","protocolRegistry","tokenRegistry","envRegistry","getSupportedProtocols","assetId","_","tokenMap","getAvailableProtocols","tokens","availableProtocols","tokenStrategyMap","getAvailableProtocolsWithMetadata","_a","_b"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const C=require("./index-BKzxeh1Y.cjs"),r=require("./token-addresses-DvY-Mw7b.cjs"),d=require("./config-ow9X5H0c.cjs"),p={BTC:"BTC",BTCb:"BTC.b",LBTC:"LBTC",BTCK:"BTCK",cbBTC:"cbBTC",WBTC:"WBTC",WBTCN:"wBTCN",eBTC:"eBTC",BTCBinance:"BTCB",SOL:"SOL",L_SOL:"L-SOL",SUI:"SUI",L_SUI:"L-SUI",ETH:"ETH",L_ETH:"L-ETH",ZEC:"ZEC",L_ZEC:"L-ZEC",XRP:"XRP",L_XRP:"L-XRP",DOGE:"DOGE",L_DOGE:"L-DOGE",USDC:"USDC",USDT:"USDT",DAI:"DAI"};function E(e){return Object.keys(p).find(t=>p[t]===e)??""}function L(e){return typeof e=="string"&&Object.values(p).includes(e)}const k=JSON.parse('[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"CallerNotSelf","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeGreaterThanMaximum","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidPermitPayload","type":"error"},{"inputs":[],"name":"NoDepositorSet","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"WrongAmount","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroDepositAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"bytes","name":"customError","type":"bytes"}],"name":"BatchStakeAndBakeReverted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"}],"name":"DepositorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"FeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newGasLimit","type":"uint256"}],"name":"GasLimitChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"CLAIMER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct StakeAndBakeNativeToken.StakeAndBakeData[]","name":"data","type":"tuple[]"}],"name":"batchStakeAndBake","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakeAndBakeDepositor","outputs":[{"internalType":"contract IDepositor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakeAndBakeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenAndAdapter","outputs":[{"internalType":"contract IERC20","name":"","type":"address"},{"internalType":"contract INativeLBTC","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"nativeLbtc_","type":"address"},{"internalType":"contract INativeLBTC","name":"adapter_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"operator_","type":"address"},{"internalType":"uint256","name":"fee_","type":"uint256"},{"internalType":"address","name":"claimer_","type":"address"},{"internalType":"address","name":"pauser_","type":"address"},{"internalType":"uint256","name":"gasLimit_","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"depositor","type":"address"}],"name":"setDepositor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gasLimit","type":"uint256"}],"name":"setGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct StakeAndBakeNativeToken.StakeAndBakeData","name":"data","type":"tuple"}],"name":"stakeAndBake","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct StakeAndBakeNativeToken.StakeAndBakeData","name":"data","type":"tuple"}],"name":"stakeAndBakeInternal","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]'),v=Object.freeze(Object.defineProperty({__proto__:null,default:k},Symbol.toStringTag,{value:"Module"})),T=Object.values(C.r),R="0xFe1e76D9e065e879A9D1914482f0F13d85F39877";function u(e,t){return e.reduce((a,n)=>(a[n]=t(n),a),{})}function b(e,t){return e.reduce((a,n)=>(a[n]=t(n),a),{})}function f(e){const t=d.VEDA_VAULT_SPENDER_CONTRACTS[e];if(!t)throw new Error(`Missing Veda spender contract for chain ${e}`);return t}r.Token.LBTC,r.Token.BTCb;const o={Veda:"veda",Silo:"silo"},l={[o.Veda]:{name:"Lombard DeFi Vault",url:"https://lombard.finance"},[o.Silo]:{name:"Silo Finance Vault",url:"https://silo.finance"}},A={mode:"permit",domainName:"Lombard Staked Bitcoin",domainVersion:"1",deadlineStrategy:"expiry",nonceStrategy:"chain"},g={mode:"approve",domainName:"Bitcoin",domainVersion:"1",deadlineStrategy:"zero",nonceStrategy:"skip"},y={[o.Veda]:{[r.Token.LBTC]:b(T,()=>u(d.VEDA_VAULT_STAKE_AND_BAKE_CHAINS,e=>({amountStrategy:"identity",approval:{...A},spenderContract:f(e)}))),BTC:b(T,()=>u(d.VEDA_VAULT_STAKE_AND_BAKE_CHAINS,e=>({amountStrategy:"btcToLbtc",approval:{...A},spenderContract:f(e)})))},[o.Silo]:{[r.Token.BTCb]:{[C.r.testnet]:u([r.ChainId.avalancheFuji],e=>({amountStrategy:"identity",approval:{...g},spenderContract:{abi:v,address:R,chainId:e}}))}}};function I(e,t,a){const n=y[e];if(!n)return[];const s=n[t];if(!s)return[];const i=s[a];return i?Object.keys(i).map(Number):[]}function P(e){return Object.entries(y).filter(([t,a])=>e in a).map(([t])=>t)}function S(e,t){const n={[p.LBTC]:[r.Token.LBTC,"BTC"],[p.BTCb]:[r.Token.BTCb],[p.BTC]:["BTC"]}[e];if(!n)return[];const s=new Set;for(const[i,B]of Object.entries(y))for(const _ of n){const m=B[_];if(!m)continue;const c=m[t];!c||Object.keys(c).length===0||s.add(i)}return Array.from(s)}function D(e,t){return S(e,t).map(n=>{var s,i;return{value:n,label:((s=l[n])==null?void 0:s.name)??n,url:((i=l[n])==null?void 0:i.url)??""}})}exports.AssetId=p;exports.DEFI_REGISTRY=y;exports.DefiProtocol=o;exports.DefiProtocols=l;exports.assetValueToKey=E;exports.getAvailableProtocols=S;exports.getAvailableProtocolsWithMetadata=D;exports.getStakeAndBakeSupportedChains=I;exports.getSupportedProtocols=P;exports.isAssetId=L;
|
|
2
|
-
//# sourceMappingURL=defi-registry-
|
|
1
|
+
"use strict";const C=require("./index-BKzxeh1Y.cjs"),r=require("./token-addresses-C7H9E4qz.cjs"),d=require("./config-8IroHCdP.cjs"),p={BTC:"BTC",BTCb:"BTC.b",LBTC:"LBTC",BTCK:"BTCK",cbBTC:"cbBTC",WBTC:"WBTC",WBTCN:"wBTCN",eBTC:"eBTC",BTCBinance:"BTCB",SOL:"SOL",L_SOL:"L-SOL",SUI:"SUI",L_SUI:"L-SUI",ETH:"ETH",L_ETH:"L-ETH",ZEC:"ZEC",L_ZEC:"L-ZEC",XRP:"XRP",L_XRP:"L-XRP",DOGE:"DOGE",L_DOGE:"L-DOGE",USDC:"USDC",USDT:"USDT",DAI:"DAI"};function E(e){return Object.keys(p).find(t=>p[t]===e)??""}function L(e){return typeof e=="string"&&Object.values(p).includes(e)}const k=JSON.parse('[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"CallerNotSelf","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeGreaterThanMaximum","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidPermitPayload","type":"error"},{"inputs":[],"name":"NoDepositorSet","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"WrongAmount","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroDepositAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"bytes","name":"customError","type":"bytes"}],"name":"BatchStakeAndBakeReverted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"}],"name":"DepositorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"FeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newGasLimit","type":"uint256"}],"name":"GasLimitChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"CLAIMER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct StakeAndBakeNativeToken.StakeAndBakeData[]","name":"data","type":"tuple[]"}],"name":"batchStakeAndBake","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakeAndBakeDepositor","outputs":[{"internalType":"contract IDepositor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakeAndBakeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenAndAdapter","outputs":[{"internalType":"contract IERC20","name":"","type":"address"},{"internalType":"contract INativeLBTC","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"nativeLbtc_","type":"address"},{"internalType":"contract INativeLBTC","name":"adapter_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"operator_","type":"address"},{"internalType":"uint256","name":"fee_","type":"uint256"},{"internalType":"address","name":"claimer_","type":"address"},{"internalType":"address","name":"pauser_","type":"address"},{"internalType":"uint256","name":"gasLimit_","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"depositor","type":"address"}],"name":"setDepositor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gasLimit","type":"uint256"}],"name":"setGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct StakeAndBakeNativeToken.StakeAndBakeData","name":"data","type":"tuple"}],"name":"stakeAndBake","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct StakeAndBakeNativeToken.StakeAndBakeData","name":"data","type":"tuple"}],"name":"stakeAndBakeInternal","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]'),v=Object.freeze(Object.defineProperty({__proto__:null,default:k},Symbol.toStringTag,{value:"Module"})),T=Object.values(C.r),R="0xFe1e76D9e065e879A9D1914482f0F13d85F39877";function u(e,t){return e.reduce((a,n)=>(a[n]=t(n),a),{})}function b(e,t){return e.reduce((a,n)=>(a[n]=t(n),a),{})}function f(e){const t=d.VEDA_VAULT_SPENDER_CONTRACTS[e];if(!t)throw new Error(`Missing Veda spender contract for chain ${e}`);return t}r.Token.LBTC,r.Token.BTCb;const o={Veda:"veda",Silo:"silo"},l={[o.Veda]:{name:"Lombard DeFi Vault",url:"https://lombard.finance"},[o.Silo]:{name:"Silo Finance Vault",url:"https://silo.finance"}},A={mode:"permit",domainName:"Lombard Staked Bitcoin",domainVersion:"1",deadlineStrategy:"expiry",nonceStrategy:"chain"},g={mode:"approve",domainName:"Bitcoin",domainVersion:"1",deadlineStrategy:"zero",nonceStrategy:"skip"},y={[o.Veda]:{[r.Token.LBTC]:b(T,()=>u(d.VEDA_VAULT_STAKE_AND_BAKE_CHAINS,e=>({amountStrategy:"identity",approval:{...A},spenderContract:f(e)}))),BTC:b(T,()=>u(d.VEDA_VAULT_STAKE_AND_BAKE_CHAINS,e=>({amountStrategy:"btcToLbtc",approval:{...A},spenderContract:f(e)})))},[o.Silo]:{[r.Token.BTCb]:{[C.r.testnet]:u([r.ChainId.avalancheFuji],e=>({amountStrategy:"identity",approval:{...g},spenderContract:{abi:v,address:R,chainId:e}}))}}};function I(e,t,a){const n=y[e];if(!n)return[];const s=n[t];if(!s)return[];const i=s[a];return i?Object.keys(i).map(Number):[]}function P(e){return Object.entries(y).filter(([t,a])=>e in a).map(([t])=>t)}function S(e,t){const n={[p.LBTC]:[r.Token.LBTC,"BTC"],[p.BTCb]:[r.Token.BTCb],[p.BTC]:["BTC"]}[e];if(!n)return[];const s=new Set;for(const[i,B]of Object.entries(y))for(const _ of n){const m=B[_];if(!m)continue;const c=m[t];!c||Object.keys(c).length===0||s.add(i)}return Array.from(s)}function D(e,t){return S(e,t).map(n=>{var s,i;return{value:n,label:((s=l[n])==null?void 0:s.name)??n,url:((i=l[n])==null?void 0:i.url)??""}})}exports.AssetId=p;exports.DEFI_REGISTRY=y;exports.DefiProtocol=o;exports.DefiProtocols=l;exports.assetValueToKey=E;exports.getAvailableProtocols=S;exports.getAvailableProtocolsWithMetadata=D;exports.getStakeAndBakeSupportedChains=I;exports.getSupportedProtocols=P;exports.isAssetId=L;
|
|
2
|
+
//# sourceMappingURL=defi-registry-QwFZR4oK.cjs.map
|