UNPKG

@yfi/sdk

Version:

Interaction framework for the yearn protocol

140 lines (139 loc) 5.67 kB
import { CallOverrides, PopulatedTransaction } from "@ethersproject/contracts"; import { JsonRpcSigner, TransactionResponse } from "@ethersproject/providers"; import { ChainId } from "../chain"; import { ServiceInterface } from "../common"; import { Address, Balance, DepositOptions, Integer, Token, TokenAllowance, VaultDynamic, VaultMetadataOverrides, VaultStatic, VaultsUserSummary, VaultUserMetadata, WithdrawOptions } from "../types"; import { Position, Vault } from "../types"; export declare class VaultInterface<T extends ChainId> extends ServiceInterface<T> { private cachedFetcherGet; private cachedFetcherGetDynamic; private cachedFetcherTokens; /** * Get all yearn vaults. * @param addresses filter, if not provided all positions are returned * @param overrides * @returns */ get(addresses?: Address[], overrides?: CallOverrides): Promise<Vault[]>; /** * Get static part of yearn vaults. * @param addresses filter, if not provided all positions are returned * @param overrides * @returns */ getStatic(addresses?: Address[], overrides?: CallOverrides): Promise<VaultStatic[]>; /** * Get dynamic part of yearn vaults. * @param addresses filter, if not provided all positions are returned * @param overrides * @returns */ getDynamic(addresses?: Address[], vaultMetadataOverrides?: VaultMetadataOverrides[], overrides?: CallOverrides): Promise<VaultDynamic[]>; /** * Get yearn vault positions for a particular address. * @param address * @param addresses filter, if not provided all positions are returned * @param overrides * @returns */ positionsOf(address: Address, addresses?: Address[], overrides?: CallOverrides): Promise<Position[]>; /** * Get the Vaults User Summary for a particular address. * @param address * @returns */ summaryOf(address: Address): Promise<VaultsUserSummary>; /** * Get the Vault User Metadata for a particular address. * @param address * @param addresses filter, if provided only those addresses' Vault User Metadata are returned * @returns */ metadataOf(address: Address, addresses?: Address[]): Promise<VaultUserMetadata[]>; /** * Get all yearn vault's underlying token balances for a particular address. * @param address * @param overrides * @returns */ balances(address: Address, overrides?: CallOverrides): Promise<Balance[]>; /** * Get all yearn vault's underlying tokens. * @param overrides * @returns */ tokens(overrides?: CallOverrides): Promise<Token[]>; /** * Fetch the token amount that has been allowed to be used for deposits * @param accountAddress * @param vaultAddress * @param tokenAddress * @returns TokenAllowance */ getDepositAllowance(accountAddress: Address, vaultAddress: Address, tokenAddress: Address): Promise<TokenAllowance>; /** * Fetch the token amount that has been allowed to be used for withdraw * @param accountAddress * @param vaultAddress * @param tokenAddress * @returns TokenAllowance */ getWithdrawAllowance(accountAddress: Address, vaultAddress: Address, tokenAddress: Address): Promise<TokenAllowance>; /** * Approve the token amount to allow to be used for deposits * @param accountAddress * @param vaultAddress * @param tokenAddress * @param amount * @param overrides * @returns TransactionResponse */ approveDeposit(accountAddress: Address, vaultAddress: Address, tokenAddress: Address, amount?: Integer, overrides?: CallOverrides): Promise<TransactionResponse>; /** * Approve the token amount to allow to be used for withdraw * @param accountAddress * @param vaultAddress * @param tokenAddress * @param amount * @param overrides * @returns TransactionResponse */ approveWithdraw(accountAddress: Address, vaultAddress: Address, tokenAddress: Address, amount?: Integer, overrides?: CallOverrides): Promise<TransactionResponse>; private getDepositContractAddress; private getWithdrawContractAddress; isUnderlyingToken(vaultAddress: Address, tokenAddress: Address): Promise<boolean>; /** * Deposit into a yearn vault * @param vault * @param token * @param amount * @param account * @param overrides * @returns transaction */ deposit(vault: Address, token: Address, amount: Integer, account: Address, options?: DepositOptions, overrides?: CallOverrides): Promise<TransactionResponse>; /** * Withdraw from a yearn vault. * @param vault * @param token * @param amount * @param account * @param overrides * @returns transaction */ withdraw(vault: Address, token: Address, amount: Integer, account: Address, options?: WithdrawOptions, overrides?: CallOverrides): Promise<TransactionResponse>; private zapIn; private executeZapperTransaction; private executeVaultContractTransaction; private fillTokenMetadataOverrides; private fillMetadataOverrides; private shouldUsePartnerService; private makeEmptyApy; populateDepositTransaction({ vault, amount, overrides, signer, }: { vault: Address; amount: Integer; overrides: CallOverrides; signer: JsonRpcSigner; }): Promise<PopulatedTransaction | undefined>; private isZappingIntoPickleJar; }