four-flap-meme-sdk 2.2.8 → 2.2.10

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 +86 -20
  142. package/dist/index.js +216 -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 +253 -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 -3
  166. package/dist/shared/flap/constants.js +4 -5
  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 -5
  171. package/dist/shared/flap/index.js +5 -5
  172. package/dist/shared/flap/launch-v6.d.ts +117 -0
  173. package/dist/shared/flap/launch-v6.js +111 -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 +267 -161
  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 +195 -104
  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.d.ts +3 -14
  199. package/dist/shared/flap/portal.js +26 -49
  200. package/dist/shared/flap/vanity.d.ts +5 -8
  201. package/dist/shared/flap/vanity.js +20 -21
  202. package/dist/shared/flap/vault.d.ts +93 -25
  203. package/dist/shared/flap/vault.js +126 -75
  204. package/dist/shared/four/tax-token.d.ts +1 -1
  205. package/dist/shared/four/tax-token.js +7 -27
  206. package/dist/shared/index.d.ts +0 -6
  207. package/dist/shared/index.js +0 -4
  208. package/dist/utils/airdrop-sweep.d.ts +76 -4
  209. package/dist/utils/airdrop-sweep.js +55 -42
  210. package/dist/utils/bundle-helpers.d.ts +243 -9
  211. package/dist/utils/bundle-helpers.js +584 -10
  212. package/dist/utils/constants.d.ts +61 -5
  213. package/dist/utils/constants.js +80 -5
  214. package/dist/utils/contract-factory.d.ts +4 -2
  215. package/dist/utils/contract-factory.js +18 -25
  216. package/dist/utils/erc20.d.ts +89 -7
  217. package/dist/utils/erc20.js +125 -94
  218. package/dist/utils/errors.d.ts +1 -12
  219. package/dist/utils/errors.js +1 -60
  220. package/dist/utils/holders-maker.d.ts +138 -2
  221. package/dist/utils/holders-maker.js +661 -26
  222. package/dist/utils/lp-inspect.d.ts +112 -2
  223. package/dist/utils/lp-inspect.js +223 -73
  224. package/dist/utils/mpcExclusive.d.ts +5 -2
  225. package/dist/utils/mpcExclusive.js +3 -4
  226. package/dist/utils/private-sale.d.ts +58 -2
  227. package/dist/utils/private-sale.js +15 -4
  228. package/dist/utils/provider-factory.d.ts +0 -4
  229. package/dist/utils/provider-factory.js +0 -10
  230. package/dist/utils/quote-helpers.d.ts +45 -4
  231. package/dist/utils/quote-helpers.js +74 -17
  232. package/dist/utils/stealth-transfer.d.ts +28 -2
  233. package/dist/utils/stealth-transfer.js +15 -31
  234. package/dist/utils/swap-helpers.d.ts +15 -2
  235. package/dist/utils/swap-helpers.js +11 -6
  236. package/dist/utils/wallet.d.ts +25 -2
  237. package/dist/utils/wallet.js +10 -13
  238. package/package.json +4 -160
  239. package/dist/__tests__/subpath-exports.test.d.ts +0 -1
  240. package/dist/__tests__/subpath-exports.test.js +0 -64
  241. package/dist/abis/common.d.ts +0 -85
  242. package/dist/abis/common.js +0 -264
  243. package/dist/abis/contracts/TaxToken.json +0 -969
  244. package/dist/abis/contracts/TokenManager2.json +0 -136
  245. package/dist/abis/contracts/index.d.ts +0 -5
  246. package/dist/abis/contracts/index.js +0 -5
  247. package/dist/abis/flap/index.d.ts +0 -3
  248. package/dist/abis/flap/index.js +0 -3
  249. package/dist/abis/flap/portal-events.d.ts +0 -6
  250. package/dist/abis/flap/portal-events.js +0 -17
  251. package/dist/abis/flap/portal.d.ts +0 -6
  252. package/dist/abis/flap/portal.js +0 -37
  253. package/dist/abis/flap/vault.d.ts +0 -171
  254. package/dist/abis/flap/vault.js +0 -91
  255. package/dist/abis/index.d.ts +0 -8
  256. package/dist/abis/index.js +0 -11
  257. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
  258. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  259. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
  260. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  261. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
  262. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  263. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  264. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  265. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  266. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  267. package/dist/bundle-core/config-helpers.d.ts +0 -36
  268. package/dist/bundle-core/config-helpers.js +0 -57
  269. package/dist/bundle-core/errors.d.ts +0 -50
  270. package/dist/bundle-core/errors.js +0 -35
  271. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
  272. package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
  273. package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
  274. package/dist/bundle-core/four-meme/core-helpers.js +0 -40
  275. package/dist/bundle-core/four-meme/core.d.ts +0 -4
  276. package/dist/bundle-core/four-meme/core.js +0 -515
  277. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
  278. package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
  279. package/dist/bundle-core/four-meme/private.d.ts +0 -27
  280. package/dist/bundle-core/four-meme/private.js +0 -465
  281. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
  282. package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
  283. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
  284. package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
  285. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
  286. package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
  287. package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
  288. package/dist/bundle-core/four-meme/swap-internal.js +0 -18
  289. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
  290. package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
  291. package/dist/bundle-core/four-meme/swap.d.ts +0 -17
  292. package/dist/bundle-core/four-meme/swap.js +0 -505
  293. package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
  294. package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
  295. package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
  296. package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
  297. package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
  298. package/dist/bundle-core/four-meme/types/index.js +0 -1
  299. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
  300. package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
  301. package/dist/bundle-core/four-meme/types.d.ts +0 -1
  302. package/dist/bundle-core/four-meme/types.js +0 -1
  303. package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
  304. package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
  305. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
  306. package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
  307. package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
  308. package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
  309. package/dist/bundle-core/index.d.ts +0 -8
  310. package/dist/bundle-core/index.js +0 -8
  311. package/dist/bundle-core/internal.d.ts +0 -21
  312. package/dist/bundle-core/internal.js +0 -182
  313. package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
  314. package/dist/bundle-core/sign-context-helpers.js +0 -67
  315. package/dist/bundle-core/submit.d.ts +0 -293
  316. package/dist/bundle-core/submit.js +0 -727
  317. package/dist/bundle-core/types/index.d.ts +0 -8
  318. package/dist/bundle-core/types/index.js +0 -1
  319. package/dist/bundle-core/types.d.ts +0 -1
  320. package/dist/bundle-core/types.js +0 -1
  321. package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
  322. package/dist/chains/bsc/four/utils-disperse.js +0 -1
  323. package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
  324. package/dist/chains/bsc/four/utils-pairwise.js +0 -1
  325. package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
  326. package/dist/chains/bsc/four/utils-sweep.js +0 -1
  327. package/dist/chains/bsc/iro.d.ts +0 -5
  328. package/dist/chains/bsc/iro.js +0 -4
  329. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
  330. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
  331. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
  332. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
  333. package/dist/chains/eni/flat-aliases.d.ts +0 -10
  334. package/dist/chains/eni/flat-aliases.js +0 -8
  335. package/dist/chains/eni/submit.d.ts +0 -43
  336. package/dist/chains/eni/submit.js +0 -286
  337. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
  338. package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
  339. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
  340. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
  341. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
  342. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
  343. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
  344. package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
  345. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
  346. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
  347. package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
  348. package/dist/contracts/tm-bundle-helpers.js +0 -72
  349. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  350. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  351. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  352. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  353. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  354. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  355. package/dist/dex/direct-router-helpers.d.ts +0 -264
  356. package/dist/dex/direct-router-helpers.js +0 -539
  357. package/dist/dex/types.d.ts +0 -81
  358. package/dist/dex/types.js +0 -1
  359. package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
  360. package/dist/exports/root-bundle-and-tooling.js +0 -30
  361. package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
  362. package/dist/exports/root-eni-and-bsc-iro.js +0 -66
  363. package/dist/exports/root-foundations.d.ts +0 -35
  364. package/dist/exports/root-foundations.js +0 -70
  365. package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
  366. package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
  367. package/dist/flap/index.d.ts +0 -10
  368. package/dist/flap/index.js +0 -8
  369. package/dist/flows/index.d.ts +0 -1
  370. package/dist/flows/index.js +0 -1
  371. package/dist/merkle/index.d.ts +0 -12
  372. package/dist/merkle/index.js +0 -11
  373. package/dist/shared/clients/index.d.ts +0 -8
  374. package/dist/shared/clients/index.js +0 -8
  375. package/dist/shared/constants/quote.d.ts +0 -30
  376. package/dist/shared/constants/quote.js +0 -37
  377. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
  378. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
  379. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
  380. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
  381. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
  382. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
  383. package/dist/shared/flap/portal-create-token.d.ts +0 -81
  384. package/dist/shared/flap/portal-create-token.js +0 -255
  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
@@ -7,7 +7,6 @@
7
7
  * 3. 买到毕业(代币上 DEX)
8
8
  * 4. 多个钱包在 PancakeSwap(外盘)继续买入
9
9
  */
10
- import type { TaxVaultConfig } from '../vault.js';
11
10
  import { type FlapSignConfig } from './config.js';
12
11
  import type { MerkleSignedResult } from './types.js';
13
12
  export type CreateToDexChain = 'bsc' | 'xlayer' | 'base';
@@ -76,22 +75,10 @@ export interface FlapCreateToDexParams {
76
75
  dexId?: number;
77
76
  /** V4 参数:LP 费率档位(0=STANDARD 0.25%, 1=LOW 0.01%, 2=HIGH 1%) */
78
77
  lpFeeProfile?: number;
79
- /** Tax Token V2/V3 高级税收配置(启用后使用 newTokenV6 TOKEN_TAXED_V3) */
80
- taxV2Config?: {
81
- taxDuration: number;
82
- antiFarmerDuration: number;
83
- buyTaxRate?: number;
84
- sellTaxRate?: number;
85
- dividendToken?: string;
86
- commissionReceiver?: string;
87
- mktBps: number;
88
- deflationBps: number;
89
- dividendBps: number;
90
- lpBps: number;
91
- minimumShareBalance?: number;
92
- /** ✅ Tax Vault 金库配置(可选) */
93
- vaultConfig?: TaxVaultConfig;
94
- };
78
+ /** 高级税收配置(newTokenV6 / newTokenV6WithVault) */
79
+ taxV2Config?: import('./types.js').TaxV2Config;
80
+ buyTaxRate?: number;
81
+ sellTaxRate?: number;
95
82
  /** V3 扩展 ID */
96
83
  extensionID?: string;
97
84
  /** V3 扩展数据 */
@@ -8,68 +8,68 @@
8
8
  * 4. 多个钱包在 PancakeSwap(外盘)继续买入
9
9
  */
10
10
  import { ethers, Contract, Wallet } from 'ethers';
11
- import { NonceManager, getOptimizedGasPrice, buildProfitHopTransactions, PROFIT_HOP_COUNT, } from '../../../utils/bundle-helpers.js';
11
+ import { NonceManager, getOptimizedGasPrice, buildProfitHopTransactions, PROFIT_HOP_COUNT } from '../../../utils/bundle-helpers.js';
12
12
  import { FLAP_PORTAL_ADDRESSES, FLAP_ORIGINAL_PORTAL_ADDRESSES } from '../constants.js';
13
- import { normalizeTaxLaunchConfig, populateCreateTokenTransaction, } from '../portal-create-token.js';
14
- import { MigratorType } from '../portal.js';
15
- import { ZERO_ADDRESS } from '../../../shared/constants/index.js';
13
+ import { buildNewTokenV6WithVaultParams, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI } from '../vault.js';
14
+ import { buildNewTokenV6Params } from '../launch-v6.js';
15
+ import { PROFIT_CONFIG, ZERO_ADDRESS } from '../../../utils/constants.js';
16
16
  import { GAS_LIMITS } from '../../constants/index.js';
17
- import { getGasPriceConfig, getTxType, getProfitRecipient, getProfitRateBps, getBribeAmount, BLOCKRAZOR_BUILDER_EOA, PORTAL_ABI, } from './config.js';
17
+ import { getGasPriceConfig, getTxType, getProfitRecipient, getBribeAmount, BLOCKRAZOR_BUILDER_EOA, PORTAL_ABI } from './config.js';
18
18
  // ==================== ERC20 ABI ====================
19
19
  const ERC20_ABI = [
20
20
  {
21
- type: 'function',
22
- name: 'approve',
21
+ type: "function",
22
+ name: "approve",
23
23
  inputs: [
24
- { name: 'spender', type: 'address' },
25
- { name: 'amount', type: 'uint256' },
24
+ { name: "spender", type: "address" },
25
+ { name: "amount", type: "uint256" }
26
26
  ],
27
- outputs: [{ name: '', type: 'bool' }],
28
- stateMutability: 'nonpayable',
29
- },
27
+ outputs: [{ name: "", type: "bool" }],
28
+ stateMutability: "nonpayable"
29
+ }
30
30
  ];
31
31
  // ==================== PancakeSwap Router ABI ====================
32
32
  const PANCAKE_ROUTER_ABI = [
33
33
  {
34
- type: 'function',
35
- name: 'exactInputSingle',
34
+ type: "function",
35
+ name: "exactInputSingle",
36
36
  inputs: [
37
37
  {
38
- name: 'params',
39
- type: 'tuple',
38
+ name: "params",
39
+ type: "tuple",
40
40
  components: [
41
- { name: 'tokenIn', type: 'address' },
42
- { name: 'tokenOut', type: 'address' },
43
- { name: 'fee', type: 'uint24' },
44
- { name: 'recipient', type: 'address' },
45
- { name: 'amountIn', type: 'uint256' },
46
- { name: 'amountOutMinimum', type: 'uint256' },
47
- { name: 'sqrtPriceLimitX96', type: 'uint160' },
48
- ],
49
- },
41
+ { name: "tokenIn", type: "address" },
42
+ { name: "tokenOut", type: "address" },
43
+ { name: "fee", type: "uint24" },
44
+ { name: "recipient", type: "address" },
45
+ { name: "amountIn", type: "uint256" },
46
+ { name: "amountOutMinimum", type: "uint256" },
47
+ { name: "sqrtPriceLimitX96", type: "uint160" }
48
+ ]
49
+ }
50
50
  ],
51
- outputs: [{ name: 'amountOut', type: 'uint256' }],
52
- stateMutability: 'payable',
51
+ outputs: [{ name: "amountOut", type: "uint256" }],
52
+ stateMutability: "payable"
53
53
  },
54
54
  {
55
- type: 'function',
56
- name: 'multicall',
57
- inputs: [{ name: 'data', type: 'bytes[]' }],
58
- outputs: [{ name: 'results', type: 'bytes[]' }],
59
- stateMutability: 'payable',
55
+ type: "function",
56
+ name: "multicall",
57
+ inputs: [{ name: "data", type: "bytes[]" }],
58
+ outputs: [{ name: "results", type: "bytes[]" }],
59
+ stateMutability: "payable"
60
60
  },
61
61
  {
62
- type: 'function',
63
- name: 'swapExactTokensForTokens',
62
+ type: "function",
63
+ name: "swapExactTokensForTokens",
64
64
  inputs: [
65
- { name: 'amountIn', type: 'uint256' },
66
- { name: 'amountOutMin', type: 'uint256' },
67
- { name: 'path', type: 'address[]' },
68
- { name: 'to', type: 'address' },
65
+ { name: "amountIn", type: "uint256" },
66
+ { name: "amountOutMin", type: "uint256" },
67
+ { name: "path", type: "address[]" },
68
+ { name: "to", type: "address" }
69
69
  ],
70
- outputs: [{ name: 'amountOut', type: 'uint256' }],
71
- stateMutability: 'payable',
72
- },
70
+ outputs: [{ name: "amountOut", type: "uint256" }],
71
+ stateMutability: "payable"
72
+ }
73
73
  ];
74
74
  // ==================== DEX 地址常量 ====================
75
75
  const DEX_ADDRESSES = {
@@ -86,7 +86,7 @@ const DEX_ADDRESSES = {
86
86
  // ✅ Base 使用 Uniswap V3 SwapRouter02
87
87
  UNISWAP_SMART_ROUTER: '0x2626664c2603336E57B271c5C0b26F421741e481',
88
88
  WETH: '0x4200000000000000000000000000000000000006',
89
- },
89
+ }
90
90
  };
91
91
  // ==================== 链常量 ====================
92
92
  // 获取链配置
@@ -103,7 +103,8 @@ function getChainConfig(chain) {
103
103
  }
104
104
  // ==================== 工具函数 ====================
105
105
  /** 构建 ERC20 approve 交易 */
106
- async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amount, nonce, gasPrice, txType, chainId = 56) {
106
+ async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amount, nonce, gasPrice, txType, chainId = 56 // ✅ 添加 chainId 参数
107
+ ) {
107
108
  const erc20Interface = new ethers.Interface(ERC20_ABI);
108
109
  const data = erc20Interface.encodeFunctionData('approve', [spenderAddress, amount]);
109
110
  const tx = {
@@ -111,9 +112,9 @@ async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amo
111
112
  data,
112
113
  from: wallet.address,
113
114
  nonce,
114
- gasLimit: BigInt(100_000), // approve 交易 gas 较低
115
+ gasLimit: BigInt(100000), // approve 交易 gas 较低
115
116
  chainId,
116
- type: txType,
117
+ type: txType
117
118
  };
118
119
  if (txType === 2) {
119
120
  const priorityFee = gasPrice / 10n === 0n ? 1n : gasPrice / 10n;
@@ -167,11 +168,11 @@ function parseQuoteAmount(amount, useNativeToken, quoteTokenDecimals) {
167
168
  * 若 SDK 这里再次 splitAmount,会导致实际 buyAmount 与 UI/预期不一致,并引发余额不足(insufficient funds)。
168
169
  */
169
170
  function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenDecimals) {
170
- const provided = buyers.map((b) => b?.buyAmount).filter((v) => v != null && String(v).trim() !== '');
171
+ const provided = buyers.map(b => b?.buyAmount).filter(v => v != null && String(v).trim() !== '');
171
172
  const allProvided = provided.length === buyers.length;
172
173
  if (allProvided) {
173
174
  // ✅ 所有买家都显式提供了 buyAmount:按传入金额构建,但要修正“浮点/四舍五入导致总和偏差”
174
- const amounts = buyers.map((b) => parseQuoteAmount(String(b.buyAmount), useNativeToken, quoteTokenDecimals));
175
+ const amounts = buyers.map(b => parseQuoteAmount(String(b.buyAmount), useNativeToken, quoteTokenDecimals));
175
176
  const totalWei = parseQuoteAmount(totalAmountStr, useNativeToken, quoteTokenDecimals);
176
177
  const sum = amounts.reduce((a, b) => a + b, 0n);
177
178
  const delta = totalWei - sum;
@@ -201,7 +202,7 @@ function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenD
201
202
  * 5. 利润多跳转账
202
203
  */
203
204
  export async function flapBundleCreateToDex(params) {
204
- const { chain, devPrivateKey, tokenInfo, tokenAddress, quoteToken, quoteTokenDecimals = 18, curveBuyers, curveTotalBuyAmount, enableDexBuy = false, dexBuyers = [], dexTotalBuyAmount, dexPoolType = 'v3', v3Fee = 2500, config, } = params;
205
+ const { chain, devPrivateKey, tokenInfo, tokenAddress, quoteToken, quoteTokenDecimals = 18, curveBuyers, curveTotalBuyAmount, enableDexBuy = false, dexBuyers = [], dexTotalBuyAmount, dexPoolType = 'v3', v3Fee = 2500, config } = params;
205
206
  // 验证参数
206
207
  if (curveBuyers.length === 0) {
207
208
  throw new Error('至少需要一个内盘买入钱包');
@@ -235,30 +236,34 @@ export async function flapBundleCreateToDex(params) {
235
236
  // 创建 Provider
236
237
  const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
237
238
  chainId,
238
- name: chain.toUpperCase(),
239
+ name: chain.toUpperCase()
239
240
  });
240
241
  const portalAddress = FLAP_PORTAL_ADDRESSES[chain.toUpperCase()];
241
242
  const originalPortalAddress = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain.toUpperCase()];
242
243
  const nonceManager = new NonceManager(provider);
243
244
  // 创建钱包实例
244
245
  const devWallet = new Wallet(devPrivateKey, provider);
245
- const curveWallets = curveBuyers.map((b) => ({
246
+ const curveWallets = curveBuyers.map(b => ({
246
247
  wallet: new Wallet(b.privateKey, provider),
247
- buyAmount: b.buyAmount,
248
+ buyAmount: b.buyAmount
248
249
  }));
249
- const dexWallets = (enableDexBuy ? dexBuyers : []).map((b) => ({
250
+ const dexWallets = (enableDexBuy ? dexBuyers : []).map(b => ({
250
251
  wallet: new Wallet(b.privateKey, provider),
251
- buyAmount: b.buyAmount,
252
+ buyAmount: b.buyAmount
252
253
  }));
253
254
  // ✅ 并行获取 gasPrice + 所有钱包 nonces
254
- const allWallets = [devWallet, ...curveWallets.map((c) => c.wallet), ...dexWallets.map((d) => d.wallet)];
255
+ const allWallets = [
256
+ devWallet,
257
+ ...curveWallets.map(c => c.wallet),
258
+ ...dexWallets.map(d => d.wallet)
259
+ ];
255
260
  const uniqueWallets = allWallets.filter((w, i) => {
256
261
  const addr = w.address.toLowerCase();
257
- return allWallets.findIndex((x) => x.address.toLowerCase() === addr) === i;
262
+ return allWallets.findIndex(x => x.address.toLowerCase() === addr) === i;
258
263
  });
259
264
  const [gasPrice, noncesArray] = await Promise.all([
260
265
  getOptimizedGasPrice(provider, getGasPriceConfig(config)),
261
- nonceManager.getNextNoncesForWallets(uniqueWallets),
266
+ nonceManager.getNextNoncesForWallets(uniqueWallets)
262
267
  ]);
263
268
  // 构建 nonces Map
264
269
  const noncesMap = new Map();
@@ -278,8 +283,9 @@ export async function flapBundleCreateToDex(params) {
278
283
  dexBuyAmounts = resolveBuyerAmounts(dexBuyers, dexTotalBuyAmount, useNativeToken, quoteTokenDecimals);
279
284
  }
280
285
  // ✅ 计算利润
281
- const totalBuyAmount = curveBuyAmounts.reduce((a, b) => a + b, 0n) + dexBuyAmounts.reduce((a, b) => a + b, 0n);
282
- const profitAmount = (totalBuyAmount * BigInt(getProfitRateBps())) / 10000n;
286
+ const totalBuyAmount = curveBuyAmounts.reduce((a, b) => a + b, 0n)
287
+ + dexBuyAmounts.reduce((a, b) => a + b, 0n);
288
+ const profitAmount = (totalBuyAmount * BigInt(PROFIT_CONFIG.RATE_BPS)) / 10000n;
283
289
  // ==================== 构建交易 ====================
284
290
  const allTransactions = [];
285
291
  // 使用第一个内盘买家作为贿赂支付者(提高 bundle 打包优先级)
@@ -296,7 +302,7 @@ export async function flapBundleCreateToDex(params) {
296
302
  gasPrice,
297
303
  gasLimit: GAS_LIMITS.BRIBE,
298
304
  chainId,
299
- type: txType,
305
+ type: txType
300
306
  });
301
307
  allTransactions.push(bribeTx);
302
308
  }
@@ -306,39 +312,125 @@ export async function flapBundleCreateToDex(params) {
306
312
  const devNonce = noncesMap.get(devAddr);
307
313
  noncesMap.set(devAddr, devNonce + 1);
308
314
  const originalPortal = new Contract(originalPortalAddress, PORTAL_ABI, devWallet);
309
- const normalizedTax = normalizeTaxLaunchConfig(params.taxV2Config, params.taxRate);
310
- const isTaxLaunch = !!normalizedTax || (params.taxRate ?? 0) > 0;
311
- const hasVault = !!normalizedTax?.vaultConfig && normalizedTax.vaultConfig.vaultType !== 'none';
312
- const useV7Portal = !isTaxLaunch &&
313
- !hasVault &&
314
- (params.lpFeeProfile !== undefined ||
315
- params.dexId !== undefined ||
316
- params.migratorType === MigratorType.PCS_INFINITY_CL_MIGRATOR);
317
- const createUnsigned = await populateCreateTokenTransaction({
318
- chain,
319
- devWallet,
320
- originalPortal,
321
- tokenInfo,
322
- quoteToken: inputToken,
323
- beneficiary: devWallet.address,
324
- dexThresh: params.dexThresh,
325
- salt: params.salt,
326
- migratorType: params.migratorType,
327
- taxRate: params.taxRate,
328
- dexId: params.dexId,
329
- lpFeeProfile: params.lpFeeProfile,
330
- extensionID: params.extensionID,
331
- extensionData: params.extensionData,
332
- useV7Portal,
333
- taxConfig: normalizedTax,
334
- });
315
+ // 判断使用哪个版本的 newToken
316
+ // V5: 提供了 taxV2Config(Tax Token V2 高级税收分配)
317
+ // V4: 提供了 dexId lpFeeProfile(支持 DEX 选择和 LP 费率配置)
318
+ // V3: 提供了 extensionID(支持扩展数据)
319
+ // V2: 默认
320
+ const useV5 = params.taxV2Config !== undefined && (params.taxRate ?? 0) > 0;
321
+ const useV4 = !useV5 && (params.dexId !== undefined || params.lpFeeProfile !== undefined);
322
+ const useV3 = !useV5 && !useV4 && !!params.extensionID;
323
+ let createUnsigned;
324
+ if (useV5) {
325
+ // V5: Tax Token V2 高级税收分配
326
+ const tv2 = params.taxV2Config;
327
+ const hasVault = tv2.vaultConfig && tv2.vaultConfig.vaultType !== 'none';
328
+ if (hasVault) {
329
+ const chainKey = chain.toUpperCase();
330
+ const vaultPortalAddr = VAULT_PORTAL_ADDRESSES[chainKey];
331
+ if (!vaultPortalAddr) {
332
+ throw new Error(`链 "${chain}" 不支持 Tax Vault 金库功能`);
333
+ }
334
+ const vaultPortal = new Contract(vaultPortalAddr, VAULT_PORTAL_ABI, devWallet);
335
+ const v6VaultParams = buildNewTokenV6WithVaultParams({
336
+ tokenInfo,
337
+ taxV2: tv2,
338
+ chain: chainKey,
339
+ salt: params.salt,
340
+ taxRate: params.taxRate,
341
+ buyTaxRate: params.buyTaxRate,
342
+ sellTaxRate: params.sellTaxRate,
343
+ dexThresh: params.dexThresh,
344
+ migratorType: params.migratorType,
345
+ quoteToken: inputToken,
346
+ quoteAmt: 0n,
347
+ dexId: params.dexId,
348
+ lpFeeProfile: params.lpFeeProfile,
349
+ });
350
+ createUnsigned = await vaultPortal.newTokenV6WithVault.populateTransaction(v6VaultParams);
351
+ }
352
+ else {
353
+ const v6Params = buildNewTokenV6Params({
354
+ tokenInfo,
355
+ taxV2: tv2,
356
+ beneficiary: devWallet.address,
357
+ salt: params.salt,
358
+ taxRate: params.taxRate,
359
+ buyTaxRate: params.buyTaxRate,
360
+ sellTaxRate: params.sellTaxRate,
361
+ dexThresh: params.dexThresh,
362
+ migratorType: params.migratorType,
363
+ quoteToken: inputToken,
364
+ quoteAmt: 0n,
365
+ dexId: params.dexId,
366
+ lpFeeProfile: params.lpFeeProfile,
367
+ extensionID: params.extensionID,
368
+ extensionData: params.extensionData,
369
+ });
370
+ createUnsigned = await originalPortal.newTokenV6.populateTransaction(v6Params);
371
+ }
372
+ }
373
+ else if (useV4) {
374
+ // V4: 支持 DEX ID 和 LP 费率配置(用于选择池子费率)
375
+ createUnsigned = await originalPortal.newTokenV4.populateTransaction({
376
+ name: tokenInfo.name,
377
+ symbol: tokenInfo.symbol,
378
+ meta: tokenInfo.meta,
379
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
380
+ salt: params.salt ?? '0x' + '00'.repeat(32),
381
+ taxRate: (params.taxRate ?? 0) & 0xffff,
382
+ migratorType: (params.migratorType ?? 0) & 0xff,
383
+ quoteToken: inputToken,
384
+ quoteAmt: 0n,
385
+ beneficiary: devWallet.address,
386
+ permitData: '0x',
387
+ extensionID: params.extensionID ?? '0x' + '00'.repeat(32),
388
+ extensionData: params.extensionData ?? '0x',
389
+ dexId: (params.dexId ?? 0) & 0xff,
390
+ lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff
391
+ });
392
+ }
393
+ else if (useV3) {
394
+ // V3: 支持扩展数据
395
+ createUnsigned = await originalPortal.newTokenV3.populateTransaction({
396
+ name: tokenInfo.name,
397
+ symbol: tokenInfo.symbol,
398
+ meta: tokenInfo.meta,
399
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
400
+ salt: params.salt ?? '0x' + '00'.repeat(32),
401
+ taxRate: (params.taxRate ?? 0) & 0xffff,
402
+ migratorType: (params.migratorType ?? 0) & 0xff,
403
+ quoteToken: inputToken,
404
+ quoteAmt: 0n,
405
+ beneficiary: devWallet.address,
406
+ permitData: '0x',
407
+ extensionID: params.extensionID,
408
+ extensionData: params.extensionData ?? '0x'
409
+ });
410
+ }
411
+ else {
412
+ // V2: 基础版本
413
+ createUnsigned = await originalPortal.newTokenV2.populateTransaction({
414
+ name: tokenInfo.name,
415
+ symbol: tokenInfo.symbol,
416
+ meta: tokenInfo.meta,
417
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
418
+ salt: params.salt ?? '0x' + '00'.repeat(32),
419
+ taxRate: (params.taxRate ?? 0) & 0xffff,
420
+ migratorType: (params.migratorType ?? 0) & 0xff,
421
+ quoteToken: inputToken,
422
+ quoteAmt: 0n,
423
+ beneficiary: devWallet.address,
424
+ permitData: '0x'
425
+ });
426
+ }
335
427
  const createTx = {
336
428
  ...createUnsigned,
337
429
  from: devWallet.address,
338
430
  nonce: devNonce,
339
431
  gasLimit: finalGasLimit,
340
432
  chainId,
341
- type: txType,
433
+ type: txType
342
434
  };
343
435
  if (txType === 2) {
344
436
  createTx.maxFeePerGas = gasPrice;
@@ -360,7 +452,8 @@ export async function flapBundleCreateToDex(params) {
360
452
  if (!useNativeToken) {
361
453
  const approveNonce = noncesMap.get(addr);
362
454
  noncesMap.set(addr, approveNonce + 1);
363
- const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId);
455
+ const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId // ✅ 传递 chainId
456
+ );
364
457
  signedTxs.push(approveTx);
365
458
  }
366
459
  // 构建买入交易
@@ -376,18 +469,16 @@ export async function flapBundleCreateToDex(params) {
376
469
  inputAmount: curveBuyAmounts[i],
377
470
  minOutputAmount: 0n,
378
471
  permitData: '0x', // 不使用 permit,使用链上 approve
379
- extensionData,
472
+ extensionData
380
473
  }, useNativeToken ? { value: curveBuyAmounts[i] } : {});
381
474
  // 最后一个买家触发毕业,需要更多 gas
382
475
  const isLastBuyer = i === curveWallets.length - 1;
383
476
  // ⚠️ 触发毕业(创建 Pancake V3 池 + Mint 初始流动性)会非常耗 gas。
384
477
  // 链上成功样例 0x29b173... 的 gasLimit=8,000,000,gasUsed≈6,647,149。
385
478
  // Flap 官方示例脚本也使用 last_buy=8_000_000。
386
- const LAST_BUY_GAS_LIMIT = BigInt(8_000_000);
479
+ const LAST_BUY_GAS_LIMIT = BigInt(8000000);
387
480
  const buyGasLimit = isLastBuyer
388
- ? finalGasLimit > LAST_BUY_GAS_LIMIT
389
- ? finalGasLimit
390
- : LAST_BUY_GAS_LIMIT
481
+ ? (finalGasLimit > LAST_BUY_GAS_LIMIT ? finalGasLimit : LAST_BUY_GAS_LIMIT)
391
482
  : finalGasLimit;
392
483
  const tx = {
393
484
  ...unsigned,
@@ -396,7 +487,7 @@ export async function flapBundleCreateToDex(params) {
396
487
  gasLimit: buyGasLimit,
397
488
  chainId,
398
489
  type: txType,
399
- value: useNativeToken ? curveBuyAmounts[i] : 0n,
490
+ value: useNativeToken ? curveBuyAmounts[i] : 0n
400
491
  };
401
492
  if (txType === 2) {
402
493
  tx.maxFeePerGas = gasPrice;
@@ -411,11 +502,11 @@ export async function flapBundleCreateToDex(params) {
411
502
  });
412
503
  const curveBuyResults = await Promise.all(curveBuyTxPromises);
413
504
  // 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
414
- curveBuyResults.forEach((txs) => allTransactions.push(...txs));
505
+ curveBuyResults.forEach(txs => allTransactions.push(...txs));
415
506
  // 4. 外盘买入交易(直接调用 PancakeSwap Router)
416
507
  // ✅ 重要修改:直接调用 PancakeSwap SmartRouter
417
508
  // 参考官方代码: flap-bundle-release/app/v2/pvp/001_launch_buy.ts
418
- //
509
+ //
419
510
  // ⚠️ 关键:税代币(migratorType=1)毕业到 V2 池,必须用 swapExactTokensForTokens
420
511
  // 普通代币(migratorType=0)毕业到 V3 池,使用 exactInputSingle
421
512
  if (enableDexBuy && dexWallets.length > 0) {
@@ -438,7 +529,7 @@ export async function flapBundleCreateToDex(params) {
438
529
  // migratorType === 1 (V2_MIGRATOR) → 毕业到 V2 池 → 必须使用 V2 买入
439
530
  // migratorType === 0 (V3_MIGRATOR) → 毕业到 V3 池 → 使用 V3 买入
440
531
  // 参考: flap-bundle-release 中税代币使用 PoolType.V2,普通代币使用 PoolType.V3
441
- const effectiveDexPoolType = params.migratorType === 1 ? 'v2' : dexPoolType || 'v3';
532
+ const effectiveDexPoolType = (params.migratorType === 1) ? 'v2' : (dexPoolType || 'v3');
442
533
  // 获取 V3 费率(仅 V3 池使用)
443
534
  const dexV3Fee = actualV3Fee;
444
535
  const dexBuyTxPromises = dexWallets.map(async ({ wallet }, i) => {
@@ -467,7 +558,7 @@ export async function flapBundleCreateToDex(params) {
467
558
  buyAmount,
468
559
  0n, // amountOutMin: 不设置滑点保护(Bundle 中可以接受)
469
560
  [tokenIn, tokenAddress], // path: WBNB/QuoteToken → Token
470
- wallet.address, // recipient
561
+ wallet.address // recipient
471
562
  ]);
472
563
  multicallData = routerInterface.encodeFunctionData('multicall', [[swapData]]);
473
564
  }
@@ -480,14 +571,14 @@ export async function flapBundleCreateToDex(params) {
480
571
  recipient: wallet.address,
481
572
  amountIn: buyAmount,
482
573
  amountOutMinimum: 0n, // 不设置滑点保护(Bundle 中可以接受)
483
- sqrtPriceLimitX96: 0n,
574
+ sqrtPriceLimitX96: 0n
484
575
  };
485
576
  const exactInputSingleData = routerInterface.encodeFunctionData('exactInputSingle', [exactInputSingleParams]);
486
577
  multicallData = routerInterface.encodeFunctionData('multicall', [[exactInputSingleData]]);
487
578
  }
488
579
  // ⚠️ Pancake SmartRouter 外盘买的 gas 不能太小,否则 bundle 预执行会直接失败。
489
580
  // Flap 官方示例配置 dex_buy=5_000_000(flap-bundle-release/app/configs/global.ts)。
490
- const DEX_BUY_GAS_LIMIT = BigInt(8_000_000);
581
+ const DEX_BUY_GAS_LIMIT = BigInt(8000000);
491
582
  const tx = {
492
583
  to: smartRouterAddress,
493
584
  data: multicallData,
@@ -495,7 +586,7 @@ export async function flapBundleCreateToDex(params) {
495
586
  gasLimit: DEX_BUY_GAS_LIMIT,
496
587
  chainId,
497
588
  type: txType,
498
- value: useNativeToken ? buyAmount : 0n,
589
+ value: useNativeToken ? buyAmount : 0n
499
590
  };
500
591
  if (txType === 2) {
501
592
  tx.maxFeePerGas = gasPrice;
@@ -510,7 +601,7 @@ export async function flapBundleCreateToDex(params) {
510
601
  });
511
602
  const dexBuyResults = await Promise.all(dexBuyTxPromises);
512
603
  // 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
513
- dexBuyResults.forEach((txs) => allTransactions.push(...txs));
604
+ dexBuyResults.forEach(txs => allTransactions.push(...txs));
514
605
  }
515
606
  // 5. 利润多跳转账
516
607
  let profitHopWallets;
@@ -528,7 +619,7 @@ export async function flapBundleCreateToDex(params) {
528
619
  gasPrice,
529
620
  chainId,
530
621
  txType,
531
- startNonce: profitNonce,
622
+ startNonce: profitNonce
532
623
  });
533
624
  allTransactions.push(...profitResult.signedTransactions);
534
625
  profitHopWallets = profitResult.hopWallets;
@@ -545,7 +636,7 @@ export async function flapBundleCreateToDex(params) {
545
636
  enableDexBuy,
546
637
  dexBuyerCount: dexBuyers.length,
547
638
  dexTotalBuy: dexBuyAmounts.length > 0 ? ethers.formatEther(dexBuyAmounts.reduce((a, b) => a + b, 0n)) : '0',
548
- profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined,
549
- },
639
+ profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined
640
+ }
550
641
  };
551
642
  }