import { ChainId, Token } from "@onyxcoindev/sdk-core-test"; import { IMulticallProvider } from "./multicall-provider"; import { ProviderConfig } from "./provider"; /** * Provider for getting token data. * * @export * @interface ITokenProvider */ export interface ITokenProvider { /** * Gets the token at each address. Any addresses that are not valid ERC-20 are ignored. * * @param addresses The token addresses to get. * @param [providerConfig] The provider config. * @returns A token accessor with methods for accessing the tokens. */ getTokens(addresses: string[], providerConfig?: ProviderConfig): Promise; } export type TokenAccessor = { getTokenByAddress(address: string): Token | undefined; getTokenBySymbol(symbol: string): Token | undefined; getAllTokens: () => Token[]; }; export declare const USDC_MAINNET: Token; export declare const ETH_MAINNET: Token; export declare const USDT_MAINNET: Token; export declare const WBTC_MAINNET: Token; export declare const USDC_ETHEREUM_MAINNET: Token; export declare const DAI_ETHEREUM_MAINNET: Token; export declare const ETH_ETHEREUM_MAINNET: Token; export declare const USDT_ETHEREUM_MAINNET: Token; export declare const WBTC_ETHEREUM_MAINNET: Token; export declare const USDC_SEPOLIA: Token; export declare const USDT_SEPOLIA: Token; export declare const DAI_SEPOLIA: Token; export declare const ETH_SEPOLIA: Token; export declare class TokenProvider implements ITokenProvider { private chainId; protected multicall2Provider: IMulticallProvider; constructor(chainId: ChainId, multicall2Provider: IMulticallProvider); private getTokenSymbol; private getTokenDecimals; getTokens(_addresses: string[], providerConfig?: ProviderConfig): Promise; } export interface TokenInfo { readonly address: string; readonly name: string; readonly decimals: number; readonly symbol: string; readonly icon?: string; readonly coingeckoId?: string; } export interface TokenListVersion { readonly major: number; readonly minor: number; readonly patch: number; } export interface TokenListTags { readonly [tagId: string]: { readonly name: string; readonly description: string; }; } export interface TokenList { readonly name: string; readonly timestamp: string; readonly version: TokenListVersion; readonly tokens: TokenInfo[]; readonly keywords?: string[]; readonly tags?: TokenListTags; readonly logoURI?: string; }