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
@@ -4,6 +4,8 @@
4
4
  */
5
5
  /** 零地址 */
6
6
  export declare const ZERO_ADDRESS: "0x0000000000000000000000000000000000000000";
7
+ /** 32 字节零哈希(bytes32 零值) */
8
+ export declare const ZERO_BYTES32: "0x0000000000000000000000000000000000000000000000000000000000000000";
7
9
  /** BlockRazor Builder EOA 地址(用于 BSC 链贿赂) */
8
10
  export declare const BLOCKRAZOR_BUILDER_EOA: "0x1266C6bE60392A8Ff346E8d5ECCd3E69dD9c5F20";
9
11
  export declare const ADDRESSES: {
@@ -46,12 +48,22 @@ export declare const ADDRESSES: {
46
48
  readonly FlapTokenImpl: "0x12Dc83157Bf1cfCB8Db5952b3ba5bb56Cc38f8C9";
47
49
  /** V2 Router (标准 Uniswap V2 风格) */
48
50
  readonly PotatoSwapV2Router: "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
51
+ /** V2 Factory */
52
+ readonly PotatoSwapV2Factory: "0x630DB8E822805c82Ca40a54daE02dd5aC31f7fcF";
49
53
  /** SwapRouter02 (V3 风格) */
50
54
  readonly PotatoSwapSwapRouter02: "0xB45D0149249488333E3F3f9F359807F4b810C1FC";
51
55
  /** V3 Router */
52
56
  readonly PotatoSwapV3Router: "0xBB069e9465BcabC4F488d21e793BDEf0F2d41D41";
53
57
  /** V3 Factory */
54
58
  readonly PotatoSwapV3Factory: "0xa1415fAe79c4B196d087F02b8aD5a622B8A827E5";
59
+ /** QuoterV2 */
60
+ readonly PotatoSwapQuoterV2: "0x5A6f3723346aF54a4D0693bfC1718D64d4915C3e";
61
+ /** DYORSwap V2 Factory */
62
+ readonly DyorSwapV2Factory: "0x2CcaDb1e437AA9cDc741574bDa154686B1F04C09";
63
+ /** DYORSwap Router */
64
+ readonly DyorSwapRouter: "0xfb001fbbace32f09cb6d3c449b935183de53ee96";
65
+ /** DYORSwap ETHBack Dividend 合约(refundETH 固定地址) */
66
+ readonly DyorSwapEthBackDividend: "0x2e61b0b4410f6fb941d47205191cbb8963d44bcc";
55
67
  /** EntryPoint v0.6 合约地址 */
56
68
  readonly EntryPointV06: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789";
57
69
  /** SimpleAccountFactory 合约地址 */
@@ -66,6 +78,16 @@ export declare const ADDRESSES: {
66
78
  readonly TaxTokenImplementation: "0x1C8847736521f5cD725dFB8f33c7c610826e7C42";
67
79
  readonly TaxTokenSplitterImplementation: "0x57Fed6832F12150a77D5952b49190d9447aCB5ee";
68
80
  readonly PancakeProxy: "0x20B89e7e088db3e06e0893Ce23162E475b9d8c7c";
81
+ readonly USDC: "0x754704bc059f8c67012fed69bc8a327a5aafb603";
82
+ readonly PancakeV2Factory: "0x44c90b66eb4c4f814cea6aaf2ac71ca88fa77308";
83
+ readonly PancakeV3Factory: "0x40ce898c43df68c8c4229cd5ce21d3ce1f3ddcf1";
84
+ readonly UniswapV2Factory: "0x182a927119d56008d921126764bf884221b10f59";
85
+ readonly UniswapV3Factory: "0x204faca1764b154221e35c0d20abb3c525710498";
86
+ readonly UniswapV2Router: "0x4b2ab38dbf28d31d467aa8993f6c2585981d6804";
87
+ readonly UniswapV3Router: "0xd6145b2d3f379919e8cdeda7b97e37c4b2ca9c40";
88
+ readonly UniswapV3Quoter: "0x661e93cca42afacb172121ef892830ca3b70f08d";
89
+ readonly PancakeV2Router: "0xb1bc24c34e88f7d43d5923034e3a14b24daacff9";
90
+ readonly PancakeV3Router: "0x1b81d678ffb9c0263b24a97847620c99d213eb14";
69
91
  readonly Multicall3: "0xca11bde05977b3631167028862be2a173976ca11";
70
92
  };
71
93
  readonly BASE: {
@@ -78,6 +100,10 @@ export declare const ADDRESSES: {
78
100
  readonly UniswapV3Factory: "0x33128a8fC17869897dcE68Ed026d694621f6FDfD";
79
101
  /** Uniswap V3 QuoterV2 */
80
102
  readonly UniswapV3Quoter: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a";
103
+ /** PancakeSwap V2 Router */
104
+ readonly PancakeV2Router: "0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb";
105
+ /** PancakeSwap V3 Router */
106
+ readonly PancakeV3Router: "0x678Aa4bF4E210cf2166753e054d5b7c31cc7fa86";
81
107
  readonly Multicall3: "0xcA11bde05977b3631167028862bE2a173976CA11";
82
108
  };
83
109
  readonly ARBITRUM_ONE: {
@@ -127,7 +153,7 @@ export declare const ENI_SPENDERS: {
127
153
  */
128
154
  export declare function getEniSpenders(mode?: boolean | 'all'): string[];
129
155
  export type ChainAddresses = keyof typeof ADDRESSES;
130
- export type AddressKey<C extends ChainAddresses> = keyof typeof ADDRESSES[C];
156
+ export type AddressKey<C extends ChainAddresses> = keyof (typeof ADDRESSES)[C];
131
157
  /**
132
158
  * 获取指定链的合约地址
133
159
  */
@@ -7,6 +7,8 @@
7
7
  // ============================================================================
8
8
  /** 零地址 */
9
9
  export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
10
+ /** 32 字节零哈希(bytes32 零值) */
11
+ export const ZERO_BYTES32 = '0x0000000000000000000000000000000000000000000000000000000000000000';
10
12
  /** BlockRazor Builder EOA 地址(用于 BSC 链贿赂) */
11
13
  export const BLOCKRAZOR_BUILDER_EOA = '0x1266C6bE60392A8Ff346E8d5ECCd3E69dD9c5F20';
12
14
  // ============================================================================
@@ -71,12 +73,22 @@ export const ADDRESSES = {
71
73
  // ---------- PotatoSwap DEX 合约 ----------
72
74
  /** V2 Router (标准 Uniswap V2 风格) */
73
75
  PotatoSwapV2Router: '0x881fb2f98c13d521009464e7d1cbf16e1b394e8e',
76
+ /** V2 Factory */
77
+ PotatoSwapV2Factory: '0x630DB8E822805c82Ca40a54daE02dd5aC31f7fcF',
74
78
  /** SwapRouter02 (V3 风格) */
75
79
  PotatoSwapSwapRouter02: '0xB45D0149249488333E3F3f9F359807F4b810C1FC',
76
80
  /** V3 Router */
77
81
  PotatoSwapV3Router: '0xBB069e9465BcabC4F488d21e793BDEf0F2d41D41',
78
82
  /** V3 Factory */
79
83
  PotatoSwapV3Factory: '0xa1415fAe79c4B196d087F02b8aD5a622B8A827E5',
84
+ /** QuoterV2 */
85
+ PotatoSwapQuoterV2: '0x5A6f3723346aF54a4D0693bfC1718D64d4915C3e',
86
+ /** DYORSwap V2 Factory */
87
+ DyorSwapV2Factory: '0x2CcaDb1e437AA9cDc741574bDa154686B1F04C09',
88
+ /** DYORSwap Router */
89
+ DyorSwapRouter: '0xfb001fbbace32f09cb6d3c449b935183de53ee96',
90
+ /** DYORSwap ETHBack Dividend 合约(refundETH 固定地址) */
91
+ DyorSwapEthBackDividend: '0x2e61b0b4410f6fb941d47205191cbb8963d44bcc',
80
92
  // ---------- ERC-4337 合约 ----------
81
93
  /** EntryPoint v0.6 合约地址 */
82
94
  EntryPointV06: '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789',
@@ -99,6 +111,18 @@ export const ADDRESSES = {
99
111
  TaxTokenSplitterImplementation: '0x57Fed6832F12150a77D5952b49190d9447aCB5ee',
100
112
  // ---------- PancakeSwap Proxy ----------
101
113
  PancakeProxy: '0x20B89e7e088db3e06e0893Ce23162E475b9d8c7c',
114
+ // ---------- 稳定币 ----------
115
+ USDC: '0x754704bc059f8c67012fed69bc8a327a5aafb603',
116
+ // ---------- DEX ----------
117
+ PancakeV2Factory: '0x44c90b66eb4c4f814cea6aaf2ac71ca88fa77308',
118
+ PancakeV3Factory: '0x40ce898c43df68c8c4229cd5ce21d3ce1f3ddcf1',
119
+ UniswapV2Factory: '0x182a927119d56008d921126764bf884221b10f59',
120
+ UniswapV3Factory: '0x204faca1764b154221e35c0d20abb3c525710498',
121
+ UniswapV2Router: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',
122
+ UniswapV3Router: '0xd6145b2d3f379919e8cdeda7b97e37c4b2ca9c40',
123
+ UniswapV3Quoter: '0x661e93cca42afacb172121ef892830ca3b70f08d',
124
+ PancakeV2Router: '0xb1bc24c34e88f7d43d5923034e3a14b24daacff9',
125
+ PancakeV3Router: '0x1b81d678ffb9c0263b24a97847620c99d213eb14',
102
126
  // ---------- 通用合约 ----------
103
127
  Multicall3: '0xca11bde05977b3631167028862be2a173976ca11',
104
128
  },
@@ -118,6 +142,10 @@ export const ADDRESSES = {
118
142
  UniswapV3Factory: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
119
143
  /** Uniswap V3 QuoterV2 */
120
144
  UniswapV3Quoter: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
145
+ /** PancakeSwap V2 Router */
146
+ PancakeV2Router: '0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb',
147
+ /** PancakeSwap V3 Router */
148
+ PancakeV3Router: '0x678Aa4bF4E210cf2166753e054d5b7c31cc7fa86',
121
149
  // ---------- 通用合约 ----------
122
150
  Multicall3: '0xcA11bde05977b3631167028862bE2a173976CA11',
123
151
  },
@@ -192,12 +220,21 @@ export const ENI_SPENDERS = {
192
220
  */
193
221
  export function getEniSpenders(mode = false) {
194
222
  if (mode === 'all' && ENI_SPENDERS.BATCH_ROUTER) {
195
- return [ENI_SPENDERS.DIRECT.DAOAAS_PORTAL, ENI_SPENDERS.DIRECT.DSWAP_V2_ROUTER, ENI_SPENDERS.DIRECT.IROSWAP_V2_ROUTER, ENI_SPENDERS.BATCH_ROUTER];
223
+ return [
224
+ ENI_SPENDERS.DIRECT.DAOAAS_PORTAL,
225
+ ENI_SPENDERS.DIRECT.DSWAP_V2_ROUTER,
226
+ ENI_SPENDERS.DIRECT.IROSWAP_V2_ROUTER,
227
+ ENI_SPENDERS.BATCH_ROUTER,
228
+ ];
196
229
  }
197
230
  if (mode === true && ENI_SPENDERS.BATCH_ROUTER) {
198
231
  return [ENI_SPENDERS.BATCH_ROUTER];
199
232
  }
200
- return [ENI_SPENDERS.DIRECT.DAOAAS_PORTAL, ENI_SPENDERS.DIRECT.DSWAP_V2_ROUTER, ENI_SPENDERS.DIRECT.IROSWAP_V2_ROUTER];
233
+ return [
234
+ ENI_SPENDERS.DIRECT.DAOAAS_PORTAL,
235
+ ENI_SPENDERS.DIRECT.DSWAP_V2_ROUTER,
236
+ ENI_SPENDERS.DIRECT.IROSWAP_V2_ROUTER,
237
+ ];
201
238
  }
202
239
  // ============================================================================
203
240
  // 工具函数
@@ -107,7 +107,7 @@ export declare const CHAINS: {
107
107
  };
108
108
  export declare const CHAIN_ID_MAP: Record<string, number>;
109
109
  export type ChainKey = keyof typeof CHAINS;
110
- export type ChainConfig = typeof CHAINS[ChainKey];
110
+ export type ChainConfig = (typeof CHAINS)[ChainKey];
111
111
  /**
112
112
  * 根据 chainId 获取链配置
113
113
  */
@@ -132,7 +132,7 @@ export const CHAIN_ID_MAP = {
132
132
  * 根据 chainId 获取链配置
133
133
  */
134
134
  export function getChainById(chainId) {
135
- return Object.values(CHAINS).find(c => c.chainId === chainId);
135
+ return Object.values(CHAINS).find((c) => c.chainId === chainId);
136
136
  }
137
137
  /**
138
138
  * 根据 chainId 获取链名称
@@ -63,7 +63,7 @@ export declare const V3_FEE_TIERS: {
63
63
  readonly HIGH: 10000;
64
64
  };
65
65
  export type GasLimitKey = keyof typeof GAS_LIMITS;
66
- export type V3FeeTier = typeof V3_FEE_TIERS[keyof typeof V3_FEE_TIERS];
66
+ export type V3FeeTier = (typeof V3_FEE_TIERS)[keyof typeof V3_FEE_TIERS];
67
67
  /**
68
68
  * 根据链和交易类型计算 gas limit
69
69
  */
@@ -90,9 +90,7 @@ export function calculateGasLimit(chainId, isNative, hasHops = false, hopCount =
90
90
  }
91
91
  // 有多跳时,基础 gas + 每跳额外 gas
92
92
  if (hasHops && hopCount > 0) {
93
- const hopGas = isNative
94
- ? GAS_LIMITS.NATIVE_TRANSFER
95
- : GAS_LIMITS.ERC20_TRANSFER;
93
+ const hopGas = isNative ? GAS_LIMITS.NATIVE_TRANSFER : GAS_LIMITS.ERC20_TRANSFER;
96
94
  return GAS_LIMITS.TRADE + hopGas * BigInt(hopCount);
97
95
  }
98
96
  // 普通转账
@@ -108,9 +106,7 @@ export function calculateGasLimit(chainId, isNative, hasHops = false, hopCount =
108
106
  */
109
107
  export function getTransferGasLimit(chainId, isNative) {
110
108
  if (isNative) {
111
- return chainId === CHAINS.XLAYER.chainId
112
- ? GAS_LIMITS.XLAYER_NATIVE_TRANSFER
113
- : GAS_LIMITS.NATIVE_TRANSFER;
109
+ return chainId === CHAINS.XLAYER.chainId ? GAS_LIMITS.XLAYER_NATIVE_TRANSFER : GAS_LIMITS.NATIVE_TRANSFER;
114
110
  }
115
111
  return GAS_LIMITS.ERC20_TRANSFER;
116
112
  }
@@ -2,7 +2,7 @@
2
2
  * 统一常量导出
3
3
  *
4
4
  * 使用示例:
5
- * import { CHAINS, GAS_LIMITS, ADDRESSES, PROFIT_CONFIG } from './shared/constants';
5
+ * import { CHAINS, GAS_LIMITS, ADDRESSES, PROFIT_CONFIG } from '../../core/constants/shared/constants';
6
6
  *
7
7
  * const chainId = CHAINS.BSC.chainId;
8
8
  * const gasLimit = GAS_LIMITS.NATIVE_TRANSFER;
@@ -10,5 +10,8 @@
10
10
  */
11
11
  export { CHAINS, CHAIN_ID_MAP, getChainById, getChainName, getDefaultRpcUrl, isKnownChain, isBscChain, isXLayerChain, isMonadChain, isEniChain, getConfirmationTimeout, type ChainKey, type ChainConfig, } from './chains.js';
12
12
  export { GAS_LIMITS, GAS_CONFIG, V3_FEE_TIERS, calculateGasLimit, getTransferGasLimit, type GasLimitKey, type V3FeeTier, } from './gas.js';
13
- export { ZERO_ADDRESS, BLOCKRAZOR_BUILDER_EOA, ADDRESSES, getAddress, getWrappedNativeAddress, getMulticall3Address, getFlapPortalAddress, isZeroAddress, isNativeToken, ENI_SPENDERS, getEniSpenders, type ChainAddresses, type AddressKey, } from './addresses.js';
13
+ export { QUOTE_CONFIG, QUOTE_V3_FEE_TIERS, type QuoteConfigChain } from './quote.js';
14
+ /** Flap 链标识(与 `FlapPortal` 一致,供子路径 `./constants` 使用) */
15
+ export type { FlapChain } from '../../domains/flap/portal.js';
16
+ export { ZERO_ADDRESS, ZERO_BYTES32, BLOCKRAZOR_BUILDER_EOA, ADDRESSES, getAddress, getWrappedNativeAddress, getMulticall3Address, getFlapPortalAddress, isZeroAddress, isNativeToken, ENI_SPENDERS, getEniSpenders, type ChainAddresses, type AddressKey, } from './addresses.js';
14
17
  export { PROFIT_CONFIG, getProfitRecipient, getAllProfitRecipients, getProfitRateBps, calculateProfitAmount, calculateProfitHopGasCost, type ProfitRateKey, TRANSFER_FEE_PER_ADDRESS, getTransferFeePerAddress, calculateTransferFee, } from './profit.js';
@@ -2,7 +2,7 @@
2
2
  * 统一常量导出
3
3
  *
4
4
  * 使用示例:
5
- * import { CHAINS, GAS_LIMITS, ADDRESSES, PROFIT_CONFIG } from './shared/constants';
5
+ * import { CHAINS, GAS_LIMITS, ADDRESSES, PROFIT_CONFIG } from '../../core/constants/shared/constants';
6
6
  *
7
7
  * const chainId = CHAINS.BSC.chainId;
8
8
  * const gasLimit = GAS_LIMITS.NATIVE_TRANSFER;
@@ -16,10 +16,11 @@ export { CHAINS, CHAIN_ID_MAP, getChainById, getChainName, getDefaultRpcUrl, isK
16
16
  // Gas 常量
17
17
  // ============================================================================
18
18
  export { GAS_LIMITS, GAS_CONFIG, V3_FEE_TIERS, calculateGasLimit, getTransferGasLimit, } from './gas.js';
19
+ export { QUOTE_CONFIG, QUOTE_V3_FEE_TIERS } from './quote.js';
19
20
  // ============================================================================
20
21
  // 合约地址
21
22
  // ============================================================================
22
- export { ZERO_ADDRESS, BLOCKRAZOR_BUILDER_EOA, ADDRESSES, getAddress, getWrappedNativeAddress, getMulticall3Address, getFlapPortalAddress, isZeroAddress, isNativeToken, ENI_SPENDERS, getEniSpenders, } from './addresses.js';
23
+ export { ZERO_ADDRESS, ZERO_BYTES32, BLOCKRAZOR_BUILDER_EOA, ADDRESSES, getAddress, getWrappedNativeAddress, getMulticall3Address, getFlapPortalAddress, isZeroAddress, isNativeToken, ENI_SPENDERS, getEniSpenders, } from './addresses.js';
23
24
  // ============================================================================
24
25
  // 利润配置
25
26
  // ============================================================================
@@ -0,0 +1,30 @@
1
+ /** DEX 报价链配置(V2 Router / V3 Quoter / 包装原生币 / 稳定币) */
2
+ export declare const QUOTE_CONFIG: {
3
+ readonly BSC: {
4
+ readonly v2Router: "0x10ED43C718714eb63d5aA57B78B54704E256024E";
5
+ readonly v3Quoter: "0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997";
6
+ readonly wrappedNative: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
7
+ readonly stableCoins: readonly ["0x55d398326f99059fF775485246999027B3197955", "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d", "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56"];
8
+ };
9
+ readonly MONAD: {
10
+ readonly v2Router: "0xb1bc24c34e88f7d43d5923034e3a14b24daacff9";
11
+ readonly v3Quoter: "";
12
+ readonly wrappedNative: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a";
13
+ readonly stableCoins: readonly [];
14
+ };
15
+ readonly XLAYER: {
16
+ readonly v2Router: "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
17
+ readonly v3Quoter: "0x5A6f3723346aF54a4D0693bfC1718D64d4915C3e";
18
+ readonly wrappedNative: "0xe538905cf8410324e03a5a23c1c177a474d59b2b";
19
+ readonly stableCoins: readonly ["0x1E4a5963aBFD975d8c9021ce480b42188849D41d", "0x74b7f16337b8972027f6196a17a631ac6de26d22", "0x779ded0c9e1022225f8e0630b35a9b54be713736"];
20
+ };
21
+ readonly ENI: {
22
+ readonly v2Router: "0x97ed8be49d9a8b86247090aa41e908e76b8fcf22";
23
+ readonly v3Quoter: "";
24
+ readonly wrappedNative: "0x6d1e851446f4d004ae2a72f9afed85e8829a205e";
25
+ readonly stableCoins: readonly ["0xDC1a8A35b0BaA3229b13f348ED708a2fd50b5e3a", "0xaFF944b96c1BAEA587159ec446280E468B32ee15"];
26
+ };
27
+ };
28
+ /** V3 报价尝试费率列表(与 `gas.V3_FEE_TIERS` 命名对象区分) */
29
+ export declare const QUOTE_V3_FEE_TIERS: readonly [100, 500, 2500, 10000];
30
+ export type QuoteConfigChain = keyof typeof QUOTE_CONFIG;
@@ -0,0 +1,37 @@
1
+ /** DEX 报价链配置(V2 Router / V3 Quoter / 包装原生币 / 稳定币) */
2
+ export const QUOTE_CONFIG = {
3
+ BSC: {
4
+ v2Router: '0x10ED43C718714eb63d5aA57B78B54704E256024E',
5
+ v3Quoter: '0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997',
6
+ wrappedNative: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
7
+ stableCoins: [
8
+ '0x55d398326f99059fF775485246999027B3197955',
9
+ '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d',
10
+ '0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56',
11
+ ],
12
+ },
13
+ MONAD: {
14
+ v2Router: '0xb1bc24c34e88f7d43d5923034e3a14b24daacff9',
15
+ v3Quoter: '',
16
+ wrappedNative: '0x3bd359c1119da7da1d913d1c4d2b7c461115433a',
17
+ stableCoins: [],
18
+ },
19
+ XLAYER: {
20
+ v2Router: '0x881fb2f98c13d521009464e7d1cbf16e1b394e8e',
21
+ v3Quoter: '0x5A6f3723346aF54a4D0693bfC1718D64d4915C3e',
22
+ wrappedNative: '0xe538905cf8410324e03a5a23c1c177a474d59b2b',
23
+ stableCoins: [
24
+ '0x1E4a5963aBFD975d8c9021ce480b42188849D41d',
25
+ '0x74b7f16337b8972027f6196a17a631ac6de26d22',
26
+ '0x779ded0c9e1022225f8e0630b35a9b54be713736',
27
+ ],
28
+ },
29
+ ENI: {
30
+ v2Router: '0x97ed8be49d9a8b86247090aa41e908e76b8fcf22',
31
+ v3Quoter: '',
32
+ wrappedNative: '0x6d1e851446f4d004ae2a72f9afed85e8829a205e',
33
+ stableCoins: ['0xDC1a8A35b0BaA3229b13f348ED708a2fd50b5e3a', '0xaFF944b96c1BAEA587159ec446280E468B32ee15'],
34
+ },
35
+ };
36
+ /** V3 报价尝试费率列表(与 `gas.V3_FEE_TIERS` 命名对象区分) */
37
+ export const QUOTE_V3_FEE_TIERS = [100, 500, 2500, 10000];
@@ -0,0 +1,6 @@
1
+ export declare function getDeadline(minutes?: number): number;
2
+ export declare function encodeV3Path(tokens: string[], fees: number[]): string;
3
+ export declare function decodeV3Path(path: string): {
4
+ tokens: string[];
5
+ fees: number[];
6
+ };
@@ -0,0 +1,35 @@
1
+ import { GAS_CONFIG } from '../constants/gas.js';
2
+ export function getDeadline(minutes = GAS_CONFIG.DEFAULT_DEADLINE_MINUTES) {
3
+ return Math.floor(Date.now() / 1000) + 60 * minutes;
4
+ }
5
+ export function encodeV3Path(tokens, fees) {
6
+ if (tokens.length < 2) {
7
+ throw new Error('V3 path 需要至少 2 个代币');
8
+ }
9
+ if (fees.length !== tokens.length - 1) {
10
+ throw new Error(`费率数量 (${fees.length}) 必须等于代币数量 - 1 (${tokens.length - 1})`);
11
+ }
12
+ let path = '0x';
13
+ for (let i = 0; i < tokens.length; i++) {
14
+ path += tokens[i].slice(2).toLowerCase().padStart(40, '0');
15
+ if (i < fees.length) {
16
+ path += fees[i].toString(16).padStart(6, '0');
17
+ }
18
+ }
19
+ return path;
20
+ }
21
+ export function decodeV3Path(path) {
22
+ const cleanPath = path.startsWith('0x') ? path.slice(2) : path;
23
+ const tokens = [];
24
+ const fees = [];
25
+ let offset = 0;
26
+ while (offset < cleanPath.length) {
27
+ tokens.push('0x' + cleanPath.slice(offset, offset + 40));
28
+ offset += 40;
29
+ if (offset < cleanPath.length) {
30
+ fees.push(parseInt(cleanPath.slice(offset, offset + 6), 16));
31
+ offset += 6;
32
+ }
33
+ }
34
+ return { tokens, fees };
35
+ }
@@ -0,0 +1,7 @@
1
+ import { JsonRpcProvider } from 'ethers';
2
+ /**
3
+ * 获取 ERC20 代币精度(带缓存)
4
+ */
5
+ export declare function getErc20Decimals(provider: JsonRpcProvider, token: string, chainId?: number): Promise<number>;
6
+ /** @deprecated 使用 getErc20Decimals */
7
+ export declare const getErc20DecimalsMerkle: typeof getErc20Decimals;
@@ -0,0 +1,24 @@
1
+ import { ethers } from 'ethers';
2
+ const decimalsCache = new Map();
3
+ /**
4
+ * 获取 ERC20 代币精度(带缓存)
5
+ */
6
+ export async function getErc20Decimals(provider, token, chainId) {
7
+ const resolvedChainId = chainId ?? Number((await provider.getNetwork()).chainId);
8
+ const key = `${resolvedChainId}_${token.toLowerCase()}`;
9
+ if (decimalsCache.has(key))
10
+ return decimalsCache.get(key);
11
+ try {
12
+ const erc20 = new ethers.Contract(token, ['function decimals() view returns (uint8)'], provider);
13
+ const d = await erc20.decimals();
14
+ if (!Number.isFinite(d) || d < 0 || d > 36)
15
+ return 18;
16
+ decimalsCache.set(key, d);
17
+ return d;
18
+ }
19
+ catch {
20
+ return 18;
21
+ }
22
+ }
23
+ /** @deprecated 使用 getErc20Decimals */
24
+ export const getErc20DecimalsMerkle = getErc20Decimals;
@@ -1,44 +1,31 @@
1
1
  import { JsonRpcProvider } from 'ethers';
2
- import { NonceManager } from './bundle-helpers.js';
3
- export type EnsureAllowanceResult = {
4
- alreadyApproved: boolean;
5
- currentAllowance: bigint;
6
- requiredAllowance: bigint;
7
- txReceipt?: any;
8
- };
9
- export type EnsureAllowanceBatchItemResult = EnsureAllowanceResult & {
10
- owner: string;
11
- };
2
+ import type { EnsureAllowanceResult, EnsureAllowanceBatchItemResult, ApproveTokenBatchParams, ApproveTokenBatchRawParams, ApproveTokenBatchResult, ApproveTokenBatchSignResult } from './types-erc20.js';
3
+ export type { EnsureAllowanceResult, EnsureAllowanceBatchItemResult, ApproveTokenBatchParams, ApproveTokenBatchRawParams, ApproveTokenBatchResult, ApproveTokenBatchSignResult, } from './types-erc20.js';
4
+ type SellApprovalChain = 'BSC' | 'BASE' | 'ARBITRUM_ONE';
12
5
  /**
13
6
  * 检查代币授权状态 - Four.meme V1(只读,不发送交易)
14
- * @returns 是否已授权足够的额度
15
7
  */
16
- export declare function checkSellApprovalV1(chain: 'BSC' | 'BASE' | 'ARBITRUM_ONE', rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{
8
+ export declare function checkSellApprovalV1(chain: SellApprovalChain, rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{
17
9
  isApproved: boolean;
18
10
  currentAllowance: bigint;
19
11
  requiredAllowance: bigint;
20
12
  }>;
21
13
  /**
22
14
  * 确保代币已授权给 Four.meme V1 代理合约
23
- * 用于 Four.meme V1 代币的卖出操作
24
- * @returns 授权结果,包含是否已授权、当前额度、交易回执等信息
25
15
  */
26
- export declare function ensureSellApprovalV1(chain: 'BSC' | 'BASE' | 'ARBITRUM_ONE', rpcUrl: string, privateKey: string, token: string, owner: string, amount: bigint): Promise<EnsureAllowanceResult>;
16
+ export declare function ensureSellApprovalV1(chain: SellApprovalChain, rpcUrl: string, privateKey: string, token: string, owner: string, amount: bigint): Promise<EnsureAllowanceResult>;
27
17
  /**
28
18
  * 检查代币授权状态 - Four.meme V2(只读,不发送交易)
29
- * @returns 是否已授权足够的额度
30
19
  */
31
- export declare function checkSellApprovalV2(chain: 'BSC' | 'BASE' | 'ARBITRUM_ONE', rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{
20
+ export declare function checkSellApprovalV2(chain: SellApprovalChain, rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{
32
21
  isApproved: boolean;
33
22
  currentAllowance: bigint;
34
23
  requiredAllowance: bigint;
35
24
  }>;
36
25
  /**
37
26
  * 确保代币已授权给 Four.meme V2 代理合约
38
- * 用于 Four.meme V2 代币的卖出操作
39
- * @returns 授权结果,包含是否已授权、当前额度、交易回执等信息
40
27
  */
41
- export declare function ensureSellApprovalV2(chain: 'BSC' | 'BASE' | 'ARBITRUM_ONE', rpcUrl: string, privateKey: string, token: string, owner: string, amount: bigint): Promise<EnsureAllowanceResult>;
28
+ export declare function ensureSellApprovalV2(chain: SellApprovalChain, rpcUrl: string, privateKey: string, token: string, owner: string, amount: bigint): Promise<EnsureAllowanceResult>;
42
29
  /**
43
30
  * 检查代币授权状态 - Four.meme(通用,默认使用 V2)
44
31
  * @deprecated 建议使用明确版本的方法:checkSellApprovalV1 或 checkSellApprovalV2
@@ -161,75 +148,6 @@ export declare function checkAllowanceBatch(chain: 'BSC' | 'BASE' | 'XLAYER' | '
161
148
  * @returns 每个地址的授权额度数组
162
149
  */
163
150
  export declare function checkAllowanceBatchRaw(rpcUrl: string, tokenAddress: string, ownerAddresses: string[], spenderAddress: string): Promise<bigint[]>;
164
- export type ApproveTokenBatchParams = {
165
- chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD';
166
- platform: 'flap' | 'four' | 'pancake-v2' | 'pancake-v3';
167
- rpcUrl: string;
168
- privateKeys: string[];
169
- tokenAddress: string;
170
- amounts: (bigint | 'max')[];
171
- /** 是否只签名不提交(默认 false,直接发送交易) */
172
- signOnly?: boolean;
173
- /** Gas Price(可选,单位 Gwei,signOnly=true 时生效) */
174
- gasPriceGwei?: number;
175
- /** Gas Limit(可选,默认 100000,signOnly=true 时生效) */
176
- gasLimit?: number;
177
- /** 链ID(可选,默认56=BSC,signOnly=true 时生效) */
178
- chainId?: number;
179
- /** 跳过合约地址验证(可选,用于某些特殊场景) */
180
- skipValidation?: boolean;
181
- };
182
- export type ApproveTokenBatchRawParams = {
183
- rpcUrl: string;
184
- privateKeys: string[];
185
- tokenAddress: string;
186
- spenderAddress: string;
187
- amounts: (bigint | 'max')[];
188
- /** 是否只签名不提交(默认 false,直接发送交易) */
189
- signOnly?: boolean;
190
- /** Gas Price(可选,单位 Gwei,signOnly=true 时生效) */
191
- gasPriceGwei?: number;
192
- /** Gas Limit(可选,默认 100000,signOnly=true 时生效) */
193
- gasLimit?: number;
194
- /** 链ID(可选,默认56=BSC,signOnly=true 时生效) */
195
- chainId?: number;
196
- /** 外部 NonceManager(可选,用于同一钱包签多笔交易时共享 nonce 状态) */
197
- nonceManager?: NonceManager;
198
- /** 跳过合约地址验证(可选,用于某些特殊场景,如 RPC 返回异常时) */
199
- skipValidation?: boolean;
200
- };
201
- /** signOnly=false 时的返回结果(直接发送交易) */
202
- export type ApproveTokenBatchResult = {
203
- success: boolean;
204
- approvedCount: number;
205
- results: Array<{
206
- owner: string;
207
- alreadyApproved: boolean;
208
- currentAllowance: bigint;
209
- requiredAllowance: bigint;
210
- txHash?: string;
211
- error?: string;
212
- }>;
213
- };
214
- /** signOnly=true 时的返回结果(仅签名) */
215
- export type ApproveTokenBatchSignResult = {
216
- /** 需要授权的签名交易数组(已过滤掉已授权的钱包) */
217
- signedTransactions: string[];
218
- /** 详细结果 */
219
- results: Array<{
220
- owner: string;
221
- /** 是否已授权(无需发送交易) */
222
- alreadyApproved: boolean;
223
- currentAllowance: bigint;
224
- requiredAllowance: bigint;
225
- /** 签名交易(仅当 alreadyApproved=false 时有值) */
226
- signedTx?: string;
227
- }>;
228
- /** 需要授权的钱包数量 */
229
- needApproveCount: number;
230
- /** 已授权的钱包数量 */
231
- alreadyApprovedCount: number;
232
- };
233
151
  /**
234
152
  * ✅ 智能路由:批量授权 ERC20 代币(自动选择 spender,自动检查,只在不足时才发送交易)
235
153
  *