@byzantine/vault-sdk
Version:
Byzantine Vault SDK for creating and managing vaults on Ethereum for restaking strategies
50 lines (49 loc) • 1.88 kB
TypeScript
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>;
}