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
@@ -9,14 +9,10 @@
9
9
  * 所有函数只返回签名后的交易,由调用方决定如何提交
10
10
  */
11
11
  import { ethers, Interface, Contract } from 'ethers';
12
+ import { ZERO_ADDRESS, ZERO_BYTES32 } from '../../../core/constants/index.js';
12
13
  import { FLAP_PORTAL_ADDRESS, UNIFIED_DELEGATE_ADDRESS, UNIFIED_DELEGATE_ABI, FLAP_PORTAL_ABI, WOKB_ADDRESS, POTATOSWAP_V2_ROUTER, POTATOSWAP_V3_ROUTER, V3_FEE_TIERS, GAS_ESTIMATE, } from './constants.js';
13
14
  import { getCachedProvider, createWallet, signAuthorizationsWithNonces, batchGetNonces, buildEIP7702TransactionSync, calculateProfitAmountByUserType, getProfitRecipient, } from './utils.js';
14
15
  // ========================================
15
- // 常量
16
- // ========================================
17
- const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
18
- const ZERO_HASH = '0x0000000000000000000000000000000000000000000000000000000000000000';
19
- // ========================================
20
16
  // 辅助函数
21
17
  // ========================================
22
18
  /**
@@ -24,10 +20,14 @@ const ZERO_HASH = '0x00000000000000000000000000000000000000000000000000000000000
24
20
  */
25
21
  function lpFeeProfileToV3Fee(lpFeeProfile) {
26
22
  switch (lpFeeProfile) {
27
- case 0: return V3_FEE_TIERS.MEDIUM; // 0.25%
28
- case 1: return V3_FEE_TIERS.LOWEST; // 0.01%
29
- case 2: return V3_FEE_TIERS.HIGH; // 1%
30
- default: return V3_FEE_TIERS.MEDIUM;
23
+ case 0:
24
+ return V3_FEE_TIERS.MEDIUM; // 0.25%
25
+ case 1:
26
+ return V3_FEE_TIERS.LOWEST; // 0.01%
27
+ case 2:
28
+ return V3_FEE_TIERS.HIGH; // 1%
29
+ default:
30
+ return V3_FEE_TIERS.MEDIUM;
31
31
  }
32
32
  }
33
33
  /**
@@ -69,24 +69,28 @@ function encodeFlapBuyCall(tokenAddress, inputAmount, useV3OrV4 = false, extensi
69
69
  const portalIface = new Interface(FLAP_PORTAL_ABI);
70
70
  if (useV3OrV4) {
71
71
  // V3/V4 代币使用 swapExactInputV3(支持 extensionData)
72
- return portalIface.encodeFunctionData('swapExactInputV3', [{
72
+ return portalIface.encodeFunctionData('swapExactInputV3', [
73
+ {
73
74
  inputToken: ZERO_ADDRESS,
74
75
  outputToken: tokenAddress,
75
76
  inputAmount,
76
77
  minOutputAmount: 0n,
77
78
  permitData: '0x',
78
79
  extensionData,
79
- }]);
80
+ },
81
+ ]);
80
82
  }
81
83
  else {
82
84
  // V2 代币使用 swapExactInput
83
- return portalIface.encodeFunctionData('swapExactInput', [{
85
+ return portalIface.encodeFunctionData('swapExactInput', [
86
+ {
84
87
  inputToken: ZERO_ADDRESS,
85
88
  outputToken: tokenAddress,
86
89
  inputAmount,
87
90
  minOutputAmount: 0n,
88
91
  permitData: '0x',
89
- }]);
92
+ },
93
+ ]);
90
94
  }
91
95
  }
92
96
  /**
@@ -98,7 +102,8 @@ function encodeV3BuyCall(tokenAddress, fee, recipient, deadline, amountIn) {
98
102
  'function multicall(uint256 deadline, bytes[] data) external payable returns (bytes[])',
99
103
  'function refundETH() external payable',
100
104
  ]);
101
- const exactInputData = routerIface.encodeFunctionData('exactInputSingle', [{
105
+ const exactInputData = routerIface.encodeFunctionData('exactInputSingle', [
106
+ {
102
107
  tokenIn: WOKB_ADDRESS,
103
108
  tokenOut: tokenAddress,
104
109
  fee,
@@ -106,7 +111,8 @@ function encodeV3BuyCall(tokenAddress, fee, recipient, deadline, amountIn) {
106
111
  amountIn,
107
112
  amountOutMinimum: 0n,
108
113
  sqrtPriceLimitX96: 0n,
109
- }]);
114
+ },
115
+ ]);
110
116
  const refundEthData = routerIface.encodeFunctionData('refundETH', []);
111
117
  return routerIface.encodeFunctionData('multicall', [deadline, [exactInputData, refundEthData]]);
112
118
  }
@@ -160,22 +166,21 @@ export async function bundleCreateBuy(params) {
160
166
  const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
161
167
  // 创建钱包
162
168
  const devWallet = createWallet(devPrivateKey, provider);
163
- const buyerWallets = buyerPrivateKeys.map(pk => createWallet(pk, provider));
169
+ const buyerWallets = buyerPrivateKeys.map((pk) => createWallet(pk, provider));
164
170
  const allWallets = [devWallet, ...buyerWallets];
165
171
  const mainWallet = devWallet;
166
172
  // 计算买入金额和利润(单边模式:只有买入)
167
- const buyAmountsWei = buyAmounts.map(amt => ethers.parseEther(amt));
173
+ const buyAmountsWei = buyAmounts.map((amt) => ethers.parseEther(amt));
168
174
  const totalBuyAmount = buyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
169
175
  const profitAmount = calculateProfitAmountByUserType(totalBuyAmount, userType, false); // ✅ 支持 userType
170
176
  const profitRecipient = getProfitRecipient(config);
171
177
  // 并行获取 nonce 和 fee data
172
178
  const [nonces, feeData] = await Promise.all([
173
- batchGetNonces(allWallets.map(w => w.address), provider),
179
+ batchGetNonces(allWallets.map((w) => w.address), provider),
174
180
  provider.getFeeData(),
175
181
  ]);
176
182
  // 签名授权
177
- const authorizations = signAuthorizationsWithNonces(allWallets, nonces, delegateAddress, 0 // devWallet 是主钱包,索引 0
178
- );
183
+ const authorizations = signAuthorizationsWithNonces(allWallets, nonces, delegateAddress, 0);
179
184
  // 构建调用
180
185
  const calls = [];
181
186
  // 1. 利润转账(从开发者钱包)
@@ -199,14 +204,14 @@ export async function bundleCreateBuy(params) {
199
204
  symbol: tokenInfo.symbol,
200
205
  meta: tokenInfo.meta,
201
206
  dexThresh: params.dexThresh ?? 1,
202
- salt: params.salt ?? ZERO_HASH,
207
+ salt: params.salt ?? ZERO_BYTES32,
203
208
  taxRate: params.taxRate ?? 0,
204
209
  migratorType: params.migratorType ?? 0,
205
210
  quoteToken: params.quoteToken ?? ZERO_ADDRESS,
206
211
  quoteAmt: params.quoteAmt ?? 0n,
207
212
  beneficiary: params.beneficiary ?? devWallet.address,
208
213
  permitData: params.permitData ?? '0x',
209
- extensionID: params.extensionID ?? ZERO_HASH,
214
+ extensionID: params.extensionID ?? ZERO_BYTES32,
210
215
  extensionData: params.extensionData ?? '0x',
211
216
  dexId: params.dexId ?? 0,
212
217
  lpFeeProfile: params.lpFeeProfile ?? 0,
@@ -216,7 +221,7 @@ export async function bundleCreateBuy(params) {
216
221
  deflationBps: tv2.deflationBps,
217
222
  dividendBps: tv2.dividendBps,
218
223
  lpBps: tv2.lpBps,
219
- minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
224
+ minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
220
225
  });
221
226
  }
222
227
  else if (useV4) {
@@ -225,14 +230,14 @@ export async function bundleCreateBuy(params) {
225
230
  symbol: tokenInfo.symbol,
226
231
  meta: tokenInfo.meta,
227
232
  dexThresh: params.dexThresh ?? 1,
228
- salt: params.salt ?? ZERO_HASH,
233
+ salt: params.salt ?? ZERO_BYTES32,
229
234
  taxRate: params.taxRate ?? 0,
230
235
  migratorType: params.migratorType ?? 0,
231
236
  quoteToken: params.quoteToken ?? ZERO_ADDRESS,
232
237
  quoteAmt: params.quoteAmt ?? 0n,
233
238
  beneficiary: params.beneficiary ?? devWallet.address,
234
239
  permitData: params.permitData ?? '0x',
235
- extensionID: params.extensionID ?? ZERO_HASH,
240
+ extensionID: params.extensionID ?? ZERO_BYTES32,
236
241
  extensionData: params.extensionData ?? '0x',
237
242
  dexId: params.dexId ?? 0,
238
243
  lpFeeProfile: params.lpFeeProfile ?? 0,
@@ -244,7 +249,7 @@ export async function bundleCreateBuy(params) {
244
249
  symbol: tokenInfo.symbol,
245
250
  meta: tokenInfo.meta,
246
251
  dexThresh: params.dexThresh ?? 1,
247
- salt: params.salt ?? ZERO_HASH,
252
+ salt: params.salt ?? ZERO_BYTES32,
248
253
  taxRate: params.taxRate ?? 0,
249
254
  migratorType: params.migratorType ?? 0,
250
255
  quoteToken: params.quoteToken ?? ZERO_ADDRESS,
@@ -261,7 +266,7 @@ export async function bundleCreateBuy(params) {
261
266
  symbol: tokenInfo.symbol,
262
267
  meta: tokenInfo.meta,
263
268
  dexThresh: params.dexThresh ?? 1,
264
- salt: params.salt ?? ZERO_HASH,
269
+ salt: params.salt ?? ZERO_BYTES32,
265
270
  taxRate: params.taxRate ?? 0,
266
271
  migratorType: params.migratorType ?? 0,
267
272
  quoteToken: params.quoteToken ?? ZERO_ADDRESS,
@@ -271,11 +276,15 @@ export async function bundleCreateBuy(params) {
271
276
  });
272
277
  }
273
278
  // 使用 executeBatch 从 devWallet 调用 Portal.newToken
274
- const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
279
+ const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
280
+ [
281
+ {
275
282
  target: FLAP_PORTAL_ADDRESS,
276
283
  value: params.quoteAmt ?? 0n,
277
284
  data: createData,
278
- }]]);
285
+ },
286
+ ],
287
+ ]);
279
288
  calls.push({
280
289
  target: devWallet.address,
281
290
  allowFailure: false,
@@ -290,11 +299,15 @@ export async function bundleCreateBuy(params) {
290
299
  const buyAmount = buyAmountsWei[i];
291
300
  // 使用 executeBatch 从 buyerWallet 调用 Portal
292
301
  const buyData = encodeFlapBuyCall(tokenAddress, buyAmount, useV3OrV4, extensionData);
293
- const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
302
+ const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
303
+ [
304
+ {
294
305
  target: FLAP_PORTAL_ADDRESS,
295
306
  value: buyAmount,
296
307
  data: buyData,
297
- }]]);
308
+ },
309
+ ],
310
+ ]);
298
311
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
299
312
  calls.push({
300
313
  target: buyerWallet.address,
@@ -346,19 +359,19 @@ export async function bundleCreateToDex(params) {
346
359
  const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
347
360
  // 创建钱包
348
361
  const payerWallet = createWallet(payerPrivateKey, provider);
349
- const curveBuyerWallets = curveBuyerPrivateKeys.map(pk => createWallet(pk, provider));
350
- const dexBuyerWallets = dexBuyerPrivateKeys.map(pk => createWallet(pk, provider));
362
+ const curveBuyerWallets = curveBuyerPrivateKeys.map((pk) => createWallet(pk, provider));
363
+ const dexBuyerWallets = dexBuyerPrivateKeys.map((pk) => createWallet(pk, provider));
351
364
  // 合并所有钱包(去重)
352
365
  const allWalletsMap = new Map();
353
366
  allWalletsMap.set(payerWallet.address.toLowerCase(), payerWallet);
354
- curveBuyerWallets.forEach(w => allWalletsMap.set(w.address.toLowerCase(), w));
355
- dexBuyerWallets.forEach(w => allWalletsMap.set(w.address.toLowerCase(), w));
367
+ curveBuyerWallets.forEach((w) => allWalletsMap.set(w.address.toLowerCase(), w));
368
+ dexBuyerWallets.forEach((w) => allWalletsMap.set(w.address.toLowerCase(), w));
356
369
  const allWallets = Array.from(allWalletsMap.values());
357
370
  const mainWallet = payerWallet;
358
- const mainWalletIndex = allWallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
371
+ const mainWalletIndex = allWallets.findIndex((w) => w.address.toLowerCase() === mainWallet.address.toLowerCase());
359
372
  // 计算金额和利润(单边模式:只有买入)
360
- const curveBuyAmountsWei = curveBuyAmounts.map(amt => ethers.parseEther(amt));
361
- const dexBuyAmountsWei = dexBuyAmounts.map(amt => ethers.parseEther(amt));
373
+ const curveBuyAmountsWei = curveBuyAmounts.map((amt) => ethers.parseEther(amt));
374
+ const dexBuyAmountsWei = dexBuyAmounts.map((amt) => ethers.parseEther(amt));
362
375
  const totalCurveBuyAmount = curveBuyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
363
376
  const totalDexBuyAmount = dexBuyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
364
377
  const totalBuyAmount = totalCurveBuyAmount + totalDexBuyAmount;
@@ -366,7 +379,7 @@ export async function bundleCreateToDex(params) {
366
379
  const profitRecipient = getProfitRecipient(config);
367
380
  // 并行获取 nonce 和 fee data
368
381
  const [nonces, feeData] = await Promise.all([
369
- batchGetNonces(allWallets.map(w => w.address), provider),
382
+ batchGetNonces(allWallets.map((w) => w.address), provider),
370
383
  provider.getFeeData(),
371
384
  ]);
372
385
  // 签名授权
@@ -393,14 +406,14 @@ export async function bundleCreateToDex(params) {
393
406
  symbol: tokenInfo.symbol,
394
407
  meta: tokenInfo.meta,
395
408
  dexThresh: (params.dexThresh ?? 1) & 0xff,
396
- salt: params.salt ?? ZERO_HASH,
409
+ salt: params.salt ?? ZERO_BYTES32,
397
410
  taxRate: params.taxRate ?? 0,
398
411
  migratorType: params.migratorType ?? 0,
399
412
  quoteToken: params.quoteToken ?? ZERO_ADDRESS,
400
413
  quoteAmt: params.quoteAmt ?? 0n,
401
414
  beneficiary: params.beneficiary ?? payerWallet.address,
402
415
  permitData: params.permitData ?? '0x',
403
- extensionID: params.extensionID ?? ZERO_HASH,
416
+ extensionID: params.extensionID ?? ZERO_BYTES32,
404
417
  extensionData: params.extensionData ?? '0x',
405
418
  dexId: params.dexId ?? 0,
406
419
  lpFeeProfile: params.lpFeeProfile ?? 0,
@@ -410,7 +423,7 @@ export async function bundleCreateToDex(params) {
410
423
  deflationBps: tv2.deflationBps,
411
424
  dividendBps: tv2.dividendBps,
412
425
  lpBps: tv2.lpBps,
413
- minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
426
+ minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
414
427
  });
415
428
  }
416
429
  else {
@@ -419,24 +432,28 @@ export async function bundleCreateToDex(params) {
419
432
  symbol: tokenInfo.symbol,
420
433
  meta: tokenInfo.meta,
421
434
  dexThresh: (params.dexThresh ?? 1) & 0xff,
422
- salt: params.salt ?? ZERO_HASH,
435
+ salt: params.salt ?? ZERO_BYTES32,
423
436
  taxRate: params.taxRate ?? 0,
424
437
  migratorType: params.migratorType ?? 0,
425
438
  quoteToken: params.quoteToken ?? ZERO_ADDRESS,
426
439
  quoteAmt: params.quoteAmt ?? 0n,
427
440
  beneficiary: params.beneficiary ?? payerWallet.address,
428
441
  permitData: params.permitData ?? '0x',
429
- extensionID: params.extensionID ?? ZERO_HASH,
442
+ extensionID: params.extensionID ?? ZERO_BYTES32,
430
443
  extensionData: params.extensionData ?? '0x',
431
444
  dexId: params.dexId ?? 0,
432
445
  lpFeeProfile: params.lpFeeProfile ?? 0,
433
446
  });
434
447
  }
435
- const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
448
+ const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
449
+ [
450
+ {
436
451
  target: FLAP_PORTAL_ADDRESS,
437
452
  value: params.quoteAmt ?? 0n,
438
453
  data: createData,
439
- }]]);
454
+ },
455
+ ],
456
+ ]);
440
457
  calls.push({
441
458
  target: payerWallet.address,
442
459
  allowFailure: false,
@@ -449,11 +466,15 @@ export async function bundleCreateToDex(params) {
449
466
  const buyerWallet = curveBuyerWallets[i];
450
467
  const buyAmount = curveBuyAmountsWei[i];
451
468
  const buyData = encodeFlapBuyCall(tokenAddress, buyAmount, true, extensionData);
452
- const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
469
+ const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
470
+ [
471
+ {
453
472
  target: FLAP_PORTAL_ADDRESS,
454
473
  value: buyAmount,
455
474
  data: buyData,
456
- }]]);
475
+ },
476
+ ],
477
+ ]);
457
478
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
458
479
  calls.push({
459
480
  target: buyerWallet.address,
@@ -464,7 +485,7 @@ export async function bundleCreateToDex(params) {
464
485
  }
465
486
  // 4. 外盘买入(如果启用)
466
487
  if (enableDexBuy && dexBuyerWallets.length > 0) {
467
- const dexType = (params.lpFeeProfile !== undefined && params.lpFeeProfile >= 0) ? 'V3' : 'V2';
488
+ const dexType = params.lpFeeProfile !== undefined && params.lpFeeProfile >= 0 ? 'V3' : 'V2';
468
489
  const v3Fee = lpFeeProfileToV3Fee(params.lpFeeProfile);
469
490
  for (let i = 0; i < dexBuyerWallets.length; i++) {
470
491
  const buyerWallet = dexBuyerWallets[i];
@@ -480,11 +501,15 @@ export async function bundleCreateToDex(params) {
480
501
  swapData = encodeV2BuyCall(tokenAddress, buyerWallet.address, deadline);
481
502
  }
482
503
  // 使用 executeBatch 调用 DEX Router
483
- const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
504
+ const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
505
+ [
506
+ {
484
507
  target: routerAddress,
485
508
  value: buyAmount,
486
509
  data: swapData,
487
- }]]);
510
+ },
511
+ ],
512
+ ]);
488
513
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
489
514
  calls.push({
490
515
  target: buyerWallet.address,
@@ -498,16 +523,15 @@ export async function bundleCreateToDex(params) {
498
523
  const totalValue = params.quoteAmt ?? 0n;
499
524
  // ✅ 动态计算 Gas Limit:基础操作 + 毕业额外 gas
500
525
  // 毕业操作需要约 800 万 gas,加上其他操作的 gas
501
- const baseGas = GAS_ESTIMATE.BASE
502
- + BigInt(allWallets.length) * GAS_ESTIMATE.PER_AUTHORIZATION
503
- + BigInt(calls.length) * GAS_ESTIMATE.PER_CALL_BASE
504
- + BigInt(curveBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA // 内盘买入
505
- + BigInt(dexBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA // 外盘买入
506
- + GAS_ESTIMATE.CREATE_TOKEN // 创建代币
507
- + GAS_ESTIMATE.GRADUATE; // 毕业操作 (800万)
526
+ const baseGas = GAS_ESTIMATE.BASE +
527
+ BigInt(allWallets.length) * GAS_ESTIMATE.PER_AUTHORIZATION +
528
+ BigInt(calls.length) * GAS_ESTIMATE.PER_CALL_BASE +
529
+ BigInt(curveBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA + // 内盘买入
530
+ BigInt(dexBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA + // 外盘买入
531
+ GAS_ESTIMATE.CREATE_TOKEN + // 创建代币
532
+ GAS_ESTIMATE.GRADUATE; // 毕业操作 (800万)
508
533
  const dynamicGasLimit = BigInt(Math.ceil(Number(baseGas) * GAS_ESTIMATE.SAFETY_MULTIPLIER));
509
534
  const finalGasLimit = dynamicGasLimit > GAS_ESTIMATE.MAX ? GAS_ESTIMATE.MAX : dynamicGasLimit;
510
- console.log(`[bundleCreateToDex] 动态 Gas 计算: 授权=${allWallets.length}, 调用=${calls.length}, 内盘=${curveBuyerWallets.length}, 外盘=${dexBuyerWallets.length}, Gas=${finalGasLimit.toString()}`);
511
535
  const toDexConfig = {
512
536
  ...config,
513
537
  gasLimit: finalGasLimit, // ✅ 动态计算的 Gas Limit
@@ -548,7 +572,7 @@ export async function bundleGraduateBuy(params) {
548
572
  const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
549
573
  // 创建钱包
550
574
  const payerWallet = createWallet(payerPrivateKey, provider);
551
- const wallets = privateKeys.map(pk => createWallet(pk, provider));
575
+ const wallets = privateKeys.map((pk) => createWallet(pk, provider));
552
576
  // 获取代币状态
553
577
  const portalContract = new Contract(FLAP_PORTAL_ADDRESS, FLAP_PORTAL_ABI, provider);
554
578
  const tokenState = await portalContract.getTokenV7(tokenAddress);
@@ -557,12 +581,11 @@ export async function bundleGraduateBuy(params) {
557
581
  const k = tokenState[6];
558
582
  const lpFeeProfile = Number(tokenState[15]);
559
583
  // 计算毕业容量
560
- const graduationReserveWei = (h * k) / (10n ** 18n);
584
+ const graduationReserveWei = (h * k) / 10n ** 18n;
561
585
  const poolReserveOkb = Number(ethers.formatEther(reserve));
562
586
  const graduateCapacity = graduationAmount ?? Number(ethers.formatEther(graduationReserveWei));
563
587
  const remainingToGraduate = Math.max(0, graduateCapacity - poolReserveOkb);
564
588
  const remainingToGraduateWei = ethers.parseEther(remainingToGraduate.toFixed(18));
565
- console.log(`[GraduateBuy] Pool Reserve: ${poolReserveOkb.toFixed(4)} OKB, Graduation: ${graduateCapacity.toFixed(4)} OKB, Remaining: ${remainingToGraduate.toFixed(4)} OKB`);
566
589
  // 计算每个钱包的金额
567
590
  const normalizedWalletAmounts = {};
568
591
  if (walletAmounts) {
@@ -590,8 +613,8 @@ export async function bundleGraduateBuy(params) {
590
613
  const dexBuyers = [];
591
614
  const hasFrontendGrouping = curveAddresses && curveAddresses.length > 0;
592
615
  if (hasFrontendGrouping) {
593
- const curveSet = new Set(curveAddresses.map(a => a.toLowerCase()));
594
- const dexSet = dexAddresses ? new Set(dexAddresses.map(a => a.toLowerCase())) : new Set();
616
+ const curveSet = new Set(curveAddresses.map((a) => a.toLowerCase()));
617
+ const dexSet = dexAddresses ? new Set(dexAddresses.map((a) => a.toLowerCase())) : new Set();
595
618
  for (let i = 0; i < wallets.length; i++) {
596
619
  const wallet = wallets[i];
597
620
  const ownerAddr = wallet.address.toLowerCase();
@@ -626,15 +649,14 @@ export async function bundleGraduateBuy(params) {
626
649
  }
627
650
  }
628
651
  }
629
- console.log(`[GraduateBuy] Curve buyers: ${curveBuyers.length}, DEX buyers: ${dexBuyers.length}`);
630
652
  // 合并所有参与的钱包
631
653
  const allWalletsMap = new Map();
632
654
  allWalletsMap.set(payerWallet.address.toLowerCase(), payerWallet);
633
- curveBuyers.forEach(b => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
634
- dexBuyers.forEach(b => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
655
+ curveBuyers.forEach((b) => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
656
+ dexBuyers.forEach((b) => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
635
657
  const allWallets = Array.from(allWalletsMap.values());
636
658
  const mainWallet = payerWallet;
637
- const mainWalletIndex = allWallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
659
+ const mainWalletIndex = allWallets.findIndex((w) => w.address.toLowerCase() === mainWallet.address.toLowerCase());
638
660
  // 计算金额和利润(单边模式:只有买入)
639
661
  const curveTotalWei = curveBuyers.reduce((sum, b) => sum + b.amount, 0n);
640
662
  const dexTotalWei = dexBuyers.reduce((sum, b) => sum + b.amount, 0n);
@@ -643,7 +665,7 @@ export async function bundleGraduateBuy(params) {
643
665
  const profitRecipient = getProfitRecipient(config);
644
666
  // 并行获取 nonce 和 fee data
645
667
  const [nonces, feeData] = await Promise.all([
646
- batchGetNonces(allWallets.map(w => w.address), provider),
668
+ batchGetNonces(allWallets.map((w) => w.address), provider),
647
669
  provider.getFeeData(),
648
670
  ]);
649
671
  // 签名授权
@@ -661,11 +683,15 @@ export async function bundleGraduateBuy(params) {
661
683
  for (let i = 0; i < curveBuyers.length; i++) {
662
684
  const { wallet, amount } = curveBuyers[i];
663
685
  const buyData = encodeFlapBuyCall(tokenAddress, amount, useV3OrV4, extensionData);
664
- const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
686
+ const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
687
+ [
688
+ {
665
689
  target: FLAP_PORTAL_ADDRESS,
666
690
  value: amount,
667
691
  data: buyData,
668
- }]]);
692
+ },
693
+ ],
694
+ ]);
669
695
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
670
696
  calls.push({
671
697
  target: wallet.address,
@@ -676,7 +702,7 @@ export async function bundleGraduateBuy(params) {
676
702
  }
677
703
  // 3. 外盘买入
678
704
  if (enableDexBuy && dexBuyers.length > 0) {
679
- const dexType = (lpFeeProfile >= 0) ? 'V3' : 'V2';
705
+ const dexType = lpFeeProfile >= 0 ? 'V3' : 'V2';
680
706
  const v3Fee = lpFeeProfileToV3Fee(lpFeeProfile);
681
707
  for (let i = 0; i < dexBuyers.length; i++) {
682
708
  const { wallet, amount } = dexBuyers[i];
@@ -690,11 +716,15 @@ export async function bundleGraduateBuy(params) {
690
716
  routerAddress = POTATOSWAP_V2_ROUTER;
691
717
  swapData = encodeV2BuyCall(tokenAddress, wallet.address, deadline);
692
718
  }
693
- const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
719
+ const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
720
+ [
721
+ {
694
722
  target: routerAddress,
695
723
  value: amount,
696
724
  data: swapData,
697
- }]]);
725
+ },
726
+ ],
727
+ ]);
698
728
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
699
729
  calls.push({
700
730
  target: wallet.address,
@@ -6,12 +6,7 @@
6
6
  *
7
7
  * 只生成签名,由调用方决定如何提交
8
8
  */
9
- import type { BundleSellParams as BaseBundleSellParams, BundleSellResult } from './types.js';
10
- import { type UserType } from './utils.js';
11
- export interface BundleSellParams extends BaseBundleSellParams {
12
- /** 用户类型(影响利润率) */
13
- userType?: UserType;
14
- }
9
+ import type { BundleSellParams, BundleSellResult } from './types.js';
15
10
  /**
16
11
  * 批量卖出 - 生成签名后的交易
17
12
  *
@@ -49,4 +44,5 @@ export interface BundleSellParams extends BaseBundleSellParams {
49
44
  * fee: 2500,
50
45
  * });
51
46
  */
47
+ export type { BundleSellParams } from './types.js';
52
48
  export declare function bundleSell(params: BundleSellParams): Promise<BundleSellResult>;