four-flap-meme-sdk 1.9.49 → 2.1.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 (567) 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.js +34 -0
  5. package/dist/abis/common.js +74 -68
  6. package/dist/abis/flap/vault.js +9 -7
  7. package/dist/abis/index.d.ts +3 -4
  8. package/dist/abis/index.js +3 -4
  9. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  10. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  11. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  12. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  13. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  14. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  15. package/dist/bundle-core/config-helpers.d.ts +36 -0
  16. package/dist/bundle-core/config-helpers.js +57 -0
  17. package/dist/bundle-core/errors.d.ts +50 -0
  18. package/dist/bundle-core/errors.js +34 -0
  19. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  20. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  21. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  22. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  23. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  24. package/dist/bundle-core/four-meme/core.js +515 -0
  25. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  26. package/dist/{shared 2/flap/portal-bundle-merkle/pancake-proxy.js → bundle-core/four-meme/pancake-proxy.js} +277 -299
  27. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  28. package/dist/bundle-core/four-meme/private.js +465 -0
  29. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  30. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  31. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  32. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  33. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  34. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  35. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  36. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  37. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  38. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  39. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  40. package/dist/{chains/bsc/four/swap/index.js → bundle-core/four-meme/swap.js} +84 -408
  41. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  42. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  43. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  44. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  45. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  46. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  47. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  48. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  49. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  50. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  51. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  52. package/dist/bundle-core/index.d.ts +8 -0
  53. package/dist/bundle-core/index.js +8 -0
  54. package/dist/bundle-core/internal.d.ts +21 -0
  55. package/dist/bundle-core/internal.js +182 -0
  56. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  57. package/dist/bundle-core/sign-context-helpers.js +67 -0
  58. package/dist/bundle-core/submit.d.ts +293 -0
  59. package/dist/bundle-core/submit.js +727 -0
  60. package/dist/bundle-core/types/index.d.ts +8 -0
  61. package/dist/bundle-core/types.d.ts +1 -0
  62. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  63. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -116
  64. package/dist/chains/bsc/four/config.d.ts +5 -70
  65. package/dist/chains/bsc/four/config.js +2 -115
  66. package/dist/chains/bsc/four/core.d.ts +1 -4
  67. package/dist/chains/bsc/four/core.js +1 -589
  68. package/dist/chains/bsc/four/index.d.ts +6 -6
  69. package/dist/chains/bsc/four/index.js +6 -6
  70. package/dist/chains/bsc/four/internal.d.ts +2 -50
  71. package/dist/chains/bsc/four/internal.js +2 -237
  72. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  73. package/dist/chains/bsc/four/pancake-proxy.js +1 -688
  74. package/dist/chains/bsc/four/private.d.ts +1 -27
  75. package/dist/chains/bsc/four/private.js +1 -477
  76. package/dist/chains/bsc/four/submit.d.ts +2 -315
  77. package/dist/chains/bsc/four/submit.js +2 -746
  78. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  79. package/dist/chains/bsc/four/swap-buy-first.js +2 -506
  80. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  81. package/dist/chains/bsc/four/swap-internal.js +1 -18
  82. package/dist/chains/bsc/four/swap.d.ts +2 -144
  83. package/dist/chains/bsc/four/swap.js +2 -760
  84. package/dist/chains/bsc/four/types.d.ts +1 -476
  85. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  86. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  87. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  88. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  89. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  90. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  91. package/dist/chains/bsc/four/utils.d.ts +5 -18
  92. package/dist/chains/bsc/four/utils.js +5 -1534
  93. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  94. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  95. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  96. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -207
  97. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  98. package/dist/chains/bsc/pancake/{bundle-swap/helpers.js → bundle-swap-helpers.js} +63 -70
  99. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  100. package/dist/chains/bsc/pancake/bundle-swap.js +111 -686
  101. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  102. package/dist/chains/bsc/pancake/index.js +1 -3
  103. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  104. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  105. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  106. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  107. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  108. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  109. package/dist/chains/eni/batch-router/transfer.js +54 -23
  110. package/dist/chains/eni/batch-router/utils.js +32 -6
  111. package/dist/chains/eni/bundler/sign.js +4 -4
  112. package/dist/chains/eni/bundler/submit.js +1 -4
  113. package/dist/chains/eni/constants.js +1 -1
  114. package/dist/chains/eni/index.d.ts +1 -1
  115. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  116. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  117. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  118. package/dist/chains/eni/platforms/daoaas/meta.js +8 -4
  119. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -43
  120. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  121. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  122. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  123. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  124. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -47
  125. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  126. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  127. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  128. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  129. package/dist/chains/eni/platforms/iro/index.js +4 -4
  130. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  131. package/dist/chains/eni/platforms/iro/token.js +107 -31
  132. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  133. package/dist/chains/eni/submit.js +5 -13
  134. package/dist/chains/index.d.ts +13 -0
  135. package/dist/chains/index.js +13 -0
  136. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  137. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -20
  138. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  139. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  140. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -56
  141. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  142. package/dist/chains/xlayer/eip7702/bundle-sell.js +26 -74
  143. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  144. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -68
  145. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  146. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  147. package/dist/chains/xlayer/eip7702/index.d.ts +29 -46
  148. package/dist/chains/xlayer/eip7702/index.js +27 -81
  149. package/dist/chains/xlayer/eip7702/{multi-hop-transfer/types.d.ts → multi-hop-transfer-helpers.d.ts} +17 -23
  150. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  151. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +58 -291
  152. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  153. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  154. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  155. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  156. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  157. package/dist/chains/xlayer/eip7702/{volume/types.d.ts → volume-helpers.d.ts} +41 -17
  158. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  159. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  160. package/dist/chains/xlayer/eip7702/volume.js +83 -158
  161. package/dist/chains/xlayer/eoa/constants.js +1 -1
  162. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  163. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  164. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  165. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  166. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +64 -276
  167. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  168. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +14 -14
  169. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  170. package/dist/chains/xlayer/eoa/index.js +8 -23
  171. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  172. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  173. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  174. package/dist/chains/xlayer/eoa/types.js +1 -3
  175. package/dist/contracts/helper3.d.ts +20 -17
  176. package/dist/contracts/helper3.js +56 -20
  177. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  178. package/dist/contracts/tm-bundle-helpers.js +72 -0
  179. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  180. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -117
  181. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -70
  182. package/dist/contracts/tm-bundle-merkle/config.js +2 -115
  183. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  184. package/dist/contracts/tm-bundle-merkle/core.js +1 -588
  185. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  186. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  187. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -50
  188. package/dist/contracts/tm-bundle-merkle/internal.js +2 -236
  189. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  190. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -687
  191. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  192. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  193. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  194. package/dist/contracts/tm-bundle-merkle/submit.js +3 -919
  195. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  196. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -505
  197. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  198. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  199. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  200. package/dist/contracts/tm-bundle-merkle/swap.js +2 -757
  201. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  202. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  203. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  204. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  205. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  206. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  207. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  208. package/dist/contracts/tm-bundle-merkle/utils.d.ts +5 -6
  209. package/dist/contracts/tm-bundle-merkle/utils.js +5 -6
  210. package/dist/contracts/tm-bundle.d.ts +3 -51
  211. package/dist/contracts/tm-bundle.js +102 -142
  212. package/dist/contracts/tm.d.ts +3 -2
  213. package/dist/contracts/tm.js +36 -32
  214. package/dist/contracts/tm1.js +9 -4
  215. package/dist/contracts/tm2.js +9 -4
  216. package/dist/dex/direct-router-helpers.d.ts +264 -0
  217. package/dist/dex/direct-router-helpers.js +539 -0
  218. package/dist/dex/direct-router.d.ts +3 -125
  219. package/dist/dex/direct-router.js +237 -652
  220. package/dist/dex/{direct-router/types.d.ts → types.d.ts} +1 -1
  221. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  222. package/dist/exports/root-bundle-and-tooling.js +30 -0
  223. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  224. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  225. package/dist/exports/root-foundations.d.ts +35 -0
  226. package/dist/exports/root-foundations.js +70 -0
  227. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  228. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  229. package/dist/flap/index.d.ts +10 -0
  230. package/dist/flap/index.js +8 -0
  231. package/dist/flows/create.d.ts +2 -2
  232. package/dist/flows/create.js +6 -6
  233. package/dist/flows/index.d.ts +1 -0
  234. package/dist/flows/index.js +1 -0
  235. package/dist/index.d.ts +20 -91
  236. package/dist/index.js +20 -215
  237. package/dist/shared/abis/common.d.ts +2 -83
  238. package/dist/shared/abis/common.js +2 -252
  239. package/dist/shared/abis/index.d.ts +5 -6
  240. package/dist/shared/abis/index.js +5 -7
  241. package/dist/shared/clients/blockrazor.js +41 -24
  242. package/dist/shared/clients/club48.js +30 -26
  243. package/dist/shared/clients/emitservice.js +2 -0
  244. package/dist/shared/clients/four.js +23 -18
  245. package/dist/shared/clients/index.d.ts +8 -0
  246. package/dist/shared/clients/index.js +8 -0
  247. package/dist/shared/clients/merkle.js +26 -30
  248. package/dist/shared/constants/addresses.d.ts +1 -1
  249. package/dist/shared/constants/addresses.js +11 -2
  250. package/dist/shared/constants/chains.d.ts +1 -1
  251. package/dist/shared/constants/chains.js +1 -1
  252. package/dist/shared/constants/gas.d.ts +1 -1
  253. package/dist/shared/constants/gas.js +2 -6
  254. package/dist/shared/constants/index.d.ts +3 -0
  255. package/dist/shared/constants/index.js +1 -0
  256. package/dist/shared/constants/quote.d.ts +30 -0
  257. package/dist/shared/constants/quote.js +37 -0
  258. package/dist/shared/flap/abi.js +1 -1
  259. package/dist/shared/flap/constants.d.ts +1 -1
  260. package/dist/shared/flap/constants.js +2 -2
  261. package/dist/shared/flap/curve.js +3 -0
  262. package/dist/shared/flap/errors.d.ts +1 -4
  263. package/dist/shared/flap/errors.js +21 -3
  264. package/dist/shared/flap/index.d.ts +2 -2
  265. package/dist/shared/flap/index.js +2 -2
  266. package/dist/shared/flap/meta.d.ts +16 -18
  267. package/dist/shared/flap/meta.js +14 -26
  268. package/dist/shared/flap/permit.js +6 -5
  269. package/dist/shared/flap/pinata.d.ts +9 -2
  270. package/dist/shared/flap/pinata.js +20 -18
  271. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  272. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  273. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  274. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  275. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  276. package/dist/shared/flap/portal-bundle-merkle/core.js +66 -156
  277. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +81 -86
  278. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  279. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  280. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  281. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  282. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  283. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  284. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  285. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  286. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  287. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  288. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  289. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  290. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  291. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +73 -3
  292. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  293. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  294. package/dist/shared/flap/portal-bundle.js +54 -42
  295. package/dist/shared/flap/portal.js +32 -10
  296. package/dist/shared/flap/vanity.js +4 -7
  297. package/dist/shared/flap/vault.d.ts +1 -1
  298. package/dist/shared/flap/vault.js +54 -48
  299. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  300. package/dist/shared/foundation/dex/v3-path.js +35 -0
  301. package/dist/shared/foundation/gas/bundle-gas.d.ts +39 -0
  302. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  303. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  304. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  305. package/dist/shared/foundation/index.d.ts +13 -0
  306. package/dist/shared/foundation/index.js +12 -0
  307. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  308. package/dist/shared/foundation/nonce/nonce-manager.js +180 -0
  309. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  310. package/dist/shared/foundation/normalize-unknown.js +29 -0
  311. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  312. package/dist/shared/foundation/sdk-logger.js +12 -0
  313. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  314. package/dist/shared/foundation/tx/build-request.js +25 -0
  315. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  316. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  317. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  318. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  319. package/dist/{utils/erc20/types.d.ts → shared/foundation/types/erc20.d.ts} +7 -19
  320. package/dist/{utils/holders-maker/types.d.ts → shared/foundation/types/holders-maker.d.ts} +4 -12
  321. package/dist/shared/foundation/types/index.d.ts +7 -0
  322. package/dist/{utils/lp-inspect/types.d.ts → shared/foundation/types/lp-inspect.d.ts} +4 -2
  323. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  324. package/dist/shared/foundation/types/multicall.js +1 -0
  325. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  326. package/dist/shared/foundation/types/private-sale.js +1 -0
  327. package/dist/{utils/quote-helpers/types.d.ts → shared/foundation/types/quote-helpers.d.ts} +1 -0
  328. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  329. package/dist/shared/four/tax-token.d.ts +1 -1
  330. package/dist/shared/four/tax-token.js +27 -7
  331. package/dist/shared/index.d.ts +6 -0
  332. package/dist/shared/index.js +4 -0
  333. package/dist/utils/airdrop-sweep.d.ts +4 -76
  334. package/dist/utils/airdrop-sweep.js +38 -52
  335. package/dist/utils/bundle-helpers.d.ts +9 -243
  336. package/dist/utils/bundle-helpers.js +10 -584
  337. package/dist/utils/constants.d.ts +5 -61
  338. package/dist/utils/constants.js +5 -80
  339. package/dist/utils/contract-factory.d.ts +2 -4
  340. package/dist/utils/contract-factory.js +25 -18
  341. package/dist/utils/erc20.d.ts +8 -90
  342. package/dist/utils/erc20.js +94 -153
  343. package/dist/utils/errors.d.ts +10 -22
  344. package/dist/utils/errors.js +61 -79
  345. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  346. package/dist/utils/holders-maker/addresses.js +15 -0
  347. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  348. package/dist/utils/holders-maker/buy-tx.js +278 -0
  349. package/dist/utils/holders-maker/constants.d.ts +6 -0
  350. package/dist/utils/holders-maker/constants.js +7 -0
  351. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  352. package/dist/utils/holders-maker/disperse.js +90 -0
  353. package/dist/utils/holders-maker/routing.d.ts +4 -0
  354. package/dist/utils/holders-maker/routing.js +45 -0
  355. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  356. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  357. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  358. package/dist/utils/holders-maker-helpers.js +9 -0
  359. package/dist/utils/holders-maker.d.ts +2 -138
  360. package/dist/utils/holders-maker.js +23 -651
  361. package/dist/utils/hop-chains.d.ts +35 -0
  362. package/dist/utils/hop-chains.js +215 -0
  363. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  364. package/dist/utils/lp-inspect-helpers.js +109 -0
  365. package/dist/utils/lp-inspect.d.ts +2 -112
  366. package/dist/utils/lp-inspect.js +63 -195
  367. package/dist/utils/mpcExclusive.d.ts +2 -5
  368. package/dist/utils/mpcExclusive.js +4 -3
  369. package/dist/utils/private-sale.d.ts +2 -58
  370. package/dist/utils/private-sale.js +2 -7
  371. package/dist/utils/provider-factory.d.ts +4 -0
  372. package/dist/utils/provider-factory.js +10 -0
  373. package/dist/utils/quote-helpers.d.ts +4 -45
  374. package/dist/utils/quote-helpers.js +15 -65
  375. package/dist/utils/stealth-transfer.d.ts +2 -28
  376. package/dist/utils/stealth-transfer.js +30 -14
  377. package/dist/utils/swap-helpers.d.ts +0 -3
  378. package/dist/utils/swap-helpers.js +6 -9
  379. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  380. package/dist/utils/types/airdrop-sweep.js +1 -0
  381. package/dist/utils/types/contract-factory.d.ts +1 -0
  382. package/dist/utils/types/contract-factory.js +1 -0
  383. package/dist/utils/types/erc20.d.ts +1 -0
  384. package/dist/utils/types/erc20.js +1 -0
  385. package/dist/utils/types/errors.d.ts +1 -0
  386. package/dist/utils/types/errors.js +1 -0
  387. package/dist/utils/types/holders-maker.d.ts +1 -0
  388. package/dist/utils/types/holders-maker.js +1 -0
  389. package/dist/utils/types/hop-chains.d.ts +8 -0
  390. package/dist/utils/types/hop-chains.js +1 -0
  391. package/dist/utils/types/index.d.ts +13 -0
  392. package/dist/utils/types/index.js +1 -0
  393. package/dist/utils/types/lp-inspect.d.ts +1 -0
  394. package/dist/utils/types/lp-inspect.js +1 -0
  395. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  396. package/dist/utils/types/mpc-exclusive.js +1 -0
  397. package/dist/utils/types/private-sale.d.ts +1 -0
  398. package/dist/utils/types/private-sale.js +1 -0
  399. package/dist/utils/types/quote-helpers.d.ts +1 -0
  400. package/dist/utils/types/quote-helpers.js +1 -0
  401. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  402. package/dist/utils/types/stealth-transfer.js +1 -0
  403. package/dist/utils/types/wallet.d.ts +25 -0
  404. package/dist/utils/types/wallet.js +1 -0
  405. package/dist/utils/wallet.d.ts +2 -25
  406. package/dist/utils/wallet.js +9 -10
  407. package/package.json +120 -2
  408. package/src/abis/contracts/TaxToken.json +969 -0
  409. package/src/abis/contracts/TokenManager.json +836 -0
  410. package/src/abis/contracts/TokenManager2.json +136 -0
  411. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  412. package/dist/chains/bsc/four/submit/blockrazor.d.ts +0 -18
  413. package/dist/chains/bsc/four/submit/blockrazor.js +0 -86
  414. package/dist/chains/bsc/four/submit/direct.d.ts +0 -66
  415. package/dist/chains/bsc/four/submit/direct.js +0 -452
  416. package/dist/chains/bsc/four/submit/helpers.d.ts +0 -18
  417. package/dist/chains/bsc/four/submit/helpers.js +0 -57
  418. package/dist/chains/bsc/four/submit/index.d.ts +0 -12
  419. package/dist/chains/bsc/four/submit/index.js +0 -11
  420. package/dist/chains/bsc/four/submit/merkle.d.ts +0 -18
  421. package/dist/chains/bsc/four/submit/merkle.js +0 -74
  422. package/dist/chains/bsc/four/submit/types.d.ts +0 -143
  423. package/dist/chains/bsc/four/swap/index.d.ts +0 -32
  424. package/dist/chains/bsc/four/swap/types.d.ts +0 -70
  425. package/dist/chains/bsc/four/utils/index.d.ts +0 -20
  426. package/dist/chains/bsc/four/utils/index.js +0 -1558
  427. package/dist/chains/bsc/pancake/bundle-buy-first/index.d.ts +0 -8
  428. package/dist/chains/bsc/pancake/bundle-buy-first/index.js +0 -907
  429. package/dist/chains/bsc/pancake/bundle-buy-first/types.d.ts +0 -73
  430. package/dist/chains/bsc/pancake/bundle-swap/helpers.d.ts +0 -102
  431. package/dist/chains/bsc/pancake/bundle-swap/index.d.ts +0 -50
  432. package/dist/chains/bsc/pancake/bundle-swap/index.js +0 -1066
  433. package/dist/chains/bsc/pancake/bundle-swap/types.d.ts +0 -202
  434. package/dist/chains/bsc/pancake/bundle-swap/types.js +0 -3
  435. package/dist/chains/xlayer/eip7702/bundle-swap/index.d.ts +0 -72
  436. package/dist/chains/xlayer/eip7702/bundle-swap/index.js +0 -921
  437. package/dist/chains/xlayer/eip7702/bundle-swap/types.d.ts +0 -65
  438. package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.d.ts +0 -128
  439. package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.js +0 -857
  440. package/dist/chains/xlayer/eip7702/volume/index.d.ts +0 -96
  441. package/dist/chains/xlayer/eip7702/volume/index.js +0 -793
  442. package/dist/dex/direct-router/index.d.ts +0 -70
  443. package/dist/dex/direct-router/index.js +0 -1410
  444. package/dist/shared/abis/TaxToken.json +0 -969
  445. package/dist/shared/abis/TokenManager.json +0 -836
  446. package/dist/shared/abis/TokenManager2.json +0 -136
  447. package/dist/shared/abis/TokenManagerHelper3.json +0 -993
  448. package/dist/shared/flap/__tests__/curve.test.js +0 -85
  449. package/dist/shared/flap/portal/index.d.ts +0 -12
  450. package/dist/shared/flap/portal/index.js +0 -11
  451. package/dist/shared/flap/portal/portal.d.ts +0 -47
  452. package/dist/shared/flap/portal/portal.js +0 -218
  453. package/dist/shared/flap/portal/types.d.ts +0 -227
  454. package/dist/shared/flap/portal/types.js +0 -80
  455. package/dist/shared/flap/portal/writer.d.ts +0 -121
  456. package/dist/shared/flap/portal/writer.js +0 -265
  457. package/dist/shared/flap/portal-bundle-merkle/core/index.d.ts +0 -18
  458. package/dist/shared/flap/portal-bundle-merkle/core/index.js +0 -938
  459. package/dist/shared/flap/portal-bundle-merkle/swap/index.d.ts +0 -42
  460. package/dist/shared/flap/portal-bundle-merkle/swap/index.js +0 -1448
  461. package/dist/shared/flap/portal-bundle-merkle/swap/types.d.ts +0 -84
  462. package/dist/shared/flap/portal-bundle-merkle/utils/index.d.ts +0 -17
  463. package/dist/shared/flap/portal-bundle-merkle/utils/index.js +0 -1024
  464. package/dist/shared/flap/portal-bundle-merkle/utils/types.d.ts +0 -16
  465. package/dist/shared 2/abis/TaxToken.json +0 -105
  466. package/dist/shared 2/abis/TokenManager.json +0 -836
  467. package/dist/shared 2/abis/TokenManager2.json +0 -60
  468. package/dist/shared 2/abis/TokenManagerHelper3.json +0 -993
  469. package/dist/shared 2/abis/common.d.ts +0 -85
  470. package/dist/shared 2/abis/common.js +0 -254
  471. package/dist/shared 2/abis/index.d.ts +0 -8
  472. package/dist/shared 2/abis/index.js +0 -8
  473. package/dist/shared 2/clients/blockrazor.d.ts +0 -314
  474. package/dist/shared 2/clients/blockrazor.js +0 -596
  475. package/dist/shared 2/clients/club48.d.ts +0 -154
  476. package/dist/shared 2/clients/club48.js +0 -331
  477. package/dist/shared 2/clients/emitservice.d.ts +0 -47
  478. package/dist/shared 2/clients/emitservice.js +0 -44
  479. package/dist/shared 2/clients/four.d.ts +0 -132
  480. package/dist/shared 2/clients/four.js +0 -281
  481. package/dist/shared 2/clients/merkle.d.ts +0 -210
  482. package/dist/shared 2/clients/merkle.js +0 -400
  483. package/dist/shared 2/flap/__tests__/curve.test.js +0 -85
  484. package/dist/shared 2/flap/abi.d.ts +0 -4
  485. package/dist/shared 2/flap/abi.js +0 -4
  486. package/dist/shared 2/flap/constants.d.ts +0 -128
  487. package/dist/shared 2/flap/constants.js +0 -143
  488. package/dist/shared 2/flap/curve.d.ts +0 -33
  489. package/dist/shared 2/flap/curve.js +0 -84
  490. package/dist/shared 2/flap/errors.d.ts +0 -37
  491. package/dist/shared 2/flap/errors.js +0 -114
  492. package/dist/shared 2/flap/index.d.ts +0 -22
  493. package/dist/shared 2/flap/index.js +0 -33
  494. package/dist/shared 2/flap/ipfs.d.ts +0 -21
  495. package/dist/shared 2/flap/ipfs.js +0 -38
  496. package/dist/shared 2/flap/meta.d.ts +0 -30
  497. package/dist/shared 2/flap/meta.js +0 -195
  498. package/dist/shared 2/flap/permit.d.ts +0 -16
  499. package/dist/shared 2/flap/permit.js +0 -67
  500. package/dist/shared 2/flap/pinata.d.ts +0 -40
  501. package/dist/shared 2/flap/pinata.js +0 -106
  502. package/dist/shared 2/flap/portal-bundle-merkle/config.d.ts +0 -79
  503. package/dist/shared 2/flap/portal-bundle-merkle/config.js +0 -133
  504. package/dist/shared 2/flap/portal-bundle-merkle/core.d.ts +0 -18
  505. package/dist/shared 2/flap/portal-bundle-merkle/core.js +0 -938
  506. package/dist/shared 2/flap/portal-bundle-merkle/create-to-dex.d.ts +0 -125
  507. package/dist/shared 2/flap/portal-bundle-merkle/create-to-dex.js +0 -665
  508. package/dist/shared 2/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -88
  509. package/dist/shared 2/flap/portal-bundle-merkle/curve-to-dex.js +0 -446
  510. package/dist/shared 2/flap/portal-bundle-merkle/index.d.ts +0 -14
  511. package/dist/shared 2/flap/portal-bundle-merkle/index.js +0 -26
  512. package/dist/shared 2/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -28
  513. package/dist/shared 2/flap/portal-bundle-merkle/private.d.ts +0 -17
  514. package/dist/shared 2/flap/portal-bundle-merkle/private.js +0 -549
  515. package/dist/shared 2/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  516. package/dist/shared 2/flap/portal-bundle-merkle/swap-buy-first.js +0 -831
  517. package/dist/shared 2/flap/portal-bundle-merkle/swap.d.ts +0 -201
  518. package/dist/shared 2/flap/portal-bundle-merkle/swap.js +0 -1359
  519. package/dist/shared 2/flap/portal-bundle-merkle/types.d.ts +0 -358
  520. package/dist/shared 2/flap/portal-bundle-merkle/utils.d.ts +0 -89
  521. package/dist/shared 2/flap/portal-bundle-merkle/utils.js +0 -963
  522. package/dist/shared 2/flap/portal-bundle.d.ts +0 -119
  523. package/dist/shared 2/flap/portal-bundle.js +0 -584
  524. package/dist/shared 2/flap/portal.d.ts +0 -392
  525. package/dist/shared 2/flap/portal.js +0 -559
  526. package/dist/shared 2/flap/vanity.d.ts +0 -48
  527. package/dist/shared 2/flap/vanity.js +0 -110
  528. package/dist/shared 2/flap/vault.d.ts +0 -240
  529. package/dist/shared 2/flap/vault.js +0 -366
  530. package/dist/shared 2/four/index.d.ts +0 -7
  531. package/dist/shared 2/four/index.js +0 -22
  532. package/dist/shared 2/four/tax-token.d.ts +0 -176
  533. package/dist/shared 2/four/tax-token.js +0 -302
  534. package/dist/shared 2/index.d.ts +0 -10
  535. package/dist/shared 2/index.js +0 -10
  536. package/dist/utils/__tests__/errors.test.js +0 -76
  537. package/dist/utils/erc20/index.d.ts +0 -242
  538. package/dist/utils/erc20/index.js +0 -645
  539. package/dist/utils/holders-maker/helpers.d.ts +0 -43
  540. package/dist/utils/holders-maker/helpers.js +0 -371
  541. package/dist/utils/holders-maker/index.d.ts +0 -26
  542. package/dist/utils/holders-maker/index.js +0 -218
  543. package/dist/utils/holders-maker/types.js +0 -4
  544. package/dist/utils/lp-inspect/index.d.ts +0 -44
  545. package/dist/utils/lp-inspect/index.js +0 -937
  546. package/dist/utils/quote-helpers/index.d.ts +0 -107
  547. package/dist/utils/quote-helpers/index.js +0 -346
  548. /package/dist/{chains/bsc/four/submit/types.js → __tests__/subpath-exports.test.d.ts} +0 -0
  549. /package/dist/{chains/bsc/four/swap/types.js → bundle-core/__tests__/config-helpers.test.d.ts} +0 -0
  550. /package/dist/{chains/bsc/four/utils/types.d.ts → bundle-core/__tests__/facade-parity.test.d.ts} +0 -0
  551. /package/dist/{chains/bsc/four/utils/types.js → bundle-core/__tests__/sign-context-helpers.test.d.ts} +0 -0
  552. /package/dist/{chains/bsc/pancake/bundle-buy-first/types.js → bundle-core/__tests__/sign-fixture.test.d.ts} +0 -0
  553. /package/dist/{chains/xlayer/eip7702/multi-hop-transfer/types.js → bundle-core/four-meme/types/buy-first.js} +0 -0
  554. /package/dist/{chains/xlayer/eip7702/volume/types.js → bundle-core/four-meme/types/core-flow.js} +0 -0
  555. /package/dist/{dex/direct-router/types.js → bundle-core/four-meme/types/index.js} +0 -0
  556. /package/dist/{shared 2/flap/__tests__/curve.test.d.ts → bundle-core/four-meme/types/swap-internal.js} +0 -0
  557. /package/dist/{chains/xlayer/eip7702/bundle-swap → bundle-core/four-meme}/types.js +0 -0
  558. /package/dist/{shared/flap/__tests__/curve.test.d.ts → bundle-core/types/index.js} +0 -0
  559. /package/dist/{shared 2/flap/portal-bundle-merkle → bundle-core}/types.js +0 -0
  560. /package/dist/{shared/flap/portal-bundle-merkle/core/types.d.ts → chains/xlayer/eip7702/multi-hop-transfer-helpers.js} +0 -0
  561. /package/dist/{shared/flap/portal-bundle-merkle/core → dex}/types.js +0 -0
  562. /package/dist/shared/{flap/portal-bundle-merkle/swap/types.js → foundation/tx/wallet-sign-patch.d.ts} +0 -0
  563. /package/dist/shared/{flap/portal-bundle-merkle/utils/types.js → foundation/types/airdrop-sweep.js} +0 -0
  564. /package/dist/{utils/__tests__/errors.test.d.ts → shared/foundation/types/erc20.js} +0 -0
  565. /package/dist/{utils/erc20/types.js → shared/foundation/types/holders-maker.js} +0 -0
  566. /package/dist/{utils/lp-inspect/types.js → shared/foundation/types/index.js} +0 -0
  567. /package/dist/{utils/quote-helpers/types.js → shared/foundation/types/lp-inspect.js} +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
  }
@@ -1,9 +1,27 @@
1
- import type { TradeType } from '../types.js';
2
- import type { EIP7702Config } from '../types.js';
3
- import type { UserType } from '../utils.js';
4
- import type { GeneratedWallet } from '../../../../utils/wallet.js';
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';
5
17
  export type VolumeMode = 'wash' | 'bundle';
6
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;
7
25
  export interface VolumeProgress {
8
26
  currentRound: number;
9
27
  totalRounds: number;
@@ -46,31 +64,18 @@ export interface WashVolumeResult {
46
64
  };
47
65
  }
48
66
  export interface BundleVolumeParams {
49
- /** Payer 钱包私钥(支付 Gas 费) */
50
67
  mainPrivateKey: string;
51
- /** 买入钱包私钥列表 */
52
68
  buyerPrivateKeys: string[];
53
- /** 每个买家的买入金额 (OKB) */
54
69
  buyAmounts: string[];
55
- /** 卖出钱包私钥列表 */
56
70
  sellerPrivateKeys: string[];
57
- /** 每个卖家的卖出数量(代币)或百分比 */
58
71
  sellAmounts?: string[];
59
- /** 卖出百分比(当 sellAmounts 未提供时使用) */
60
72
  sellPercent?: number;
61
- /** 代币地址 */
62
73
  tokenAddress: string;
63
- /** 代币精度 */
64
74
  tokenDecimals?: number;
65
- /** 池子类型 */
66
75
  poolType?: PoolType;
67
- /** 路由地址 */
68
76
  routerAddress?: string;
69
- /** V3 费率 */
70
77
  fee?: number;
71
- /** 用户类型(影响利润率) */
72
78
  userType?: UserType;
73
- /** EIP-7702 配置 */
74
79
  config?: EIP7702Config;
75
80
  }
76
81
  export interface BundleVolumeResult {
@@ -122,3 +127,22 @@ export interface SwapVolumeSignResult {
122
127
  sellAmount: string;
123
128
  };
124
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;