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.
Files changed (220) hide show
  1. package/dist/__tests__/subpath-exports.test.js +64 -0
  2. package/dist/chains/bsc/iro.d.ts +5 -0
  3. package/dist/chains/bsc/iro.js +4 -0
  4. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  5. package/dist/chains/eni/flat-aliases.js +8 -0
  6. package/dist/chains/eni/index.d.ts +1 -0
  7. package/dist/chains/eni/index.js +1 -0
  8. package/dist/chains/index.d.ts +13 -0
  9. package/dist/chains/index.js +13 -0
  10. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  11. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  12. package/dist/chains/xlayer/eip7702/index.d.ts +1 -0
  13. package/dist/chains/xlayer/eip7702/index.js +1 -0
  14. package/dist/chains/xlayer/index.d.ts +3 -2
  15. package/dist/chains/xlayer/index.js +4 -7
  16. package/dist/flap/index.d.ts +10 -0
  17. package/dist/flap/index.js +8 -0
  18. package/dist/merkle/index.d.ts +12 -0
  19. package/dist/merkle/index.js +11 -0
  20. package/dist/shared/constants/index.d.ts +2 -0
  21. package/dist/shared/index.d.ts +2 -0
  22. package/dist/vanity/index.d.ts +5 -0
  23. package/dist/vanity/index.js +5 -0
  24. package/package.json +93 -2
  25. package/dist/chains/bsc/four/disperse.d.ts +0 -12
  26. package/dist/chains/bsc/four/disperse.js +0 -470
  27. package/dist/chains/bsc/four/pairwise.d.ts +0 -7
  28. package/dist/chains/bsc/four/pairwise.js +0 -308
  29. package/dist/chains/bsc/four/submit/blockrazor.d.ts +0 -18
  30. package/dist/chains/bsc/four/submit/blockrazor.js +0 -86
  31. package/dist/chains/bsc/four/submit/direct.d.ts +0 -66
  32. package/dist/chains/bsc/four/submit/direct.js +0 -452
  33. package/dist/chains/bsc/four/submit/helpers.d.ts +0 -18
  34. package/dist/chains/bsc/four/submit/helpers.js +0 -57
  35. package/dist/chains/bsc/four/submit/index.d.ts +0 -12
  36. package/dist/chains/bsc/four/submit/index.js +0 -11
  37. package/dist/chains/bsc/four/submit/merkle.d.ts +0 -18
  38. package/dist/chains/bsc/four/submit/merkle.js +0 -74
  39. package/dist/chains/bsc/four/submit/types.d.ts +0 -143
  40. package/dist/chains/bsc/four/swap/index.d.ts +0 -32
  41. package/dist/chains/bsc/four/swap/index.js +0 -829
  42. package/dist/chains/bsc/four/swap/types.d.ts +0 -70
  43. package/dist/chains/bsc/four/swap/types.js +0 -1
  44. package/dist/chains/bsc/four/sweep.d.ts +0 -13
  45. package/dist/chains/bsc/four/sweep.js +0 -788
  46. package/dist/chains/bsc/four/utils/index.d.ts +0 -20
  47. package/dist/chains/bsc/four/utils/index.js +0 -1558
  48. package/dist/chains/bsc/four/utils/types.d.ts +0 -1
  49. package/dist/chains/bsc/four/utils/types.js +0 -1
  50. package/dist/chains/bsc/pancake/bundle-buy-first/index.d.ts +0 -8
  51. package/dist/chains/bsc/pancake/bundle-buy-first/index.js +0 -907
  52. package/dist/chains/bsc/pancake/bundle-buy-first/types.d.ts +0 -73
  53. package/dist/chains/bsc/pancake/bundle-buy-first/types.js +0 -1
  54. package/dist/chains/bsc/pancake/bundle-swap/helpers.d.ts +0 -102
  55. package/dist/chains/bsc/pancake/bundle-swap/helpers.js +0 -572
  56. package/dist/chains/bsc/pancake/bundle-swap/index.d.ts +0 -50
  57. package/dist/chains/bsc/pancake/bundle-swap/index.js +0 -1066
  58. package/dist/chains/bsc/pancake/bundle-swap/types.d.ts +0 -202
  59. package/dist/chains/bsc/pancake/bundle-swap/types.js +0 -3
  60. package/dist/chains/xlayer/eip7702/bundle-swap/index.d.ts +0 -72
  61. package/dist/chains/xlayer/eip7702/bundle-swap/index.js +0 -921
  62. package/dist/chains/xlayer/eip7702/bundle-swap/types.d.ts +0 -65
  63. package/dist/chains/xlayer/eip7702/bundle-swap/types.js +0 -1
  64. package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.d.ts +0 -128
  65. package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.js +0 -857
  66. package/dist/chains/xlayer/eip7702/multi-hop-transfer/types.d.ts +0 -85
  67. package/dist/chains/xlayer/eip7702/multi-hop-transfer/types.js +0 -1
  68. package/dist/chains/xlayer/eip7702/volume/index.d.ts +0 -96
  69. package/dist/chains/xlayer/eip7702/volume/index.js +0 -793
  70. package/dist/chains/xlayer/eip7702/volume/types.d.ts +0 -124
  71. package/dist/chains/xlayer/eip7702/volume/types.js +0 -1
  72. package/dist/chains/xlayer/eoa/types-core.d.ts +0 -363
  73. package/dist/chains/xlayer/eoa/types-core.js +0 -53
  74. package/dist/chains/xlayer/eoa/types-create.d.ts +0 -413
  75. package/dist/chains/xlayer/eoa/types-create.js +0 -9
  76. package/dist/chains/xlayer/eoa/types-volume.d.ts +0 -209
  77. package/dist/chains/xlayer/eoa/types-volume.js +0 -13
  78. package/dist/dex/direct-router/index.d.ts +0 -70
  79. package/dist/dex/direct-router/index.js +0 -1410
  80. package/dist/dex/direct-router/types.d.ts +0 -81
  81. package/dist/dex/direct-router/types.js +0 -1
  82. package/dist/shared/abis/TaxToken.json +0 -969
  83. package/dist/shared/abis/TokenManager.json +0 -836
  84. package/dist/shared/abis/TokenManager2.json +0 -136
  85. package/dist/shared/abis/TokenManagerHelper3.json +0 -993
  86. package/dist/shared/abis 2/TaxToken.json +0 -105
  87. package/dist/shared/abis 2/TokenManager.json +0 -836
  88. package/dist/shared/abis 2/TokenManager2.json +0 -60
  89. package/dist/shared/abis 2/TokenManagerHelper3.json +0 -993
  90. package/dist/shared/abis 2/common.d.ts +0 -85
  91. package/dist/shared/abis 2/common.js +0 -254
  92. package/dist/shared/abis 2/index.d.ts +0 -8
  93. package/dist/shared/abis 2/index.js +0 -8
  94. package/dist/shared/clients 2/blockrazor.d.ts +0 -314
  95. package/dist/shared/clients 2/blockrazor.js +0 -596
  96. package/dist/shared/clients 2/club48.d.ts +0 -154
  97. package/dist/shared/clients 2/club48.js +0 -331
  98. package/dist/shared/clients 2/emitservice.d.ts +0 -47
  99. package/dist/shared/clients 2/emitservice.js +0 -44
  100. package/dist/shared/clients 2/four.d.ts +0 -132
  101. package/dist/shared/clients 2/four.js +0 -281
  102. package/dist/shared/clients 2/merkle.d.ts +0 -210
  103. package/dist/shared/clients 2/merkle.js +0 -400
  104. package/dist/shared/flap/__tests__/curve.test.d.ts +0 -1
  105. package/dist/shared/flap/__tests__/curve.test.js +0 -85
  106. package/dist/shared/flap/portal/index.d.ts +0 -12
  107. package/dist/shared/flap/portal/index.js +0 -11
  108. package/dist/shared/flap/portal/portal.d.ts +0 -47
  109. package/dist/shared/flap/portal/portal.js +0 -218
  110. package/dist/shared/flap/portal/types.d.ts +0 -227
  111. package/dist/shared/flap/portal/types.js +0 -80
  112. package/dist/shared/flap/portal/writer.d.ts +0 -121
  113. package/dist/shared/flap/portal/writer.js +0 -265
  114. package/dist/shared/flap/portal-bundle-merkle/core/index.d.ts +0 -18
  115. package/dist/shared/flap/portal-bundle-merkle/core/index.js +0 -938
  116. package/dist/shared/flap/portal-bundle-merkle/core/types.d.ts +0 -1
  117. package/dist/shared/flap/portal-bundle-merkle/core/types.js +0 -1
  118. package/dist/shared/flap/portal-bundle-merkle/swap/index.d.ts +0 -42
  119. package/dist/shared/flap/portal-bundle-merkle/swap/index.js +0 -1448
  120. package/dist/shared/flap/portal-bundle-merkle/swap/types.d.ts +0 -84
  121. package/dist/shared/flap/portal-bundle-merkle/swap/types.js +0 -1
  122. package/dist/shared/flap/portal-bundle-merkle/utils/index.d.ts +0 -17
  123. package/dist/shared/flap/portal-bundle-merkle/utils/index.js +0 -1024
  124. package/dist/shared/flap/portal-bundle-merkle/utils/types.d.ts +0 -16
  125. package/dist/shared/flap/portal-bundle-merkle/utils/types.js +0 -1
  126. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +0 -100
  127. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +0 -133
  128. package/dist/shared/flap 2/__tests__/curve.test.d.ts +0 -1
  129. package/dist/shared/flap 2/__tests__/curve.test.js +0 -85
  130. package/dist/shared/flap 2/abi.d.ts +0 -4
  131. package/dist/shared/flap 2/abi.js +0 -4
  132. package/dist/shared/flap 2/constants.d.ts +0 -128
  133. package/dist/shared/flap 2/constants.js +0 -143
  134. package/dist/shared/flap 2/curve.d.ts +0 -33
  135. package/dist/shared/flap 2/curve.js +0 -84
  136. package/dist/shared/flap 2/errors.d.ts +0 -37
  137. package/dist/shared/flap 2/errors.js +0 -114
  138. package/dist/shared/flap 2/index.d.ts +0 -22
  139. package/dist/shared/flap 2/index.js +0 -33
  140. package/dist/shared/flap 2/ipfs.d.ts +0 -21
  141. package/dist/shared/flap 2/ipfs.js +0 -38
  142. package/dist/shared/flap 2/meta.d.ts +0 -30
  143. package/dist/shared/flap 2/meta.js +0 -195
  144. package/dist/shared/flap 2/permit.d.ts +0 -16
  145. package/dist/shared/flap 2/permit.js +0 -67
  146. package/dist/shared/flap 2/pinata.d.ts +0 -40
  147. package/dist/shared/flap 2/pinata.js +0 -106
  148. package/dist/shared/flap 2/portal-bundle-merkle/config.d.ts +0 -79
  149. package/dist/shared/flap 2/portal-bundle-merkle/config.js +0 -133
  150. package/dist/shared/flap 2/portal-bundle-merkle/core.d.ts +0 -18
  151. package/dist/shared/flap 2/portal-bundle-merkle/core.js +0 -938
  152. package/dist/shared/flap 2/portal-bundle-merkle/create-to-dex.d.ts +0 -125
  153. package/dist/shared/flap 2/portal-bundle-merkle/create-to-dex.js +0 -665
  154. package/dist/shared/flap 2/portal-bundle-merkle/curve-to-dex.d.ts +0 -88
  155. package/dist/shared/flap 2/portal-bundle-merkle/curve-to-dex.js +0 -446
  156. package/dist/shared/flap 2/portal-bundle-merkle/index.d.ts +0 -14
  157. package/dist/shared/flap 2/portal-bundle-merkle/index.js +0 -26
  158. package/dist/shared/flap 2/portal-bundle-merkle/pancake-proxy.d.ts +0 -28
  159. package/dist/shared/flap 2/portal-bundle-merkle/pancake-proxy.js +0 -701
  160. package/dist/shared/flap 2/portal-bundle-merkle/private.d.ts +0 -17
  161. package/dist/shared/flap 2/portal-bundle-merkle/private.js +0 -549
  162. package/dist/shared/flap 2/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  163. package/dist/shared/flap 2/portal-bundle-merkle/swap-buy-first.js +0 -831
  164. package/dist/shared/flap 2/portal-bundle-merkle/swap.d.ts +0 -201
  165. package/dist/shared/flap 2/portal-bundle-merkle/swap.js +0 -1359
  166. package/dist/shared/flap 2/portal-bundle-merkle/types.d.ts +0 -358
  167. package/dist/shared/flap 2/portal-bundle-merkle/types.js +0 -1
  168. package/dist/shared/flap 2/portal-bundle-merkle/utils.d.ts +0 -89
  169. package/dist/shared/flap 2/portal-bundle-merkle/utils.js +0 -963
  170. package/dist/shared/flap 2/portal-bundle.d.ts +0 -119
  171. package/dist/shared/flap 2/portal-bundle.js +0 -584
  172. package/dist/shared/flap 2/portal.d.ts +0 -392
  173. package/dist/shared/flap 2/portal.js +0 -559
  174. package/dist/shared/flap 2/vanity.d.ts +0 -48
  175. package/dist/shared/flap 2/vanity.js +0 -110
  176. package/dist/shared/flap 2/vault.d.ts +0 -240
  177. package/dist/shared/flap 2/vault.js +0 -366
  178. package/dist/shared/four 2/index.d.ts +0 -7
  179. package/dist/shared/four 2/index.js +0 -22
  180. package/dist/shared/four 2/tax-token.d.ts +0 -176
  181. package/dist/shared/four 2/tax-token.js +0 -302
  182. package/dist/shared/index 2.js +0 -10
  183. package/dist/shared/index.d 2.ts +0 -10
  184. package/dist/types/distribute.d.ts +0 -72
  185. package/dist/types/distribute.js +0 -1
  186. package/dist/types 2/errors.d.ts +0 -27
  187. package/dist/types 2/errors.js +0 -34
  188. package/dist/utils/__tests__/errors.test.d.ts +0 -1
  189. package/dist/utils/__tests__/errors.test.js +0 -76
  190. package/dist/utils/airdrop-sweep-types.d.ts +0 -1
  191. package/dist/utils/airdrop-sweep-types.js +0 -1
  192. package/dist/utils/erc20/index.d.ts +0 -242
  193. package/dist/utils/erc20/index.js +0 -645
  194. package/dist/utils/erc20/types.d.ts +0 -77
  195. package/dist/utils/erc20/types.js +0 -1
  196. package/dist/utils/erc20-types.d.ts +0 -1
  197. package/dist/utils/erc20-types.js +0 -1
  198. package/dist/utils/holders-maker/helpers.d.ts +0 -43
  199. package/dist/utils/holders-maker/helpers.js +0 -371
  200. package/dist/utils/holders-maker/index.d.ts +0 -26
  201. package/dist/utils/holders-maker/index.js +0 -218
  202. package/dist/utils/holders-maker/types.d.ts +0 -72
  203. package/dist/utils/holders-maker/types.js +0 -4
  204. package/dist/utils/holders-maker-types.d.ts +0 -1
  205. package/dist/utils/holders-maker-types.js +0 -1
  206. package/dist/utils/lp-inspect/index.d.ts +0 -44
  207. package/dist/utils/lp-inspect/index.js +0 -937
  208. package/dist/utils/lp-inspect/types.d.ts +0 -100
  209. package/dist/utils/lp-inspect/types.js +0 -1
  210. package/dist/utils/lp-inspect-types.d.ts +0 -1
  211. package/dist/utils/lp-inspect-types.js +0 -1
  212. package/dist/utils/private-sale-types.d.ts +0 -1
  213. package/dist/utils/private-sale-types.js +0 -1
  214. package/dist/utils/quote-helpers/index.d.ts +0 -107
  215. package/dist/utils/quote-helpers/index.js +0 -346
  216. package/dist/utils/quote-helpers/types.d.ts +0 -16
  217. package/dist/utils/quote-helpers/types.js +0 -1
  218. package/dist/utils/quote-helpers-types.d.ts +0 -1
  219. package/dist/utils/quote-helpers-types.js +0 -1
  220. /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
- }