UNPKG

@yfi/sdk

Version:

Interaction framework for the yearn protocol

123 lines (122 loc) 3.5 kB
import { Address, Integer, Locale } from "./common"; import { EarningsDayData } from "./custom/earnings"; import { Apy } from "./custom/vault"; import { VaultStrategiesMetadata } from "./strategy"; /** * Lens-defined metadata for Yearn Vaults (v1 & v2) */ export interface VaultMetadata { allowZapIn?: boolean; allowZapOut?: boolean; apy?: Apy; controller: Address; defaultDisplayToken: Address; depositLimit: Integer; depositsDisabled?: boolean; displayIcon: string; displayName: string; emergencyShutdown: boolean; hideIfNoDeposits: boolean; historicEarnings?: EarningsDayData[]; latestVaultAddress: Address; migrationAvailable: boolean; migrationContract?: Address; migrationTargetVault?: Address; pricePerShare: Integer; strategies?: VaultStrategiesMetadata; symbol?: string; totalAssets: Integer; totalSupply: Integer; vaultDetailPageAssets?: string[]; vaultNameOverride?: string; withdrawalsDisabled?: boolean; zapInWith?: string; zapOutWith?: string; } /** * Lens-defined metadata for an IronBank market. */ export interface IronBankMarketMetadata { totalSuppliedUsdc: Integer; totalBorrowedUsdc: Integer; lendAprBips: Integer; borrowAprBips: Integer; lendApyBips: Integer; borrowApyBips: Integer; liquidity: Integer; liquidityUsdc: Integer; totalCollateralTokens: Integer; collateralFactor: Integer; collateralCap: Integer; isActive: boolean; reserveFactor: Integer; exchangeRate: Integer; } /** * Key Value representation of metadata names and types. * Used mainly to provide correct type-guards for asset types. */ export declare type Metadata = { VAULT_V2: VaultMetadata; VAULT_V1: VaultMetadata; IRON_BANK_MARKET: IronBankMarketMetadata; }; /** * Union type of all the existing Metadata types. */ export declare type TypeId = keyof Metadata; export interface LocalizedProperties { name?: string; description: string; } export declare type Localization = Partial<Record<Locale, LocalizedProperties>>; /** * Token metadata from yearn-meta */ export interface TokenMetadata { address: Address; categories?: string[]; description: string; website: string; tokenIconOverride?: string; tokenSymbolOverride?: string; tokenNameOverride?: string; localization: Localization; } export interface StrategyMetadata { name: string; description: string; address: Address; protocols: string[]; } export interface StrategiesMetadata { name: string; description: string; localization: Localization; addresses: Address[]; protocols: string[]; } export interface VaultMetadataOverrides { address: Address; allowZapIn?: boolean; allowZapOut?: boolean; apyOverride?: number; apyTypeOverride?: string; comment?: string; depositsDisabled?: boolean; displayName?: string; hideAlways?: boolean; migrationAvailable?: boolean; migrationContract?: Address; migrationTargetVault?: Address; order?: number; retired?: boolean; useVaultDataAsDefault?: boolean; vaultDetailPageAssets?: string[]; vaultIconOverride?: string; vaultNameOverride?: string; vaultSymbolOverride?: string; withdrawalsDisabled?: boolean; zapInWith?: string; zapOutWith?: string; }