four-flap-meme-sdk 2.0.0 → 2.2.0
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/__tests__/subpath-exports.test.js +64 -0
- package/dist/chains/bsc/iro.d.ts +5 -0
- package/dist/chains/bsc/iro.js +4 -0
- package/dist/chains/eni/flat-aliases.d.ts +10 -0
- package/dist/chains/eni/flat-aliases.js +8 -0
- package/dist/chains/eni/index.d.ts +1 -0
- package/dist/chains/eni/index.js +1 -0
- package/dist/chains/index.d.ts +13 -0
- package/dist/chains/index.js +13 -0
- package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
- package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
- package/dist/chains/xlayer/eip7702/index.d.ts +1 -0
- package/dist/chains/xlayer/eip7702/index.js +1 -0
- package/dist/chains/xlayer/index.d.ts +3 -2
- package/dist/chains/xlayer/index.js +4 -7
- package/dist/flap/index.d.ts +10 -0
- package/dist/flap/index.js +8 -0
- package/dist/merkle/index.d.ts +12 -0
- package/dist/merkle/index.js +11 -0
- package/dist/shared/constants/index.d.ts +2 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/vanity/index.d.ts +5 -0
- package/dist/vanity/index.js +5 -0
- package/package.json +93 -2
- package/dist/chains/bsc/four/disperse.d.ts +0 -12
- package/dist/chains/bsc/four/disperse.js +0 -470
- package/dist/chains/bsc/four/pairwise.d.ts +0 -7
- package/dist/chains/bsc/four/pairwise.js +0 -308
- package/dist/chains/bsc/four/submit/blockrazor.d.ts +0 -18
- package/dist/chains/bsc/four/submit/blockrazor.js +0 -86
- package/dist/chains/bsc/four/submit/direct.d.ts +0 -66
- package/dist/chains/bsc/four/submit/direct.js +0 -452
- package/dist/chains/bsc/four/submit/helpers.d.ts +0 -18
- package/dist/chains/bsc/four/submit/helpers.js +0 -57
- package/dist/chains/bsc/four/submit/index.d.ts +0 -12
- package/dist/chains/bsc/four/submit/index.js +0 -11
- package/dist/chains/bsc/four/submit/merkle.d.ts +0 -18
- package/dist/chains/bsc/four/submit/merkle.js +0 -74
- package/dist/chains/bsc/four/submit/types.d.ts +0 -143
- package/dist/chains/bsc/four/swap/index.d.ts +0 -32
- package/dist/chains/bsc/four/swap/index.js +0 -829
- package/dist/chains/bsc/four/swap/types.d.ts +0 -70
- package/dist/chains/bsc/four/swap/types.js +0 -1
- package/dist/chains/bsc/four/sweep.d.ts +0 -13
- package/dist/chains/bsc/four/sweep.js +0 -788
- package/dist/chains/bsc/four/utils/index.d.ts +0 -20
- package/dist/chains/bsc/four/utils/index.js +0 -1558
- package/dist/chains/bsc/four/utils/types.d.ts +0 -1
- package/dist/chains/bsc/four/utils/types.js +0 -1
- package/dist/chains/bsc/pancake/bundle-buy-first/index.d.ts +0 -8
- package/dist/chains/bsc/pancake/bundle-buy-first/index.js +0 -907
- package/dist/chains/bsc/pancake/bundle-buy-first/types.d.ts +0 -73
- package/dist/chains/bsc/pancake/bundle-buy-first/types.js +0 -1
- package/dist/chains/bsc/pancake/bundle-swap/helpers.d.ts +0 -102
- package/dist/chains/bsc/pancake/bundle-swap/helpers.js +0 -572
- package/dist/chains/bsc/pancake/bundle-swap/index.d.ts +0 -50
- package/dist/chains/bsc/pancake/bundle-swap/index.js +0 -1066
- package/dist/chains/bsc/pancake/bundle-swap/types.d.ts +0 -202
- package/dist/chains/bsc/pancake/bundle-swap/types.js +0 -3
- package/dist/chains/xlayer/eip7702/bundle-swap/index.d.ts +0 -72
- package/dist/chains/xlayer/eip7702/bundle-swap/index.js +0 -921
- package/dist/chains/xlayer/eip7702/bundle-swap/types.d.ts +0 -65
- package/dist/chains/xlayer/eip7702/bundle-swap/types.js +0 -1
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.d.ts +0 -128
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.js +0 -857
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/types.d.ts +0 -85
- package/dist/chains/xlayer/eip7702/multi-hop-transfer/types.js +0 -1
- package/dist/chains/xlayer/eip7702/volume/index.d.ts +0 -96
- package/dist/chains/xlayer/eip7702/volume/index.js +0 -793
- package/dist/chains/xlayer/eip7702/volume/types.d.ts +0 -124
- package/dist/chains/xlayer/eip7702/volume/types.js +0 -1
- package/dist/chains/xlayer/eoa/types-core.d.ts +0 -363
- package/dist/chains/xlayer/eoa/types-core.js +0 -53
- package/dist/chains/xlayer/eoa/types-create.d.ts +0 -413
- package/dist/chains/xlayer/eoa/types-create.js +0 -9
- package/dist/chains/xlayer/eoa/types-volume.d.ts +0 -209
- package/dist/chains/xlayer/eoa/types-volume.js +0 -13
- package/dist/dex/direct-router/index.d.ts +0 -70
- package/dist/dex/direct-router/index.js +0 -1410
- package/dist/dex/direct-router/types.d.ts +0 -81
- package/dist/dex/direct-router/types.js +0 -1
- package/dist/shared/abis/TaxToken.json +0 -969
- package/dist/shared/abis/TokenManager.json +0 -836
- package/dist/shared/abis/TokenManager2.json +0 -136
- package/dist/shared/abis/TokenManagerHelper3.json +0 -993
- package/dist/shared/abis 2/TaxToken.json +0 -105
- package/dist/shared/abis 2/TokenManager.json +0 -836
- package/dist/shared/abis 2/TokenManager2.json +0 -60
- package/dist/shared/abis 2/TokenManagerHelper3.json +0 -993
- package/dist/shared/abis 2/common.d.ts +0 -85
- package/dist/shared/abis 2/common.js +0 -254
- package/dist/shared/abis 2/index.d.ts +0 -8
- package/dist/shared/abis 2/index.js +0 -8
- package/dist/shared/clients 2/blockrazor.d.ts +0 -314
- package/dist/shared/clients 2/blockrazor.js +0 -596
- package/dist/shared/clients 2/club48.d.ts +0 -154
- package/dist/shared/clients 2/club48.js +0 -331
- package/dist/shared/clients 2/emitservice.d.ts +0 -47
- package/dist/shared/clients 2/emitservice.js +0 -44
- package/dist/shared/clients 2/four.d.ts +0 -132
- package/dist/shared/clients 2/four.js +0 -281
- package/dist/shared/clients 2/merkle.d.ts +0 -210
- package/dist/shared/clients 2/merkle.js +0 -400
- package/dist/shared/flap/__tests__/curve.test.d.ts +0 -1
- package/dist/shared/flap/__tests__/curve.test.js +0 -85
- package/dist/shared/flap/portal/index.d.ts +0 -12
- package/dist/shared/flap/portal/index.js +0 -11
- package/dist/shared/flap/portal/portal.d.ts +0 -47
- package/dist/shared/flap/portal/portal.js +0 -218
- package/dist/shared/flap/portal/types.d.ts +0 -227
- package/dist/shared/flap/portal/types.js +0 -80
- package/dist/shared/flap/portal/writer.d.ts +0 -121
- package/dist/shared/flap/portal/writer.js +0 -265
- package/dist/shared/flap/portal-bundle-merkle/core/index.d.ts +0 -18
- package/dist/shared/flap/portal-bundle-merkle/core/index.js +0 -938
- package/dist/shared/flap/portal-bundle-merkle/core/types.d.ts +0 -1
- package/dist/shared/flap/portal-bundle-merkle/core/types.js +0 -1
- package/dist/shared/flap/portal-bundle-merkle/swap/index.d.ts +0 -42
- package/dist/shared/flap/portal-bundle-merkle/swap/index.js +0 -1448
- package/dist/shared/flap/portal-bundle-merkle/swap/types.d.ts +0 -84
- package/dist/shared/flap/portal-bundle-merkle/swap/types.js +0 -1
- package/dist/shared/flap/portal-bundle-merkle/utils/index.d.ts +0 -17
- package/dist/shared/flap/portal-bundle-merkle/utils/index.js +0 -1024
- package/dist/shared/flap/portal-bundle-merkle/utils/types.d.ts +0 -16
- package/dist/shared/flap/portal-bundle-merkle/utils/types.js +0 -1
- package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +0 -100
- package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +0 -133
- package/dist/shared/flap 2/__tests__/curve.test.d.ts +0 -1
- package/dist/shared/flap 2/__tests__/curve.test.js +0 -85
- package/dist/shared/flap 2/abi.d.ts +0 -4
- package/dist/shared/flap 2/abi.js +0 -4
- package/dist/shared/flap 2/constants.d.ts +0 -128
- package/dist/shared/flap 2/constants.js +0 -143
- package/dist/shared/flap 2/curve.d.ts +0 -33
- package/dist/shared/flap 2/curve.js +0 -84
- package/dist/shared/flap 2/errors.d.ts +0 -37
- package/dist/shared/flap 2/errors.js +0 -114
- package/dist/shared/flap 2/index.d.ts +0 -22
- package/dist/shared/flap 2/index.js +0 -33
- package/dist/shared/flap 2/ipfs.d.ts +0 -21
- package/dist/shared/flap 2/ipfs.js +0 -38
- package/dist/shared/flap 2/meta.d.ts +0 -30
- package/dist/shared/flap 2/meta.js +0 -195
- package/dist/shared/flap 2/permit.d.ts +0 -16
- package/dist/shared/flap 2/permit.js +0 -67
- package/dist/shared/flap 2/pinata.d.ts +0 -40
- package/dist/shared/flap 2/pinata.js +0 -106
- package/dist/shared/flap 2/portal-bundle-merkle/config.d.ts +0 -79
- package/dist/shared/flap 2/portal-bundle-merkle/config.js +0 -133
- package/dist/shared/flap 2/portal-bundle-merkle/core.d.ts +0 -18
- package/dist/shared/flap 2/portal-bundle-merkle/core.js +0 -938
- package/dist/shared/flap 2/portal-bundle-merkle/create-to-dex.d.ts +0 -125
- package/dist/shared/flap 2/portal-bundle-merkle/create-to-dex.js +0 -665
- package/dist/shared/flap 2/portal-bundle-merkle/curve-to-dex.d.ts +0 -88
- package/dist/shared/flap 2/portal-bundle-merkle/curve-to-dex.js +0 -446
- package/dist/shared/flap 2/portal-bundle-merkle/index.d.ts +0 -14
- package/dist/shared/flap 2/portal-bundle-merkle/index.js +0 -26
- package/dist/shared/flap 2/portal-bundle-merkle/pancake-proxy.d.ts +0 -28
- package/dist/shared/flap 2/portal-bundle-merkle/pancake-proxy.js +0 -701
- package/dist/shared/flap 2/portal-bundle-merkle/private.d.ts +0 -17
- package/dist/shared/flap 2/portal-bundle-merkle/private.js +0 -549
- package/dist/shared/flap 2/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
- package/dist/shared/flap 2/portal-bundle-merkle/swap-buy-first.js +0 -831
- package/dist/shared/flap 2/portal-bundle-merkle/swap.d.ts +0 -201
- package/dist/shared/flap 2/portal-bundle-merkle/swap.js +0 -1359
- package/dist/shared/flap 2/portal-bundle-merkle/types.d.ts +0 -358
- package/dist/shared/flap 2/portal-bundle-merkle/types.js +0 -1
- package/dist/shared/flap 2/portal-bundle-merkle/utils.d.ts +0 -89
- package/dist/shared/flap 2/portal-bundle-merkle/utils.js +0 -963
- package/dist/shared/flap 2/portal-bundle.d.ts +0 -119
- package/dist/shared/flap 2/portal-bundle.js +0 -584
- package/dist/shared/flap 2/portal.d.ts +0 -392
- package/dist/shared/flap 2/portal.js +0 -559
- package/dist/shared/flap 2/vanity.d.ts +0 -48
- package/dist/shared/flap 2/vanity.js +0 -110
- package/dist/shared/flap 2/vault.d.ts +0 -240
- package/dist/shared/flap 2/vault.js +0 -366
- package/dist/shared/four 2/index.d.ts +0 -7
- package/dist/shared/four 2/index.js +0 -22
- package/dist/shared/four 2/tax-token.d.ts +0 -176
- package/dist/shared/four 2/tax-token.js +0 -302
- package/dist/shared/index 2.js +0 -10
- package/dist/shared/index.d 2.ts +0 -10
- package/dist/types/distribute.d.ts +0 -72
- package/dist/types/distribute.js +0 -1
- package/dist/types 2/errors.d.ts +0 -27
- package/dist/types 2/errors.js +0 -34
- package/dist/utils/__tests__/errors.test.d.ts +0 -1
- package/dist/utils/__tests__/errors.test.js +0 -76
- package/dist/utils/airdrop-sweep-types.d.ts +0 -1
- package/dist/utils/airdrop-sweep-types.js +0 -1
- package/dist/utils/erc20/index.d.ts +0 -242
- package/dist/utils/erc20/index.js +0 -645
- package/dist/utils/erc20/types.d.ts +0 -77
- package/dist/utils/erc20/types.js +0 -1
- package/dist/utils/erc20-types.d.ts +0 -1
- package/dist/utils/erc20-types.js +0 -1
- package/dist/utils/holders-maker/helpers.d.ts +0 -43
- package/dist/utils/holders-maker/helpers.js +0 -371
- package/dist/utils/holders-maker/index.d.ts +0 -26
- package/dist/utils/holders-maker/index.js +0 -218
- package/dist/utils/holders-maker/types.d.ts +0 -72
- package/dist/utils/holders-maker/types.js +0 -4
- package/dist/utils/holders-maker-types.d.ts +0 -1
- package/dist/utils/holders-maker-types.js +0 -1
- package/dist/utils/lp-inspect/index.d.ts +0 -44
- package/dist/utils/lp-inspect/index.js +0 -937
- package/dist/utils/lp-inspect/types.d.ts +0 -100
- package/dist/utils/lp-inspect/types.js +0 -1
- package/dist/utils/lp-inspect-types.d.ts +0 -1
- package/dist/utils/lp-inspect-types.js +0 -1
- package/dist/utils/private-sale-types.d.ts +0 -1
- package/dist/utils/private-sale-types.js +0 -1
- package/dist/utils/quote-helpers/index.d.ts +0 -107
- package/dist/utils/quote-helpers/index.js +0 -346
- package/dist/utils/quote-helpers/types.d.ts +0 -16
- package/dist/utils/quote-helpers/types.js +0 -1
- package/dist/utils/quote-helpers-types.d.ts +0 -1
- package/dist/utils/quote-helpers-types.js +0 -1
- /package/dist/{chains/bsc/four/submit/types.js → __tests__/subpath-exports.test.d.ts} +0 -0
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import type { TradeType } from '../types.js';
|
|
2
|
-
import type { EIP7702Config } from '../types.js';
|
|
3
|
-
import type { UserType } from '../utils.js';
|
|
4
|
-
import type { GeneratedWallet } from '../../../../utils/wallet.js';
|
|
5
|
-
export type VolumeMode = 'wash' | 'bundle';
|
|
6
|
-
export type PoolType = 'FLAP' | 'V2' | 'V3';
|
|
7
|
-
export interface VolumeProgress {
|
|
8
|
-
currentRound: number;
|
|
9
|
-
totalRounds: number;
|
|
10
|
-
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
11
|
-
message?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface WashVolumeParams {
|
|
14
|
-
/** Payer 钱包私钥(支付 Gas 费) */
|
|
15
|
-
mainPrivateKey: string;
|
|
16
|
-
/** 钱包私钥列表(每个钱包独立执行买入+卖出) */
|
|
17
|
-
privateKeys: string[];
|
|
18
|
-
/** 代币地址 */
|
|
19
|
-
tokenAddress: string;
|
|
20
|
-
/** 代币精度 */
|
|
21
|
-
tokenDecimals?: number;
|
|
22
|
-
/** 每个钱包的买入金额 (OKB) */
|
|
23
|
-
buyAmountPerWallet: string;
|
|
24
|
-
/** 卖出百分比(1-100) */
|
|
25
|
-
sellPercent?: number;
|
|
26
|
-
/** 池子类型 */
|
|
27
|
-
poolType?: PoolType;
|
|
28
|
-
/** 路由地址(V2/V3 模式) */
|
|
29
|
-
routerAddress?: string;
|
|
30
|
-
/** V3 费率 */
|
|
31
|
-
fee?: number;
|
|
32
|
-
/** 用户类型(影响利润率) */
|
|
33
|
-
userType?: UserType;
|
|
34
|
-
/** EIP-7702 配置 */
|
|
35
|
-
config?: EIP7702Config;
|
|
36
|
-
}
|
|
37
|
-
export interface WashVolumeResult {
|
|
38
|
-
signedTransaction: string;
|
|
39
|
-
metadata: {
|
|
40
|
-
walletCount: number;
|
|
41
|
-
buyAmountPerWallet: string;
|
|
42
|
-
totalBuyAmount: string;
|
|
43
|
-
sellPercent: number;
|
|
44
|
-
poolType: PoolType;
|
|
45
|
-
profitAmount: string;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export interface BundleVolumeParams {
|
|
49
|
-
/** Payer 钱包私钥(支付 Gas 费) */
|
|
50
|
-
mainPrivateKey: string;
|
|
51
|
-
/** 买入钱包私钥列表 */
|
|
52
|
-
buyerPrivateKeys: string[];
|
|
53
|
-
/** 每个买家的买入金额 (OKB) */
|
|
54
|
-
buyAmounts: string[];
|
|
55
|
-
/** 卖出钱包私钥列表 */
|
|
56
|
-
sellerPrivateKeys: string[];
|
|
57
|
-
/** 每个卖家的卖出数量(代币)或百分比 */
|
|
58
|
-
sellAmounts?: string[];
|
|
59
|
-
/** 卖出百分比(当 sellAmounts 未提供时使用) */
|
|
60
|
-
sellPercent?: number;
|
|
61
|
-
/** 代币地址 */
|
|
62
|
-
tokenAddress: string;
|
|
63
|
-
/** 代币精度 */
|
|
64
|
-
tokenDecimals?: number;
|
|
65
|
-
/** 池子类型 */
|
|
66
|
-
poolType?: PoolType;
|
|
67
|
-
/** 路由地址 */
|
|
68
|
-
routerAddress?: string;
|
|
69
|
-
/** V3 费率 */
|
|
70
|
-
fee?: number;
|
|
71
|
-
/** 用户类型(影响利润率) */
|
|
72
|
-
userType?: UserType;
|
|
73
|
-
/** EIP-7702 配置 */
|
|
74
|
-
config?: EIP7702Config;
|
|
75
|
-
}
|
|
76
|
-
export interface BundleVolumeResult {
|
|
77
|
-
signedTransaction: string;
|
|
78
|
-
metadata: {
|
|
79
|
-
buyerCount: number;
|
|
80
|
-
sellerCount: number;
|
|
81
|
-
totalBuyAmount: string;
|
|
82
|
-
totalSellAmount: string;
|
|
83
|
-
poolType: PoolType;
|
|
84
|
-
profitAmount: string;
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
export interface SingleRoundVolumeResult {
|
|
88
|
-
buySignedTransaction: string;
|
|
89
|
-
sellSignedTransaction: string;
|
|
90
|
-
metadata: {
|
|
91
|
-
buyAmount: string;
|
|
92
|
-
sellPercent: number;
|
|
93
|
-
walletCount: number;
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
export interface MakeVolumeParams {
|
|
97
|
-
privateKeys: string[];
|
|
98
|
-
tokenAddress: string;
|
|
99
|
-
tokenDecimals?: number;
|
|
100
|
-
buyAmountPerRound: string;
|
|
101
|
-
rounds: number;
|
|
102
|
-
tradeType?: TradeType;
|
|
103
|
-
routerAddress?: string;
|
|
104
|
-
fee?: number;
|
|
105
|
-
onProgress?: (progress: VolumeProgress) => void;
|
|
106
|
-
config?: EIP7702Config;
|
|
107
|
-
}
|
|
108
|
-
export interface MakeVolumeSignResult {
|
|
109
|
-
rounds: SingleRoundVolumeResult[];
|
|
110
|
-
metadata: {
|
|
111
|
-
totalRounds: number;
|
|
112
|
-
totalBuyAmount: string;
|
|
113
|
-
walletCount: number;
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
export interface SwapVolumeSignResult {
|
|
117
|
-
signedTransaction: string;
|
|
118
|
-
hopWallets: GeneratedWallet[];
|
|
119
|
-
metadata: {
|
|
120
|
-
sellerAddress: string;
|
|
121
|
-
buyerAddress: string;
|
|
122
|
-
sellAmount: string;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* XLayer SDK 类型定义
|
|
3
|
-
*
|
|
4
|
-
* 包含 ERC-4337 UserOperation、AA 账户、交易参数等核心类型
|
|
5
|
-
*/
|
|
6
|
-
import type { HexString } from './constants.js';
|
|
7
|
-
import type { HandleOpsResult } from './types-volume.js';
|
|
8
|
-
/**
|
|
9
|
-
* UserOperation v0.6 结构
|
|
10
|
-
* 用于 ERC-4337 EntryPoint v0.6
|
|
11
|
-
*/
|
|
12
|
-
export interface UserOperation {
|
|
13
|
-
sender: string;
|
|
14
|
-
nonce: HexString | string;
|
|
15
|
-
initCode: HexString | string;
|
|
16
|
-
callData: HexString | string;
|
|
17
|
-
callGasLimit: HexString | string;
|
|
18
|
-
verificationGasLimit: HexString | string;
|
|
19
|
-
preVerificationGas: HexString | string;
|
|
20
|
-
maxFeePerGas: HexString | string;
|
|
21
|
-
maxPriorityFeePerGas: HexString | string;
|
|
22
|
-
paymasterAndData: HexString | string;
|
|
23
|
-
signature: HexString | string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 签名后的 UserOperation(包含额外元数据)
|
|
27
|
-
*/
|
|
28
|
-
export interface SignedUserOp {
|
|
29
|
-
userOp: UserOperation;
|
|
30
|
-
userOpHash: string;
|
|
31
|
-
prefundWei: bigint;
|
|
32
|
-
sender: string;
|
|
33
|
-
ownerName?: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Gas 估算结果(来自 Bundler)
|
|
37
|
-
*/
|
|
38
|
-
export interface GasEstimate {
|
|
39
|
-
callGasLimit: HexString;
|
|
40
|
-
verificationGasLimit: HexString;
|
|
41
|
-
preVerificationGas: HexString;
|
|
42
|
-
maxFeePerGas?: HexString;
|
|
43
|
-
maxPriorityFeePerGas?: HexString;
|
|
44
|
-
}
|
|
45
|
-
export type GasPolicy = 'fixed' | 'localEstimate' | 'bundlerEstimate';
|
|
46
|
-
export interface FixedGasConfig {
|
|
47
|
-
/** callGasLimit(若不提供,SDK 会使用较保守的默认值) */
|
|
48
|
-
callGasLimit?: bigint;
|
|
49
|
-
/** 已部署 sender 的 verificationGasLimit(默认用 SDK 常量) */
|
|
50
|
-
verificationGasLimitDeployed?: bigint;
|
|
51
|
-
/** 未部署 sender 的 verificationGasLimit(默认用 SDK 常量) */
|
|
52
|
-
verificationGasLimitUndeployed?: bigint;
|
|
53
|
-
/** preVerificationGas(默认用 SDK 常量) */
|
|
54
|
-
preVerificationGas?: bigint;
|
|
55
|
-
/** ✅ 固定 gasPrice(若不提供,SDK 会调用 getFeeData 获取) */
|
|
56
|
-
gasPrice?: bigint;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* XLayer SDK 基础配置
|
|
60
|
-
*/
|
|
61
|
-
export interface XLayerConfig {
|
|
62
|
-
/** RPC URL(默认使用公共节点) */
|
|
63
|
-
rpcUrl?: string;
|
|
64
|
-
/** Bundler URL(默认使用 Particle) */
|
|
65
|
-
bundlerUrl?: string;
|
|
66
|
-
/** Chain ID(默认 196) */
|
|
67
|
-
chainId?: number;
|
|
68
|
-
/** EntryPoint 地址 */
|
|
69
|
-
entryPoint?: string;
|
|
70
|
-
/** SimpleAccountFactory 地址 */
|
|
71
|
-
factory?: string;
|
|
72
|
-
/** Salt(用于 AA 账户派生) */
|
|
73
|
-
salt?: bigint;
|
|
74
|
-
/** Paymaster 地址(如果指定,不需要往 AA 转手续费) */
|
|
75
|
-
paymaster?: string;
|
|
76
|
-
/** Paymaster Data(与 paymaster 一起使用) */
|
|
77
|
-
paymasterData?: string;
|
|
78
|
-
/** 默认超时时间(毫秒) */
|
|
79
|
-
timeoutMs?: number;
|
|
80
|
-
/** Gas 估算安全余量倍数 */
|
|
81
|
-
gasLimitMultiplier?: number;
|
|
82
|
-
/** Payer handleOps 交易的 gasLimit(手动覆盖) */
|
|
83
|
-
gasLimit?: bigint;
|
|
84
|
-
/** Payer handleOps 交易的最小 gasPrice (Gwei) */
|
|
85
|
-
minGasPriceGwei?: number;
|
|
86
|
-
/** 利润尾笔原生转账 gasLimit(默认 21000n) */
|
|
87
|
-
profitTailGasLimit?: bigint;
|
|
88
|
-
/**
|
|
89
|
-
* AA Gas 策略(用于大规模地址时减少 RPC)
|
|
90
|
-
* - fixed:固定 gas(不 estimate)
|
|
91
|
-
* - localEstimate:eth_estimateGas(不走 bundler)
|
|
92
|
-
* - bundlerEstimate:eth_estimateUserOperationGas(最慢但最稳)
|
|
93
|
-
*/
|
|
94
|
-
gasPolicy?: GasPolicy;
|
|
95
|
-
/** fixed 策略的默认 gas 配置(可被每次调用覆盖) */
|
|
96
|
-
fixedGas?: FixedGasConfig;
|
|
97
|
-
/**
|
|
98
|
-
* 是否提取利润(默认 true)
|
|
99
|
-
* - 对齐 BSC:默认会从“卖出得到的 OKB / 归集金额”中按比例刮取利润
|
|
100
|
-
*/
|
|
101
|
-
extractProfit?: boolean;
|
|
102
|
-
/**
|
|
103
|
-
* 利润比例(基点 bps,1 bps = 0.01%)
|
|
104
|
-
* - 默认使用 `getProfitRateBps('normal')`
|
|
105
|
-
*/
|
|
106
|
-
profitBps?: number;
|
|
107
|
-
/**
|
|
108
|
-
* 利润接收地址
|
|
109
|
-
* - 默认使用 `getProfitRecipient()`
|
|
110
|
-
*/
|
|
111
|
-
profitRecipient?: string;
|
|
112
|
-
/**
|
|
113
|
-
* ✅ 安全边际百分比(默认 80)
|
|
114
|
-
* - 只使用报价的 X% 进行分发,防止价格下跌导致失败
|
|
115
|
-
* - 例如:80 表示只使用报价的 80%,允许价格下跌 20%
|
|
116
|
-
* - 范围:50-100,越低越安全但买入金额越少
|
|
117
|
-
*/
|
|
118
|
-
safetyMarginPercent?: number;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* AA 账户信息
|
|
122
|
-
*/
|
|
123
|
-
export interface AAAccount {
|
|
124
|
-
/** Owner EOA 地址 */
|
|
125
|
-
owner: string;
|
|
126
|
-
/** AA Sender 地址 */
|
|
127
|
-
sender: string;
|
|
128
|
-
/** 是否已部署 */
|
|
129
|
-
deployed: boolean;
|
|
130
|
-
/** OKB 余额 */
|
|
131
|
-
balance: bigint;
|
|
132
|
-
/** Nonce */
|
|
133
|
-
nonce: bigint;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Owner 钱包信息
|
|
137
|
-
*/
|
|
138
|
-
export interface OwnerInfo {
|
|
139
|
-
name: string;
|
|
140
|
-
privateKey: string;
|
|
141
|
-
address?: string;
|
|
142
|
-
sender?: string;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* 买入参数
|
|
146
|
-
*/
|
|
147
|
-
export interface BuyParams {
|
|
148
|
-
/** Flap 代币地址 */
|
|
149
|
-
tokenAddress: string;
|
|
150
|
-
/** 买入金额(OKB,字符串格式) */
|
|
151
|
-
amountOkb: string;
|
|
152
|
-
/** 最小输出代币数量(默认 0) */
|
|
153
|
-
minOutputAmount?: bigint;
|
|
154
|
-
/** 滑点基点(默认 100 = 1%) */
|
|
155
|
-
slippageBps?: number;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* 卖出参数
|
|
159
|
-
*/
|
|
160
|
-
export interface SellParams {
|
|
161
|
-
/** Flap 代币地址 */
|
|
162
|
-
tokenAddress: string;
|
|
163
|
-
/** 卖出代币数量(可选,默认全部) */
|
|
164
|
-
amount?: bigint;
|
|
165
|
-
/** 卖出比例(0-100,如 50 表示卖出 50%) */
|
|
166
|
-
sellPercent?: number;
|
|
167
|
-
/** 最小输出 OKB 数量(默认 0) */
|
|
168
|
-
minOutputAmount?: bigint;
|
|
169
|
-
/** 滑点基点(默认 100 = 1%) */
|
|
170
|
-
slippageBps?: number;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* 捆绑买入参数
|
|
174
|
-
*/
|
|
175
|
-
export interface BundleBuyParams {
|
|
176
|
-
/** 代币地址 */
|
|
177
|
-
tokenAddress: string;
|
|
178
|
-
/** Owner 私钥列表 */
|
|
179
|
-
privateKeys: string[];
|
|
180
|
-
/** 每个 owner 的买入金额(OKB 或 quoteToken,取决于 quoteToken 参数) */
|
|
181
|
-
buyAmounts: string[];
|
|
182
|
-
/** 买入使用的代币地址(零地址表示使用原生代币 OKB,非零地址表示使用 ERC20 代币如 USDC) */
|
|
183
|
-
quoteToken?: string;
|
|
184
|
-
/** quoteToken 的精度(默认 18,如果 quoteToken 不是 18 位精度需要指定) */
|
|
185
|
-
quoteTokenDecimals?: number;
|
|
186
|
-
/** 是否将代币转回 owner EOA(默认 false) */
|
|
187
|
-
transferBackToOwner?: boolean;
|
|
188
|
-
/** 配置覆盖 */
|
|
189
|
-
config?: Partial<XLayerConfig>;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* 捆绑卖出参数
|
|
193
|
-
*/
|
|
194
|
-
export interface BundleSellParams {
|
|
195
|
-
/** 代币地址 */
|
|
196
|
-
tokenAddress: string;
|
|
197
|
-
/** Owner 私钥列表 */
|
|
198
|
-
privateKeys: string[];
|
|
199
|
-
/** 卖出比例(0-100,默认 100 全部卖出) */
|
|
200
|
-
sellPercent?: number;
|
|
201
|
-
/** 是否将 OKB 归集回 owner EOA(默认 true) */
|
|
202
|
-
withdrawToOwner?: boolean;
|
|
203
|
-
/** 归集时保留的最小 OKB 余额 */
|
|
204
|
-
withdrawReserve?: string;
|
|
205
|
-
/** 配置覆盖 */
|
|
206
|
-
config?: Partial<XLayerConfig>;
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* 捆绑买卖参数(先买后卖)
|
|
210
|
-
*/
|
|
211
|
-
export interface BundleBuySellParams {
|
|
212
|
-
/** 代币地址 */
|
|
213
|
-
tokenAddress: string;
|
|
214
|
-
/** Owner 私钥列表 */
|
|
215
|
-
privateKeys: string[];
|
|
216
|
-
/** 每个 owner 的買入金额(OKB 或 quoteToken,取决于 quoteToken 参数) */
|
|
217
|
-
buyAmounts: string[];
|
|
218
|
-
/** 买入使用的代币地址(零地址表示使用原生代币 OKB,非零地址表示使用 ERC20 代币如 USDC) */
|
|
219
|
-
quoteToken?: string;
|
|
220
|
-
/** quoteToken 的精度(默认 18,如果 quoteToken 不是 18 位精度需要指定) */
|
|
221
|
-
quoteTokenDecimals?: number;
|
|
222
|
-
/** 卖出比例(0-100,默认 100 全部卖出) */
|
|
223
|
-
sellPercent?: number;
|
|
224
|
-
/** 是否将 OKB 归集回 owner EOA(默认 true) */
|
|
225
|
-
withdrawToOwner?: boolean;
|
|
226
|
-
/** 归集时保留的最小 OKB 余额 */
|
|
227
|
-
withdrawReserve?: string;
|
|
228
|
-
/** 配置覆盖 */
|
|
229
|
-
config?: Partial<XLayerConfig>;
|
|
230
|
-
/** LP 费率档位 (V3 专用): 0=STANDARD, 1=LOW, 2=HIGH */
|
|
231
|
-
lpFeeProfile?: number;
|
|
232
|
-
/** DEX 类型: 'V2' | 'V3' */
|
|
233
|
-
dexType?: 'V2' | 'V3';
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* 捆绑发射签名参数
|
|
237
|
-
*/
|
|
238
|
-
export interface BundlePreApproveParams {
|
|
239
|
-
/** 代币地址 */
|
|
240
|
-
tokenAddress: string;
|
|
241
|
-
/** Owner 私钥列表 */
|
|
242
|
-
privateKeys: string[];
|
|
243
|
-
/** 授权目标(默认 FLAP_PORTAL,可传 Router 地址用于外盘交易) */
|
|
244
|
-
spender?: string;
|
|
245
|
-
/**
|
|
246
|
-
* 是否仅签名(不执行)
|
|
247
|
-
* - true: 返回签名后的 handleOps 交易,由前端发送到服务端广播
|
|
248
|
-
* - false(默认): 直接执行 handleOps
|
|
249
|
-
*/
|
|
250
|
-
signOnly?: boolean;
|
|
251
|
-
/** 配置覆盖 */
|
|
252
|
-
config?: Partial<XLayerConfig>;
|
|
253
|
-
/** Payer 私钥(signOnly=true 时必传,用于支付 gas) */
|
|
254
|
-
payerPrivateKey?: string;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* 预授权结果
|
|
258
|
-
*/
|
|
259
|
-
export interface BundlePreApproveResult {
|
|
260
|
-
/** 发送授权交易的数量 */
|
|
261
|
-
approvedCount: number;
|
|
262
|
-
/** 已经授权无需操作的数量 */
|
|
263
|
-
alreadyApprovedCount: number;
|
|
264
|
-
/** 授权交易结果(signOnly=false 时有值) */
|
|
265
|
-
approveResult?: HandleOpsResult;
|
|
266
|
-
/** 每个地址的授权状态详情 */
|
|
267
|
-
details: ApprovalStatusResult[];
|
|
268
|
-
/** signOnly=true 时:签名后的 handleOps 交易(raw signed tx) */
|
|
269
|
-
signedTransactions?: string[];
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* 授权状态检查结果
|
|
273
|
-
*/
|
|
274
|
-
export interface ApprovalStatusResult {
|
|
275
|
-
/** Owner EOA 地址 */
|
|
276
|
-
owner: string;
|
|
277
|
-
/** AA Sender 地址 */
|
|
278
|
-
sender: string;
|
|
279
|
-
/** 是否已授权(授权额度 >= 代币余额) */
|
|
280
|
-
isApproved: boolean;
|
|
281
|
-
/** 当前授权额度 */
|
|
282
|
-
currentAllowance: bigint;
|
|
283
|
-
/** 当前代币余额 */
|
|
284
|
-
tokenBalance: bigint;
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* 深度 Partial 类型
|
|
288
|
-
*/
|
|
289
|
-
export type DeepPartial<T> = {
|
|
290
|
-
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
291
|
-
};
|
|
292
|
-
/**
|
|
293
|
-
* ✅ 仅用于 ERC-4337 AA(EntryPoint.getNonce(sender, 0))
|
|
294
|
-
*
|
|
295
|
-
* 目标:不要在业务代码里手写 `+1/+2` 推导,而是像 BSC bundle 一样用本地 Map
|
|
296
|
-
* 对“同一 sender 多步流程”连续分配 nonce。
|
|
297
|
-
*
|
|
298
|
-
* 注意:
|
|
299
|
-
* - 这是**同一次 SDK 调用/同一条流程**内的 nonce 分配;不解决多进程/多并发任务同时使用同一 sender 的问题。
|
|
300
|
-
* - 对“可能不生成 op”的分支(例如 withdraw 返回 null),使用 peek + commit,避免提前消耗 nonce。
|
|
301
|
-
*/
|
|
302
|
-
export declare class AANonceMap {
|
|
303
|
-
private nextBySenderLower;
|
|
304
|
-
init(sender: string, startNonce: bigint): void;
|
|
305
|
-
peek(sender: string): bigint;
|
|
306
|
-
commit(sender: string, usedNonce: bigint): void;
|
|
307
|
-
next(sender: string): bigint;
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* 必需的配置字段
|
|
311
|
-
*/
|
|
312
|
-
export type RequiredConfig = Required<Pick<XLayerConfig, 'rpcUrl' | 'bundlerUrl' | 'chainId' | 'entryPoint' | 'factory'>>;
|
|
313
|
-
/**
|
|
314
|
-
* 捆绑买到毕业签名参数
|
|
315
|
-
*/
|
|
316
|
-
export interface BundleGraduateBuyParams {
|
|
317
|
-
/** 代位地址 */
|
|
318
|
-
tokenAddress: string;
|
|
319
|
-
/** 买入钱包私钥数组 */
|
|
320
|
-
privateKeys: string[];
|
|
321
|
-
/** AA Payer 私钥 */
|
|
322
|
-
payerPrivateKey: string;
|
|
323
|
-
/** 分配模式 */
|
|
324
|
-
amountMode: 'average' | 'random' | 'custom';
|
|
325
|
-
/** 平均模式:总买入金额 */
|
|
326
|
-
totalBuyAmount?: number;
|
|
327
|
-
/** 随机模式:最小金额 / 最大金额 */
|
|
328
|
-
minAmount?: number;
|
|
329
|
-
maxAmount?: number;
|
|
330
|
-
/** 自定义模式:地址 -> 金额 */
|
|
331
|
-
walletAmounts?: Record<string, number>;
|
|
332
|
-
/** 是否启用外盘买入(默认 false) */
|
|
333
|
-
enableDexBuy?: boolean;
|
|
334
|
-
/** 内盘钱包地址列表(可选,传入则使用前端分组,不传则 SDK 自动分组) */
|
|
335
|
-
curveAddresses?: string[];
|
|
336
|
-
/** 外盘钱包地址列表(可选) */
|
|
337
|
-
dexAddresses?: string[];
|
|
338
|
-
/** 动态毕业阈值(可选,不传则使用默认 73.38 OKB) */
|
|
339
|
-
graduationAmount?: number;
|
|
340
|
-
/** 配置覆盖 */
|
|
341
|
-
config?: Partial<XLayerConfig>;
|
|
342
|
-
/** 扩展数据(传递给 swapExactInputV3,默认 0x) */
|
|
343
|
-
extensionData?: string;
|
|
344
|
-
/** Payer 起始 nonce */
|
|
345
|
-
payerStartNonce?: number;
|
|
346
|
-
/** beneficiary(默认 payer 地址) */
|
|
347
|
-
beneficiary?: string;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* 捆绑买到毕业签名结果
|
|
351
|
-
*/
|
|
352
|
-
export interface BundleGraduateBuyResult {
|
|
353
|
-
/** raw signed tx 列表 */
|
|
354
|
-
signedTransactions: string[];
|
|
355
|
-
/** 元数据 */
|
|
356
|
-
metadata: {
|
|
357
|
-
curveCount: number;
|
|
358
|
-
dexCount: number;
|
|
359
|
-
curveTotalAmount: string;
|
|
360
|
-
dexTotalAmount: string;
|
|
361
|
-
tokenAddress: string;
|
|
362
|
-
};
|
|
363
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* XLayer SDK 类型定义
|
|
3
|
-
*
|
|
4
|
-
* 包含 ERC-4337 UserOperation、AA 账户、交易参数等核心类型
|
|
5
|
-
*/
|
|
6
|
-
// ==================== AA Nonce(EntryPoint nonce)本地分配器 ====================
|
|
7
|
-
/**
|
|
8
|
-
* ✅ 仅用于 ERC-4337 AA(EntryPoint.getNonce(sender, 0))
|
|
9
|
-
*
|
|
10
|
-
* 目标:不要在业务代码里手写 `+1/+2` 推导,而是像 BSC bundle 一样用本地 Map
|
|
11
|
-
* 对“同一 sender 多步流程”连续分配 nonce。
|
|
12
|
-
*
|
|
13
|
-
* 注意:
|
|
14
|
-
* - 这是**同一次 SDK 调用/同一条流程**内的 nonce 分配;不解决多进程/多并发任务同时使用同一 sender 的问题。
|
|
15
|
-
* - 对“可能不生成 op”的分支(例如 withdraw 返回 null),使用 peek + commit,避免提前消耗 nonce。
|
|
16
|
-
*/
|
|
17
|
-
export class AANonceMap {
|
|
18
|
-
nextBySenderLower = new Map();
|
|
19
|
-
init(sender, startNonce) {
|
|
20
|
-
const k = sender.toLowerCase();
|
|
21
|
-
const cur = this.nextBySenderLower.get(k);
|
|
22
|
-
if (cur === undefined || startNonce > cur) {
|
|
23
|
-
this.nextBySenderLower.set(k, startNonce);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
peek(sender) {
|
|
27
|
-
const k = sender.toLowerCase();
|
|
28
|
-
const cur = this.nextBySenderLower.get(k);
|
|
29
|
-
if (cur === undefined) {
|
|
30
|
-
throw new Error(`AANonceMap: sender not initialized: ${sender}`);
|
|
31
|
-
}
|
|
32
|
-
return cur;
|
|
33
|
-
}
|
|
34
|
-
commit(sender, usedNonce) {
|
|
35
|
-
const k = sender.toLowerCase();
|
|
36
|
-
const cur = this.nextBySenderLower.get(k);
|
|
37
|
-
if (cur === undefined) {
|
|
38
|
-
throw new Error(`AANonceMap: sender not initialized: ${sender}`);
|
|
39
|
-
}
|
|
40
|
-
// 只允许“使用当前 nonce”或“重复 commit”(幂等)
|
|
41
|
-
if (usedNonce !== cur && usedNonce !== cur - 1n) {
|
|
42
|
-
throw new Error(`AANonceMap: nonce mismatch for ${sender}: used=${usedNonce.toString()} cur=${cur.toString()}`);
|
|
43
|
-
}
|
|
44
|
-
if (usedNonce === cur) {
|
|
45
|
-
this.nextBySenderLower.set(k, cur + 1n);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
next(sender) {
|
|
49
|
-
const n = this.peek(sender);
|
|
50
|
-
this.commit(sender, n);
|
|
51
|
-
return n;
|
|
52
|
-
}
|
|
53
|
-
}
|