four-flap-meme-sdk 2.2.8 → 2.2.10

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 (474) 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.d.ts +2 -2
  36. package/dist/chains/bsc/platforms/iro/factory.js +1 -3
  37. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  38. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  39. package/dist/chains/bsc/platforms/iro/pool.js +10 -31
  40. package/dist/chains/bsc/platforms/iro/token.js +1 -4
  41. package/dist/chains/eni/batch-router/bundle-approve.js +3 -4
  42. package/dist/chains/eni/batch-router/transfer.js +25 -55
  43. package/dist/chains/eni/batch-router/utils.js +6 -32
  44. package/dist/chains/eni/bundler/sign.js +6 -5
  45. package/dist/chains/eni/bundler/submit.js +4 -1
  46. package/dist/chains/eni/constants.js +1 -1
  47. package/dist/chains/eni/index.d.ts +1 -2
  48. package/dist/chains/eni/index.js +0 -1
  49. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  50. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  51. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  52. package/dist/chains/eni/platforms/daoaas/meta.js +6 -9
  53. package/dist/chains/eni/platforms/daoaas/portal-direct.js +44 -28
  54. package/dist/chains/eni/platforms/daoaas/portal.js +6 -10
  55. package/dist/chains/eni/platforms/dswap/liquidity.js +26 -58
  56. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  57. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  58. package/dist/chains/eni/platforms/fair-launch/launcher.js +46 -87
  59. package/dist/chains/eni/platforms/fair-launch/pool.js +1 -4
  60. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  61. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  62. package/dist/chains/eni/platforms/iro/factory.js +1 -3
  63. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  64. package/dist/chains/eni/platforms/iro/index.js +4 -4
  65. package/dist/chains/eni/platforms/iro/pool.js +26 -90
  66. package/dist/chains/eni/platforms/iro/token.js +31 -107
  67. package/dist/chains/eni/platforms/iro/whitelist.js +18 -6
  68. package/dist/chains/index.d.ts +0 -13
  69. package/dist/chains/index.js +0 -13
  70. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +26 -2
  71. package/dist/chains/xlayer/eip7702/bundle-approve.js +21 -11
  72. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +6 -2
  73. package/dist/chains/xlayer/eip7702/bundle-buy.js +51 -13
  74. package/dist/chains/xlayer/eip7702/bundle-create.js +59 -93
  75. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +6 -2
  76. package/dist/chains/xlayer/eip7702/bundle-sell.js +111 -29
  77. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +65 -3
  78. package/dist/chains/xlayer/eip7702/bundle-swap.js +245 -51
  79. package/dist/chains/xlayer/eip7702/constants.d.ts +16 -1
  80. package/dist/chains/xlayer/eip7702/constants.js +21 -3
  81. package/dist/chains/xlayer/eip7702/index.d.ts +46 -28
  82. package/dist/chains/xlayer/eip7702/index.js +81 -28
  83. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +203 -2
  84. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +307 -63
  85. package/dist/chains/xlayer/eip7702/types.d.ts +0 -88
  86. package/dist/chains/xlayer/eip7702/utils.d.ts +3 -0
  87. package/dist/chains/xlayer/eip7702/utils.js +28 -23
  88. package/dist/chains/xlayer/eip7702/volume.d.ts +184 -6
  89. package/dist/chains/xlayer/eip7702/volume.js +164 -89
  90. package/dist/chains/xlayer/eoa/constants.js +1 -1
  91. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  92. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +95 -1
  93. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +299 -66
  94. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  95. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +23 -18
  96. package/dist/chains/xlayer/eoa/index.d.ts +6 -10
  97. package/dist/chains/xlayer/eoa/index.js +23 -8
  98. package/dist/chains/xlayer/eoa/portal-ops.js +2 -7
  99. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  100. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  101. package/dist/chains/xlayer/eoa/types.js +3 -1
  102. package/dist/chains/xlayer/index.d.ts +2 -3
  103. package/dist/chains/xlayer/index.js +7 -4
  104. package/dist/contracts/helper3.d.ts +5 -20
  105. package/dist/contracts/helper3.js +20 -56
  106. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +26 -1
  107. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +113 -1
  108. package/dist/contracts/tm-bundle-merkle/config.d.ts +67 -5
  109. package/dist/contracts/tm-bundle-merkle/config.js +114 -2
  110. package/dist/contracts/tm-bundle-merkle/core.d.ts +4 -1
  111. package/dist/contracts/tm-bundle-merkle/core.js +591 -1
  112. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  113. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  114. package/dist/contracts/tm-bundle-merkle/internal.d.ts +46 -2
  115. package/dist/contracts/tm-bundle-merkle/internal.js +238 -2
  116. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +28 -1
  117. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +686 -1
  118. package/dist/contracts/tm-bundle-merkle/private.d.ts +27 -1
  119. package/dist/contracts/tm-bundle-merkle/private.js +476 -1
  120. package/dist/contracts/tm-bundle-merkle/submit.d.ts +314 -3
  121. package/dist/contracts/tm-bundle-merkle/submit.js +928 -3
  122. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +55 -2
  123. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +506 -2
  124. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +3 -1
  125. package/dist/contracts/tm-bundle-merkle/swap-internal.js +18 -1
  126. package/dist/contracts/tm-bundle-merkle/swap.d.ts +144 -2
  127. package/dist/contracts/tm-bundle-merkle/swap.js +764 -2
  128. package/dist/contracts/tm-bundle-merkle/types.d.ts +476 -1
  129. package/dist/contracts/tm-bundle-merkle/utils.d.ts +18 -6
  130. package/dist/contracts/tm-bundle-merkle/utils.js +1501 -6
  131. package/dist/contracts/tm-bundle.d.ts +51 -3
  132. package/dist/contracts/tm-bundle.js +177 -108
  133. package/dist/contracts/tm.d.ts +2 -3
  134. package/dist/contracts/tm.js +32 -37
  135. package/dist/contracts/tm1.js +4 -9
  136. package/dist/contracts/tm2.js +4 -9
  137. package/dist/dex/direct-router.d.ts +125 -3
  138. package/dist/dex/direct-router.js +666 -237
  139. package/dist/flows/create.d.ts +1 -2
  140. package/dist/flows/create.js +6 -6
  141. package/dist/index.d.ts +86 -20
  142. package/dist/index.js +216 -20
  143. package/dist/shared/abis/TaxToken.json +105 -0
  144. package/dist/shared/abis/TokenManager2.json +60 -0
  145. package/dist/shared/abis/common.d.ts +83 -2
  146. package/dist/shared/abis/common.js +253 -2
  147. package/dist/shared/abis/index.d.ts +6 -5
  148. package/dist/shared/abis/index.js +7 -5
  149. package/dist/shared/clients/blockrazor.js +25 -39
  150. package/dist/shared/clients/club48.d.ts +2 -2
  151. package/dist/shared/clients/club48.js +29 -34
  152. package/dist/shared/clients/emitservice.js +0 -2
  153. package/dist/shared/clients/four.d.ts +6 -21
  154. package/dist/shared/clients/four.js +24 -29
  155. package/dist/shared/clients/merkle.js +34 -27
  156. package/dist/shared/constants/addresses.d.ts +1 -1
  157. package/dist/shared/constants/addresses.js +2 -11
  158. package/dist/shared/constants/chains.d.ts +1 -1
  159. package/dist/shared/constants/chains.js +1 -1
  160. package/dist/shared/constants/gas.d.ts +1 -1
  161. package/dist/shared/constants/gas.js +6 -2
  162. package/dist/shared/constants/index.d.ts +0 -3
  163. package/dist/shared/constants/index.js +0 -1
  164. package/dist/shared/flap/abi.js +1 -1
  165. package/dist/shared/flap/constants.d.ts +2 -3
  166. package/dist/shared/flap/constants.js +4 -5
  167. package/dist/shared/flap/curve.js +0 -3
  168. package/dist/shared/flap/errors.d.ts +4 -1
  169. package/dist/shared/flap/errors.js +1 -20
  170. package/dist/shared/flap/index.d.ts +5 -5
  171. package/dist/shared/flap/index.js +5 -5
  172. package/dist/shared/flap/launch-v6.d.ts +117 -0
  173. package/dist/shared/flap/launch-v6.js +111 -0
  174. package/dist/shared/flap/meta.d.ts +18 -22
  175. package/dist/shared/flap/meta.js +17 -12
  176. package/dist/shared/flap/permit.js +2 -5
  177. package/dist/shared/flap/pinata.d.ts +6 -22
  178. package/dist/shared/flap/pinata.js +26 -21
  179. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +72 -3
  180. package/dist/shared/flap/portal-bundle-merkle/config.js +124 -4
  181. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +4 -0
  182. package/dist/shared/flap/portal-bundle-merkle/core.js +267 -161
  183. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +4 -17
  184. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +195 -104
  185. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +92 -100
  186. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +7 -11
  187. package/dist/shared/flap/portal-bundle-merkle/index.js +7 -4
  188. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +68 -71
  189. package/dist/shared/flap/portal-bundle-merkle/private.js +114 -61
  190. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +64 -1
  191. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +247 -66
  192. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +71 -2
  193. package/dist/shared/flap/portal-bundle-merkle/swap.js +410 -103
  194. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +12 -88
  195. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +80 -1
  196. package/dist/shared/flap/portal-bundle-merkle/utils.js +265 -145
  197. package/dist/shared/flap/portal-bundle.js +56 -55
  198. package/dist/shared/flap/portal.d.ts +3 -14
  199. package/dist/shared/flap/portal.js +26 -49
  200. package/dist/shared/flap/vanity.d.ts +5 -8
  201. package/dist/shared/flap/vanity.js +20 -21
  202. package/dist/shared/flap/vault.d.ts +93 -25
  203. package/dist/shared/flap/vault.js +126 -75
  204. package/dist/shared/four/tax-token.d.ts +1 -1
  205. package/dist/shared/four/tax-token.js +7 -27
  206. package/dist/shared/index.d.ts +0 -6
  207. package/dist/shared/index.js +0 -4
  208. package/dist/utils/airdrop-sweep.d.ts +76 -4
  209. package/dist/utils/airdrop-sweep.js +55 -42
  210. package/dist/utils/bundle-helpers.d.ts +243 -9
  211. package/dist/utils/bundle-helpers.js +584 -10
  212. package/dist/utils/constants.d.ts +61 -5
  213. package/dist/utils/constants.js +80 -5
  214. package/dist/utils/contract-factory.d.ts +4 -2
  215. package/dist/utils/contract-factory.js +18 -25
  216. package/dist/utils/erc20.d.ts +89 -7
  217. package/dist/utils/erc20.js +125 -94
  218. package/dist/utils/errors.d.ts +1 -12
  219. package/dist/utils/errors.js +1 -60
  220. package/dist/utils/holders-maker.d.ts +138 -2
  221. package/dist/utils/holders-maker.js +661 -26
  222. package/dist/utils/lp-inspect.d.ts +112 -2
  223. package/dist/utils/lp-inspect.js +223 -73
  224. package/dist/utils/mpcExclusive.d.ts +5 -2
  225. package/dist/utils/mpcExclusive.js +3 -4
  226. package/dist/utils/private-sale.d.ts +58 -2
  227. package/dist/utils/private-sale.js +15 -4
  228. package/dist/utils/provider-factory.d.ts +0 -4
  229. package/dist/utils/provider-factory.js +0 -10
  230. package/dist/utils/quote-helpers.d.ts +45 -4
  231. package/dist/utils/quote-helpers.js +74 -17
  232. package/dist/utils/stealth-transfer.d.ts +28 -2
  233. package/dist/utils/stealth-transfer.js +15 -31
  234. package/dist/utils/swap-helpers.d.ts +15 -2
  235. package/dist/utils/swap-helpers.js +11 -6
  236. package/dist/utils/wallet.d.ts +25 -2
  237. package/dist/utils/wallet.js +10 -13
  238. package/package.json +4 -160
  239. package/dist/__tests__/subpath-exports.test.d.ts +0 -1
  240. package/dist/__tests__/subpath-exports.test.js +0 -64
  241. package/dist/abis/common.d.ts +0 -85
  242. package/dist/abis/common.js +0 -264
  243. package/dist/abis/contracts/TaxToken.json +0 -969
  244. package/dist/abis/contracts/TokenManager2.json +0 -136
  245. package/dist/abis/contracts/index.d.ts +0 -5
  246. package/dist/abis/contracts/index.js +0 -5
  247. package/dist/abis/flap/index.d.ts +0 -3
  248. package/dist/abis/flap/index.js +0 -3
  249. package/dist/abis/flap/portal-events.d.ts +0 -6
  250. package/dist/abis/flap/portal-events.js +0 -17
  251. package/dist/abis/flap/portal.d.ts +0 -6
  252. package/dist/abis/flap/portal.js +0 -37
  253. package/dist/abis/flap/vault.d.ts +0 -171
  254. package/dist/abis/flap/vault.js +0 -91
  255. package/dist/abis/index.d.ts +0 -8
  256. package/dist/abis/index.js +0 -11
  257. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
  258. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  259. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
  260. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  261. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
  262. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  263. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  264. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  265. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  266. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  267. package/dist/bundle-core/config-helpers.d.ts +0 -36
  268. package/dist/bundle-core/config-helpers.js +0 -57
  269. package/dist/bundle-core/errors.d.ts +0 -50
  270. package/dist/bundle-core/errors.js +0 -35
  271. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
  272. package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
  273. package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
  274. package/dist/bundle-core/four-meme/core-helpers.js +0 -40
  275. package/dist/bundle-core/four-meme/core.d.ts +0 -4
  276. package/dist/bundle-core/four-meme/core.js +0 -515
  277. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
  278. package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
  279. package/dist/bundle-core/four-meme/private.d.ts +0 -27
  280. package/dist/bundle-core/four-meme/private.js +0 -465
  281. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
  282. package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
  283. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
  284. package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
  285. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
  286. package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
  287. package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
  288. package/dist/bundle-core/four-meme/swap-internal.js +0 -18
  289. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
  290. package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
  291. package/dist/bundle-core/four-meme/swap.d.ts +0 -17
  292. package/dist/bundle-core/four-meme/swap.js +0 -505
  293. package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
  294. package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
  295. package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
  296. package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
  297. package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
  298. package/dist/bundle-core/four-meme/types/index.js +0 -1
  299. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
  300. package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
  301. package/dist/bundle-core/four-meme/types.d.ts +0 -1
  302. package/dist/bundle-core/four-meme/types.js +0 -1
  303. package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
  304. package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
  305. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
  306. package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
  307. package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
  308. package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
  309. package/dist/bundle-core/index.d.ts +0 -8
  310. package/dist/bundle-core/index.js +0 -8
  311. package/dist/bundle-core/internal.d.ts +0 -21
  312. package/dist/bundle-core/internal.js +0 -182
  313. package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
  314. package/dist/bundle-core/sign-context-helpers.js +0 -67
  315. package/dist/bundle-core/submit.d.ts +0 -293
  316. package/dist/bundle-core/submit.js +0 -727
  317. package/dist/bundle-core/types/index.d.ts +0 -8
  318. package/dist/bundle-core/types/index.js +0 -1
  319. package/dist/bundle-core/types.d.ts +0 -1
  320. package/dist/bundle-core/types.js +0 -1
  321. package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
  322. package/dist/chains/bsc/four/utils-disperse.js +0 -1
  323. package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
  324. package/dist/chains/bsc/four/utils-pairwise.js +0 -1
  325. package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
  326. package/dist/chains/bsc/four/utils-sweep.js +0 -1
  327. package/dist/chains/bsc/iro.d.ts +0 -5
  328. package/dist/chains/bsc/iro.js +0 -4
  329. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
  330. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
  331. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
  332. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
  333. package/dist/chains/eni/flat-aliases.d.ts +0 -10
  334. package/dist/chains/eni/flat-aliases.js +0 -8
  335. package/dist/chains/eni/submit.d.ts +0 -43
  336. package/dist/chains/eni/submit.js +0 -286
  337. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
  338. package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
  339. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
  340. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
  341. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
  342. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
  343. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
  344. package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
  345. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
  346. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
  347. package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
  348. package/dist/contracts/tm-bundle-helpers.js +0 -72
  349. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  350. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  351. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  352. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  353. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  354. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  355. package/dist/dex/direct-router-helpers.d.ts +0 -264
  356. package/dist/dex/direct-router-helpers.js +0 -539
  357. package/dist/dex/types.d.ts +0 -81
  358. package/dist/dex/types.js +0 -1
  359. package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
  360. package/dist/exports/root-bundle-and-tooling.js +0 -30
  361. package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
  362. package/dist/exports/root-eni-and-bsc-iro.js +0 -66
  363. package/dist/exports/root-foundations.d.ts +0 -35
  364. package/dist/exports/root-foundations.js +0 -70
  365. package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
  366. package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
  367. package/dist/flap/index.d.ts +0 -10
  368. package/dist/flap/index.js +0 -8
  369. package/dist/flows/index.d.ts +0 -1
  370. package/dist/flows/index.js +0 -1
  371. package/dist/merkle/index.d.ts +0 -12
  372. package/dist/merkle/index.js +0 -11
  373. package/dist/shared/clients/index.d.ts +0 -8
  374. package/dist/shared/clients/index.js +0 -8
  375. package/dist/shared/constants/quote.d.ts +0 -30
  376. package/dist/shared/constants/quote.js +0 -37
  377. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
  378. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
  379. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
  380. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
  381. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
  382. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
  383. package/dist/shared/flap/portal-create-token.d.ts +0 -81
  384. package/dist/shared/flap/portal-create-token.js +0 -255
  385. package/dist/shared/foundation/dex/v3-path.d.ts +0 -6
  386. package/dist/shared/foundation/dex/v3-path.js +0 -35
  387. package/dist/shared/foundation/gas/bundle-gas.d.ts +0 -49
  388. package/dist/shared/foundation/gas/bundle-gas.js +0 -93
  389. package/dist/shared/foundation/gas/profit-hop.d.ts +0 -20
  390. package/dist/shared/foundation/gas/profit-hop.js +0 -72
  391. package/dist/shared/foundation/index.d.ts +0 -13
  392. package/dist/shared/foundation/index.js +0 -12
  393. package/dist/shared/foundation/nonce/nonce-manager.d.ts +0 -17
  394. package/dist/shared/foundation/nonce/nonce-manager.js +0 -183
  395. package/dist/shared/foundation/normalize-unknown.d.ts +0 -9
  396. package/dist/shared/foundation/normalize-unknown.js +0 -29
  397. package/dist/shared/foundation/sdk-logger.d.ts +0 -13
  398. package/dist/shared/foundation/sdk-logger.js +0 -12
  399. package/dist/shared/foundation/tx/build-request.d.ts +0 -17
  400. package/dist/shared/foundation/tx/build-request.js +0 -25
  401. package/dist/shared/foundation/tx/sign-batch.d.ts +0 -5
  402. package/dist/shared/foundation/tx/sign-batch.js +0 -26
  403. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +0 -1
  404. package/dist/shared/foundation/tx/wallet-sign-patch.js +0 -18
  405. package/dist/shared/foundation/types/airdrop-sweep.d.ts +0 -79
  406. package/dist/shared/foundation/types/airdrop-sweep.js +0 -1
  407. package/dist/shared/foundation/types/erc20.d.ts +0 -65
  408. package/dist/shared/foundation/types/erc20.js +0 -1
  409. package/dist/shared/foundation/types/holders-maker.d.ts +0 -64
  410. package/dist/shared/foundation/types/holders-maker.js +0 -1
  411. package/dist/shared/foundation/types/index.d.ts +0 -7
  412. package/dist/shared/foundation/types/index.js +0 -1
  413. package/dist/shared/foundation/types/lp-inspect.d.ts +0 -102
  414. package/dist/shared/foundation/types/lp-inspect.js +0 -1
  415. package/dist/shared/foundation/types/multicall.d.ts +0 -5
  416. package/dist/shared/foundation/types/multicall.js +0 -1
  417. package/dist/shared/foundation/types/private-sale.d.ts +0 -35
  418. package/dist/shared/foundation/types/private-sale.js +0 -1
  419. package/dist/shared/foundation/types/quote-helpers.d.ts +0 -17
  420. package/dist/shared/foundation/types/quote-helpers.js +0 -1
  421. package/dist/types/errors.d.ts +0 -27
  422. package/dist/types/errors.js +0 -34
  423. package/dist/utils/holders-maker/addresses.d.ts +0 -12
  424. package/dist/utils/holders-maker/addresses.js +0 -15
  425. package/dist/utils/holders-maker/buy-tx.d.ts +0 -44
  426. package/dist/utils/holders-maker/buy-tx.js +0 -278
  427. package/dist/utils/holders-maker/constants.d.ts +0 -6
  428. package/dist/utils/holders-maker/constants.js +0 -7
  429. package/dist/utils/holders-maker/disperse.d.ts +0 -18
  430. package/dist/utils/holders-maker/disperse.js +0 -90
  431. package/dist/utils/holders-maker/routing.d.ts +0 -4
  432. package/dist/utils/holders-maker/routing.js +0 -45
  433. package/dist/utils/holders-maker/transfer-tx.d.ts +0 -4
  434. package/dist/utils/holders-maker/transfer-tx.js +0 -67
  435. package/dist/utils/holders-maker-helpers.d.ts +0 -9
  436. package/dist/utils/holders-maker-helpers.js +0 -9
  437. package/dist/utils/hop-chains.d.ts +0 -35
  438. package/dist/utils/hop-chains.js +0 -215
  439. package/dist/utils/lp-inspect-helpers.d.ts +0 -9
  440. package/dist/utils/lp-inspect-helpers.js +0 -109
  441. package/dist/utils/types/airdrop-sweep.d.ts +0 -1
  442. package/dist/utils/types/airdrop-sweep.js +0 -1
  443. package/dist/utils/types/contract-factory.d.ts +0 -1
  444. package/dist/utils/types/contract-factory.js +0 -1
  445. package/dist/utils/types/erc20.d.ts +0 -1
  446. package/dist/utils/types/erc20.js +0 -1
  447. package/dist/utils/types/errors.d.ts +0 -1
  448. package/dist/utils/types/errors.js +0 -1
  449. package/dist/utils/types/holders-maker.d.ts +0 -1
  450. package/dist/utils/types/holders-maker.js +0 -1
  451. package/dist/utils/types/hop-chains.d.ts +0 -8
  452. package/dist/utils/types/hop-chains.js +0 -1
  453. package/dist/utils/types/index.d.ts +0 -13
  454. package/dist/utils/types/index.js +0 -1
  455. package/dist/utils/types/lp-inspect.d.ts +0 -1
  456. package/dist/utils/types/lp-inspect.js +0 -1
  457. package/dist/utils/types/mpc-exclusive.d.ts +0 -5
  458. package/dist/utils/types/mpc-exclusive.js +0 -1
  459. package/dist/utils/types/private-sale.d.ts +0 -1
  460. package/dist/utils/types/private-sale.js +0 -1
  461. package/dist/utils/types/quote-helpers.d.ts +0 -1
  462. package/dist/utils/types/quote-helpers.js +0 -1
  463. package/dist/utils/types/stealth-transfer.d.ts +0 -44
  464. package/dist/utils/types/stealth-transfer.js +0 -1
  465. package/dist/utils/types/wallet.d.ts +0 -25
  466. package/dist/utils/types/wallet.js +0 -1
  467. package/dist/vanity/index.d.ts +0 -5
  468. package/dist/vanity/index.js +0 -5
  469. package/src/abis/contracts/TaxToken.json +0 -969
  470. package/src/abis/contracts/TokenManager.json +0 -836
  471. package/src/abis/contracts/TokenManager2.json +0 -136
  472. package/src/abis/contracts/TokenManagerHelper3.json +0 -993
  473. /package/dist/{abis/contracts → shared/abis}/TokenManager.json +0 -0
  474. /package/dist/{abis/contracts → shared/abis}/TokenManagerHelper3.json +0 -0
@@ -1,15 +1,34 @@
1
1
  import { ethers, JsonRpcProvider } from 'ethers';
2
- import { GAS_LIMITS, isEniChain } from '../shared/constants/index.js';
3
- import { buildGasFields } from '../shared/foundation/gas/bundle-gas.js';
4
- import { getErc20Decimals } from '../bundle-core/internal.js';
5
- function getTxTypeForChain(chainId) {
6
- return isEniChain(chainId) ? 2 : 0;
2
+ import { GAS_LIMITS } from '../shared/constants/index.js';
3
+ async function getErc20Decimals(provider, token) {
4
+ try {
5
+ const erc20 = new ethers.Contract(token, ['function decimals() view returns (uint8)'], provider);
6
+ const d = await erc20.decimals();
7
+ if (!Number.isFinite(d) || d < 0 || d > 36)
8
+ return 18;
9
+ return d;
10
+ }
11
+ catch {
12
+ return 18;
13
+ }
14
+ }
15
+ /**
16
+ * 分散(仅签名版本 - 不提交 Bundle)
17
+ * ✅ 精简版:只负责签名交易,不提交
18
+ */
19
+ /** ENI Chain ID — EIP-1559 (type 2) */
20
+ const ENI_CHAIN_ID = 173;
21
+ function getTxType(chainId) {
22
+ return chainId === ENI_CHAIN_ID ? 2 : 0;
23
+ }
24
+ function buildGasFields(txType, gasPrice) {
25
+ if (txType === 2) {
26
+ return { type: 2, maxFeePerGas: gasPrice, maxPriorityFeePerGas: gasPrice / 10n || 1n };
27
+ }
28
+ return { type: 0, gasPrice };
7
29
  }
8
- // ==========================================
9
- // 通用:原生/代币 一键分散 & 一键归集(Bundle)
10
- // ==========================================
11
30
  export async function disperseWithBundle(params) {
12
- const { rpcUrl, chainId, fromPrivateKey, recipients, amount, amounts, tokenAddress, gasPriceGwei, transferGasLimit = GAS_LIMITS.ERC20_TRANSFER, nativeGasLimit = GAS_LIMITS.BRIBE, } = params;
31
+ const { rpcUrl, chainId, fromPrivateKey, recipients, amount, amounts, tokenAddress, gasPriceGwei, transferGasLimit = GAS_LIMITS.ERC20_TRANSFER, nativeGasLimit = GAS_LIMITS.BRIBE } = params;
13
32
  if (!recipients || recipients.length === 0) {
14
33
  return { signedTransactions: [] };
15
34
  }
@@ -17,22 +36,22 @@ export async function disperseWithBundle(params) {
17
36
  const wallet = new ethers.Wallet(fromPrivateKey, provider);
18
37
  const gasPrice = gasPriceGwei && gasPriceGwei.trim().length > 0
19
38
  ? ethers.parseUnits(gasPriceGwei, 'gwei')
20
- : ((await provider.getFeeData()).gasPrice ?? ethers.parseUnits('1', 'gwei'));
39
+ : (await provider.getFeeData()).gasPrice ?? ethers.parseUnits('1', 'gwei');
21
40
  // 规范化 amounts:优先使用数组;否则将单值扩展为数组
22
41
  const useAmountsArray = Array.isArray(amounts) && amounts.length > 0;
23
42
  const effAmounts = useAmountsArray
24
43
  ? amounts
25
- : typeof amount === 'string' && amount.trim().length > 0
44
+ : (typeof amount === 'string' && amount.trim().length > 0
26
45
  ? new Array(recipients.length).fill(amount)
27
- : [];
46
+ : []);
28
47
  if (effAmounts.length !== recipients.length) {
29
48
  throw new Error('recipients and amounts length mismatch');
30
49
  }
31
- const isNative = !tokenAddress || tokenAddress.trim().length === 0;
50
+ let isNative = !tokenAddress || tokenAddress.trim().length === 0;
32
51
  const signedTxs = [];
33
52
  if (isNative) {
34
53
  const baseNonce = await provider.getTransactionCount(wallet.address, 'pending');
35
- const txType = getTxTypeForChain(chainId);
54
+ const txType = getTxType(chainId);
36
55
  const signedTxList = await Promise.all(recipients.map(async (to, i) => {
37
56
  const amountWei = ethers.parseEther(effAmounts[i]);
38
57
  return wallet.signTransaction({
@@ -50,10 +69,10 @@ export async function disperseWithBundle(params) {
50
69
  // ✅ 并行获取 decimals 和 nonce
51
70
  const [decimals, baseNonce] = await Promise.all([
52
71
  getErc20Decimals(provider, tokenAddress),
53
- provider.getTransactionCount(wallet.address, 'pending'),
72
+ provider.getTransactionCount(wallet.address, 'pending')
54
73
  ]);
55
74
  const iface = new ethers.Interface(['function transfer(address,uint256) returns (bool)']);
56
- const txType = getTxTypeForChain(chainId);
75
+ const txType = getTxType(chainId);
57
76
  const signedTxList = await Promise.all(recipients.map(async (to, i) => {
58
77
  const amountWei = ethers.parseUnits(effAmounts[i], decimals);
59
78
  const data = iface.encodeFunctionData('transfer', [to, amountWei]);
@@ -77,15 +96,15 @@ export async function disperseWithBundle(params) {
77
96
  * ✅ 精简版:只负责签名交易,不提交
78
97
  */
79
98
  export async function sweepWithBundle(params) {
80
- const { rpcUrl, chainId, sourcePrivateKeys, target, ratioPct, amount, tokenAddress, gasPriceGwei, transferGasLimit = GAS_LIMITS.ERC20_TRANSFER, nativeGasLimit = GAS_LIMITS.BRIBE, skipIfInsufficient = true, } = params;
99
+ const { rpcUrl, chainId, sourcePrivateKeys, target, ratioPct, amount, tokenAddress, gasPriceGwei, transferGasLimit = GAS_LIMITS.ERC20_TRANSFER, nativeGasLimit = GAS_LIMITS.BRIBE, skipIfInsufficient = true } = params;
81
100
  if (!sourcePrivateKeys || sourcePrivateKeys.length === 0) {
82
101
  return { signedTransactions: [] };
83
102
  }
84
103
  const provider = new JsonRpcProvider(rpcUrl, chainId);
85
104
  const gasPrice = gasPriceGwei && gasPriceGwei.trim().length > 0
86
105
  ? ethers.parseUnits(gasPriceGwei, 'gwei')
87
- : ((await provider.getFeeData()).gasPrice ?? ethers.parseUnits('1', 'gwei'));
88
- const isNative = !tokenAddress || tokenAddress.trim().length === 0;
106
+ : (await provider.getFeeData()).gasPrice ?? ethers.parseUnits('1', 'gwei');
107
+ let isNative = !tokenAddress || tokenAddress.trim().length === 0;
89
108
  const signedTxs = [];
90
109
  const clampRatio = (n) => {
91
110
  if (typeof n !== 'number' || !Number.isFinite(n))
@@ -99,18 +118,18 @@ export async function sweepWithBundle(params) {
99
118
  const ratio = clampRatio(ratioPct);
100
119
  if (isNative) {
101
120
  // ✅ 并行处理所有源钱包
102
- const wallets = sourcePrivateKeys.map((pk) => new ethers.Wallet(pk, provider));
121
+ const wallets = sourcePrivateKeys.map(pk => new ethers.Wallet(pk, provider));
103
122
  const gasCost = nativeGasLimit * gasPrice;
104
123
  // 并行获取所有余额和 nonce
105
124
  const [balances, nonces] = await Promise.all([
106
- Promise.all(wallets.map((w) => provider.getBalance(w.address).catch(() => 0n))),
107
- Promise.all(wallets.map((w) => provider.getTransactionCount(w.address, 'pending'))),
125
+ Promise.all(wallets.map(w => provider.getBalance(w.address).catch(() => 0n))),
126
+ Promise.all(wallets.map(w => provider.getTransactionCount(w.address, 'pending')))
108
127
  ]);
109
128
  // 计算每个钱包的发送金额
110
- const sendAmounts = balances.map((bal) => {
129
+ const sendAmounts = balances.map(bal => {
111
130
  if (ratio !== undefined) {
112
131
  const want = (bal * BigInt(ratio)) / 100n;
113
- const maxSendable = bal > gasCost ? bal - gasCost : 0n;
132
+ const maxSendable = bal > gasCost ? (bal - gasCost) : 0n;
114
133
  return want > maxSendable ? maxSendable : want;
115
134
  }
116
135
  else if (amount && amount.trim().length > 0) {
@@ -121,9 +140,9 @@ export async function sweepWithBundle(params) {
121
140
  }
122
141
  return 0n;
123
142
  });
124
- const txType = getTxTypeForChain(chainId);
125
- const validIndices = sendAmounts.map((amt, i) => (amt > 0n ? i : -1)).filter((i) => i >= 0);
126
- const signedTxList = await Promise.all(validIndices.map((i) => wallets[i].signTransaction({
143
+ const txType = getTxType(chainId);
144
+ const validIndices = sendAmounts.map((amt, i) => amt > 0n ? i : -1).filter(i => i >= 0);
145
+ const signedTxList = await Promise.all(validIndices.map(i => wallets[i].signTransaction({
127
146
  to: target,
128
147
  value: sendAmounts[i],
129
148
  nonce: nonces[i],
@@ -134,11 +153,8 @@ export async function sweepWithBundle(params) {
134
153
  signedTxs.push(...signedTxList);
135
154
  }
136
155
  else {
137
- const wallets = sourcePrivateKeys.map((pk) => new ethers.Wallet(pk, provider));
138
- const iface = new ethers.Interface([
139
- 'function balanceOf(address) view returns (uint256)',
140
- 'function transfer(address,uint256) returns (bool)',
141
- ]);
156
+ const wallets = sourcePrivateKeys.map(pk => new ethers.Wallet(pk, provider));
157
+ const iface = new ethers.Interface(['function balanceOf(address) view returns (uint256)', 'function transfer(address,uint256) returns (bool)']);
142
158
  // ✅ 并行获取 decimals、所有代币余额和 nonce
143
159
  const [decimals, balanceResults, nonces] = await Promise.all([
144
160
  getErc20Decimals(provider, tokenAddress),
@@ -146,18 +162,17 @@ export async function sweepWithBundle(params) {
146
162
  try {
147
163
  const balData = iface.encodeFunctionData('balanceOf', [w.address]);
148
164
  const balRaw = await provider.call({ to: tokenAddress, data: balData });
149
- const decoded = iface.decodeFunctionResult('balanceOf', balRaw);
150
- const bal = decoded[0];
165
+ const [bal] = iface.decodeFunctionResult('balanceOf', balRaw);
151
166
  return bal;
152
167
  }
153
168
  catch {
154
169
  return 0n;
155
170
  }
156
171
  })),
157
- Promise.all(wallets.map((w) => provider.getTransactionCount(w.address, 'pending'))),
172
+ Promise.all(wallets.map(w => provider.getTransactionCount(w.address, 'pending')))
158
173
  ]);
159
174
  // 计算每个钱包的发送金额
160
- const sendAmounts = balanceResults.map((bal) => {
175
+ const sendAmounts = balanceResults.map(bal => {
161
176
  if (ratio !== undefined) {
162
177
  return (bal * BigInt(ratio)) / 100n;
163
178
  }
@@ -169,17 +184,15 @@ export async function sweepWithBundle(params) {
169
184
  return 0n;
170
185
  });
171
186
  // 过滤余额不足的钱包
172
- const validIndices = sendAmounts
173
- .map((amt, i) => {
187
+ const validIndices = sendAmounts.map((amt, i) => {
174
188
  if (amt <= 0n)
175
189
  return -1;
176
190
  if (skipIfInsufficient && balanceResults[i] < amt)
177
191
  return -1;
178
192
  return i;
179
- })
180
- .filter((i) => i >= 0);
181
- const txType = getTxTypeForChain(chainId);
182
- const signedTxList = await Promise.all(validIndices.map((i) => {
193
+ }).filter(i => i >= 0);
194
+ const txType = getTxType(chainId);
195
+ const signedTxList = await Promise.all(validIndices.map(i => {
183
196
  const data = iface.encodeFunctionData('transfer', [target, sendAmounts[i]]);
184
197
  return wallets[i].signTransaction({
185
198
  to: tokenAddress,
@@ -1,10 +1,244 @@
1
1
  /**
2
- * Bundle 交易辅助工具 — 实现已迁至 shared/foundation/
3
- * 本文件保留 re-export,兼容现有 import 路径。
4
- */
5
- export { NonceManager } from '../shared/foundation/nonce/nonce-manager.js';
6
- export { type GasPriceConfig, type GasEstimateConfig, type BuildTransactionOptions, type CommonBundleConfig, getOptimizedGasPrice, estimateGasWithSafety, estimateGasBatch, buildTransaction, getGasLimit, getGasPriceConfig, getTxType, buildGasFields, } from '../shared/foundation/gas/bundle-gas.js';
7
- export { type ProfitHopConfig, type ProfitHopResult, PROFIT_HOP_COUNT, buildProfitHopTransactions, } from '../shared/foundation/gas/profit-hop.js';
8
- export { getChainId, signTransactionsBatch, signTransactionsBatchMultiWallet, validateSignedTransactions, } from '../shared/foundation/tx/sign-batch.js';
9
- export { getDeadline, encodeV3Path, decodeV3Path } from '../shared/foundation/dex/v3-path.js';
10
- import '../shared/foundation/tx/wallet-sign-patch.js';
2
+ * Bundle 交易辅助工具
3
+ * 提供可复用的 nonce 管理、gas 估算等功能
4
+ */
5
+ import { JsonRpcProvider, Wallet } from 'ethers';
6
+ import { type GeneratedWallet } from './wallet.js';
7
+ /**
8
+ * Nonce 管理器
9
+ * 用于在 bundle 交易中管理多个钱包的 nonce
10
+ *
11
+ * 策略:
12
+ * 1. 每次获取 nonce 时查询链上状态(使用 'pending' 包含待处理交易)
13
+ * 2. 仅在同一批次内维护临时递增缓存
14
+ * 3. 不持久化缓存,避免因失败交易导致 nonce 过高
15
+ */
16
+ export declare class NonceManager {
17
+ private provider;
18
+ private tempNonceCache;
19
+ private chainIdPromise?;
20
+ constructor(provider: JsonRpcProvider);
21
+ private getChainId;
22
+ /**
23
+ * 获取下一个可用的 nonce
24
+ * @param wallet 钱包对象或地址
25
+ * @returns 下一个 nonce
26
+ */
27
+ getNextNonce(wallet: Wallet | string): Promise<number>;
28
+ /**
29
+ * 批量获取连续 nonce(推荐用于同一地址的批量交易)
30
+ * @param wallet 钱包对象或地址
31
+ * @param count 需要的 nonce 数量
32
+ * @returns nonce 数组
33
+ */
34
+ getNextNonceBatch(wallet: Wallet | string, count: number): Promise<number[]>;
35
+ /**
36
+ * 清空临时缓存(建议在每次 bundle 提交后调用)
37
+ */
38
+ clearTemp(): void;
39
+ /**
40
+ * 获取当前临时缓存的 nonce(调试用)
41
+ */
42
+ getTempCachedNonce(address: string): number | undefined;
43
+ /**
44
+ * ✅ 批量获取多个不同地址的 nonce(真正的单次 JSON-RPC 批量请求)
45
+ * 使用 provider.send 发送批量请求,N 个地址只需 1 次网络往返
46
+ * @param wallets 钱包数组
47
+ * @returns nonce 数组(顺序与 wallets 对应)
48
+ */
49
+ getNextNoncesForWallets(wallets: (Wallet | string)[]): Promise<number[]>;
50
+ }
51
+ /**
52
+ * Gas 价格配置
53
+ */
54
+ export interface GasPriceConfig {
55
+ /** 基础 gas price(如果不提供则从链上获取) */
56
+ baseGasPrice?: bigint;
57
+ /** Gas price 增幅百分比(默认 50,即提高 50%) */
58
+ multiplierPercent?: number;
59
+ /** 最小 gas price */
60
+ minGasPrice?: bigint;
61
+ /** 最大 gas price */
62
+ maxGasPrice?: bigint;
63
+ }
64
+ /**
65
+ * 获取优化后的 Gas Price
66
+ * @param provider Provider 实例
67
+ * @param config Gas 配置
68
+ * @returns Gas price
69
+ */
70
+ export declare function getOptimizedGasPrice(provider: JsonRpcProvider, config?: GasPriceConfig): Promise<bigint>;
71
+ /**
72
+ * Gas 估算配置
73
+ */
74
+ export interface GasEstimateConfig {
75
+ /** Gas limit 安全余量倍数(默认 1.2 = 20%) */
76
+ multiplier?: number;
77
+ /** 失败时的默认 gas limit */
78
+ fallbackGasLimit?: bigint;
79
+ /** 是否允许估算失败 */
80
+ allowFailure?: boolean;
81
+ }
82
+ /**
83
+ * 估算 gas 并应用安全余量
84
+ * @param provider Provider 实例
85
+ * @param txRequest 交易请求
86
+ * @param config Gas 估算配置
87
+ * @returns Gas limit
88
+ */
89
+ export declare function estimateGasWithSafety(provider: JsonRpcProvider, txRequest: any, config?: GasEstimateConfig): Promise<bigint>;
90
+ /**
91
+ * 批量估算 gas(并行)
92
+ * @param provider Provider 实例
93
+ * @param txRequests 交易请求数组
94
+ * @param config Gas 估算配置
95
+ * @returns Gas limit 数组
96
+ */
97
+ export declare function estimateGasBatch(provider: JsonRpcProvider, txRequests: any[], config?: GasEstimateConfig): Promise<bigint[]>;
98
+ /**
99
+ * 构建交易对象
100
+ */
101
+ export interface BuildTransactionOptions {
102
+ from: string;
103
+ to?: string;
104
+ data?: string;
105
+ value?: bigint;
106
+ nonce: number;
107
+ gasPrice: bigint;
108
+ gasLimit: bigint;
109
+ chainId: number;
110
+ type?: 0 | 2;
111
+ }
112
+ /**
113
+ * 构建标准交易对象
114
+ * @param options 交易选项
115
+ * @returns 交易对象
116
+ */
117
+ export declare function buildTransaction(options: BuildTransactionOptions): any;
118
+ /**
119
+ * 通用配置接口(用于提取公共配置字段)
120
+ */
121
+ export interface CommonBundleConfig {
122
+ gasLimit?: number;
123
+ gasLimitMultiplier?: number;
124
+ minGasPriceGwei?: number;
125
+ maxGasPriceGwei?: number;
126
+ txType?: 0 | 2;
127
+ chainId?: number;
128
+ }
129
+ /**
130
+ * 获取 Gas Limit
131
+ * 优先使用 config.gasLimit,否则使用默认值 * multiplier
132
+ */
133
+ export declare function getGasLimit(config: CommonBundleConfig, defaultGas?: number): bigint;
134
+ /**
135
+ * 获取 Gas Price 配置(转换为 GasPriceConfig)
136
+ */
137
+ export declare function getGasPriceConfig(config: CommonBundleConfig): GasPriceConfig;
138
+ /**
139
+ * 获取交易类型
140
+ */
141
+ export declare function getTxType(config: CommonBundleConfig): 0 | 2;
142
+ /**
143
+ * 根据交易类型构建 gas 字段
144
+ * type 0 (Legacy): 使用 gasPrice
145
+ * type 2 (EIP-1559): 使用 maxFeePerGas + maxPriorityFeePerGas
146
+ *
147
+ * BaseWallet.signTransaction -> Transaction.from() 不会自动转换
148
+ * gasPrice 到 maxFeePerGas,必须显式传入正确字段
149
+ */
150
+ export declare function buildGasFields(txType: number, gasPrice: bigint): Record<string, unknown>;
151
+ /**
152
+ * 获取链 ID(从 provider 或 config)
153
+ */
154
+ export declare function getChainId(provider: JsonRpcProvider, configChainId?: number): Promise<number>;
155
+ /**
156
+ * 并行签名多个交易
157
+ * @param wallet 钱包
158
+ * @param transactions 交易数组
159
+ * @returns 已签名的交易数组
160
+ */
161
+ export declare function signTransactionsBatch(wallet: Wallet, transactions: any[]): Promise<string[]>;
162
+ /**
163
+ * 批量签名(支持多个钱包)
164
+ * @param wallets 钱包数组
165
+ * @param transactions 交易数组(必须与钱包一一对应)
166
+ * @returns 已签名的交易数组
167
+ */
168
+ export declare function signTransactionsBatchMultiWallet(wallets: Wallet[], transactions: any[]): Promise<string[]>;
169
+ /**
170
+ * 验证已签名交易的格式
171
+ * @param signedTxs 已签名的交易数组
172
+ * @returns 是否全部有效
173
+ */
174
+ export declare function validateSignedTransactions(signedTxs: string[]): boolean;
175
+ /**
176
+ * 获取交易 deadline(Unix 时间戳秒)
177
+ * @param minutes 有效分钟数,默认 20
178
+ * @returns Unix 时间戳(秒)
179
+ */
180
+ export declare function getDeadline(minutes?: number): number;
181
+ /**
182
+ * 编码 V3 多跳 path
183
+ * 格式:token0 (20 bytes) + fee (3 bytes) + token1 (20 bytes) + fee (3 bytes) + token2 (20 bytes) ...
184
+ *
185
+ * @param tokens 代币地址数组 [tokenIn, tokenMid1, tokenMid2, ..., tokenOut]
186
+ * @param fees 费率数组 [fee0, fee1, ...] - 长度应该是 tokens.length - 1
187
+ * @returns 编码后的 path(hex string)
188
+ *
189
+ * @example
190
+ * // WBNB → USDT(500) → TOKEN(2500)
191
+ * encodeV3Path(['0xWBNB...', '0xUSDT...', '0xTOKEN...'], [500, 2500])
192
+ */
193
+ export declare function encodeV3Path(tokens: string[], fees: number[]): string;
194
+ /**
195
+ * 解码 V3 path 为代币和费率数组
196
+ * @param path 编码后的 path
197
+ * @returns { tokens, fees }
198
+ */
199
+ export declare function decodeV3Path(path: string): {
200
+ tokens: string[];
201
+ fees: number[];
202
+ };
203
+ /**
204
+ * 利润多跳转账配置
205
+ */
206
+ export interface ProfitHopConfig {
207
+ provider: JsonRpcProvider;
208
+ payerWallet: Wallet;
209
+ profitAmount: bigint;
210
+ profitRecipient: string;
211
+ hopCount?: number;
212
+ gasPrice: bigint;
213
+ chainId: number;
214
+ txType: number;
215
+ startNonce?: number;
216
+ }
217
+ /**
218
+ * 利润多跳结果
219
+ */
220
+ export interface ProfitHopResult {
221
+ signedTransactions: string[];
222
+ hopWallets: GeneratedWallet[];
223
+ totalNonceUsed: number;
224
+ }
225
+ /**
226
+ * 强制 2 跳的利润转账常量
227
+ */
228
+ export declare const PROFIT_HOP_COUNT = 2;
229
+ /**
230
+ * 生成利润转账交易
231
+ *
232
+ * BSC 链:使用多跳转账
233
+ * 流程(2 跳):
234
+ * 1. 支付者 → 中转1(gas + 利润 + 中转1的gas)
235
+ * 2. 中转1 → 中转2(gas + 利润)
236
+ * 3. 中转2 → 利润地址(利润)
237
+ *
238
+ * 其他链:直接转账到收益地址
239
+ * 流程:支付者 → 利润地址
240
+ *
241
+ * @param config 配置参数
242
+ * @returns 签名交易和中转钱包私钥
243
+ */
244
+ export declare function buildProfitHopTransactions(config: ProfitHopConfig): Promise<ProfitHopResult>;