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
@@ -1,5 +1,5 @@
1
- import { BundleStatus } from '../clients/club48.js';
2
- import type { SoulPointSignatureMode, VNormalizationMode } from '../clients/club48.js';
1
+ import { BundleStatus } from '../../core/clients/club48.js';
2
+ import type { SoulPointSignatureMode, VNormalizationMode } from '../../core/clients/club48.js';
3
3
  export type FlapBundleConfig = {
4
4
  rpcUrl: string;
5
5
  club48Endpoint?: string;
@@ -1,14 +1,16 @@
1
1
  import { ethers, Wallet, JsonRpcProvider } from 'ethers';
2
- import { Club48Client, sendBatchPrivateTransactions, BUILDER_CONTROL_EOA } from '../clients/club48.js';
2
+ import { Club48Client, sendBatchPrivateTransactions, BUILDER_CONTROL_EOA } from '../../core/clients/club48.js';
3
3
  import { FLAP_PORTAL_ADDRESSES, FLAP_ORIGINAL_PORTAL_ADDRESSES } from './constants.js';
4
- import { GAS_LIMITS } from '../constants/index.js';
4
+ import { GAS_LIMITS, CHAINS, ZERO_ADDRESS } from '../../core/constants/index.js';
5
+ import { consoleSdkLogger } from '../../core/index.js';
6
+ const sdkLogger = consoleSdkLogger;
5
7
  // Portal ABI (简化版,仅包含需要的方法)
6
8
  const PORTAL_ABI = [
7
9
  'function newToken(string name, string symbol, string meta) external payable returns (address)',
8
10
  '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
11
  'function swapExactInputBuy((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData)) external payable returns (uint256)',
10
12
  '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)'
13
+ 'function quoteExactInput((address inputToken,address outputToken,uint256 inputAmount)) external returns (uint256)',
12
14
  ];
13
15
  /**
14
16
  * Flap Protocol Bundle 交易方法
@@ -18,20 +20,20 @@ const PORTAL_ABI = [
18
20
  const ERRORS = {
19
21
  NO_PRIVATE_KEY: {
20
22
  en: 'At least 1 private key (creator) is required',
21
- zh: '至少需要 1 个私钥(创建者)'
23
+ zh: '至少需要 1 个私钥(创建者)',
22
24
  },
23
25
  AMOUNT_MISMATCH: {
24
26
  en: (buyCount, buyerCount) => `Buy amount count (${buyCount}) must equal buyer count (${buyerCount})`,
25
- zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`
27
+ zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`,
26
28
  },
27
29
  KEY_AMOUNT_MISMATCH: {
28
30
  en: 'Private key count and amount count must match',
29
- zh: '私钥和购买金额数量必须一致'
31
+ zh: '私钥和购买金额数量必须一致',
30
32
  },
31
33
  SELL_KEY_AMOUNT_MISMATCH: {
32
34
  en: 'Private key count and sell amount count must match',
33
- zh: '私钥和卖出数量必须一致'
34
- }
35
+ zh: '私钥和卖出数量必须一致',
36
+ },
35
37
  };
36
38
  // 获取错误信息(根据环境语言)
37
39
  function getErrorMessage(key, ...args) {
@@ -56,28 +58,11 @@ async function estimateGasWithMultiplier(provider, txRequest, multiplier) {
56
58
  function getTxType(config) {
57
59
  return config.txType ?? 0; // 默认 Legacy (type 0),适用于 48.club/BSC
58
60
  }
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
- }
74
61
  /**
75
62
  * Flap Protocol: 创建代币 + 捆绑购买
76
63
  */
77
64
  export async function createTokenWithBundleBuy(params) {
78
- const { chain, privateKeys, buyAmounts, tokenInfo, quoteToken, tokenAddress, config } = params;
79
- // 默认使用 BNB (0地址)
80
- const quoteTokenAddress = quoteToken || '0x0000000000000000000000000000000000000000';
65
+ const { chain, privateKeys, buyAmounts, tokenInfo, tokenAddress, config } = params;
81
66
  if (privateKeys.length === 0) {
82
67
  throw new Error(getErrorMessage('NO_PRIVATE_KEY'));
83
68
  }
@@ -88,7 +73,7 @@ export async function createTokenWithBundleBuy(params) {
88
73
  const devWallet = new Wallet(privateKeys[0], provider);
89
74
  const club48 = new Club48Client({
90
75
  endpoint: config.club48Endpoint,
91
- explorerEndpoint: config.club48ExplorerEndpoint
76
+ explorerEndpoint: config.club48ExplorerEndpoint,
92
77
  });
93
78
  const blockOffset = config.bundleBlockOffset ?? 100;
94
79
  // 1. 构建交易(为重复地址分配顺序 nonce)
@@ -119,10 +104,10 @@ export async function createTokenWithBundleBuy(params) {
119
104
  salt: params.salt ?? '0x' + '00'.repeat(32),
120
105
  taxRate: (params.taxRate ?? 0) & 0xffff,
121
106
  migratorType: (params.migratorType ?? 0) & 0xff,
122
- quoteToken: params.quoteToken || '0x0000000000000000000000000000000000000000',
107
+ quoteToken: params.quoteToken || ZERO_ADDRESS,
123
108
  quoteAmt: 0n,
124
109
  beneficiary: new Wallet(privateKeys[0]).address,
125
- permitData: '0x'
110
+ permitData: '0x',
126
111
  });
127
112
  // 估算 gas 并应用用户配置的安全余量
128
113
  const createGasLimit = await estimateGasWithMultiplier(provider, { ...createTxUnsigned, from: devWallet.address }, config.gasLimitMultiplier);
@@ -132,8 +117,8 @@ export async function createTokenWithBundleBuy(params) {
132
117
  nonce: await getNextNonce(devWallet),
133
118
  gasLimit: createGasLimit,
134
119
  gasPrice: gasPrice,
135
- chainId: 56, // BSC
136
- type: getTxType(config) // 用户可配置:0=Legacy(默认),2=EIP-1559
120
+ chainId: CHAINS.BSC.chainId, // BSC
121
+ type: getTxType(config), // 用户可配置:0=Legacy(默认),2=EIP-1559
137
122
  };
138
123
  const signedCreateTx = await devWallet.signTransaction(createTxRequest);
139
124
  signedTxs.push(signedCreateTx);
@@ -144,9 +129,9 @@ export async function createTokenWithBundleBuy(params) {
144
129
  value: config.tipAmountWei,
145
130
  gasPrice,
146
131
  gasLimit: GAS_LIMITS.BRIBE,
147
- chainId: 56,
132
+ chainId: CHAINS.BSC.chainId,
148
133
  type: 0, // Legacy transaction
149
- nonce: await getNextNonce(devWallet)
134
+ nonce: await getNextNonce(devWallet),
150
135
  });
151
136
  signedTxs.push(tipTx);
152
137
  }
@@ -161,17 +146,19 @@ export async function createTokenWithBundleBuy(params) {
161
146
  try {
162
147
  const quote = new ethers.Contract(portalAddr, PORTAL_ABI, buyerWallet);
163
148
  const exactOut = await quote.quoteExactInput.staticCall({
164
- inputToken: '0x0000000000000000000000000000000000000000',
149
+ inputToken: ZERO_ADDRESS,
165
150
  outputToken: tokenAddress,
166
- inputAmount: amountIn
151
+ inputAmount: amountIn,
167
152
  });
168
153
  const keep = BigInt(10000 - slippageBps);
169
154
  minAmountOut = (exactOut * keep) / 10000n;
170
155
  }
171
- catch { }
156
+ catch (error) {
157
+ sdkLogger.debug?.('[Flap bundle] quoteExactInput failed, fallback minAmountOut=0', error);
158
+ }
172
159
  const buyPortal = new ethers.Contract(portalAddr, PORTAL_ABI, buyerWallet);
173
160
  const buyTxUnsigned = await buyPortal.swapExactInputBuy.populateTransaction({
174
- inputToken: '0x0000000000000000000000000000000000000000',
161
+ inputToken: ZERO_ADDRESS,
175
162
  outputToken: tokenAddress,
176
163
  inputAmount: 0n,
177
164
  minOutputAmount: minAmountOut,
@@ -192,8 +179,8 @@ export async function createTokenWithBundleBuy(params) {
192
179
  nonce: await getNextNonce(buyerWallet),
193
180
  gasLimit: buyGasLimit,
194
181
  gasPrice: gasPrice,
195
- chainId: 56, // BSC
196
- type: getTxType(config) // 用户可配置
182
+ chainId: CHAINS.BSC.chainId, // BSC
183
+ type: getTxType(config), // 用户可配置
197
184
  };
198
185
  const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
199
186
  signedTxs.push(signedBuyTx);
@@ -203,11 +190,11 @@ export async function createTokenWithBundleBuy(params) {
203
190
  const bundleUuid = await club48.sendBundle({
204
191
  txs: signedTxs,
205
192
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
206
- noMerge: config.noMerge
193
+ noMerge: config.noMerge,
207
194
  }, {
208
195
  spMode: params.config.spMode ?? 'timestampPersonalSign',
209
196
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
210
- spVMode: params.config.spVMode
197
+ spVMode: params.config.spVMode,
211
198
  });
212
199
  // 3. 等待完成
213
200
  const status = await club48.waitForBundle(bundleUuid, params.config.waitTimeoutMs ?? 60000);
@@ -216,7 +203,7 @@ export async function createTokenWithBundleBuy(params) {
216
203
  tokenAddress,
217
204
  status,
218
205
  createTx: signedCreateTx,
219
- buyTxs
206
+ buyTxs,
220
207
  };
221
208
  }
222
209
  /**
@@ -230,7 +217,7 @@ export async function batchBuyWithBundle(params) {
230
217
  const provider = new JsonRpcProvider(config.rpcUrl);
231
218
  const club48 = new Club48Client({
232
219
  endpoint: config.club48Endpoint,
233
- explorerEndpoint: config.club48ExplorerEndpoint
220
+ explorerEndpoint: config.club48ExplorerEndpoint,
234
221
  });
235
222
  const blockOffset = config.bundleBlockOffset ?? 100;
236
223
  const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
@@ -257,9 +244,9 @@ export async function batchBuyWithBundle(params) {
257
244
  value: config.tipAmountWei,
258
245
  gasPrice,
259
246
  gasLimit: GAS_LIMITS.BRIBE,
260
- chainId: 56,
247
+ chainId: CHAINS.BSC.chainId,
261
248
  type: 0, // Legacy transaction
262
- nonce: await getNextNonce(tipWallet)
249
+ nonce: await getNextNonce(tipWallet),
263
250
  });
264
251
  signedTxs.unshift(tipTx);
265
252
  }
@@ -272,17 +259,19 @@ export async function batchBuyWithBundle(params) {
272
259
  try {
273
260
  const quote = new ethers.Contract(portalAddr, PORTAL_ABI, buyerWallet);
274
261
  const exactOut = await quote.quoteExactInput.staticCall({
275
- inputToken: '0x0000000000000000000000000000000000000000',
262
+ inputToken: ZERO_ADDRESS,
276
263
  outputToken: tokenAddress,
277
- inputAmount: amountIn
264
+ inputAmount: amountIn,
278
265
  });
279
266
  const keep = BigInt(10000 - slippageBps);
280
267
  minAmountOut = (exactOut * keep) / 10000n;
281
268
  }
282
- catch { }
269
+ catch (error) {
270
+ sdkLogger.debug?.('[Flap bundle] quoteExactInput failed, fallback minAmountOut=0', error);
271
+ }
283
272
  const portal = new ethers.Contract(portalAddr, PORTAL_ABI, buyerWallet);
284
273
  const buyTxUnsigned = await portal.swapExactInputBuy.populateTransaction({
285
- inputToken: '0x0000000000000000000000000000000000000000',
274
+ inputToken: ZERO_ADDRESS,
286
275
  outputToken: tokenAddress,
287
276
  inputAmount: 0n,
288
277
  minOutputAmount: minAmountOut,
@@ -292,7 +281,7 @@ export async function batchBuyWithBundle(params) {
292
281
  const estimatedGas = await provider.estimateGas({
293
282
  ...buyTxUnsigned,
294
283
  from: buyerWallet.address,
295
- value: amountIn
284
+ value: amountIn,
296
285
  });
297
286
  const gasLimit = (estimatedGas * 120n) / 100n;
298
287
  const buyTxRequest = {
@@ -301,8 +290,8 @@ export async function batchBuyWithBundle(params) {
301
290
  nonce: await getNextNonce(buyerWallet),
302
291
  gasLimit: gasLimit,
303
292
  gasPrice: gasPrice,
304
- chainId: 56, // BSC
305
- type: 0 // Legacy transaction
293
+ chainId: CHAINS.BSC.chainId, // BSC
294
+ type: 0, // Legacy transaction
306
295
  };
307
296
  const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
308
297
  signedTxs.push(signedBuyTx);
@@ -310,11 +299,11 @@ export async function batchBuyWithBundle(params) {
310
299
  const bundleUuid = await club48.sendBundle({
311
300
  txs: signedTxs,
312
301
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
313
- noMerge: config.noMerge
302
+ noMerge: config.noMerge,
314
303
  }, {
315
304
  spMode: params.config.spMode ?? 'timestampPersonalSign',
316
305
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
317
- spVMode: params.config.spVMode
306
+ spVMode: params.config.spVMode,
318
307
  });
319
308
  const status = await club48.waitForBundle(bundleUuid);
320
309
  return { bundleUuid, status, buyTxs: signedTxs };
@@ -330,7 +319,7 @@ export async function batchSellWithBundle(params) {
330
319
  const provider = new JsonRpcProvider(config.rpcUrl);
331
320
  const club48 = new Club48Client({
332
321
  endpoint: config.club48Endpoint,
333
- explorerEndpoint: config.club48ExplorerEndpoint
322
+ explorerEndpoint: config.club48ExplorerEndpoint,
334
323
  });
335
324
  const blockOffset = config.bundleBlockOffset ?? 100;
336
325
  const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
@@ -357,9 +346,9 @@ export async function batchSellWithBundle(params) {
357
346
  value: config.tipAmountWei,
358
347
  gasPrice,
359
348
  gasLimit: GAS_LIMITS.BRIBE,
360
- chainId: 56,
349
+ chainId: CHAINS.BSC.chainId,
361
350
  type: 0, // Legacy transaction
362
- nonce: await getNextNonce(tipWallet)
351
+ nonce: await getNextNonce(tipWallet),
363
352
  });
364
353
  signedTxs.unshift(tipTx);
365
354
  }
@@ -370,7 +359,7 @@ export async function batchSellWithBundle(params) {
370
359
  const portal = new ethers.Contract(portalAddr, PORTAL_ABI, sellerWallet);
371
360
  const sellTxUnsigned = await portal.swapExactInputSell.populateTransaction({
372
361
  inputToken: tokenAddress,
373
- outputToken: '0x0000000000000000000000000000000000000000',
362
+ outputToken: ZERO_ADDRESS,
374
363
  inputAmount: amountIn,
375
364
  minOutputAmount: minAmountOut,
376
365
  permitData: '0x',
@@ -378,7 +367,7 @@ export async function batchSellWithBundle(params) {
378
367
  // 估算 gas 并添加 20% 安全余量
379
368
  const estimatedGas = await provider.estimateGas({
380
369
  ...sellTxUnsigned,
381
- from: sellerWallet.address
370
+ from: sellerWallet.address,
382
371
  });
383
372
  const gasLimit = (estimatedGas * 120n) / 100n;
384
373
  const sellTxRequest = {
@@ -387,8 +376,8 @@ export async function batchSellWithBundle(params) {
387
376
  nonce: await getNextNonce(sellerWallet),
388
377
  gasLimit: gasLimit,
389
378
  gasPrice: gasPrice,
390
- chainId: 56, // BSC
391
- type: 0 // Legacy transaction
379
+ chainId: CHAINS.BSC.chainId, // BSC
380
+ type: 0, // Legacy transaction
392
381
  };
393
382
  const signedSellTx = await sellerWallet.signTransaction(sellTxRequest);
394
383
  signedTxs.push(signedSellTx);
@@ -396,17 +385,17 @@ export async function batchSellWithBundle(params) {
396
385
  const bundleUuid = await club48.sendBundle({
397
386
  txs: signedTxs,
398
387
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
399
- noMerge: config.noMerge
388
+ noMerge: config.noMerge,
400
389
  }, {
401
390
  spMode: params.config.spMode ?? 'timestampPersonalSign',
402
391
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
403
- spVMode: params.config.spVMode
392
+ spVMode: params.config.spVMode,
404
393
  });
405
394
  const status = await club48.waitForBundle(bundleUuid);
406
395
  return { bundleUuid, status, sellTxs: signedTxs };
407
396
  }
408
397
  export async function flapPrivateBuy(params) {
409
- const { chain, privateKey, tokenAddress, amountIn, to, config, spPrivateKey } = params;
398
+ const { chain, privateKey, tokenAddress, amountIn, config, spPrivateKey } = params;
410
399
  const provider = new JsonRpcProvider(config.rpcUrl);
411
400
  const wallet = new Wallet(privateKey, provider);
412
401
  const club48 = new Club48Client({ endpoint: config.club48Endpoint, explorerEndpoint: config.club48ExplorerEndpoint });
@@ -416,7 +405,7 @@ export async function flapPrivateBuy(params) {
416
405
  const minAmountOut = 0n; // 不加滑点
417
406
  const portal = new ethers.Contract(portalAddr, PORTAL_ABI, wallet);
418
407
  const unsigned = await portal.swapExactInputBuy.populateTransaction({
419
- inputToken: '0x0000000000000000000000000000000000000000',
408
+ inputToken: ZERO_ADDRESS,
420
409
  outputToken: tokenAddress,
421
410
  inputAmount: 0n,
422
411
  minOutputAmount: minAmountOut,
@@ -426,7 +415,7 @@ export async function flapPrivateBuy(params) {
426
415
  const estimatedGas = await provider.estimateGas({
427
416
  ...unsigned,
428
417
  from: wallet.address,
429
- value: amountWei
418
+ value: amountWei,
430
419
  });
431
420
  const gasLimit = (estimatedGas * 120n) / 100n;
432
421
  const req = {
@@ -435,8 +424,8 @@ export async function flapPrivateBuy(params) {
435
424
  nonce: await wallet.getNonce(),
436
425
  gasLimit: gasLimit,
437
426
  gasPrice,
438
- chainId: 56,
439
- type: 0 // Legacy transaction
427
+ chainId: CHAINS.BSC.chainId,
428
+ type: 0, // Legacy transaction
440
429
  };
441
430
  const signed = await wallet.signTransaction(req);
442
431
  if (spPrivateKey)
@@ -455,7 +444,7 @@ export async function flapPrivateSell(params) {
455
444
  const portal = new ethers.Contract(portalAddr, PORTAL_ABI, wallet);
456
445
  const unsigned = await portal.swapExactInputSell.populateTransaction({
457
446
  inputToken: tokenAddress,
458
- outputToken: '0x0000000000000000000000000000000000000000',
447
+ outputToken: ZERO_ADDRESS,
459
448
  inputAmount: amountWei,
460
449
  minOutputAmount: minOut,
461
450
  permitData: '0x',
@@ -463,7 +452,7 @@ export async function flapPrivateSell(params) {
463
452
  // 估算 gas 并添加 20% 安全余量
464
453
  const estimatedGas = await provider.estimateGas({
465
454
  ...unsigned,
466
- from: wallet.address
455
+ from: wallet.address,
467
456
  });
468
457
  const gasLimit = (estimatedGas * 120n) / 100n;
469
458
  const req = {
@@ -472,8 +461,8 @@ export async function flapPrivateSell(params) {
472
461
  nonce: await wallet.getNonce(),
473
462
  gasLimit: gasLimit,
474
463
  gasPrice,
475
- chainId: 56,
476
- type: 0 // Legacy transaction
464
+ chainId: CHAINS.BSC.chainId,
465
+ type: 0, // Legacy transaction
477
466
  };
478
467
  const signed = await wallet.signTransaction(req);
479
468
  if (spPrivateKey)
@@ -507,7 +496,7 @@ export async function flapBatchPrivateBuy(params) {
507
496
  const amountWei = ethers.parseEther(amountsIn[i]);
508
497
  const portal = new ethers.Contract(portalAddr, PORTAL_ABI, w);
509
498
  const unsigned = await portal.swapExactInputBuy.populateTransaction({
510
- inputToken: '0x0000000000000000000000000000000000000000',
499
+ inputToken: ZERO_ADDRESS,
511
500
  outputToken: tokenAddress,
512
501
  inputAmount: 0n,
513
502
  minOutputAmount: 0n,
@@ -516,13 +505,21 @@ export async function flapBatchPrivateBuy(params) {
516
505
  // 估算 gas 并添加 20% 安全余量
517
506
  const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address, value: amountWei });
518
507
  const gasLimit = (estimatedGas * 120n) / 100n;
519
- const req = { ...unsigned, from: w.address, nonce: await getNextNonce(w), gasLimit, gasPrice, chainId: 56, type: 0 };
508
+ const req = {
509
+ ...unsigned,
510
+ from: w.address,
511
+ nonce: await getNextNonce(w),
512
+ gasLimit,
513
+ gasPrice,
514
+ chainId: CHAINS.BSC.chainId,
515
+ type: 0,
516
+ };
520
517
  signedTxs.push(await w.signTransaction(req));
521
518
  }
522
519
  return await sendBatchPrivateTransactions(signedTxs, spPrivateKey, config.club48Endpoint || 'https://puissant-bsc.48.club');
523
520
  }
524
521
  export async function flapBatchPrivateSell(params) {
525
- const { chain, privateKeys, amounts, tokenAddress, config, spPrivateKey, minEthEach } = params;
522
+ const { chain, privateKeys, amounts, tokenAddress, config, minEthEach } = params;
526
523
  if (privateKeys.length !== amounts.length)
527
524
  throw new Error('privateKeys and amounts length mismatch');
528
525
  const provider = new JsonRpcProvider(config.rpcUrl);
@@ -550,7 +547,7 @@ export async function flapBatchPrivateSell(params) {
550
547
  const portal = new ethers.Contract(portalAddr, PORTAL_ABI, w);
551
548
  const unsigned = await portal.swapExactInputSell.populateTransaction({
552
549
  inputToken: tokenAddress,
553
- outputToken: '0x0000000000000000000000000000000000000000',
550
+ outputToken: ZERO_ADDRESS,
554
551
  inputAmount: amountWei,
555
552
  minOutputAmount: minOut,
556
553
  permitData: '0x',
@@ -558,7 +555,15 @@ export async function flapBatchPrivateSell(params) {
558
555
  // 估算 gas 并添加 20% 安全余量
559
556
  const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address });
560
557
  const gasLimit = (estimatedGas * 120n) / 100n;
561
- const req = { ...unsigned, from: w.address, nonce: await getNextNonce(w), gasLimit, gasPrice, chainId: 56, type: 0 };
558
+ const req = {
559
+ ...unsigned,
560
+ from: w.address,
561
+ nonce: await getNextNonce(w),
562
+ gasLimit,
563
+ gasPrice,
564
+ chainId: CHAINS.BSC.chainId,
565
+ type: 0,
566
+ };
562
567
  signedTxs.push(await w.signTransaction(req));
563
568
  }
564
569
  // 使用 bundle 通道提交(统一与捆绑买保持一致)
@@ -566,12 +571,12 @@ export async function flapBatchPrivateSell(params) {
566
571
  const bundleUuid = await club48.sendBundle({
567
572
  txs: signedTxs,
568
573
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
569
- noMerge: config.noMerge
574
+ noMerge: config.noMerge,
570
575
  }, {
571
576
  // 若传入 sp 配置,则用于生成 48SP 签名提升打包优先级(与批量买一致)
572
577
  spMode: params.config.spMode ?? 'timestampPersonalSign',
573
578
  spPrivateKey: params.config.spPrivateKey || 'https://puissant-bsc.48.club',
574
- spVMode: params.config.spVMode
579
+ spVMode: params.config.spVMode,
575
580
  });
576
581
  try {
577
582
  const status = await club48.waitForBundle(bundleUuid);
@@ -0,0 +1,81 @@
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, type TransactionRequest, type Wallet } from 'ethers';
11
+ import { type TaxVaultConfig } from './vault.js';
12
+ /** 分红代币:将 launching token 本身作为分红代币 */
13
+ export declare const MAGIC_DIVIDEND_SELF = "0xfEEDFEEDfeEDFEedFEEdFEEDFeEdfEEdFeEdFEEd";
14
+ export type NormalizedTaxLaunchConfig = {
15
+ taxDuration: number;
16
+ antiFarmerDuration: number;
17
+ mktBps: number;
18
+ deflationBps: number;
19
+ dividendBps: number;
20
+ lpBps: number;
21
+ minimumShareBalance?: number;
22
+ buyTaxRate: number;
23
+ sellTaxRate: number;
24
+ dividendToken?: string;
25
+ commissionReceiver?: string;
26
+ vaultConfig?: TaxVaultConfig;
27
+ };
28
+ export type PopulateCreateTokenParams = {
29
+ chain: string;
30
+ devWallet: Wallet;
31
+ originalPortal: Contract;
32
+ tokenInfo: {
33
+ name: string;
34
+ symbol: string;
35
+ meta: string;
36
+ };
37
+ quoteToken?: string;
38
+ beneficiary: string;
39
+ dexThresh?: number;
40
+ salt?: string;
41
+ migratorType?: number;
42
+ /** legacy 单税率(bps),无 buy/sell 时作为对称税率 */
43
+ taxRate?: number;
44
+ dexId?: number;
45
+ lpFeeProfile?: number;
46
+ extensionID?: string;
47
+ extensionData?: string;
48
+ /** 标准 V3 / TOKEN_V3_PERMIT(newTokenV7 + PCS_INFINITY_CL_MIGRATOR,对齐 Flap Portal v5.8.6+) */
49
+ useV7Portal?: boolean;
50
+ /** @deprecated 使用 useV7Portal */
51
+ useV4Portal?: boolean;
52
+ /** @deprecated 已合并到 useV7Portal */
53
+ useClInfinityLaunch?: boolean;
54
+ /** 高级税币 / 税币 V3 配置 */
55
+ taxConfig?: NormalizedTaxLaunchConfig;
56
+ /** 创建时内嵌买入(Flap 文档方式 A:quoteAmt + msg.value) */
57
+ initialQuoteAmt?: bigint;
58
+ };
59
+ /** 将 TaxV2Config(含 distribution 嵌套)或 flat 结构归一化 */
60
+ export declare function normalizeTaxLaunchConfig(input?: {
61
+ taxDuration: number;
62
+ antiFarmerDuration: number;
63
+ mktBps?: number;
64
+ deflationBps?: number;
65
+ dividendBps?: number;
66
+ lpBps?: number;
67
+ minimumShareBalance?: number;
68
+ buyTaxRate?: number;
69
+ sellTaxRate?: number;
70
+ dividendToken?: string;
71
+ commissionReceiver?: string;
72
+ vaultConfig?: TaxVaultConfig;
73
+ distribution?: {
74
+ mktBps: number;
75
+ deflationBps: number;
76
+ dividendBps: number;
77
+ lpBps: number;
78
+ minimumShareBalance?: number;
79
+ };
80
+ }, fallbackTaxRate?: number): NormalizedTaxLaunchConfig | undefined;
81
+ export declare function populateCreateTokenTransaction(params: PopulateCreateTokenParams): Promise<TransactionRequest>;