four-flap-meme-sdk
Version:
SDK for Flap bonding curve and four.meme TokenManager
163 lines (162 loc) • 4.92 kB
TypeScript
import { CommonBundleConfig } from '../utils/bundle-helpers.js';
export interface PancakeSwapSignConfig {
rpcUrl: string;
gasLimit?: number | bigint;
gasLimitMultiplier?: number;
minGasPriceGwei?: number;
maxGasPriceGwei?: number;
txType?: 0 | 2;
chainId?: number;
reserveGasBNB?: number;
bribeAmount?: number;
}
export type SwapRouteType = 'v2' | 'v3-single' | 'v3-multi';
export interface PancakeSwapConfig extends CommonBundleConfig {
apiKey: string;
customRpcUrl?: string;
bundleBlockOffset?: number;
reserveGasBNB?: number;
waitForConfirmation?: boolean;
waitTimeoutMs?: number;
}
export interface V2RouteParams {
routeType: 'v2';
v2Path: string[];
}
export interface V3SingleRouteParams {
routeType: 'v3-single';
v3TokenIn: string;
v3TokenOut: string;
v3Fee: number;
v2Path?: string[];
}
export interface V3MultiRouteParams {
routeType: 'v3-multi';
v3LpAddresses: string[];
v3ExactTokenIn: string;
v2Path?: string[];
}
export type RouteParams = V2RouteParams | V3SingleRouteParams | V3MultiRouteParams;
export interface PancakeBundleSwapSignParams {
sellerPrivateKey: string;
sellAmount?: string;
sellPercentage?: number;
buyerPrivateKey: string;
tokenAddress: string;
routeParams: RouteParams;
config: PancakeSwapSignConfig;
quoteToken?: string;
quoteTokenDecimals?: number;
startNonces?: number[];
}
export interface PancakeBundleSwapParams {
sellerPrivateKey: string;
sellAmount?: string;
sellPercentage?: number;
buyerPrivateKey: string;
tokenAddress: string;
routeParams: RouteParams;
config: PancakeSwapConfig;
}
/** ✅ Pancake Swap 结果(简化版) */
export type PancakeSwapResult = {
signedTransactions: string[];
metadata?: {
sellerAddress: string;
buyerAddress: string;
sellAmount: string;
buyAmount: string;
profitAmount?: string;
};
};
/**
* PancakeSwap捆绑换手(V2/V3通用)
* ✅ 支持 quoteToken:传入 USDT 等地址时,卖出得到该代币,买入使用该代币
*/
export declare function pancakeBundleSwapMerkle(params: PancakeBundleSwapSignParams): Promise<PancakeSwapResult>;
/**
* 批量换手参数(一卖多买)
*/
export interface PancakeBatchSwapSignParams {
sellerPrivateKey: string;
sellAmount?: string;
sellPercentage?: number;
buyerPrivateKeys: string[];
buyerAmounts?: string[];
buyerRatios?: number[];
tokenAddress: string;
routeParams: RouteParams;
config: PancakeSwapSignConfig;
quoteToken?: string;
quoteTokenDecimals?: number;
startNonces?: number[];
}
/**
* 批量换手结果
*/
export interface PancakeBatchSwapResult {
signedTransactions: string[];
metadata?: {
sellerAddress: string;
buyerAddresses: string[];
sellAmount: string;
buyAmounts: string[];
profitAmount?: string;
};
}
/**
* PancakeSwap 批量换手(一卖多买)
*
* 功能:主钱包一次卖出 → 多个子钱包同时买入 → 在同一个区块中完成
* 限制:最多 24 个买方(服务器限制 25 笔交易,包含 1 笔利润交易)
*
* 交易顺序:[授权(可选)] → [卖出] → [买入1, 买入2, ..., 买入N] → [利润]
*/
export declare function pancakeBatchSwapMerkle(params: PancakeBatchSwapSignParams): Promise<PancakeBatchSwapResult>;
/**
* 快捷批量换手参数
* 特点:子钱包不需要预先有余额,资金来自主钱包卖出所得
*/
export interface PancakeQuickBatchSwapParams {
sellerPrivateKey: string;
sellAmount?: string;
sellPercentage?: number;
buyerPrivateKeys: string[];
buyerRatios?: number[];
buyerAmounts?: string[];
tokenAddress: string;
routeParams: RouteParams;
config: PancakeSwapSignConfig;
quoteToken?: string;
quoteTokenDecimals?: number;
startNonces?: number[];
}
/**
* 快捷批量换手结果
*/
export interface PancakeQuickBatchSwapResult {
signedTransactions: string[];
metadata?: {
sellerAddress: string;
buyerAddresses: string[];
sellAmount: string;
estimatedOutput: string;
transferAmounts: string[];
profitAmount?: string;
useNativeToken: boolean;
};
}
/**
* PancakeSwap 快捷批量换手(资金自动流转)
*
* 流程:[贿赂] → [卖出] → [转账1, 转账2, ...] → [买入1, 买入2, ...] → [利润]
*
* 特点:
* - 子钱包不需要预先有余额
* - 资金来自主钱包卖出代币所得
* - 提升资金利用率
* - 支持 BNB 和 ERC20(如 USDT)两种模式
*
* 限制:最多 23 个买方(转账 + 买入 = 46 笔,加上贿赂/卖出/利润 = 50 笔限制)
*/
export declare function pancakeQuickBatchSwapMerkle(params: PancakeQuickBatchSwapParams): Promise<PancakeQuickBatchSwapResult>;