UNPKG

@byzantine/vault-sdk

Version:

Byzantine Vault SDK for creating and managing vaults on Ethereum for restaking strategies

50 lines (49 loc) 1.88 kB
import { ethers } from "ethers"; import { RestakingProtocol } from "../../types"; export declare class VaultTypeClient { private provider; constructor(provider: ethers.Provider); /** * Get the ERC20 contract instance * @param vaultAddress The address of the vault * @returns The ERC20 contract instance */ private getContractWithSymABI; /** * Get the ERC20 contract instance with EigenLayer ABI * @param vaultAddress The address of the vault * @returns The ERC20 contract instance */ private getContractWithEigenABI; /** * Get the ERC20 contract instance with SuperVault ABI * @param vaultAddress The address of the vault * @returns The ERC20 contract instance */ private getContractWithSuperABI; /** * Check if a vault is a Symbiotic vault * @param vaultAddress The address of the vault to check * @returns True if the vault is a Symbiotic vault, false otherwise */ isSymbioticVault(vaultAddress: string): Promise<boolean>; /** * Check if a vault is an EigenLayer vault * @param vaultAddress The address of the vault to check * @returns True if the vault is an EigenLayer vault, false otherwise */ isEigenVault(vaultAddress: string): Promise<boolean>; /** * Check if a vault is a SuperVault * SuperVaults may have properties of both Symbiotic and EigenLayer vaults * @param vaultAddress The address of the vault to check * @returns True if the vault is a SuperVault, false otherwise */ isSupervault(vaultAddress: string): Promise<boolean>; /** * Get the type of vault * @param vaultAddress The address of the vault to check * @returns The type of the vault as defined in RestakingProtocol */ getVaultType(vaultAddress: string): Promise<RestakingProtocol | undefined>; }