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
@@ -6,9 +6,9 @@
6
6
  *
7
7
  * 只生成签名,由调用方决定如何提交
8
8
  */
9
- import { ethers, Contract, JsonRpcProvider } from 'ethers';
9
+ import { ethers, Contract } from 'ethers';
10
10
  import { getCachedProvider, createWallet, signAuthorizationsWithNonces, batchGetNonces, buildEIP7702TransactionSync, calculateProfitAmountByUserType, getProfitRecipient, } from './utils.js';
11
- import { UNIFIED_DELEGATE_ADDRESS, POTATOSWAP_V2_ROUTER, POTATOSWAP_V3_ROUTER, FLAP_PORTAL_ADDRESS, WOKB_ADDRESS, V3_FEE_TIERS, UNIFIED_DELEGATE_ABI, FLAP_PORTAL_ABI, ERC20_ABI, XLAYER_RPC_URL, XLAYER_CHAIN_ID, } from './constants.js';
11
+ import { UNIFIED_DELEGATE_ADDRESS, POTATOSWAP_V2_ROUTER, POTATOSWAP_V3_ROUTER, FLAP_PORTAL_ADDRESS, WOKB_ADDRESS, V3_FEE_TIERS, UNIFIED_DELEGATE_ABI, FLAP_PORTAL_ABI, ERC20_ABI, XLAYER_RPC_URL, } from './constants.js';
12
12
  import { quoteV2, quoteV3 } from '../../../utils/quote-helpers.js';
13
13
  // ========================================
14
14
  // 路由地址获取
@@ -39,7 +39,7 @@ function getDefaultRouter(tradeType) {
39
39
  async function quoteSellOutput(totalSellAmount, tokenAddress, tradeType, fee, rpcUrl) {
40
40
  if (totalSellAmount <= 0n)
41
41
  return 0n;
42
- const provider = new JsonRpcProvider(rpcUrl || XLAYER_RPC_URL, { chainId: XLAYER_CHAIN_ID, name: 'xlayer', ensAddress: undefined });
42
+ const provider = getCachedProvider(rpcUrl || XLAYER_RPC_URL);
43
43
  try {
44
44
  switch (tradeType) {
45
45
  case 'FLAP': {
@@ -48,11 +48,10 @@ async function quoteSellOutput(totalSellAmount, tokenAddress, tradeType, fee, rp
48
48
  // 先尝试 quoteSell(Token → OKB)
49
49
  try {
50
50
  const okbOut = await portalContract.quoteSell(tokenAddress, totalSellAmount);
51
- console.log(`[Bundle Sell] FLAP quoteSell 成功: ${ethers.formatEther(okbOut)} OKB`);
52
51
  return BigInt(okbOut.toString());
53
52
  }
54
53
  catch {
55
- console.warn(`[Bundle Sell] FLAP quoteSell 失败,尝试 quoteExactInput...`);
54
+ // fallback to quoteExactInput
56
55
  }
57
56
  // 再尝试 quoteExactInput
58
57
  try {
@@ -61,16 +60,14 @@ async function quoteSellOutput(totalSellAmount, tokenAddress, tradeType, fee, rp
61
60
  outputToken: ethers.ZeroAddress, // OKB
62
61
  inputAmount: totalSellAmount,
63
62
  });
64
- console.log(`[Bundle Sell] FLAP quoteExactInput 成功: ${ethers.formatEther(okbOut)} OKB`);
65
63
  return BigInt(okbOut.toString());
66
64
  }
67
65
  catch {
68
- console.warn(`[Bundle Sell] FLAP quoteExactInput 失败,尝试 V2...`);
66
+ // fallback to V2
69
67
  }
70
68
  // 回退到 V2
71
69
  const v2Result = await quoteV2(provider, tokenAddress, WOKB_ADDRESS, totalSellAmount, 'XLAYER');
72
70
  if (v2Result.amountOut > 0n) {
73
- console.log(`[Bundle Sell] FLAP 回退 V2 报价成功: ${ethers.formatEther(v2Result.amountOut)} OKB`);
74
71
  return v2Result.amountOut;
75
72
  }
76
73
  break;
@@ -78,7 +75,6 @@ async function quoteSellOutput(totalSellAmount, tokenAddress, tradeType, fee, rp
78
75
  case 'V2': {
79
76
  const result = await quoteV2(provider, tokenAddress, WOKB_ADDRESS, totalSellAmount, 'XLAYER');
80
77
  if (result.amountOut > 0n) {
81
- console.log(`[Bundle Sell] V2 报价成功: ${ethers.formatEther(result.amountOut)} OKB`);
82
78
  return result.amountOut;
83
79
  }
84
80
  break;
@@ -86,23 +82,20 @@ async function quoteSellOutput(totalSellAmount, tokenAddress, tradeType, fee, rp
86
82
  case 'V3': {
87
83
  const result = await quoteV3(provider, tokenAddress, WOKB_ADDRESS, totalSellAmount, 'XLAYER', fee);
88
84
  if (result.amountOut > 0n) {
89
- console.log(`[Bundle Sell] V3 报价成功 (fee=${result.fee}): ${ethers.formatEther(result.amountOut)} OKB`);
90
85
  return result.amountOut;
91
86
  }
92
87
  // 回退到 V2
93
88
  const v2Result = await quoteV2(provider, tokenAddress, WOKB_ADDRESS, totalSellAmount, 'XLAYER');
94
89
  if (v2Result.amountOut > 0n) {
95
- console.log(`[Bundle Sell] V3 回退 V2 报价成功: ${ethers.formatEther(v2Result.amountOut)} OKB`);
96
90
  return v2Result.amountOut;
97
91
  }
98
92
  break;
99
93
  }
100
94
  }
101
95
  }
102
- catch (error) {
103
- console.error(`[Bundle Sell] 报价失败:`, error);
96
+ catch {
97
+ // quote failed, return 0
104
98
  }
105
- console.warn(`[Bundle Sell] 无法获取报价,利润计算可能不准确`);
106
99
  return 0n;
107
100
  }
108
101
  // ========================================
@@ -113,22 +106,8 @@ async function getTokenBalances(wallets, tokenAddress) {
113
106
  if (!provider)
114
107
  throw new Error('Wallet has no provider');
115
108
  const tokenContract = new Contract(tokenAddress, ERC20_ABI, provider);
116
- const balances = await Promise.all(wallets.map(w => tokenContract.balanceOf(w.address)));
117
- return balances.map(b => BigInt(b.toString()));
118
- }
119
- // ========================================
120
- // 卖出数量计算
121
- // ========================================
122
- async function calculateSellAmounts(wallets, tokenAddress, sellAmounts, sellPercent, tokenDecimals = 18) {
123
- if (sellAmounts && sellAmounts.length === wallets.length) {
124
- return sellAmounts.map(amt => ethers.parseUnits(amt, tokenDecimals));
125
- }
126
- const balances = await getTokenBalances(wallets, tokenAddress);
127
- if (sellPercent !== undefined && sellPercent > 0) {
128
- const percent = Math.min(100, Math.max(0, sellPercent));
129
- return balances.map(b => (b * BigInt(percent)) / 100n);
130
- }
131
- return balances;
109
+ const balances = await Promise.all(wallets.map((w) => tokenContract.balanceOf(w.address)));
110
+ return balances.map((b) => BigInt(b.toString()));
132
111
  }
133
112
  // ========================================
134
113
  // FLAP 内盘卖出
@@ -144,18 +123,22 @@ function buildFlapSellCalls(wallets, sellAmounts, tokenAddress) {
144
123
  continue;
145
124
  // ✅ 使用 swapExactInput 卖出(与 AA 模式保持一致)
146
125
  // outputToken = 0x0 表示卖出换取原生代币 (OKB)
147
- const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [{
126
+ const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [
127
+ {
148
128
  inputToken: tokenAddress,
149
129
  outputToken: ethers.ZeroAddress, // 0x0 = OKB
150
130
  inputAmount: amount,
151
131
  minOutputAmount: 0n, // 无滑点保护
152
132
  permitData: '0x', // 无 permit
153
- }]);
154
- const batchCalls = [{
133
+ },
134
+ ]);
135
+ const batchCalls = [
136
+ {
155
137
  target: FLAP_PORTAL_ADDRESS,
156
138
  value: 0n,
157
139
  data: portalCallData,
158
- }];
140
+ },
141
+ ];
159
142
  const callData = delegateInterface.encodeFunctionData('executeBatch', [batchCalls]);
160
143
  calls.push({
161
144
  target: wallet.address, // 以钱包身份调用,OKB 收益会到钱包
@@ -180,11 +163,7 @@ function buildV2SellCalls(wallets, sellAmounts, tokenAddress, routerAddress) {
180
163
  if (amount <= 0n)
181
164
  continue;
182
165
  // 使用 UnifiedDelegate 的 executeSellV2 函数
183
- const callData = delegateInterface.encodeFunctionData('executeSellV2', [
184
- routerAddress,
185
- path,
186
- amount,
187
- ]);
166
+ const callData = delegateInterface.encodeFunctionData('executeSellV2', [routerAddress, path, amount]);
188
167
  calls.push({
189
168
  target: wallet.address,
190
169
  allowFailure: false,
@@ -235,46 +214,6 @@ function buildSellCalls(wallets, sellAmounts, tokenAddress, tradeType, routerAdd
235
214
  return buildV3SellCalls(wallets, sellAmounts, tokenAddress, routerAddress, fee);
236
215
  }
237
216
  }
238
- // ========================================
239
- // 批量卖出主函数
240
- // ========================================
241
- /**
242
- * 批量卖出 - 生成签名后的交易
243
- *
244
- * @param params 卖出参数
245
- * @returns 签名后的交易和元数据
246
- *
247
- * @example
248
- * // FLAP 内盘卖出
249
- * const result = await bundleSell({
250
- * mainPrivateKey: '0x...',
251
- * privateKeys: ['0x...', '0x...'],
252
- * sellPercent: 100, // 卖出 100%
253
- * tokenAddress: '0x...',
254
- * tradeType: 'FLAP',
255
- * });
256
- *
257
- * @example
258
- * // V2 卖出
259
- * const result = await bundleSell({
260
- * mainPrivateKey: '0x...',
261
- * privateKeys: ['0x...', '0x...'],
262
- * sellPercent: 50, // 卖出 50%
263
- * tokenAddress: '0x...',
264
- * tradeType: 'V2',
265
- * });
266
- *
267
- * @example
268
- * // V3 卖出(默认)
269
- * const result = await bundleSell({
270
- * mainPrivateKey: '0x...',
271
- * privateKeys: ['0x...', '0x...'],
272
- * sellAmounts: ['100', '200'], // 指定数量
273
- * tokenAddress: '0x...',
274
- * tradeType: 'V3',
275
- * fee: 2500,
276
- * });
277
- */
278
217
  export async function bundleSell(params) {
279
218
  const { mainPrivateKey, privateKeys, sellAmounts, sellPercent, tokenAddress, tokenDecimals = 18, tradeType = 'V3', routerAddress, fee = V3_FEE_TIERS.MEDIUM, userType = 'v0', // ✅ 用户类型(影响利润率)
280
219
  config, } = params;
@@ -286,50 +225,37 @@ export async function bundleSell(params) {
286
225
  // 同步操作 - 批量创建钱包
287
226
  // ========================================
288
227
  const mainWallet = createWallet(mainPrivateKey, provider);
289
- const wallets = privateKeys.map(pk => createWallet(pk, provider));
228
+ const wallets = privateKeys.map((pk) => createWallet(pk, provider));
290
229
  const profitRecipient = getProfitRecipient(config);
291
230
  // 确定需要授权的钱包
292
- const mainWalletIndex = wallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
293
- const allWallets = mainWalletIndex === -1
294
- ? [mainWallet, ...wallets]
295
- : wallets;
231
+ const mainWalletIndex = wallets.findIndex((w) => w.address.toLowerCase() === mainWallet.address.toLowerCase());
232
+ const allWallets = mainWalletIndex === -1 ? [mainWallet, ...wallets] : wallets;
296
233
  // ========================================
297
234
  // 并行获取所有异步数据
298
235
  // ========================================
299
- const allAddresses = allWallets.map(w => w.address);
236
+ const allAddresses = allWallets.map((w) => w.address);
300
237
  // 判断是否需要查询代币余额
301
238
  const needBalanceQuery = !sellAmounts || sellAmounts.length !== wallets.length;
302
239
  // 构建并行请求
303
- const parallelPromises = [
304
- // 1. 批量获取授权钱包的 nonce
240
+ const [walletNonces, mainNonce, feeData, tokenBalances] = await Promise.all([
305
241
  batchGetNonces(allAddresses, provider),
306
- // 2. 获取主钱包的交易 nonce
307
242
  provider.getTransactionCount(mainWallet.address, 'pending'),
308
- // 3. 获取 gas 费用数据
309
243
  provider.getFeeData(),
310
- ];
311
- // 4. 如果需要查询余额,并行获取
312
- if (needBalanceQuery) {
313
- parallelPromises.push(getTokenBalances(wallets, tokenAddress));
314
- }
315
- const results = await Promise.all(parallelPromises);
316
- const walletNonces = results[0];
317
- const mainNonce = results[1];
318
- const feeData = results[2];
319
- const tokenBalances = needBalanceQuery ? results[3] : null;
244
+ needBalanceQuery ? getTokenBalances(wallets, tokenAddress) : Promise.resolve(null),
245
+ ]);
320
246
  // ========================================
321
247
  // 同步计算卖出数量
322
248
  // ========================================
323
249
  let sellAmountsWei;
324
250
  if (sellAmounts && sellAmounts.length === wallets.length) {
325
251
  // 直接解析指定的卖出数量
326
- sellAmountsWei = sellAmounts.map(amt => ethers.parseUnits(amt, tokenDecimals));
252
+ sellAmountsWei = sellAmounts.map((amt) => ethers.parseUnits(amt, tokenDecimals));
327
253
  }
328
254
  else if (tokenBalances) {
329
255
  // 使用查询到的余额
330
256
  if (sellPercent !== undefined && sellPercent > 0) {
331
257
  const percent = Math.min(100, Math.max(0, sellPercent));
332
- sellAmountsWei = tokenBalances.map(b => (b * BigInt(percent)) / 100n);
258
+ sellAmountsWei = tokenBalances.map((b) => (b * BigInt(percent)) / 100n);
333
259
  }
334
260
  else {
335
261
  sellAmountsWei = tokenBalances;
@@ -344,12 +270,7 @@ export async function bundleSell(params) {
344
270
  // 1. 先获取报价:卖出 totalSellAmount 代币能得到多少 OKB
345
271
  const estimatedOkbOut = await quoteSellOutput(totalSellAmount, tokenAddress, tradeType, fee, config?.rpcUrl);
346
272
  // 2. 基于预估的 OKB 输出计算利润(单边模式,isDoubleMode = false)
347
- const profitAmount = estimatedOkbOut > 0n
348
- ? calculateProfitAmountByUserType(estimatedOkbOut, userType, false)
349
- : 0n;
350
- console.log(`[Bundle Sell] 卖出数量: ${ethers.formatUnits(totalSellAmount, tokenDecimals)} Token`);
351
- console.log(`[Bundle Sell] 预估获得: ${ethers.formatEther(estimatedOkbOut)} OKB`);
352
- console.log(`[Bundle Sell] 利润: ${ethers.formatEther(profitAmount)} OKB (userType=${userType})`);
273
+ const profitAmount = estimatedOkbOut > 0n ? calculateProfitAmountByUserType(estimatedOkbOut, userType, false) : 0n;
353
274
  // ========================================
354
275
  // 同步构建授权和调用
355
276
  // ========================================
@@ -388,10 +309,7 @@ export async function bundleSell(params) {
388
309
  target: wallets[i].address,
389
310
  allowFailure: false,
390
311
  value: 0n,
391
- callData: delegateInterface.encodeFunctionData('transferAmount', [
392
- profitRecipient,
393
- walletProfit,
394
- ]),
312
+ callData: delegateInterface.encodeFunctionData('transferAmount', [profitRecipient, walletProfit]),
395
313
  });
396
314
  }
397
315
  }
@@ -9,28 +9,7 @@
9
9
  * 支持 FLAP 内盘、V2 和 V3 三种交易类型
10
10
  * 只生成签名,由调用方决定如何提交
11
11
  */
12
- import type { BundleSwapParams as BaseBundleSwapParams, BundleBatchSwapParams as BaseBundleBatchSwapParams, BundleSwapResult, TradeType, EIP7702Config } from './types.js';
13
- export interface BundleSwapParams extends BaseBundleSwapParams {
14
- /** 用户类型(影响利润率) */
15
- userType?: UserType;
16
- /**
17
- * 是否使用资金利用率模式(默认 false)
18
- * - false(普通模式): 卖家卖出 OKB 留在卖家账户,买家用自己预存的 OKB 买入
19
- * - true(资金利用率模式): 卖家卖出的 OKB 通过多跳转账给买家,买家用收到的 OKB 买入
20
- */
21
- useFundUtilization?: boolean;
22
- }
23
- export interface BundleBatchSwapParams extends BaseBundleBatchSwapParams {
24
- /** 用户类型(影响利润率) */
25
- userType?: UserType;
26
- /**
27
- * 是否使用资金利用率模式(默认 false)
28
- * - false(普通模式): 卖家卖出 OKB 留在卖家账户,买家用自己预存的 OKB 买入
29
- * - true(资金利用率模式): 卖家卖出的 OKB 通过多跳转账给买家,买家用收到的 OKB 买入
30
- */
31
- useFundUtilization?: boolean;
32
- }
33
- import { type UserType } from './utils.js';
12
+ import type { BundleBatchSwapParams, BundleMultiSwapParams, BundleMultiSwapResult, BundleSwapParams, BundleSwapResult } from './types.js';
34
13
  /**
35
14
  * 捆绑换手 - 生成签名后的交易
36
15
  *
@@ -48,6 +27,7 @@ import { type UserType } from './utils.js';
48
27
  * hopCount: 2,
49
28
  * });
50
29
  */
30
+ export type { BundleSwapParams, BundleBatchSwapParams } from './types.js';
51
31
  export declare function bundleSwap(params: BundleSwapParams): Promise<BundleSwapResult>;
52
32
  /**
53
33
  * 批量换手(一卖多买)- 生成签名后的交易
@@ -66,49 +46,7 @@ export declare function bundleSwap(params: BundleSwapParams): Promise<BundleSwap
66
46
  * });
67
47
  */
68
48
  export declare function bundleBatchSwap(params: BundleBatchSwapParams): Promise<BundleSwapResult>;
69
- export interface BundleMultiSwapParams {
70
- /** Payer 钱包私钥(支付 Gas 费) */
71
- mainPrivateKey: string;
72
- /** 卖出钱包私钥列表 */
73
- sellerPrivateKeys: string[];
74
- /** 买入钱包私钥列表 */
75
- buyerPrivateKeys: string[];
76
- /** 买入总金额 (OKB) */
77
- totalBuyAmount: string;
78
- /** 代币地址 */
79
- tokenAddress: string;
80
- /** 代币精度 */
81
- tokenDecimals?: number;
82
- /** 卖出百分比(1-100,默认 100) */
83
- sellPercent?: number;
84
- /** 交易类型:FLAP 内盘 / V2 / V3(默认 V3) */
85
- tradeType?: TradeType;
86
- /** 路由地址(可选,根据 tradeType 自动选择) */
87
- routerAddress?: string;
88
- /** V3 费率(可选,默认 2500,仅 V3 使用) */
89
- fee?: number;
90
- /** 用户类型(影响利润率) */
91
- userType?: UserType;
92
- /** 配置 */
93
- config?: EIP7702Config;
94
- }
95
- export interface BundleMultiSwapResult {
96
- /** 签名后的交易 */
97
- signedTransaction: string;
98
- /** 元数据 */
99
- metadata: {
100
- payerAddress: string;
101
- sellerAddresses: string[];
102
- buyerAddresses: string[];
103
- sellerCount: number;
104
- buyerCount: number;
105
- totalBuyAmount: string;
106
- totalSellAmount: string;
107
- profitAmount: string;
108
- profitRecipient: string;
109
- userType: string;
110
- };
111
- }
49
+ export type { BundleMultiSwapParams, BundleMultiSwapResult } from './types.js';
112
50
  /**
113
51
  * 多对多换手 - 多个卖家 + 多个买家
114
52
  *