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