@yfi/sdk
Version:
Interaction framework for the yearn protocol
140 lines (139 loc) • 5.67 kB
TypeScript
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;
}