@xspswap/smart-order-router
Version:
XSwap Protocol V3 Smart Order Router
40 lines (39 loc) • 1.76 kB
TypeScript
import { TokenList } from '@uniswap/token-lists';
import { ChainId, Token } from '@x-swap-protocol/sdk-core';
import { ICache } from './cache';
import { ITokenProvider, TokenAccessor } from './token-provider';
/**
* Provider for getting token data from a Token List.
*
* @export
* @interface ITokenListProvider
*/
export interface ITokenListProvider {
getTokenBySymbol(_symbol: string): Promise<Token | undefined>;
getTokenByAddress(address: string): Promise<Token | undefined>;
}
export declare class CachingTokenListProvider implements ITokenProvider, ITokenListProvider {
private tokenCache;
private CACHE_KEY;
private chainId;
private chainToTokenInfos;
private chainSymbolToTokenInfo;
private chainAddressToTokenInfo;
private tokenList;
/**
* Creates an instance of CachingTokenListProvider.
* Token metadata (e.g. symbol and decimals) generally don't change so can be cached indefinitely.
*
* @param chainId The chain id to use.
* @param tokenList The token list to get the tokens from.
* @param tokenCache Cache instance to hold cached tokens.
*/
constructor(chainId: ChainId | number, tokenList: TokenList, tokenCache: ICache<Token>);
static fromTokenListURI(chainId: ChainId | number, tokenListURI: string, tokenCache: ICache<Token>): Promise<CachingTokenListProvider>;
private static buildTokenList;
static fromTokenList(chainId: ChainId | number, tokenList: TokenList, tokenCache: ICache<Token>): Promise<CachingTokenListProvider>;
getTokens(_addresses: string[]): Promise<TokenAccessor>;
getTokenBySymbol(_symbol: string): Promise<Token | undefined>;
getTokenByAddress(address: string): Promise<Token | undefined>;
private buildToken;
}