four-flap-meme-sdk 2.2.2 → 2.2.4

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 (472) hide show
  1. package/README.en.md +41 -6
  2. package/README.md +31 -0
  3. package/README.zh-CN.md +41 -6
  4. package/dist/__tests__/subpath-exports.test.d.ts +1 -0
  5. package/dist/__tests__/subpath-exports.test.js +64 -0
  6. package/dist/abis/common.d.ts +85 -0
  7. package/dist/abis/common.js +264 -0
  8. package/dist/abis/contracts/TaxToken.json +969 -0
  9. package/dist/abis/contracts/TokenManager2.json +136 -0
  10. package/dist/abis/contracts/index.d.ts +5 -0
  11. package/dist/abis/contracts/index.js +5 -0
  12. package/dist/abis/flap/index.d.ts +3 -0
  13. package/dist/abis/flap/index.js +3 -0
  14. package/dist/abis/flap/portal-events.d.ts +6 -0
  15. package/dist/abis/flap/portal-events.js +17 -0
  16. package/dist/abis/flap/portal.d.ts +6 -0
  17. package/dist/abis/flap/portal.js +37 -0
  18. package/dist/abis/flap/vault.d.ts +171 -0
  19. package/dist/abis/flap/vault.js +91 -0
  20. package/dist/abis/index.d.ts +8 -0
  21. package/dist/abis/index.js +11 -0
  22. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
  23. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  24. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
  25. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  26. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  27. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  28. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  29. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  30. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  31. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  32. package/dist/bundle-core/config-helpers.d.ts +36 -0
  33. package/dist/bundle-core/config-helpers.js +57 -0
  34. package/dist/bundle-core/errors.d.ts +50 -0
  35. package/dist/bundle-core/errors.js +35 -0
  36. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  37. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  38. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  39. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  40. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  41. package/dist/bundle-core/four-meme/core.js +515 -0
  42. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  43. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  44. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  45. package/dist/bundle-core/four-meme/private.js +465 -0
  46. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  47. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  48. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  49. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  50. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  51. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  52. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  53. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  54. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  55. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  56. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  57. package/dist/bundle-core/four-meme/swap.js +505 -0
  58. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  59. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  60. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  61. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  62. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  63. package/dist/bundle-core/four-meme/types/index.js +1 -0
  64. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  65. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  66. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  67. package/dist/bundle-core/four-meme/types.js +1 -0
  68. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  69. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  70. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  71. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  72. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  73. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  74. package/dist/bundle-core/index.d.ts +8 -0
  75. package/dist/bundle-core/index.js +8 -0
  76. package/dist/bundle-core/internal.d.ts +21 -0
  77. package/dist/bundle-core/internal.js +182 -0
  78. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  79. package/dist/bundle-core/sign-context-helpers.js +67 -0
  80. package/dist/bundle-core/submit.d.ts +293 -0
  81. package/dist/bundle-core/submit.js +727 -0
  82. package/dist/bundle-core/types/index.d.ts +8 -0
  83. package/dist/bundle-core/types/index.js +1 -0
  84. package/dist/bundle-core/types.d.ts +1 -0
  85. package/dist/bundle-core/types.js +1 -0
  86. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  87. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  88. package/dist/chains/bsc/four/config.d.ts +5 -67
  89. package/dist/chains/bsc/four/config.js +2 -114
  90. package/dist/chains/bsc/four/core.d.ts +1 -4
  91. package/dist/chains/bsc/four/core.js +1 -592
  92. package/dist/chains/bsc/four/index.d.ts +6 -6
  93. package/dist/chains/bsc/four/index.js +6 -6
  94. package/dist/chains/bsc/four/internal.d.ts +2 -46
  95. package/dist/chains/bsc/four/internal.js +2 -239
  96. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  97. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  98. package/dist/chains/bsc/four/private.d.ts +1 -27
  99. package/dist/chains/bsc/four/private.js +1 -477
  100. package/dist/chains/bsc/four/submit.d.ts +2 -315
  101. package/dist/chains/bsc/four/submit.js +2 -752
  102. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  103. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  104. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  105. package/dist/chains/bsc/four/swap-internal.js +1 -18
  106. package/dist/chains/bsc/four/swap.d.ts +2 -144
  107. package/dist/chains/bsc/four/swap.js +2 -766
  108. package/dist/chains/bsc/four/types.d.ts +1 -476
  109. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  110. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  111. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  112. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  113. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  114. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  115. package/dist/chains/bsc/four/utils.d.ts +5 -18
  116. package/dist/chains/bsc/four/utils.js +5 -1552
  117. package/dist/chains/bsc/iro.d.ts +5 -0
  118. package/dist/chains/bsc/iro.js +4 -0
  119. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  120. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  121. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  122. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -212
  123. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  124. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  125. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  126. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  127. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  128. package/dist/chains/bsc/pancake/index.js +1 -3
  129. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  130. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  131. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  132. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  133. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  134. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  135. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  136. package/dist/chains/eni/batch-router/transfer.js +55 -25
  137. package/dist/chains/eni/batch-router/utils.js +32 -6
  138. package/dist/chains/eni/bundler/sign.js +5 -6
  139. package/dist/chains/eni/bundler/submit.js +1 -4
  140. package/dist/chains/eni/constants.js +1 -1
  141. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  142. package/dist/chains/eni/flat-aliases.js +8 -0
  143. package/dist/chains/eni/index.d.ts +2 -1
  144. package/dist/chains/eni/index.js +1 -0
  145. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  146. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  147. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  148. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  149. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
  150. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  151. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  152. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  153. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  154. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
  155. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  156. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  157. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  158. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  159. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  160. package/dist/chains/eni/platforms/iro/index.js +4 -4
  161. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  162. package/dist/chains/eni/platforms/iro/token.js +107 -31
  163. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  164. package/dist/chains/eni/submit.d.ts +43 -0
  165. package/dist/chains/eni/submit.js +286 -0
  166. package/dist/chains/index.d.ts +13 -0
  167. package/dist/chains/index.js +13 -0
  168. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  169. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  170. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  171. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  172. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -59
  173. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  174. package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
  175. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  176. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
  177. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  178. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  179. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  180. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  181. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  182. package/dist/chains/xlayer/eip7702/index.js +28 -81
  183. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  184. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  185. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  186. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
  187. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  188. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  189. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  190. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  191. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  192. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  193. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  194. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  195. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  196. package/dist/chains/xlayer/eoa/constants.js +1 -1
  197. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  198. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  199. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  200. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  201. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  202. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  203. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  204. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  205. package/dist/chains/xlayer/eoa/index.js +8 -23
  206. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  207. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  208. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  209. package/dist/chains/xlayer/eoa/types.js +1 -3
  210. package/dist/chains/xlayer/index.d.ts +3 -2
  211. package/dist/chains/xlayer/index.js +4 -7
  212. package/dist/contracts/helper3.d.ts +20 -5
  213. package/dist/contracts/helper3.js +56 -20
  214. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  215. package/dist/contracts/tm-bundle-helpers.js +72 -0
  216. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  217. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
  218. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
  219. package/dist/contracts/tm-bundle-merkle/config.js +2 -114
  220. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  221. package/dist/contracts/tm-bundle-merkle/core.js +1 -591
  222. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  223. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  224. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
  225. package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
  226. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  227. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
  228. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  229. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  230. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  231. package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
  232. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  233. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
  234. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  235. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  236. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  237. package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
  238. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  239. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  240. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  241. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  242. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  243. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  244. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  245. package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
  246. package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
  247. package/dist/contracts/tm-bundle.d.ts +3 -51
  248. package/dist/contracts/tm-bundle.js +108 -177
  249. package/dist/contracts/tm.d.ts +3 -2
  250. package/dist/contracts/tm.js +37 -32
  251. package/dist/contracts/tm1.js +9 -4
  252. package/dist/contracts/tm2.js +9 -4
  253. package/dist/dex/direct-router-helpers.d.ts +264 -0
  254. package/dist/dex/direct-router-helpers.js +539 -0
  255. package/dist/dex/direct-router.d.ts +3 -125
  256. package/dist/dex/direct-router.js +237 -666
  257. package/dist/dex/types.d.ts +81 -0
  258. package/dist/dex/types.js +1 -0
  259. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  260. package/dist/exports/root-bundle-and-tooling.js +30 -0
  261. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  262. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  263. package/dist/exports/root-foundations.d.ts +35 -0
  264. package/dist/exports/root-foundations.js +70 -0
  265. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  266. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  267. package/dist/flap/index.d.ts +10 -0
  268. package/dist/flap/index.js +8 -0
  269. package/dist/flows/create.d.ts +2 -1
  270. package/dist/flows/create.js +6 -6
  271. package/dist/flows/index.d.ts +1 -0
  272. package/dist/flows/index.js +1 -0
  273. package/dist/index.d.ts +20 -85
  274. package/dist/index.js +20 -215
  275. package/dist/merkle/index.d.ts +12 -0
  276. package/dist/merkle/index.js +11 -0
  277. package/dist/shared/abis/common.d.ts +2 -83
  278. package/dist/shared/abis/common.js +2 -252
  279. package/dist/shared/abis/index.d.ts +5 -6
  280. package/dist/shared/abis/index.js +5 -7
  281. package/dist/shared/clients/blockrazor.js +39 -25
  282. package/dist/shared/clients/club48.d.ts +2 -2
  283. package/dist/shared/clients/club48.js +34 -29
  284. package/dist/shared/clients/emitservice.js +2 -0
  285. package/dist/shared/clients/four.d.ts +21 -6
  286. package/dist/shared/clients/four.js +29 -24
  287. package/dist/shared/clients/index.d.ts +8 -0
  288. package/dist/shared/clients/index.js +8 -0
  289. package/dist/shared/clients/merkle.js +27 -34
  290. package/dist/shared/constants/addresses.d.ts +1 -1
  291. package/dist/shared/constants/addresses.js +11 -2
  292. package/dist/shared/constants/chains.d.ts +1 -1
  293. package/dist/shared/constants/chains.js +1 -1
  294. package/dist/shared/constants/gas.d.ts +1 -1
  295. package/dist/shared/constants/gas.js +2 -6
  296. package/dist/shared/constants/index.d.ts +3 -0
  297. package/dist/shared/constants/index.js +1 -0
  298. package/dist/shared/constants/quote.d.ts +30 -0
  299. package/dist/shared/constants/quote.js +37 -0
  300. package/dist/shared/flap/abi.js +1 -1
  301. package/dist/shared/flap/constants.d.ts +1 -2
  302. package/dist/shared/flap/constants.js +2 -3
  303. package/dist/shared/flap/curve.js +3 -0
  304. package/dist/shared/flap/errors.d.ts +1 -4
  305. package/dist/shared/flap/errors.js +20 -1
  306. package/dist/shared/flap/index.d.ts +5 -4
  307. package/dist/shared/flap/index.js +5 -4
  308. package/dist/shared/flap/meta.d.ts +22 -18
  309. package/dist/shared/flap/meta.js +12 -17
  310. package/dist/shared/flap/permit.js +5 -2
  311. package/dist/shared/flap/pinata.d.ts +22 -6
  312. package/dist/shared/flap/pinata.js +21 -26
  313. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  314. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  315. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  316. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  317. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  318. package/dist/shared/flap/portal-bundle-merkle/core.js +96 -277
  319. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +7 -2
  320. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +107 -206
  321. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  322. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  323. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  324. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  325. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  326. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  327. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  328. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  329. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  330. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  331. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  332. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  333. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  334. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +88 -9
  335. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  336. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  337. package/dist/shared/flap/portal-bundle.js +55 -56
  338. package/dist/shared/flap/portal-create-token.d.ts +80 -0
  339. package/dist/shared/flap/portal-create-token.js +257 -0
  340. package/dist/shared/flap/portal.d.ts +14 -3
  341. package/dist/shared/flap/portal.js +50 -25
  342. package/dist/shared/flap/vanity.d.ts +1 -5
  343. package/dist/shared/flap/vanity.js +6 -17
  344. package/dist/shared/flap/vault.d.ts +17 -124
  345. package/dist/shared/flap/vault.js +67 -148
  346. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  347. package/dist/shared/foundation/dex/v3-path.js +35 -0
  348. package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
  349. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  350. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  351. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  352. package/dist/shared/foundation/index.d.ts +13 -0
  353. package/dist/shared/foundation/index.js +12 -0
  354. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  355. package/dist/shared/foundation/nonce/nonce-manager.js +183 -0
  356. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  357. package/dist/shared/foundation/normalize-unknown.js +29 -0
  358. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  359. package/dist/shared/foundation/sdk-logger.js +12 -0
  360. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  361. package/dist/shared/foundation/tx/build-request.js +25 -0
  362. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  363. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  364. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  365. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  366. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  367. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  368. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  369. package/dist/shared/foundation/types/erc20.js +1 -0
  370. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  371. package/dist/shared/foundation/types/holders-maker.js +1 -0
  372. package/dist/shared/foundation/types/index.d.ts +7 -0
  373. package/dist/shared/foundation/types/index.js +1 -0
  374. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  375. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  376. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  377. package/dist/shared/foundation/types/multicall.js +1 -0
  378. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  379. package/dist/shared/foundation/types/private-sale.js +1 -0
  380. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  381. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  382. package/dist/shared/four/tax-token.d.ts +1 -1
  383. package/dist/shared/four/tax-token.js +27 -7
  384. package/dist/shared/index.d.ts +6 -0
  385. package/dist/shared/index.js +4 -0
  386. package/dist/types/errors.d.ts +27 -0
  387. package/dist/types/errors.js +34 -0
  388. package/dist/utils/airdrop-sweep.d.ts +4 -76
  389. package/dist/utils/airdrop-sweep.js +42 -55
  390. package/dist/utils/bundle-helpers.d.ts +9 -243
  391. package/dist/utils/bundle-helpers.js +10 -584
  392. package/dist/utils/constants.d.ts +5 -61
  393. package/dist/utils/constants.js +5 -80
  394. package/dist/utils/contract-factory.d.ts +2 -4
  395. package/dist/utils/contract-factory.js +25 -18
  396. package/dist/utils/erc20.d.ts +7 -89
  397. package/dist/utils/erc20.js +94 -125
  398. package/dist/utils/errors.d.ts +12 -1
  399. package/dist/utils/errors.js +60 -1
  400. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  401. package/dist/utils/holders-maker/addresses.js +15 -0
  402. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  403. package/dist/utils/holders-maker/buy-tx.js +278 -0
  404. package/dist/utils/holders-maker/constants.d.ts +6 -0
  405. package/dist/utils/holders-maker/constants.js +7 -0
  406. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  407. package/dist/utils/holders-maker/disperse.js +90 -0
  408. package/dist/utils/holders-maker/routing.d.ts +4 -0
  409. package/dist/utils/holders-maker/routing.js +45 -0
  410. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  411. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  412. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  413. package/dist/utils/holders-maker-helpers.js +9 -0
  414. package/dist/utils/holders-maker.d.ts +2 -138
  415. package/dist/utils/holders-maker.js +26 -661
  416. package/dist/utils/hop-chains.d.ts +35 -0
  417. package/dist/utils/hop-chains.js +215 -0
  418. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  419. package/dist/utils/lp-inspect-helpers.js +109 -0
  420. package/dist/utils/lp-inspect.d.ts +2 -112
  421. package/dist/utils/lp-inspect.js +73 -223
  422. package/dist/utils/mpcExclusive.d.ts +2 -5
  423. package/dist/utils/mpcExclusive.js +4 -3
  424. package/dist/utils/private-sale.d.ts +2 -58
  425. package/dist/utils/private-sale.js +4 -15
  426. package/dist/utils/provider-factory.d.ts +4 -0
  427. package/dist/utils/provider-factory.js +10 -0
  428. package/dist/utils/quote-helpers.d.ts +4 -45
  429. package/dist/utils/quote-helpers.js +17 -74
  430. package/dist/utils/stealth-transfer.d.ts +2 -28
  431. package/dist/utils/stealth-transfer.js +31 -15
  432. package/dist/utils/swap-helpers.d.ts +2 -15
  433. package/dist/utils/swap-helpers.js +6 -11
  434. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  435. package/dist/utils/types/airdrop-sweep.js +1 -0
  436. package/dist/utils/types/contract-factory.d.ts +1 -0
  437. package/dist/utils/types/contract-factory.js +1 -0
  438. package/dist/utils/types/erc20.d.ts +1 -0
  439. package/dist/utils/types/erc20.js +1 -0
  440. package/dist/utils/types/errors.d.ts +1 -0
  441. package/dist/utils/types/errors.js +1 -0
  442. package/dist/utils/types/holders-maker.d.ts +1 -0
  443. package/dist/utils/types/holders-maker.js +1 -0
  444. package/dist/utils/types/hop-chains.d.ts +8 -0
  445. package/dist/utils/types/hop-chains.js +1 -0
  446. package/dist/utils/types/index.d.ts +13 -0
  447. package/dist/utils/types/index.js +1 -0
  448. package/dist/utils/types/lp-inspect.d.ts +1 -0
  449. package/dist/utils/types/lp-inspect.js +1 -0
  450. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  451. package/dist/utils/types/mpc-exclusive.js +1 -0
  452. package/dist/utils/types/private-sale.d.ts +1 -0
  453. package/dist/utils/types/private-sale.js +1 -0
  454. package/dist/utils/types/quote-helpers.d.ts +1 -0
  455. package/dist/utils/types/quote-helpers.js +1 -0
  456. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  457. package/dist/utils/types/stealth-transfer.js +1 -0
  458. package/dist/utils/types/wallet.d.ts +25 -0
  459. package/dist/utils/types/wallet.js +1 -0
  460. package/dist/utils/wallet.d.ts +2 -25
  461. package/dist/utils/wallet.js +13 -10
  462. package/dist/vanity/index.d.ts +5 -0
  463. package/dist/vanity/index.js +5 -0
  464. package/package.json +160 -4
  465. package/src/abis/contracts/TaxToken.json +969 -0
  466. package/src/abis/contracts/TokenManager.json +836 -0
  467. package/src/abis/contracts/TokenManager2.json +136 -0
  468. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  469. package/dist/shared/abis/TaxToken.json +0 -105
  470. package/dist/shared/abis/TokenManager2.json +0 -60
  471. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  472. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
@@ -24,10 +24,14 @@ const ZERO_HASH = '0x00000000000000000000000000000000000000000000000000000000000
24
24
  */
25
25
  function lpFeeProfileToV3Fee(lpFeeProfile) {
26
26
  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;
27
+ case 0:
28
+ return V3_FEE_TIERS.MEDIUM; // 0.25%
29
+ case 1:
30
+ return V3_FEE_TIERS.LOWEST; // 0.01%
31
+ case 2:
32
+ return V3_FEE_TIERS.HIGH; // 1%
33
+ default:
34
+ return V3_FEE_TIERS.MEDIUM;
31
35
  }
32
36
  }
33
37
  /**
@@ -69,24 +73,28 @@ function encodeFlapBuyCall(tokenAddress, inputAmount, useV3OrV4 = false, extensi
69
73
  const portalIface = new Interface(FLAP_PORTAL_ABI);
70
74
  if (useV3OrV4) {
71
75
  // V3/V4 代币使用 swapExactInputV3(支持 extensionData)
72
- return portalIface.encodeFunctionData('swapExactInputV3', [{
76
+ return portalIface.encodeFunctionData('swapExactInputV3', [
77
+ {
73
78
  inputToken: ZERO_ADDRESS,
74
79
  outputToken: tokenAddress,
75
80
  inputAmount,
76
81
  minOutputAmount: 0n,
77
82
  permitData: '0x',
78
83
  extensionData,
79
- }]);
84
+ },
85
+ ]);
80
86
  }
81
87
  else {
82
88
  // V2 代币使用 swapExactInput
83
- return portalIface.encodeFunctionData('swapExactInput', [{
89
+ return portalIface.encodeFunctionData('swapExactInput', [
90
+ {
84
91
  inputToken: ZERO_ADDRESS,
85
92
  outputToken: tokenAddress,
86
93
  inputAmount,
87
94
  minOutputAmount: 0n,
88
95
  permitData: '0x',
89
- }]);
96
+ },
97
+ ]);
90
98
  }
91
99
  }
92
100
  /**
@@ -98,7 +106,8 @@ function encodeV3BuyCall(tokenAddress, fee, recipient, deadline, amountIn) {
98
106
  'function multicall(uint256 deadline, bytes[] data) external payable returns (bytes[])',
99
107
  'function refundETH() external payable',
100
108
  ]);
101
- const exactInputData = routerIface.encodeFunctionData('exactInputSingle', [{
109
+ const exactInputData = routerIface.encodeFunctionData('exactInputSingle', [
110
+ {
102
111
  tokenIn: WOKB_ADDRESS,
103
112
  tokenOut: tokenAddress,
104
113
  fee,
@@ -106,7 +115,8 @@ function encodeV3BuyCall(tokenAddress, fee, recipient, deadline, amountIn) {
106
115
  amountIn,
107
116
  amountOutMinimum: 0n,
108
117
  sqrtPriceLimitX96: 0n,
109
- }]);
118
+ },
119
+ ]);
110
120
  const refundEthData = routerIface.encodeFunctionData('refundETH', []);
111
121
  return routerIface.encodeFunctionData('multicall', [deadline, [exactInputData, refundEthData]]);
112
122
  }
@@ -160,22 +170,21 @@ export async function bundleCreateBuy(params) {
160
170
  const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
161
171
  // 创建钱包
162
172
  const devWallet = createWallet(devPrivateKey, provider);
163
- const buyerWallets = buyerPrivateKeys.map(pk => createWallet(pk, provider));
173
+ const buyerWallets = buyerPrivateKeys.map((pk) => createWallet(pk, provider));
164
174
  const allWallets = [devWallet, ...buyerWallets];
165
175
  const mainWallet = devWallet;
166
176
  // 计算买入金额和利润(单边模式:只有买入)
167
- const buyAmountsWei = buyAmounts.map(amt => ethers.parseEther(amt));
177
+ const buyAmountsWei = buyAmounts.map((amt) => ethers.parseEther(amt));
168
178
  const totalBuyAmount = buyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
169
179
  const profitAmount = calculateProfitAmountByUserType(totalBuyAmount, userType, false); // ✅ 支持 userType
170
180
  const profitRecipient = getProfitRecipient(config);
171
181
  // 并行获取 nonce 和 fee data
172
182
  const [nonces, feeData] = await Promise.all([
173
- batchGetNonces(allWallets.map(w => w.address), provider),
183
+ batchGetNonces(allWallets.map((w) => w.address), provider),
174
184
  provider.getFeeData(),
175
185
  ]);
176
186
  // 签名授权
177
- const authorizations = signAuthorizationsWithNonces(allWallets, nonces, delegateAddress, 0 // devWallet 是主钱包,索引 0
178
- );
187
+ const authorizations = signAuthorizationsWithNonces(allWallets, nonces, delegateAddress, 0);
179
188
  // 构建调用
180
189
  const calls = [];
181
190
  // 1. 利润转账(从开发者钱包)
@@ -216,7 +225,7 @@ export async function bundleCreateBuy(params) {
216
225
  deflationBps: tv2.deflationBps,
217
226
  dividendBps: tv2.dividendBps,
218
227
  lpBps: tv2.lpBps,
219
- minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
228
+ minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
220
229
  });
221
230
  }
222
231
  else if (useV4) {
@@ -271,11 +280,15 @@ export async function bundleCreateBuy(params) {
271
280
  });
272
281
  }
273
282
  // 使用 executeBatch 从 devWallet 调用 Portal.newToken
274
- const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
283
+ const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
284
+ [
285
+ {
275
286
  target: FLAP_PORTAL_ADDRESS,
276
287
  value: params.quoteAmt ?? 0n,
277
288
  data: createData,
278
- }]]);
289
+ },
290
+ ],
291
+ ]);
279
292
  calls.push({
280
293
  target: devWallet.address,
281
294
  allowFailure: false,
@@ -290,11 +303,15 @@ export async function bundleCreateBuy(params) {
290
303
  const buyAmount = buyAmountsWei[i];
291
304
  // 使用 executeBatch 从 buyerWallet 调用 Portal
292
305
  const buyData = encodeFlapBuyCall(tokenAddress, buyAmount, useV3OrV4, extensionData);
293
- const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
306
+ const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
307
+ [
308
+ {
294
309
  target: FLAP_PORTAL_ADDRESS,
295
310
  value: buyAmount,
296
311
  data: buyData,
297
- }]]);
312
+ },
313
+ ],
314
+ ]);
298
315
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
299
316
  calls.push({
300
317
  target: buyerWallet.address,
@@ -346,19 +363,19 @@ export async function bundleCreateToDex(params) {
346
363
  const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
347
364
  // 创建钱包
348
365
  const payerWallet = createWallet(payerPrivateKey, provider);
349
- const curveBuyerWallets = curveBuyerPrivateKeys.map(pk => createWallet(pk, provider));
350
- const dexBuyerWallets = dexBuyerPrivateKeys.map(pk => createWallet(pk, provider));
366
+ const curveBuyerWallets = curveBuyerPrivateKeys.map((pk) => createWallet(pk, provider));
367
+ const dexBuyerWallets = dexBuyerPrivateKeys.map((pk) => createWallet(pk, provider));
351
368
  // 合并所有钱包(去重)
352
369
  const allWalletsMap = new Map();
353
370
  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));
371
+ curveBuyerWallets.forEach((w) => allWalletsMap.set(w.address.toLowerCase(), w));
372
+ dexBuyerWallets.forEach((w) => allWalletsMap.set(w.address.toLowerCase(), w));
356
373
  const allWallets = Array.from(allWalletsMap.values());
357
374
  const mainWallet = payerWallet;
358
- const mainWalletIndex = allWallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
375
+ const mainWalletIndex = allWallets.findIndex((w) => w.address.toLowerCase() === mainWallet.address.toLowerCase());
359
376
  // 计算金额和利润(单边模式:只有买入)
360
- const curveBuyAmountsWei = curveBuyAmounts.map(amt => ethers.parseEther(amt));
361
- const dexBuyAmountsWei = dexBuyAmounts.map(amt => ethers.parseEther(amt));
377
+ const curveBuyAmountsWei = curveBuyAmounts.map((amt) => ethers.parseEther(amt));
378
+ const dexBuyAmountsWei = dexBuyAmounts.map((amt) => ethers.parseEther(amt));
362
379
  const totalCurveBuyAmount = curveBuyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
363
380
  const totalDexBuyAmount = dexBuyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
364
381
  const totalBuyAmount = totalCurveBuyAmount + totalDexBuyAmount;
@@ -366,7 +383,7 @@ export async function bundleCreateToDex(params) {
366
383
  const profitRecipient = getProfitRecipient(config);
367
384
  // 并行获取 nonce 和 fee data
368
385
  const [nonces, feeData] = await Promise.all([
369
- batchGetNonces(allWallets.map(w => w.address), provider),
386
+ batchGetNonces(allWallets.map((w) => w.address), provider),
370
387
  provider.getFeeData(),
371
388
  ]);
372
389
  // 签名授权
@@ -410,7 +427,7 @@ export async function bundleCreateToDex(params) {
410
427
  deflationBps: tv2.deflationBps,
411
428
  dividendBps: tv2.dividendBps,
412
429
  lpBps: tv2.lpBps,
413
- minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
430
+ minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
414
431
  });
415
432
  }
416
433
  else {
@@ -432,11 +449,15 @@ export async function bundleCreateToDex(params) {
432
449
  lpFeeProfile: params.lpFeeProfile ?? 0,
433
450
  });
434
451
  }
435
- const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
452
+ const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
453
+ [
454
+ {
436
455
  target: FLAP_PORTAL_ADDRESS,
437
456
  value: params.quoteAmt ?? 0n,
438
457
  data: createData,
439
- }]]);
458
+ },
459
+ ],
460
+ ]);
440
461
  calls.push({
441
462
  target: payerWallet.address,
442
463
  allowFailure: false,
@@ -449,11 +470,15 @@ export async function bundleCreateToDex(params) {
449
470
  const buyerWallet = curveBuyerWallets[i];
450
471
  const buyAmount = curveBuyAmountsWei[i];
451
472
  const buyData = encodeFlapBuyCall(tokenAddress, buyAmount, true, extensionData);
452
- const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
473
+ const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
474
+ [
475
+ {
453
476
  target: FLAP_PORTAL_ADDRESS,
454
477
  value: buyAmount,
455
478
  data: buyData,
456
- }]]);
479
+ },
480
+ ],
481
+ ]);
457
482
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
458
483
  calls.push({
459
484
  target: buyerWallet.address,
@@ -464,7 +489,7 @@ export async function bundleCreateToDex(params) {
464
489
  }
465
490
  // 4. 外盘买入(如果启用)
466
491
  if (enableDexBuy && dexBuyerWallets.length > 0) {
467
- const dexType = (params.lpFeeProfile !== undefined && params.lpFeeProfile >= 0) ? 'V3' : 'V2';
492
+ const dexType = params.lpFeeProfile !== undefined && params.lpFeeProfile >= 0 ? 'V3' : 'V2';
468
493
  const v3Fee = lpFeeProfileToV3Fee(params.lpFeeProfile);
469
494
  for (let i = 0; i < dexBuyerWallets.length; i++) {
470
495
  const buyerWallet = dexBuyerWallets[i];
@@ -480,11 +505,15 @@ export async function bundleCreateToDex(params) {
480
505
  swapData = encodeV2BuyCall(tokenAddress, buyerWallet.address, deadline);
481
506
  }
482
507
  // 使用 executeBatch 调用 DEX Router
483
- const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
508
+ const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
509
+ [
510
+ {
484
511
  target: routerAddress,
485
512
  value: buyAmount,
486
513
  data: swapData,
487
- }]]);
514
+ },
515
+ ],
516
+ ]);
488
517
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
489
518
  calls.push({
490
519
  target: buyerWallet.address,
@@ -498,16 +527,15 @@ export async function bundleCreateToDex(params) {
498
527
  const totalValue = params.quoteAmt ?? 0n;
499
528
  // ✅ 动态计算 Gas Limit:基础操作 + 毕业额外 gas
500
529
  // 毕业操作需要约 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万)
530
+ const baseGas = GAS_ESTIMATE.BASE +
531
+ BigInt(allWallets.length) * GAS_ESTIMATE.PER_AUTHORIZATION +
532
+ BigInt(calls.length) * GAS_ESTIMATE.PER_CALL_BASE +
533
+ BigInt(curveBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA + // 内盘买入
534
+ BigInt(dexBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA + // 外盘买入
535
+ GAS_ESTIMATE.CREATE_TOKEN + // 创建代币
536
+ GAS_ESTIMATE.GRADUATE; // 毕业操作 (800万)
508
537
  const dynamicGasLimit = BigInt(Math.ceil(Number(baseGas) * GAS_ESTIMATE.SAFETY_MULTIPLIER));
509
538
  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
539
  const toDexConfig = {
512
540
  ...config,
513
541
  gasLimit: finalGasLimit, // ✅ 动态计算的 Gas Limit
@@ -548,7 +576,7 @@ export async function bundleGraduateBuy(params) {
548
576
  const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
549
577
  // 创建钱包
550
578
  const payerWallet = createWallet(payerPrivateKey, provider);
551
- const wallets = privateKeys.map(pk => createWallet(pk, provider));
579
+ const wallets = privateKeys.map((pk) => createWallet(pk, provider));
552
580
  // 获取代币状态
553
581
  const portalContract = new Contract(FLAP_PORTAL_ADDRESS, FLAP_PORTAL_ABI, provider);
554
582
  const tokenState = await portalContract.getTokenV7(tokenAddress);
@@ -557,12 +585,11 @@ export async function bundleGraduateBuy(params) {
557
585
  const k = tokenState[6];
558
586
  const lpFeeProfile = Number(tokenState[15]);
559
587
  // 计算毕业容量
560
- const graduationReserveWei = (h * k) / (10n ** 18n);
588
+ const graduationReserveWei = (h * k) / 10n ** 18n;
561
589
  const poolReserveOkb = Number(ethers.formatEther(reserve));
562
590
  const graduateCapacity = graduationAmount ?? Number(ethers.formatEther(graduationReserveWei));
563
591
  const remainingToGraduate = Math.max(0, graduateCapacity - poolReserveOkb);
564
592
  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
593
  // 计算每个钱包的金额
567
594
  const normalizedWalletAmounts = {};
568
595
  if (walletAmounts) {
@@ -590,8 +617,8 @@ export async function bundleGraduateBuy(params) {
590
617
  const dexBuyers = [];
591
618
  const hasFrontendGrouping = curveAddresses && curveAddresses.length > 0;
592
619
  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();
620
+ const curveSet = new Set(curveAddresses.map((a) => a.toLowerCase()));
621
+ const dexSet = dexAddresses ? new Set(dexAddresses.map((a) => a.toLowerCase())) : new Set();
595
622
  for (let i = 0; i < wallets.length; i++) {
596
623
  const wallet = wallets[i];
597
624
  const ownerAddr = wallet.address.toLowerCase();
@@ -626,15 +653,14 @@ export async function bundleGraduateBuy(params) {
626
653
  }
627
654
  }
628
655
  }
629
- console.log(`[GraduateBuy] Curve buyers: ${curveBuyers.length}, DEX buyers: ${dexBuyers.length}`);
630
656
  // 合并所有参与的钱包
631
657
  const allWalletsMap = new Map();
632
658
  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));
659
+ curveBuyers.forEach((b) => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
660
+ dexBuyers.forEach((b) => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
635
661
  const allWallets = Array.from(allWalletsMap.values());
636
662
  const mainWallet = payerWallet;
637
- const mainWalletIndex = allWallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
663
+ const mainWalletIndex = allWallets.findIndex((w) => w.address.toLowerCase() === mainWallet.address.toLowerCase());
638
664
  // 计算金额和利润(单边模式:只有买入)
639
665
  const curveTotalWei = curveBuyers.reduce((sum, b) => sum + b.amount, 0n);
640
666
  const dexTotalWei = dexBuyers.reduce((sum, b) => sum + b.amount, 0n);
@@ -643,7 +669,7 @@ export async function bundleGraduateBuy(params) {
643
669
  const profitRecipient = getProfitRecipient(config);
644
670
  // 并行获取 nonce 和 fee data
645
671
  const [nonces, feeData] = await Promise.all([
646
- batchGetNonces(allWallets.map(w => w.address), provider),
672
+ batchGetNonces(allWallets.map((w) => w.address), provider),
647
673
  provider.getFeeData(),
648
674
  ]);
649
675
  // 签名授权
@@ -661,11 +687,15 @@ export async function bundleGraduateBuy(params) {
661
687
  for (let i = 0; i < curveBuyers.length; i++) {
662
688
  const { wallet, amount } = curveBuyers[i];
663
689
  const buyData = encodeFlapBuyCall(tokenAddress, amount, useV3OrV4, extensionData);
664
- const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
690
+ const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
691
+ [
692
+ {
665
693
  target: FLAP_PORTAL_ADDRESS,
666
694
  value: amount,
667
695
  data: buyData,
668
- }]]);
696
+ },
697
+ ],
698
+ ]);
669
699
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
670
700
  calls.push({
671
701
  target: wallet.address,
@@ -676,7 +706,7 @@ export async function bundleGraduateBuy(params) {
676
706
  }
677
707
  // 3. 外盘买入
678
708
  if (enableDexBuy && dexBuyers.length > 0) {
679
- const dexType = (lpFeeProfile >= 0) ? 'V3' : 'V2';
709
+ const dexType = lpFeeProfile >= 0 ? 'V3' : 'V2';
680
710
  const v3Fee = lpFeeProfileToV3Fee(lpFeeProfile);
681
711
  for (let i = 0; i < dexBuyers.length; i++) {
682
712
  const { wallet, amount } = dexBuyers[i];
@@ -690,11 +720,15 @@ export async function bundleGraduateBuy(params) {
690
720
  routerAddress = POTATOSWAP_V2_ROUTER;
691
721
  swapData = encodeV2BuyCall(tokenAddress, wallet.address, deadline);
692
722
  }
693
- const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
723
+ const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
724
+ [
725
+ {
694
726
  target: routerAddress,
695
727
  value: amount,
696
728
  data: swapData,
697
- }]]);
729
+ },
730
+ ],
731
+ ]);
698
732
  // ✅ 修复:value 设为 0n,让钱包使用自己余额买入
699
733
  calls.push({
700
734
  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>;