UNPKG

@bombearn/sdk

Version:

Interaction framework for the yearn protocol

98 lines (97 loc) 3.81 kB
import { CallOverrides, PopulatedTransaction } from "@ethersproject/contracts"; import { TransactionResponse } from "@ethersproject/providers"; import { ChainId } from "../chain"; import { ServiceInterface } from "../common"; import { Address, Integer, TokenAllowance, TokenMetadata, TypedMap, Usdc } from "../types"; import { Balance, Icon, IconMap, Token } from "../types"; export declare class TokenInterface<C extends ChainId> extends ServiceInterface<C> { private cachedFetcherSupported; /** * Get exchange rate between two tokens. * @param from * @param to * @returns exchange rate */ price(from: Address, to: Address): Promise<Integer>; /** * Get the suggested Usdc exchange rate for an token. * @param token * @param overrides * @returns Usdc exchange rate (6 decimals) */ priceUsdc<T extends Address>(token: T, overrides?: CallOverrides): Promise<Usdc>; /** * Get the suggested Usdc exchange rate for list of tokens. * @param tokens * @param overrides * @returns Usdc exchange rate map (6 decimals) */ priceUsdc<T extends Address>(tokens: T[], overrides?: CallOverrides): Promise<TypedMap<T, Usdc>>; /** * Fetch token balance for a particular account and token addresses. * * @param account user wallet address * @param tokenAddresses list of token addresses * * @returns list of balances for the supported tokens */ balances(account: Address, tokenAddresses?: Address[]): Promise<Balance[]>; /** * Fetch all the tokens supported along with some basic metadata. * @returns list of tokens supported. */ supported(): Promise<Token[]>; /** * TODO: Should get a single token directly instead of filtering * @param address then token address * @returns the token */ findByAddress(address: Address): Promise<Token | undefined>; /** * Fetch the token amount that spender is allowed to spend on behalf of owner * @param ownerAddress * @param tokenAddress * @param spenderAddress * @returns TokenAllowance */ allowance(ownerAddress: Address, tokenAddress: Address, spenderAddress: Address): Promise<TokenAllowance>; /** * Returns the populated transaction to approve the token amount that spender is allowed to spend on behalf of owner * @param ownerAddress * @param tokenAddress * @param spenderAddress * @param amount * @param overrides * @returns PopulatedTransaction */ populateApprove(ownerAddress: Address, tokenAddress: Address, spenderAddress: Address, amount: Integer, overrides?: CallOverrides): Promise<PopulatedTransaction>; /** * Approve the token amount that spender is allowed to spend on behalf of owner * @param ownerAddress * @param tokenAddress * @param spenderAddress * @param amount * @param overrides * @returns TransactionResponse */ approve(ownerAddress: Address, tokenAddress: Address, spenderAddress: Address, amount: Integer, overrides?: CallOverrides): Promise<TransactionResponse>; /** * Fetches supported zap tokens and sets their icon * @returns zap tokens with icons */ private getZapTokensWithIcons; /** * Get an icon url for a particular address. * @param address */ icon<T extends Address>(address: T): Icon; /** * Get a map of icons for a list of addresses. * @param addresses */ icon<T extends Address>(addresses: T[]): IconMap<T>; private cachedFetcher; metadata(addresses?: Address[]): Promise<TokenMetadata[]>; private getTestBalance; private getTestToken; }