four-flap-meme-sdk 2.2.19 → 3.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 (519) hide show
  1. package/dist/{shared/abis → abis}/common.d.ts +1 -1
  2. package/dist/{shared/abis → abis}/common.js +75 -91
  3. package/dist/abis/contracts/TaxToken.json +969 -0
  4. package/dist/abis/contracts/TokenManager2.json +136 -0
  5. package/dist/{shared/abis → abis/contracts}/index.d.ts +0 -1
  6. package/dist/{shared/abis → abis/contracts}/index.js +0 -2
  7. package/dist/abis/flap/index.d.ts +5 -0
  8. package/dist/abis/flap/index.js +5 -0
  9. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  10. package/dist/abis/flap/portal-eip7702.js +39 -0
  11. package/dist/abis/flap/portal-events.d.ts +6 -0
  12. package/dist/abis/flap/portal-events.js +17 -0
  13. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  14. package/dist/abis/flap/portal-merkle.js +25 -0
  15. package/dist/abis/flap/portal.d.ts +6 -0
  16. package/dist/abis/flap/portal.js +37 -0
  17. package/dist/abis/flap/vault.d.ts +171 -0
  18. package/dist/abis/flap/vault.js +91 -0
  19. package/dist/abis/index.d.ts +6 -0
  20. package/dist/abis/index.js +9 -0
  21. package/dist/bundle/config-helpers.d.ts +37 -0
  22. package/dist/bundle/config-helpers.js +58 -0
  23. package/dist/bundle/errors.d.ts +50 -0
  24. package/dist/bundle/errors.js +38 -0
  25. package/dist/bundle/four-meme/approve-tokenmanager.d.ts +7 -0
  26. package/dist/bundle/four-meme/approve-tokenmanager.js +99 -0
  27. package/dist/bundle/four-meme/core-helpers.d.ts +8 -0
  28. package/dist/bundle/four-meme/core-helpers.js +41 -0
  29. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.d.ts +1 -1
  30. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.js +74 -150
  31. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.d.ts +1 -1
  32. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.js +85 -92
  33. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.d.ts +1 -1
  34. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.js +48 -59
  35. package/dist/bundle/four-meme/sign-context-helpers.d.ts +2 -0
  36. package/dist/bundle/four-meme/sign-context-helpers.js +2 -0
  37. package/dist/bundle/four-meme/swap-buy-first.d.ts +8 -0
  38. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-buy-first.js +56 -108
  39. package/dist/bundle/four-meme/swap-hop-helpers.d.ts +6 -0
  40. package/dist/bundle/four-meme/swap-hop-helpers.js +63 -0
  41. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.js +4 -4
  42. package/dist/bundle/four-meme/swap-sign-helpers.d.ts +28 -0
  43. package/dist/bundle/four-meme/swap-sign-helpers.js +105 -0
  44. package/dist/bundle/four-meme/swap.d.ts +17 -0
  45. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap.js +84 -345
  46. package/dist/{contracts/tm-bundle-merkle/swap-buy-first.d.ts → bundle/four-meme/types/buy-first.d.ts} +11 -18
  47. package/dist/bundle/four-meme/types/core-flow.d.ts +63 -0
  48. package/dist/bundle/four-meme/types/core-flow.js +1 -0
  49. package/dist/{contracts/tm-bundle-merkle/types.d.ts → bundle/four-meme/types/index.d.ts} +130 -6
  50. package/dist/bundle/four-meme/types/index.js +1 -0
  51. package/dist/bundle/four-meme/types/swap-internal.d.ts +19 -0
  52. package/dist/bundle/four-meme/types/swap-internal.js +1 -0
  53. package/dist/bundle/four-meme/types.d.ts +1 -0
  54. package/dist/bundle/four-meme/utils-disperse.d.ts +7 -0
  55. package/dist/bundle/four-meme/utils-disperse.js +396 -0
  56. package/dist/bundle/four-meme/utils-pairwise.d.ts +8 -0
  57. package/dist/bundle/four-meme/utils-pairwise.js +328 -0
  58. package/dist/bundle/four-meme/utils-sweep.d.ts +8 -0
  59. package/dist/bundle/four-meme/utils-sweep.js +744 -0
  60. package/dist/bundle/index.d.ts +8 -0
  61. package/dist/bundle/index.js +8 -0
  62. package/dist/bundle/internal.d.ts +16 -0
  63. package/dist/bundle/internal.js +160 -0
  64. package/dist/bundle/sign-context-helpers.d.ts +26 -0
  65. package/dist/bundle/sign-context-helpers.js +63 -0
  66. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.d.ts +6 -27
  67. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.js +116 -313
  68. package/dist/bundle/types/index.d.ts +8 -0
  69. package/dist/bundle/types/index.js +1 -0
  70. package/dist/bundle/types.d.ts +1 -0
  71. package/dist/bundle/types.js +1 -0
  72. package/dist/chains/bsc/constants.js +1 -1
  73. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  74. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  75. package/dist/chains/bsc/four/config.d.ts +5 -67
  76. package/dist/chains/bsc/four/config.js +2 -114
  77. package/dist/chains/bsc/four/core.d.ts +1 -4
  78. package/dist/chains/bsc/four/core.js +1 -592
  79. package/dist/chains/bsc/four/index.d.ts +6 -6
  80. package/dist/chains/bsc/four/index.js +6 -6
  81. package/dist/chains/bsc/four/internal.d.ts +2 -46
  82. package/dist/chains/bsc/four/internal.js +2 -239
  83. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  84. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  85. package/dist/chains/bsc/four/private.d.ts +1 -27
  86. package/dist/chains/bsc/four/private.js +1 -477
  87. package/dist/chains/bsc/four/submit.d.ts +2 -315
  88. package/dist/chains/bsc/four/submit.js +2 -752
  89. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  90. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  91. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  92. package/dist/chains/bsc/four/swap-internal.js +1 -18
  93. package/dist/chains/bsc/four/swap.d.ts +2 -144
  94. package/dist/chains/bsc/four/swap.js +2 -766
  95. package/dist/chains/bsc/four/types.d.ts +1 -476
  96. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  97. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  98. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  99. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  100. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  101. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  102. package/dist/chains/bsc/four/utils.d.ts +5 -18
  103. package/dist/chains/bsc/four/utils.js +5 -1552
  104. package/dist/chains/bsc/iro.d.ts +5 -0
  105. package/dist/chains/bsc/iro.js +4 -0
  106. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  109. package/dist/chains/bsc/pancake/bundle-buy-first.js +99 -214
  110. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  112. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  113. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  114. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  115. package/dist/chains/bsc/pancake/index.js +1 -3
  116. package/dist/chains/bsc/platforms/iro/constants.js +1 -1
  117. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  118. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  119. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  120. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  121. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  122. package/dist/chains/bsc/platforms/iro/token.js +5 -2
  123. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  124. package/dist/chains/eni/batch-router/transfer.js +57 -27
  125. package/dist/chains/eni/batch-router/utils.js +32 -6
  126. package/dist/chains/eni/bundler/sign.js +5 -6
  127. package/dist/chains/eni/bundler/submit.js +1 -4
  128. package/dist/chains/eni/constants.js +2 -2
  129. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  130. package/dist/chains/eni/flat-aliases.js +8 -0
  131. package/dist/chains/eni/index.d.ts +2 -1
  132. package/dist/chains/eni/index.js +1 -0
  133. package/dist/chains/eni/platforms/daoaas/create.js +3 -3
  134. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  135. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  136. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  137. package/dist/chains/eni/platforms/daoaas/portal-direct.js +29 -45
  138. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  139. package/dist/chains/eni/platforms/dswap/liquidity.js +59 -27
  140. package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
  141. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  142. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  143. package/dist/chains/eni/platforms/fair-launch/launcher.js +88 -47
  144. package/dist/chains/eni/platforms/fair-launch/pool.js +5 -2
  145. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  146. package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
  147. package/dist/chains/eni/platforms/iro/constants.js +2 -2
  148. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  149. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  150. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  151. package/dist/chains/eni/platforms/iro/index.js +4 -4
  152. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  153. package/dist/chains/eni/platforms/iro/token.js +108 -32
  154. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  155. package/dist/chains/eni/submit.d.ts +43 -0
  156. package/dist/chains/eni/submit.js +287 -0
  157. package/dist/chains/index.d.ts +13 -0
  158. package/dist/chains/index.js +13 -0
  159. package/dist/chains/monad/constants.js +1 -1
  160. package/dist/chains/xlayer/constants.d.ts +5 -0
  161. package/dist/chains/xlayer/constants.js +1 -1
  162. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  163. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  164. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  165. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  166. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  167. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  168. package/dist/chains/xlayer/eip7702/bundle-sell.js +30 -112
  169. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  170. package/dist/chains/xlayer/eip7702/bundle-swap.js +52 -246
  171. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  172. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  173. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  174. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  175. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  176. package/dist/chains/xlayer/eip7702/index.js +28 -81
  177. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  178. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  179. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  180. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +64 -308
  181. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  182. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  183. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  184. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  185. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  186. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  187. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  188. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  189. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  190. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  191. package/dist/chains/xlayer/eoa/constants.js +2 -16
  192. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  193. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  194. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  195. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  196. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  197. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  198. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  199. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  200. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  201. package/dist/chains/xlayer/eoa/index.js +8 -23
  202. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  203. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  204. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  205. package/dist/chains/xlayer/eoa/types.js +1 -3
  206. package/dist/chains/xlayer/index.d.ts +3 -2
  207. package/dist/chains/xlayer/index.js +4 -7
  208. package/dist/core/amount/split-by-weight.d.ts +5 -0
  209. package/dist/core/amount/split-by-weight.js +35 -0
  210. package/dist/{shared → core}/clients/blockrazor.d.ts +4 -8
  211. package/dist/{shared → core}/clients/blockrazor.js +43 -35
  212. package/dist/{shared → core}/clients/club48.d.ts +2 -2
  213. package/dist/{shared → core}/clients/club48.js +36 -30
  214. package/dist/{shared → core}/clients/emitservice.js +2 -0
  215. package/dist/{shared → core}/clients/four.d.ts +21 -6
  216. package/dist/{shared → core}/clients/four.js +29 -24
  217. package/dist/core/clients/index.d.ts +8 -0
  218. package/dist/core/clients/index.js +8 -0
  219. package/dist/{shared → core}/clients/merkle.d.ts +4 -3
  220. package/dist/{shared → core}/clients/merkle.js +30 -47
  221. package/dist/{shared → core}/constants/addresses.d.ts +27 -1
  222. package/dist/{shared → core}/constants/addresses.js +39 -2
  223. package/dist/{shared → core}/constants/chains.d.ts +1 -1
  224. package/dist/{shared → core}/constants/chains.js +1 -1
  225. package/dist/{shared → core}/constants/gas.d.ts +1 -1
  226. package/dist/{shared → core}/constants/gas.js +2 -6
  227. package/dist/{shared → core}/constants/index.d.ts +5 -2
  228. package/dist/{shared → core}/constants/index.js +3 -2
  229. package/dist/core/constants/quote.d.ts +30 -0
  230. package/dist/core/constants/quote.js +37 -0
  231. package/dist/core/dex/v3-path.d.ts +6 -0
  232. package/dist/core/dex/v3-path.js +35 -0
  233. package/dist/core/erc20/decimals.d.ts +7 -0
  234. package/dist/core/erc20/decimals.js +24 -0
  235. package/dist/{utils → core}/erc20.d.ts +7 -89
  236. package/dist/{utils → core}/erc20.js +99 -130
  237. package/dist/core/foundation.d.ts +15 -0
  238. package/dist/core/foundation.js +14 -0
  239. package/dist/core/gas/bundle-gas.d.ts +49 -0
  240. package/dist/core/gas/bundle-gas.js +93 -0
  241. package/dist/core/gas/profit-hop.d.ts +20 -0
  242. package/dist/core/gas/profit-hop.js +72 -0
  243. package/dist/core/index.d.ts +5 -0
  244. package/dist/core/index.js +5 -0
  245. package/dist/core/legacy-types/errors.d.ts +27 -0
  246. package/dist/core/legacy-types/errors.js +34 -0
  247. package/dist/core/nonce/nonce-manager.d.ts +19 -0
  248. package/dist/core/nonce/nonce-manager.js +217 -0
  249. package/dist/core/normalize-unknown.d.ts +9 -0
  250. package/dist/core/normalize-unknown.js +29 -0
  251. package/dist/core/sdk-logger.d.ts +13 -0
  252. package/dist/core/sdk-logger.js +12 -0
  253. package/dist/core/shared-abis/common.d.ts +4 -0
  254. package/dist/core/shared-abis/common.js +4 -0
  255. package/dist/core/shared-abis/index.d.ts +5 -0
  256. package/dist/core/shared-abis/index.js +5 -0
  257. package/dist/core/tx/build-request.d.ts +17 -0
  258. package/dist/core/tx/build-request.js +25 -0
  259. package/dist/core/tx/sign-batch.d.ts +5 -0
  260. package/dist/core/tx/sign-batch.js +26 -0
  261. package/dist/core/tx/wallet-sign-patch.d.ts +1 -0
  262. package/dist/core/tx/wallet-sign-patch.js +18 -0
  263. package/dist/core/types/airdrop-sweep.d.ts +79 -0
  264. package/dist/core/types/airdrop-sweep.js +1 -0
  265. package/dist/core/types/erc20.d.ts +65 -0
  266. package/dist/core/types/erc20.js +1 -0
  267. package/dist/core/types/holders-maker.d.ts +64 -0
  268. package/dist/core/types/holders-maker.js +1 -0
  269. package/dist/core/types/index.d.ts +7 -0
  270. package/dist/core/types/index.js +1 -0
  271. package/dist/{utils → core/types}/lp-inspect.d.ts +4 -52
  272. package/dist/core/types/lp-inspect.js +1 -0
  273. package/dist/core/types/multicall.d.ts +5 -0
  274. package/dist/core/types/multicall.js +1 -0
  275. package/dist/core/types/private-sale.d.ts +35 -0
  276. package/dist/core/types/private-sale.js +1 -0
  277. package/dist/core/types/quote-helpers.d.ts +17 -0
  278. package/dist/core/types/quote-helpers.js +1 -0
  279. package/dist/core/types-erc20.d.ts +1 -0
  280. package/dist/core/types-erc20.js +1 -0
  281. package/dist/core/wallet/generate.d.ts +5 -0
  282. package/dist/core/wallet/generate.js +8 -0
  283. package/dist/domains/dex/direct-router-helpers.d.ts +269 -0
  284. package/dist/domains/dex/direct-router-helpers.js +536 -0
  285. package/dist/domains/dex/direct-router.d.ts +28 -0
  286. package/dist/{dex → domains/dex}/direct-router.js +246 -674
  287. package/dist/domains/dex/types.d.ts +81 -0
  288. package/dist/domains/dex/types.js +1 -0
  289. package/dist/{shared → domains}/flap/abi.js +1 -1
  290. package/dist/{shared → domains}/flap/constants.d.ts +1 -2
  291. package/dist/{shared → domains}/flap/constants.js +3 -4
  292. package/dist/{shared → domains}/flap/curve.js +3 -0
  293. package/dist/{shared → domains}/flap/errors.d.ts +1 -4
  294. package/dist/{shared → domains}/flap/errors.js +20 -1
  295. package/dist/domains/flap/index.d.ts +7 -0
  296. package/dist/domains/flap/index.js +5 -0
  297. package/dist/{shared → domains}/flap/meta.d.ts +22 -18
  298. package/dist/{shared → domains}/flap/meta.js +32 -24
  299. package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +4 -5
  300. package/dist/{shared/flap/index.js → domains/flap/module.js} +4 -5
  301. package/dist/{shared → domains}/flap/permit.js +10 -3
  302. package/dist/{shared → domains}/flap/pinata.d.ts +22 -6
  303. package/dist/{shared → domains}/flap/pinata.js +21 -26
  304. package/dist/domains/flap/portal-bundle-merkle/config.d.ts +10 -0
  305. package/dist/domains/flap/portal-bundle-merkle/config.js +13 -0
  306. package/dist/domains/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  307. package/dist/domains/flap/portal-bundle-merkle/core-helpers.js +83 -0
  308. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -4
  309. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +168 -175
  310. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  311. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +97 -118
  312. package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +105 -123
  313. package/dist/domains/flap/portal-bundle-merkle/index.d.ts +18 -0
  314. package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +4 -7
  315. package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +73 -70
  316. package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +63 -116
  317. package/dist/domains/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  318. package/dist/domains/flap/portal-bundle-merkle/swap-batch.js +227 -0
  319. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  320. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  321. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first.d.ts +2 -0
  322. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  323. package/dist/domains/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  324. package/dist/domains/flap/portal-bundle-merkle/swap-cross.js +139 -0
  325. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  326. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  327. package/dist/domains/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  328. package/dist/domains/flap/portal-bundle-merkle/swap-planning.js +182 -0
  329. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  330. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  331. package/dist/domains/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  332. package/dist/domains/flap/portal-bundle-merkle/swap-single.js +184 -0
  333. package/dist/domains/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  334. package/dist/domains/flap/portal-bundle-merkle/swap-types.js +1 -0
  335. package/dist/domains/flap/portal-bundle-merkle/swap.d.ts +8 -0
  336. package/dist/domains/flap/portal-bundle-merkle/swap.js +7 -0
  337. package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +88 -12
  338. package/dist/domains/flap/portal-bundle-merkle/types.js +1 -0
  339. package/dist/domains/flap/portal-bundle-merkle/utils.d.ts +10 -0
  340. package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +145 -265
  341. package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
  342. package/dist/{shared → domains}/flap/portal-bundle.js +84 -79
  343. package/dist/domains/flap/portal-create-token.d.ts +81 -0
  344. package/dist/domains/flap/portal-create-token.js +255 -0
  345. package/dist/{shared → domains}/flap/portal.d.ts +1 -2
  346. package/dist/{shared → domains}/flap/portal.js +36 -28
  347. package/dist/{shared → domains}/flap/vanity.d.ts +6 -6
  348. package/dist/{shared → domains}/flap/vanity.js +15 -21
  349. package/dist/{shared → domains}/flap/vault.d.ts +25 -93
  350. package/dist/{shared → domains}/flap/vault.js +77 -127
  351. package/dist/{flows → domains/flows}/create.d.ts +2 -1
  352. package/dist/{flows → domains/flows}/create.js +8 -8
  353. package/dist/domains/flows/index.d.ts +9 -0
  354. package/dist/domains/flows/index.js +9 -0
  355. package/dist/{contracts → domains/four/contracts}/helper3.d.ts +20 -5
  356. package/dist/{contracts → domains/four/contracts}/helper3.js +56 -20
  357. package/dist/domains/four/contracts/tm-bundle-helpers.d.ts +88 -0
  358. package/dist/domains/four/contracts/tm-bundle-helpers.js +73 -0
  359. package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +4 -52
  360. package/dist/{contracts → domains/four/contracts}/tm-bundle.js +122 -189
  361. package/dist/{contracts → domains/four/contracts}/tm.d.ts +10 -8
  362. package/dist/{contracts → domains/four/contracts}/tm.js +39 -35
  363. package/dist/{contracts → domains/four/contracts}/tm1.js +9 -4
  364. package/dist/{contracts → domains/four/contracts}/tm2.js +10 -5
  365. package/dist/domains/four/index.d.ts +7 -0
  366. package/dist/domains/four/index.js +7 -0
  367. package/dist/{shared → domains}/four/tax-token.d.ts +1 -1
  368. package/dist/{shared → domains}/four/tax-token.js +31 -10
  369. package/dist/domains/holders/holders-maker-helpers.d.ts +9 -0
  370. package/dist/domains/holders/holders-maker-helpers.js +9 -0
  371. package/dist/domains/holders/holders-maker.d.ts +18 -0
  372. package/dist/domains/holders/holders-maker.js +324 -0
  373. package/dist/domains/holders/index.d.ts +1 -0
  374. package/dist/domains/holders/index.js +1 -0
  375. package/dist/domains/holders/internal/addresses.d.ts +12 -0
  376. package/dist/domains/holders/internal/addresses.js +15 -0
  377. package/dist/domains/holders/internal/buy-tx.d.ts +44 -0
  378. package/dist/domains/holders/internal/buy-tx.js +278 -0
  379. package/dist/domains/holders/internal/constants.d.ts +6 -0
  380. package/dist/domains/holders/internal/constants.js +7 -0
  381. package/dist/domains/holders/internal/disperse.d.ts +18 -0
  382. package/dist/domains/holders/internal/disperse.js +90 -0
  383. package/dist/domains/holders/internal/routing.d.ts +4 -0
  384. package/dist/domains/holders/internal/routing.js +45 -0
  385. package/dist/domains/holders/internal/transfer-tx.d.ts +4 -0
  386. package/dist/domains/holders/internal/transfer-tx.js +67 -0
  387. package/dist/domains/holders/types.d.ts +1 -0
  388. package/dist/domains/holders/types.js +1 -0
  389. package/dist/domains/lp-inspect/index.d.ts +1 -0
  390. package/dist/domains/lp-inspect/index.js +1 -0
  391. package/dist/domains/lp-inspect/lp-inspect-helpers.d.ts +9 -0
  392. package/dist/domains/lp-inspect/lp-inspect-helpers.js +109 -0
  393. package/dist/domains/lp-inspect/lp-inspect.d.ts +40 -0
  394. package/dist/{utils → domains/lp-inspect}/lp-inspect.js +78 -293
  395. package/dist/domains/lp-inspect/types.d.ts +1 -0
  396. package/dist/domains/lp-inspect/types.js +1 -0
  397. package/dist/domains/merkle/index.d.ts +12 -0
  398. package/dist/domains/merkle/index.js +11 -0
  399. package/dist/domains/private-sale/index.d.ts +1 -0
  400. package/dist/domains/private-sale/index.js +1 -0
  401. package/dist/domains/private-sale/private-sale.d.ts +34 -0
  402. package/dist/{utils → domains/private-sale}/private-sale.js +5 -16
  403. package/dist/domains/private-sale/types.d.ts +1 -0
  404. package/dist/domains/private-sale/types.js +1 -0
  405. package/dist/domains/quote/index.d.ts +1 -0
  406. package/dist/domains/quote/index.js +1 -0
  407. package/dist/{utils → domains/quote}/quote-helpers.d.ts +4 -45
  408. package/dist/{utils → domains/quote}/quote-helpers.js +17 -74
  409. package/dist/domains/quote/types.d.ts +1 -0
  410. package/dist/domains/quote/types.js +1 -0
  411. package/dist/domains/vanity/index.d.ts +5 -0
  412. package/dist/domains/vanity/index.js +5 -0
  413. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  414. package/dist/exports/root-bundle-and-tooling.js +30 -0
  415. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  416. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  417. package/dist/exports/root-foundations.d.ts +35 -0
  418. package/dist/exports/root-foundations.js +70 -0
  419. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  420. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  421. package/dist/index.d.ts +17 -88
  422. package/dist/index.js +17 -218
  423. package/dist/utils/airdrop-sweep.d.ts +4 -76
  424. package/dist/utils/airdrop-sweep.js +42 -55
  425. package/dist/utils/bundle-helpers.d.ts +9 -243
  426. package/dist/utils/bundle-helpers.js +10 -584
  427. package/dist/utils/constants.d.ts +5 -61
  428. package/dist/utils/constants.js +5 -80
  429. package/dist/utils/contract-factory.d.ts +2 -4
  430. package/dist/utils/contract-factory.js +25 -18
  431. package/dist/utils/errors.d.ts +12 -1
  432. package/dist/utils/errors.js +60 -1
  433. package/dist/utils/hop-chains.d.ts +35 -0
  434. package/dist/utils/hop-chains.js +215 -0
  435. package/dist/utils/index.d.ts +5 -0
  436. package/dist/utils/index.js +5 -0
  437. package/dist/utils/mpcExclusive.d.ts +2 -5
  438. package/dist/utils/mpcExclusive.js +4 -3
  439. package/dist/utils/provider-factory.d.ts +4 -0
  440. package/dist/utils/provider-factory.js +10 -0
  441. package/dist/utils/stealth-transfer.d.ts +2 -28
  442. package/dist/utils/stealth-transfer.js +41 -21
  443. package/dist/utils/swap-helpers.d.ts +2 -15
  444. package/dist/utils/swap-helpers.js +7 -12
  445. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  446. package/dist/utils/types/airdrop-sweep.js +1 -0
  447. package/dist/utils/types/contract-factory.d.ts +1 -0
  448. package/dist/utils/types/contract-factory.js +1 -0
  449. package/dist/utils/types/errors.d.ts +1 -0
  450. package/dist/utils/types/errors.js +1 -0
  451. package/dist/utils/types/hop-chains.d.ts +8 -0
  452. package/dist/utils/types/hop-chains.js +1 -0
  453. package/dist/utils/types/index.d.ts +13 -0
  454. package/dist/utils/types/index.js +1 -0
  455. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  456. package/dist/utils/types/mpc-exclusive.js +1 -0
  457. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  458. package/dist/utils/types/stealth-transfer.js +1 -0
  459. package/dist/utils/types/wallet.d.ts +25 -0
  460. package/dist/utils/types/wallet.js +1 -0
  461. package/dist/utils/wallet.d.ts +4 -25
  462. package/dist/utils/wallet.js +27 -22
  463. package/package.json +96 -2
  464. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -26
  465. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -113
  466. package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -70
  467. package/dist/contracts/tm-bundle-merkle/config.js +0 -114
  468. package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
  469. package/dist/contracts/tm-bundle-merkle/index.js +0 -29
  470. package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -48
  471. package/dist/contracts/tm-bundle-merkle/internal.js +0 -240
  472. package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -146
  473. package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -20
  474. package/dist/contracts/tm-bundle-merkle/utils.js +0 -1503
  475. package/dist/dex/direct-router.d.ts +0 -150
  476. package/dist/shared/abis/TaxToken.json +0 -105
  477. package/dist/shared/abis/TokenManager2.json +0 -60
  478. package/dist/shared/flap/graduated-dex.d.ts +0 -1
  479. package/dist/shared/flap/graduated-dex.js +0 -1
  480. package/dist/shared/flap/launch-v6.d.ts +0 -132
  481. package/dist/shared/flap/launch-v6.js +0 -137
  482. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +0 -79
  483. package/dist/shared/flap/portal-bundle-merkle/config.js +0 -133
  484. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +0 -14
  485. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  486. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +0 -201
  487. package/dist/shared/flap/portal-bundle-merkle/swap.js +0 -1359
  488. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +0 -89
  489. package/dist/shared/flap/portal-create-token.d.ts +0 -63
  490. package/dist/shared/flap/portal-create-token.js +0 -258
  491. package/dist/shared/four/index.d.ts +0 -7
  492. package/dist/shared/four/index.js +0 -22
  493. package/dist/shared/index.d.ts +0 -10
  494. package/dist/shared/index.js +0 -10
  495. package/dist/utils/holders-maker.d.ts +0 -154
  496. package/dist/utils/holders-maker.js +0 -945
  497. package/dist/utils/pcs-infinity-cl.d.ts +0 -65
  498. package/dist/utils/pcs-infinity-cl.js +0 -426
  499. package/dist/utils/private-sale.d.ts +0 -90
  500. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  501. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
  502. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.d.ts +0 -0
  503. /package/dist/{shared/flap/portal-bundle-merkle/types.js → bundle/four-meme/types/buy-first.js} +0 -0
  504. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/types.js +0 -0
  505. /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
  506. /package/dist/{shared → core}/constants/profit.d.ts +0 -0
  507. /package/dist/{shared → core}/constants/profit.js +0 -0
  508. /package/dist/{dex → domains/dex}/index.d.ts +0 -0
  509. /package/dist/{dex → domains/dex}/index.js +0 -0
  510. /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
  511. /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
  512. /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
  513. /package/dist/{shared → domains}/flap/ipfs.js +0 -0
  514. /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
  515. /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  516. /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  517. /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
  518. /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
  519. /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
@@ -0,0 +1,58 @@
1
+ import { ethers } from 'ethers';
2
+ import { getCachedProvider, createWallet, generateRandomWallets, getProfitRecipient } from './utils.js';
3
+ import { UNIFIED_DELEGATE_ADDRESS, UNIFIED_DELEGATE_ABI } from './constants.js';
4
+ export function createEip7702DelegateContext(config) {
5
+ const provider = getCachedProvider(config?.rpcUrl);
6
+ const delegateAddress = (config?.delegateAddress && config.delegateAddress.trim()) || UNIFIED_DELEGATE_ADDRESS;
7
+ const delegateInterface = new ethers.Interface(UNIFIED_DELEGATE_ABI);
8
+ const profitRecipient = getProfitRecipient(config);
9
+ return { provider, delegateAddress, delegateInterface, profitRecipient };
10
+ }
11
+ export function isNativeTransferToken(tokenAddress) {
12
+ return !tokenAddress;
13
+ }
14
+ export function generateHopWalletMatrix(rowCount, hopCount, provider) {
15
+ const allHopWalletInfos = [];
16
+ const allHopWallets = [];
17
+ for (let i = 0; i < rowCount; i++) {
18
+ if (hopCount > 0) {
19
+ const hopInfos = generateRandomWallets(hopCount);
20
+ allHopWalletInfos.push(hopInfos);
21
+ allHopWallets.push(hopInfos.map((info) => createWallet(info.privateKey, provider)));
22
+ }
23
+ else {
24
+ allHopWalletInfos.push([]);
25
+ allHopWallets.push([]);
26
+ }
27
+ }
28
+ return { allHopWalletInfos, allHopWallets };
29
+ }
30
+ export function resolveDispersePayerWallets(mainPrivateKey, payerPrivateKey, provider) {
31
+ const mainWallet = createWallet(mainPrivateKey, provider);
32
+ const hasSeparatePayer = Boolean(payerPrivateKey && payerPrivateKey !== mainPrivateKey);
33
+ const payerWallet = hasSeparatePayer && payerPrivateKey ? createWallet(payerPrivateKey, provider) : null;
34
+ const txSender = payerWallet ?? mainWallet;
35
+ return { mainWallet, payerWallet, txSender, hasSeparatePayer };
36
+ }
37
+ export function resolveListPayerWallet(ownerPrivateKeys, payerPrivateKey, provider, fallbackToFirst = true) {
38
+ const hasSeparatePayer = Boolean(payerPrivateKey && !ownerPrivateKeys.includes(payerPrivateKey));
39
+ const payerWallet = hasSeparatePayer && payerPrivateKey ? createWallet(payerPrivateKey, provider) : null;
40
+ const firstOwnerKey = ownerPrivateKeys[0];
41
+ const mainWallet = payerWallet ?? (fallbackToFirst && firstOwnerKey ? createWallet(firstOwnerKey, provider) : null);
42
+ return { payerWallet, hasSeparatePayer, mainWallet };
43
+ }
44
+ export function parseTransferAmountsWei(amounts, isNative, tokenDecimals) {
45
+ return amounts.map((amt) => (isNative ? ethers.parseEther(amt) : ethers.parseUnits(amt, tokenDecimals)));
46
+ }
47
+ export function normalizePairwiseAmounts(pairCount, amount, amounts) {
48
+ if (amounts && amounts.length > 0) {
49
+ if (amounts.length !== pairCount) {
50
+ throw new Error(`amounts 长度 (${amounts.length}) 必须与对数 (${pairCount}) 相同`);
51
+ }
52
+ return amounts;
53
+ }
54
+ if (amount !== undefined && amount.trim().length > 0) {
55
+ return new Array(pairCount).fill(amount);
56
+ }
57
+ throw new Error('必须提供 amount 或 amounts');
58
+ }
@@ -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 '../../../core/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
+ */