@bombearn/sdk
Version:
Interaction framework for the yearn protocol
98 lines (97 loc) • 3.81 kB
TypeScript
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;
}