four-flap-meme-sdk
Version:
SDK for Flap bonding curve and four.meme TokenManager
79 lines (78 loc) • 2.35 kB
TypeScript
/**
* PancakeSwap V2/V3 通用捆绑换手(Merkle Bundle)- 先买后卖
*
* 功能:钱包B先买入代币 → 钱包A卖出相同数量 → 原子执行
*/
import { CommonBundleConfig } from '../utils/bundle-helpers.js';
export interface PancakeBuyFirstSignConfig {
rpcUrl: string;
gasLimit?: number | bigint;
gasLimitMultiplier?: number;
minGasPriceGwei?: number;
maxGasPriceGwei?: number;
txType?: 0 | 2;
chainId?: number;
reserveGasBNB?: number;
skipQuoteOnError?: boolean;
bribeAmount?: number;
}
export type SwapRouteType = 'v2' | 'v3-single' | 'v3-multi';
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 PancakeBuyFirstConfig extends CommonBundleConfig {
apiKey: string;
customRpcUrl?: string;
bundleBlockOffset?: number;
reserveGasBNB?: number;
waitForConfirmation?: boolean;
waitTimeoutMs?: number;
}
export interface PancakeBundleBuyFirstSignParams {
buyerPrivateKey: string;
sellerPrivateKey: string;
tokenAddress: string;
routeParams: RouteParams;
buyerFunds?: string;
buyerFundsPercentage?: number;
config: PancakeBuyFirstSignConfig;
quoteToken?: string;
quoteTokenDecimals?: number;
startNonces?: number[];
}
export interface PancakeBundleBuyFirstParams {
buyerPrivateKey: string;
sellerPrivateKey: string;
tokenAddress: string;
routeParams: RouteParams;
buyerFunds?: string;
buyerFundsPercentage?: number;
config: PancakeBuyFirstConfig;
}
/** ✅ Pancake BuyFirst 结果(简化版) */
export type PancakeBuyFirstResult = {
signedTransactions: string[];
metadata?: {
buyerAddress: string;
sellerAddress: string;
buyAmount: string;
sellAmount: string;
profitAmount?: string;
};
};
export declare function pancakeBundleBuyFirstMerkle(params: PancakeBundleBuyFirstSignParams): Promise<PancakeBuyFirstResult>;