four-flap-meme-sdk 1.6.55 → 1.6.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts
CHANGED
|
@@ -54,4 +54,4 @@ submitDirectToRpcSequentialNoWait, // ✅ 顺序广播但不等待确认(用
|
|
|
54
54
|
submitDirectToRpcParallel, type DirectSubmitConfig, type DirectSubmitResult, type DirectTxResult } from './contracts/tm-bundle-merkle/submit.js';
|
|
55
55
|
export { directV2BatchBuy, directV2BatchSell, directV3BatchBuy, directV3BatchSell, getRouterAddress, DIRECT_ROUTERS, type DirectV2BuyParams, type DirectV2SellParams, type DirectV3BuyParams, type DirectV3SellParams, type DirectRouterResult, type DirectRouterSignConfig, type DexKey, type RouterVersion, } from './dex/index.js';
|
|
56
56
|
export * as XLayer from './xlayer/index.js';
|
|
57
|
-
export { bundleBuy as xlayerBundleBuy, bundleSell as xlayerBundleSell, bundleBuySell as xlayerBundleBuySell, bundleCreateBuySign as xlayerBundleCreateBuySign, bundleCreateToDexSign as xlayerBundleCreateToDexSign, bundleGraduateBuy as xlayerBundleGraduateBuy, bundleSwapSign as xlayerBundleSwapSign, bundleBatchSwapSign as xlayerBundleBatchSwapSign, createBundleExecutor as xlayerCreateBundleExecutor, BundleExecutor as XLayerBundleExecutor, makeVolume as xlayerMakeVolume, singleRoundVolume as xlayerSingleRoundVolume, createVolumeExecutor as xlayerCreateVolumeExecutor, VolumeExecutor as XLayerVolumeExecutor, makeBuyFirstVolume as xlayerMakeBuyFirstVolume, BuyFirstVolumeExecutor as XLayerBuyFirstVolumeExecutor, AAPortalBuyFirstExecutor as XLayerAAPortalBuyFirstExecutor, AADexBuyFirstExecutor as XLayerAADexBuyFirstExecutor, AAVolumeBuyFirstExecutor as XLayerAAVolumeBuyFirstExecutor, createAAVolumeBuyFirstExecutor as xlayerCreateAAVolumeBuyFirstExecutor, type VolumeBuyFirstParams as XLayerVolumeBuyFirstParams, type VolumeBuyFirstResult as XLayerVolumeBuyFirstResult, type VolumeContinuousParams as XLayerVolumeContinuousParams, type VolumeContinuousResult as XLayerVolumeContinuousResult, type VolumeProgress as XLayerVolumeProgress, createDexExecutor as xlayerCreateDexExecutor, createDexQuery as xlayerCreateDexQuery, quoteOkbToToken as xlayerQuoteOkbToToken, quoteTokenToOkb as xlayerQuoteTokenToOkb, DexExecutor as XLayerDexExecutor, DexQuery as XLayerDexQuery, buildDexBatchBuyOps, buildDexBatchBuyOpsV3, type DexBatchBuyParams, type DexBatchBuyV3Params, type DexBatchBuyResult, buildDexBatchSellOps, buildDexBatchSellOpsV3, type DexBatchSellParams, type DexBatchSellV3Params, type DexBatchSellResult, buildDisperseFromSingleOwnerOpsWithProfit, buildTransfersWithProfit, createAAAccountManager as xlayerCreateAAAccountManager, predictSender as xlayerPredictSender, createWallet as xlayerCreateWallet, AAAccountManager as XLayerAAAccountManager, generateAAWallets as xlayerGenerateAAWallets, generateAAWalletsFromMnemonic as xlayerGenerateAAWalletsFromMnemonic, predictSendersFromPrivateKeys as xlayerPredictSendersFromPrivateKeys, createBundlerClient as xlayerCreateBundlerClient, BundlerClient as XLayerBundlerClient, createPortalQuery as xlayerCreatePortalQuery, PortalQuery as XLayerPortalQuery, encodeBuyCall as xlayerEncodeBuyCall, encodeSellCall as xlayerEncodeSellCall, encodeApproveCall as xlayerEncodeApproveCall, parseOkb as xlayerParseOkb, formatOkb as xlayerFormatOkb, XLAYER_CHAIN_ID, FLAP_PORTAL as XLAYER_FLAP_PORTAL, ENTRYPOINT_V06 as XLAYER_ENTRYPOINT, SIMPLE_ACCOUNT_FACTORY as XLAYER_FACTORY, PARTICLE_BUNDLER_URL as XLAYER_BUNDLER_URL, WOKB as XLAYER_WOKB, POTATOSWAP_V2_ROUTER as XLAYER_POTATOSWAP_ROUTER, type XLayerConfig, type BundleBuyParams as XLayerBundleBuyParams, type BundleSellParams as XLayerBundleSellParams, type BundleBuySellParams as XLayerBundleBuySellParams, type BundleSwapParams as XLayerBundleSwapParams, type BundleSwapSignParams as XLayerBundleSwapSignParams, type BundleBatchSwapParams as XLayerBundleBatchSwapParams, type BundleBatchSwapSignParams as XLayerBundleBatchSwapSignParams, type VolumeParams as XLayerVolumeParams, type BundleBuyResult as XLayerBundleBuyResult, type BundleSellResult as XLayerBundleSellResult, type BundleBuySellResult as XLayerBundleBuySellResult, type BundleCreateBuySignParams as XLayerBundleCreateBuySignParams, type BundleCreateBuySignResult as XLayerBundleCreateBuySignResult, type BundleCreateToDexSignParams as XLayerBundleCreateToDexSignParams, type BundleCreateToDexSignResult as XLayerBundleCreateToDexSignResult, type BundleGraduateBuyParams as XLayerBundleGraduateBuyParams, type BundleGraduateBuyResult as XLayerBundleGraduateBuyResult, type BundleSwapResult as XLayerBundleSwapResult, type BundleSwapSignResult as XLayerBundleSwapSignResult, type BundleBatchSwapResult as XLayerBundleBatchSwapResult, type BundleBatchSwapSignResult as XLayerBundleBatchSwapSignResult, type VolumeResult as XLayerVolumeResult, type BuyFirstParams as XLayerBuyFirstParams, type BuyFirstResult as XLayerBuyFirstResult, type BuyFirstVolumeParams as XLayerBuyFirstVolumeParams, type BuyFirstVolumeResult as XLayerBuyFirstVolumeResult, type HandleOpsResult as XLayerHandleOpsResult, type AAAccount as XLayerAAAccount, type UserOperation as XLayerUserOperation, type GeneratedAAWallet as XLayerGeneratedAAWallet, type GenerateAAWalletsParams as XLayerGenerateAAWalletsParams, type GenerateAAWalletsResult as XLayerGenerateAAWalletsResult, } from './xlayer/index.js';
|
|
57
|
+
export { bundleBuy as xlayerBundleBuy, bundleSell as xlayerBundleSell, bundleBuySell as xlayerBundleBuySell, bundleCreateBuySign as xlayerBundleCreateBuySign, bundleCreateToDexSign as xlayerBundleCreateToDexSign, bundleGraduateBuy as xlayerBundleGraduateBuy, bundleSwapSign as xlayerBundleSwapSign, bundleBatchSwapSign as xlayerBundleBatchSwapSign, createBundleExecutor as xlayerCreateBundleExecutor, BundleExecutor as XLayerBundleExecutor, makeVolume as xlayerMakeVolume, singleRoundVolume as xlayerSingleRoundVolume, createVolumeExecutor as xlayerCreateVolumeExecutor, VolumeExecutor as XLayerVolumeExecutor, makeBuyFirstVolume as xlayerMakeBuyFirstVolume, BuyFirstVolumeExecutor as XLayerBuyFirstVolumeExecutor, AAPortalBuyFirstExecutor as XLayerAAPortalBuyFirstExecutor, AADexBuyFirstExecutor as XLayerAADexBuyFirstExecutor, AAVolumeBuyFirstExecutor as XLayerAAVolumeBuyFirstExecutor, createAAVolumeBuyFirstExecutor as xlayerCreateAAVolumeBuyFirstExecutor, type VolumeBuyFirstParams as XLayerVolumeBuyFirstParams, type VolumeBuyFirstResult as XLayerVolumeBuyFirstResult, type VolumeContinuousParams as XLayerVolumeContinuousParams, type VolumeContinuousResult as XLayerVolumeContinuousResult, type VolumeProgress as XLayerVolumeProgress, createDexExecutor as xlayerCreateDexExecutor, createDexQuery as xlayerCreateDexQuery, quoteOkbToToken as xlayerQuoteOkbToToken, quoteTokenToOkb as xlayerQuoteTokenToOkb, DexExecutor as XLayerDexExecutor, DexQuery as XLayerDexQuery, buildWashOps, type WashOpsParams, type WashOpsResult, type WashPoolType, type WashUserType, buildBundleBuyOps, buildBundleSellOps, buildBundleProfitOp, filterOutProfitOps, type BundleBuyOpsParams, type BundleSellOpsParams, type BundleProfitOpParams, type BundleOpsResult, type BundlePoolType, type BundleUserType, buildDexBatchBuyOps, buildDexBatchBuyOpsV3, type DexBatchBuyParams, type DexBatchBuyV3Params, type DexBatchBuyResult, buildDexBatchSellOps, buildDexBatchSellOpsV3, type DexBatchSellParams, type DexBatchSellV3Params, type DexBatchSellResult, buildDisperseFromSingleOwnerOpsWithProfit, buildTransfersWithProfit, createAAAccountManager as xlayerCreateAAAccountManager, predictSender as xlayerPredictSender, createWallet as xlayerCreateWallet, AAAccountManager as XLayerAAAccountManager, generateAAWallets as xlayerGenerateAAWallets, generateAAWalletsFromMnemonic as xlayerGenerateAAWalletsFromMnemonic, predictSendersFromPrivateKeys as xlayerPredictSendersFromPrivateKeys, createBundlerClient as xlayerCreateBundlerClient, BundlerClient as XLayerBundlerClient, createPortalQuery as xlayerCreatePortalQuery, PortalQuery as XLayerPortalQuery, encodeBuyCall as xlayerEncodeBuyCall, encodeSellCall as xlayerEncodeSellCall, encodeApproveCall as xlayerEncodeApproveCall, parseOkb as xlayerParseOkb, formatOkb as xlayerFormatOkb, XLAYER_CHAIN_ID, FLAP_PORTAL as XLAYER_FLAP_PORTAL, ENTRYPOINT_V06 as XLAYER_ENTRYPOINT, SIMPLE_ACCOUNT_FACTORY as XLAYER_FACTORY, PARTICLE_BUNDLER_URL as XLAYER_BUNDLER_URL, WOKB as XLAYER_WOKB, POTATOSWAP_V2_ROUTER as XLAYER_POTATOSWAP_ROUTER, type XLayerConfig, type BundleBuyParams as XLayerBundleBuyParams, type BundleSellParams as XLayerBundleSellParams, type BundleBuySellParams as XLayerBundleBuySellParams, type BundleSwapParams as XLayerBundleSwapParams, type BundleSwapSignParams as XLayerBundleSwapSignParams, type BundleBatchSwapParams as XLayerBundleBatchSwapParams, type BundleBatchSwapSignParams as XLayerBundleBatchSwapSignParams, type VolumeParams as XLayerVolumeParams, type BundleBuyResult as XLayerBundleBuyResult, type BundleSellResult as XLayerBundleSellResult, type BundleBuySellResult as XLayerBundleBuySellResult, type BundleCreateBuySignParams as XLayerBundleCreateBuySignParams, type BundleCreateBuySignResult as XLayerBundleCreateBuySignResult, type BundleCreateToDexSignParams as XLayerBundleCreateToDexSignParams, type BundleCreateToDexSignResult as XLayerBundleCreateToDexSignResult, type BundleGraduateBuyParams as XLayerBundleGraduateBuyParams, type BundleGraduateBuyResult as XLayerBundleGraduateBuyResult, type BundleSwapResult as XLayerBundleSwapResult, type BundleSwapSignResult as XLayerBundleSwapSignResult, type BundleBatchSwapResult as XLayerBundleBatchSwapResult, type BundleBatchSwapSignResult as XLayerBundleBatchSwapSignResult, type VolumeResult as XLayerVolumeResult, type BuyFirstParams as XLayerBuyFirstParams, type BuyFirstResult as XLayerBuyFirstResult, type BuyFirstVolumeParams as XLayerBuyFirstVolumeParams, type BuyFirstVolumeResult as XLayerBuyFirstVolumeResult, type HandleOpsResult as XLayerHandleOpsResult, type AAAccount as XLayerAAAccount, type UserOperation as XLayerUserOperation, type GeneratedAAWallet as XLayerGeneratedAAWallet, type GenerateAAWalletsParams as XLayerGenerateAAWalletsParams, type GenerateAAWalletsResult as XLayerGenerateAAWalletsResult, } from './xlayer/index.js';
|
package/dist/index.js
CHANGED
|
@@ -112,6 +112,10 @@ makeBuyFirstVolume as xlayerMakeBuyFirstVolume, BuyFirstVolumeExecutor as XLayer
|
|
|
112
112
|
AAVolumeBuyFirstExecutor as XLayerAAVolumeBuyFirstExecutor, createAAVolumeBuyFirstExecutor as xlayerCreateAAVolumeBuyFirstExecutor,
|
|
113
113
|
// DEX 交易
|
|
114
114
|
createDexExecutor as xlayerCreateDexExecutor, createDexQuery as xlayerCreateDexQuery, quoteOkbToToken as xlayerQuoteOkbToToken, quoteTokenToOkb as xlayerQuoteTokenToOkb, DexExecutor as XLayerDexExecutor, DexQuery as XLayerDexQuery,
|
|
115
|
+
// ✅ AA 无币刷量模式(Wash Trading)
|
|
116
|
+
buildWashOps,
|
|
117
|
+
// ✅ AA 捆绑刷量模式(Bundle Buy-First)
|
|
118
|
+
buildBundleBuyOps, buildBundleSellOps, buildBundleProfitOp, filterOutProfitOps,
|
|
115
119
|
// ✅ AA 批量买入(安全版:利润配置硬编码在 SDK 内部)
|
|
116
120
|
buildDexBatchBuyOps, buildDexBatchBuyOpsV3,
|
|
117
121
|
// ✅ AA 批量卖出(安全版:利润配置硬编码在 SDK 内部)
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { UserOperation, XLayerConfig } from './types.js';
|
|
16
16
|
export type BundlePoolType = 'flap' | 'v2' | 'v3';
|
|
17
|
+
/** 用户类型(影响利润费率) */
|
|
18
|
+
export type BundleUserType = 'v0' | 'v1';
|
|
17
19
|
export interface BundleBuyOpsParams {
|
|
18
20
|
/** 代币地址 */
|
|
19
21
|
tokenAddress: string;
|
|
@@ -31,6 +33,10 @@ export interface BundleBuyOpsParams {
|
|
|
31
33
|
wrappedOkbAddress?: string;
|
|
32
34
|
/** 交易截止时间(分钟),默认 20 */
|
|
33
35
|
deadlineMinutes?: number;
|
|
36
|
+
/** 用户类型(影响利润费率:v0=0.04%/笔, v1=0.05%/笔) */
|
|
37
|
+
userType?: BundleUserType;
|
|
38
|
+
/** 买卖总笔数(用于计算利润,默认为买家数量) */
|
|
39
|
+
totalTxCount?: number;
|
|
34
40
|
/** SDK 配置 */
|
|
35
41
|
config?: Partial<XLayerConfig>;
|
|
36
42
|
}
|
|
@@ -57,6 +63,10 @@ export interface BundleSellOpsParams {
|
|
|
57
63
|
nonceOffsetMap?: Map<string, number>;
|
|
58
64
|
/** 是否跳过授权(假设已预先授权) */
|
|
59
65
|
skipApprove?: boolean;
|
|
66
|
+
/** 用户类型(影响利润费率:v0=0.04%/笔, v1=0.05%/笔) */
|
|
67
|
+
userType?: BundleUserType;
|
|
68
|
+
/** 买卖总笔数(用于计算利润) */
|
|
69
|
+
totalTxCount?: number;
|
|
60
70
|
/** SDK 配置 */
|
|
61
71
|
config?: Partial<XLayerConfig>;
|
|
62
72
|
}
|
|
@@ -46,9 +46,16 @@ export async function buildBundleBuyOps(params) {
|
|
|
46
46
|
const owners = ownerWallets.map(w => w.address);
|
|
47
47
|
const accounts = await aaManager.getMultipleAccountInfo(owners);
|
|
48
48
|
const senders = accounts.map(ai => String(ai?.sender || ''));
|
|
49
|
-
//
|
|
50
|
-
|
|
49
|
+
// ✅ 利润计算(根据 userType 和交易笔数动态调整)
|
|
50
|
+
// 捆绑模式:每笔交易收取一次费用
|
|
51
|
+
// v0: 4 bps/笔 × 总笔数
|
|
52
|
+
// v1: 5 bps/笔 × 总笔数
|
|
53
|
+
const userType = params.userType || 'v0';
|
|
54
|
+
const profitBpsPerTx = userType === 'v1' ? PROFIT_CONFIG.RATE_BPS_V1_DOUBLE : PROFIT_CONFIG.RATE_BPS_V0_DOUBLE;
|
|
55
|
+
const totalTxCount = params.totalTxCount ?? params.ownerPrivateKeys.length; // 默认为买家数量
|
|
56
|
+
const profitBps = profitBpsPerTx * totalTxCount;
|
|
51
57
|
const profitRecipient = PROFIT_CONFIG.RECIPIENT;
|
|
58
|
+
console.log(`[buildBundleBuyOps] 利润配置: userType=${userType}, 每笔=${profitBpsPerTx}bps, 总笔数=${totalTxCount}, 总费率=${profitBps}bps`);
|
|
52
59
|
const buyWeis = [];
|
|
53
60
|
let totalProfitWei = 0n;
|
|
54
61
|
for (const amt of params.buyAmountsOkb) {
|
|
@@ -191,10 +198,12 @@ export async function buildBundleSellOps(params) {
|
|
|
191
198
|
const owners = ownerWallets.map(w => w.address);
|
|
192
199
|
const accounts = await aaManager.getMultipleAccountInfo(owners);
|
|
193
200
|
const senders = accounts.map(ai => String(ai?.sender || ''));
|
|
194
|
-
//
|
|
195
|
-
|
|
201
|
+
// ✅ 卖出操作不单独计算利润(利润在买入时统一计算)
|
|
202
|
+
// 捆绑模式的利润计算逻辑:
|
|
203
|
+
// - 买入时:根据 userType 和总交易笔数(买+卖)计算利润,从买入金额中扣除
|
|
204
|
+
// - 卖出时:不扣除利润(利润已在买入金额中扣除)
|
|
196
205
|
const profitRecipient = PROFIT_CONFIG.RECIPIENT;
|
|
197
|
-
let totalProfitWei = 0n;
|
|
206
|
+
let totalProfitWei = 0n; // 卖出不产生额外利润
|
|
198
207
|
const unsignedOps = [];
|
|
199
208
|
const opOwnerIndex = [];
|
|
200
209
|
for (let i = 0; i < ownerWallets.length; i++) {
|
package/dist/xlayer/index.d.ts
CHANGED
|
@@ -89,8 +89,8 @@ export { DexQuery, DexExecutor, createDexQuery, createDexExecutor, quoteOkbToTok
|
|
|
89
89
|
export { buildDexBatchBuyOps, buildDexBatchBuyOpsV3, type DexBatchBuyParams, type DexBatchBuyV3Params, type DexBatchBuyResult, } from './dex-aa-buy.js';
|
|
90
90
|
export { buildDexBatchSellOps, buildDexBatchSellOpsV3, type DexBatchSellParams, type DexBatchSellV3Params, type DexBatchSellResult, } from './dex-aa-sell.js';
|
|
91
91
|
export { buildDisperseFromSingleOwnerOpsWithProfit, buildTransfersWithProfit, } from './aa-transfer-profit.js';
|
|
92
|
-
export { buildWashOps, type WashOpsParams, type WashOpsResult, type WashPoolType, } from './wash-ops.js';
|
|
93
|
-
export { buildBundleBuyOps, buildBundleSellOps, buildBundleProfitOp, filterOutProfitOps, type BundleBuyOpsParams, type BundleSellOpsParams, type BundleProfitOpParams, type BundleOpsResult, type BundlePoolType, } from './bundle-buy-first.js';
|
|
92
|
+
export { buildWashOps, type WashOpsParams, type WashOpsResult, type WashPoolType, type WashUserType, } from './wash-ops.js';
|
|
93
|
+
export { buildBundleBuyOps, buildBundleSellOps, buildBundleProfitOp, filterOutProfitOps, type BundleBuyOpsParams, type BundleSellOpsParams, type BundleProfitOpParams, type BundleOpsResult, type BundlePoolType, type BundleUserType, } from './bundle-buy-first.js';
|
|
94
94
|
export declare const xlayer: {
|
|
95
95
|
bundleBuy: (params: import("./types.js").BundleBuyParams) => Promise<import("./types.js").BundleBuyResult>;
|
|
96
96
|
bundleSell: (params: import("./types.js").BundleSellParams) => Promise<import("./types.js").BundleSellResult>;
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { UserOperation, XLayerConfig } from './types.js';
|
|
16
16
|
export type WashPoolType = 'flap' | 'v2' | 'v3';
|
|
17
|
+
/** 用户类型(影响利润费率) */
|
|
18
|
+
export type WashUserType = 'v0' | 'v1';
|
|
17
19
|
export interface WashOpsParams {
|
|
18
20
|
/** 代币地址 */
|
|
19
21
|
tokenAddress: string;
|
|
@@ -31,6 +33,8 @@ export interface WashOpsParams {
|
|
|
31
33
|
wrappedOkbAddress?: string;
|
|
32
34
|
/** 交易截止时间(分钟),默认 20 */
|
|
33
35
|
deadlineMinutes?: number;
|
|
36
|
+
/** 用户类型(影响利润费率:v0=0.08%, v1=0.10%) */
|
|
37
|
+
userType?: WashUserType;
|
|
34
38
|
/** SDK 配置 */
|
|
35
39
|
config?: Partial<XLayerConfig>;
|
|
36
40
|
}
|
package/dist/xlayer/wash-ops.js
CHANGED
|
@@ -59,9 +59,15 @@ export async function buildWashOps(params) {
|
|
|
59
59
|
const owners = ownerWallets.map(w => w.address);
|
|
60
60
|
// 批量获取 accountInfo
|
|
61
61
|
const accounts = await aaManager.getMultipleAccountInfo(owners);
|
|
62
|
-
//
|
|
63
|
-
|
|
62
|
+
// ✅ 利润配置(根据 userType 动态调整)
|
|
63
|
+
// 无币模式是双边(一买一卖),使用双边费率(每边收取)
|
|
64
|
+
// v0: 4 bps × 2 = 8 bps (0.08%)
|
|
65
|
+
// v1: 5 bps × 2 = 10 bps (0.10%)
|
|
66
|
+
const userType = params.userType || 'v0';
|
|
67
|
+
const profitBpsPerSide = userType === 'v1' ? PROFIT_CONFIG.RATE_BPS_V1_DOUBLE : PROFIT_CONFIG.RATE_BPS_V0_DOUBLE;
|
|
68
|
+
const profitBps = profitBpsPerSide * 2; // 双边总费率
|
|
64
69
|
const profitRecipient = PROFIT_CONFIG.RECIPIENT;
|
|
70
|
+
console.log(`[buildWashOps] 利润配置: userType=${userType}, 单边=${profitBpsPerSide}bps, 总费率=${profitBps}bps`);
|
|
65
71
|
// 计算每个钱包的净买入金额(扣除利润后)
|
|
66
72
|
const buyWeiList = [];
|
|
67
73
|
let totalProfitWei = 0n;
|