four-flap-meme-sdk 2.2.19 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/{shared/abis → abis}/common.d.ts +1 -1
  2. package/dist/{shared/abis → abis}/common.js +75 -91
  3. package/dist/abis/contracts/TaxToken.json +969 -0
  4. package/dist/abis/contracts/TokenManager2.json +136 -0
  5. package/dist/{shared/abis → abis/contracts}/index.d.ts +0 -1
  6. package/dist/{shared/abis → abis/contracts}/index.js +0 -2
  7. package/dist/abis/flap/index.d.ts +5 -0
  8. package/dist/abis/flap/index.js +5 -0
  9. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  10. package/dist/abis/flap/portal-eip7702.js +39 -0
  11. package/dist/abis/flap/portal-events.d.ts +6 -0
  12. package/dist/abis/flap/portal-events.js +17 -0
  13. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  14. package/dist/abis/flap/portal-merkle.js +25 -0
  15. package/dist/abis/flap/portal.d.ts +6 -0
  16. package/dist/abis/flap/portal.js +37 -0
  17. package/dist/abis/flap/vault.d.ts +171 -0
  18. package/dist/abis/flap/vault.js +91 -0
  19. package/dist/abis/index.d.ts +6 -0
  20. package/dist/abis/index.js +9 -0
  21. package/dist/bundle/config-helpers.d.ts +37 -0
  22. package/dist/bundle/config-helpers.js +58 -0
  23. package/dist/bundle/errors.d.ts +50 -0
  24. package/dist/bundle/errors.js +38 -0
  25. package/dist/bundle/four-meme/approve-tokenmanager.d.ts +7 -0
  26. package/dist/bundle/four-meme/approve-tokenmanager.js +99 -0
  27. package/dist/bundle/four-meme/core-helpers.d.ts +8 -0
  28. package/dist/bundle/four-meme/core-helpers.js +41 -0
  29. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.d.ts +1 -1
  30. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.js +74 -150
  31. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.d.ts +1 -1
  32. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.js +85 -92
  33. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.d.ts +1 -1
  34. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.js +48 -59
  35. package/dist/bundle/four-meme/sign-context-helpers.d.ts +2 -0
  36. package/dist/bundle/four-meme/sign-context-helpers.js +2 -0
  37. package/dist/bundle/four-meme/swap-buy-first.d.ts +8 -0
  38. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-buy-first.js +56 -108
  39. package/dist/bundle/four-meme/swap-hop-helpers.d.ts +6 -0
  40. package/dist/bundle/four-meme/swap-hop-helpers.js +63 -0
  41. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.js +4 -4
  42. package/dist/bundle/four-meme/swap-sign-helpers.d.ts +28 -0
  43. package/dist/bundle/four-meme/swap-sign-helpers.js +105 -0
  44. package/dist/bundle/four-meme/swap.d.ts +17 -0
  45. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap.js +84 -345
  46. package/dist/{contracts/tm-bundle-merkle/swap-buy-first.d.ts → bundle/four-meme/types/buy-first.d.ts} +11 -18
  47. package/dist/bundle/four-meme/types/core-flow.d.ts +63 -0
  48. package/dist/bundle/four-meme/types/core-flow.js +1 -0
  49. package/dist/{contracts/tm-bundle-merkle/types.d.ts → bundle/four-meme/types/index.d.ts} +130 -6
  50. package/dist/bundle/four-meme/types/index.js +1 -0
  51. package/dist/bundle/four-meme/types/swap-internal.d.ts +19 -0
  52. package/dist/bundle/four-meme/types/swap-internal.js +1 -0
  53. package/dist/bundle/four-meme/types.d.ts +1 -0
  54. package/dist/bundle/four-meme/utils-disperse.d.ts +7 -0
  55. package/dist/bundle/four-meme/utils-disperse.js +396 -0
  56. package/dist/bundle/four-meme/utils-pairwise.d.ts +8 -0
  57. package/dist/bundle/four-meme/utils-pairwise.js +328 -0
  58. package/dist/bundle/four-meme/utils-sweep.d.ts +8 -0
  59. package/dist/bundle/four-meme/utils-sweep.js +744 -0
  60. package/dist/bundle/index.d.ts +8 -0
  61. package/dist/bundle/index.js +8 -0
  62. package/dist/bundle/internal.d.ts +16 -0
  63. package/dist/bundle/internal.js +160 -0
  64. package/dist/bundle/sign-context-helpers.d.ts +26 -0
  65. package/dist/bundle/sign-context-helpers.js +63 -0
  66. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.d.ts +6 -27
  67. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.js +116 -313
  68. package/dist/bundle/types/index.d.ts +8 -0
  69. package/dist/bundle/types/index.js +1 -0
  70. package/dist/bundle/types.d.ts +1 -0
  71. package/dist/bundle/types.js +1 -0
  72. package/dist/chains/bsc/constants.js +1 -1
  73. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  74. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  75. package/dist/chains/bsc/four/config.d.ts +5 -67
  76. package/dist/chains/bsc/four/config.js +2 -114
  77. package/dist/chains/bsc/four/core.d.ts +1 -4
  78. package/dist/chains/bsc/four/core.js +1 -592
  79. package/dist/chains/bsc/four/index.d.ts +6 -6
  80. package/dist/chains/bsc/four/index.js +6 -6
  81. package/dist/chains/bsc/four/internal.d.ts +2 -46
  82. package/dist/chains/bsc/four/internal.js +2 -239
  83. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  84. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  85. package/dist/chains/bsc/four/private.d.ts +1 -27
  86. package/dist/chains/bsc/four/private.js +1 -477
  87. package/dist/chains/bsc/four/submit.d.ts +2 -315
  88. package/dist/chains/bsc/four/submit.js +2 -752
  89. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  90. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  91. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  92. package/dist/chains/bsc/four/swap-internal.js +1 -18
  93. package/dist/chains/bsc/four/swap.d.ts +2 -144
  94. package/dist/chains/bsc/four/swap.js +2 -766
  95. package/dist/chains/bsc/four/types.d.ts +1 -476
  96. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  97. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  98. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  99. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  100. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  101. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  102. package/dist/chains/bsc/four/utils.d.ts +5 -18
  103. package/dist/chains/bsc/four/utils.js +5 -1552
  104. package/dist/chains/bsc/iro.d.ts +5 -0
  105. package/dist/chains/bsc/iro.js +4 -0
  106. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  109. package/dist/chains/bsc/pancake/bundle-buy-first.js +99 -214
  110. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  112. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  113. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  114. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  115. package/dist/chains/bsc/pancake/index.js +1 -3
  116. package/dist/chains/bsc/platforms/iro/constants.js +1 -1
  117. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  118. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  119. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  120. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  121. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  122. package/dist/chains/bsc/platforms/iro/token.js +5 -2
  123. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  124. package/dist/chains/eni/batch-router/transfer.js +57 -27
  125. package/dist/chains/eni/batch-router/utils.js +32 -6
  126. package/dist/chains/eni/bundler/sign.js +5 -6
  127. package/dist/chains/eni/bundler/submit.js +1 -4
  128. package/dist/chains/eni/constants.js +2 -2
  129. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  130. package/dist/chains/eni/flat-aliases.js +8 -0
  131. package/dist/chains/eni/index.d.ts +2 -1
  132. package/dist/chains/eni/index.js +1 -0
  133. package/dist/chains/eni/platforms/daoaas/create.js +3 -3
  134. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  135. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  136. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  137. package/dist/chains/eni/platforms/daoaas/portal-direct.js +29 -45
  138. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  139. package/dist/chains/eni/platforms/dswap/liquidity.js +59 -27
  140. package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
  141. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  142. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  143. package/dist/chains/eni/platforms/fair-launch/launcher.js +88 -47
  144. package/dist/chains/eni/platforms/fair-launch/pool.js +5 -2
  145. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  146. package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
  147. package/dist/chains/eni/platforms/iro/constants.js +2 -2
  148. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  149. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  150. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  151. package/dist/chains/eni/platforms/iro/index.js +4 -4
  152. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  153. package/dist/chains/eni/platforms/iro/token.js +108 -32
  154. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  155. package/dist/chains/eni/submit.d.ts +43 -0
  156. package/dist/chains/eni/submit.js +287 -0
  157. package/dist/chains/index.d.ts +13 -0
  158. package/dist/chains/index.js +13 -0
  159. package/dist/chains/monad/constants.js +1 -1
  160. package/dist/chains/xlayer/constants.d.ts +5 -0
  161. package/dist/chains/xlayer/constants.js +1 -1
  162. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  163. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  164. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  165. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  166. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  167. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  168. package/dist/chains/xlayer/eip7702/bundle-sell.js +30 -112
  169. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  170. package/dist/chains/xlayer/eip7702/bundle-swap.js +52 -246
  171. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  172. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  173. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  174. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  175. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  176. package/dist/chains/xlayer/eip7702/index.js +28 -81
  177. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  178. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  179. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  180. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +64 -308
  181. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  182. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  183. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  184. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  185. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  186. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  187. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  188. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  189. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  190. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  191. package/dist/chains/xlayer/eoa/constants.js +2 -16
  192. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  193. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  194. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  195. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  196. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  197. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  198. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  199. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  200. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  201. package/dist/chains/xlayer/eoa/index.js +8 -23
  202. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  203. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  204. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  205. package/dist/chains/xlayer/eoa/types.js +1 -3
  206. package/dist/chains/xlayer/index.d.ts +3 -2
  207. package/dist/chains/xlayer/index.js +4 -7
  208. package/dist/core/amount/split-by-weight.d.ts +5 -0
  209. package/dist/core/amount/split-by-weight.js +35 -0
  210. package/dist/{shared → core}/clients/blockrazor.d.ts +4 -8
  211. package/dist/{shared → core}/clients/blockrazor.js +43 -35
  212. package/dist/{shared → core}/clients/club48.d.ts +2 -2
  213. package/dist/{shared → core}/clients/club48.js +36 -30
  214. package/dist/{shared → core}/clients/emitservice.js +2 -0
  215. package/dist/{shared → core}/clients/four.d.ts +21 -6
  216. package/dist/{shared → core}/clients/four.js +29 -24
  217. package/dist/core/clients/index.d.ts +8 -0
  218. package/dist/core/clients/index.js +8 -0
  219. package/dist/{shared → core}/clients/merkle.d.ts +4 -3
  220. package/dist/{shared → core}/clients/merkle.js +30 -47
  221. package/dist/{shared → core}/constants/addresses.d.ts +27 -1
  222. package/dist/{shared → core}/constants/addresses.js +39 -2
  223. package/dist/{shared → core}/constants/chains.d.ts +1 -1
  224. package/dist/{shared → core}/constants/chains.js +1 -1
  225. package/dist/{shared → core}/constants/gas.d.ts +1 -1
  226. package/dist/{shared → core}/constants/gas.js +2 -6
  227. package/dist/{shared → core}/constants/index.d.ts +5 -2
  228. package/dist/{shared → core}/constants/index.js +3 -2
  229. package/dist/core/constants/quote.d.ts +30 -0
  230. package/dist/core/constants/quote.js +37 -0
  231. package/dist/core/dex/v3-path.d.ts +6 -0
  232. package/dist/core/dex/v3-path.js +35 -0
  233. package/dist/core/erc20/decimals.d.ts +7 -0
  234. package/dist/core/erc20/decimals.js +24 -0
  235. package/dist/{utils → core}/erc20.d.ts +7 -89
  236. package/dist/{utils → core}/erc20.js +99 -130
  237. package/dist/core/foundation.d.ts +15 -0
  238. package/dist/core/foundation.js +14 -0
  239. package/dist/core/gas/bundle-gas.d.ts +49 -0
  240. package/dist/core/gas/bundle-gas.js +93 -0
  241. package/dist/core/gas/profit-hop.d.ts +20 -0
  242. package/dist/core/gas/profit-hop.js +72 -0
  243. package/dist/core/index.d.ts +5 -0
  244. package/dist/core/index.js +5 -0
  245. package/dist/core/legacy-types/errors.d.ts +27 -0
  246. package/dist/core/legacy-types/errors.js +34 -0
  247. package/dist/core/nonce/nonce-manager.d.ts +19 -0
  248. package/dist/core/nonce/nonce-manager.js +217 -0
  249. package/dist/core/normalize-unknown.d.ts +9 -0
  250. package/dist/core/normalize-unknown.js +29 -0
  251. package/dist/core/sdk-logger.d.ts +13 -0
  252. package/dist/core/sdk-logger.js +12 -0
  253. package/dist/core/shared-abis/common.d.ts +4 -0
  254. package/dist/core/shared-abis/common.js +4 -0
  255. package/dist/core/shared-abis/index.d.ts +5 -0
  256. package/dist/core/shared-abis/index.js +5 -0
  257. package/dist/core/tx/build-request.d.ts +17 -0
  258. package/dist/core/tx/build-request.js +25 -0
  259. package/dist/core/tx/sign-batch.d.ts +5 -0
  260. package/dist/core/tx/sign-batch.js +26 -0
  261. package/dist/core/tx/wallet-sign-patch.d.ts +1 -0
  262. package/dist/core/tx/wallet-sign-patch.js +18 -0
  263. package/dist/core/types/airdrop-sweep.d.ts +79 -0
  264. package/dist/core/types/airdrop-sweep.js +1 -0
  265. package/dist/core/types/erc20.d.ts +65 -0
  266. package/dist/core/types/erc20.js +1 -0
  267. package/dist/core/types/holders-maker.d.ts +64 -0
  268. package/dist/core/types/holders-maker.js +1 -0
  269. package/dist/core/types/index.d.ts +7 -0
  270. package/dist/core/types/index.js +1 -0
  271. package/dist/{utils → core/types}/lp-inspect.d.ts +4 -52
  272. package/dist/core/types/lp-inspect.js +1 -0
  273. package/dist/core/types/multicall.d.ts +5 -0
  274. package/dist/core/types/multicall.js +1 -0
  275. package/dist/core/types/private-sale.d.ts +35 -0
  276. package/dist/core/types/private-sale.js +1 -0
  277. package/dist/core/types/quote-helpers.d.ts +17 -0
  278. package/dist/core/types/quote-helpers.js +1 -0
  279. package/dist/core/types-erc20.d.ts +1 -0
  280. package/dist/core/types-erc20.js +1 -0
  281. package/dist/core/wallet/generate.d.ts +5 -0
  282. package/dist/core/wallet/generate.js +8 -0
  283. package/dist/domains/dex/direct-router-helpers.d.ts +269 -0
  284. package/dist/domains/dex/direct-router-helpers.js +536 -0
  285. package/dist/domains/dex/direct-router.d.ts +28 -0
  286. package/dist/{dex → domains/dex}/direct-router.js +246 -674
  287. package/dist/domains/dex/types.d.ts +81 -0
  288. package/dist/domains/dex/types.js +1 -0
  289. package/dist/{shared → domains}/flap/abi.js +1 -1
  290. package/dist/{shared → domains}/flap/constants.d.ts +1 -2
  291. package/dist/{shared → domains}/flap/constants.js +3 -4
  292. package/dist/{shared → domains}/flap/curve.js +3 -0
  293. package/dist/{shared → domains}/flap/errors.d.ts +1 -4
  294. package/dist/{shared → domains}/flap/errors.js +20 -1
  295. package/dist/domains/flap/index.d.ts +7 -0
  296. package/dist/domains/flap/index.js +5 -0
  297. package/dist/{shared → domains}/flap/meta.d.ts +22 -18
  298. package/dist/{shared → domains}/flap/meta.js +32 -24
  299. package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +4 -5
  300. package/dist/{shared/flap/index.js → domains/flap/module.js} +4 -5
  301. package/dist/{shared → domains}/flap/permit.js +10 -3
  302. package/dist/{shared → domains}/flap/pinata.d.ts +22 -6
  303. package/dist/{shared → domains}/flap/pinata.js +21 -26
  304. package/dist/domains/flap/portal-bundle-merkle/config.d.ts +10 -0
  305. package/dist/domains/flap/portal-bundle-merkle/config.js +13 -0
  306. package/dist/domains/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  307. package/dist/domains/flap/portal-bundle-merkle/core-helpers.js +83 -0
  308. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -4
  309. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +168 -175
  310. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  311. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +97 -118
  312. package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +105 -123
  313. package/dist/domains/flap/portal-bundle-merkle/index.d.ts +18 -0
  314. package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +4 -7
  315. package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +73 -70
  316. package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +63 -116
  317. package/dist/domains/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  318. package/dist/domains/flap/portal-bundle-merkle/swap-batch.js +227 -0
  319. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  320. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  321. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first.d.ts +2 -0
  322. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  323. package/dist/domains/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  324. package/dist/domains/flap/portal-bundle-merkle/swap-cross.js +139 -0
  325. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  326. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  327. package/dist/domains/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  328. package/dist/domains/flap/portal-bundle-merkle/swap-planning.js +182 -0
  329. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  330. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  331. package/dist/domains/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  332. package/dist/domains/flap/portal-bundle-merkle/swap-single.js +184 -0
  333. package/dist/domains/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  334. package/dist/domains/flap/portal-bundle-merkle/swap-types.js +1 -0
  335. package/dist/domains/flap/portal-bundle-merkle/swap.d.ts +8 -0
  336. package/dist/domains/flap/portal-bundle-merkle/swap.js +7 -0
  337. package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +88 -12
  338. package/dist/domains/flap/portal-bundle-merkle/types.js +1 -0
  339. package/dist/domains/flap/portal-bundle-merkle/utils.d.ts +10 -0
  340. package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +145 -265
  341. package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
  342. package/dist/{shared → domains}/flap/portal-bundle.js +84 -79
  343. package/dist/domains/flap/portal-create-token.d.ts +81 -0
  344. package/dist/domains/flap/portal-create-token.js +255 -0
  345. package/dist/{shared → domains}/flap/portal.d.ts +1 -2
  346. package/dist/{shared → domains}/flap/portal.js +36 -28
  347. package/dist/{shared → domains}/flap/vanity.d.ts +6 -6
  348. package/dist/{shared → domains}/flap/vanity.js +15 -21
  349. package/dist/{shared → domains}/flap/vault.d.ts +25 -93
  350. package/dist/{shared → domains}/flap/vault.js +77 -127
  351. package/dist/{flows → domains/flows}/create.d.ts +2 -1
  352. package/dist/{flows → domains/flows}/create.js +8 -8
  353. package/dist/domains/flows/index.d.ts +9 -0
  354. package/dist/domains/flows/index.js +9 -0
  355. package/dist/{contracts → domains/four/contracts}/helper3.d.ts +20 -5
  356. package/dist/{contracts → domains/four/contracts}/helper3.js +56 -20
  357. package/dist/domains/four/contracts/tm-bundle-helpers.d.ts +88 -0
  358. package/dist/domains/four/contracts/tm-bundle-helpers.js +73 -0
  359. package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +4 -52
  360. package/dist/{contracts → domains/four/contracts}/tm-bundle.js +122 -189
  361. package/dist/{contracts → domains/four/contracts}/tm.d.ts +10 -8
  362. package/dist/{contracts → domains/four/contracts}/tm.js +39 -35
  363. package/dist/{contracts → domains/four/contracts}/tm1.js +9 -4
  364. package/dist/{contracts → domains/four/contracts}/tm2.js +10 -5
  365. package/dist/domains/four/index.d.ts +7 -0
  366. package/dist/domains/four/index.js +7 -0
  367. package/dist/{shared → domains}/four/tax-token.d.ts +1 -1
  368. package/dist/{shared → domains}/four/tax-token.js +31 -10
  369. package/dist/domains/holders/holders-maker-helpers.d.ts +9 -0
  370. package/dist/domains/holders/holders-maker-helpers.js +9 -0
  371. package/dist/domains/holders/holders-maker.d.ts +18 -0
  372. package/dist/domains/holders/holders-maker.js +324 -0
  373. package/dist/domains/holders/index.d.ts +1 -0
  374. package/dist/domains/holders/index.js +1 -0
  375. package/dist/domains/holders/internal/addresses.d.ts +12 -0
  376. package/dist/domains/holders/internal/addresses.js +15 -0
  377. package/dist/domains/holders/internal/buy-tx.d.ts +44 -0
  378. package/dist/domains/holders/internal/buy-tx.js +278 -0
  379. package/dist/domains/holders/internal/constants.d.ts +6 -0
  380. package/dist/domains/holders/internal/constants.js +7 -0
  381. package/dist/domains/holders/internal/disperse.d.ts +18 -0
  382. package/dist/domains/holders/internal/disperse.js +90 -0
  383. package/dist/domains/holders/internal/routing.d.ts +4 -0
  384. package/dist/domains/holders/internal/routing.js +45 -0
  385. package/dist/domains/holders/internal/transfer-tx.d.ts +4 -0
  386. package/dist/domains/holders/internal/transfer-tx.js +67 -0
  387. package/dist/domains/holders/types.d.ts +1 -0
  388. package/dist/domains/holders/types.js +1 -0
  389. package/dist/domains/lp-inspect/index.d.ts +1 -0
  390. package/dist/domains/lp-inspect/index.js +1 -0
  391. package/dist/domains/lp-inspect/lp-inspect-helpers.d.ts +9 -0
  392. package/dist/domains/lp-inspect/lp-inspect-helpers.js +109 -0
  393. package/dist/domains/lp-inspect/lp-inspect.d.ts +40 -0
  394. package/dist/{utils → domains/lp-inspect}/lp-inspect.js +78 -293
  395. package/dist/domains/lp-inspect/types.d.ts +1 -0
  396. package/dist/domains/lp-inspect/types.js +1 -0
  397. package/dist/domains/merkle/index.d.ts +12 -0
  398. package/dist/domains/merkle/index.js +11 -0
  399. package/dist/domains/private-sale/index.d.ts +1 -0
  400. package/dist/domains/private-sale/index.js +1 -0
  401. package/dist/domains/private-sale/private-sale.d.ts +34 -0
  402. package/dist/{utils → domains/private-sale}/private-sale.js +5 -16
  403. package/dist/domains/private-sale/types.d.ts +1 -0
  404. package/dist/domains/private-sale/types.js +1 -0
  405. package/dist/domains/quote/index.d.ts +1 -0
  406. package/dist/domains/quote/index.js +1 -0
  407. package/dist/{utils → domains/quote}/quote-helpers.d.ts +4 -45
  408. package/dist/{utils → domains/quote}/quote-helpers.js +17 -74
  409. package/dist/domains/quote/types.d.ts +1 -0
  410. package/dist/domains/quote/types.js +1 -0
  411. package/dist/domains/vanity/index.d.ts +5 -0
  412. package/dist/domains/vanity/index.js +5 -0
  413. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  414. package/dist/exports/root-bundle-and-tooling.js +30 -0
  415. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  416. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  417. package/dist/exports/root-foundations.d.ts +35 -0
  418. package/dist/exports/root-foundations.js +70 -0
  419. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  420. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  421. package/dist/index.d.ts +17 -88
  422. package/dist/index.js +17 -218
  423. package/dist/utils/airdrop-sweep.d.ts +4 -76
  424. package/dist/utils/airdrop-sweep.js +42 -55
  425. package/dist/utils/bundle-helpers.d.ts +9 -243
  426. package/dist/utils/bundle-helpers.js +10 -584
  427. package/dist/utils/constants.d.ts +5 -61
  428. package/dist/utils/constants.js +5 -80
  429. package/dist/utils/contract-factory.d.ts +2 -4
  430. package/dist/utils/contract-factory.js +25 -18
  431. package/dist/utils/errors.d.ts +12 -1
  432. package/dist/utils/errors.js +60 -1
  433. package/dist/utils/hop-chains.d.ts +35 -0
  434. package/dist/utils/hop-chains.js +215 -0
  435. package/dist/utils/index.d.ts +5 -0
  436. package/dist/utils/index.js +5 -0
  437. package/dist/utils/mpcExclusive.d.ts +2 -5
  438. package/dist/utils/mpcExclusive.js +4 -3
  439. package/dist/utils/provider-factory.d.ts +4 -0
  440. package/dist/utils/provider-factory.js +10 -0
  441. package/dist/utils/stealth-transfer.d.ts +2 -28
  442. package/dist/utils/stealth-transfer.js +41 -21
  443. package/dist/utils/swap-helpers.d.ts +2 -15
  444. package/dist/utils/swap-helpers.js +7 -12
  445. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  446. package/dist/utils/types/airdrop-sweep.js +1 -0
  447. package/dist/utils/types/contract-factory.d.ts +1 -0
  448. package/dist/utils/types/contract-factory.js +1 -0
  449. package/dist/utils/types/errors.d.ts +1 -0
  450. package/dist/utils/types/errors.js +1 -0
  451. package/dist/utils/types/hop-chains.d.ts +8 -0
  452. package/dist/utils/types/hop-chains.js +1 -0
  453. package/dist/utils/types/index.d.ts +13 -0
  454. package/dist/utils/types/index.js +1 -0
  455. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  456. package/dist/utils/types/mpc-exclusive.js +1 -0
  457. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  458. package/dist/utils/types/stealth-transfer.js +1 -0
  459. package/dist/utils/types/wallet.d.ts +25 -0
  460. package/dist/utils/types/wallet.js +1 -0
  461. package/dist/utils/wallet.d.ts +4 -25
  462. package/dist/utils/wallet.js +27 -22
  463. package/package.json +96 -2
  464. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -26
  465. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -113
  466. package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -70
  467. package/dist/contracts/tm-bundle-merkle/config.js +0 -114
  468. package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
  469. package/dist/contracts/tm-bundle-merkle/index.js +0 -29
  470. package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -48
  471. package/dist/contracts/tm-bundle-merkle/internal.js +0 -240
  472. package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -146
  473. package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -20
  474. package/dist/contracts/tm-bundle-merkle/utils.js +0 -1503
  475. package/dist/dex/direct-router.d.ts +0 -150
  476. package/dist/shared/abis/TaxToken.json +0 -105
  477. package/dist/shared/abis/TokenManager2.json +0 -60
  478. package/dist/shared/flap/graduated-dex.d.ts +0 -1
  479. package/dist/shared/flap/graduated-dex.js +0 -1
  480. package/dist/shared/flap/launch-v6.d.ts +0 -132
  481. package/dist/shared/flap/launch-v6.js +0 -137
  482. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +0 -79
  483. package/dist/shared/flap/portal-bundle-merkle/config.js +0 -133
  484. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +0 -14
  485. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  486. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +0 -201
  487. package/dist/shared/flap/portal-bundle-merkle/swap.js +0 -1359
  488. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +0 -89
  489. package/dist/shared/flap/portal-create-token.d.ts +0 -63
  490. package/dist/shared/flap/portal-create-token.js +0 -258
  491. package/dist/shared/four/index.d.ts +0 -7
  492. package/dist/shared/four/index.js +0 -22
  493. package/dist/shared/index.d.ts +0 -10
  494. package/dist/shared/index.js +0 -10
  495. package/dist/utils/holders-maker.d.ts +0 -154
  496. package/dist/utils/holders-maker.js +0 -945
  497. package/dist/utils/pcs-infinity-cl.d.ts +0 -65
  498. package/dist/utils/pcs-infinity-cl.js +0 -426
  499. package/dist/utils/private-sale.d.ts +0 -90
  500. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  501. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
  502. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.d.ts +0 -0
  503. /package/dist/{shared/flap/portal-bundle-merkle/types.js → bundle/four-meme/types/buy-first.js} +0 -0
  504. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/types.js +0 -0
  505. /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
  506. /package/dist/{shared → core}/constants/profit.d.ts +0 -0
  507. /package/dist/{shared → core}/constants/profit.js +0 -0
  508. /package/dist/{dex → domains/dex}/index.d.ts +0 -0
  509. /package/dist/{dex → domains/dex}/index.js +0 -0
  510. /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
  511. /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
  512. /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
  513. /package/dist/{shared → domains}/flap/ipfs.js +0 -0
  514. /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
  515. /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  516. /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  517. /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
  518. /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
  519. /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Portal 发币交易构建(newTokenV6 / newTokenV7 / VaultPortal)
3
+ *
4
+ * 对齐 Flap 官方文档:
5
+ * - newTokenV6:TOKEN_V2_PERMIT / TOKEN_TAXED_V3
6
+ * - newTokenV7:TOKEN_V3_PERMIT(BSC 标准 V3 / PCS Infinity CL,与 Flap 官网一致)
7
+ * - newTokenV4:已弃用(Portal 侧 FeatureDisabled,勿再使用)
8
+ * - VaultPortal.newTaxTokenWithVault:带金库的税币(legacy 参数结构)
9
+ */
10
+ import { Contract, ZeroAddress } from 'ethers';
11
+ import { ZERO_ADDRESS } from '../../core/constants/index.js';
12
+ import { buildVaultParams, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI } from './vault.js';
13
+ import { TokenVersion, MigratorType, FeeType } from './portal.js';
14
+ /** 分红代币:将 launching token 本身作为分红代币 */
15
+ export const MAGIC_DIVIDEND_SELF = '0xfEEDFEEDfeEDFEedFEEdFEEDFeEdfEEdFeEdFEEd';
16
+ function zeroBytes32() {
17
+ return '0x' + '00'.repeat(32);
18
+ }
19
+ function resolveTaxRates(taxConfig, taxRate) {
20
+ const buy = taxConfig?.buyTaxRate ?? taxRate ?? 0;
21
+ const sell = taxConfig?.sellTaxRate ?? taxRate ?? 0;
22
+ return { buyTaxRate: buy & 0xffff, sellTaxRate: sell & 0xffff };
23
+ }
24
+ function validateTaxDistribution(mkt, def, div, lp) {
25
+ const total = mkt + def + div + lp;
26
+ if (total !== 10000) {
27
+ throw new Error(`Tax distribution must sum to 10000 (100%), got ${total}`);
28
+ }
29
+ }
30
+ function buildV6TaxParams(params, taxConfig, dist) {
31
+ const { buyTaxRate, sellTaxRate } = resolveTaxRates(taxConfig, params.taxRate);
32
+ validateTaxDistribution(dist.mktBps, dist.deflationBps, dist.dividendBps, dist.lpBps);
33
+ return {
34
+ name: params.tokenInfo.name,
35
+ symbol: params.tokenInfo.symbol,
36
+ meta: params.tokenInfo.meta,
37
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
38
+ salt: params.salt ?? zeroBytes32(),
39
+ migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
40
+ quoteToken: params.quoteToken || ZERO_ADDRESS,
41
+ quoteAmt: resolveCreateQuoteAmt(params),
42
+ beneficiary: params.beneficiary,
43
+ permitData: '0x',
44
+ extensionID: params.extensionID ?? zeroBytes32(),
45
+ extensionData: params.extensionData ?? '0x',
46
+ dexId: (params.dexId ?? 0) & 0xff,
47
+ lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
48
+ buyTaxRate,
49
+ sellTaxRate,
50
+ taxDuration: BigInt(taxConfig.taxDuration),
51
+ antiFarmerDuration: BigInt(taxConfig.antiFarmerDuration),
52
+ mktBps: dist.mktBps,
53
+ deflationBps: dist.deflationBps,
54
+ dividendBps: dist.dividendBps,
55
+ lpBps: dist.lpBps,
56
+ minimumShareBalance: BigInt(taxConfig.minimumShareBalance ?? 10000) * 10n ** 18n,
57
+ dividendToken: taxConfig.dividendToken || ZeroAddress,
58
+ commissionReceiver: taxConfig.commissionReceiver || ZeroAddress,
59
+ tokenVersion: TokenVersion.TOKEN_TAXED_V3,
60
+ };
61
+ }
62
+ /** 将 TaxV2Config(含 distribution 嵌套)或 flat 结构归一化 */
63
+ export function normalizeTaxLaunchConfig(input, fallbackTaxRate) {
64
+ if (!input)
65
+ return undefined;
66
+ const dist = 'distribution' in input ? input.distribution : undefined;
67
+ const mktBps = dist?.mktBps ?? input.mktBps ?? 10000;
68
+ const deflationBps = dist?.deflationBps ?? input.deflationBps ?? 0;
69
+ const dividendBps = dist?.dividendBps ?? input.dividendBps ?? 0;
70
+ const lpBps = dist?.lpBps ?? input.lpBps ?? 0;
71
+ const minimumShareBalance = dist?.minimumShareBalance ?? input.minimumShareBalance;
72
+ const buyTaxRate = input.buyTaxRate ?? fallbackTaxRate ?? 0;
73
+ const sellTaxRate = input.sellTaxRate ?? fallbackTaxRate ?? 0;
74
+ if (buyTaxRate <= 0 && sellTaxRate <= 0)
75
+ return undefined;
76
+ return {
77
+ taxDuration: input.taxDuration,
78
+ antiFarmerDuration: input.antiFarmerDuration,
79
+ mktBps,
80
+ deflationBps,
81
+ dividendBps,
82
+ lpBps,
83
+ minimumShareBalance,
84
+ buyTaxRate,
85
+ sellTaxRate,
86
+ dividendToken: input.dividendToken,
87
+ commissionReceiver: input.commissionReceiver,
88
+ vaultConfig: input.vaultConfig,
89
+ };
90
+ }
91
+ /**
92
+ * 构建发币 populateTransaction(优先 V6/V7,Vault 走 VaultPortal)
93
+ */
94
+ function resolveCreateQuoteAmt(params) {
95
+ return params.initialQuoteAmt ?? 0n;
96
+ }
97
+ function resolveUseV7Portal(params) {
98
+ return !!(params.useV7Portal ?? params.useV4Portal ?? params.useClInfinityLaunch);
99
+ }
100
+ /** Flap 文档:TOKEN_V3_PERMIT 须 migratorType=3、feeConfigs 单槽 MARKETING_OR_VAULT 10000 bps */
101
+ function buildNewTokenV7PermitParams(params) {
102
+ const emptyFeeConfig = {
103
+ feeType: FeeType.NONE,
104
+ bps: 0,
105
+ marketingAddress: ZeroAddress,
106
+ dividendToken: ZeroAddress,
107
+ minimumShareBalance: 0n,
108
+ };
109
+ const marketingFeeConfig = {
110
+ feeType: FeeType.MARKETING_OR_VAULT,
111
+ bps: 10000,
112
+ marketingAddress: params.beneficiary,
113
+ dividendToken: ZeroAddress,
114
+ minimumShareBalance: 0n,
115
+ };
116
+ return {
117
+ name: params.tokenInfo.name,
118
+ symbol: params.tokenInfo.symbol,
119
+ meta: params.tokenInfo.meta,
120
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
121
+ salt: params.salt ?? zeroBytes32(),
122
+ migratorType: MigratorType.PCS_INFINITY_CL_MIGRATOR,
123
+ quoteToken: params.quoteToken || ZERO_ADDRESS,
124
+ quoteAmt: resolveCreateQuoteAmt(params),
125
+ permitData: '0x',
126
+ extensionID: params.extensionID ?? zeroBytes32(),
127
+ extensionData: params.extensionData ?? '0x',
128
+ dexId: (params.dexId ?? 0) & 0xff,
129
+ buyTaxRate: 0,
130
+ sellTaxRate: 0,
131
+ taxDuration: 0n,
132
+ antiFarmerDuration: 0n,
133
+ commissionReceiver: ZeroAddress,
134
+ tokenVersion: TokenVersion.TOKEN_V3_PERMIT,
135
+ feeConfigs: [marketingFeeConfig, emptyFeeConfig, emptyFeeConfig, emptyFeeConfig],
136
+ };
137
+ }
138
+ export async function populateCreateTokenTransaction(params) {
139
+ const taxConfig = params.taxConfig;
140
+ const { buyTaxRate, sellTaxRate } = resolveTaxRates(taxConfig, params.taxRate);
141
+ const isTaxLaunch = buyTaxRate > 0 || sellTaxRate > 0;
142
+ const quoteAmt = resolveCreateQuoteAmt(params);
143
+ // 1) Vault 金库税币
144
+ if (taxConfig?.vaultConfig && taxConfig.vaultConfig.vaultType !== 'none') {
145
+ validateTaxDistribution(taxConfig.mktBps, taxConfig.deflationBps, taxConfig.dividendBps, taxConfig.lpBps);
146
+ const chainKey = params.chain.toUpperCase();
147
+ const vaultPortalAddr = VAULT_PORTAL_ADDRESSES[chainKey];
148
+ if (!vaultPortalAddr) {
149
+ throw new Error(`链 "${params.chain}" 不支持 Tax Vault 金库功能`);
150
+ }
151
+ const vaultPortal = new Contract(vaultPortalAddr, VAULT_PORTAL_ABI, params.devWallet);
152
+ const { vaultFactory, vaultData } = buildVaultParams(taxConfig.vaultConfig, chainKey);
153
+ return vaultPortal.newTaxTokenWithVault.populateTransaction({
154
+ name: params.tokenInfo.name,
155
+ symbol: params.tokenInfo.symbol,
156
+ meta: params.tokenInfo.meta,
157
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
158
+ salt: params.salt ?? zeroBytes32(),
159
+ taxRate: Math.max(buyTaxRate, sellTaxRate) & 0xffff,
160
+ migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
161
+ quoteToken: params.quoteToken || ZERO_ADDRESS,
162
+ quoteAmt,
163
+ permitData: '0x',
164
+ extensionID: zeroBytes32(),
165
+ extensionData: '0x',
166
+ dexId: (params.dexId ?? 0) & 0xff,
167
+ lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
168
+ taxDuration: BigInt(taxConfig.taxDuration),
169
+ antiFarmerDuration: BigInt(taxConfig.antiFarmerDuration),
170
+ mktBps: taxConfig.mktBps,
171
+ deflationBps: taxConfig.deflationBps,
172
+ dividendBps: taxConfig.dividendBps,
173
+ lpBps: taxConfig.lpBps,
174
+ minimumShareBalance: BigInt(taxConfig.minimumShareBalance ?? 10000) * 10n ** 18n,
175
+ vaultFactory,
176
+ vaultData,
177
+ });
178
+ }
179
+ // 2) 税币 V3(newTokenV6 + TOKEN_TAXED_V3)
180
+ if (isTaxLaunch && taxConfig) {
181
+ return params.originalPortal.newTokenV6.populateTransaction(buildV6TaxParams(params, taxConfig, {
182
+ mktBps: taxConfig.mktBps,
183
+ deflationBps: taxConfig.deflationBps,
184
+ dividendBps: taxConfig.dividendBps,
185
+ lpBps: taxConfig.lpBps,
186
+ }));
187
+ }
188
+ if (isTaxLaunch) {
189
+ return params.originalPortal.newTokenV6.populateTransaction(buildV6TaxParams(params, {
190
+ taxDuration: 365 * 24 * 60 * 60,
191
+ antiFarmerDuration: 3 * 24 * 60 * 60,
192
+ mktBps: 10000,
193
+ deflationBps: 0,
194
+ dividendBps: 0,
195
+ lpBps: 0,
196
+ buyTaxRate,
197
+ sellTaxRate,
198
+ }, { mktBps: 10000, deflationBps: 0, dividendBps: 0, lpBps: 0 }));
199
+ }
200
+ // 3) 标准 V3 / TOKEN_V3_PERMIT(newTokenV7 — 与 Flap 官网 / Portal v5.8.6+ 一致;V4 已 FeatureDisabled)
201
+ if (resolveUseV7Portal(params)) {
202
+ return params.originalPortal.newTokenV7.populateTransaction(buildNewTokenV7PermitParams(params));
203
+ }
204
+ // 4) 仅 extension(newTokenV3)
205
+ const hasExtension = !!params.extensionID &&
206
+ params.extensionID !== zeroBytes32() &&
207
+ params.lpFeeProfile === undefined &&
208
+ params.dexId === undefined;
209
+ if (hasExtension) {
210
+ return params.originalPortal.newTokenV3.populateTransaction({
211
+ name: params.tokenInfo.name,
212
+ symbol: params.tokenInfo.symbol,
213
+ meta: params.tokenInfo.meta,
214
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
215
+ salt: params.salt ?? zeroBytes32(),
216
+ taxRate: (params.taxRate ?? 0) & 0xffff,
217
+ migratorType: (params.migratorType ?? MigratorType.V3_MIGRATOR) & 0xff,
218
+ quoteToken: params.quoteToken || ZERO_ADDRESS,
219
+ quoteAmt,
220
+ beneficiary: params.beneficiary,
221
+ permitData: '0x',
222
+ extensionID: params.extensionID,
223
+ extensionData: params.extensionData ?? '0x',
224
+ });
225
+ }
226
+ // 5) 标准 V2(newTokenV6 + TOKEN_V2_PERMIT)
227
+ return params.originalPortal.newTokenV6.populateTransaction({
228
+ name: params.tokenInfo.name,
229
+ symbol: params.tokenInfo.symbol,
230
+ meta: params.tokenInfo.meta,
231
+ dexThresh: (params.dexThresh ?? 1) & 0xff,
232
+ salt: params.salt ?? zeroBytes32(),
233
+ migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
234
+ quoteToken: params.quoteToken || ZERO_ADDRESS,
235
+ quoteAmt,
236
+ beneficiary: params.beneficiary,
237
+ permitData: '0x',
238
+ extensionID: params.extensionID ?? zeroBytes32(),
239
+ extensionData: params.extensionData ?? '0x',
240
+ dexId: (params.dexId ?? 0) & 0xff,
241
+ lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
242
+ buyTaxRate: 0,
243
+ sellTaxRate: 0,
244
+ taxDuration: 0n,
245
+ antiFarmerDuration: 0n,
246
+ mktBps: 0,
247
+ deflationBps: 0,
248
+ dividendBps: 0,
249
+ lpBps: 0,
250
+ minimumShareBalance: 0n,
251
+ dividendToken: ZeroAddress,
252
+ commissionReceiver: ZeroAddress,
253
+ tokenVersion: TokenVersion.TOKEN_V2_PERMIT,
254
+ });
255
+ }
@@ -12,9 +12,8 @@ export declare enum TokenVersion {
12
12
  TOKEN_V2_PERMIT = 2,
13
13
  TOKEN_GOPLUS = 3,
14
14
  TOKEN_TAXED = 4,
15
- /** FlapTaxTokenV3 — 推荐税币;配合 newTokenV6 / newTokenV6WithVault */
15
+ TOKEN_TAXED_V2 = 5,
16
16
  TOKEN_TAXED_V3 = 6,
17
- /** 标准 V3 池(PCS Infinity CL);配合 newTokenV7 */
18
17
  TOKEN_V3_PERMIT = 7
19
18
  }
20
19
  /** newTokenV7 feeConfigs 槽位类型 */
@@ -16,9 +16,8 @@ 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
- /** FlapTaxTokenV3 推荐税币;配合 newTokenV6 / newTokenV6WithVault */
19
+ TokenVersion[TokenVersion["TOKEN_TAXED_V2"] = 5] = "TOKEN_TAXED_V2";
20
20
  TokenVersion[TokenVersion["TOKEN_TAXED_V3"] = 6] = "TOKEN_TAXED_V3";
21
- /** 标准 V3 池(PCS Infinity CL);配合 newTokenV7 */
22
21
  TokenVersion[TokenVersion["TOKEN_V3_PERMIT"] = 7] = "TOKEN_V3_PERMIT";
23
22
  })(TokenVersion || (TokenVersion = {}));
24
23
  /** newTokenV7 feeConfigs 槽位类型 */
@@ -96,11 +95,11 @@ const PORTAL_ABI = [
96
95
  '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)',
97
96
  '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)',
98
97
  '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)',
99
- // newTokenV5: 支持 Tax Token V2 高级税收分配(taxRate > 0 时使用,Legacy
98
+ // newTokenV5: 支持 Tax Token V2 高级税收分配(legacy,推荐 newTokenV6
100
99
  '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)',
101
- // newTokenV6: 统一发射入口(标准 TOKEN_V2_PERMIT / 税币 TOKEN_TAXED_V3)
100
+ // newTokenV6: 统一入口(TOKEN_V2_PERMIT / TOKEN_TAXED_V3)
102
101
  '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)',
103
- // newTokenV7: TOKEN_V3_PERMIT + PCS Infinity CL 迁移(标准 V3 池,Portal v5.8.6+)
102
+ // newTokenV7: TOKEN_V3_PERMIT + CL 迁移
104
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)',
105
104
  // 受益人领取
106
105
  'function claim(address token) external returns (uint256,uint256)',
@@ -109,17 +108,21 @@ const PORTAL_ABI = [
109
108
  'function getFeeRate() external view returns (uint256,uint256)',
110
109
  'function nonce() external view returns (uint256)',
111
110
  'function version() external pure returns (string)',
112
- 'function getLocks(address token) external view returns (uint256[])'
111
+ 'function getLocks(address token) external view returns (uint256[])',
113
112
  ];
114
113
  /**
115
114
  * 将 lpFeeProfile 转换为 V3 fee 值
116
115
  */
117
116
  export function lpFeeProfileToV3Fee(profile) {
118
117
  switch (profile) {
119
- case V3LPFeeProfile.LP_FEE_PROFILE_STANDARD: return 2500;
120
- case V3LPFeeProfile.LP_FEE_PROFILE_LOW: return 100;
121
- case V3LPFeeProfile.LP_FEE_PROFILE_HIGH: return 10000;
122
- default: return 2500; // 默认 STANDARD
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
123
126
  }
124
127
  }
125
128
  /**
@@ -136,6 +139,11 @@ export function validateTaxDistribution(config) {
136
139
  return { valid: true };
137
140
  }
138
141
  export class FlapPortal {
142
+ rpcUrl;
143
+ portal;
144
+ contract;
145
+ buyFeeRate;
146
+ sellFeeRate;
139
147
  constructor(cfg) {
140
148
  this.rpcUrl = cfg.rpcUrl;
141
149
  this.portal = cfg.addressOverride ?? FLAP_PORTAL_ADDRESSES[cfg.chain];
@@ -150,13 +158,27 @@ export class FlapPortal {
150
158
  async getTokenV2(token) {
151
159
  const r = await this.contract.getTokenV2(token);
152
160
  return {
153
- status: r[0], reserve: r[1], circulatingSupply: r[2], price: r[3], tokenVersion: r[4], r: r[5], dexSupplyThresh: r[6],
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],
154
168
  };
155
169
  }
156
170
  async getTokenV3(token) {
157
171
  const r = await this.contract.getTokenV3(token);
158
172
  return {
159
- 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],
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],
160
182
  };
161
183
  }
162
184
  async getTokenV4(token) {
@@ -228,7 +250,6 @@ export class FlapPortal {
228
250
  const curve = new CDPV2(r, h, k);
229
251
  const currentReserve = formatEther(state.reserve);
230
252
  const dexSupplyThresh = formatEther(state.dexSupplyThresh);
231
- const circulatingSupply = formatEther(state.circulatingSupply);
232
253
  // 计算毕业时的储备
233
254
  const graduationReserve = curve.estimateReserve(dexSupplyThresh);
234
255
  const graduationReserveNum = parseFloat(graduationReserve.toString());
@@ -240,9 +261,7 @@ export class FlapPortal {
240
261
  // 含手续费(1% buy fee)
241
262
  const remainingWithFee = remainingNet / (1 - this.buyFeeRate);
242
263
  // 计算进度
243
- const progressPercent = isGraduated
244
- ? '100.00'
245
- : (currentReserveNum / graduationReserveNum * 100).toFixed(2);
264
+ const progressPercent = isGraduated ? '100.00' : ((currentReserveNum / graduationReserveNum) * 100).toFixed(2);
246
265
  return {
247
266
  remainingOkb: remainingWithFee.toFixed(6),
248
267
  graduationReserve: graduationReserveNum.toFixed(6),
@@ -350,6 +369,7 @@ export class FlapPortal {
350
369
  }
351
370
  }
352
371
  export class FlapPortalWriter extends FlapPortal {
372
+ wallet;
353
373
  constructor(cfg, privateKey) {
354
374
  super(cfg);
355
375
  // 使用 ethers v6 创建钱包
@@ -598,15 +618,3 @@ export class FlapPortalWriter extends FlapPortal {
598
618
  return this.portal;
599
619
  }
600
620
  }
601
- /**
602
- * 获取 Flap Portal 合约地址(内部使用)
603
- * 注意:此方法不对外导出,用户应使用 FlapPortal 实例而非直接获取地址
604
- * @internal
605
- */
606
- function getFlapPortalAddress(chain) {
607
- const address = FLAP_PORTAL_ADDRESSES[chain];
608
- if (!address) {
609
- throw new Error(`Flap Portal not deployed on ${chain}`);
610
- }
611
- return address;
612
- }
@@ -8,11 +8,12 @@ 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 - Legacy V5 税币 impl(不推荐,请用 taxedV3)
12
- * @param taxedV3 - TOKEN_TAXED_V3(newTokenV6 / newTokenV6WithVault)
13
- * @param useV3Permit - TOKEN_V3_PERMIT / newTokenV7(标准 V3 池)
11
+ * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
14
12
  */
15
- export declare function predictVanityTokenAddressByChain(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', salt: string, taxed?: boolean, taxedV5?: boolean, taxedV3?: boolean, useV3Permit?: boolean): string;
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;
16
17
  /**
17
18
  * 寻找满足后缀的 salt(默认 8888)
18
19
  * 注意:该方法为同步 CPU 搜索,谨慎设置迭代限制
@@ -34,8 +35,7 @@ export declare function findSaltEnding(opts: {
34
35
  * 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
35
36
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
36
37
  * XLayer 只有标准版,后缀是 1111
37
- * @param taxedV5 - Legacy V5 impl
38
- * @param taxedV3 - TOKEN_TAXED_V3 impl(推荐)
38
+ * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
39
39
  */
40
40
  export declare function findSaltEndingByChain(opts: {
41
41
  chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD';
@@ -6,9 +6,7 @@ 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)
10
- ? salt.toLowerCase()
11
- : keccak256(salt);
9
+ const normalizedSalt = /^0x[0-9a-fA-F]{64}$/.test(salt) ? salt.toLowerCase() : keccak256(salt);
12
10
  // 构建 EIP-1167 minimal proxy bytecode
13
11
  const bytecode = '0x3d602d80600a3d3981f3363d3d373d3d3d363d73' + tokenImpl.slice(2).toLowerCase() + '5af43d82803e903d91602b57fd5bf3';
14
12
  const bytecodeHash = keccak256(bytecode);
@@ -19,19 +17,18 @@ export function predictVanityTokenAddress(salt, portal, tokenImpl) {
19
17
  * SDK 自动使用该链的 Portal 和 TokenImpl 地址
20
18
  * 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
21
19
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
22
- * @param taxedV5 - Legacy V5 税币 impl(不推荐,请用 taxedV3)
23
- * @param taxedV3 - TOKEN_TAXED_V3(newTokenV6 / newTokenV6WithVault)
24
- * @param useV3Permit - TOKEN_V3_PERMIT / newTokenV7(标准 V3 池)
20
+ * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
25
21
  */
26
- export function predictVanityTokenAddressByChain(chain, salt, taxed = false, taxedV5 = false, taxedV3 = false, useV3Permit = false) {
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) {
27
26
  // 使用 Flap 平台的原始 Portal 地址(用于 CREATE2)
28
27
  const portal = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain];
29
28
  let tokenImpl;
30
29
  if (chain === 'BSC') {
31
- if (taxedV3) {
32
- tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V3;
33
- }
34
- else if (taxedV5) {
30
+ if (taxedV5 || taxedV3) {
31
+ // V5 高级税代币(含 vault)使用新的实现地址
35
32
  tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
36
33
  }
37
34
  else if (useV3Permit) {
@@ -62,7 +59,7 @@ export async function findSaltEnding(opts) {
62
59
  // 若未提供 seed,默认使用随机种子,避免每次结果都相同
63
60
  let salt = opts.seed ?? keccak256(randomBytes(32));
64
61
  let iterations = 0;
65
- const limit = opts.maxIterations ?? 1000000;
62
+ const limit = opts.maxIterations ?? 1_000_000;
66
63
  while (iterations < limit) {
67
64
  const addr = predictVanityTokenAddress(salt, opts.portal, opts.tokenImpl);
68
65
  if (addr.toLowerCase().endsWith(suffix)) {
@@ -79,18 +76,15 @@ export async function findSaltEnding(opts) {
79
76
  * 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
80
77
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
81
78
  * XLayer 只有标准版,后缀是 1111
82
- * @param taxedV5 - Legacy V5 impl
83
- * @param taxedV3 - TOKEN_TAXED_V3 impl(推荐)
79
+ * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
84
80
  */
85
81
  export async function findSaltEndingByChain(opts) {
86
82
  // 使用 Flap 平台的原始 Portal 地址(用于 CREATE2)
87
83
  const portal = FLAP_ORIGINAL_PORTAL_ADDRESSES[opts.chain];
88
84
  let tokenImpl;
89
85
  if (opts.chain === 'BSC') {
90
- if (opts.taxedV3) {
91
- tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V3;
92
- }
93
- else if (opts.taxedV5) {
86
+ if (opts.taxedV5 || opts.taxedV3) {
87
+ // V5 高级税代币(含 vault)使用新的实现地址
94
88
  tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
95
89
  }
96
90
  else if (opts.useV3Permit) {
@@ -110,13 +104,13 @@ export async function findSaltEndingByChain(opts) {
110
104
  if (!portal || !tokenImpl) {
111
105
  throw new Error(`Flap Protocol not fully deployed on ${opts.chain}`);
112
106
  }
113
- // ✅ 如果未指定后缀,根据链自动选择正确的后缀
114
- const suffix = opts.suffix ?? getVanitySuffix(opts.chain, opts.taxed);
107
+ // ✅ 如果未指定后缀,根据链自动选择正确的后缀(税代币 / V5 / V3 vault 均使用 tax 后缀)
108
+ const suffix = opts.suffix ?? getVanitySuffix(opts.chain, opts.taxed || opts.taxedV5 || opts.taxedV3);
115
109
  return findSaltEnding({
116
110
  portal,
117
111
  tokenImpl,
118
112
  suffix,
119
113
  maxIterations: opts.maxIterations,
120
- seed: opts.seed
114
+ seed: opts.seed,
121
115
  });
122
116
  }