UNPKG

@syncswap/sdk

Version:

SyncSwap TypeScript SDK for building DeFi applications

100 lines 4.01 kB
import { BigNumber, ethers, PopulatedTransaction } from "ethers"; import { PermitSignature, RoutePools, SwapRoute } from "./router/types"; import { Token } from "./tokens/token"; export * from "./sdkHelper"; export interface TokenPermitData { nonce: BigNumber; name: string; version: string; chainId: BigNumber; } type SyncSwapSDKConfig = { network?: string; enablePaymaster?: boolean; allowUniswapV3Pools?: boolean; aquaPoolOnly?: boolean; enableHops?: boolean; enableSplits?: boolean; slidePage?: number | "auto"; }; export default class SyncSwapSDK { private initialized; private config; private tokenPermitCache; constructor(config: SyncSwapSDKConfig); updateConfig(config: Partial<SyncSwapSDKConfig>): Promise<void>; initialize(provider: ethers.providers.Provider | ethers.Signer): Promise<void>; initializeSyncSwapSDKContracts(): Promise<void>; fetchAllPools(): Promise<void>; setProviderOrSigner(providerOrSigner: ethers.providers.Provider | ethers.Signer): Promise<void>; fetchSyncSwapRouteData(tokenAddressA: string, tokenAddressB: string, userAccount?: string, routeCommonBaseTokenAddresses?: string[]): Promise<RoutePools | null>; calculateSyncSwapRoute(routePools: RoutePools, tokenAddressIn: string, tokenAddressOut: string, tokenAmountIn: ethers.BigNumber): Promise<SwapRoute>; checkApproval(tokenAddress: string, amount: BigNumber, spender?: string): Promise<boolean>; approve(tokenAddress: string, amount: BigNumber, spender?: string): Promise<PopulatedTransaction>; getTokenPermitData(tokenAddress: string): Promise<TokenPermitData | null>; signPermit(tokenAddress: string, amount: BigNumber, spender?: string, deadline?: BigNumber): Promise<PermitSignature | null>; swapExactInput(route: SwapRoute, signature: PermitSignature | null, to: string): Promise<PopulatedTransaction>; /** * Get all registered tokens * @returns Array containing all registered tokens */ getAllTokens(): Token[]; /** * Get all verified tokens (including tokens from default token list) * @returns Array containing all verified tokens, including ETH */ getVerifiedTokens(): Token[]; /** * Get all indexed tokens (tokens displayed in UI) * @returns Array containing all indexed tokens, including ETH */ getIndexedTokens(): Token[]; /** * Get hidden listed tokens * @returns Array containing hidden listed tokens */ getHiddenListedTokens(): Token[]; /** * Get token by address * @param address Token address * @returns Token object, or null if not found */ getTokenByAddress(address: string): Token | null; /** * Get token by symbol * @param symbol Token symbol * @returns Token object, or null if not found */ getTokenBySymbol(symbol: string): Token | null; /** * Check if token is verified * @param address Token address * @returns True if token is verified */ isTokenVerified(address: string): boolean; /** * Check if token is indexed (displayed in UI) * @param address Token address * @returns True if token is indexed */ isTokenIndexed(address: string): boolean; /** * Lookup and register token from blockchain * @param address Token address * @param shouldRegister Whether to register in registry * @param isIndexed Whether to mark as indexed * @returns [Token object or null, whether it's newly fetched] */ lookupTokenByAddress(address: string, shouldRegister?: boolean, isIndexed?: boolean): Promise<[Token | null, boolean]>; /** * Get route tokens list (base tokens used for routing calculation) * @returns Array containing route token addresses */ getRouteTokens(): string[]; /** * Get wETH address for current network * @returns wETH token address */ getWETHAddress(): string; } //# sourceMappingURL=index.d.ts.map