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
@@ -8,7 +8,7 @@ const PORTAL_ABI = [
8
8
  'function newTokenV2((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData)) external payable returns (address)',
9
9
  'function swapExactInputBuy((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData)) external payable returns (uint256)',
10
10
  'function swapExactInputSell((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData)) external returns (uint256)',
11
- 'function quoteExactInput((address inputToken,address outputToken,uint256 inputAmount)) external returns (uint256)',
11
+ 'function quoteExactInput((address inputToken,address outputToken,uint256 inputAmount)) external returns (uint256)'
12
12
  ];
13
13
  /**
14
14
  * Flap Protocol Bundle 交易方法
@@ -18,20 +18,20 @@ const PORTAL_ABI = [
18
18
  const ERRORS = {
19
19
  NO_PRIVATE_KEY: {
20
20
  en: 'At least 1 private key (creator) is required',
21
- zh: '至少需要 1 个私钥(创建者)',
21
+ zh: '至少需要 1 个私钥(创建者)'
22
22
  },
23
23
  AMOUNT_MISMATCH: {
24
24
  en: (buyCount, buyerCount) => `Buy amount count (${buyCount}) must equal buyer count (${buyerCount})`,
25
- zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`,
25
+ zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`
26
26
  },
27
27
  KEY_AMOUNT_MISMATCH: {
28
28
  en: 'Private key count and amount count must match',
29
- zh: '私钥和购买金额数量必须一致',
29
+ zh: '私钥和购买金额数量必须一致'
30
30
  },
31
31
  SELL_KEY_AMOUNT_MISMATCH: {
32
32
  en: 'Private key count and sell amount count must match',
33
- zh: '私钥和卖出数量必须一致',
34
- },
33
+ zh: '私钥和卖出数量必须一致'
34
+ }
35
35
  };
36
36
  // 获取错误信息(根据环境语言)
37
37
  function getErrorMessage(key, ...args) {
@@ -56,11 +56,28 @@ async function estimateGasWithMultiplier(provider, txRequest, multiplier) {
56
56
  function getTxType(config) {
57
57
  return config.txType ?? 0; // 默认 Legacy (type 0),适用于 48.club/BSC
58
58
  }
59
+ /**
60
+ * 构建完整的交易请求(包含 gas 估算和交易类型)
61
+ */
62
+ async function buildTxRequest(provider, unsigned, from, nonce, gasPrice, config, value) {
63
+ const gasLimit = await estimateGasWithMultiplier(provider, { ...unsigned, from, value }, config.gasLimitMultiplier);
64
+ return {
65
+ ...unsigned,
66
+ from,
67
+ nonce,
68
+ gasLimit,
69
+ gasPrice,
70
+ chainId: 56,
71
+ type: getTxType(config)
72
+ };
73
+ }
59
74
  /**
60
75
  * Flap Protocol: 创建代币 + 捆绑购买
61
76
  */
62
77
  export async function createTokenWithBundleBuy(params) {
63
- const { chain, privateKeys, buyAmounts, tokenInfo, tokenAddress, config } = params;
78
+ const { chain, privateKeys, buyAmounts, tokenInfo, quoteToken, tokenAddress, config } = params;
79
+ // 默认使用 BNB (0地址)
80
+ const quoteTokenAddress = quoteToken || '0x0000000000000000000000000000000000000000';
64
81
  if (privateKeys.length === 0) {
65
82
  throw new Error(getErrorMessage('NO_PRIVATE_KEY'));
66
83
  }
@@ -71,7 +88,7 @@ export async function createTokenWithBundleBuy(params) {
71
88
  const devWallet = new Wallet(privateKeys[0], provider);
72
89
  const club48 = new Club48Client({
73
90
  endpoint: config.club48Endpoint,
74
- explorerEndpoint: config.club48ExplorerEndpoint,
91
+ explorerEndpoint: config.club48ExplorerEndpoint
75
92
  });
76
93
  const blockOffset = config.bundleBlockOffset ?? 100;
77
94
  // 1. 构建交易(为重复地址分配顺序 nonce)
@@ -105,7 +122,7 @@ export async function createTokenWithBundleBuy(params) {
105
122
  quoteToken: params.quoteToken || '0x0000000000000000000000000000000000000000',
106
123
  quoteAmt: 0n,
107
124
  beneficiary: new Wallet(privateKeys[0]).address,
108
- permitData: '0x',
125
+ permitData: '0x'
109
126
  });
110
127
  // 估算 gas 并应用用户配置的安全余量
111
128
  const createGasLimit = await estimateGasWithMultiplier(provider, { ...createTxUnsigned, from: devWallet.address }, config.gasLimitMultiplier);
@@ -116,7 +133,7 @@ export async function createTokenWithBundleBuy(params) {
116
133
  gasLimit: createGasLimit,
117
134
  gasPrice: gasPrice,
118
135
  chainId: 56, // BSC
119
- type: getTxType(config), // 用户可配置:0=Legacy(默认),2=EIP-1559
136
+ type: getTxType(config) // 用户可配置:0=Legacy(默认),2=EIP-1559
120
137
  };
121
138
  const signedCreateTx = await devWallet.signTransaction(createTxRequest);
122
139
  signedTxs.push(signedCreateTx);
@@ -129,7 +146,7 @@ export async function createTokenWithBundleBuy(params) {
129
146
  gasLimit: GAS_LIMITS.BRIBE,
130
147
  chainId: 56,
131
148
  type: 0, // Legacy transaction
132
- nonce: await getNextNonce(devWallet),
149
+ nonce: await getNextNonce(devWallet)
133
150
  });
134
151
  signedTxs.push(tipTx);
135
152
  }
@@ -146,7 +163,7 @@ export async function createTokenWithBundleBuy(params) {
146
163
  const exactOut = await quote.quoteExactInput.staticCall({
147
164
  inputToken: '0x0000000000000000000000000000000000000000',
148
165
  outputToken: tokenAddress,
149
- inputAmount: amountIn,
166
+ inputAmount: amountIn
150
167
  });
151
168
  const keep = BigInt(10000 - slippageBps);
152
169
  minAmountOut = (exactOut * keep) / 10000n;
@@ -176,7 +193,7 @@ export async function createTokenWithBundleBuy(params) {
176
193
  gasLimit: buyGasLimit,
177
194
  gasPrice: gasPrice,
178
195
  chainId: 56, // BSC
179
- type: getTxType(config), // 用户可配置
196
+ type: getTxType(config) // 用户可配置
180
197
  };
181
198
  const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
182
199
  signedTxs.push(signedBuyTx);
@@ -186,11 +203,11 @@ export async function createTokenWithBundleBuy(params) {
186
203
  const bundleUuid = await club48.sendBundle({
187
204
  txs: signedTxs,
188
205
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
189
- noMerge: config.noMerge,
206
+ noMerge: config.noMerge
190
207
  }, {
191
208
  spMode: params.config.spMode ?? 'timestampPersonalSign',
192
209
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
193
- spVMode: params.config.spVMode,
210
+ spVMode: params.config.spVMode
194
211
  });
195
212
  // 3. 等待完成
196
213
  const status = await club48.waitForBundle(bundleUuid, params.config.waitTimeoutMs ?? 60000);
@@ -199,7 +216,7 @@ export async function createTokenWithBundleBuy(params) {
199
216
  tokenAddress,
200
217
  status,
201
218
  createTx: signedCreateTx,
202
- buyTxs,
219
+ buyTxs
203
220
  };
204
221
  }
205
222
  /**
@@ -213,7 +230,7 @@ export async function batchBuyWithBundle(params) {
213
230
  const provider = new JsonRpcProvider(config.rpcUrl);
214
231
  const club48 = new Club48Client({
215
232
  endpoint: config.club48Endpoint,
216
- explorerEndpoint: config.club48ExplorerEndpoint,
233
+ explorerEndpoint: config.club48ExplorerEndpoint
217
234
  });
218
235
  const blockOffset = config.bundleBlockOffset ?? 100;
219
236
  const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
@@ -242,7 +259,7 @@ export async function batchBuyWithBundle(params) {
242
259
  gasLimit: GAS_LIMITS.BRIBE,
243
260
  chainId: 56,
244
261
  type: 0, // Legacy transaction
245
- nonce: await getNextNonce(tipWallet),
262
+ nonce: await getNextNonce(tipWallet)
246
263
  });
247
264
  signedTxs.unshift(tipTx);
248
265
  }
@@ -257,7 +274,7 @@ export async function batchBuyWithBundle(params) {
257
274
  const exactOut = await quote.quoteExactInput.staticCall({
258
275
  inputToken: '0x0000000000000000000000000000000000000000',
259
276
  outputToken: tokenAddress,
260
- inputAmount: amountIn,
277
+ inputAmount: amountIn
261
278
  });
262
279
  const keep = BigInt(10000 - slippageBps);
263
280
  minAmountOut = (exactOut * keep) / 10000n;
@@ -275,7 +292,7 @@ export async function batchBuyWithBundle(params) {
275
292
  const estimatedGas = await provider.estimateGas({
276
293
  ...buyTxUnsigned,
277
294
  from: buyerWallet.address,
278
- value: amountIn,
295
+ value: amountIn
279
296
  });
280
297
  const gasLimit = (estimatedGas * 120n) / 100n;
281
298
  const buyTxRequest = {
@@ -285,7 +302,7 @@ export async function batchBuyWithBundle(params) {
285
302
  gasLimit: gasLimit,
286
303
  gasPrice: gasPrice,
287
304
  chainId: 56, // BSC
288
- type: 0, // Legacy transaction
305
+ type: 0 // Legacy transaction
289
306
  };
290
307
  const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
291
308
  signedTxs.push(signedBuyTx);
@@ -293,11 +310,11 @@ export async function batchBuyWithBundle(params) {
293
310
  const bundleUuid = await club48.sendBundle({
294
311
  txs: signedTxs,
295
312
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
296
- noMerge: config.noMerge,
313
+ noMerge: config.noMerge
297
314
  }, {
298
315
  spMode: params.config.spMode ?? 'timestampPersonalSign',
299
316
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
300
- spVMode: params.config.spVMode,
317
+ spVMode: params.config.spVMode
301
318
  });
302
319
  const status = await club48.waitForBundle(bundleUuid);
303
320
  return { bundleUuid, status, buyTxs: signedTxs };
@@ -313,7 +330,7 @@ export async function batchSellWithBundle(params) {
313
330
  const provider = new JsonRpcProvider(config.rpcUrl);
314
331
  const club48 = new Club48Client({
315
332
  endpoint: config.club48Endpoint,
316
- explorerEndpoint: config.club48ExplorerEndpoint,
333
+ explorerEndpoint: config.club48ExplorerEndpoint
317
334
  });
318
335
  const blockOffset = config.bundleBlockOffset ?? 100;
319
336
  const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
@@ -342,7 +359,7 @@ export async function batchSellWithBundle(params) {
342
359
  gasLimit: GAS_LIMITS.BRIBE,
343
360
  chainId: 56,
344
361
  type: 0, // Legacy transaction
345
- nonce: await getNextNonce(tipWallet),
362
+ nonce: await getNextNonce(tipWallet)
346
363
  });
347
364
  signedTxs.unshift(tipTx);
348
365
  }
@@ -361,7 +378,7 @@ export async function batchSellWithBundle(params) {
361
378
  // 估算 gas 并添加 20% 安全余量
362
379
  const estimatedGas = await provider.estimateGas({
363
380
  ...sellTxUnsigned,
364
- from: sellerWallet.address,
381
+ from: sellerWallet.address
365
382
  });
366
383
  const gasLimit = (estimatedGas * 120n) / 100n;
367
384
  const sellTxRequest = {
@@ -371,7 +388,7 @@ export async function batchSellWithBundle(params) {
371
388
  gasLimit: gasLimit,
372
389
  gasPrice: gasPrice,
373
390
  chainId: 56, // BSC
374
- type: 0, // Legacy transaction
391
+ type: 0 // Legacy transaction
375
392
  };
376
393
  const signedSellTx = await sellerWallet.signTransaction(sellTxRequest);
377
394
  signedTxs.push(signedSellTx);
@@ -379,17 +396,17 @@ export async function batchSellWithBundle(params) {
379
396
  const bundleUuid = await club48.sendBundle({
380
397
  txs: signedTxs,
381
398
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
382
- noMerge: config.noMerge,
399
+ noMerge: config.noMerge
383
400
  }, {
384
401
  spMode: params.config.spMode ?? 'timestampPersonalSign',
385
402
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
386
- spVMode: params.config.spVMode,
403
+ spVMode: params.config.spVMode
387
404
  });
388
405
  const status = await club48.waitForBundle(bundleUuid);
389
406
  return { bundleUuid, status, sellTxs: signedTxs };
390
407
  }
391
408
  export async function flapPrivateBuy(params) {
392
- const { chain, privateKey, tokenAddress, amountIn, config, spPrivateKey } = params;
409
+ const { chain, privateKey, tokenAddress, amountIn, to, config, spPrivateKey } = params;
393
410
  const provider = new JsonRpcProvider(config.rpcUrl);
394
411
  const wallet = new Wallet(privateKey, provider);
395
412
  const club48 = new Club48Client({ endpoint: config.club48Endpoint, explorerEndpoint: config.club48ExplorerEndpoint });
@@ -409,7 +426,7 @@ export async function flapPrivateBuy(params) {
409
426
  const estimatedGas = await provider.estimateGas({
410
427
  ...unsigned,
411
428
  from: wallet.address,
412
- value: amountWei,
429
+ value: amountWei
413
430
  });
414
431
  const gasLimit = (estimatedGas * 120n) / 100n;
415
432
  const req = {
@@ -419,7 +436,7 @@ export async function flapPrivateBuy(params) {
419
436
  gasLimit: gasLimit,
420
437
  gasPrice,
421
438
  chainId: 56,
422
- type: 0, // Legacy transaction
439
+ type: 0 // Legacy transaction
423
440
  };
424
441
  const signed = await wallet.signTransaction(req);
425
442
  if (spPrivateKey)
@@ -446,7 +463,7 @@ export async function flapPrivateSell(params) {
446
463
  // 估算 gas 并添加 20% 安全余量
447
464
  const estimatedGas = await provider.estimateGas({
448
465
  ...unsigned,
449
- from: wallet.address,
466
+ from: wallet.address
450
467
  });
451
468
  const gasLimit = (estimatedGas * 120n) / 100n;
452
469
  const req = {
@@ -456,7 +473,7 @@ export async function flapPrivateSell(params) {
456
473
  gasLimit: gasLimit,
457
474
  gasPrice,
458
475
  chainId: 56,
459
- type: 0, // Legacy transaction
476
+ type: 0 // Legacy transaction
460
477
  };
461
478
  const signed = await wallet.signTransaction(req);
462
479
  if (spPrivateKey)
@@ -499,21 +516,13 @@ export async function flapBatchPrivateBuy(params) {
499
516
  // 估算 gas 并添加 20% 安全余量
500
517
  const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address, value: amountWei });
501
518
  const gasLimit = (estimatedGas * 120n) / 100n;
502
- const req = {
503
- ...unsigned,
504
- from: w.address,
505
- nonce: await getNextNonce(w),
506
- gasLimit,
507
- gasPrice,
508
- chainId: 56,
509
- type: 0,
510
- };
519
+ const req = { ...unsigned, from: w.address, nonce: await getNextNonce(w), gasLimit, gasPrice, chainId: 56, type: 0 };
511
520
  signedTxs.push(await w.signTransaction(req));
512
521
  }
513
522
  return await sendBatchPrivateTransactions(signedTxs, spPrivateKey, config.club48Endpoint || 'https://puissant-bsc.48.club');
514
523
  }
515
524
  export async function flapBatchPrivateSell(params) {
516
- const { chain, privateKeys, amounts, tokenAddress, config, minEthEach } = params;
525
+ const { chain, privateKeys, amounts, tokenAddress, config, spPrivateKey, minEthEach } = params;
517
526
  if (privateKeys.length !== amounts.length)
518
527
  throw new Error('privateKeys and amounts length mismatch');
519
528
  const provider = new JsonRpcProvider(config.rpcUrl);
@@ -549,15 +558,7 @@ export async function flapBatchPrivateSell(params) {
549
558
  // 估算 gas 并添加 20% 安全余量
550
559
  const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address });
551
560
  const gasLimit = (estimatedGas * 120n) / 100n;
552
- const req = {
553
- ...unsigned,
554
- from: w.address,
555
- nonce: await getNextNonce(w),
556
- gasLimit,
557
- gasPrice,
558
- chainId: 56,
559
- type: 0,
560
- };
561
+ const req = { ...unsigned, from: w.address, nonce: await getNextNonce(w), gasLimit, gasPrice, chainId: 56, type: 0 };
561
562
  signedTxs.push(await w.signTransaction(req));
562
563
  }
563
564
  // 使用 bundle 通道提交(统一与捆绑买保持一致)
@@ -565,12 +566,12 @@ export async function flapBatchPrivateSell(params) {
565
566
  const bundleUuid = await club48.sendBundle({
566
567
  txs: signedTxs,
567
568
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
568
- noMerge: config.noMerge,
569
+ noMerge: config.noMerge
569
570
  }, {
570
571
  // 若传入 sp 配置,则用于生成 48SP 签名提升打包优先级(与批量买一致)
571
572
  spMode: params.config.spMode ?? 'timestampPersonalSign',
572
573
  spPrivateKey: params.config.spPrivateKey || 'https://puissant-bsc.48.club',
573
- spVMode: params.config.spVMode,
574
+ spVMode: params.config.spVMode
574
575
  });
575
576
  try {
576
577
  const status = await club48.waitForBundle(bundleUuid);
@@ -12,17 +12,8 @@ export declare enum TokenVersion {
12
12
  TOKEN_V2_PERMIT = 2,
13
13
  TOKEN_GOPLUS = 3,
14
14
  TOKEN_TAXED = 4,
15
- TOKEN_TAXED_V2 = 5,
16
- TOKEN_TAXED_V3 = 6,
17
- TOKEN_V3_PERMIT = 7
18
- }
19
- /** newTokenV7 feeConfigs 槽位类型 */
20
- export declare enum FeeType {
21
- NONE = 0,
22
- MARKETING_OR_VAULT = 1,
23
- DIVIDEND = 2,
24
- DEFLATION = 3,
25
- LP_BPS = 4
15
+ /** FlapTaxTokenV3 — 推荐税币;配合 newTokenV6 / newTokenV6WithVault */
16
+ TOKEN_TAXED_V3 = 6
26
17
  }
27
18
  export declare enum DexThreshType {
28
19
  TWO_THIRDS = 0,
@@ -34,9 +25,7 @@ export declare enum DexThreshType {
34
25
  }
35
26
  export declare enum MigratorType {
36
27
  V3_MIGRATOR = 0,
37
- V2_MIGRATOR = 1,
38
- /** PCS Infinity CL 迁移(newTokenV7 / TOKEN_V3_PERMIT) */
39
- PCS_INFINITY_CL_MIGRATOR = 3
28
+ V2_MIGRATOR = 1
40
29
  }
41
30
  /**
42
31
  * V3 LP 费率档位
@@ -16,19 +16,9 @@ export var TokenVersion;
16
16
  TokenVersion[TokenVersion["TOKEN_V2_PERMIT"] = 2] = "TOKEN_V2_PERMIT";
17
17
  TokenVersion[TokenVersion["TOKEN_GOPLUS"] = 3] = "TOKEN_GOPLUS";
18
18
  TokenVersion[TokenVersion["TOKEN_TAXED"] = 4] = "TOKEN_TAXED";
19
- TokenVersion[TokenVersion["TOKEN_TAXED_V2"] = 5] = "TOKEN_TAXED_V2";
19
+ /** FlapTaxTokenV3 推荐税币;配合 newTokenV6 / newTokenV6WithVault */
20
20
  TokenVersion[TokenVersion["TOKEN_TAXED_V3"] = 6] = "TOKEN_TAXED_V3";
21
- TokenVersion[TokenVersion["TOKEN_V3_PERMIT"] = 7] = "TOKEN_V3_PERMIT";
22
21
  })(TokenVersion || (TokenVersion = {}));
23
- /** newTokenV7 feeConfigs 槽位类型 */
24
- export var FeeType;
25
- (function (FeeType) {
26
- FeeType[FeeType["NONE"] = 0] = "NONE";
27
- FeeType[FeeType["MARKETING_OR_VAULT"] = 1] = "MARKETING_OR_VAULT";
28
- FeeType[FeeType["DIVIDEND"] = 2] = "DIVIDEND";
29
- FeeType[FeeType["DEFLATION"] = 3] = "DEFLATION";
30
- FeeType[FeeType["LP_BPS"] = 4] = "LP_BPS";
31
- })(FeeType || (FeeType = {}));
32
22
  export var DexThreshType;
33
23
  (function (DexThreshType) {
34
24
  DexThreshType[DexThreshType["TWO_THIRDS"] = 0] = "TWO_THIRDS";
@@ -42,8 +32,6 @@ export var MigratorType;
42
32
  (function (MigratorType) {
43
33
  MigratorType[MigratorType["V3_MIGRATOR"] = 0] = "V3_MIGRATOR";
44
34
  MigratorType[MigratorType["V2_MIGRATOR"] = 1] = "V2_MIGRATOR";
45
- /** PCS Infinity CL 迁移(newTokenV7 / TOKEN_V3_PERMIT) */
46
- MigratorType[MigratorType["PCS_INFINITY_CL_MIGRATOR"] = 3] = "PCS_INFINITY_CL_MIGRATOR";
47
35
  })(MigratorType || (MigratorType = {}));
48
36
  /**
49
37
  * V3 LP 费率档位
@@ -95,12 +83,10 @@ const PORTAL_ABI = [
95
83
  'function newTokenV2((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData)) external payable returns (address)',
96
84
  'function newTokenV3((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData)) external payable returns (address)',
97
85
  'function newTokenV4((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile)) external payable returns (address)',
98
- // newTokenV5: 支持 Tax Token V2 高级税收分配(legacy,推荐 newTokenV6
86
+ // newTokenV5: 支持 Tax Token V2 高级税收分配(taxRate > 0 时使用,Legacy
99
87
  'function newTokenV5((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile,uint64 taxDuration,uint64 antiFarmerDuration,uint16 mktBps,uint16 deflationBps,uint16 dividendBps,uint16 lpBps,uint256 minimumShareBalance)) external payable returns (address)',
100
- // newTokenV6: 统一入口(TOKEN_V2_PERMIT / TOKEN_TAXED_V3)
88
+ // newTokenV6: 统一发射入口(标准 TOKEN_V2_PERMIT / 税币 TOKEN_TAXED_V3)
101
89
  'function newTokenV6((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile,uint16 buyTaxRate,uint16 sellTaxRate,uint64 taxDuration,uint64 antiFarmerDuration,uint16 mktBps,uint16 deflationBps,uint16 dividendBps,uint16 lpBps,uint256 minimumShareBalance,address dividendToken,address commissionReceiver,uint8 tokenVersion)) external payable returns (address)',
102
- // newTokenV7: TOKEN_V3_PERMIT + CL 迁移
103
- 'function newTokenV7((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint8 migratorType,address quoteToken,uint256 quoteAmt,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint16 buyTaxRate,uint16 sellTaxRate,uint64 taxDuration,uint64 antiFarmerDuration,address commissionReceiver,uint8 tokenVersion,(uint8 feeType,uint16 bps,address marketingAddress,address dividendToken,uint256 minimumShareBalance)[4] feeConfigs)) external payable returns (address)',
104
90
  // 受益人领取
105
91
  'function claim(address token) external returns (uint256,uint256)',
106
92
  'function delegateClaim(address token) external returns (uint256,uint256)',
@@ -108,21 +94,17 @@ const PORTAL_ABI = [
108
94
  'function getFeeRate() external view returns (uint256,uint256)',
109
95
  'function nonce() external view returns (uint256)',
110
96
  'function version() external pure returns (string)',
111
- 'function getLocks(address token) external view returns (uint256[])',
97
+ 'function getLocks(address token) external view returns (uint256[])'
112
98
  ];
113
99
  /**
114
100
  * 将 lpFeeProfile 转换为 V3 fee 值
115
101
  */
116
102
  export function lpFeeProfileToV3Fee(profile) {
117
103
  switch (profile) {
118
- case V3LPFeeProfile.LP_FEE_PROFILE_STANDARD:
119
- return 2500;
120
- case V3LPFeeProfile.LP_FEE_PROFILE_LOW:
121
- return 100;
122
- case V3LPFeeProfile.LP_FEE_PROFILE_HIGH:
123
- return 10000;
124
- default:
125
- return 2500; // 默认 STANDARD
104
+ case V3LPFeeProfile.LP_FEE_PROFILE_STANDARD: return 2500;
105
+ case V3LPFeeProfile.LP_FEE_PROFILE_LOW: return 100;
106
+ case V3LPFeeProfile.LP_FEE_PROFILE_HIGH: return 10000;
107
+ default: return 2500; // 默认 STANDARD
126
108
  }
127
109
  }
128
110
  /**
@@ -139,11 +121,6 @@ export function validateTaxDistribution(config) {
139
121
  return { valid: true };
140
122
  }
141
123
  export class FlapPortal {
142
- rpcUrl;
143
- portal;
144
- contract;
145
- buyFeeRate;
146
- sellFeeRate;
147
124
  constructor(cfg) {
148
125
  this.rpcUrl = cfg.rpcUrl;
149
126
  this.portal = cfg.addressOverride ?? FLAP_PORTAL_ADDRESSES[cfg.chain];
@@ -158,27 +135,13 @@ export class FlapPortal {
158
135
  async getTokenV2(token) {
159
136
  const r = await this.contract.getTokenV2(token);
160
137
  return {
161
- status: r[0],
162
- reserve: r[1],
163
- circulatingSupply: r[2],
164
- price: r[3],
165
- tokenVersion: r[4],
166
- r: r[5],
167
- dexSupplyThresh: r[6],
138
+ status: r[0], reserve: r[1], circulatingSupply: r[2], price: r[3], tokenVersion: r[4], r: r[5], dexSupplyThresh: r[6],
168
139
  };
169
140
  }
170
141
  async getTokenV3(token) {
171
142
  const r = await this.contract.getTokenV3(token);
172
143
  return {
173
- status: r[0],
174
- reserve: r[1],
175
- circulatingSupply: r[2],
176
- price: r[3],
177
- tokenVersion: r[4],
178
- r: r[5],
179
- dexSupplyThresh: r[6],
180
- quoteTokenAddress: r[7],
181
- nativeToQuoteSwapEnabled: r[8],
144
+ status: r[0], reserve: r[1], circulatingSupply: r[2], price: r[3], tokenVersion: r[4], r: r[5], dexSupplyThresh: r[6], quoteTokenAddress: r[7], nativeToQuoteSwapEnabled: r[8],
182
145
  };
183
146
  }
184
147
  async getTokenV4(token) {
@@ -250,6 +213,7 @@ export class FlapPortal {
250
213
  const curve = new CDPV2(r, h, k);
251
214
  const currentReserve = formatEther(state.reserve);
252
215
  const dexSupplyThresh = formatEther(state.dexSupplyThresh);
216
+ const circulatingSupply = formatEther(state.circulatingSupply);
253
217
  // 计算毕业时的储备
254
218
  const graduationReserve = curve.estimateReserve(dexSupplyThresh);
255
219
  const graduationReserveNum = parseFloat(graduationReserve.toString());
@@ -261,7 +225,9 @@ export class FlapPortal {
261
225
  // 含手续费(1% buy fee)
262
226
  const remainingWithFee = remainingNet / (1 - this.buyFeeRate);
263
227
  // 计算进度
264
- const progressPercent = isGraduated ? '100.00' : ((currentReserveNum / graduationReserveNum) * 100).toFixed(2);
228
+ const progressPercent = isGraduated
229
+ ? '100.00'
230
+ : (currentReserveNum / graduationReserveNum * 100).toFixed(2);
265
231
  return {
266
232
  remainingOkb: remainingWithFee.toFixed(6),
267
233
  graduationReserve: graduationReserveNum.toFixed(6),
@@ -369,7 +335,6 @@ export class FlapPortal {
369
335
  }
370
336
  }
371
337
  export class FlapPortalWriter extends FlapPortal {
372
- wallet;
373
338
  constructor(cfg, privateKey) {
374
339
  super(cfg);
375
340
  // 使用 ethers v6 创建钱包
@@ -618,3 +583,15 @@ export class FlapPortalWriter extends FlapPortal {
618
583
  return this.portal;
619
584
  }
620
585
  }
586
+ /**
587
+ * 获取 Flap Portal 合约地址(内部使用)
588
+ * 注意:此方法不对外导出,用户应使用 FlapPortal 实例而非直接获取地址
589
+ * @internal
590
+ */
591
+ function getFlapPortalAddress(chain) {
592
+ const address = FLAP_PORTAL_ADDRESSES[chain];
593
+ if (!address) {
594
+ throw new Error(`Flap Portal not deployed on ${chain}`);
595
+ }
596
+ return address;
597
+ }
@@ -8,12 +8,10 @@ export declare function predictVanityTokenAddress(salt: string, portal: string,
8
8
  * SDK 自动使用该链的 Portal 和 TokenImpl 地址
9
9
  * 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
10
10
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
11
- * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
11
+ * @param taxedV5 - Legacy V5 税币 impl(不推荐,请用 taxedV3)
12
+ * @param taxedV3 - TOKEN_TAXED_V3(newTokenV6 / newTokenV6WithVault)
12
13
  */
13
- export declare function predictVanityTokenAddressByChain(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', salt: string, taxed?: boolean, taxedV5?: boolean, // V5 高级税代币标识 (mkt/deflation/dividend/lp)
14
- taxedV3?: boolean, // ✅ V5 + Vault 金库税代币标识
15
- /** BSC 标准币 + newTokenV7 / TOKEN_V3_PERMIT */
16
- useV3Permit?: boolean): string;
14
+ export declare function predictVanityTokenAddressByChain(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', salt: string, taxed?: boolean, taxedV5?: boolean, taxedV3?: boolean): string;
17
15
  /**
18
16
  * 寻找满足后缀的 salt(默认 8888)
19
17
  * 注意:该方法为同步 CPU 搜索,谨慎设置迭代限制
@@ -35,7 +33,8 @@ export declare function findSaltEnding(opts: {
35
33
  * 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
36
34
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
37
35
  * XLayer 只有标准版,后缀是 1111
38
- * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
36
+ * @param taxedV5 - Legacy V5 impl
37
+ * @param taxedV3 - TOKEN_TAXED_V3 impl(推荐)
39
38
  */
40
39
  export declare function findSaltEndingByChain(opts: {
41
40
  chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD';
@@ -45,8 +44,6 @@ export declare function findSaltEndingByChain(opts: {
45
44
  taxed?: boolean;
46
45
  taxedV5?: boolean;
47
46
  taxedV3?: boolean;
48
- /** BSC 标准币 UI「V3」/ newTokenV7 */
49
- useV3Permit?: boolean;
50
47
  }): Promise<{
51
48
  salt: string;
52
49
  address: string;
@@ -6,7 +6,9 @@ import { FLAP_ORIGINAL_PORTAL_ADDRESSES, FLAP_TOKEN_IMPL_ADDRESSES, getVanitySuf
6
6
  */
7
7
  export function predictVanityTokenAddress(salt, portal, tokenImpl) {
8
8
  // 规范化 salt 到 bytes32(避免前端传入的短字符串导致不可预期行为)
9
- const normalizedSalt = /^0x[0-9a-fA-F]{64}$/.test(salt) ? salt.toLowerCase() : keccak256(salt);
9
+ const normalizedSalt = /^0x[0-9a-fA-F]{64}$/.test(salt)
10
+ ? salt.toLowerCase()
11
+ : keccak256(salt);
10
12
  // 构建 EIP-1167 minimal proxy bytecode
11
13
  const bytecode = '0x3d602d80600a3d3981f3363d3d373d3d3d363d73' + tokenImpl.slice(2).toLowerCase() + '5af43d82803e903d91602b57fd5bf3';
12
14
  const bytecodeHash = keccak256(bytecode);
@@ -17,22 +19,19 @@ export function predictVanityTokenAddress(salt, portal, tokenImpl) {
17
19
  * SDK 自动使用该链的 Portal 和 TokenImpl 地址
18
20
  * 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
19
21
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
20
- * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
22
+ * @param taxedV5 - Legacy V5 税币 impl(不推荐,请用 taxedV3)
23
+ * @param taxedV3 - TOKEN_TAXED_V3(newTokenV6 / newTokenV6WithVault)
21
24
  */
22
- export function predictVanityTokenAddressByChain(chain, salt, taxed = false, taxedV5 = false, // V5 高级税代币标识 (mkt/deflation/dividend/lp)
23
- taxedV3 = false, // ✅ V5 + Vault 金库税代币标识
24
- /** BSC 标准币 + newTokenV7 / TOKEN_V3_PERMIT */
25
- useV3Permit = false) {
25
+ export function predictVanityTokenAddressByChain(chain, salt, taxed = false, taxedV5 = false, taxedV3 = false) {
26
26
  // 使用 Flap 平台的原始 Portal 地址(用于 CREATE2)
27
27
  const portal = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain];
28
28
  let tokenImpl;
29
29
  if (chain === 'BSC') {
30
- if (taxedV5 || taxedV3) {
31
- // V5 高级税代币(含 vault)使用新的实现地址
32
- tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
30
+ if (taxedV3) {
31
+ tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V3;
33
32
  }
34
- else if (useV3Permit) {
35
- tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_V3_PERMIT;
33
+ else if (taxedV5) {
34
+ tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
36
35
  }
37
36
  else {
38
37
  tokenImpl = taxed ? FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED : FLAP_TOKEN_IMPL_ADDRESSES.BSC_NORMAL;
@@ -59,7 +58,7 @@ export async function findSaltEnding(opts) {
59
58
  // 若未提供 seed,默认使用随机种子,避免每次结果都相同
60
59
  let salt = opts.seed ?? keccak256(randomBytes(32));
61
60
  let iterations = 0;
62
- const limit = opts.maxIterations ?? 1_000_000;
61
+ const limit = opts.maxIterations ?? 1000000;
63
62
  while (iterations < limit) {
64
63
  const addr = predictVanityTokenAddress(salt, opts.portal, opts.tokenImpl);
65
64
  if (addr.toLowerCase().endsWith(suffix)) {
@@ -76,19 +75,19 @@ export async function findSaltEnding(opts) {
76
75
  * 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
77
76
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
78
77
  * XLayer 只有标准版,后缀是 1111
79
- * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
78
+ * @param taxedV5 - Legacy V5 impl
79
+ * @param taxedV3 - TOKEN_TAXED_V3 impl(推荐)
80
80
  */
81
81
  export async function findSaltEndingByChain(opts) {
82
82
  // 使用 Flap 平台的原始 Portal 地址(用于 CREATE2)
83
83
  const portal = FLAP_ORIGINAL_PORTAL_ADDRESSES[opts.chain];
84
84
  let tokenImpl;
85
85
  if (opts.chain === 'BSC') {
86
- if (opts.taxedV5 || opts.taxedV3) {
87
- // V5 高级税代币(含 vault)使用新的实现地址
88
- tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
86
+ if (opts.taxedV3) {
87
+ tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V3;
89
88
  }
90
- else if (opts.useV3Permit) {
91
- tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_V3_PERMIT;
89
+ else if (opts.taxedV5) {
90
+ tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
92
91
  }
93
92
  else {
94
93
  tokenImpl = opts.taxed ? FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED : FLAP_TOKEN_IMPL_ADDRESSES.BSC_NORMAL;
@@ -104,13 +103,13 @@ export async function findSaltEndingByChain(opts) {
104
103
  if (!portal || !tokenImpl) {
105
104
  throw new Error(`Flap Protocol not fully deployed on ${opts.chain}`);
106
105
  }
107
- // ✅ 如果未指定后缀,根据链自动选择正确的后缀(税代币 / V5 / V3 vault 均使用 tax 后缀)
108
- const suffix = opts.suffix ?? getVanitySuffix(opts.chain, opts.taxed || opts.taxedV5 || opts.taxedV3);
106
+ // ✅ 如果未指定后缀,根据链自动选择正确的后缀
107
+ const suffix = opts.suffix ?? getVanitySuffix(opts.chain, opts.taxed);
109
108
  return findSaltEnding({
110
109
  portal,
111
110
  tokenImpl,
112
111
  suffix,
113
112
  maxIterations: opts.maxIterations,
114
- seed: opts.seed,
113
+ seed: opts.seed
115
114
  });
116
115
  }