four-flap-meme-sdk 2.2.0 → 2.2.2

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 (467) hide show
  1. package/README.en.md +6 -41
  2. package/README.md +0 -31
  3. package/README.zh-CN.md +6 -41
  4. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +26 -1
  5. package/dist/chains/bsc/four/approve-tokenmanager.js +113 -1
  6. package/dist/chains/bsc/four/config.d.ts +67 -5
  7. package/dist/chains/bsc/four/config.js +114 -2
  8. package/dist/chains/bsc/four/core.d.ts +4 -1
  9. package/dist/chains/bsc/four/core.js +592 -1
  10. package/dist/chains/bsc/four/index.d.ts +6 -6
  11. package/dist/chains/bsc/four/index.js +6 -6
  12. package/dist/chains/bsc/four/internal.d.ts +46 -2
  13. package/dist/chains/bsc/four/internal.js +239 -2
  14. package/dist/chains/bsc/four/pancake-proxy.d.ts +28 -1
  15. package/dist/chains/bsc/four/pancake-proxy.js +687 -1
  16. package/dist/chains/bsc/four/private.d.ts +27 -1
  17. package/dist/chains/bsc/four/private.js +477 -1
  18. package/dist/chains/bsc/four/submit.d.ts +315 -2
  19. package/dist/chains/bsc/four/submit.js +752 -2
  20. package/dist/chains/bsc/four/swap-buy-first.d.ts +55 -2
  21. package/dist/chains/bsc/four/swap-buy-first.js +507 -2
  22. package/dist/chains/bsc/four/swap-internal.d.ts +3 -1
  23. package/dist/chains/bsc/four/swap-internal.js +18 -1
  24. package/dist/chains/bsc/four/swap.d.ts +144 -2
  25. package/dist/chains/bsc/four/swap.js +766 -2
  26. package/dist/chains/bsc/four/types.d.ts +476 -1
  27. package/dist/chains/bsc/four/utils.d.ts +18 -5
  28. package/dist/chains/bsc/four/utils.js +1552 -5
  29. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +91 -1
  30. package/dist/chains/bsc/pancake/bundle-buy-first.js +212 -97
  31. package/dist/chains/bsc/pancake/bundle-swap.d.ts +79 -1
  32. package/dist/chains/bsc/pancake/bundle-swap.js +726 -114
  33. package/dist/chains/bsc/pancake/index.d.ts +2 -4
  34. package/dist/chains/bsc/pancake/index.js +3 -1
  35. package/dist/chains/bsc/platforms/iro/factory.js +1 -3
  36. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  37. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  38. package/dist/chains/bsc/platforms/iro/pool.js +10 -31
  39. package/dist/chains/bsc/platforms/iro/token.js +1 -4
  40. package/dist/chains/eni/batch-router/bundle-approve.js +3 -4
  41. package/dist/chains/eni/batch-router/transfer.js +25 -55
  42. package/dist/chains/eni/batch-router/utils.js +6 -32
  43. package/dist/chains/eni/bundler/sign.js +4 -4
  44. package/dist/chains/eni/bundler/submit.js +4 -1
  45. package/dist/chains/eni/constants.js +1 -1
  46. package/dist/chains/eni/index.d.ts +1 -2
  47. package/dist/chains/eni/index.js +0 -1
  48. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  49. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  50. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  51. package/dist/chains/eni/platforms/daoaas/meta.js +4 -8
  52. package/dist/chains/eni/platforms/daoaas/portal-direct.js +44 -28
  53. package/dist/chains/eni/platforms/daoaas/portal.js +6 -10
  54. package/dist/chains/eni/platforms/dswap/liquidity.js +26 -58
  55. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  56. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  57. package/dist/chains/eni/platforms/fair-launch/launcher.js +46 -87
  58. package/dist/chains/eni/platforms/fair-launch/pool.js +1 -4
  59. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  60. package/dist/chains/eni/platforms/iro/factory.js +1 -3
  61. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  62. package/dist/chains/eni/platforms/iro/index.js +4 -4
  63. package/dist/chains/eni/platforms/iro/pool.js +26 -90
  64. package/dist/chains/eni/platforms/iro/token.js +31 -107
  65. package/dist/chains/eni/platforms/iro/whitelist.js +18 -6
  66. package/dist/chains/index.d.ts +0 -13
  67. package/dist/chains/index.js +0 -13
  68. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +26 -2
  69. package/dist/chains/xlayer/eip7702/bundle-approve.js +21 -11
  70. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +6 -2
  71. package/dist/chains/xlayer/eip7702/bundle-buy.js +51 -13
  72. package/dist/chains/xlayer/eip7702/bundle-create.js +59 -93
  73. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +6 -2
  74. package/dist/chains/xlayer/eip7702/bundle-sell.js +97 -26
  75. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +65 -3
  76. package/dist/chains/xlayer/eip7702/bundle-swap.js +245 -51
  77. package/dist/chains/xlayer/eip7702/constants.d.ts +16 -1
  78. package/dist/chains/xlayer/eip7702/constants.js +21 -3
  79. package/dist/chains/xlayer/eip7702/index.d.ts +46 -28
  80. package/dist/chains/xlayer/eip7702/index.js +81 -28
  81. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +203 -2
  82. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +301 -58
  83. package/dist/chains/xlayer/eip7702/types.d.ts +0 -88
  84. package/dist/chains/xlayer/eip7702/utils.d.ts +3 -0
  85. package/dist/chains/xlayer/eip7702/utils.js +28 -23
  86. package/dist/chains/xlayer/eip7702/volume.d.ts +184 -6
  87. package/dist/chains/xlayer/eip7702/volume.js +158 -83
  88. package/dist/chains/xlayer/eoa/constants.js +1 -1
  89. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  90. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +95 -1
  91. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +299 -66
  92. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  93. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +23 -18
  94. package/dist/chains/xlayer/eoa/index.d.ts +6 -10
  95. package/dist/chains/xlayer/eoa/index.js +23 -8
  96. package/dist/chains/xlayer/eoa/portal-ops.js +2 -7
  97. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  98. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  99. package/dist/chains/xlayer/eoa/types.js +3 -1
  100. package/dist/chains/xlayer/index.d.ts +2 -3
  101. package/dist/chains/xlayer/index.js +7 -4
  102. package/dist/contracts/helper3.d.ts +5 -20
  103. package/dist/contracts/helper3.js +20 -56
  104. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +26 -1
  105. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +113 -1
  106. package/dist/contracts/tm-bundle-merkle/config.d.ts +67 -5
  107. package/dist/contracts/tm-bundle-merkle/config.js +114 -2
  108. package/dist/contracts/tm-bundle-merkle/core.d.ts +4 -1
  109. package/dist/contracts/tm-bundle-merkle/core.js +591 -1
  110. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  111. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  112. package/dist/contracts/tm-bundle-merkle/internal.d.ts +46 -2
  113. package/dist/contracts/tm-bundle-merkle/internal.js +238 -2
  114. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +28 -1
  115. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +686 -1
  116. package/dist/contracts/tm-bundle-merkle/private.d.ts +27 -1
  117. package/dist/contracts/tm-bundle-merkle/private.js +476 -1
  118. package/dist/contracts/tm-bundle-merkle/submit.d.ts +314 -3
  119. package/dist/contracts/tm-bundle-merkle/submit.js +928 -3
  120. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +55 -2
  121. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +506 -2
  122. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +3 -1
  123. package/dist/contracts/tm-bundle-merkle/swap-internal.js +18 -1
  124. package/dist/contracts/tm-bundle-merkle/swap.d.ts +144 -2
  125. package/dist/contracts/tm-bundle-merkle/swap.js +764 -2
  126. package/dist/contracts/tm-bundle-merkle/types.d.ts +476 -1
  127. package/dist/contracts/tm-bundle-merkle/utils.d.ts +18 -6
  128. package/dist/contracts/tm-bundle-merkle/utils.js +1501 -6
  129. package/dist/contracts/tm-bundle.d.ts +51 -3
  130. package/dist/contracts/tm-bundle.js +177 -108
  131. package/dist/contracts/tm.d.ts +2 -3
  132. package/dist/contracts/tm.js +32 -37
  133. package/dist/contracts/tm1.js +4 -9
  134. package/dist/contracts/tm2.js +4 -9
  135. package/dist/dex/direct-router.d.ts +125 -3
  136. package/dist/dex/direct-router.js +666 -237
  137. package/dist/flows/create.d.ts +1 -2
  138. package/dist/flows/create.js +6 -6
  139. package/dist/index.d.ts +85 -20
  140. package/dist/index.js +215 -20
  141. package/dist/shared/abis/TaxToken.json +105 -0
  142. package/dist/shared/abis/TokenManager2.json +60 -0
  143. package/dist/shared/abis/common.d.ts +83 -2
  144. package/dist/shared/abis/common.js +252 -2
  145. package/dist/shared/abis/index.d.ts +6 -5
  146. package/dist/shared/abis/index.js +7 -5
  147. package/dist/shared/clients/blockrazor.js +25 -39
  148. package/dist/shared/clients/club48.d.ts +2 -2
  149. package/dist/shared/clients/club48.js +29 -34
  150. package/dist/shared/clients/emitservice.js +0 -2
  151. package/dist/shared/clients/four.d.ts +5 -5
  152. package/dist/shared/clients/four.js +17 -21
  153. package/dist/shared/clients/merkle.js +34 -27
  154. package/dist/shared/constants/addresses.d.ts +1 -1
  155. package/dist/shared/constants/addresses.js +2 -11
  156. package/dist/shared/constants/chains.d.ts +1 -1
  157. package/dist/shared/constants/chains.js +1 -1
  158. package/dist/shared/constants/gas.d.ts +1 -1
  159. package/dist/shared/constants/gas.js +6 -2
  160. package/dist/shared/constants/index.d.ts +0 -3
  161. package/dist/shared/constants/index.js +0 -1
  162. package/dist/shared/flap/abi.js +1 -1
  163. package/dist/shared/flap/constants.d.ts +2 -1
  164. package/dist/shared/flap/constants.js +3 -2
  165. package/dist/shared/flap/curve.js +0 -3
  166. package/dist/shared/flap/errors.d.ts +4 -1
  167. package/dist/shared/flap/errors.js +1 -20
  168. package/dist/shared/flap/index.d.ts +3 -3
  169. package/dist/shared/flap/index.js +3 -3
  170. package/dist/shared/flap/meta.d.ts +18 -16
  171. package/dist/shared/flap/meta.js +17 -12
  172. package/dist/shared/flap/permit.js +2 -5
  173. package/dist/shared/flap/pinata.d.ts +4 -11
  174. package/dist/shared/flap/pinata.js +16 -21
  175. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +72 -3
  176. package/dist/shared/flap/portal-bundle-merkle/config.js +124 -4
  177. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +4 -0
  178. package/dist/shared/flap/portal-bundle-merkle/core.js +172 -92
  179. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +99 -106
  180. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +92 -100
  181. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +7 -11
  182. package/dist/shared/flap/portal-bundle-merkle/index.js +7 -4
  183. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +68 -71
  184. package/dist/shared/flap/portal-bundle-merkle/private.js +114 -61
  185. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +64 -1
  186. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +247 -66
  187. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +71 -2
  188. package/dist/shared/flap/portal-bundle-merkle/swap.js +410 -103
  189. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +7 -73
  190. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +80 -1
  191. package/dist/shared/flap/portal-bundle-merkle/utils.js +265 -145
  192. package/dist/shared/flap/portal-bundle.js +56 -55
  193. package/dist/shared/flap/portal.d.ts +3 -1
  194. package/dist/shared/flap/portal.js +25 -32
  195. package/dist/shared/flap/vanity.d.ts +5 -1
  196. package/dist/shared/flap/vanity.js +17 -6
  197. package/dist/shared/flap/vault.d.ts +124 -17
  198. package/dist/shared/flap/vault.js +148 -67
  199. package/dist/shared/four/tax-token.d.ts +1 -1
  200. package/dist/shared/four/tax-token.js +7 -27
  201. package/dist/shared/index.d.ts +0 -6
  202. package/dist/shared/index.js +0 -4
  203. package/dist/utils/airdrop-sweep.d.ts +76 -4
  204. package/dist/utils/airdrop-sweep.js +54 -40
  205. package/dist/utils/bundle-helpers.d.ts +243 -9
  206. package/dist/utils/bundle-helpers.js +584 -10
  207. package/dist/utils/constants.d.ts +61 -5
  208. package/dist/utils/constants.js +80 -5
  209. package/dist/utils/contract-factory.d.ts +4 -2
  210. package/dist/utils/contract-factory.js +18 -25
  211. package/dist/utils/erc20.d.ts +89 -7
  212. package/dist/utils/erc20.js +125 -94
  213. package/dist/utils/errors.d.ts +1 -12
  214. package/dist/utils/errors.js +1 -60
  215. package/dist/utils/holders-maker.d.ts +138 -2
  216. package/dist/utils/holders-maker.js +661 -26
  217. package/dist/utils/lp-inspect.d.ts +112 -2
  218. package/dist/utils/lp-inspect.js +223 -73
  219. package/dist/utils/mpcExclusive.d.ts +5 -2
  220. package/dist/utils/mpcExclusive.js +3 -4
  221. package/dist/utils/private-sale.d.ts +58 -2
  222. package/dist/utils/private-sale.js +15 -4
  223. package/dist/utils/provider-factory.d.ts +0 -4
  224. package/dist/utils/provider-factory.js +0 -10
  225. package/dist/utils/quote-helpers.d.ts +45 -4
  226. package/dist/utils/quote-helpers.js +74 -17
  227. package/dist/utils/stealth-transfer.d.ts +28 -2
  228. package/dist/utils/stealth-transfer.js +15 -31
  229. package/dist/utils/swap-helpers.d.ts +15 -2
  230. package/dist/utils/swap-helpers.js +10 -5
  231. package/dist/utils/wallet.d.ts +25 -2
  232. package/dist/utils/wallet.js +8 -9
  233. package/package.json +4 -159
  234. package/dist/__tests__/subpath-exports.test.d.ts +0 -1
  235. package/dist/__tests__/subpath-exports.test.js +0 -64
  236. package/dist/abis/common.d.ts +0 -85
  237. package/dist/abis/common.js +0 -260
  238. package/dist/abis/contracts/TaxToken.json +0 -969
  239. package/dist/abis/contracts/TokenManager2.json +0 -136
  240. package/dist/abis/contracts/index.d.ts +0 -5
  241. package/dist/abis/contracts/index.js +0 -5
  242. package/dist/abis/flap/index.d.ts +0 -3
  243. package/dist/abis/flap/index.js +0 -3
  244. package/dist/abis/flap/portal-events.d.ts +0 -6
  245. package/dist/abis/flap/portal-events.js +0 -17
  246. package/dist/abis/flap/portal.d.ts +0 -6
  247. package/dist/abis/flap/portal.js +0 -37
  248. package/dist/abis/flap/vault.d.ts +0 -171
  249. package/dist/abis/flap/vault.js +0 -91
  250. package/dist/abis/index.d.ts +0 -8
  251. package/dist/abis/index.js +0 -11
  252. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
  253. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  254. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
  255. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  256. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
  257. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  258. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  259. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  260. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  261. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  262. package/dist/bundle-core/config-helpers.d.ts +0 -36
  263. package/dist/bundle-core/config-helpers.js +0 -57
  264. package/dist/bundle-core/errors.d.ts +0 -50
  265. package/dist/bundle-core/errors.js +0 -34
  266. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
  267. package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
  268. package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
  269. package/dist/bundle-core/four-meme/core-helpers.js +0 -40
  270. package/dist/bundle-core/four-meme/core.d.ts +0 -4
  271. package/dist/bundle-core/four-meme/core.js +0 -515
  272. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
  273. package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
  274. package/dist/bundle-core/four-meme/private.d.ts +0 -27
  275. package/dist/bundle-core/four-meme/private.js +0 -465
  276. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
  277. package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
  278. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
  279. package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
  280. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
  281. package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
  282. package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
  283. package/dist/bundle-core/four-meme/swap-internal.js +0 -18
  284. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
  285. package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
  286. package/dist/bundle-core/four-meme/swap.d.ts +0 -17
  287. package/dist/bundle-core/four-meme/swap.js +0 -505
  288. package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
  289. package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
  290. package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
  291. package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
  292. package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
  293. package/dist/bundle-core/four-meme/types/index.js +0 -1
  294. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
  295. package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
  296. package/dist/bundle-core/four-meme/types.d.ts +0 -1
  297. package/dist/bundle-core/four-meme/types.js +0 -1
  298. package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
  299. package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
  300. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
  301. package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
  302. package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
  303. package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
  304. package/dist/bundle-core/index.d.ts +0 -8
  305. package/dist/bundle-core/index.js +0 -8
  306. package/dist/bundle-core/internal.d.ts +0 -21
  307. package/dist/bundle-core/internal.js +0 -182
  308. package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
  309. package/dist/bundle-core/sign-context-helpers.js +0 -67
  310. package/dist/bundle-core/submit.d.ts +0 -293
  311. package/dist/bundle-core/submit.js +0 -727
  312. package/dist/bundle-core/types/index.d.ts +0 -8
  313. package/dist/bundle-core/types/index.js +0 -1
  314. package/dist/bundle-core/types.d.ts +0 -1
  315. package/dist/bundle-core/types.js +0 -1
  316. package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
  317. package/dist/chains/bsc/four/utils-disperse.js +0 -1
  318. package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
  319. package/dist/chains/bsc/four/utils-pairwise.js +0 -1
  320. package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
  321. package/dist/chains/bsc/four/utils-sweep.js +0 -1
  322. package/dist/chains/bsc/iro.d.ts +0 -5
  323. package/dist/chains/bsc/iro.js +0 -4
  324. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
  325. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
  326. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
  327. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
  328. package/dist/chains/eni/flat-aliases.d.ts +0 -10
  329. package/dist/chains/eni/flat-aliases.js +0 -8
  330. package/dist/chains/eni/submit.d.ts +0 -43
  331. package/dist/chains/eni/submit.js +0 -286
  332. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
  333. package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
  334. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
  335. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
  336. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
  337. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
  338. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
  339. package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
  340. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
  341. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
  342. package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
  343. package/dist/contracts/tm-bundle-helpers.js +0 -72
  344. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  345. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  346. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  347. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  348. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  349. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  350. package/dist/dex/direct-router-helpers.d.ts +0 -264
  351. package/dist/dex/direct-router-helpers.js +0 -539
  352. package/dist/dex/types.d.ts +0 -81
  353. package/dist/dex/types.js +0 -1
  354. package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
  355. package/dist/exports/root-bundle-and-tooling.js +0 -30
  356. package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
  357. package/dist/exports/root-eni-and-bsc-iro.js +0 -66
  358. package/dist/exports/root-foundations.d.ts +0 -35
  359. package/dist/exports/root-foundations.js +0 -70
  360. package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
  361. package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
  362. package/dist/flap/index.d.ts +0 -10
  363. package/dist/flap/index.js +0 -8
  364. package/dist/flows/index.d.ts +0 -1
  365. package/dist/flows/index.js +0 -1
  366. package/dist/merkle/index.d.ts +0 -12
  367. package/dist/merkle/index.js +0 -11
  368. package/dist/shared/clients/index.d.ts +0 -8
  369. package/dist/shared/clients/index.js +0 -8
  370. package/dist/shared/constants/quote.d.ts +0 -30
  371. package/dist/shared/constants/quote.js +0 -37
  372. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
  373. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
  374. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
  375. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
  376. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
  377. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
  378. package/dist/shared/foundation/dex/v3-path.d.ts +0 -6
  379. package/dist/shared/foundation/dex/v3-path.js +0 -35
  380. package/dist/shared/foundation/gas/bundle-gas.d.ts +0 -39
  381. package/dist/shared/foundation/gas/bundle-gas.js +0 -93
  382. package/dist/shared/foundation/gas/profit-hop.d.ts +0 -20
  383. package/dist/shared/foundation/gas/profit-hop.js +0 -72
  384. package/dist/shared/foundation/index.d.ts +0 -13
  385. package/dist/shared/foundation/index.js +0 -12
  386. package/dist/shared/foundation/nonce/nonce-manager.d.ts +0 -17
  387. package/dist/shared/foundation/nonce/nonce-manager.js +0 -180
  388. package/dist/shared/foundation/normalize-unknown.d.ts +0 -9
  389. package/dist/shared/foundation/normalize-unknown.js +0 -29
  390. package/dist/shared/foundation/sdk-logger.d.ts +0 -13
  391. package/dist/shared/foundation/sdk-logger.js +0 -12
  392. package/dist/shared/foundation/tx/build-request.d.ts +0 -17
  393. package/dist/shared/foundation/tx/build-request.js +0 -25
  394. package/dist/shared/foundation/tx/sign-batch.d.ts +0 -5
  395. package/dist/shared/foundation/tx/sign-batch.js +0 -26
  396. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +0 -1
  397. package/dist/shared/foundation/tx/wallet-sign-patch.js +0 -18
  398. package/dist/shared/foundation/types/airdrop-sweep.d.ts +0 -79
  399. package/dist/shared/foundation/types/airdrop-sweep.js +0 -1
  400. package/dist/shared/foundation/types/erc20.d.ts +0 -65
  401. package/dist/shared/foundation/types/erc20.js +0 -1
  402. package/dist/shared/foundation/types/holders-maker.d.ts +0 -64
  403. package/dist/shared/foundation/types/holders-maker.js +0 -1
  404. package/dist/shared/foundation/types/index.d.ts +0 -7
  405. package/dist/shared/foundation/types/index.js +0 -1
  406. package/dist/shared/foundation/types/lp-inspect.d.ts +0 -102
  407. package/dist/shared/foundation/types/lp-inspect.js +0 -1
  408. package/dist/shared/foundation/types/multicall.d.ts +0 -5
  409. package/dist/shared/foundation/types/multicall.js +0 -1
  410. package/dist/shared/foundation/types/private-sale.d.ts +0 -35
  411. package/dist/shared/foundation/types/private-sale.js +0 -1
  412. package/dist/shared/foundation/types/quote-helpers.d.ts +0 -17
  413. package/dist/shared/foundation/types/quote-helpers.js +0 -1
  414. package/dist/types/errors.d.ts +0 -27
  415. package/dist/types/errors.js +0 -34
  416. package/dist/utils/holders-maker/addresses.d.ts +0 -12
  417. package/dist/utils/holders-maker/addresses.js +0 -15
  418. package/dist/utils/holders-maker/buy-tx.d.ts +0 -44
  419. package/dist/utils/holders-maker/buy-tx.js +0 -278
  420. package/dist/utils/holders-maker/constants.d.ts +0 -6
  421. package/dist/utils/holders-maker/constants.js +0 -7
  422. package/dist/utils/holders-maker/disperse.d.ts +0 -18
  423. package/dist/utils/holders-maker/disperse.js +0 -90
  424. package/dist/utils/holders-maker/routing.d.ts +0 -4
  425. package/dist/utils/holders-maker/routing.js +0 -45
  426. package/dist/utils/holders-maker/transfer-tx.d.ts +0 -4
  427. package/dist/utils/holders-maker/transfer-tx.js +0 -67
  428. package/dist/utils/holders-maker-helpers.d.ts +0 -9
  429. package/dist/utils/holders-maker-helpers.js +0 -9
  430. package/dist/utils/hop-chains.d.ts +0 -35
  431. package/dist/utils/hop-chains.js +0 -215
  432. package/dist/utils/lp-inspect-helpers.d.ts +0 -9
  433. package/dist/utils/lp-inspect-helpers.js +0 -109
  434. package/dist/utils/types/airdrop-sweep.d.ts +0 -1
  435. package/dist/utils/types/airdrop-sweep.js +0 -1
  436. package/dist/utils/types/contract-factory.d.ts +0 -1
  437. package/dist/utils/types/contract-factory.js +0 -1
  438. package/dist/utils/types/erc20.d.ts +0 -1
  439. package/dist/utils/types/erc20.js +0 -1
  440. package/dist/utils/types/errors.d.ts +0 -1
  441. package/dist/utils/types/errors.js +0 -1
  442. package/dist/utils/types/holders-maker.d.ts +0 -1
  443. package/dist/utils/types/holders-maker.js +0 -1
  444. package/dist/utils/types/hop-chains.d.ts +0 -8
  445. package/dist/utils/types/hop-chains.js +0 -1
  446. package/dist/utils/types/index.d.ts +0 -13
  447. package/dist/utils/types/index.js +0 -1
  448. package/dist/utils/types/lp-inspect.d.ts +0 -1
  449. package/dist/utils/types/lp-inspect.js +0 -1
  450. package/dist/utils/types/mpc-exclusive.d.ts +0 -5
  451. package/dist/utils/types/mpc-exclusive.js +0 -1
  452. package/dist/utils/types/private-sale.d.ts +0 -1
  453. package/dist/utils/types/private-sale.js +0 -1
  454. package/dist/utils/types/quote-helpers.d.ts +0 -1
  455. package/dist/utils/types/quote-helpers.js +0 -1
  456. package/dist/utils/types/stealth-transfer.d.ts +0 -44
  457. package/dist/utils/types/stealth-transfer.js +0 -1
  458. package/dist/utils/types/wallet.d.ts +0 -25
  459. package/dist/utils/types/wallet.js +0 -1
  460. package/dist/vanity/index.d.ts +0 -5
  461. package/dist/vanity/index.js +0 -5
  462. package/src/abis/contracts/TaxToken.json +0 -969
  463. package/src/abis/contracts/TokenManager.json +0 -836
  464. package/src/abis/contracts/TokenManager2.json +0 -136
  465. package/src/abis/contracts/TokenManagerHelper3.json +0 -993
  466. /package/dist/{abis/contracts → shared/abis}/TokenManager.json +0 -0
  467. /package/dist/{abis/contracts → shared/abis}/TokenManagerHelper3.json +0 -0
@@ -7,12 +7,11 @@
7
7
  * - V3 Quoter (BSC): 0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997
8
8
  */
9
9
  import { ethers, Wallet, JsonRpcProvider, Contract, Interface } from 'ethers';
10
- import { NonceManager, getOptimizedGasPrice, getDeadline, encodeV3Path, buildProfitHopTransactions, PROFIT_HOP_COUNT, } from '../../../utils/bundle-helpers.js';
11
- import { ADDRESSES, ZERO_ADDRESS } from '../../../shared/constants/index.js';
10
+ import { NonceManager, getOptimizedGasPrice, getDeadline, encodeV3Path, buildProfitHopTransactions, PROFIT_HOP_COUNT } from '../../../utils/bundle-helpers.js';
11
+ import { ADDRESSES, ZERO_ADDRESS } from '../../../utils/constants.js';
12
12
  import { GAS_LIMITS } from '../../constants/index.js';
13
13
  import { MULTICALL3_ABI, V2_ROUTER_ABI, V3_ROUTER02_ABI, V3_QUOTER_ABI, ERC20_ABI } from '../../abis/common.js';
14
- import { getErrorMessageFromUnknown } from '../../foundation/index.js';
15
- import { CHAIN_ID_MAP, getTxType, getGasPriceConfig, shouldExtractProfit, calculateProfit, calculateBatchProfit, getProfitRecipient, getBribeAmount, BLOCKRAZOR_BUILDER_EOA, } from './config.js';
14
+ import { CHAIN_ID_MAP, getTxType, getGasPriceConfig, shouldExtractProfit, calculateProfit, calculateBatchProfit, getProfitRecipient, getBribeAmount, BLOCKRAZOR_BUILDER_EOA } from './config.js';
16
15
  // ==================== 常量 ====================
17
16
  const MULTICALL3_ADDRESS = ADDRESSES.BSC.Multicall3;
18
17
  const WBNB_ADDRESS = ADDRESSES.BSC.WBNB;
@@ -80,9 +79,7 @@ function needSendBNB(routeType, params, useNativeToken = true) {
80
79
  if (routeType === 'v3-single' && params.v3TokenIn && params.v3TokenIn.toLowerCase() === WBNB_ADDRESS.toLowerCase()) {
81
80
  return true;
82
81
  }
83
- if (routeType === 'v3-multi' &&
84
- params.v3ExactTokenIn &&
85
- params.v3ExactTokenIn.toLowerCase() === WBNB_ADDRESS.toLowerCase()) {
82
+ if (routeType === 'v3-multi' && params.v3ExactTokenIn && params.v3ExactTokenIn.toLowerCase() === WBNB_ADDRESS.toLowerCase()) {
86
83
  return true;
87
84
  }
88
85
  return false;
@@ -122,22 +119,23 @@ async function buildV3SingleTransactions(routers, wallets, tokenIn, tokenOut, fe
122
119
  const v3RouterIface = new Interface(V3_ROUTER_ABI);
123
120
  return Promise.all(routers.map(async (router, i) => {
124
121
  const isTokenOutWBNB = tokenOut.toLowerCase() === WBNB_ADDRESS.toLowerCase();
125
- const exactInputSingleData = v3RouterIface.encodeFunctionData('exactInputSingle', [
126
- {
122
+ const exactInputSingleData = v3RouterIface.encodeFunctionData('exactInputSingle', [{
127
123
  tokenIn: tokenIn,
128
124
  tokenOut: tokenOut,
129
125
  fee: fee,
130
126
  recipient: isTokenOutWBNB ? PANCAKE_V3_ROUTER_ADDRESS : wallets[i].address,
131
127
  amountIn: amountsWei[i],
132
128
  amountOutMinimum: minOuts[i],
133
- sqrtPriceLimitX96: 0n,
134
- },
135
- ]);
129
+ sqrtPriceLimitX96: 0n
130
+ }]);
136
131
  if (isBuy && needBNB) {
137
132
  return router.multicall.populateTransaction(deadline, [exactInputSingleData], { value: amountsWei[i] });
138
133
  }
139
134
  else if (!isBuy && isTokenOutWBNB) {
140
- const unwrapData = v3RouterIface.encodeFunctionData('unwrapWETH9', [minOuts[i], wallets[i].address]);
135
+ const unwrapData = v3RouterIface.encodeFunctionData('unwrapWETH9', [
136
+ minOuts[i],
137
+ wallets[i].address
138
+ ]);
141
139
  return router.multicall.populateTransaction(deadline, [exactInputSingleData, unwrapData]);
142
140
  }
143
141
  else {
@@ -165,25 +163,21 @@ async function buildV3MultiHopTransactions(routers, wallets, tokens, fees, amoun
165
163
  const isTokenOutWBNB = tokenOut.toLowerCase() === WBNB_ADDRESS.toLowerCase();
166
164
  return Promise.all(routers.map(async (router, i) => {
167
165
  if (isBuy && needBNB) {
168
- const swapData = v3RouterIface.encodeFunctionData('exactInput', [
169
- {
166
+ const swapData = v3RouterIface.encodeFunctionData('exactInput', [{
170
167
  path: forwardPath,
171
168
  recipient: wallets[i].address,
172
169
  amountIn: amountsWei[i],
173
- amountOutMinimum: minOuts[i],
174
- },
175
- ]);
170
+ amountOutMinimum: minOuts[i]
171
+ }]);
176
172
  return router.multicall.populateTransaction(deadline, [swapData], { value: amountsWei[i] });
177
173
  }
178
174
  else if (!isBuy) {
179
- const swapData = v3RouterIface.encodeFunctionData('exactInput', [
180
- {
175
+ const swapData = v3RouterIface.encodeFunctionData('exactInput', [{
181
176
  path: reversePath,
182
177
  recipient: isTokenOutWBNB ? PANCAKE_V3_ROUTER_ADDRESS : wallets[i].address,
183
178
  amountIn: amountsWei[i],
184
- amountOutMinimum: minOuts[i],
185
- },
186
- ]);
179
+ amountOutMinimum: minOuts[i]
180
+ }]);
187
181
  if (isTokenOutWBNB) {
188
182
  const unwrapData = v3RouterIface.encodeFunctionData('unwrapWETH9', [minOuts[i], wallets[i].address]);
189
183
  return router.multicall.populateTransaction(deadline, [swapData, unwrapData]);
@@ -191,14 +185,12 @@ async function buildV3MultiHopTransactions(routers, wallets, tokens, fees, amoun
191
185
  return router.multicall.populateTransaction(deadline, [swapData]);
192
186
  }
193
187
  else {
194
- const swapData = v3RouterIface.encodeFunctionData('exactInput', [
195
- {
188
+ const swapData = v3RouterIface.encodeFunctionData('exactInput', [{
196
189
  path: forwardPath,
197
190
  recipient: wallets[i].address,
198
191
  amountIn: amountsWei[i],
199
- amountOutMinimum: minOuts[i],
200
- },
201
- ]);
192
+ amountOutMinimum: minOuts[i]
193
+ }]);
202
194
  return router.multicall.populateTransaction(deadline, [swapData]);
203
195
  }
204
196
  }));
@@ -223,7 +215,7 @@ export async function approvePancakeProxy(params) {
223
215
  const receipt = await tx.wait();
224
216
  return {
225
217
  txHash: receipt.hash,
226
- approved: receipt.status === 1,
218
+ approved: receipt.status === 1
227
219
  };
228
220
  }
229
221
  /**
@@ -239,9 +231,9 @@ export async function approvePancakeProxyBatch(params) {
239
231
  const provider = getCachedProvider(chain, config.rpcUrl, chainId);
240
232
  const gasPrice = await getOptimizedGasPrice(provider, getGasPriceConfig(config));
241
233
  const decimals = await getTokenDecimals(tokenAddress, provider);
242
- const wallets = privateKeys.map((k) => new Wallet(k, provider));
243
- const amountsBigInt = amounts.map((a) => (a === 'max' ? ethers.MaxUint256 : ethers.parseUnits(a, decimals)));
244
- const tokens = wallets.map((w) => new Contract(tokenAddress, ERC20_ABI, w));
234
+ const wallets = privateKeys.map(k => new Wallet(k, provider));
235
+ const amountsBigInt = amounts.map(a => a === 'max' ? ethers.MaxUint256 : ethers.parseUnits(a, decimals));
236
+ const tokens = wallets.map(w => new Contract(tokenAddress, ERC20_ABI, w));
245
237
  const allowances = await Promise.all(tokens.map((token, i) => token.allowance(wallets[i].address, approvalTarget)));
246
238
  const needApproval = wallets.filter((_, i) => allowances[i] < amountsBigInt[i]);
247
239
  const needApprovalAmounts = amountsBigInt.filter((amount, i) => allowances[i] < amount);
@@ -250,14 +242,14 @@ export async function approvePancakeProxyBatch(params) {
250
242
  success: true,
251
243
  approvedCount: 0,
252
244
  signedTransactions: [],
253
- message: '所有钱包已授权',
245
+ message: '所有钱包已授权'
254
246
  };
255
247
  }
256
- const needApprovalTokens = needApproval.map((w) => new Contract(tokenAddress, ERC20_ABI, w));
248
+ const needApprovalTokens = needApproval.map(w => new Contract(tokenAddress, ERC20_ABI, w));
257
249
  const unsignedApprovals = await Promise.all(needApprovalTokens.map((token, i) => token.approve.populateTransaction(approvalTarget, needApprovalAmounts[i])));
258
250
  const finalGasLimit = getGasLimit(config);
259
251
  const nonceManager = new NonceManager(provider);
260
- const nonces = await Promise.all(needApproval.map((w) => nonceManager.getNextNonce(w)));
252
+ const nonces = await Promise.all(needApproval.map(w => nonceManager.getNextNonce(w)));
261
253
  const signedTxs = await Promise.all(unsignedApprovals.map((unsigned, i) => needApproval[i].signTransaction({
262
254
  ...unsigned,
263
255
  from: needApproval[i].address,
@@ -265,7 +257,7 @@ export async function approvePancakeProxyBatch(params) {
265
257
  gasLimit: finalGasLimit,
266
258
  gasPrice,
267
259
  chainId,
268
- type: getTxType(config),
260
+ type: getTxType(config)
269
261
  })));
270
262
  nonceManager.clearTemp();
271
263
  const txHashes = [];
@@ -276,7 +268,7 @@ export async function approvePancakeProxyBatch(params) {
276
268
  txHashes.push(tx.hash);
277
269
  }
278
270
  catch (error) {
279
- errors.push(`钱包 ${i} 授权失败: ${getErrorMessageFromUnknown(error)}`);
271
+ errors.push(`钱包 ${i} 授权失败: ${error.message}`);
280
272
  }
281
273
  }
282
274
  const successCount = txHashes.length;
@@ -286,7 +278,7 @@ export async function approvePancakeProxyBatch(params) {
286
278
  approvedCount: successCount,
287
279
  signedTransactions: signedTxs,
288
280
  txHashes,
289
- message: `授权成功,共 ${successCount} 个钱包${errors.length > 0 ? `,${errors.length} 个失败` : ''}`,
281
+ message: `授权成功,共 ${successCount} 个钱包${errors.length > 0 ? `,${errors.length} 个失败` : ''}`
290
282
  };
291
283
  }
292
284
  else {
@@ -295,7 +287,7 @@ export async function approvePancakeProxyBatch(params) {
295
287
  approvedCount: 0,
296
288
  signedTransactions: signedTxs,
297
289
  txHashes: [],
298
- message: `授权失败: ${errors.join('; ')}`,
290
+ message: `授权失败: ${errors.join('; ')}`
299
291
  };
300
292
  }
301
293
  }
@@ -309,13 +301,13 @@ export async function pancakeProxyBatchBuyMerkle(params) {
309
301
  }
310
302
  const chainId = CHAIN_ID_MAP[chain];
311
303
  const provider = getCachedProvider(chain, config.rpcUrl, chainId);
312
- const buyers = privateKeys.map((k) => new Wallet(k, provider));
313
- const extractProfit = shouldExtractProfit();
304
+ const buyers = privateKeys.map(k => new Wallet(k, provider));
305
+ const extractProfit = shouldExtractProfit(config);
314
306
  const nonceManager = new NonceManager(provider);
315
307
  const finalGasLimit = getGasLimit(config);
316
308
  const useNativeToken = isUsingNativeToken(quoteToken);
317
- const originalAmountsWei = buyAmounts.map((amount) => ethers.parseEther(amount));
318
- const { totalProfit, remainingAmounts } = calculateBatchProfit(originalAmountsWei);
309
+ const originalAmountsWei = buyAmounts.map(amount => ethers.parseEther(amount));
310
+ const { totalProfit, remainingAmounts } = calculateBatchProfit(originalAmountsWei, config);
319
311
  const maxFundsIndex = findMaxAmountIndex(originalAmountsWei);
320
312
  const shouldExtractProfitForBuy = extractProfit && useNativeToken;
321
313
  const nativeProfitAmount = shouldExtractProfitForBuy ? totalProfit : 0n;
@@ -323,17 +315,18 @@ export async function pancakeProxyBatchBuyMerkle(params) {
323
315
  if (!useNativeToken && quoteTokenDecimals !== undefined && quoteTokenDecimals !== 18) {
324
316
  const decimalsDiff = 18 - quoteTokenDecimals;
325
317
  const divisor = BigInt(10 ** decimalsDiff);
326
- actualAmountsWei = remainingAmounts.map((amount) => amount / divisor);
318
+ actualAmountsWei = remainingAmounts.map(amount => amount / divisor);
327
319
  }
328
320
  const presetGasPrice = config.gasPrice;
329
321
  const presetNonces = config.nonces;
330
- const [gasPrice, nonces] = await Promise.all([
322
+ const [gasPrice, tokenDecimals, nonces] = await Promise.all([
331
323
  presetGasPrice !== undefined
332
324
  ? Promise.resolve(presetGasPrice)
333
325
  : getOptimizedGasPrice(provider, getGasPriceConfig(config)),
326
+ getTokenDecimals(tokenAddress, provider),
334
327
  presetNonces && presetNonces.length === buyers.length
335
328
  ? Promise.resolve(presetNonces)
336
- : allocateProfitAwareNonces(buyers, shouldExtractProfitForBuy, maxFundsIndex, nativeProfitAmount, nonceManager),
329
+ : allocateProfitAwareNonces(buyers, shouldExtractProfitForBuy, maxFundsIndex, nativeProfitAmount, nonceManager)
337
330
  ]);
338
331
  const minOuts = new Array(buyers.length).fill(0n);
339
332
  const needBNB = needSendBNB(routeType, params, useNativeToken);
@@ -344,14 +337,14 @@ export async function pancakeProxyBatchBuyMerkle(params) {
344
337
  if (!params.v2Path || params.v2Path.length < 2) {
345
338
  throw new Error('v2Path is required for V2 routing');
346
339
  }
347
- routers = buyers.map((w) => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
340
+ routers = buyers.map(w => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
348
341
  unsignedBuys = await buildV2Transactions(routers, buyers, actualAmountsWei, minOuts, params.v2Path, true, needBNB);
349
342
  }
350
343
  else if (routeType === 'v3-single') {
351
344
  if (!params.v3TokenIn || !params.v3Fee) {
352
345
  throw new Error('v3TokenIn and v3Fee are required for V3 single-hop');
353
346
  }
354
- routers = buyers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
347
+ routers = buyers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
355
348
  unsignedBuys = await buildV3SingleTransactions(routers, buyers, params.v3TokenIn, tokenAddress, params.v3Fee, actualAmountsWei, minOuts, true, needBNB);
356
349
  }
357
350
  else if (routeType === 'v3-multi') {
@@ -362,7 +355,7 @@ export async function pancakeProxyBatchBuyMerkle(params) {
362
355
  if (!params.v3Fees || params.v3Fees.length !== params.v3Tokens.length - 1) {
363
356
  throw new Error(`v3Fees 长度必须等于 v3Tokens 长度 - 1`);
364
357
  }
365
- routers = buyers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
358
+ routers = buyers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
366
359
  unsignedBuys = await buildV3MultiHopTransactions(routers, buyers, params.v3Tokens, params.v3Fees, actualAmountsWei, minOuts, true, needBNB);
367
360
  }
368
361
  else {
@@ -386,11 +379,11 @@ export async function pancakeProxyBatchBuyMerkle(params) {
386
379
  gasPrice,
387
380
  gasLimit: GAS_LIMITS.BRIBE,
388
381
  chainId,
389
- type: txType,
382
+ type: txType
390
383
  }));
391
384
  }
392
385
  unsignedBuys.forEach((unsigned, i) => {
393
- const txValue = useNativeToken ? (unsigned.value ?? 0n) : 0n;
386
+ const txValue = useNativeToken ? unsigned.value : 0n;
394
387
  signPromises.push(buyers[i].signTransaction({
395
388
  ...unsigned,
396
389
  from: buyers[i].address,
@@ -399,7 +392,7 @@ export async function pancakeProxyBatchBuyMerkle(params) {
399
392
  gasPrice,
400
393
  chainId,
401
394
  type: txType,
402
- value: txValue,
395
+ value: txValue
403
396
  }));
404
397
  });
405
398
  const signedTxs = await Promise.all(signPromises);
@@ -416,7 +409,7 @@ export async function pancakeProxyBatchBuyMerkle(params) {
416
409
  gasPrice,
417
410
  chainId,
418
411
  txType,
419
- startNonce: profitNonce,
412
+ startNonce: profitNonce
420
413
  });
421
414
  signedTxs.push(...profitHopResult.signedTransactions);
422
415
  profitHopWallets = profitHopResult.hopWallets; // ✅ 收集利润多跳钱包
@@ -424,7 +417,7 @@ export async function pancakeProxyBatchBuyMerkle(params) {
424
417
  nonceManager.clearTemp();
425
418
  return {
426
419
  signedTransactions: signedTxs,
427
- profitHopWallets, // ✅ 返回利润多跳钱包
420
+ profitHopWallets // ✅ 返回利润多跳钱包
428
421
  };
429
422
  }
430
423
  /**
@@ -437,9 +430,9 @@ export async function pancakeProxyBatchSellMerkle(params) {
437
430
  }
438
431
  const chainId = CHAIN_ID_MAP[chain];
439
432
  const provider = getCachedProvider(chain, config.rpcUrl, chainId);
440
- const sellers = privateKeys.map((k) => new Wallet(k, provider));
433
+ const sellers = privateKeys.map(k => new Wallet(k, provider));
441
434
  const finalGasLimit = getGasLimit(config);
442
- const extractProfit = shouldExtractProfit();
435
+ const extractProfit = shouldExtractProfit(config);
443
436
  const nonceManager = new NonceManager(provider);
444
437
  const presetGasPrice = config.gasPrice;
445
438
  const presetNonces = config.nonces;
@@ -447,9 +440,9 @@ export async function pancakeProxyBatchSellMerkle(params) {
447
440
  presetGasPrice !== undefined
448
441
  ? Promise.resolve(presetGasPrice)
449
442
  : getOptimizedGasPrice(provider, getGasPriceConfig(config)),
450
- getTokenDecimals(tokenAddress, provider),
443
+ getTokenDecimals(tokenAddress, provider)
451
444
  ]);
452
- const amountsWei = sellAmounts.map((amount) => ethers.parseUnits(amount, tokenDecimals));
445
+ const amountsWei = sellAmounts.map(amount => ethers.parseUnits(amount, tokenDecimals));
453
446
  // 获取报价
454
447
  let quotedOutputs;
455
448
  if (routeType === 'v2' && params.v2Path && params.v2Path.length >= 2) {
@@ -464,7 +457,7 @@ export async function pancakeProxyBatchSellMerkle(params) {
464
457
  tokenOut: params.v3TokenOut,
465
458
  amountIn: amount,
466
459
  fee: params.v3Fee,
467
- sqrtPriceLimitX96: 0,
460
+ sqrtPriceLimitX96: 0
468
461
  });
469
462
  return result[0];
470
463
  }
@@ -485,7 +478,7 @@ export async function pancakeProxyBatchSellMerkle(params) {
485
478
  for (let i = 0; i < sellers.length; i++) {
486
479
  const quoted = quotedOutputs[i];
487
480
  if (quoted > 0n) {
488
- const { profit } = calculateProfit(quoted);
481
+ const { profit } = calculateProfit(quoted, config);
489
482
  totalProfit += profit;
490
483
  if (quoted > maxRevenue) {
491
484
  maxRevenue = quoted;
@@ -512,7 +505,9 @@ export async function pancakeProxyBatchSellMerkle(params) {
512
505
  else if (maxRevenueNonceCount > 1 && maxRevenueIndex >= 0) {
513
506
  const maxRevenueNonces = await nonceManager.getNextNonceBatch(sellers[maxRevenueIndex], maxRevenueNonceCount);
514
507
  const otherSellers = sellers.filter((_, i) => i !== maxRevenueIndex);
515
- const otherNonces = otherSellers.length > 0 ? await nonceManager.getNextNoncesForWallets(otherSellers) : [];
508
+ const otherNonces = otherSellers.length > 0
509
+ ? await nonceManager.getNextNoncesForWallets(otherSellers)
510
+ : [];
516
511
  nonces = [];
517
512
  let otherIdx = 0;
518
513
  let nonceIdx = 0;
@@ -541,14 +536,14 @@ export async function pancakeProxyBatchSellMerkle(params) {
541
536
  if (!params.v2Path || params.v2Path.length < 2) {
542
537
  throw new Error('v2Path is required for V2 routing');
543
538
  }
544
- routers = sellers.map((w) => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
539
+ routers = sellers.map(w => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
545
540
  unsignedSells = await buildV2Transactions(routers, sellers, amountsWei, minOuts, params.v2Path, false, false);
546
541
  }
547
542
  else if (routeType === 'v3-single') {
548
543
  if (!params.v3TokenOut || !params.v3Fee) {
549
544
  throw new Error('v3TokenOut and v3Fee are required for V3 single-hop');
550
545
  }
551
- routers = sellers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
546
+ routers = sellers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
552
547
  unsignedSells = await buildV3SingleTransactions(routers, sellers, tokenAddress, params.v3TokenOut, params.v3Fee, amountsWei, minOuts, false, false);
553
548
  }
554
549
  else if (routeType === 'v3-multi') {
@@ -559,7 +554,7 @@ export async function pancakeProxyBatchSellMerkle(params) {
559
554
  if (!params.v3Fees || params.v3Fees.length !== params.v3Tokens.length - 1) {
560
555
  throw new Error(`v3Fees 长度必须等于 v3Tokens 长度 - 1`);
561
556
  }
562
- routers = sellers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
557
+ routers = sellers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
563
558
  unsignedSells = await buildV3MultiHopTransactions(routers, sellers, params.v3Tokens, params.v3Fees, amountsWei, minOuts, false, false);
564
559
  }
565
560
  else {
@@ -575,7 +570,7 @@ export async function pancakeProxyBatchSellMerkle(params) {
575
570
  gasPrice,
576
571
  gasLimit: GAS_LIMITS.BRIBE,
577
572
  chainId,
578
- type: txType,
573
+ type: txType
579
574
  }));
580
575
  }
581
576
  unsignedSells.forEach((unsigned, i) => {
@@ -588,7 +583,7 @@ export async function pancakeProxyBatchSellMerkle(params) {
588
583
  gasPrice,
589
584
  chainId,
590
585
  type: txType,
591
- value: txValue,
586
+ value: txValue
592
587
  }));
593
588
  });
594
589
  const signedTxs = await Promise.all(signPromises);
@@ -604,7 +599,7 @@ export async function pancakeProxyBatchSellMerkle(params) {
604
599
  gasPrice,
605
600
  chainId,
606
601
  txType,
607
- startNonce: profitNonce,
602
+ startNonce: profitNonce
608
603
  });
609
604
  signedTxs.push(...profitHopResult.signedTransactions);
610
605
  profitHopWallets = profitHopResult.hopWallets; // ✅ 收集利润多跳钱包
@@ -612,7 +607,7 @@ export async function pancakeProxyBatchSellMerkle(params) {
612
607
  nonceManager.clearTemp();
613
608
  return {
614
609
  signedTransactions: signedTxs,
615
- profitHopWallets, // ✅ 返回利润多跳钱包
610
+ profitHopWallets // ✅ 返回利润多跳钱包
616
611
  };
617
612
  }
618
613
  // ==================== 内部工具函数 ====================
@@ -635,10 +630,10 @@ async function batchGetV2Quotes(provider, amountsWei, v2Path) {
635
630
  try {
636
631
  const v2RouterIface = new Interface(V2_ROUTER_ABI);
637
632
  const multicall = new Contract(MULTICALL3_ADDRESS, MULTICALL3_ABI, provider);
638
- const calls = amountsWei.map((amount) => ({
633
+ const calls = amountsWei.map(amount => ({
639
634
  target: PANCAKE_V2_ROUTER_ADDRESS,
640
635
  allowFailure: true,
641
- callData: v2RouterIface.encodeFunctionData('getAmountsOut', [amount, v2Path]),
636
+ callData: v2RouterIface.encodeFunctionData('getAmountsOut', [amount, v2Path])
642
637
  }));
643
638
  const results = await multicall.aggregate3.staticCall(calls);
644
639
  return results.map((r) => {
@@ -689,7 +684,9 @@ async function allocateProfitAwareNonces(wallets, extractProfit, maxIndex, total
689
684
  }
690
685
  const maxIndexNonces = await nonceManager.getNextNonceBatch(wallets[maxIndex], 2);
691
686
  const otherWallets = wallets.filter((_, i) => i !== maxIndex);
692
- const otherNonces = otherWallets.length > 0 ? await nonceManager.getNextNoncesForWallets(otherWallets) : [];
687
+ const otherNonces = otherWallets.length > 0
688
+ ? await nonceManager.getNextNoncesForWallets(otherWallets)
689
+ : [];
693
690
  const nonces = [];
694
691
  let otherIdx = 0;
695
692
  for (let i = 0; i < wallets.length; i++) {