four-flap-meme-sdk 2.2.19 → 2.2.20

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 (493) hide show
  1. package/dist/__tests__/subpath-exports.test.d.ts +1 -0
  2. package/dist/__tests__/subpath-exports.test.js +64 -0
  3. package/dist/abis/common.d.ts +85 -0
  4. package/dist/abis/common.js +240 -0
  5. package/dist/abis/contracts/TaxToken.json +969 -0
  6. package/dist/abis/contracts/TokenManager.json +836 -0
  7. package/dist/abis/contracts/TokenManager2.json +136 -0
  8. package/dist/abis/contracts/TokenManagerHelper3.json +993 -0
  9. package/dist/abis/contracts/index.d.ts +5 -0
  10. package/dist/abis/contracts/index.js +5 -0
  11. package/dist/abis/flap/index.d.ts +5 -0
  12. package/dist/abis/flap/index.js +5 -0
  13. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  14. package/dist/abis/flap/portal-eip7702.js +39 -0
  15. package/dist/abis/flap/portal-events.d.ts +6 -0
  16. package/dist/abis/flap/portal-events.js +17 -0
  17. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  18. package/dist/abis/flap/portal-merkle.js +25 -0
  19. package/dist/abis/flap/portal.d.ts +6 -0
  20. package/dist/abis/flap/portal.js +37 -0
  21. package/dist/abis/flap/vault.d.ts +171 -0
  22. package/dist/abis/flap/vault.js +91 -0
  23. package/dist/abis/index.d.ts +8 -0
  24. package/dist/abis/index.js +11 -0
  25. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
  26. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  27. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
  28. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  29. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  30. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  31. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  32. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  33. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  34. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  35. package/dist/bundle-core/config-helpers.d.ts +37 -0
  36. package/dist/bundle-core/config-helpers.js +58 -0
  37. package/dist/bundle-core/errors.d.ts +50 -0
  38. package/dist/bundle-core/errors.js +38 -0
  39. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  40. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  41. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  42. package/dist/bundle-core/four-meme/core-helpers.js +41 -0
  43. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  44. package/dist/bundle-core/four-meme/core.js +515 -0
  45. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  46. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  47. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  48. package/dist/bundle-core/four-meme/private.js +465 -0
  49. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  50. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  51. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  52. package/dist/bundle-core/four-meme/swap-buy-first.js +456 -0
  53. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  54. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  55. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  56. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  57. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +28 -0
  58. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  59. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  60. package/dist/bundle-core/four-meme/swap.js +505 -0
  61. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  62. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  63. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  64. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  65. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  66. package/dist/bundle-core/four-meme/types/index.js +1 -0
  67. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  68. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  69. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  70. package/dist/bundle-core/four-meme/types.js +1 -0
  71. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  72. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  73. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  74. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  75. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  76. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  77. package/dist/bundle-core/index.d.ts +8 -0
  78. package/dist/bundle-core/index.js +8 -0
  79. package/dist/bundle-core/internal.d.ts +16 -0
  80. package/dist/bundle-core/internal.js +160 -0
  81. package/dist/bundle-core/sign-context-helpers.d.ts +26 -0
  82. package/dist/bundle-core/sign-context-helpers.js +63 -0
  83. package/dist/bundle-core/submit.d.ts +293 -0
  84. package/dist/bundle-core/submit.js +731 -0
  85. package/dist/bundle-core/types/index.d.ts +8 -0
  86. package/dist/bundle-core/types/index.js +1 -0
  87. package/dist/bundle-core/types.d.ts +1 -0
  88. package/dist/bundle-core/types.js +1 -0
  89. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  90. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  91. package/dist/chains/bsc/four/config.d.ts +5 -67
  92. package/dist/chains/bsc/four/config.js +2 -114
  93. package/dist/chains/bsc/four/core.d.ts +1 -4
  94. package/dist/chains/bsc/four/core.js +1 -592
  95. package/dist/chains/bsc/four/index.d.ts +6 -6
  96. package/dist/chains/bsc/four/index.js +6 -6
  97. package/dist/chains/bsc/four/internal.d.ts +2 -46
  98. package/dist/chains/bsc/four/internal.js +2 -239
  99. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  100. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  101. package/dist/chains/bsc/four/private.d.ts +1 -27
  102. package/dist/chains/bsc/four/private.js +1 -477
  103. package/dist/chains/bsc/four/submit.d.ts +2 -315
  104. package/dist/chains/bsc/four/submit.js +2 -752
  105. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  106. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  107. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  108. package/dist/chains/bsc/four/swap-internal.js +1 -18
  109. package/dist/chains/bsc/four/swap.d.ts +2 -144
  110. package/dist/chains/bsc/four/swap.js +2 -766
  111. package/dist/chains/bsc/four/types.d.ts +1 -476
  112. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  113. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  114. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  115. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  116. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  117. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  118. package/dist/chains/bsc/four/utils.d.ts +5 -18
  119. package/dist/chains/bsc/four/utils.js +5 -1552
  120. package/dist/chains/bsc/iro.d.ts +5 -0
  121. package/dist/chains/bsc/iro.js +4 -0
  122. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  123. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  124. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  125. package/dist/chains/bsc/pancake/bundle-buy-first.js +98 -213
  126. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  127. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  128. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  129. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  130. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  131. package/dist/chains/bsc/pancake/index.js +1 -3
  132. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  133. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  134. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  135. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  136. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  137. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  138. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  139. package/dist/chains/eni/batch-router/transfer.js +55 -25
  140. package/dist/chains/eni/batch-router/utils.js +32 -6
  141. package/dist/chains/eni/bundler/sign.js +5 -6
  142. package/dist/chains/eni/bundler/submit.js +1 -4
  143. package/dist/chains/eni/constants.js +1 -1
  144. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  145. package/dist/chains/eni/flat-aliases.js +8 -0
  146. package/dist/chains/eni/index.d.ts +2 -1
  147. package/dist/chains/eni/index.js +1 -0
  148. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  149. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  150. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  151. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  152. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
  153. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  154. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  155. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  156. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  157. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
  158. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  159. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  160. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  161. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  162. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  163. package/dist/chains/eni/platforms/iro/index.js +4 -4
  164. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  165. package/dist/chains/eni/platforms/iro/token.js +107 -31
  166. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  167. package/dist/chains/eni/submit.d.ts +43 -0
  168. package/dist/chains/eni/submit.js +287 -0
  169. package/dist/chains/index.d.ts +13 -0
  170. package/dist/chains/index.js +13 -0
  171. package/dist/chains/xlayer/constants.d.ts +5 -0
  172. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  173. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  174. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  175. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  176. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  177. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  178. package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
  179. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  180. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
  181. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  182. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  183. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  184. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  185. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  186. package/dist/chains/xlayer/eip7702/index.js +28 -81
  187. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  188. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  189. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  190. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
  191. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  192. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  193. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  194. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  195. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  196. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  197. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  198. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  199. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  200. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  201. package/dist/chains/xlayer/eoa/constants.js +2 -16
  202. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  203. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  204. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  205. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  206. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  207. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  208. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  209. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  210. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  211. package/dist/chains/xlayer/eoa/index.js +8 -23
  212. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  213. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  214. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  215. package/dist/chains/xlayer/eoa/types.js +1 -3
  216. package/dist/chains/xlayer/index.d.ts +3 -2
  217. package/dist/chains/xlayer/index.js +4 -7
  218. package/dist/contracts/helper3.d.ts +20 -5
  219. package/dist/contracts/helper3.js +56 -20
  220. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  221. package/dist/contracts/tm-bundle-helpers.js +73 -0
  222. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  223. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
  224. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
  225. package/dist/contracts/tm-bundle-merkle/config.js +2 -114
  226. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  227. package/dist/contracts/tm-bundle-merkle/core.js +1 -591
  228. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  229. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  230. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
  231. package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
  232. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  233. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
  234. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  235. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  236. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  237. package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
  238. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  239. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
  240. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  241. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  242. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  243. package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
  244. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  245. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  246. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  247. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  248. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  249. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  250. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  251. package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
  252. package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
  253. package/dist/contracts/tm-bundle.d.ts +3 -51
  254. package/dist/contracts/tm-bundle.js +120 -187
  255. package/dist/contracts/tm.d.ts +10 -8
  256. package/dist/contracts/tm.js +39 -35
  257. package/dist/contracts/tm1.js +9 -4
  258. package/dist/contracts/tm2.js +10 -5
  259. package/dist/dex/direct-router-helpers.d.ts +269 -0
  260. package/dist/dex/direct-router-helpers.js +536 -0
  261. package/dist/dex/direct-router.d.ts +3 -125
  262. package/dist/dex/direct-router.js +244 -672
  263. package/dist/dex/types.d.ts +81 -0
  264. package/dist/dex/types.js +1 -0
  265. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  266. package/dist/exports/root-bundle-and-tooling.js +30 -0
  267. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  268. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  269. package/dist/exports/root-foundations.d.ts +35 -0
  270. package/dist/exports/root-foundations.js +70 -0
  271. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  272. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  273. package/dist/flap/index.d.ts +11 -0
  274. package/dist/flap/index.js +9 -0
  275. package/dist/flows/create.d.ts +2 -1
  276. package/dist/flows/create.js +6 -6
  277. package/dist/flows/index.d.ts +9 -0
  278. package/dist/flows/index.js +9 -0
  279. package/dist/index.d.ts +20 -88
  280. package/dist/index.js +20 -218
  281. package/dist/merkle/index.d.ts +12 -0
  282. package/dist/merkle/index.js +11 -0
  283. package/dist/shared/abis/common.d.ts +2 -83
  284. package/dist/shared/abis/common.js +2 -254
  285. package/dist/shared/abis/index.d.ts +5 -6
  286. package/dist/shared/abis/index.js +5 -7
  287. package/dist/shared/clients/blockrazor.d.ts +4 -8
  288. package/dist/shared/clients/blockrazor.js +43 -35
  289. package/dist/shared/clients/club48.d.ts +2 -2
  290. package/dist/shared/clients/club48.js +36 -30
  291. package/dist/shared/clients/emitservice.js +2 -0
  292. package/dist/shared/clients/four.d.ts +21 -6
  293. package/dist/shared/clients/four.js +29 -24
  294. package/dist/shared/clients/index.d.ts +8 -0
  295. package/dist/shared/clients/index.js +8 -0
  296. package/dist/shared/clients/merkle.d.ts +4 -3
  297. package/dist/shared/clients/merkle.js +30 -47
  298. package/dist/shared/constants/addresses.d.ts +27 -1
  299. package/dist/shared/constants/addresses.js +39 -2
  300. package/dist/shared/constants/chains.d.ts +1 -1
  301. package/dist/shared/constants/chains.js +1 -1
  302. package/dist/shared/constants/gas.d.ts +1 -1
  303. package/dist/shared/constants/gas.js +2 -6
  304. package/dist/shared/constants/index.d.ts +4 -1
  305. package/dist/shared/constants/index.js +2 -1
  306. package/dist/shared/constants/quote.d.ts +30 -0
  307. package/dist/shared/constants/quote.js +37 -0
  308. package/dist/shared/flap/abi.js +1 -1
  309. package/dist/shared/flap/constants.d.ts +1 -2
  310. package/dist/shared/flap/constants.js +3 -4
  311. package/dist/shared/flap/curve.js +3 -0
  312. package/dist/shared/flap/errors.d.ts +1 -4
  313. package/dist/shared/flap/errors.js +20 -1
  314. package/dist/shared/flap/index.d.ts +4 -5
  315. package/dist/shared/flap/index.js +4 -5
  316. package/dist/shared/flap/launch-v6.d.ts +0 -5
  317. package/dist/shared/flap/launch-v6.js +2 -16
  318. package/dist/shared/flap/meta.d.ts +22 -18
  319. package/dist/shared/flap/meta.js +32 -24
  320. package/dist/shared/flap/permit.js +10 -3
  321. package/dist/shared/flap/pinata.d.ts +22 -6
  322. package/dist/shared/flap/pinata.js +21 -26
  323. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  324. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  325. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  326. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  327. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  328. package/dist/shared/flap/portal-bundle-merkle/core.js +168 -175
  329. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  330. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +96 -117
  331. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +104 -122
  332. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  333. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  334. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  335. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  336. package/dist/shared/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  337. package/dist/shared/flap/portal-bundle-merkle/swap-batch.js +227 -0
  338. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  339. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  340. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  341. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  342. package/dist/shared/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  343. package/dist/shared/flap/portal-bundle-merkle/swap-cross.js +139 -0
  344. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  345. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  346. package/dist/shared/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  347. package/dist/shared/flap/portal-bundle-merkle/swap-planning.js +182 -0
  348. package/dist/shared/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  349. package/dist/shared/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  350. package/dist/shared/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  351. package/dist/shared/flap/portal-bundle-merkle/swap-single.js +184 -0
  352. package/dist/shared/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  353. package/dist/shared/flap/portal-bundle-merkle/swap-types.js +1 -0
  354. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +6 -199
  355. package/dist/shared/flap/portal-bundle-merkle/swap.js +5 -1357
  356. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +88 -12
  357. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  358. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  359. package/dist/shared/flap/portal-bundle.js +83 -78
  360. package/dist/shared/flap/portal-create-token.d.ts +39 -21
  361. package/dist/shared/flap/portal-create-token.js +121 -124
  362. package/dist/shared/flap/portal.d.ts +1 -2
  363. package/dist/shared/flap/portal.js +36 -28
  364. package/dist/shared/flap/vanity.d.ts +6 -6
  365. package/dist/shared/flap/vanity.js +15 -21
  366. package/dist/shared/flap/vault.d.ts +25 -93
  367. package/dist/shared/flap/vault.js +77 -127
  368. package/dist/shared/foundation/amount/split-by-weight.d.ts +5 -0
  369. package/dist/shared/foundation/amount/split-by-weight.js +35 -0
  370. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  371. package/dist/shared/foundation/dex/v3-path.js +35 -0
  372. package/dist/shared/foundation/erc20/decimals.d.ts +7 -0
  373. package/dist/shared/foundation/erc20/decimals.js +24 -0
  374. package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
  375. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  376. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  377. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  378. package/dist/shared/foundation/index.d.ts +15 -0
  379. package/dist/shared/foundation/index.js +14 -0
  380. package/dist/shared/foundation/nonce/nonce-manager.d.ts +19 -0
  381. package/dist/shared/foundation/nonce/nonce-manager.js +217 -0
  382. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  383. package/dist/shared/foundation/normalize-unknown.js +29 -0
  384. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  385. package/dist/shared/foundation/sdk-logger.js +12 -0
  386. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  387. package/dist/shared/foundation/tx/build-request.js +25 -0
  388. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  389. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  390. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  391. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  392. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  393. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  394. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  395. package/dist/shared/foundation/types/erc20.js +1 -0
  396. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  397. package/dist/shared/foundation/types/holders-maker.js +1 -0
  398. package/dist/shared/foundation/types/index.d.ts +7 -0
  399. package/dist/shared/foundation/types/index.js +1 -0
  400. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  401. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  402. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  403. package/dist/shared/foundation/types/multicall.js +1 -0
  404. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  405. package/dist/shared/foundation/types/private-sale.js +1 -0
  406. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  407. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  408. package/dist/shared/foundation/wallet/generate.d.ts +5 -0
  409. package/dist/shared/foundation/wallet/generate.js +8 -0
  410. package/dist/shared/four/tax-token.d.ts +1 -1
  411. package/dist/shared/four/tax-token.js +31 -10
  412. package/dist/shared/index.d.ts +6 -0
  413. package/dist/shared/index.js +4 -0
  414. package/dist/types/errors.d.ts +27 -0
  415. package/dist/types/errors.js +34 -0
  416. package/dist/utils/airdrop-sweep.d.ts +4 -76
  417. package/dist/utils/airdrop-sweep.js +42 -55
  418. package/dist/utils/bundle-helpers.d.ts +9 -243
  419. package/dist/utils/bundle-helpers.js +10 -584
  420. package/dist/utils/constants.d.ts +5 -61
  421. package/dist/utils/constants.js +5 -80
  422. package/dist/utils/contract-factory.d.ts +2 -4
  423. package/dist/utils/contract-factory.js +25 -18
  424. package/dist/utils/erc20.d.ts +7 -89
  425. package/dist/utils/erc20.js +98 -129
  426. package/dist/utils/errors.d.ts +12 -1
  427. package/dist/utils/errors.js +60 -1
  428. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  429. package/dist/utils/holders-maker/addresses.js +15 -0
  430. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  431. package/dist/utils/holders-maker/buy-tx.js +278 -0
  432. package/dist/utils/holders-maker/constants.d.ts +6 -0
  433. package/dist/utils/holders-maker/constants.js +7 -0
  434. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  435. package/dist/utils/holders-maker/disperse.js +90 -0
  436. package/dist/utils/holders-maker/routing.d.ts +4 -0
  437. package/dist/utils/holders-maker/routing.js +45 -0
  438. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  439. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  440. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  441. package/dist/utils/holders-maker-helpers.js +9 -0
  442. package/dist/utils/holders-maker.d.ts +2 -138
  443. package/dist/utils/holders-maker.js +50 -671
  444. package/dist/utils/hop-chains.d.ts +35 -0
  445. package/dist/utils/hop-chains.js +215 -0
  446. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  447. package/dist/utils/lp-inspect-helpers.js +109 -0
  448. package/dist/utils/lp-inspect.d.ts +2 -112
  449. package/dist/utils/lp-inspect.js +78 -293
  450. package/dist/utils/mpcExclusive.d.ts +2 -5
  451. package/dist/utils/mpcExclusive.js +4 -3
  452. package/dist/utils/pcs-infinity-cl.js +18 -54
  453. package/dist/utils/private-sale.d.ts +2 -58
  454. package/dist/utils/private-sale.js +4 -15
  455. package/dist/utils/provider-factory.d.ts +4 -0
  456. package/dist/utils/provider-factory.js +10 -0
  457. package/dist/utils/quote-helpers.d.ts +4 -45
  458. package/dist/utils/quote-helpers.js +17 -74
  459. package/dist/utils/stealth-transfer.d.ts +2 -28
  460. package/dist/utils/stealth-transfer.js +39 -19
  461. package/dist/utils/swap-helpers.d.ts +2 -15
  462. package/dist/utils/swap-helpers.js +6 -11
  463. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  464. package/dist/utils/types/airdrop-sweep.js +1 -0
  465. package/dist/utils/types/contract-factory.d.ts +1 -0
  466. package/dist/utils/types/contract-factory.js +1 -0
  467. package/dist/utils/types/erc20.d.ts +1 -0
  468. package/dist/utils/types/erc20.js +1 -0
  469. package/dist/utils/types/errors.d.ts +1 -0
  470. package/dist/utils/types/errors.js +1 -0
  471. package/dist/utils/types/holders-maker.d.ts +1 -0
  472. package/dist/utils/types/holders-maker.js +1 -0
  473. package/dist/utils/types/hop-chains.d.ts +8 -0
  474. package/dist/utils/types/hop-chains.js +1 -0
  475. package/dist/utils/types/index.d.ts +13 -0
  476. package/dist/utils/types/index.js +1 -0
  477. package/dist/utils/types/lp-inspect.d.ts +1 -0
  478. package/dist/utils/types/lp-inspect.js +1 -0
  479. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  480. package/dist/utils/types/mpc-exclusive.js +1 -0
  481. package/dist/utils/types/private-sale.d.ts +1 -0
  482. package/dist/utils/types/private-sale.js +1 -0
  483. package/dist/utils/types/quote-helpers.d.ts +1 -0
  484. package/dist/utils/types/quote-helpers.js +1 -0
  485. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  486. package/dist/utils/types/stealth-transfer.js +1 -0
  487. package/dist/utils/types/wallet.d.ts +25 -0
  488. package/dist/utils/types/wallet.js +1 -0
  489. package/dist/utils/wallet.d.ts +4 -25
  490. package/dist/utils/wallet.js +27 -22
  491. package/dist/vanity/index.d.ts +5 -0
  492. package/dist/vanity/index.js +5 -0
  493. package/package.json +100 -2
@@ -36,18 +36,22 @@ function buildFlapBuyCalls(wallets, buyAmounts, tokenAddress) {
36
36
  continue;
37
37
  // ✅ 修复:使用 swapExactInput 代替 buy 函数,与 bundle-create.ts 保持一致
38
38
  // buy(token) 是旧 API,swapExactInput 是新的标准 API
39
- const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [{
39
+ const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [
40
+ {
40
41
  inputToken: ethers.ZeroAddress, // 0x0 = OKB (原生代币)
41
42
  outputToken: tokenAddress,
42
43
  inputAmount: amount,
43
44
  minOutputAmount: 0n, // 无滑点保护
44
45
  permitData: '0x',
45
- }]);
46
- const batchCalls = [{
46
+ },
47
+ ]);
48
+ const batchCalls = [
49
+ {
47
50
  target: FLAP_PORTAL_ADDRESS,
48
51
  value: amount,
49
52
  data: portalCallData,
50
- }];
53
+ },
54
+ ];
51
55
  const callData = delegateInterface.encodeFunctionData('executeBatch', [batchCalls]);
52
56
  calls.push({
53
57
  target: wallet.address, // 以钱包身份调用,代币会到钱包
@@ -142,46 +146,6 @@ function buildProfitCall(mainWallet, profitAmount, profitRecipient) {
142
146
  callData,
143
147
  };
144
148
  }
145
- // ========================================
146
- // 批量买入主函数
147
- // ========================================
148
- /**
149
- * 批量买入 - 生成签名后的交易
150
- *
151
- * @param params 买入参数
152
- * @returns 签名后的交易和元数据
153
- *
154
- * @example
155
- * // FLAP 内盘买入
156
- * const result = await bundleBuy({
157
- * mainPrivateKey: '0x...',
158
- * privateKeys: ['0x...', '0x...'],
159
- * buyAmounts: ['0.01', '0.02'],
160
- * tokenAddress: '0x...',
161
- * tradeType: 'FLAP',
162
- * });
163
- *
164
- * @example
165
- * // V2 买入
166
- * const result = await bundleBuy({
167
- * mainPrivateKey: '0x...',
168
- * privateKeys: ['0x...', '0x...'],
169
- * buyAmounts: ['0.01', '0.02'],
170
- * tokenAddress: '0x...',
171
- * tradeType: 'V2',
172
- * });
173
- *
174
- * @example
175
- * // V3 买入(默认)
176
- * const result = await bundleBuy({
177
- * mainPrivateKey: '0x...',
178
- * privateKeys: ['0x...', '0x...'],
179
- * buyAmounts: ['0.01', '0.02'],
180
- * tokenAddress: '0x...',
181
- * tradeType: 'V3',
182
- * fee: 2500, // 0.25%
183
- * });
184
- */
185
149
  export async function bundleBuy(params) {
186
150
  const { mainPrivateKey, privateKeys, buyAmounts, tokenAddress, tradeType = 'V3', routerAddress, fee = V3_FEE_TIERS.MEDIUM, userType = 'v0', // ✅ 用户类型(影响利润率)
187
151
  config, } = params;
@@ -195,22 +159,20 @@ export async function bundleBuy(params) {
195
159
  // 同步操作 - 批量创建钱包和解析金额
196
160
  // ========================================
197
161
  const mainWallet = createWallet(mainPrivateKey, provider);
198
- const wallets = privateKeys.map(pk => createWallet(pk, provider));
162
+ const wallets = privateKeys.map((pk) => createWallet(pk, provider));
199
163
  // 批量解析金额(同步)
200
- const buyAmountsWei = buyAmounts.map(amt => ethers.parseEther(amt));
164
+ const buyAmountsWei = buyAmounts.map((amt) => ethers.parseEther(amt));
201
165
  const totalBuyAmount = buyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
202
166
  // ✅ 使用 userType 计算利润
203
167
  const profitAmount = calculateProfitAmountByTxCount(totalBuyAmount, wallets.length, userType);
204
168
  const profitRecipient = getProfitRecipient(config);
205
169
  // 确定需要授权的钱包
206
- const mainWalletIndex = wallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
207
- const allWallets = mainWalletIndex === -1
208
- ? [mainWallet, ...wallets]
209
- : wallets;
170
+ const mainWalletIndex = wallets.findIndex((w) => w.address.toLowerCase() === mainWallet.address.toLowerCase());
171
+ const allWallets = mainWalletIndex === -1 ? [mainWallet, ...wallets] : wallets;
210
172
  // ========================================
211
173
  // 并行获取所有异步数据
212
174
  // ========================================
213
- const allAddresses = allWallets.map(w => w.address);
175
+ const allAddresses = allWallets.map((w) => w.address);
214
176
  const [walletNonces, mainNonce, feeData] = await Promise.all([
215
177
  // 1. 批量获取授权钱包的 nonce
216
178
  batchGetNonces(allAddresses, provider),
@@ -9,14 +9,10 @@
9
9
  * 所有函数只返回签名后的交易,由调用方决定如何提交
10
10
  */
11
11
  import { ethers, Interface, Contract } from 'ethers';
12
+ import { ZERO_ADDRESS, ZERO_BYTES32 } from '../../../shared/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>;