four-flap-meme-sdk 1.9.49 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) 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/abis/common.js +74 -68
  5. package/dist/abis/flap/vault.js +9 -7
  6. package/dist/abis/index.d.ts +3 -4
  7. package/dist/abis/index.js +3 -4
  8. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  9. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  10. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  11. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  12. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  13. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  14. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  15. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  16. package/dist/bundle-core/config-helpers.d.ts +36 -0
  17. package/dist/bundle-core/config-helpers.js +57 -0
  18. package/dist/bundle-core/errors.d.ts +50 -0
  19. package/dist/bundle-core/errors.js +34 -0
  20. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  21. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  22. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  23. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  24. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  25. package/dist/bundle-core/four-meme/core.js +515 -0
  26. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  27. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  28. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  29. package/dist/bundle-core/four-meme/private.js +465 -0
  30. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  31. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  32. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  33. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  34. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  35. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  36. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  37. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  38. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  39. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  40. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  41. package/dist/bundle-core/four-meme/swap.js +505 -0
  42. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  43. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  44. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  45. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  46. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  47. package/dist/bundle-core/four-meme/types/index.js +1 -0
  48. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  49. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  50. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  51. package/dist/bundle-core/four-meme/types.js +1 -0
  52. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  53. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  54. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  55. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  56. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  57. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  58. package/dist/bundle-core/index.d.ts +8 -0
  59. package/dist/bundle-core/index.js +8 -0
  60. package/dist/bundle-core/internal.d.ts +21 -0
  61. package/dist/bundle-core/internal.js +182 -0
  62. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  63. package/dist/bundle-core/sign-context-helpers.js +67 -0
  64. package/dist/bundle-core/submit.d.ts +293 -0
  65. package/dist/bundle-core/submit.js +727 -0
  66. package/dist/bundle-core/types/index.d.ts +8 -0
  67. package/dist/bundle-core/types/index.js +1 -0
  68. package/dist/bundle-core/types.d.ts +1 -0
  69. package/dist/bundle-core/types.js +1 -0
  70. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  71. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -116
  72. package/dist/chains/bsc/four/config.d.ts +5 -70
  73. package/dist/chains/bsc/four/config.js +2 -115
  74. package/dist/chains/bsc/four/core.d.ts +1 -4
  75. package/dist/chains/bsc/four/core.js +1 -589
  76. package/dist/chains/bsc/four/disperse.d.ts +12 -0
  77. package/dist/chains/bsc/four/disperse.js +470 -0
  78. package/dist/chains/bsc/four/index.d.ts +6 -6
  79. package/dist/chains/bsc/four/index.js +6 -6
  80. package/dist/chains/bsc/four/internal.d.ts +2 -50
  81. package/dist/chains/bsc/four/internal.js +2 -237
  82. package/dist/chains/bsc/four/pairwise.d.ts +7 -0
  83. package/dist/chains/bsc/four/pairwise.js +308 -0
  84. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  85. package/dist/chains/bsc/four/pancake-proxy.js +1 -688
  86. package/dist/chains/bsc/four/private.d.ts +1 -27
  87. package/dist/chains/bsc/four/private.js +1 -477
  88. package/dist/chains/bsc/four/submit.d.ts +2 -315
  89. package/dist/chains/bsc/four/submit.js +2 -746
  90. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  91. package/dist/chains/bsc/four/swap-buy-first.js +2 -506
  92. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  93. package/dist/chains/bsc/four/swap-internal.js +1 -18
  94. package/dist/chains/bsc/four/swap.d.ts +2 -144
  95. package/dist/chains/bsc/four/swap.js +2 -760
  96. package/dist/chains/bsc/four/sweep.d.ts +13 -0
  97. package/dist/chains/bsc/four/sweep.js +788 -0
  98. package/dist/chains/bsc/four/types.d.ts +1 -476
  99. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  100. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  101. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  102. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  103. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  104. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  105. package/dist/chains/bsc/four/utils.d.ts +5 -18
  106. package/dist/chains/bsc/four/utils.js +5 -1534
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  109. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  110. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -207
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  112. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  113. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  114. package/dist/chains/bsc/pancake/bundle-swap.js +111 -686
  115. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  116. package/dist/chains/bsc/pancake/index.js +1 -3
  117. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  118. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  119. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  120. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  121. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  122. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  123. package/dist/chains/eni/batch-router/transfer.js +54 -23
  124. package/dist/chains/eni/batch-router/utils.js +32 -6
  125. package/dist/chains/eni/bundler/sign.js +4 -4
  126. package/dist/chains/eni/bundler/submit.js +1 -4
  127. package/dist/chains/eni/constants.js +1 -1
  128. package/dist/chains/eni/index.d.ts +1 -1
  129. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  130. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  131. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  132. package/dist/chains/eni/platforms/daoaas/meta.js +8 -4
  133. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -43
  134. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  135. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  136. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  137. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  138. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -47
  139. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  140. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  141. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  142. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  143. package/dist/chains/eni/platforms/iro/index.js +4 -4
  144. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  145. package/dist/chains/eni/platforms/iro/token.js +107 -31
  146. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  147. package/dist/chains/eni/submit.js +5 -13
  148. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  149. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -20
  150. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  151. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  152. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -56
  153. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  154. package/dist/chains/xlayer/eip7702/bundle-sell.js +26 -74
  155. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  156. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -68
  157. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  158. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  159. package/dist/chains/xlayer/eip7702/index.d.ts +27 -46
  160. package/dist/chains/xlayer/eip7702/index.js +27 -81
  161. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  162. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  163. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  164. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +58 -291
  165. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  166. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  167. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  168. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  169. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  170. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  171. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  172. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  173. package/dist/chains/xlayer/eip7702/volume.js +83 -158
  174. package/dist/chains/xlayer/eoa/constants.js +1 -1
  175. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  176. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  177. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  178. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  179. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +64 -276
  180. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  181. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +14 -14
  182. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  183. package/dist/chains/xlayer/eoa/index.js +8 -23
  184. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  185. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  186. package/dist/chains/xlayer/eoa/types-core.d.ts +363 -0
  187. package/dist/chains/xlayer/eoa/types-core.js +53 -0
  188. package/dist/chains/xlayer/eoa/types-create.d.ts +413 -0
  189. package/dist/chains/xlayer/eoa/types-create.js +9 -0
  190. package/dist/chains/xlayer/eoa/types-volume.d.ts +209 -0
  191. package/dist/chains/xlayer/eoa/types-volume.js +13 -0
  192. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  193. package/dist/chains/xlayer/eoa/types.js +1 -3
  194. package/dist/contracts/helper3.d.ts +20 -17
  195. package/dist/contracts/helper3.js +56 -20
  196. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  197. package/dist/contracts/tm-bundle-helpers.js +72 -0
  198. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  199. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -117
  200. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -70
  201. package/dist/contracts/tm-bundle-merkle/config.js +2 -115
  202. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  203. package/dist/contracts/tm-bundle-merkle/core.js +1 -588
  204. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  205. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  206. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -50
  207. package/dist/contracts/tm-bundle-merkle/internal.js +2 -236
  208. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  209. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -687
  210. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  211. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  212. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  213. package/dist/contracts/tm-bundle-merkle/submit.js +3 -919
  214. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  215. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -505
  216. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  217. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  218. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  219. package/dist/contracts/tm-bundle-merkle/swap.js +2 -757
  220. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  221. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  222. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  223. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  224. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  225. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  226. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  227. package/dist/contracts/tm-bundle-merkle/utils.d.ts +5 -6
  228. package/dist/contracts/tm-bundle-merkle/utils.js +5 -6
  229. package/dist/contracts/tm-bundle.d.ts +3 -51
  230. package/dist/contracts/tm-bundle.js +102 -142
  231. package/dist/contracts/tm.d.ts +3 -2
  232. package/dist/contracts/tm.js +36 -32
  233. package/dist/contracts/tm1.js +9 -4
  234. package/dist/contracts/tm2.js +9 -4
  235. package/dist/dex/direct-router-helpers.d.ts +264 -0
  236. package/dist/dex/direct-router-helpers.js +539 -0
  237. package/dist/dex/direct-router.d.ts +3 -125
  238. package/dist/dex/direct-router.js +237 -652
  239. package/dist/dex/types.d.ts +81 -0
  240. package/dist/dex/types.js +1 -0
  241. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  242. package/dist/exports/root-bundle-and-tooling.js +30 -0
  243. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  244. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  245. package/dist/exports/root-foundations.d.ts +35 -0
  246. package/dist/exports/root-foundations.js +70 -0
  247. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  248. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  249. package/dist/flows/create.d.ts +2 -2
  250. package/dist/flows/create.js +6 -6
  251. package/dist/flows/index.d.ts +1 -0
  252. package/dist/flows/index.js +1 -0
  253. package/dist/index.d.ts +20 -91
  254. package/dist/index.js +20 -215
  255. package/dist/shared/abis/common.d.ts +2 -83
  256. package/dist/shared/abis/common.js +2 -252
  257. package/dist/shared/abis/index.d.ts +5 -6
  258. package/dist/shared/abis/index.js +5 -7
  259. package/dist/shared/clients/blockrazor.js +41 -24
  260. package/dist/shared/clients/club48.js +30 -26
  261. package/dist/shared/clients/emitservice.js +2 -0
  262. package/dist/shared/clients/four.js +23 -18
  263. package/dist/shared/clients/index.d.ts +8 -0
  264. package/dist/shared/clients/index.js +8 -0
  265. package/dist/shared/clients/merkle.js +26 -30
  266. package/dist/shared/constants/addresses.d.ts +1 -1
  267. package/dist/shared/constants/addresses.js +11 -2
  268. package/dist/shared/constants/chains.d.ts +1 -1
  269. package/dist/shared/constants/chains.js +1 -1
  270. package/dist/shared/constants/gas.d.ts +1 -1
  271. package/dist/shared/constants/gas.js +2 -6
  272. package/dist/shared/constants/index.d.ts +1 -0
  273. package/dist/shared/constants/index.js +1 -0
  274. package/dist/shared/constants/quote.d.ts +30 -0
  275. package/dist/shared/constants/quote.js +37 -0
  276. package/dist/shared/flap/__tests__/curve.test.js +3 -3
  277. package/dist/shared/flap/abi.js +1 -1
  278. package/dist/shared/flap/constants.d.ts +1 -1
  279. package/dist/shared/flap/constants.js +2 -2
  280. package/dist/shared/flap/curve.js +3 -0
  281. package/dist/shared/flap/errors.d.ts +1 -4
  282. package/dist/shared/flap/errors.js +21 -3
  283. package/dist/shared/flap/index.d.ts +2 -2
  284. package/dist/shared/flap/index.js +2 -2
  285. package/dist/shared/flap/meta.d.ts +16 -18
  286. package/dist/shared/flap/meta.js +14 -26
  287. package/dist/shared/flap/permit.js +6 -5
  288. package/dist/shared/flap/pinata.d.ts +9 -2
  289. package/dist/shared/flap/pinata.js +20 -18
  290. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  291. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  292. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  293. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  294. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  295. package/dist/shared/flap/portal-bundle-merkle/core.js +66 -156
  296. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +81 -86
  297. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  298. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  299. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  300. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  301. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  302. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  303. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  304. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  305. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  306. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  307. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  308. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  309. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  310. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +73 -3
  311. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +100 -0
  312. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +133 -0
  313. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  314. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  315. package/dist/shared/flap/portal-bundle.js +54 -42
  316. package/dist/shared/flap/portal.js +32 -10
  317. package/dist/shared/flap/vanity.js +4 -7
  318. package/dist/shared/flap/vault.d.ts +1 -1
  319. package/dist/shared/flap/vault.js +54 -48
  320. package/dist/shared/flap 2/__tests__/curve.test.d.ts +1 -0
  321. package/dist/shared/flap 2/portal-bundle-merkle/types.js +1 -0
  322. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  323. package/dist/shared/foundation/dex/v3-path.js +35 -0
  324. package/dist/shared/foundation/gas/bundle-gas.d.ts +39 -0
  325. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  326. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  327. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  328. package/dist/shared/foundation/index.d.ts +13 -0
  329. package/dist/shared/foundation/index.js +12 -0
  330. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  331. package/dist/shared/foundation/nonce/nonce-manager.js +180 -0
  332. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  333. package/dist/shared/foundation/normalize-unknown.js +29 -0
  334. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  335. package/dist/shared/foundation/sdk-logger.js +12 -0
  336. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  337. package/dist/shared/foundation/tx/build-request.js +25 -0
  338. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  339. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  340. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  341. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  342. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  343. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  344. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  345. package/dist/shared/foundation/types/erc20.js +1 -0
  346. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  347. package/dist/shared/foundation/types/holders-maker.js +1 -0
  348. package/dist/shared/foundation/types/index.d.ts +7 -0
  349. package/dist/shared/foundation/types/index.js +1 -0
  350. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  351. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  352. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  353. package/dist/shared/foundation/types/multicall.js +1 -0
  354. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  355. package/dist/shared/foundation/types/private-sale.js +1 -0
  356. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  357. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  358. package/dist/shared/four/tax-token.d.ts +1 -1
  359. package/dist/shared/four/tax-token.js +27 -7
  360. package/dist/shared/index.d.ts +4 -0
  361. package/dist/shared/index.js +4 -0
  362. package/dist/types/distribute.d.ts +72 -0
  363. package/dist/types/distribute.js +1 -0
  364. package/dist/types 2/errors.d.ts +27 -0
  365. package/dist/types 2/errors.js +34 -0
  366. package/dist/utils/airdrop-sweep-types.d.ts +1 -0
  367. package/dist/utils/airdrop-sweep-types.js +1 -0
  368. package/dist/utils/airdrop-sweep.d.ts +4 -76
  369. package/dist/utils/airdrop-sweep.js +38 -52
  370. package/dist/utils/bundle-helpers.d.ts +9 -243
  371. package/dist/utils/bundle-helpers.js +10 -584
  372. package/dist/utils/constants.d.ts +5 -61
  373. package/dist/utils/constants.js +5 -80
  374. package/dist/utils/contract-factory.d.ts +2 -4
  375. package/dist/utils/contract-factory.js +25 -18
  376. package/dist/utils/erc20-types.d.ts +1 -0
  377. package/dist/utils/erc20-types.js +1 -0
  378. package/dist/utils/erc20.d.ts +8 -90
  379. package/dist/utils/erc20.js +94 -153
  380. package/dist/utils/errors.d.ts +10 -22
  381. package/dist/utils/errors.js +61 -79
  382. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  383. package/dist/utils/holders-maker/addresses.js +15 -0
  384. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  385. package/dist/utils/holders-maker/buy-tx.js +278 -0
  386. package/dist/utils/holders-maker/constants.d.ts +6 -0
  387. package/dist/utils/holders-maker/constants.js +7 -0
  388. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  389. package/dist/utils/holders-maker/disperse.js +90 -0
  390. package/dist/utils/holders-maker/routing.d.ts +4 -0
  391. package/dist/utils/holders-maker/routing.js +45 -0
  392. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  393. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  394. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  395. package/dist/utils/holders-maker-helpers.js +9 -0
  396. package/dist/utils/holders-maker-types.d.ts +1 -0
  397. package/dist/utils/holders-maker-types.js +1 -0
  398. package/dist/utils/holders-maker.d.ts +2 -138
  399. package/dist/utils/holders-maker.js +23 -651
  400. package/dist/utils/hop-chains.d.ts +35 -0
  401. package/dist/utils/hop-chains.js +215 -0
  402. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  403. package/dist/utils/lp-inspect-helpers.js +109 -0
  404. package/dist/utils/lp-inspect-types.d.ts +1 -0
  405. package/dist/utils/lp-inspect-types.js +1 -0
  406. package/dist/utils/lp-inspect.d.ts +2 -112
  407. package/dist/utils/lp-inspect.js +63 -195
  408. package/dist/utils/mpcExclusive.d.ts +2 -5
  409. package/dist/utils/mpcExclusive.js +4 -3
  410. package/dist/utils/private-sale-types.d.ts +1 -0
  411. package/dist/utils/private-sale-types.js +1 -0
  412. package/dist/utils/private-sale.d.ts +2 -58
  413. package/dist/utils/private-sale.js +2 -7
  414. package/dist/utils/provider-factory.d.ts +4 -0
  415. package/dist/utils/provider-factory.js +10 -0
  416. package/dist/utils/quote-helpers-types.d.ts +1 -0
  417. package/dist/utils/quote-helpers-types.js +1 -0
  418. package/dist/utils/quote-helpers.d.ts +4 -45
  419. package/dist/utils/quote-helpers.js +15 -65
  420. package/dist/utils/stealth-transfer.d.ts +2 -28
  421. package/dist/utils/stealth-transfer.js +30 -14
  422. package/dist/utils/swap-helpers.d.ts +0 -3
  423. package/dist/utils/swap-helpers.js +6 -9
  424. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  425. package/dist/utils/types/airdrop-sweep.js +1 -0
  426. package/dist/utils/types/contract-factory.d.ts +1 -0
  427. package/dist/utils/types/contract-factory.js +1 -0
  428. package/dist/utils/types/erc20.d.ts +1 -0
  429. package/dist/utils/types/erc20.js +1 -0
  430. package/dist/utils/types/errors.d.ts +1 -0
  431. package/dist/utils/types/errors.js +1 -0
  432. package/dist/utils/types/holders-maker.d.ts +1 -0
  433. package/dist/utils/types/holders-maker.js +1 -0
  434. package/dist/utils/types/hop-chains.d.ts +8 -0
  435. package/dist/utils/types/hop-chains.js +1 -0
  436. package/dist/utils/types/index.d.ts +13 -0
  437. package/dist/utils/types/index.js +1 -0
  438. package/dist/utils/types/lp-inspect.d.ts +1 -0
  439. package/dist/utils/types/lp-inspect.js +1 -0
  440. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  441. package/dist/utils/types/mpc-exclusive.js +1 -0
  442. package/dist/utils/types/private-sale.d.ts +1 -0
  443. package/dist/utils/types/private-sale.js +1 -0
  444. package/dist/utils/types/quote-helpers.d.ts +1 -0
  445. package/dist/utils/types/quote-helpers.js +1 -0
  446. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  447. package/dist/utils/types/stealth-transfer.js +1 -0
  448. package/dist/utils/types/wallet.d.ts +25 -0
  449. package/dist/utils/types/wallet.js +1 -0
  450. package/dist/utils/wallet.d.ts +2 -25
  451. package/dist/utils/wallet.js +9 -10
  452. package/package.json +55 -2
  453. package/src/abis/contracts/TaxToken.json +969 -0
  454. package/src/abis/contracts/TokenManager.json +836 -0
  455. package/src/abis/contracts/TokenManager2.json +136 -0
  456. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  457. /package/dist/{shared 2/flap/__tests__/curve.test.d.ts → bundle-core/__tests__/config-helpers.test.d.ts} +0 -0
  458. /package/dist/{shared 2/flap/portal-bundle-merkle/types.js → bundle-core/__tests__/facade-parity.test.d.ts} +0 -0
  459. /package/dist/{shared 2/abis → shared/abis 2}/TaxToken.json +0 -0
  460. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager.json +0 -0
  461. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager2.json +0 -0
  462. /package/dist/{shared 2/abis → shared/abis 2}/TokenManagerHelper3.json +0 -0
  463. /package/dist/{shared 2/abis → shared/abis 2}/common.d.ts +0 -0
  464. /package/dist/{shared 2/abis → shared/abis 2}/common.js +0 -0
  465. /package/dist/{shared 2/abis → shared/abis 2}/index.d.ts +0 -0
  466. /package/dist/{shared 2/abis → shared/abis 2}/index.js +0 -0
  467. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.d.ts +0 -0
  468. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.js +0 -0
  469. /package/dist/{shared 2/clients → shared/clients 2}/club48.d.ts +0 -0
  470. /package/dist/{shared 2/clients → shared/clients 2}/club48.js +0 -0
  471. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.d.ts +0 -0
  472. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.js +0 -0
  473. /package/dist/{shared 2/clients → shared/clients 2}/four.d.ts +0 -0
  474. /package/dist/{shared 2/clients → shared/clients 2}/four.js +0 -0
  475. /package/dist/{shared 2/clients → shared/clients 2}/merkle.d.ts +0 -0
  476. /package/dist/{shared 2/clients → shared/clients 2}/merkle.js +0 -0
  477. /package/dist/{shared 2/flap → shared/flap 2}/__tests__/curve.test.js +0 -0
  478. /package/dist/{shared 2/flap → shared/flap 2}/abi.d.ts +0 -0
  479. /package/dist/{shared 2/flap → shared/flap 2}/abi.js +0 -0
  480. /package/dist/{shared 2/flap → shared/flap 2}/constants.d.ts +0 -0
  481. /package/dist/{shared 2/flap → shared/flap 2}/constants.js +0 -0
  482. /package/dist/{shared 2/flap → shared/flap 2}/curve.d.ts +0 -0
  483. /package/dist/{shared 2/flap → shared/flap 2}/curve.js +0 -0
  484. /package/dist/{shared 2/flap → shared/flap 2}/errors.d.ts +0 -0
  485. /package/dist/{shared 2/flap → shared/flap 2}/errors.js +0 -0
  486. /package/dist/{shared 2/flap → shared/flap 2}/index.d.ts +0 -0
  487. /package/dist/{shared 2/flap → shared/flap 2}/index.js +0 -0
  488. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.d.ts +0 -0
  489. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.js +0 -0
  490. /package/dist/{shared 2/flap → shared/flap 2}/meta.d.ts +0 -0
  491. /package/dist/{shared 2/flap → shared/flap 2}/meta.js +0 -0
  492. /package/dist/{shared 2/flap → shared/flap 2}/permit.d.ts +0 -0
  493. /package/dist/{shared 2/flap → shared/flap 2}/permit.js +0 -0
  494. /package/dist/{shared 2/flap → shared/flap 2}/pinata.d.ts +0 -0
  495. /package/dist/{shared 2/flap → shared/flap 2}/pinata.js +0 -0
  496. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.d.ts +0 -0
  497. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.js +0 -0
  498. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.d.ts +0 -0
  499. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.js +0 -0
  500. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.d.ts +0 -0
  501. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.js +0 -0
  502. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  503. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.js +0 -0
  504. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.d.ts +0 -0
  505. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.js +0 -0
  506. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  507. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.js +0 -0
  508. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.d.ts +0 -0
  509. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.js +0 -0
  510. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.d.ts +0 -0
  511. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.js +0 -0
  512. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.d.ts +0 -0
  513. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.js +0 -0
  514. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/types.d.ts +0 -0
  515. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.d.ts +0 -0
  516. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.js +0 -0
  517. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.d.ts +0 -0
  518. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.js +0 -0
  519. /package/dist/{shared 2/flap → shared/flap 2}/portal.d.ts +0 -0
  520. /package/dist/{shared 2/flap → shared/flap 2}/portal.js +0 -0
  521. /package/dist/{shared 2/flap → shared/flap 2}/vanity.d.ts +0 -0
  522. /package/dist/{shared 2/flap → shared/flap 2}/vanity.js +0 -0
  523. /package/dist/{shared 2/flap → shared/flap 2}/vault.d.ts +0 -0
  524. /package/dist/{shared 2/flap → shared/flap 2}/vault.js +0 -0
  525. /package/dist/{shared 2/four → shared/four 2}/index.d.ts +0 -0
  526. /package/dist/{shared 2/four → shared/four 2}/index.js +0 -0
  527. /package/dist/{shared 2/four → shared/four 2}/tax-token.d.ts +0 -0
  528. /package/dist/{shared 2/four → shared/four 2}/tax-token.js +0 -0
  529. /package/dist/{shared 2/index.d.ts → shared/index 2.js} +0 -0
  530. /package/dist/{shared 2/index.js → shared/index.d 2.ts} +0 -0
@@ -53,6 +53,8 @@ export interface BundleBuyParams {
53
53
  routerAddress?: string;
54
54
  /** V3 费率(可选,默认 2500,仅 V3 使用) */
55
55
  fee?: number;
56
+ /** 用户类型(影响利润率) */
57
+ userType?: UserType;
56
58
  /** 配置 */
57
59
  config?: EIP7702Config;
58
60
  }
@@ -87,6 +89,8 @@ export interface BundleSellParams {
87
89
  routerAddress?: string;
88
90
  /** V3 费率(可选,默认 2500,仅 V3 使用) */
89
91
  fee?: number;
92
+ /** 用户类型(影响利润率) */
93
+ userType?: UserType;
90
94
  /** 配置 */
91
95
  config?: EIP7702Config;
92
96
  }
@@ -156,6 +160,14 @@ export interface BundleSwapParams {
156
160
  routerAddress?: string;
157
161
  /** V3 费率(可选,默认 2500,仅 V3 使用) */
158
162
  fee?: number;
163
+ /** 用户类型(影响利润率) */
164
+ userType?: UserType;
165
+ /**
166
+ * 是否使用资金利用率模式(默认 false)
167
+ * - false(普通模式): 卖家卖出 OKB 留在卖家账户,买家用自己预存的 OKB 买入
168
+ * - true(资金利用率模式): 卖家卖出的 OKB 通过多跳转账给买家,买家用收到的 OKB 买入
169
+ */
170
+ useFundUtilization?: boolean;
159
171
  /** 配置 */
160
172
  config?: EIP7702Config;
161
173
  }
@@ -180,6 +192,14 @@ export interface BundleBatchSwapParams {
180
192
  routerAddress?: string;
181
193
  /** V3 费率(可选,默认 2500,仅 V3 使用) */
182
194
  fee?: number;
195
+ /** 用户类型(影响利润率) */
196
+ userType?: UserType;
197
+ /**
198
+ * 是否使用资金利用率模式(默认 false)
199
+ * - false(普通模式): 卖家卖出 OKB 留在卖家账户,买家用自己预存的 OKB 买入
200
+ * - true(资金利用率模式): 卖家卖出的 OKB 通过多跳转账给买家,买家用收到的 OKB 买入
201
+ */
202
+ useFundUtilization?: boolean;
183
203
  /** 配置 */
184
204
  config?: EIP7702Config;
185
205
  }
@@ -442,6 +462,74 @@ export interface BundleCreateToDexResult {
442
462
  profitAmount: string;
443
463
  };
444
464
  }
465
+ export interface BundleMultiSwapParams {
466
+ /** Payer 钱包私钥(支付 Gas 费) */
467
+ mainPrivateKey: string;
468
+ /** 卖出钱包私钥列表 */
469
+ sellerPrivateKeys: string[];
470
+ /** 买入钱包私钥列表 */
471
+ buyerPrivateKeys: string[];
472
+ /** 买入总金额 (OKB) */
473
+ totalBuyAmount: string;
474
+ /** 代币地址 */
475
+ tokenAddress: string;
476
+ /** 代币精度 */
477
+ tokenDecimals?: number;
478
+ /** 卖出百分比(1-100,默认 100) */
479
+ sellPercent?: number;
480
+ /** 交易类型:FLAP 内盘 / V2 / V3(默认 V3) */
481
+ tradeType?: TradeType;
482
+ /** 路由地址(可选,根据 tradeType 自动选择) */
483
+ routerAddress?: string;
484
+ /** V3 费率(可选,默认 2500,仅 V3 使用) */
485
+ fee?: number;
486
+ /** 用户类型(影响利润率) */
487
+ userType?: UserType;
488
+ /** 配置 */
489
+ config?: EIP7702Config;
490
+ }
491
+ export interface BundleMultiSwapResult {
492
+ /** 签名后的交易 */
493
+ signedTransaction: string;
494
+ /** 元数据 */
495
+ metadata: {
496
+ payerAddress: string;
497
+ sellerAddresses: string[];
498
+ buyerAddresses: string[];
499
+ sellerCount: number;
500
+ buyerCount: number;
501
+ totalBuyAmount: string;
502
+ totalSellAmount: string;
503
+ profitAmount: string;
504
+ profitRecipient: string;
505
+ userType: string;
506
+ };
507
+ }
508
+ export interface BundleApproveMultiSpendersParams {
509
+ /** 主钱包(发起交易,支付 gas) */
510
+ mainPrivateKey: string;
511
+ /** 需要授权的钱包私钥列表 */
512
+ privateKeys: string[];
513
+ /** 代币地址 */
514
+ tokenAddress: string;
515
+ /** 授权给的地址列表(多个 spender) */
516
+ spenderAddresses: string[];
517
+ /** 授权金额(可选,默认 MaxUint256) */
518
+ amount?: bigint;
519
+ /** 配置 */
520
+ config?: EIP7702Config;
521
+ }
522
+ export interface BundleApproveMultiSpendersResult {
523
+ /** 签名后的交易 */
524
+ signedTransaction: string;
525
+ /** 元数据 */
526
+ metadata: {
527
+ walletCount: number;
528
+ tokenAddress: string;
529
+ spenderAddresses: string[];
530
+ totalApproveCalls: number;
531
+ };
532
+ }
445
533
  export type AmountMode = 'average' | 'random' | 'custom';
446
534
  export interface BundleGraduateBuyParams {
447
535
  /** 代币地址 */
@@ -62,9 +62,6 @@ export type UserType = 'v0' | 'v1' | 'default';
62
62
  export declare function getProfitRateBps(userType?: UserType): number;
63
63
  /**
64
64
  * 根据用户类型获取利润率(双边/换手模式)
65
- * - v0: 4 bps = 0.04%
66
- * - v1: 5 bps = 0.05%
67
- * - default: 4 bps = 0.04%
68
65
  */
69
66
  export declare function getProfitRateBpsDouble(userType?: UserType): number;
70
67
  /**
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * EIP-7702 XLayer 工具函数
3
3
  */
4
- import { ethers, Wallet, JsonRpcProvider } from 'ethers';
4
+ import { ethers, Wallet } from 'ethers';
5
+ import { createXLayerProvider } from '../../../utils/provider-factory.js';
5
6
  import * as rlp from '@ethereumjs/rlp';
6
- import { XLAYER_CHAIN_ID, XLAYER_RPC_URL, MULTICALL3_ADDRESS, GAS_ESTIMATE, EIP7702_TX_TYPE, EIP7702_AUTH_PREFIX, MULTICALL3_ABI, PROFIT_CONFIG, DEFAULT_DEADLINE_MINUTES, } from './constants.js';
7
+ import { XLAYER_CHAIN_ID, XLAYER_RPC_URL, MULTICALL3_ADDRESS, GAS_ESTIMATE, EIP7702_TX_TYPE, EIP7702_AUTH_PREFIX, MULTICALL3_ABI, DEFAULT_DEADLINE_MINUTES, } from './constants.js';
8
+ import { getProfitRateBps as getSharedProfitRateBps, getProfitRecipient as pickRandomProfitRecipient, } from '../../../shared/constants/index.js';
7
9
  // ========================================
8
10
  // 字节转换工具
9
11
  // ========================================
@@ -41,7 +43,7 @@ const providerCache = new Map();
41
43
  export function getCachedProvider(rpcUrl = XLAYER_RPC_URL) {
42
44
  let provider = providerCache.get(rpcUrl);
43
45
  if (!provider) {
44
- provider = new JsonRpcProvider(rpcUrl, { chainId: XLAYER_CHAIN_ID, name: 'xlayer' });
46
+ provider = createXLayerProvider(rpcUrl);
45
47
  providerCache.set(rpcUrl, provider);
46
48
  }
47
49
  return provider;
@@ -220,11 +222,7 @@ export function generateRandomWallets(count) {
220
222
  // EIP-7702 授权签名
221
223
  // ========================================
222
224
  export async function signAuthorization(wallet, delegateAddress, nonce, chainId = XLAYER_CHAIN_ID) {
223
- const authData = [
224
- bigintToBytes(BigInt(chainId)),
225
- addressToBytes(delegateAddress),
226
- bigintToBytes(nonce),
227
- ];
225
+ const authData = [bigintToBytes(BigInt(chainId)), addressToBytes(delegateAddress), bigintToBytes(nonce)];
228
226
  const rlpEncoded = rlp.encode(authData);
229
227
  const toSign = new Uint8Array(1 + rlpEncoded.length);
230
228
  toSign[0] = EIP7702_AUTH_PREFIX;
@@ -253,7 +251,7 @@ export async function signAuthorizationWithNonce(wallet, delegateAddress, provid
253
251
  */
254
252
  export async function signAuthorizationsBatch(wallets, delegateAddress, provider, mainWalletIndex) {
255
253
  // 并行获取所有钱包的 nonce
256
- const nonces = await Promise.all(wallets.map(w => provider.getTransactionCount(w.address, 'pending')));
254
+ const nonces = await Promise.all(wallets.map((w) => provider.getTransactionCount(w.address, 'pending')));
257
255
  // 并行签署所有授权(签名是同步 CPU 操作,但包装成 Promise 以保持一致性)
258
256
  return Promise.all(wallets.map((wallet, i) => {
259
257
  const isMainWallet = mainWalletIndex !== undefined && i === mainWalletIndex;
@@ -295,7 +293,7 @@ export function signAuthorizationsWithNonces(wallets, nonces, delegateAddress, m
295
293
  * 批量获取多个地址的 nonce - 并行
296
294
  */
297
295
  export async function batchGetNonces(addresses, provider) {
298
- return Promise.all(addresses.map(addr => provider.getTransactionCount(addr, 'pending')));
296
+ return Promise.all(addresses.map((addr) => provider.getTransactionCount(addr, 'pending')));
299
297
  }
300
298
  // ========================================
301
299
  // EIP-7702 交易构建
@@ -314,14 +312,14 @@ export async function buildEIP7702Transaction(mainWallet, authorizations, calls,
314
312
  const maxFeePerGas = feeData.maxFeePerGas || ethers.parseUnits('50', 'gwei');
315
313
  const multicall3 = new ethers.Interface(MULTICALL3_ABI);
316
314
  const callData = multicall3.encodeFunctionData('aggregate3Value', [
317
- calls.map(c => ({
315
+ calls.map((c) => ({
318
316
  target: c.target,
319
317
  allowFailure: c.allowFailure,
320
318
  value: c.value,
321
319
  callData: c.callData,
322
- }))
320
+ })),
323
321
  ]);
324
- const authList = authorizations.map(auth => [
322
+ const authList = authorizations.map((auth) => [
325
323
  bigintToBytes(auth.chainId),
326
324
  addressToBytes(auth.address),
327
325
  bigintToBytes(auth.nonce),
@@ -372,14 +370,14 @@ export function buildEIP7702TransactionSync(mainWallet, authorizations, calls, t
372
370
  const maxFeePerGas = feeData.maxFeePerGas || ethers.parseUnits('50', 'gwei');
373
371
  const multicall3 = new ethers.Interface(MULTICALL3_ABI);
374
372
  const callData = multicall3.encodeFunctionData('aggregate3Value', [
375
- calls.map(c => ({
373
+ calls.map((c) => ({
376
374
  target: c.target,
377
375
  allowFailure: c.allowFailure,
378
376
  value: c.value,
379
377
  callData: c.callData,
380
- }))
378
+ })),
381
379
  ]);
382
- const authList = authorizations.map(auth => [
380
+ const authList = authorizations.map((auth) => [
383
381
  bigintToBytes(auth.chainId),
384
382
  addressToBytes(auth.address),
385
383
  bigintToBytes(auth.nonce),
@@ -427,29 +425,26 @@ export function buildEIP7702TransactionSync(mainWallet, authorizations, calls, t
427
425
  */
428
426
  export function getProfitRateBps(userType) {
429
427
  if (userType === 'v0')
430
- return PROFIT_CONFIG.RATE_BPS_V0;
428
+ return getSharedProfitRateBps('v0Single');
431
429
  if (userType === 'v1')
432
- return PROFIT_CONFIG.RATE_BPS_V1;
433
- return PROFIT_CONFIG.RATE_BPS_V0; // 默认使用 v0 费率
430
+ return getSharedProfitRateBps('v1Single');
431
+ return getSharedProfitRateBps('v0Single');
434
432
  }
435
433
  /**
436
434
  * 根据用户类型获取利润率(双边/换手模式)
437
- * - v0: 4 bps = 0.04%
438
- * - v1: 5 bps = 0.05%
439
- * - default: 4 bps = 0.04%
440
435
  */
441
436
  export function getProfitRateBpsDouble(userType) {
442
437
  if (userType === 'v0')
443
- return PROFIT_CONFIG.RATE_BPS_V0_DOUBLE;
438
+ return getSharedProfitRateBps('v0Double');
444
439
  if (userType === 'v1')
445
- return PROFIT_CONFIG.RATE_BPS_V1_DOUBLE;
446
- return PROFIT_CONFIG.RATE_BPS_V0_DOUBLE; // 默认使用 v0 费率
440
+ return getSharedProfitRateBps('v1Double');
441
+ return getSharedProfitRateBps('v0Double');
447
442
  }
448
443
  /**
449
444
  * 计算利润金额(旧版兼容)
450
445
  */
451
446
  export function calculateProfitAmount(totalFlowWei, isSwapMode = false) {
452
- const rateBps = isSwapMode ? PROFIT_CONFIG.RATE_BPS_SWAP : PROFIT_CONFIG.RATE_BPS;
447
+ const rateBps = getSharedProfitRateBps(isSwapMode ? 'bundleSwap' : 'normal');
453
448
  return (totalFlowWei * BigInt(rateBps)) / 10000n;
454
449
  }
455
450
  /**
@@ -478,7 +473,7 @@ export function calculateProfitAmountByTxCount(totalFlowWei, txCount, userType)
478
473
  return (totalFlowWei * BigInt(totalRateBps)) / 10000n;
479
474
  }
480
475
  export function getProfitRecipient(config) {
481
- return config?.profitRecipient ?? PROFIT_CONFIG.RECIPIENT;
476
+ return config?.profitRecipient ?? pickRandomProfitRecipient();
482
477
  }
483
478
  // ========================================
484
479
  // 时间工具
@@ -487,5 +482,5 @@ export function getDeadline(minutes = DEFAULT_DEADLINE_MINUTES) {
487
482
  return Math.floor(Date.now() / 1000) + minutes * 60;
488
483
  }
489
484
  export function delay(ms) {
490
- return new Promise(resolve => setTimeout(resolve, ms));
485
+ return new Promise((resolve) => setTimeout(resolve, ms));
491
486
  }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * EIP-7702 XLayer 刷量功能
3
+ *
4
+ * 支持两种模式:
5
+ * 1. 无币模式 (Wash): 单钱包买入+卖出,不需要预先持有代币
6
+ * 2. 捆绑模式 (Bundle): 多钱包批量买入 + 批量卖出
7
+ *
8
+ * 支持池子类型:
9
+ * - FLAP: 内盘 (Flap Portal)
10
+ * - V2: PotatoSwap V2 外盘
11
+ * - V3: PotatoSwap V3 外盘
12
+ *
13
+ * 只生成签名,由调用方决定如何提交
14
+ */
15
+ import type { EIP7702Config, TradeType, GeneratedWallet } from './types.js';
16
+ import type { UserType } from './utils.js';
17
+ export type VolumeMode = 'wash' | 'bundle';
18
+ export type PoolType = 'FLAP' | 'V2' | 'V3';
19
+ /**
20
+ * 截断小数位数,避免 parseEther/parseUnits 报错
21
+ * @param value 数值字符串
22
+ * @param decimals 保留的小数位数(默认 18)
23
+ */
24
+ export declare function truncateDecimals(value: string, decimals?: number): string;
25
+ export interface VolumeProgress {
26
+ currentRound: number;
27
+ totalRounds: number;
28
+ status: 'pending' | 'running' | 'completed' | 'failed';
29
+ message?: string;
30
+ }
31
+ export interface WashVolumeParams {
32
+ /** Payer 钱包私钥(支付 Gas 费) */
33
+ mainPrivateKey: string;
34
+ /** 钱包私钥列表(每个钱包独立执行买入+卖出) */
35
+ privateKeys: string[];
36
+ /** 代币地址 */
37
+ tokenAddress: string;
38
+ /** 代币精度 */
39
+ tokenDecimals?: number;
40
+ /** 每个钱包的买入金额 (OKB) */
41
+ buyAmountPerWallet: string;
42
+ /** 卖出百分比(1-100) */
43
+ sellPercent?: number;
44
+ /** 池子类型 */
45
+ poolType?: PoolType;
46
+ /** 路由地址(V2/V3 模式) */
47
+ routerAddress?: string;
48
+ /** V3 费率 */
49
+ fee?: number;
50
+ /** 用户类型(影响利润率) */
51
+ userType?: UserType;
52
+ /** EIP-7702 配置 */
53
+ config?: EIP7702Config;
54
+ }
55
+ export interface WashVolumeResult {
56
+ signedTransaction: string;
57
+ metadata: {
58
+ walletCount: number;
59
+ buyAmountPerWallet: string;
60
+ totalBuyAmount: string;
61
+ sellPercent: number;
62
+ poolType: PoolType;
63
+ profitAmount: string;
64
+ };
65
+ }
66
+ export interface BundleVolumeParams {
67
+ mainPrivateKey: string;
68
+ buyerPrivateKeys: string[];
69
+ buyAmounts: string[];
70
+ sellerPrivateKeys: string[];
71
+ sellAmounts?: string[];
72
+ sellPercent?: number;
73
+ tokenAddress: string;
74
+ tokenDecimals?: number;
75
+ poolType?: PoolType;
76
+ routerAddress?: string;
77
+ fee?: number;
78
+ userType?: UserType;
79
+ config?: EIP7702Config;
80
+ }
81
+ export interface BundleVolumeResult {
82
+ signedTransaction: string;
83
+ metadata: {
84
+ buyerCount: number;
85
+ sellerCount: number;
86
+ totalBuyAmount: string;
87
+ totalSellAmount: string;
88
+ poolType: PoolType;
89
+ profitAmount: string;
90
+ };
91
+ }
92
+ export interface SingleRoundVolumeResult {
93
+ buySignedTransaction: string;
94
+ sellSignedTransaction: string;
95
+ metadata: {
96
+ buyAmount: string;
97
+ sellPercent: number;
98
+ walletCount: number;
99
+ };
100
+ }
101
+ export interface MakeVolumeParams {
102
+ privateKeys: string[];
103
+ tokenAddress: string;
104
+ tokenDecimals?: number;
105
+ buyAmountPerRound: string;
106
+ rounds: number;
107
+ tradeType?: TradeType;
108
+ routerAddress?: string;
109
+ fee?: number;
110
+ onProgress?: (progress: VolumeProgress) => void;
111
+ config?: EIP7702Config;
112
+ }
113
+ export interface MakeVolumeSignResult {
114
+ rounds: SingleRoundVolumeResult[];
115
+ metadata: {
116
+ totalRounds: number;
117
+ totalBuyAmount: string;
118
+ walletCount: number;
119
+ };
120
+ }
121
+ export interface SwapVolumeSignResult {
122
+ signedTransaction: string;
123
+ hopWallets: GeneratedWallet[];
124
+ metadata: {
125
+ sellerAddress: string;
126
+ buyerAddress: string;
127
+ sellAmount: string;
128
+ };
129
+ }
130
+ /**
131
+ * 无币刷量 - 每个钱包执行买入+卖出
132
+ *
133
+ * 核心逻辑:[利润刮取] + [钱包1买入] + [钱包1卖出] + [钱包2买入] + [钱包2卖出] + ...
134
+ *
135
+ * 特点:
136
+ * - 钱包不需要预先持有代币
137
+ * - 每个钱包在同一笔交易中完成买入和卖出
138
+ * - 利润从主钱包统一支付
139
+ *
140
+ * @example
141
+ * const result = await washVolume({
142
+ * privateKeys: ['0x...', '0x...'],
143
+ * tokenAddress: '0x...',
144
+ * buyAmountPerWallet: '0.01',
145
+ * sellPercent: 100,
146
+ * poolType: 'V3',
147
+ * });
148
+ */
@@ -0,0 +1,48 @@
1
+ /**
2
+ * EIP-7702 XLayer 刷量功能
3
+ *
4
+ * 支持两种模式:
5
+ * 1. 无币模式 (Wash): 单钱包买入+卖出,不需要预先持有代币
6
+ * 2. 捆绑模式 (Bundle): 多钱包批量买入 + 批量卖出
7
+ *
8
+ * 支持池子类型:
9
+ * - FLAP: 内盘 (Flap Portal)
10
+ * - V2: PotatoSwap V2 外盘
11
+ * - V3: PotatoSwap V3 外盘
12
+ *
13
+ * 只生成签名,由调用方决定如何提交
14
+ */
15
+ /**
16
+ * 截断小数位数,避免 parseEther/parseUnits 报错
17
+ * @param value 数值字符串
18
+ * @param decimals 保留的小数位数(默认 18)
19
+ */
20
+ export function truncateDecimals(value, decimals = 18) {
21
+ if (!value || value === '0')
22
+ return value;
23
+ const parts = String(value).split('.');
24
+ if (parts.length === 1)
25
+ return value;
26
+ const intPart = parts[0] || '0';
27
+ const decPart = (parts[1] || '').slice(0, decimals);
28
+ return decPart ? `${intPart}.${decPart}` : intPart;
29
+ }
30
+ /**
31
+ * 无币刷量 - 每个钱包执行买入+卖出
32
+ *
33
+ * 核心逻辑:[利润刮取] + [钱包1买入] + [钱包1卖出] + [钱包2买入] + [钱包2卖出] + ...
34
+ *
35
+ * 特点:
36
+ * - 钱包不需要预先持有代币
37
+ * - 每个钱包在同一笔交易中完成买入和卖出
38
+ * - 利润从主钱包统一支付
39
+ *
40
+ * @example
41
+ * const result = await washVolume({
42
+ * privateKeys: ['0x...', '0x...'],
43
+ * tokenAddress: '0x...',
44
+ * buyAmountPerWallet: '0.01',
45
+ * sellPercent: 100,
46
+ * poolType: 'V3',
47
+ * });
48
+ */
@@ -1,156 +1,14 @@
1
- /**
2
- * EIP-7702 XLayer 刷量功能
3
- *
4
- * 支持两种模式:
5
- * 1. 无币模式 (Wash): 单钱包买入+卖出,不需要预先持有代币
6
- * 2. 捆绑模式 (Bundle): 多钱包批量买入 + 批量卖出
7
- *
8
- * 支持池子类型:
9
- * - FLAP: 内盘 (Flap Portal)
10
- * - V2: PotatoSwap V2 外盘
11
- * - V3: PotatoSwap V3 外盘
12
- *
13
- * 只生成签名,由调用方决定如何提交
14
- */
15
- import type { EIP7702Config, TradeType, GeneratedWallet } from './types.js';
16
- import { type UserType } from './utils.js';
17
- export type VolumeMode = 'wash' | 'bundle';
18
- export type PoolType = 'FLAP' | 'V2' | 'V3';
19
- export interface VolumeProgress {
20
- currentRound: number;
21
- totalRounds: number;
22
- status: 'pending' | 'running' | 'completed' | 'failed';
23
- message?: string;
24
- }
25
- export interface WashVolumeParams {
26
- /** Payer 钱包私钥(支付 Gas 费) */
27
- mainPrivateKey: string;
28
- /** 钱包私钥列表(每个钱包独立执行买入+卖出) */
29
- privateKeys: string[];
30
- /** 代币地址 */
31
- tokenAddress: string;
32
- /** 代币精度 */
33
- tokenDecimals?: number;
34
- /** 每个钱包的买入金额 (OKB) */
35
- buyAmountPerWallet: string;
36
- /** 卖出百分比(1-100) */
37
- sellPercent?: number;
38
- /** 池子类型 */
39
- poolType?: PoolType;
40
- /** 路由地址(V2/V3 模式) */
41
- routerAddress?: string;
42
- /** V3 费率 */
43
- fee?: number;
44
- /** 用户类型(影响利润率) */
45
- userType?: UserType;
46
- /** EIP-7702 配置 */
47
- config?: EIP7702Config;
48
- }
49
- export interface WashVolumeResult {
50
- signedTransaction: string;
51
- metadata: {
52
- walletCount: number;
53
- buyAmountPerWallet: string;
54
- totalBuyAmount: string;
55
- sellPercent: number;
56
- poolType: PoolType;
57
- profitAmount: string;
58
- };
59
- }
60
- /**
61
- * 无币刷量 - 每个钱包执行买入+卖出
62
- *
63
- * 核心逻辑:[利润刮取] + [钱包1买入] + [钱包1卖出] + [钱包2买入] + [钱包2卖出] + ...
64
- *
65
- * 特点:
66
- * - 钱包不需要预先持有代币
67
- * - 每个钱包在同一笔交易中完成买入和卖出
68
- * - 利润从主钱包统一支付
69
- *
70
- * @example
71
- * const result = await washVolume({
72
- * privateKeys: ['0x...', '0x...'],
73
- * tokenAddress: '0x...',
74
- * buyAmountPerWallet: '0.01',
75
- * sellPercent: 100,
76
- * poolType: 'V3',
77
- * });
78
- */
1
+ import type { EIP7702Config, TradeType } from './types.js';
2
+ import { WashVolumeParams, WashVolumeResult, BundleVolumeParams, BundleVolumeResult, SingleRoundVolumeResult, MakeVolumeParams, MakeVolumeSignResult, SwapVolumeSignResult } from './volume-helpers.js';
3
+ export type { VolumeMode, PoolType, VolumeProgress, WashVolumeParams, WashVolumeResult, BundleVolumeParams, BundleVolumeResult, SingleRoundVolumeResult, MakeVolumeParams, MakeVolumeSignResult, SwapVolumeSignResult, } from './volume-helpers.js';
79
4
  export declare function washVolume(params: WashVolumeParams): Promise<WashVolumeResult>;
80
- export interface BundleVolumeParams {
81
- /** Payer 钱包私钥(支付 Gas 费) */
82
- mainPrivateKey: string;
83
- /** 买入钱包私钥列表 */
84
- buyerPrivateKeys: string[];
85
- /** 每个买家的买入金额 (OKB) */
86
- buyAmounts: string[];
87
- /** 卖出钱包私钥列表 */
88
- sellerPrivateKeys: string[];
89
- /** 每个卖家的卖出数量(代币)或百分比 */
90
- sellAmounts?: string[];
91
- /** 卖出百分比(当 sellAmounts 未提供时使用) */
92
- sellPercent?: number;
93
- /** 代币地址 */
94
- tokenAddress: string;
95
- /** 代币精度 */
96
- tokenDecimals?: number;
97
- /** 池子类型 */
98
- poolType?: PoolType;
99
- /** 路由地址 */
100
- routerAddress?: string;
101
- /** V3 费率 */
102
- fee?: number;
103
- /** 用户类型(影响利润率) */
104
- userType?: UserType;
105
- /** EIP-7702 配置 */
106
- config?: EIP7702Config;
107
- }
108
- export interface BundleVolumeResult {
109
- signedTransaction: string;
110
- metadata: {
111
- buyerCount: number;
112
- sellerCount: number;
113
- totalBuyAmount: string;
114
- totalSellAmount: string;
115
- poolType: PoolType;
116
- profitAmount: string;
117
- };
118
- }
119
5
  /**
120
6
  * 捆绑刷量 - 多钱包批量买入 + 批量卖出
121
7
  *
122
8
  * 核心逻辑:[利润刮取] + [买入Ops...] + [卖出Ops...]
123
- *
124
- * 特点:
125
- * - 买入和卖出可以使用不同的钱包
126
- * - 所有操作在一笔交易中原子执行
127
- * - 卖出钱包需要预先持有代币
128
- *
129
- * @example
130
- * const result = await bundleVolume({
131
- * buyerPrivateKeys: ['0x...', '0x...'],
132
- * buyAmounts: ['0.01', '0.02'],
133
- * sellerPrivateKeys: ['0x...'],
134
- * sellPercent: 100,
135
- * tokenAddress: '0x...',
136
- * poolType: 'FLAP',
137
- * });
138
9
  */
139
10
  export declare function bundleVolume(params: BundleVolumeParams): Promise<BundleVolumeResult>;
140
- export interface SingleRoundVolumeResult {
141
- buySignedTransaction: string;
142
- sellSignedTransaction: string;
143
- metadata: {
144
- buyAmount: string;
145
- sellPercent: number;
146
- walletCount: number;
147
- };
148
- }
149
- /**
150
- * 生成单轮刷量签名(买入 + 卖出分开)
151
- *
152
- * 注意:买入和卖出是两笔独立交易
153
- */
11
+ /** 生成单轮刷量签名(买入 + 卖出分开,两笔独立交易) */
154
12
  export declare function singleRoundVolume(params: {
155
13
  privateKeys: string[];
156
14
  tokenAddress: string;
@@ -162,45 +20,9 @@ export declare function singleRoundVolume(params: {
162
20
  fee?: number;
163
21
  config?: EIP7702Config;
164
22
  }): Promise<SingleRoundVolumeResult>;
165
- export interface MakeVolumeParams {
166
- privateKeys: string[];
167
- tokenAddress: string;
168
- tokenDecimals?: number;
169
- buyAmountPerRound: string;
170
- rounds: number;
171
- tradeType?: TradeType;
172
- routerAddress?: string;
173
- fee?: number;
174
- onProgress?: (progress: VolumeProgress) => void;
175
- config?: EIP7702Config;
176
- }
177
- export interface MakeVolumeSignResult {
178
- rounds: SingleRoundVolumeResult[];
179
- metadata: {
180
- totalRounds: number;
181
- totalBuyAmount: string;
182
- walletCount: number;
183
- };
184
- }
185
- /**
186
- * 生成多轮刷量签名
187
- *
188
- * 注意:由于 nonce 问题,只能预生成第一轮
189
- * 后续轮次需要在前一轮交易确认后才能生成
190
- */
23
+ /** 生成多轮刷量签名(由于 nonce 限制,仅预生成第一轮) */
191
24
  export declare function makeVolume(params: MakeVolumeParams): Promise<MakeVolumeSignResult>;
192
- export interface SwapVolumeSignResult {
193
- signedTransaction: string;
194
- hopWallets: GeneratedWallet[];
195
- metadata: {
196
- sellerAddress: string;
197
- buyerAddress: string;
198
- sellAmount: string;
199
- };
200
- }
201
- /**
202
- * 生成换手刷量签名
203
- */
25
+ /** 生成换手刷量签名 */
204
26
  export declare function makeVolumeWithSwap(params: {
205
27
  sellerPrivateKey: string;
206
28
  buyerPrivateKey: string;