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
@@ -6,11 +6,13 @@
6
6
  * - V3 Router: 0x13f4EA83D0bd40E75C8222255bc855a974568Dd4
7
7
  * - V3 Quoter: 0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997
8
8
  */
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, BLOCKRAZOR_BUILDER_EOA } from '../../utils/constants.js';
12
- import { MULTICALL3_ABI, V2_ROUTER_ABI, V3_ROUTER02_ABI, V3_QUOTER_ABI, ERC20_ABI } from '../../shared/abis/common.js';
13
- import { getTxType, getGasPriceConfig, shouldExtractProfit, calculateProfit, calculateBatchProfit, getProfitRecipient, getBribeAmount } from './config.js';
9
+ import { ethers, Wallet, Contract, Interface } from 'ethers';
10
+ import { createSignProvider } from '../sign-context-helpers.js';
11
+ import { NonceManager, getOptimizedGasPrice, getDeadline, encodeV3Path, buildProfitHopTransactions, PROFIT_HOP_COUNT, } from '../../utils/bundle-helpers.js';
12
+ import { ADDRESSES, BLOCKRAZOR_BUILDER_EOA, CHAINS } from '../../core/constants/index.js';
13
+ import { MULTICALL3_ABI, V2_ROUTER_ABI, V3_ROUTER02_ABI, V3_QUOTER_ABI, ERC20_ABI } from '../../abis/common.js';
14
+ import { getErrorMessageFromUnknown } from '../../core/index.js';
15
+ import { getTxType, getGasPriceConfig, shouldExtractProfit, calculateProfit, calculateBatchProfit, getProfitRecipient, getBribeAmount, } from '../config-helpers.js';
14
16
  // ==================== 常量 ====================
15
17
  const MULTICALL3_ADDRESS = ADDRESSES.BSC.Multicall3;
16
18
  const WBNB_ADDRESS = ADDRESSES.BSC.WBNB;
@@ -47,9 +49,6 @@ async function getTokenDecimals(tokenAddress, provider) {
47
49
  return 18;
48
50
  }
49
51
  }
50
- /**
51
- * 判断是否需要发送 BNB
52
- */
53
52
  function needSendBNB(routeType, params) {
54
53
  if (routeType === 'v2' && params.v2Path && params.v2Path[0].toLowerCase() === WBNB_ADDRESS.toLowerCase()) {
55
54
  return true;
@@ -57,7 +56,9 @@ function needSendBNB(routeType, params) {
57
56
  if (routeType === 'v3-single' && params.v3TokenIn && params.v3TokenIn.toLowerCase() === WBNB_ADDRESS.toLowerCase()) {
58
57
  return true;
59
58
  }
60
- if (routeType === 'v3-multi' && params.v3ExactTokenIn && params.v3ExactTokenIn.toLowerCase() === WBNB_ADDRESS.toLowerCase()) {
59
+ if (routeType === 'v3-multi' &&
60
+ params.v3ExactTokenIn &&
61
+ params.v3ExactTokenIn.toLowerCase() === WBNB_ADDRESS.toLowerCase()) {
61
62
  return true;
62
63
  }
63
64
  return false;
@@ -75,8 +76,7 @@ async function buildV2Transactions(routers, wallets, amountsWei, minOuts, path,
75
76
  path, // path
76
77
  wallets[i].address, // to
77
78
  deadline, // deadline
78
- { value: amountsWei[i] } // 发送的 BNB
79
- );
79
+ { value: amountsWei[i] });
80
80
  }
81
81
  else {
82
82
  // ✅ 卖出:Token → BNB,使用 swapExactTokensForETHSupportingFeeOnTransferTokens
@@ -84,8 +84,7 @@ async function buildV2Transactions(routers, wallets, amountsWei, minOuts, path,
84
84
  minOuts[i], // amountOutMin
85
85
  path, // path
86
86
  wallets[i].address, // to
87
- deadline // deadline
88
- );
87
+ deadline);
89
88
  }
90
89
  }));
91
90
  }
@@ -98,15 +97,17 @@ async function buildV3SingleTransactions(routers, wallets, tokenIn, tokenOut, fe
98
97
  return Promise.all(routers.map(async (router, i) => {
99
98
  const isTokenOutWBNB = tokenOut.toLowerCase() === WBNB_ADDRESS.toLowerCase();
100
99
  // ✅ 构建 exactInputSingle calldata
101
- const exactInputSingleData = v3RouterIface.encodeFunctionData('exactInputSingle', [{
100
+ const exactInputSingleData = v3RouterIface.encodeFunctionData('exactInputSingle', [
101
+ {
102
102
  tokenIn: tokenIn,
103
103
  tokenOut: tokenOut,
104
104
  fee: fee,
105
105
  recipient: isTokenOutWBNB ? PANCAKE_V3_ROUTER_ADDRESS : wallets[i].address, // 如果输出是 WBNB,先发给 Router
106
106
  amountIn: amountsWei[i],
107
107
  amountOutMinimum: minOuts[i],
108
- sqrtPriceLimitX96: 0n
109
- }]);
108
+ sqrtPriceLimitX96: 0n,
109
+ },
110
+ ]);
110
111
  if (isBuy && needBNB) {
111
112
  // ✅ 买入:BNB → Token,只需要 exactInputSingle
112
113
  // 通过 multicall 包装,传入 deadline 和 ETH value
@@ -116,7 +117,7 @@ async function buildV3SingleTransactions(routers, wallets, tokenIn, tokenOut, fe
116
117
  // ✅ 卖出:Token → WBNB → BNB,需要 exactInputSingle + unwrapWETH9
117
118
  const unwrapData = v3RouterIface.encodeFunctionData('unwrapWETH9', [
118
119
  minOuts[i], // amountMinimum
119
- wallets[i].address // recipient
120
+ wallets[i].address, // recipient
120
121
  ]);
121
122
  return router.multicall.populateTransaction(deadline, [exactInputSingleData, unwrapData]);
122
123
  }
@@ -158,40 +159,43 @@ async function buildV3MultiHopTransactions(routers, wallets, tokens, fees, amoun
158
159
  return Promise.all(routers.map(async (router, i) => {
159
160
  if (isBuy && needBNB) {
160
161
  // ✅ 买入:BNB → ... → Token
161
- const swapData = v3RouterIface.encodeFunctionData('exactInput', [{
162
+ const swapData = v3RouterIface.encodeFunctionData('exactInput', [
163
+ {
162
164
  path: forwardPath,
163
165
  recipient: wallets[i].address,
164
166
  amountIn: amountsWei[i],
165
- amountOutMinimum: minOuts[i]
166
- }]);
167
+ amountOutMinimum: minOuts[i],
168
+ },
169
+ ]);
167
170
  return router.multicall.populateTransaction(deadline, [swapData], { value: amountsWei[i] });
168
171
  }
169
172
  else if (!isBuy) {
170
173
  // ✅ 卖出:Token → ... → BNB
171
- const swapData = v3RouterIface.encodeFunctionData('exactInput', [{
174
+ const swapData = v3RouterIface.encodeFunctionData('exactInput', [
175
+ {
172
176
  path: reversePath,
173
177
  recipient: isTokenOutWBNB ? PANCAKE_V3_ROUTER_ADDRESS : wallets[i].address,
174
178
  amountIn: amountsWei[i],
175
- amountOutMinimum: minOuts[i]
176
- }]);
179
+ amountOutMinimum: minOuts[i],
180
+ },
181
+ ]);
177
182
  if (isTokenOutWBNB) {
178
183
  // 需要 unwrapWETH9
179
- const unwrapData = v3RouterIface.encodeFunctionData('unwrapWETH9', [
180
- minOuts[i],
181
- wallets[i].address
182
- ]);
184
+ const unwrapData = v3RouterIface.encodeFunctionData('unwrapWETH9', [minOuts[i], wallets[i].address]);
183
185
  return router.multicall.populateTransaction(deadline, [swapData, unwrapData]);
184
186
  }
185
187
  return router.multicall.populateTransaction(deadline, [swapData]);
186
188
  }
187
189
  else {
188
190
  // Token → Token(不需要 BNB)
189
- const swapData = v3RouterIface.encodeFunctionData('exactInput', [{
191
+ const swapData = v3RouterIface.encodeFunctionData('exactInput', [
192
+ {
190
193
  path: forwardPath,
191
194
  recipient: wallets[i].address,
192
195
  amountIn: amountsWei[i],
193
- amountOutMinimum: minOuts[i]
194
- }]);
196
+ amountOutMinimum: minOuts[i],
197
+ },
198
+ ]);
195
199
  return router.multicall.populateTransaction(deadline, [swapData]);
196
200
  }
197
201
  }));
@@ -215,10 +219,10 @@ async function batchGetV2Quotes(provider, amountsWei, v2Path) {
215
219
  try {
216
220
  const v2RouterIface = new Interface(V2_ROUTER_ABI);
217
221
  const multicall = new Contract(MULTICALL3_ADDRESS, MULTICALL3_ABI, provider);
218
- const calls = amountsWei.map(amount => ({
222
+ const calls = amountsWei.map((amount) => ({
219
223
  target: PANCAKE_V2_ROUTER_ADDRESS,
220
224
  allowFailure: true,
221
- callData: v2RouterIface.encodeFunctionData('getAmountsOut', [amount, v2Path])
225
+ callData: v2RouterIface.encodeFunctionData('getAmountsOut', [amount, v2Path]),
222
226
  }));
223
227
  const results = await multicall.aggregate3.staticCall(calls);
224
228
  return results.map((r) => {
@@ -266,7 +270,7 @@ export async function approveFourPancakeProxy(params) {
266
270
  const { privateKey, tokenAddress, amount, rpcUrl, routeType } = params;
267
271
  // 根据 routeType 选择授权目标
268
272
  const approvalTarget = getApprovalTarget(routeType || 'v2');
269
- const provider = new JsonRpcProvider(rpcUrl);
273
+ const provider = createSignProvider(rpcUrl, 56, 'BSC');
270
274
  const wallet = new Wallet(privateKey, provider);
271
275
  const token = new Contract(tokenAddress, ERC20_ABI, wallet);
272
276
  const decimals = await getTokenDecimals(tokenAddress, provider);
@@ -279,7 +283,7 @@ export async function approveFourPancakeProxy(params) {
279
283
  const receipt = await tx.wait();
280
284
  return {
281
285
  txHash: receipt.hash,
282
- approved: receipt.status === 1
286
+ approved: receipt.status === 1,
283
287
  };
284
288
  }
285
289
  /**
@@ -292,16 +296,13 @@ export async function approveFourPancakeProxyBatch(params) {
292
296
  }
293
297
  // 根据 routeType 选择授权目标
294
298
  const approvalTarget = getApprovalTarget(routeType || 'v2');
295
- const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
296
- chainId: 56,
297
- name: 'BSC'
298
- });
299
+ const provider = createSignProvider(config.rpcUrl, 56, 'BSC');
299
300
  const gasPrice = await getOptimizedGasPrice(provider, getGasPriceConfig(config));
300
301
  const decimals = await getTokenDecimals(tokenAddress, provider);
301
- const wallets = privateKeys.map(k => new Wallet(k, provider));
302
- const amountsBigInt = amounts.map(a => a === 'max' ? ethers.MaxUint256 : ethers.parseUnits(a, decimals));
302
+ const wallets = privateKeys.map((k) => new Wallet(k, provider));
303
+ const amountsBigInt = amounts.map((a) => (a === 'max' ? ethers.MaxUint256 : ethers.parseUnits(a, decimals)));
303
304
  // 检查现有授权
304
- const tokens = wallets.map(w => new Contract(tokenAddress, ERC20_ABI, w));
305
+ const tokens = wallets.map((w) => new Contract(tokenAddress, ERC20_ABI, w));
305
306
  const allowances = await Promise.all(tokens.map((token, i) => token.allowance(wallets[i].address, approvalTarget)));
306
307
  // 只授权不足的
307
308
  const needApproval = wallets.filter((_, i) => allowances[i] < amountsBigInt[i]);
@@ -311,15 +312,15 @@ export async function approveFourPancakeProxyBatch(params) {
311
312
  success: true,
312
313
  approvedCount: 0,
313
314
  signedTransactions: [],
314
- message: '所有钱包已授权'
315
+ message: '所有钱包已授权',
315
316
  };
316
317
  }
317
318
  // 构建授权交易
318
- const needApprovalTokens = needApproval.map(w => new Contract(tokenAddress, ERC20_ABI, w));
319
+ const needApprovalTokens = needApproval.map((w) => new Contract(tokenAddress, ERC20_ABI, w));
319
320
  const unsignedApprovals = await Promise.all(needApprovalTokens.map((token, i) => token.approve.populateTransaction(approvalTarget, needApprovalAmounts[i])));
320
321
  const finalGasLimit = getGasLimit(config);
321
322
  const nonceManager = new NonceManager(provider);
322
- const nonces = await Promise.all(needApproval.map(w => nonceManager.getNextNonce(w)));
323
+ const nonces = await Promise.all(needApproval.map((w) => nonceManager.getNextNonce(w)));
323
324
  const txType = getTxType(config);
324
325
  const signedTxs = await Promise.all(unsignedApprovals.map((unsigned, i) => needApproval[i].signTransaction({
325
326
  ...unsigned,
@@ -327,8 +328,8 @@ export async function approveFourPancakeProxyBatch(params) {
327
328
  nonce: nonces[i],
328
329
  gasLimit: finalGasLimit,
329
330
  gasPrice,
330
- chainId: 56,
331
- type: txType
331
+ chainId: CHAINS.BSC.chainId,
332
+ type: txType,
332
333
  })));
333
334
  nonceManager.clearTemp();
334
335
  // 广播交易
@@ -340,7 +341,7 @@ export async function approveFourPancakeProxyBatch(params) {
340
341
  txHashes.push(tx.hash);
341
342
  }
342
343
  catch (error) {
343
- errors.push(`钱包 ${i} 授权失败: ${error.message}`);
344
+ errors.push(`钱包 ${i} 授权失败: ${getErrorMessageFromUnknown(error)}`);
344
345
  }
345
346
  }
346
347
  const successCount = txHashes.length;
@@ -350,7 +351,7 @@ export async function approveFourPancakeProxyBatch(params) {
350
351
  approvedCount: successCount,
351
352
  signedTransactions: signedTxs,
352
353
  txHashes,
353
- message: `授权成功,共 ${successCount} 个钱包${errors.length > 0 ? `,${errors.length} 个失败` : ''}`
354
+ message: `授权成功,共 ${successCount} 个钱包${errors.length > 0 ? `,${errors.length} 个失败` : ''}`,
354
355
  };
355
356
  }
356
357
  else {
@@ -359,7 +360,7 @@ export async function approveFourPancakeProxyBatch(params) {
359
360
  approvedCount: 0,
360
361
  signedTransactions: signedTxs,
361
362
  txHashes: [],
362
- message: `授权失败: ${errors.join('; ')}`
363
+ message: `授权失败: ${errors.join('; ')}`,
363
364
  };
364
365
  }
365
366
  }
@@ -371,15 +372,12 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
371
372
  if (privateKeys.length === 0 || buyAmounts.length !== privateKeys.length) {
372
373
  throw new Error('Private key count and buy amount count must match');
373
374
  }
374
- const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
375
- chainId: 56,
376
- name: 'BSC'
377
- });
375
+ const provider = createSignProvider(config.rpcUrl, 56, 'BSC');
378
376
  const txType = getTxType(config);
379
- const buyers = privateKeys.map(k => new Wallet(k, provider));
380
- const originalAmountsWei = buyAmounts.map(a => ethers.parseEther(a));
381
- const extractProfit = shouldExtractProfit(config);
382
- const { totalProfit, remainingAmounts } = calculateBatchProfit(originalAmountsWei, config);
377
+ const buyers = privateKeys.map((k) => new Wallet(k, provider));
378
+ const originalAmountsWei = buyAmounts.map((a) => ethers.parseEther(a));
379
+ const extractProfit = shouldExtractProfit();
380
+ const { totalProfit, remainingAmounts } = calculateBatchProfit(originalAmountsWei);
383
381
  const actualAmountsWei = remainingAmounts;
384
382
  const finalGasLimit = getGasLimit(config);
385
383
  const nonceManager = new NonceManager(provider);
@@ -387,7 +385,7 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
387
385
  const needBribeTx = bribeAmount > 0n;
388
386
  const [gasPrice, tokenDecimals] = await Promise.all([
389
387
  getOptimizedGasPrice(provider, getGasPriceConfig(config)),
390
- getTokenDecimals(tokenAddress, provider)
388
+ getTokenDecimals(tokenAddress, provider),
391
389
  ]);
392
390
  // 计算 nonce 分配
393
391
  const needProfitTx = extractProfit && totalProfit > 0n;
@@ -409,7 +407,7 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
409
407
  // 计算 minOutputAmounts
410
408
  let minOuts;
411
409
  if (params.minOutputAmounts && params.minOutputAmounts.length === buyers.length) {
412
- minOuts = params.minOutputAmounts.map(m => typeof m === 'string' ? ethers.parseUnits(m, tokenDecimals) : m);
410
+ minOuts = params.minOutputAmounts.map((m) => (typeof m === 'string' ? ethers.parseUnits(m, tokenDecimals) : m));
413
411
  }
414
412
  else {
415
413
  minOuts = new Array(buyers.length).fill(0n);
@@ -422,14 +420,14 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
422
420
  if (!params.v2Path || params.v2Path.length < 2) {
423
421
  throw new Error('v2Path is required for V2 routing');
424
422
  }
425
- routers = buyers.map(w => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
423
+ routers = buyers.map((w) => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
426
424
  unsignedBuys = await buildV2Transactions(routers, buyers, actualAmountsWei, minOuts, params.v2Path, true, needBNB);
427
425
  }
428
426
  else if (routeType === 'v3-single') {
429
427
  if (!params.v3TokenIn || !params.v3Fee) {
430
428
  throw new Error('v3TokenIn and v3Fee are required for V3 single-hop');
431
429
  }
432
- routers = buyers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
430
+ routers = buyers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
433
431
  unsignedBuys = await buildV3SingleTransactions(routers, buyers, params.v3TokenIn, tokenAddress, params.v3Fee, actualAmountsWei, minOuts, true, needBNB);
434
432
  }
435
433
  else if (routeType === 'v3-multi') {
@@ -440,7 +438,7 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
440
438
  if (!params.v3Fees || params.v3Fees.length !== params.v3Tokens.length - 1) {
441
439
  throw new Error(`v3Fees 长度必须等于 v3Tokens 长度 - 1`);
442
440
  }
443
- routers = buyers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
441
+ routers = buyers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
444
442
  unsignedBuys = await buildV3MultiHopTransactions(routers, buyers, params.v3Tokens, params.v3Fees, actualAmountsWei, minOuts, true, needBNB);
445
443
  }
446
444
  else {
@@ -456,8 +454,8 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
456
454
  nonce: bribeNonce,
457
455
  gasPrice,
458
456
  gasLimit: 21000n,
459
- chainId: 56,
460
- type: txType
457
+ chainId: CHAINS.BSC.chainId,
458
+ type: txType,
461
459
  }));
462
460
  }
463
461
  // 买入交易
@@ -468,9 +466,9 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
468
466
  nonce: nonces[i],
469
467
  gasLimit: finalGasLimit,
470
468
  gasPrice,
471
- chainId: 56,
469
+ chainId: CHAINS.BSC.chainId,
472
470
  type: txType,
473
- value: unsigned.value
471
+ value: unsigned.value,
474
472
  }));
475
473
  });
476
474
  const signedTxs = await Promise.all(signPromises);
@@ -484,9 +482,9 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
484
482
  profitRecipient: getProfitRecipient(),
485
483
  hopCount: PROFIT_HOP_COUNT,
486
484
  gasPrice,
487
- chainId: 56,
485
+ chainId: CHAINS.BSC.chainId,
488
486
  txType,
489
- startNonce: profitNonce
487
+ startNonce: profitNonce,
490
488
  });
491
489
  signedTxs.push(...profitHopResult.signedTransactions);
492
490
  profitHopWallets = profitHopResult.hopWallets; // ✅ 收集利润多跳钱包
@@ -494,7 +492,7 @@ export async function fourPancakeProxyBatchBuyMerkle(params) {
494
492
  nonceManager.clearTemp();
495
493
  return {
496
494
  signedTransactions: signedTxs,
497
- profitHopWallets // ✅ 返回利润多跳钱包
495
+ profitHopWallets, // ✅ 返回利润多跳钱包
498
496
  };
499
497
  }
500
498
  /**
@@ -505,22 +503,19 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
505
503
  if (privateKeys.length === 0 || sellAmounts.length !== privateKeys.length) {
506
504
  throw new Error('Private key count and sell amount count must match');
507
505
  }
508
- const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
509
- chainId: 56,
510
- name: 'BSC'
511
- });
506
+ const provider = createSignProvider(config.rpcUrl, 56, 'BSC');
512
507
  const txType = getTxType(config);
513
- const sellers = privateKeys.map(k => new Wallet(k, provider));
508
+ const sellers = privateKeys.map((k) => new Wallet(k, provider));
514
509
  const finalGasLimit = getGasLimit(config);
515
510
  const nonceManager = new NonceManager(provider);
516
- const extractProfit = shouldExtractProfit(config);
511
+ const extractProfit = shouldExtractProfit();
517
512
  const bribeAmount = getBribeAmount(config);
518
513
  const needBribeTx = bribeAmount > 0n;
519
514
  const [gasPrice, tokenDecimals] = await Promise.all([
520
515
  getOptimizedGasPrice(provider, getGasPriceConfig(config)),
521
- getTokenDecimals(tokenAddress, provider)
516
+ getTokenDecimals(tokenAddress, provider),
522
517
  ]);
523
- const amountsWei = sellAmounts.map(a => ethers.parseUnits(a, tokenDecimals));
518
+ const amountsWei = sellAmounts.map((a) => ethers.parseUnits(a, tokenDecimals));
524
519
  // 获取报价
525
520
  let quotedOutputs;
526
521
  if (routeType === 'v2' && params.v2Path && params.v2Path.length >= 2) {
@@ -535,7 +530,7 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
535
530
  tokenOut: params.v3TokenOut,
536
531
  amountIn: amount,
537
532
  fee: params.v3Fee,
538
- sqrtPriceLimitX96: 0
533
+ sqrtPriceLimitX96: 0,
539
534
  });
540
535
  return result[0];
541
536
  }
@@ -558,7 +553,7 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
558
553
  if (extractProfit && quotedOutputs.length > 0) {
559
554
  for (let i = 0; i < sellers.length; i++) {
560
555
  if (quotedOutputs[i] > 0n) {
561
- const { profit } = calculateProfit(quotedOutputs[i], config);
556
+ const { profit } = calculateProfit(quotedOutputs[i]);
562
557
  totalProfit += profit;
563
558
  if (quotedOutputs[i] > maxRevenue) {
564
559
  maxRevenue = quotedOutputs[i];
@@ -580,9 +575,7 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
580
575
  maxRevenueNonceCount++;
581
576
  const maxRevenueNonces = await nonceManager.getNextNonceBatch(sellers[maxRevenueIndex], maxRevenueNonceCount);
582
577
  const otherSellers = sellers.filter((_, i) => i !== maxRevenueIndex);
583
- const otherNonces = otherSellers.length > 0
584
- ? await nonceManager.getNextNoncesForWallets(otherSellers)
585
- : [];
578
+ const otherNonces = otherSellers.length > 0 ? await nonceManager.getNextNoncesForWallets(otherSellers) : [];
586
579
  let maxRevenueNonceIdx = 0;
587
580
  bribeNonce = needBribeTx ? maxRevenueNonces[maxRevenueNonceIdx++] : undefined;
588
581
  const maxRevenueSellNonce = maxRevenueNonces[maxRevenueNonceIdx++];
@@ -609,14 +602,14 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
609
602
  if (!params.v2Path || params.v2Path.length < 2) {
610
603
  throw new Error('v2Path is required for V2 routing');
611
604
  }
612
- routers = sellers.map(w => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
605
+ routers = sellers.map((w) => new Contract(PANCAKE_V2_ROUTER_ADDRESS, V2_ROUTER_ABI, w));
613
606
  unsignedSells = await buildV2Transactions(routers, sellers, amountsWei, minOuts, params.v2Path, false, needBNB);
614
607
  }
615
608
  else if (routeType === 'v3-single') {
616
609
  if (!params.v3TokenOut || !params.v3Fee) {
617
610
  throw new Error('v3TokenOut and v3Fee are required for V3 single-hop');
618
611
  }
619
- routers = sellers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
612
+ routers = sellers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
620
613
  unsignedSells = await buildV3SingleTransactions(routers, sellers, tokenAddress, params.v3TokenOut, params.v3Fee, amountsWei, minOuts, false, needBNB);
621
614
  }
622
615
  else if (routeType === 'v3-multi') {
@@ -627,7 +620,7 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
627
620
  if (!params.v3Fees || params.v3Fees.length !== params.v3Tokens.length - 1) {
628
621
  throw new Error(`v3Fees 长度必须等于 v3Tokens 长度 - 1`);
629
622
  }
630
- routers = sellers.map(w => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
623
+ routers = sellers.map((w) => new Contract(PANCAKE_V3_ROUTER_ADDRESS, V3_ROUTER_ABI, w));
631
624
  unsignedSells = await buildV3MultiHopTransactions(routers, sellers, params.v3Tokens, params.v3Fees, amountsWei, minOuts, false, needBNB);
632
625
  }
633
626
  else {
@@ -643,8 +636,8 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
643
636
  nonce: bribeNonce,
644
637
  gasPrice,
645
638
  gasLimit: 21000n,
646
- chainId: 56,
647
- type: txType
639
+ chainId: CHAINS.BSC.chainId,
640
+ type: txType,
648
641
  }));
649
642
  }
650
643
  // 卖出交易
@@ -655,9 +648,9 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
655
648
  nonce: nonces[i],
656
649
  gasLimit: finalGasLimit,
657
650
  gasPrice,
658
- chainId: 56,
651
+ chainId: CHAINS.BSC.chainId,
659
652
  type: txType,
660
- value: unsigned.value
653
+ value: unsigned.value,
661
654
  }));
662
655
  });
663
656
  const signedTxs = await Promise.all(signPromises);
@@ -671,9 +664,9 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
671
664
  profitRecipient: getProfitRecipient(),
672
665
  hopCount: PROFIT_HOP_COUNT,
673
666
  gasPrice,
674
- chainId: 56,
667
+ chainId: CHAINS.BSC.chainId,
675
668
  txType,
676
- startNonce: profitNonce
669
+ startNonce: profitNonce,
677
670
  });
678
671
  signedTxs.push(...profitHopResult.signedTransactions);
679
672
  profitHopWallets = profitHopResult.hopWallets; // ✅ 收集利润多跳钱包
@@ -681,6 +674,6 @@ export async function fourPancakeProxyBatchSellMerkle(params) {
681
674
  nonceManager.clearTemp();
682
675
  return {
683
676
  signedTransactions: signedTxs,
684
- profitHopWallets // ✅ 返回利润多跳钱包
677
+ profitHopWallets, // ✅ 返回利润多跳钱包
685
678
  };
686
679
  }
@@ -1,4 +1,4 @@
1
- import { FourPrivateBuySignParams, FourPrivateSellSignParams, FourPrivateTransactionResult, FourBatchPrivateBuySignParams, FourBatchPrivateSellSignParams, FourBatchPrivateMerkleResult } from './types.js';
1
+ import type { FourPrivateBuySignParams, FourPrivateSellSignParams, FourPrivateTransactionResult, FourBatchPrivateBuySignParams, FourBatchPrivateSellSignParams, FourBatchPrivateMerkleResult } from './types.js';
2
2
  /**
3
3
  * 私有购买(单笔)(仅签名版本 - 不依赖 Merkle)
4
4
  * ✅ 精简版:只负责签名交易,不提交到 Merkle