UNPKG

@syncswap/sdk

Version:

SyncSwap TypeScript SDK for building DeFi applications

83 lines 5.75 kB
import { BigNumber, CallOverrides } from "ethers"; import { CryptoPoolData, FeeData, GetAmountParams, ISplitPermitParams, Path, PathWithAmounts, PermitSignature, PoolTypes, RoutePoolData, StepData } from "./router/types"; import { Token } from "./tokens/token"; import { JsonRpcProvider } from "@ethersproject/providers"; export declare const SOPHON_MAINNET_USDT = "0x6386da73545ae4e2b2e0393688fa8b65bb9a7169"; export declare const SOPHON_MAINNET_USDC = "0x9aa0f72392b5784ad86c6f3e899bcc053d00db4f"; export declare const ZKSYNC_TESTNET = "zkSyncTestnet"; export declare const ZKSYNC_MAINNET = "zkSyncMainnet"; export declare const SCROLL_MAINNET = "scrollMainnet"; export declare const SOPHON_MAINNET = "sophonMainnet"; export declare const SOPHON_TESTNET = "sophonTestnet"; export declare const ZKCANDY_MAINNET = "zkcandyMainnet"; export declare const LINEA_MAINNET = "lineaMainnet"; export declare const ZKSYNC_SEPOLIA_TESTNET = "zkSyncSepoliaTestnet"; export declare function getRouteTokens(): string[]; export declare function sortTokens(tokenA: string, tokenB: string): [string, string]; export declare function isETH(token: string | Token): boolean; export declare function getPoolKey(address1: string, address2: string): string; export declare function createPath(stepDataArray: StepData[]): Path; export declare function isUSDStablecoin(token: Token): boolean; export declare function hasLiquidity(data: RoutePoolData, tokenIn?: string, amountIn?: BigNumber): boolean; export declare function getBlockTimestamp(): BigNumber; export declare function sqrtBN(x: BigNumber): BigNumber; export declare function computeInvariant(poolType: PoolTypes, reserveA: BigNumber, reserveB: BigNumber, tokenAPrecisionMultiplier?: BigNumber, tokenBPrecisionMultiplier?: BigNumber, a?: BigNumber, gamma?: BigNumber): BigNumber; export declare function getUnbalancedMintFee(isV2: boolean, amountA: BigNumber, amountB: BigNumber, reserveA: BigNumber, reserveB: BigNumber, swapFeeAB: BigNumber, swapFeeBA: BigNumber): [BigNumber, BigNumber]; export declare function getXCP(invariant: BigNumber, priceScale: BigNumber): BigNumber; export declare function getCryptoFee(feeData: FeeData, xp0: BigNumber, xp1: BigNumber): BigNumber; export declare function calculateCryptoLiquidityFee(feeData: FeeData, amount0: BigNumber, amount1: BigNumber, xp0: BigNumber, xp1: BigNumber): BigNumber; export declare function computeLiquidity(isV2: boolean, poolType: PoolTypes, amountA: BigNumber, amountB: BigNumber, reserveA: BigNumber, reserveB: BigNumber, swapFeeAB: FeeData, swapFeeBA: FeeData, totalSupply: BigNumber, isTokenA0: boolean, tokenAPrecisionMultiplier?: BigNumber, tokenBPrecisionMultiplier?: BigNumber, a?: BigNumber, cryptoData?: CryptoPoolData): [BigNumber, BigNumber]; export declare function cryptoMathGetY(ANN: BigNumber, gamma: BigNumber, x0: BigNumber, x1: BigNumber, D: BigNumber, i: number): BigNumber; export declare function cryptoMathComputeD(ANN: BigNumber, gamma: BigNumber, x0: BigNumber, x1: BigNumber): BigNumber; export declare function calculateAmountOut(params: GetAmountParams, checkOverflow: boolean): Promise<{ amountOut: BigNumber; sqrtPriceLimitX96?: BigNumber; }>; export declare function calculateQuoteOut(params: GetAmountParams, hasFee: boolean): BigNumber; export declare function calculatePathAmountsByInput(path: Path, amountIn: BigNumber, sessionId?: number): Promise<PathWithAmounts | null>; export interface GroupAmounts { pathsWithAmounts: PathWithAmounts[]; amountOut: BigNumber; quoteOut: BigNumber; gas?: BigNumber; } export declare function splitAmount(amount: BigNumber, parts: number): Promise<BigNumber[][]>; export declare function calculateGroupAmounts(paths: Path[], amounts: BigNumber[]): Promise<GroupAmounts | null>; export declare function computeGasFee(bestPathsWithAmounts: PathWithAmounts[]): BigNumber; export declare function calculateMinAmount(amountOut: BigNumber, maxSlippage: number): BigNumber; export declare function getAmountMin(amountOut: BigNumber, action?: string): BigNumber; export declare function shouldUseV2RouterInterface(network: string): network is "lineaMainnet" | "zkSyncMainnet" | "scrollMainnet" | "sophonMainnet" | "sophonTestnet" | "zkcandyMainnet"; export declare function generateSplitPermitParams(signatures: PermitSignature[]): ISplitPermitParams[]; export declare function createTimeoutPromise<T>(timeout: number, timeoutValue: T): Promise<T>; export declare function useGasPrice(): Promise<BigNumber>; export declare function isNFTPaymasterAvailable(): boolean; export declare function detectNFTHolder(nftName: string, nftAddress: string, paymasterAddress: string, userAddress: string, providedProvider?: JsonRpcProvider): Promise<boolean>; export declare enum NFTs { MOODY_MIGHTS = 0, HUE = 1, WE_BEARS = 2, SOB = 3, ZEEKS_CAT = 4, ZKVEGGIES = 5 } export declare const GAS_SPONSOR_NFT_MAP: Map<NFTs, { name: string; sponsorName?: string; nftAddress: string; paymaster: string; }>; export declare function detectSupportedNFTHolding(userAddress: string): Promise<NFTs[]>; export declare function getPayMasterParams(feeToken: string, refundFeeToken: string, isRouterIntraction: boolean, swapInfo?: { swapToken: string; swapAmount: BigNumber; }): { gasPerPubdata: number; paymasterParams: any; }; export declare function createOverrides(estimateGas: BigNumber, expensiveLevel?: number, isRouterInteraction?: boolean, params?: Record<string, unknown>, swapInfo?: { swapToken: string; swapAmount: BigNumber; }): Promise<CallOverrides>; export declare function useSlippage(action?: string): number; export { getWETHAddress } from "./tokens/tokenRegistry"; //# sourceMappingURL=sdkHelper.d.ts.map