@syncswap/sdk
Version:
SyncSwap TypeScript SDK for building DeFi applications
100 lines • 4.01 kB
TypeScript
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