four-flap-meme-sdk 2.2.8 → 2.2.11

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 (474) hide show
  1. package/README.en.md +6 -41
  2. package/README.md +0 -31
  3. package/README.zh-CN.md +6 -41
  4. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +26 -1
  5. package/dist/chains/bsc/four/approve-tokenmanager.js +113 -1
  6. package/dist/chains/bsc/four/config.d.ts +67 -5
  7. package/dist/chains/bsc/four/config.js +114 -2
  8. package/dist/chains/bsc/four/core.d.ts +4 -1
  9. package/dist/chains/bsc/four/core.js +592 -1
  10. package/dist/chains/bsc/four/index.d.ts +6 -6
  11. package/dist/chains/bsc/four/index.js +6 -6
  12. package/dist/chains/bsc/four/internal.d.ts +46 -2
  13. package/dist/chains/bsc/four/internal.js +239 -2
  14. package/dist/chains/bsc/four/pancake-proxy.d.ts +28 -1
  15. package/dist/chains/bsc/four/pancake-proxy.js +687 -1
  16. package/dist/chains/bsc/four/private.d.ts +27 -1
  17. package/dist/chains/bsc/four/private.js +477 -1
  18. package/dist/chains/bsc/four/submit.d.ts +315 -2
  19. package/dist/chains/bsc/four/submit.js +752 -2
  20. package/dist/chains/bsc/four/swap-buy-first.d.ts +55 -2
  21. package/dist/chains/bsc/four/swap-buy-first.js +507 -2
  22. package/dist/chains/bsc/four/swap-internal.d.ts +3 -1
  23. package/dist/chains/bsc/four/swap-internal.js +18 -1
  24. package/dist/chains/bsc/four/swap.d.ts +144 -2
  25. package/dist/chains/bsc/four/swap.js +766 -2
  26. package/dist/chains/bsc/four/types.d.ts +476 -1
  27. package/dist/chains/bsc/four/utils.d.ts +18 -5
  28. package/dist/chains/bsc/four/utils.js +1552 -5
  29. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +91 -1
  30. package/dist/chains/bsc/pancake/bundle-buy-first.js +212 -97
  31. package/dist/chains/bsc/pancake/bundle-swap.d.ts +79 -1
  32. package/dist/chains/bsc/pancake/bundle-swap.js +726 -114
  33. package/dist/chains/bsc/pancake/index.d.ts +2 -4
  34. package/dist/chains/bsc/pancake/index.js +3 -1
  35. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  36. package/dist/chains/bsc/platforms/iro/factory.js +1 -3
  37. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  38. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  39. package/dist/chains/bsc/platforms/iro/pool.js +10 -31
  40. package/dist/chains/bsc/platforms/iro/token.js +1 -4
  41. package/dist/chains/eni/batch-router/bundle-approve.js +3 -4
  42. package/dist/chains/eni/batch-router/transfer.js +25 -55
  43. package/dist/chains/eni/batch-router/utils.js +6 -32
  44. package/dist/chains/eni/bundler/sign.js +6 -5
  45. package/dist/chains/eni/bundler/submit.js +4 -1
  46. package/dist/chains/eni/constants.js +1 -1
  47. package/dist/chains/eni/index.d.ts +1 -2
  48. package/dist/chains/eni/index.js +0 -1
  49. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  50. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  51. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  52. package/dist/chains/eni/platforms/daoaas/meta.js +6 -9
  53. package/dist/chains/eni/platforms/daoaas/portal-direct.js +44 -28
  54. package/dist/chains/eni/platforms/daoaas/portal.js +6 -10
  55. package/dist/chains/eni/platforms/dswap/liquidity.js +26 -58
  56. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  57. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  58. package/dist/chains/eni/platforms/fair-launch/launcher.js +46 -87
  59. package/dist/chains/eni/platforms/fair-launch/pool.js +1 -4
  60. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  61. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  62. package/dist/chains/eni/platforms/iro/factory.js +1 -3
  63. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  64. package/dist/chains/eni/platforms/iro/index.js +4 -4
  65. package/dist/chains/eni/platforms/iro/pool.js +26 -90
  66. package/dist/chains/eni/platforms/iro/token.js +31 -107
  67. package/dist/chains/eni/platforms/iro/whitelist.js +18 -6
  68. package/dist/chains/index.d.ts +0 -13
  69. package/dist/chains/index.js +0 -13
  70. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +26 -2
  71. package/dist/chains/xlayer/eip7702/bundle-approve.js +21 -11
  72. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +6 -2
  73. package/dist/chains/xlayer/eip7702/bundle-buy.js +51 -13
  74. package/dist/chains/xlayer/eip7702/bundle-create.js +59 -93
  75. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +6 -2
  76. package/dist/chains/xlayer/eip7702/bundle-sell.js +111 -29
  77. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +65 -3
  78. package/dist/chains/xlayer/eip7702/bundle-swap.js +245 -51
  79. package/dist/chains/xlayer/eip7702/constants.d.ts +16 -1
  80. package/dist/chains/xlayer/eip7702/constants.js +21 -3
  81. package/dist/chains/xlayer/eip7702/index.d.ts +46 -28
  82. package/dist/chains/xlayer/eip7702/index.js +81 -28
  83. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +203 -2
  84. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +307 -63
  85. package/dist/chains/xlayer/eip7702/types.d.ts +0 -88
  86. package/dist/chains/xlayer/eip7702/utils.d.ts +3 -0
  87. package/dist/chains/xlayer/eip7702/utils.js +28 -23
  88. package/dist/chains/xlayer/eip7702/volume.d.ts +184 -6
  89. package/dist/chains/xlayer/eip7702/volume.js +164 -89
  90. package/dist/chains/xlayer/eoa/constants.js +1 -1
  91. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  92. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +95 -1
  93. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +299 -66
  94. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  95. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +23 -18
  96. package/dist/chains/xlayer/eoa/index.d.ts +6 -10
  97. package/dist/chains/xlayer/eoa/index.js +23 -8
  98. package/dist/chains/xlayer/eoa/portal-ops.js +2 -7
  99. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  100. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  101. package/dist/chains/xlayer/eoa/types.js +3 -1
  102. package/dist/chains/xlayer/index.d.ts +2 -3
  103. package/dist/chains/xlayer/index.js +7 -4
  104. package/dist/contracts/helper3.d.ts +5 -20
  105. package/dist/contracts/helper3.js +20 -56
  106. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +26 -1
  107. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +113 -1
  108. package/dist/contracts/tm-bundle-merkle/config.d.ts +67 -5
  109. package/dist/contracts/tm-bundle-merkle/config.js +114 -2
  110. package/dist/contracts/tm-bundle-merkle/core.d.ts +4 -1
  111. package/dist/contracts/tm-bundle-merkle/core.js +591 -1
  112. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  113. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  114. package/dist/contracts/tm-bundle-merkle/internal.d.ts +46 -2
  115. package/dist/contracts/tm-bundle-merkle/internal.js +238 -2
  116. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +28 -1
  117. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +686 -1
  118. package/dist/contracts/tm-bundle-merkle/private.d.ts +27 -1
  119. package/dist/contracts/tm-bundle-merkle/private.js +476 -1
  120. package/dist/contracts/tm-bundle-merkle/submit.d.ts +314 -3
  121. package/dist/contracts/tm-bundle-merkle/submit.js +928 -3
  122. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +55 -2
  123. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +506 -2
  124. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +3 -1
  125. package/dist/contracts/tm-bundle-merkle/swap-internal.js +18 -1
  126. package/dist/contracts/tm-bundle-merkle/swap.d.ts +144 -2
  127. package/dist/contracts/tm-bundle-merkle/swap.js +764 -2
  128. package/dist/contracts/tm-bundle-merkle/types.d.ts +476 -1
  129. package/dist/contracts/tm-bundle-merkle/utils.d.ts +18 -6
  130. package/dist/contracts/tm-bundle-merkle/utils.js +1501 -6
  131. package/dist/contracts/tm-bundle.d.ts +51 -3
  132. package/dist/contracts/tm-bundle.js +177 -108
  133. package/dist/contracts/tm.d.ts +2 -3
  134. package/dist/contracts/tm.js +32 -37
  135. package/dist/contracts/tm1.js +4 -9
  136. package/dist/contracts/tm2.js +4 -9
  137. package/dist/dex/direct-router.d.ts +125 -3
  138. package/dist/dex/direct-router.js +666 -237
  139. package/dist/flows/create.d.ts +1 -2
  140. package/dist/flows/create.js +6 -6
  141. package/dist/index.d.ts +87 -20
  142. package/dist/index.js +217 -20
  143. package/dist/shared/abis/TaxToken.json +105 -0
  144. package/dist/shared/abis/TokenManager2.json +60 -0
  145. package/dist/shared/abis/common.d.ts +83 -2
  146. package/dist/shared/abis/common.js +254 -2
  147. package/dist/shared/abis/index.d.ts +6 -5
  148. package/dist/shared/abis/index.js +7 -5
  149. package/dist/shared/clients/blockrazor.js +25 -39
  150. package/dist/shared/clients/club48.d.ts +2 -2
  151. package/dist/shared/clients/club48.js +29 -34
  152. package/dist/shared/clients/emitservice.js +0 -2
  153. package/dist/shared/clients/four.d.ts +6 -21
  154. package/dist/shared/clients/four.js +24 -29
  155. package/dist/shared/clients/merkle.js +34 -27
  156. package/dist/shared/constants/addresses.d.ts +1 -1
  157. package/dist/shared/constants/addresses.js +2 -11
  158. package/dist/shared/constants/chains.d.ts +1 -1
  159. package/dist/shared/constants/chains.js +1 -1
  160. package/dist/shared/constants/gas.d.ts +1 -1
  161. package/dist/shared/constants/gas.js +6 -2
  162. package/dist/shared/constants/index.d.ts +0 -3
  163. package/dist/shared/constants/index.js +0 -1
  164. package/dist/shared/flap/abi.js +1 -1
  165. package/dist/shared/flap/constants.d.ts +2 -1
  166. package/dist/shared/flap/constants.js +4 -3
  167. package/dist/shared/flap/curve.js +0 -3
  168. package/dist/shared/flap/errors.d.ts +4 -1
  169. package/dist/shared/flap/errors.js +1 -20
  170. package/dist/shared/flap/index.d.ts +5 -4
  171. package/dist/shared/flap/index.js +5 -4
  172. package/dist/shared/flap/launch-v6.d.ts +127 -0
  173. package/dist/shared/flap/launch-v6.js +123 -0
  174. package/dist/shared/flap/meta.d.ts +18 -22
  175. package/dist/shared/flap/meta.js +17 -12
  176. package/dist/shared/flap/permit.js +2 -5
  177. package/dist/shared/flap/pinata.d.ts +6 -22
  178. package/dist/shared/flap/pinata.js +26 -21
  179. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +72 -3
  180. package/dist/shared/flap/portal-bundle-merkle/config.js +124 -4
  181. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +4 -0
  182. package/dist/shared/flap/portal-bundle-merkle/core.js +151 -142
  183. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +4 -17
  184. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +86 -86
  185. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +92 -100
  186. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +7 -11
  187. package/dist/shared/flap/portal-bundle-merkle/index.js +7 -4
  188. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +68 -71
  189. package/dist/shared/flap/portal-bundle-merkle/private.js +114 -61
  190. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +64 -1
  191. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +247 -66
  192. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +71 -2
  193. package/dist/shared/flap/portal-bundle-merkle/swap.js +410 -103
  194. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +12 -88
  195. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +80 -1
  196. package/dist/shared/flap/portal-bundle-merkle/utils.js +265 -145
  197. package/dist/shared/flap/portal-bundle.js +56 -55
  198. package/dist/shared/flap/portal-create-token.d.ts +19 -37
  199. package/dist/shared/flap/portal-create-token.js +124 -121
  200. package/dist/shared/flap/portal.d.ts +2 -1
  201. package/dist/shared/flap/portal.js +28 -36
  202. package/dist/shared/flap/vanity.d.ts +6 -6
  203. package/dist/shared/flap/vanity.js +21 -15
  204. package/dist/shared/flap/vault.d.ts +93 -25
  205. package/dist/shared/flap/vault.js +126 -75
  206. package/dist/shared/four/tax-token.d.ts +1 -1
  207. package/dist/shared/four/tax-token.js +7 -27
  208. package/dist/shared/index.d.ts +0 -6
  209. package/dist/shared/index.js +0 -4
  210. package/dist/utils/airdrop-sweep.d.ts +76 -4
  211. package/dist/utils/airdrop-sweep.js +55 -42
  212. package/dist/utils/bundle-helpers.d.ts +243 -9
  213. package/dist/utils/bundle-helpers.js +584 -10
  214. package/dist/utils/constants.d.ts +61 -5
  215. package/dist/utils/constants.js +80 -5
  216. package/dist/utils/contract-factory.d.ts +4 -2
  217. package/dist/utils/contract-factory.js +18 -25
  218. package/dist/utils/erc20.d.ts +89 -7
  219. package/dist/utils/erc20.js +125 -94
  220. package/dist/utils/errors.d.ts +1 -12
  221. package/dist/utils/errors.js +1 -60
  222. package/dist/utils/holders-maker.d.ts +138 -2
  223. package/dist/utils/holders-maker.js +661 -26
  224. package/dist/utils/lp-inspect.d.ts +112 -2
  225. package/dist/utils/lp-inspect.js +223 -73
  226. package/dist/utils/mpcExclusive.d.ts +5 -2
  227. package/dist/utils/mpcExclusive.js +3 -4
  228. package/dist/utils/private-sale.d.ts +58 -2
  229. package/dist/utils/private-sale.js +15 -4
  230. package/dist/utils/provider-factory.d.ts +0 -4
  231. package/dist/utils/provider-factory.js +0 -10
  232. package/dist/utils/quote-helpers.d.ts +45 -4
  233. package/dist/utils/quote-helpers.js +74 -17
  234. package/dist/utils/stealth-transfer.d.ts +28 -2
  235. package/dist/utils/stealth-transfer.js +15 -31
  236. package/dist/utils/swap-helpers.d.ts +15 -2
  237. package/dist/utils/swap-helpers.js +11 -6
  238. package/dist/utils/wallet.d.ts +25 -2
  239. package/dist/utils/wallet.js +10 -13
  240. package/package.json +4 -160
  241. package/dist/__tests__/subpath-exports.test.d.ts +0 -1
  242. package/dist/__tests__/subpath-exports.test.js +0 -64
  243. package/dist/abis/common.d.ts +0 -85
  244. package/dist/abis/common.js +0 -264
  245. package/dist/abis/contracts/TaxToken.json +0 -969
  246. package/dist/abis/contracts/TokenManager2.json +0 -136
  247. package/dist/abis/contracts/index.d.ts +0 -5
  248. package/dist/abis/contracts/index.js +0 -5
  249. package/dist/abis/flap/index.d.ts +0 -3
  250. package/dist/abis/flap/index.js +0 -3
  251. package/dist/abis/flap/portal-events.d.ts +0 -6
  252. package/dist/abis/flap/portal-events.js +0 -17
  253. package/dist/abis/flap/portal.d.ts +0 -6
  254. package/dist/abis/flap/portal.js +0 -37
  255. package/dist/abis/flap/vault.d.ts +0 -171
  256. package/dist/abis/flap/vault.js +0 -91
  257. package/dist/abis/index.d.ts +0 -8
  258. package/dist/abis/index.js +0 -11
  259. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
  260. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  261. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
  262. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  263. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
  264. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  265. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  266. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  267. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  268. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  269. package/dist/bundle-core/config-helpers.d.ts +0 -36
  270. package/dist/bundle-core/config-helpers.js +0 -57
  271. package/dist/bundle-core/errors.d.ts +0 -50
  272. package/dist/bundle-core/errors.js +0 -35
  273. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
  274. package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
  275. package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
  276. package/dist/bundle-core/four-meme/core-helpers.js +0 -40
  277. package/dist/bundle-core/four-meme/core.d.ts +0 -4
  278. package/dist/bundle-core/four-meme/core.js +0 -515
  279. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
  280. package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
  281. package/dist/bundle-core/four-meme/private.d.ts +0 -27
  282. package/dist/bundle-core/four-meme/private.js +0 -465
  283. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
  284. package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
  285. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
  286. package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
  287. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
  288. package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
  289. package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
  290. package/dist/bundle-core/four-meme/swap-internal.js +0 -18
  291. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
  292. package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
  293. package/dist/bundle-core/four-meme/swap.d.ts +0 -17
  294. package/dist/bundle-core/four-meme/swap.js +0 -505
  295. package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
  296. package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
  297. package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
  298. package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
  299. package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
  300. package/dist/bundle-core/four-meme/types/index.js +0 -1
  301. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
  302. package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
  303. package/dist/bundle-core/four-meme/types.d.ts +0 -1
  304. package/dist/bundle-core/four-meme/types.js +0 -1
  305. package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
  306. package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
  307. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
  308. package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
  309. package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
  310. package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
  311. package/dist/bundle-core/index.d.ts +0 -8
  312. package/dist/bundle-core/index.js +0 -8
  313. package/dist/bundle-core/internal.d.ts +0 -21
  314. package/dist/bundle-core/internal.js +0 -182
  315. package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
  316. package/dist/bundle-core/sign-context-helpers.js +0 -67
  317. package/dist/bundle-core/submit.d.ts +0 -293
  318. package/dist/bundle-core/submit.js +0 -727
  319. package/dist/bundle-core/types/index.d.ts +0 -8
  320. package/dist/bundle-core/types/index.js +0 -1
  321. package/dist/bundle-core/types.d.ts +0 -1
  322. package/dist/bundle-core/types.js +0 -1
  323. package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
  324. package/dist/chains/bsc/four/utils-disperse.js +0 -1
  325. package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
  326. package/dist/chains/bsc/four/utils-pairwise.js +0 -1
  327. package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
  328. package/dist/chains/bsc/four/utils-sweep.js +0 -1
  329. package/dist/chains/bsc/iro.d.ts +0 -5
  330. package/dist/chains/bsc/iro.js +0 -4
  331. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
  332. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
  333. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
  334. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
  335. package/dist/chains/eni/flat-aliases.d.ts +0 -10
  336. package/dist/chains/eni/flat-aliases.js +0 -8
  337. package/dist/chains/eni/submit.d.ts +0 -43
  338. package/dist/chains/eni/submit.js +0 -286
  339. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
  340. package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
  341. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
  342. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
  343. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
  344. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
  345. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
  346. package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
  347. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
  348. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
  349. package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
  350. package/dist/contracts/tm-bundle-helpers.js +0 -72
  351. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  352. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  353. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  354. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  355. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  356. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  357. package/dist/dex/direct-router-helpers.d.ts +0 -264
  358. package/dist/dex/direct-router-helpers.js +0 -539
  359. package/dist/dex/types.d.ts +0 -81
  360. package/dist/dex/types.js +0 -1
  361. package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
  362. package/dist/exports/root-bundle-and-tooling.js +0 -30
  363. package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
  364. package/dist/exports/root-eni-and-bsc-iro.js +0 -66
  365. package/dist/exports/root-foundations.d.ts +0 -35
  366. package/dist/exports/root-foundations.js +0 -70
  367. package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
  368. package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
  369. package/dist/flap/index.d.ts +0 -10
  370. package/dist/flap/index.js +0 -8
  371. package/dist/flows/index.d.ts +0 -1
  372. package/dist/flows/index.js +0 -1
  373. package/dist/merkle/index.d.ts +0 -12
  374. package/dist/merkle/index.js +0 -11
  375. package/dist/shared/clients/index.d.ts +0 -8
  376. package/dist/shared/clients/index.js +0 -8
  377. package/dist/shared/constants/quote.d.ts +0 -30
  378. package/dist/shared/constants/quote.js +0 -37
  379. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
  380. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
  381. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
  382. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
  383. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
  384. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
  385. package/dist/shared/foundation/dex/v3-path.d.ts +0 -6
  386. package/dist/shared/foundation/dex/v3-path.js +0 -35
  387. package/dist/shared/foundation/gas/bundle-gas.d.ts +0 -49
  388. package/dist/shared/foundation/gas/bundle-gas.js +0 -93
  389. package/dist/shared/foundation/gas/profit-hop.d.ts +0 -20
  390. package/dist/shared/foundation/gas/profit-hop.js +0 -72
  391. package/dist/shared/foundation/index.d.ts +0 -13
  392. package/dist/shared/foundation/index.js +0 -12
  393. package/dist/shared/foundation/nonce/nonce-manager.d.ts +0 -17
  394. package/dist/shared/foundation/nonce/nonce-manager.js +0 -183
  395. package/dist/shared/foundation/normalize-unknown.d.ts +0 -9
  396. package/dist/shared/foundation/normalize-unknown.js +0 -29
  397. package/dist/shared/foundation/sdk-logger.d.ts +0 -13
  398. package/dist/shared/foundation/sdk-logger.js +0 -12
  399. package/dist/shared/foundation/tx/build-request.d.ts +0 -17
  400. package/dist/shared/foundation/tx/build-request.js +0 -25
  401. package/dist/shared/foundation/tx/sign-batch.d.ts +0 -5
  402. package/dist/shared/foundation/tx/sign-batch.js +0 -26
  403. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +0 -1
  404. package/dist/shared/foundation/tx/wallet-sign-patch.js +0 -18
  405. package/dist/shared/foundation/types/airdrop-sweep.d.ts +0 -79
  406. package/dist/shared/foundation/types/airdrop-sweep.js +0 -1
  407. package/dist/shared/foundation/types/erc20.d.ts +0 -65
  408. package/dist/shared/foundation/types/erc20.js +0 -1
  409. package/dist/shared/foundation/types/holders-maker.d.ts +0 -64
  410. package/dist/shared/foundation/types/holders-maker.js +0 -1
  411. package/dist/shared/foundation/types/index.d.ts +0 -7
  412. package/dist/shared/foundation/types/index.js +0 -1
  413. package/dist/shared/foundation/types/lp-inspect.d.ts +0 -102
  414. package/dist/shared/foundation/types/lp-inspect.js +0 -1
  415. package/dist/shared/foundation/types/multicall.d.ts +0 -5
  416. package/dist/shared/foundation/types/multicall.js +0 -1
  417. package/dist/shared/foundation/types/private-sale.d.ts +0 -35
  418. package/dist/shared/foundation/types/private-sale.js +0 -1
  419. package/dist/shared/foundation/types/quote-helpers.d.ts +0 -17
  420. package/dist/shared/foundation/types/quote-helpers.js +0 -1
  421. package/dist/types/errors.d.ts +0 -27
  422. package/dist/types/errors.js +0 -34
  423. package/dist/utils/holders-maker/addresses.d.ts +0 -12
  424. package/dist/utils/holders-maker/addresses.js +0 -15
  425. package/dist/utils/holders-maker/buy-tx.d.ts +0 -44
  426. package/dist/utils/holders-maker/buy-tx.js +0 -278
  427. package/dist/utils/holders-maker/constants.d.ts +0 -6
  428. package/dist/utils/holders-maker/constants.js +0 -7
  429. package/dist/utils/holders-maker/disperse.d.ts +0 -18
  430. package/dist/utils/holders-maker/disperse.js +0 -90
  431. package/dist/utils/holders-maker/routing.d.ts +0 -4
  432. package/dist/utils/holders-maker/routing.js +0 -45
  433. package/dist/utils/holders-maker/transfer-tx.d.ts +0 -4
  434. package/dist/utils/holders-maker/transfer-tx.js +0 -67
  435. package/dist/utils/holders-maker-helpers.d.ts +0 -9
  436. package/dist/utils/holders-maker-helpers.js +0 -9
  437. package/dist/utils/hop-chains.d.ts +0 -35
  438. package/dist/utils/hop-chains.js +0 -215
  439. package/dist/utils/lp-inspect-helpers.d.ts +0 -9
  440. package/dist/utils/lp-inspect-helpers.js +0 -109
  441. package/dist/utils/types/airdrop-sweep.d.ts +0 -1
  442. package/dist/utils/types/airdrop-sweep.js +0 -1
  443. package/dist/utils/types/contract-factory.d.ts +0 -1
  444. package/dist/utils/types/contract-factory.js +0 -1
  445. package/dist/utils/types/erc20.d.ts +0 -1
  446. package/dist/utils/types/erc20.js +0 -1
  447. package/dist/utils/types/errors.d.ts +0 -1
  448. package/dist/utils/types/errors.js +0 -1
  449. package/dist/utils/types/holders-maker.d.ts +0 -1
  450. package/dist/utils/types/holders-maker.js +0 -1
  451. package/dist/utils/types/hop-chains.d.ts +0 -8
  452. package/dist/utils/types/hop-chains.js +0 -1
  453. package/dist/utils/types/index.d.ts +0 -13
  454. package/dist/utils/types/index.js +0 -1
  455. package/dist/utils/types/lp-inspect.d.ts +0 -1
  456. package/dist/utils/types/lp-inspect.js +0 -1
  457. package/dist/utils/types/mpc-exclusive.d.ts +0 -5
  458. package/dist/utils/types/mpc-exclusive.js +0 -1
  459. package/dist/utils/types/private-sale.d.ts +0 -1
  460. package/dist/utils/types/private-sale.js +0 -1
  461. package/dist/utils/types/quote-helpers.d.ts +0 -1
  462. package/dist/utils/types/quote-helpers.js +0 -1
  463. package/dist/utils/types/stealth-transfer.d.ts +0 -44
  464. package/dist/utils/types/stealth-transfer.js +0 -1
  465. package/dist/utils/types/wallet.d.ts +0 -25
  466. package/dist/utils/types/wallet.js +0 -1
  467. package/dist/vanity/index.d.ts +0 -5
  468. package/dist/vanity/index.js +0 -5
  469. package/src/abis/contracts/TaxToken.json +0 -969
  470. package/src/abis/contracts/TokenManager.json +0 -836
  471. package/src/abis/contracts/TokenManager2.json +0 -136
  472. package/src/abis/contracts/TokenManagerHelper3.json +0 -993
  473. /package/dist/{abis/contracts → shared/abis}/TokenManager.json +0 -0
  474. /package/dist/{abis/contracts → shared/abis}/TokenManagerHelper3.json +0 -0
@@ -11,9 +11,8 @@
11
11
  * 支持池子类型:V2, V3
12
12
  */
13
13
  import { ethers, Wallet, Contract } from 'ethers';
14
- import { createXLayerProvider } from '../../../utils/provider-factory.js';
15
- import { directV2BatchBuy, directV2BatchSell, directV3BatchBuy, directV3BatchSell, } from '../../../dex/direct-router.js';
16
- import { getProfitRecipient } from '../../../shared/constants/index.js';
14
+ import { directV2BatchBuy, directV2BatchSell, directV3BatchBuy, directV3BatchSell } from '../../../dex/direct-router.js';
15
+ import { PROFIT_CONFIG } from '../../../utils/constants.js';
17
16
  // ============================================================================
18
17
  // 辅助函数
19
18
  // ============================================================================
@@ -55,8 +54,8 @@ export async function signEoaWashBuyTransactions(params) {
55
54
  throw new Error('[signEoaWashBuyTransactions] 私钥数量与买入金额数量不一致');
56
55
  }
57
56
  // 创建钱包
58
- const provider = createXLayerProvider(config.rpcUrl);
59
- const wallets = privateKeys.map((pk) => new Wallet(pk, provider));
57
+ const provider = new ethers.JsonRpcProvider(config.rpcUrl);
58
+ const wallets = privateKeys.map(pk => new Wallet(pk, provider));
60
59
  let result;
61
60
  if (poolType === 'V2') {
62
61
  result = await directV2BatchBuy({
@@ -70,7 +69,7 @@ export async function signEoaWashBuyTransactions(params) {
70
69
  config: {
71
70
  ...config,
72
71
  skipProfit: true, // 买入时不刮取利润(卖出时刮取)
73
- },
72
+ }
74
73
  });
75
74
  }
76
75
  else {
@@ -87,9 +86,10 @@ export async function signEoaWashBuyTransactions(params) {
87
86
  config: {
88
87
  ...config,
89
88
  skipProfit: true, // 买入时不刮取利润(卖出时刮取)
90
- },
89
+ }
91
90
  });
92
91
  }
92
+ console.log(`[signEoaWashBuyTransactions] 签名 ${result.signedTransactions.length} 笔买入交易`);
93
93
  return {
94
94
  signedTransactions: result.signedTransactions,
95
95
  wallets,
@@ -107,32 +107,35 @@ export async function signEoaWashBuyTransactions(params) {
107
107
  */
108
108
  export async function signEoaWashSellTransactions(params, wallets, tokenDecimals) {
109
109
  const { tokenAddress, poolType, routerAddress, quoteToken, config } = params;
110
- const provider = createXLayerProvider(config.rpcUrl);
110
+ const provider = new ethers.JsonRpcProvider(config.rpcUrl);
111
111
  // 获取代币精度
112
- const decimals = tokenDecimals ?? (await getTokenDecimals(provider, tokenAddress));
112
+ const decimals = tokenDecimals ?? await getTokenDecimals(provider, tokenAddress);
113
+ console.log(`[signEoaWashSellTransactions] 代币精度: ${decimals}`);
113
114
  // 查询所有钱包的代币余额
114
- const balancesWei = await Promise.all(wallets.map((w) => getTokenBalance(provider, tokenAddress, w.address)));
115
+ const balancesWei = await Promise.all(wallets.map(w => getTokenBalance(provider, tokenAddress, w.address)));
115
116
  // 转换为格式化金额
116
- const sellAmounts = balancesWei.map((balance) => {
117
+ const sellAmounts = balancesWei.map(balance => {
117
118
  if (balance <= 0n)
118
119
  return '0';
119
120
  return ethers.formatUnits(balance, decimals);
120
121
  });
122
+ console.log(`[signEoaWashSellTransactions] 钱包余额:`, sellAmounts);
121
123
  // 过滤出有余额的钱包
122
124
  const validIndices = sellAmounts
123
125
  .map((amt, i) => ({ amt, i }))
124
126
  .filter(({ amt }) => parseFloat(amt) > 0)
125
127
  .map(({ i }) => i);
126
128
  if (validIndices.length === 0) {
129
+ console.warn('[signEoaWashSellTransactions] 所有钱包余额为 0,无法卖出');
127
130
  return {
128
131
  signedTransactions: [],
129
132
  profitHopWallets: [],
130
133
  profitAmount: '0',
131
- profitRecipient: getProfitRecipient(),
134
+ profitRecipient: PROFIT_CONFIG.RECIPIENT,
132
135
  };
133
136
  }
134
- const validPrivateKeys = validIndices.map((i) => wallets[i].privateKey);
135
- const validSellAmounts = validIndices.map((i) => sellAmounts[i]);
137
+ const validPrivateKeys = validIndices.map(i => wallets[i].privateKey);
138
+ const validSellAmounts = validIndices.map(i => sellAmounts[i]);
136
139
  let result;
137
140
  if (poolType === 'V2') {
138
141
  result = await directV2BatchSell({
@@ -145,7 +148,7 @@ export async function signEoaWashSellTransactions(params, wallets, tokenDecimals
145
148
  config: {
146
149
  ...config,
147
150
  // ✅ 卖出时正常刮取利润(XLayer 不使用多跳,直接转账)
148
- },
151
+ }
149
152
  });
150
153
  }
151
154
  else {
@@ -161,14 +164,15 @@ export async function signEoaWashSellTransactions(params, wallets, tokenDecimals
161
164
  config: {
162
165
  ...config,
163
166
  // ✅ 卖出时正常刮取利润(XLayer 不使用多跳,直接转账)
164
- },
167
+ }
165
168
  });
166
169
  }
170
+ console.log(`[signEoaWashSellTransactions] 签名 ${result.signedTransactions.length} 笔卖出交易(含利润)`);
167
171
  return {
168
172
  signedTransactions: result.signedTransactions,
169
173
  profitHopWallets: result.profitHopWallets ?? [],
170
174
  profitAmount: result.metadata?.profitAmount ?? '0',
171
- profitRecipient: result.metadata?.profitRecipient ?? getProfitRecipient(),
175
+ profitRecipient: result.metadata?.profitRecipient ?? PROFIT_CONFIG.RECIPIENT,
172
176
  };
173
177
  }
174
178
  /**
@@ -186,12 +190,13 @@ export async function signEoaWashVolumeTransactions(params) {
186
190
  // 第一步:签名买入交易
187
191
  const buyResult = await signEoaWashBuyTransactions(params);
188
192
  // 注意:这里的卖出签名是基于预估的,实际使用时应该在买入确认后重新签名
193
+ console.log(`[signEoaWashVolumeTransactions] ⚠️ 注意:卖出签名应在买入确认后根据实际余额重新生成`);
189
194
  // 暂时返回空的卖出签名(实际使用时应该在买入确认后调用 signEoaWashSellTransactions)
190
195
  return {
191
196
  buySignedTransactions: buyResult.signedTransactions,
192
197
  sellSignedTransactions: [], // 需要在买入确认后重新签名
193
198
  profitHopWallets: [],
194
199
  profitAmount: '0',
195
- profitRecipient: getProfitRecipient(),
200
+ profitRecipient: PROFIT_CONFIG.RECIPIENT,
196
201
  };
197
202
  }
@@ -11,18 +11,14 @@
11
11
  */
12
12
  export * from './constants.js';
13
13
  export * from './types.js';
14
- import { createPortalQuery } from './portal-ops.js';
15
- import { xlayerQuickBatchSwapMerkle, xlayerCrossSwapMerkle, xlayerPureCrossSwapMerkle } from './eoa-bundle-swap.js';
16
- import { signEoaWashVolumeTransactions } from './eoa-wash-volume.js';
17
14
  export { encodeBuyCall, encodeBuyCallV3, encodeSellCall, encodeApproveCall, encodeTransferCall, PortalQuery, createPortalQuery, applySlippage, formatOkb, parseOkb, formatTokenAmount, parseTokenAmount, type PortalQueryConfig, } from './portal-ops.js';
18
15
  export { signEoaWashBuyTransactions, signEoaWashSellTransactions, signEoaWashVolumeTransactions, type EoaWashPoolType, type EoaWashVolumeParams, type EoaWashVolumeResult, } from './eoa-wash-volume.js';
19
- export { xlayerQuickBatchSwapMerkle, xlayerCrossSwapMerkle, xlayerPureCrossSwapMerkle, type XLayerPureCrossSwapParams, type XLayerPureCrossSwapResult, } from './eoa-bundle-swap.js';
20
- export type { XLayerEoaSwapConfig, XLayerQuickBatchSwapParams, XLayerQuickBatchSwapResult, XLayerCrossSwapParams, XLayerCrossSwapResult, UserType as XLayerUserType, RouteParams as XLayerRouteParams, V2RouteParams as XLayerV2RouteParams, V3SingleRouteParams as XLayerV3SingleRouteParams, V3MultiRouteParams as XLayerV3MultiRouteParams, } from './eoa-bundle-swap-helpers.js';
16
+ export { xlayerQuickBatchSwapMerkle, xlayerCrossSwapMerkle, xlayerPureCrossSwapMerkle, type XLayerEoaSwapConfig, type XLayerQuickBatchSwapParams, type XLayerQuickBatchSwapResult, type XLayerCrossSwapParams, type XLayerCrossSwapResult, type XLayerPureCrossSwapParams, type XLayerPureCrossSwapResult, type UserType as XLayerUserType, type RouteParams as XLayerRouteParams, type V2RouteParams as XLayerV2RouteParams, type V3SingleRouteParams as XLayerV3SingleRouteParams, } from './eoa-bundle-swap.js';
21
17
  export declare const xlayer: {
22
- createPortalQuery: typeof createPortalQuery;
23
- xlayerQuickBatchSwapMerkle: typeof xlayerQuickBatchSwapMerkle;
24
- xlayerCrossSwapMerkle: typeof xlayerCrossSwapMerkle;
25
- xlayerPureCrossSwapMerkle: typeof xlayerPureCrossSwapMerkle;
26
- signEoaWashVolumeTransactions: typeof signEoaWashVolumeTransactions;
18
+ createPortalQuery: (config?: import("./portal-ops.js").PortalQueryConfig | undefined) => Promise<import("./portal-ops.js").PortalQuery>;
19
+ xlayerQuickBatchSwapMerkle: (params: import("./eoa-bundle-swap.js").XLayerQuickBatchSwapParams) => Promise<import("./eoa-bundle-swap.js").XLayerQuickBatchSwapResult>;
20
+ xlayerCrossSwapMerkle: (params: import("./eoa-bundle-swap.js").XLayerCrossSwapParams) => Promise<import("./eoa-bundle-swap.js").XLayerCrossSwapResult>;
21
+ xlayerPureCrossSwapMerkle: (params: import("./eoa-bundle-swap.js").XLayerPureCrossSwapParams) => Promise<import("./eoa-bundle-swap.js").XLayerPureCrossSwapResult>;
22
+ signEoaWashVolumeTransactions: (params: import("./eoa-wash-volume.js").EoaWashVolumeParams) => Promise<import("./eoa-wash-volume.js").EoaWashVolumeResult>;
27
23
  };
28
24
  export default xlayer;
@@ -17,9 +17,6 @@ export * from './constants.js';
17
17
  // 类型
18
18
  // ============================================================================
19
19
  export * from './types.js';
20
- import { createPortalQuery } from './portal-ops.js';
21
- import { xlayerQuickBatchSwapMerkle, xlayerCrossSwapMerkle, xlayerPureCrossSwapMerkle } from './eoa-bundle-swap.js';
22
- import { signEoaWashVolumeTransactions } from './eoa-wash-volume.js';
23
20
  // ============================================================================
24
21
  // Portal 操作
25
22
  // ============================================================================
@@ -36,10 +33,28 @@ export { xlayerQuickBatchSwapMerkle, xlayerCrossSwapMerkle, xlayerPureCrossSwapM
36
33
  // 便捷重导出
37
34
  // ============================================================================
38
35
  export const xlayer = {
39
- createPortalQuery,
40
- xlayerQuickBatchSwapMerkle,
41
- xlayerCrossSwapMerkle,
42
- xlayerPureCrossSwapMerkle,
43
- signEoaWashVolumeTransactions,
36
+ // Portal 查询
37
+ createPortalQuery: async (...args) => {
38
+ const { createPortalQuery } = await import('./portal-ops.js');
39
+ return createPortalQuery(...args);
40
+ },
41
+ // EOA 换手
42
+ xlayerQuickBatchSwapMerkle: async (...args) => {
43
+ const { xlayerQuickBatchSwapMerkle } = await import('./eoa-bundle-swap.js');
44
+ return xlayerQuickBatchSwapMerkle(...args);
45
+ },
46
+ xlayerCrossSwapMerkle: async (...args) => {
47
+ const { xlayerCrossSwapMerkle } = await import('./eoa-bundle-swap.js');
48
+ return xlayerCrossSwapMerkle(...args);
49
+ },
50
+ xlayerPureCrossSwapMerkle: async (...args) => {
51
+ const { xlayerPureCrossSwapMerkle } = await import('./eoa-bundle-swap.js');
52
+ return xlayerPureCrossSwapMerkle(...args);
53
+ },
54
+ // EOA 刷量
55
+ signEoaWashVolumeTransactions: async (...args) => {
56
+ const { signEoaWashVolumeTransactions } = await import('./eoa-wash-volume.js');
57
+ return signEoaWashVolumeTransactions(...args);
58
+ },
44
59
  };
45
60
  export default xlayer;
@@ -165,9 +165,6 @@ export function encodeCreateCallV5(params) {
165
165
  * - 代币状态
166
166
  */
167
167
  export class PortalQuery {
168
- provider;
169
- portal;
170
- portalAddress;
171
168
  constructor(config = {}) {
172
169
  const rpcUrl = config.rpcUrl ?? DEFAULT_RPC_URL;
173
170
  const chainId = config.chainId ?? XLAYER_CHAIN_ID;
@@ -449,10 +446,8 @@ export function applySlippage(expectedOutput, slippageBps) {
449
446
  */
450
447
  export function lpFeeProfileToV3Fee(profile) {
451
448
  switch (profile) {
452
- case 1:
453
- return 100; // 0.01%
454
- case 2:
455
- return 10000; // 1%
449
+ case 1: return 100; // 0.01%
450
+ case 2: return 10000; // 1%
456
451
  case 0:
457
452
  default:
458
453
  return 2500; // 0.25%
@@ -2,7 +2,7 @@
2
2
  * XLayer Router 管理器
3
3
  * 统一管理 V2/V3 Router 地址和授权目标选择逻辑
4
4
  */
5
- import { POTATOSWAP_V2_ROUTER, POTATOSWAP_V3_ROUTER, FLAP_PORTAL } from './constants.js';
5
+ import { POTATOSWAP_V2_ROUTER, POTATOSWAP_V3_ROUTER, FLAP_PORTAL, } from './constants.js';
6
6
  /**
7
7
  * ✅ 获取 Router 地址
8
8
  * @param params.routerVersion - Router 版本(V2 或 V3)
@@ -49,9 +49,9 @@ export function getApprovalTargetAddress(target) {
49
49
  * @returns 目标信息数组
50
50
  */
51
51
  export function getAllApprovalTargets(targets) {
52
- return targets.map((target) => ({
52
+ return targets.map(target => ({
53
53
  target,
54
- address: getApprovalTargetAddress(target),
54
+ address: getApprovalTargetAddress(target)
55
55
  }));
56
56
  }
57
57
  /**
@@ -100,12 +100,12 @@ export interface XLayerConfig {
100
100
  extractProfit?: boolean;
101
101
  /**
102
102
  * 利润比例(基点 bps,1 bps = 0.01%)
103
- * - 默认使用 `getProfitRateBps('normal')`
103
+ * - 默认使用公共常量 PROFIT_CONFIG.RATE_BPS(当前为 30 bps)
104
104
  */
105
105
  profitBps?: number;
106
106
  /**
107
107
  * 利润接收地址
108
- * - 默认使用 `getProfitRecipient()`
108
+ * - 默认使用公共常量 PROFIT_CONFIG.RECIPIENT
109
109
  */
110
110
  profitRecipient?: string;
111
111
  /**
@@ -15,7 +15,9 @@
15
15
  * - 对“可能不生成 op”的分支(例如 withdraw 返回 null),使用 peek + commit,避免提前消耗 nonce。
16
16
  */
17
17
  export class AANonceMap {
18
- nextBySenderLower = new Map();
18
+ constructor() {
19
+ this.nextBySenderLower = new Map();
20
+ }
19
21
  init(sender, startNonce) {
20
22
  const k = sender.toLowerCase();
21
23
  const cur = this.nextBySenderLower.get(k);
@@ -10,6 +10,5 @@ export * as eoa from './eoa/index.js';
10
10
  export * as eip7702 from './eip7702/index.js';
11
11
  export { PortalQuery, createPortalQuery, xlayerQuickBatchSwapMerkle, xlayerCrossSwapMerkle, xlayerPureCrossSwapMerkle, signEoaWashBuyTransactions, signEoaWashSellTransactions, signEoaWashVolumeTransactions, } from './eoa/index.js';
12
12
  export type { BundleSwapParams, BundleSwapSignParams, BundleSwapResult, BundleSwapSignResult, BundleBatchSwapParams, BundleBatchSwapSignParams, BundleBatchSwapResult, BundleBatchSwapSignResult, BuyFirstParams, BuyFirstResult, BuyParams, SellParams, } from './eoa/types.js';
13
- export * from './eip7702/flat-aliases.js';
14
- export { default as xlayer, default as XLayer } from './eoa/index.js';
15
- export { lpFeeProfileToV3Fee } from './eoa/portal-ops.js';
13
+ export { bundleBuy as xlayerEip7702BundleBuy, bundleSell as xlayerEip7702BundleSell, bundleSwap as xlayerEip7702BundleSwap, bundleApprove as xlayerEip7702BundleApprove, bundleCreateBuy as xlayerEip7702BundleCreate, washVolume as xlayerEip7702WashVolume, bundleVolume as xlayerEip7702BundleVolume, } from './eip7702/index.js';
14
+ export { default as xlayer } from './eoa/index.js';
@@ -22,9 +22,12 @@ xlayerQuickBatchSwapMerkle, xlayerCrossSwapMerkle, xlayerPureCrossSwapMerkle,
22
22
  // EOA 刷量
23
23
  signEoaWashBuyTransactions, signEoaWashSellTransactions, signEoaWashVolumeTransactions, } from './eoa/index.js';
24
24
  // ============================================================================
25
- // 快捷导出 - EIP-7702 模式(与包根 `xlayerEip7702*` 别名一致,见 flat-aliases)
25
+ // 快捷导出 - EIP-7702 模式(使用实际名称)
26
26
  // ============================================================================
27
- export * from './eip7702/flat-aliases.js';
27
+ export {
28
+ // Bundle 操作
29
+ bundleBuy as xlayerEip7702BundleBuy, bundleSell as xlayerEip7702BundleSell, bundleSwap as xlayerEip7702BundleSwap, bundleApprove as xlayerEip7702BundleApprove, bundleCreateBuy as xlayerEip7702BundleCreate,
30
+ // 刷量
31
+ washVolume as xlayerEip7702WashVolume, bundleVolume as xlayerEip7702BundleVolume, } from './eip7702/index.js';
28
32
  // 导出旧模块的默认对象(向后兼容)
29
- export { default as xlayer, default as XLayer } from './eoa/index.js';
30
- export { lpFeeProfileToV3Fee } from './eoa/portal-ops.js';
33
+ export { default as xlayer } from './eoa/index.js';
@@ -1,19 +1,4 @@
1
1
  import { JsonRpcProvider, Wallet } from 'ethers';
2
- /** 与 Helper3 `getTokenInfo` 返回值一致(作 `calcBuyAmount` 等函数的 `ti` 入参) */
3
- export type TokenManagerHelper3TokenInfo = {
4
- version: bigint;
5
- tokenManager: string;
6
- quote: string;
7
- lastPrice: bigint;
8
- tradingFeeRate: bigint;
9
- minTradingFee: bigint;
10
- launchTime: bigint;
11
- offers: bigint;
12
- maxOffers: bigint;
13
- funds: bigint;
14
- maxFunds: bigint;
15
- liquidityAdded: boolean;
16
- };
17
2
  type Providerish = JsonRpcProvider;
18
3
  type Signerish = Wallet;
19
4
  export declare class Helper3 {
@@ -22,14 +7,14 @@ export declare class Helper3 {
22
7
  protected constructor(address: string, provider: Providerish);
23
8
  static connectByChain(chain: 'BSC' | 'BASE' | 'ARBITRUM_ONE', rpcUrl: string): Helper3;
24
9
  private get contract();
25
- getTokenInfo(token: string): Promise<TokenManagerHelper3TokenInfo>;
10
+ getTokenInfo(token: string): Promise<any>;
26
11
  tryBuy(token: string, amount: bigint, funds: bigint): Promise<any>;
27
12
  trySell(token: string, amount: bigint): Promise<any>;
28
13
  calcInitialPrice(maxRaising: bigint, totalSupply: bigint, offers: bigint, reserves: bigint): Promise<any>;
29
- calcBuyAmount(ti: TokenManagerHelper3TokenInfo, funds: bigint): Promise<any>;
30
- calcBuyCost(ti: TokenManagerHelper3TokenInfo, amount: bigint): Promise<any>;
31
- calcSellCost(ti: TokenManagerHelper3TokenInfo, amount: bigint): Promise<any>;
32
- calcTradingFee(ti: TokenManagerHelper3TokenInfo, funds: bigint): Promise<any>;
14
+ calcBuyAmount(ti: any, funds: bigint): Promise<any>;
15
+ calcBuyCost(ti: any, amount: bigint): Promise<any>;
16
+ calcSellCost(ti: any, amount: bigint): Promise<any>;
17
+ calcTradingFee(ti: any, funds: bigint): Promise<any>;
33
18
  getPancakePair(token: string): Promise<any>;
34
19
  WETH(): Promise<any>;
35
20
  WHITE_LIST(): Promise<any>;
@@ -1,10 +1,7 @@
1
1
  import { Contract, JsonRpcProvider, Wallet } from 'ethers';
2
- import Helper3Abi from '../abis/contracts/TokenManagerHelper3.json' with { type: 'json' };
3
- import { ADDRESSES } from '../shared/constants/index.js';
4
- const HELPER3_ABI = Helper3Abi;
2
+ import Helper3Abi from '../shared/abis/TokenManagerHelper3.json' with { type: 'json' };
3
+ import { ADDRESSES } from '../utils/constants.js';
5
4
  export class Helper3 {
6
- address;
7
- provider;
8
5
  constructor(address, provider) {
9
6
  this.address = address;
10
7
  this.provider = provider;
@@ -18,56 +15,25 @@ export class Helper3 {
18
15
  return new Helper3(addresses[chain], new JsonRpcProvider(rpcUrl));
19
16
  }
20
17
  get contract() {
21
- return new Contract(this.address, HELPER3_ABI, this.provider);
22
- }
23
- async getTokenInfo(token) {
24
- return await this.contract.getTokenInfo(token);
25
- }
26
- async tryBuy(token, amount, funds) {
27
- return await this.contract.tryBuy(token, amount, funds);
28
- }
29
- async trySell(token, amount) {
30
- return await this.contract.trySell(token, amount);
31
- }
32
- async calcInitialPrice(maxRaising, totalSupply, offers, reserves) {
33
- return await this.contract.calcInitialPrice(maxRaising, totalSupply, offers, reserves);
34
- }
35
- async calcBuyAmount(ti, funds) {
36
- return await this.contract.calcBuyAmount(ti, funds);
37
- }
38
- async calcBuyCost(ti, amount) {
39
- return await this.contract.calcBuyCost(ti, amount);
40
- }
41
- async calcSellCost(ti, amount) {
42
- return await this.contract.calcSellCost(ti, amount);
43
- }
44
- async calcTradingFee(ti, funds) {
45
- return await this.contract.calcTradingFee(ti, funds);
46
- }
47
- async getPancakePair(token) {
48
- return await this.contract.getPancakePair(token);
49
- }
50
- async WETH() {
51
- return await this.contract.WETH();
52
- }
53
- async WHITE_LIST() {
54
- return await this.contract.WHITE_LIST();
55
- }
56
- async calcEthIn(token, amount) {
57
- return await this.contract.calcEthIn(token, amount);
58
- }
59
- async calcEthOut(token, amount) {
60
- return await this.contract.calcEthOut(token, amount);
61
- }
62
- async calcTokenIn(token, amountEth) {
63
- return await this.contract.calcTokenIn(token, amountEth);
64
- }
65
- async calcTokenOut(token, amountEth) {
66
- return await this.contract.calcTokenOut(token, amountEth);
67
- }
18
+ return new Contract(this.address, Helper3Abi, this.provider);
19
+ }
20
+ async getTokenInfo(token) { return await this.contract.getTokenInfo(token); }
21
+ async tryBuy(token, amount, funds) { return await this.contract.tryBuy(token, amount, funds); }
22
+ async trySell(token, amount) { return await this.contract.trySell(token, amount); }
23
+ async calcInitialPrice(maxRaising, totalSupply, offers, reserves) { return await this.contract.calcInitialPrice(maxRaising, totalSupply, offers, reserves); }
24
+ async calcBuyAmount(ti, funds) { return await this.contract.calcBuyAmount(ti, funds); }
25
+ async calcBuyCost(ti, amount) { return await this.contract.calcBuyCost(ti, amount); }
26
+ async calcSellCost(ti, amount) { return await this.contract.calcSellCost(ti, amount); }
27
+ async calcTradingFee(ti, funds) { return await this.contract.calcTradingFee(ti, funds); }
28
+ async getPancakePair(token) { return await this.contract.getPancakePair(token); }
29
+ async WETH() { return await this.contract.WETH(); }
30
+ async WHITE_LIST() { return await this.contract.WHITE_LIST(); }
31
+ async calcEthIn(token, amount) { return await this.contract.calcEthIn(token, amount); }
32
+ async calcEthOut(token, amount) { return await this.contract.calcEthOut(token, amount); }
33
+ async calcTokenIn(token, amountEth) { return await this.contract.calcTokenIn(token, amountEth); }
34
+ async calcTokenOut(token, amountEth) { return await this.contract.calcTokenOut(token, amountEth); }
68
35
  }
69
36
  export class Helper3Writer extends Helper3 {
70
- signer;
71
37
  constructor(address, signer) {
72
38
  super(address, signer.provider);
73
39
  this.signer = signer;
@@ -82,9 +48,7 @@ export class Helper3Writer extends Helper3 {
82
48
  const signer = new Wallet(privateKey, provider);
83
49
  return new Helper3Writer(addresses[chain], signer);
84
50
  }
85
- get writeContract() {
86
- return new Contract(this.address, HELPER3_ABI, this.signer);
87
- }
51
+ get writeContract() { return new Contract(this.address, Helper3Abi, this.signer); }
88
52
  async buyWithEth(origin, token, to, funds, minAmount) {
89
53
  const tx = await this.writeContract.buyWithEth(origin, token, to, funds, minAmount, { value: funds });
90
54
  return await tx.wait();
@@ -1 +1,26 @@
1
- export { approveFourTokenManagerBatch, type ApproveFourTokenManagerBatchParams, type ApproveFourTokenManagerBatchResult, } from '../../bundle-core/four-meme/approve-tokenmanager.js';
1
+ import type { FourSignConfig } from './types.js';
2
+ /** ✅ 批量授权参数(直接提交到链上) */
3
+ export type ApproveFourTokenManagerBatchParams = {
4
+ privateKeys: string[];
5
+ tokenAddress: string;
6
+ amounts: string[];
7
+ config: FourSignConfig;
8
+ };
9
+ /** ✅ 批量授权结果(包含提交状态) */
10
+ export type ApproveFourTokenManagerBatchResult = {
11
+ success: boolean;
12
+ signedTransactions: string[];
13
+ approvedCount: number;
14
+ skippedCount: number;
15
+ txHashes?: string[];
16
+ message: string;
17
+ };
18
+ /**
19
+ * 批量授权代币给 TokenManager(用于 Private Buy/Sell)
20
+ * ✅ 直接通过 RPC 提交到链上并等待确认
21
+ * ✅ 不需要 Merkle API Key,使用普通 RPC 即可
22
+ * ✅ 专门用于授权给 TokenManagerOriginal 合约
23
+ * ✅ 用于 fourBatchPrivateSell 和 fourBatchSellWithBundleMerkle
24
+ * ✅ 优化:并行获取 gasPrice、decimals、allowances
25
+ */
26
+ export declare function approveFourTokenManagerBatch(params: ApproveFourTokenManagerBatchParams): Promise<ApproveFourTokenManagerBatchResult>;
@@ -1 +1,113 @@
1
- export { approveFourTokenManagerBatch, } from '../../bundle-core/four-meme/approve-tokenmanager.js';
1
+ import { ethers, Wallet } from 'ethers';
2
+ import { NonceManager, getOptimizedGasPrice } from '../../utils/bundle-helpers.js';
3
+ import { ADDRESSES } from '../../utils/constants.js';
4
+ import { ERC20_ABI } from '../../shared/abis/common.js';
5
+ import { getTxType, getGasPriceConfig } from './config.js';
6
+ import { batchCheckAllowances } from '../../utils/erc20.js';
7
+ /**
8
+ * 批量授权代币给 TokenManager(用于 Private Buy/Sell)
9
+ * ✅ 直接通过 RPC 提交到链上并等待确认
10
+ * ✅ 不需要 Merkle API Key,使用普通 RPC 即可
11
+ * ✅ 专门用于授权给 TokenManagerOriginal 合约
12
+ * ✅ 用于 fourBatchPrivateSell 和 fourBatchSellWithBundleMerkle
13
+ * ✅ 优化:并行获取 gasPrice、decimals、allowances
14
+ */
15
+ export async function approveFourTokenManagerBatch(params) {
16
+ const { privateKeys, tokenAddress, amounts, config } = params;
17
+ if (privateKeys.length === 0 || amounts.length !== privateKeys.length) {
18
+ throw new Error('Private key count and amount count must match');
19
+ }
20
+ const tmAddr = ADDRESSES.BSC.TokenManagerOriginal;
21
+ const chainId = config.chainId ?? 56;
22
+ // ✅ 直接使用传入的 RPC URL 创建 provider(不依赖 Merkle)
23
+ const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
24
+ chainId: chainId,
25
+ name: 'BSC'
26
+ });
27
+ const wallets = privateKeys.map(k => new Wallet(k, provider));
28
+ const allMax = amounts.every(a => a === 'max');
29
+ // ✅ 优化:并行获取 gasPrice、decimals(如果需要)、allowances
30
+ const [gasPrice, decimals, allowances] = await Promise.all([
31
+ getOptimizedGasPrice(provider, getGasPriceConfig(config)),
32
+ allMax
33
+ ? Promise.resolve(18) // 如果都是 'max',不需要查询 decimals
34
+ : (async () => {
35
+ try {
36
+ const tokenContract = new ethers.Contract(tokenAddress, ERC20_ABI, provider);
37
+ return await tokenContract.decimals();
38
+ }
39
+ catch (error) {
40
+ throw new Error(`查询代币 decimals 失败: ${error.message}`);
41
+ }
42
+ })(),
43
+ batchCheckAllowances(provider, tokenAddress, wallets.map(w => w.address), tmAddr)
44
+ ]);
45
+ const amountsBigInt = amounts.map(a => a === 'max' ? ethers.MaxUint256 : ethers.parseUnits(a, decimals));
46
+ // 只授权不足的
47
+ // ✅ 策略:如果授权额度 < MaxUint256 / 2n,就重新授权(确保授权足够大)
48
+ const APPROVAL_THRESHOLD = ethers.MaxUint256 / 2n;
49
+ const needApproval = wallets.filter((_, i) => allowances[i] < APPROVAL_THRESHOLD);
50
+ const needApprovalAmounts = amountsBigInt.filter((_, i) => allowances[i] < APPROVAL_THRESHOLD);
51
+ const skippedCount = wallets.length - needApproval.length;
52
+ if (needApproval.length === 0) {
53
+ return {
54
+ success: true,
55
+ signedTransactions: [],
56
+ approvedCount: 0,
57
+ skippedCount: skippedCount,
58
+ message: '所有钱包已授权,无需重复授权'
59
+ };
60
+ }
61
+ // ✅ 优化:计算 gasLimit(不需要 RPC)
62
+ const getGasLimit = (cfg) => {
63
+ if (cfg.gasLimit)
64
+ return BigInt(cfg.gasLimit);
65
+ if (cfg.gasLimitMultiplier)
66
+ return BigInt(Math.ceil(60000 * cfg.gasLimitMultiplier));
67
+ return 60000n; // 默认授权 gas limit
68
+ };
69
+ const finalGasLimit = getGasLimit(config);
70
+ const txType = getTxType(config);
71
+ // ✅ 优化:并行获取 nonces 和构建未签名交易
72
+ const nonceManager = new NonceManager(provider);
73
+ const needApprovalTokens = needApproval.map(w => new ethers.Contract(tokenAddress, ERC20_ABI, w));
74
+ const [nonces, unsignedApprovals] = await Promise.all([
75
+ nonceManager.getNextNoncesForWallets(needApproval), // ✅ 批量获取 nonces(JSON-RPC 批量请求)
76
+ Promise.all(needApprovalTokens.map((token, i) => token.approve.populateTransaction(tmAddr, needApprovalAmounts[i])))
77
+ ]);
78
+ // ✅ 并行签名所有授权交易
79
+ const signedTxs = await Promise.all(unsignedApprovals.map((unsigned, i) => needApproval[i].signTransaction({
80
+ ...unsigned,
81
+ from: needApproval[i].address,
82
+ nonce: nonces[i],
83
+ gasLimit: finalGasLimit,
84
+ gasPrice,
85
+ chainId,
86
+ type: txType
87
+ })));
88
+ nonceManager.clearTemp();
89
+ try {
90
+ // ✅ 并行广播所有授权交易
91
+ const txResponses = await Promise.all(signedTxs.map(tx => provider.broadcastTransaction(tx)));
92
+ const txHashes = txResponses.map(r => r.hash);
93
+ // ✅ 并行等待所有授权交易确认(至少1个确认)
94
+ await Promise.all(txResponses.map(tx => tx.wait(1)));
95
+ return {
96
+ success: true,
97
+ signedTransactions: signedTxs,
98
+ approvedCount: signedTxs.length,
99
+ skippedCount: skippedCount,
100
+ txHashes: txHashes,
101
+ message: `授权成功!共 ${signedTxs.length} 个钱包已授权,跳过 ${skippedCount} 个已授权钱包`
102
+ };
103
+ }
104
+ catch (error) {
105
+ return {
106
+ success: false,
107
+ signedTransactions: signedTxs,
108
+ approvedCount: 0,
109
+ skippedCount: skippedCount,
110
+ message: `授权提交失败: ${error.message}`
111
+ };
112
+ }
113
+ }