four-flap-meme-sdk 2.2.8 → 2.2.11

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 +87 -20
  142. package/dist/index.js +217 -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 +254 -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 -1
  166. package/dist/shared/flap/constants.js +4 -3
  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 -4
  171. package/dist/shared/flap/index.js +5 -4
  172. package/dist/shared/flap/launch-v6.d.ts +127 -0
  173. package/dist/shared/flap/launch-v6.js +123 -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 +151 -142
  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 +86 -86
  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-create-token.d.ts +19 -37
  199. package/dist/shared/flap/portal-create-token.js +124 -121
  200. package/dist/shared/flap/portal.d.ts +2 -1
  201. package/dist/shared/flap/portal.js +28 -36
  202. package/dist/shared/flap/vanity.d.ts +6 -6
  203. package/dist/shared/flap/vanity.js +21 -15
  204. package/dist/shared/flap/vault.d.ts +93 -25
  205. package/dist/shared/flap/vault.js +126 -75
  206. package/dist/shared/four/tax-token.d.ts +1 -1
  207. package/dist/shared/four/tax-token.js +7 -27
  208. package/dist/shared/index.d.ts +0 -6
  209. package/dist/shared/index.js +0 -4
  210. package/dist/utils/airdrop-sweep.d.ts +76 -4
  211. package/dist/utils/airdrop-sweep.js +55 -42
  212. package/dist/utils/bundle-helpers.d.ts +243 -9
  213. package/dist/utils/bundle-helpers.js +584 -10
  214. package/dist/utils/constants.d.ts +61 -5
  215. package/dist/utils/constants.js +80 -5
  216. package/dist/utils/contract-factory.d.ts +4 -2
  217. package/dist/utils/contract-factory.js +18 -25
  218. package/dist/utils/erc20.d.ts +89 -7
  219. package/dist/utils/erc20.js +125 -94
  220. package/dist/utils/errors.d.ts +1 -12
  221. package/dist/utils/errors.js +1 -60
  222. package/dist/utils/holders-maker.d.ts +138 -2
  223. package/dist/utils/holders-maker.js +661 -26
  224. package/dist/utils/lp-inspect.d.ts +112 -2
  225. package/dist/utils/lp-inspect.js +223 -73
  226. package/dist/utils/mpcExclusive.d.ts +5 -2
  227. package/dist/utils/mpcExclusive.js +3 -4
  228. package/dist/utils/private-sale.d.ts +58 -2
  229. package/dist/utils/private-sale.js +15 -4
  230. package/dist/utils/provider-factory.d.ts +0 -4
  231. package/dist/utils/provider-factory.js +0 -10
  232. package/dist/utils/quote-helpers.d.ts +45 -4
  233. package/dist/utils/quote-helpers.js +74 -17
  234. package/dist/utils/stealth-transfer.d.ts +28 -2
  235. package/dist/utils/stealth-transfer.js +15 -31
  236. package/dist/utils/swap-helpers.d.ts +15 -2
  237. package/dist/utils/swap-helpers.js +11 -6
  238. package/dist/utils/wallet.d.ts +25 -2
  239. package/dist/utils/wallet.js +10 -13
  240. package/package.json +4 -160
  241. package/dist/__tests__/subpath-exports.test.d.ts +0 -1
  242. package/dist/__tests__/subpath-exports.test.js +0 -64
  243. package/dist/abis/common.d.ts +0 -85
  244. package/dist/abis/common.js +0 -264
  245. package/dist/abis/contracts/TaxToken.json +0 -969
  246. package/dist/abis/contracts/TokenManager2.json +0 -136
  247. package/dist/abis/contracts/index.d.ts +0 -5
  248. package/dist/abis/contracts/index.js +0 -5
  249. package/dist/abis/flap/index.d.ts +0 -3
  250. package/dist/abis/flap/index.js +0 -3
  251. package/dist/abis/flap/portal-events.d.ts +0 -6
  252. package/dist/abis/flap/portal-events.js +0 -17
  253. package/dist/abis/flap/portal.d.ts +0 -6
  254. package/dist/abis/flap/portal.js +0 -37
  255. package/dist/abis/flap/vault.d.ts +0 -171
  256. package/dist/abis/flap/vault.js +0 -91
  257. package/dist/abis/index.d.ts +0 -8
  258. package/dist/abis/index.js +0 -11
  259. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
  260. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  261. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
  262. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  263. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
  264. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  265. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  266. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  267. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  268. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  269. package/dist/bundle-core/config-helpers.d.ts +0 -36
  270. package/dist/bundle-core/config-helpers.js +0 -57
  271. package/dist/bundle-core/errors.d.ts +0 -50
  272. package/dist/bundle-core/errors.js +0 -35
  273. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
  274. package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
  275. package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
  276. package/dist/bundle-core/four-meme/core-helpers.js +0 -40
  277. package/dist/bundle-core/four-meme/core.d.ts +0 -4
  278. package/dist/bundle-core/four-meme/core.js +0 -515
  279. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
  280. package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
  281. package/dist/bundle-core/four-meme/private.d.ts +0 -27
  282. package/dist/bundle-core/four-meme/private.js +0 -465
  283. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
  284. package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
  285. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
  286. package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
  287. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
  288. package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
  289. package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
  290. package/dist/bundle-core/four-meme/swap-internal.js +0 -18
  291. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
  292. package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
  293. package/dist/bundle-core/four-meme/swap.d.ts +0 -17
  294. package/dist/bundle-core/four-meme/swap.js +0 -505
  295. package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
  296. package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
  297. package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
  298. package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
  299. package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
  300. package/dist/bundle-core/four-meme/types/index.js +0 -1
  301. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
  302. package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
  303. package/dist/bundle-core/four-meme/types.d.ts +0 -1
  304. package/dist/bundle-core/four-meme/types.js +0 -1
  305. package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
  306. package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
  307. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
  308. package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
  309. package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
  310. package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
  311. package/dist/bundle-core/index.d.ts +0 -8
  312. package/dist/bundle-core/index.js +0 -8
  313. package/dist/bundle-core/internal.d.ts +0 -21
  314. package/dist/bundle-core/internal.js +0 -182
  315. package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
  316. package/dist/bundle-core/sign-context-helpers.js +0 -67
  317. package/dist/bundle-core/submit.d.ts +0 -293
  318. package/dist/bundle-core/submit.js +0 -727
  319. package/dist/bundle-core/types/index.d.ts +0 -8
  320. package/dist/bundle-core/types/index.js +0 -1
  321. package/dist/bundle-core/types.d.ts +0 -1
  322. package/dist/bundle-core/types.js +0 -1
  323. package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
  324. package/dist/chains/bsc/four/utils-disperse.js +0 -1
  325. package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
  326. package/dist/chains/bsc/four/utils-pairwise.js +0 -1
  327. package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
  328. package/dist/chains/bsc/four/utils-sweep.js +0 -1
  329. package/dist/chains/bsc/iro.d.ts +0 -5
  330. package/dist/chains/bsc/iro.js +0 -4
  331. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
  332. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
  333. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
  334. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
  335. package/dist/chains/eni/flat-aliases.d.ts +0 -10
  336. package/dist/chains/eni/flat-aliases.js +0 -8
  337. package/dist/chains/eni/submit.d.ts +0 -43
  338. package/dist/chains/eni/submit.js +0 -286
  339. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
  340. package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
  341. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
  342. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
  343. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
  344. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
  345. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
  346. package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
  347. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
  348. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
  349. package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
  350. package/dist/contracts/tm-bundle-helpers.js +0 -72
  351. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  352. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  353. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  354. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  355. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  356. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  357. package/dist/dex/direct-router-helpers.d.ts +0 -264
  358. package/dist/dex/direct-router-helpers.js +0 -539
  359. package/dist/dex/types.d.ts +0 -81
  360. package/dist/dex/types.js +0 -1
  361. package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
  362. package/dist/exports/root-bundle-and-tooling.js +0 -30
  363. package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
  364. package/dist/exports/root-eni-and-bsc-iro.js +0 -66
  365. package/dist/exports/root-foundations.d.ts +0 -35
  366. package/dist/exports/root-foundations.js +0 -70
  367. package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
  368. package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
  369. package/dist/flap/index.d.ts +0 -10
  370. package/dist/flap/index.js +0 -8
  371. package/dist/flows/index.d.ts +0 -1
  372. package/dist/flows/index.js +0 -1
  373. package/dist/merkle/index.d.ts +0 -12
  374. package/dist/merkle/index.js +0 -11
  375. package/dist/shared/clients/index.d.ts +0 -8
  376. package/dist/shared/clients/index.js +0 -8
  377. package/dist/shared/constants/quote.d.ts +0 -30
  378. package/dist/shared/constants/quote.js +0 -37
  379. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
  380. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
  381. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
  382. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
  383. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
  384. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
  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
package/README.en.md CHANGED
@@ -29,41 +29,6 @@ Optional (use Pinata for IPFS uploads)
29
29
  npm i pinata
30
30
  ```
31
31
 
32
- ## Package entry points (subpath imports)
33
-
34
- The library is published as **ESM** (`dist` is produced by `npm run build`). The root import remains the default for full API access. For smaller dependency graphs, Node and bundlers that honor `package.json` **`exports`** may import:
35
-
36
- **When to use which**
37
-
38
- - **Root**: default for apps and examples that touch more than one SDK area.
39
- - **Subpaths**: for scripts or libraries that intentionally depend on only one slice (constants, ABIs, error utilities, Merkle clients, etc.).
40
-
41
- | Subpath | Purpose |
42
- |---------|---------|
43
- | `four-flap-meme-sdk` | Main entry — full surface |
44
- | `four-flap-meme-sdk/chains` | Chain namespaces and helpers |
45
- | `four-flap-meme-sdk/shared` | Cross-cutting modules: constants, `foundation`, `clients`, `FourUtils` |
46
- | `four-flap-meme-sdk/clients` | HTTP / Merkle-related clients |
47
- | `four-flap-meme-sdk/dex` | DEX helpers |
48
- | `four-flap-meme-sdk/constants` | Chain config, gas, addresses, profit settings |
49
- | `four-flap-meme-sdk/abis` | TokenManager JSON ABIs, common fragments, Flap ABIs (same as `src/abis` barrel) |
50
- | `four-flap-meme-sdk/foundation` | Unknown-error normalization and optional loggers |
51
- | `four-flap-meme-sdk/bundle-core` | Shared bundle core: `internal`, `submit`, `config-helpers` |
52
- | `four-flap-meme-sdk/flows` | High-level flows (e.g. `createTokenFlow`) |
53
-
54
- > **v2.0.0**: ambiguous root exports removed — see [docs/MIGRATION_EXPORTS.zh-CN.md](./docs/MIGRATION_EXPORTS.zh-CN.md).
55
-
56
- ```typescript
57
- import { CHAINS, GAS_LIMITS } from 'four-flap-meme-sdk/constants';
58
- import { TokenManager } from 'four-flap-meme-sdk/abis';
59
- import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
60
- ```
61
-
62
- ### Documentation: alignment & backends
63
-
64
- - **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — audit-style checklist (language: Chinese).
65
- - **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — choosing Merkle, BlockRazor, direct RPC, ENI, 48.club, etc.
66
-
67
32
  ---
68
33
 
69
34
  ## Table of Contents
@@ -3538,7 +3503,7 @@ const permitData = await buildPermitPiggybackAuto(
3538
3503
  The SDK provides pre-configured addresses for all supported networks:
3539
3504
 
3540
3505
  ```typescript
3541
- import { CHAINS } from 'four-flap-meme-sdk';
3506
+ import { CHAIN } from 'four-flap-meme-sdk';
3542
3507
 
3543
3508
  // Use chain enum when calling SDK methods (addresses are handled internally)
3544
3509
  // Example:
@@ -3547,11 +3512,11 @@ import { CHAINS } from 'four-flap-meme-sdk';
3547
3512
  // await tryBuy('BSC', rpcUrl, token, amount, funds);
3548
3513
 
3549
3514
  // Chain information
3550
- console.log(CHAINS.BSC.chainId); // 56
3551
- console.log(CHAINS.BASE.chainId); // 8453
3552
- console.log(CHAINS.XLAYER.chainId); // 196
3553
- console.log(CHAINS.MORPH.chainId); // 2818
3554
- console.log(CHAINS.ARBITRUM_ONE.chainId); // 42161
3515
+ console.log(CHAIN.BSC.chainId); // 56
3516
+ console.log(CHAIN.BASE.chainId); // 8453
3517
+ console.log(CHAIN.XLAYER.chainId); // 196
3518
+ console.log(CHAIN.MORPH.chainId); // 2818
3519
+ console.log(CHAIN.ARBITRUM_ONE.chainId); // 42161
3555
3520
  ```
3556
3521
 
3557
3522
  ---
package/README.md CHANGED
@@ -20,37 +20,6 @@ npm i four-flap-meme-sdk ethers
20
20
 
21
21
  **要求**:Node.js >= 18, ESM, ethers v6
22
22
 
23
- ### Package entry points (subpath imports)
24
-
25
- The package ships **ESM** with `exports` in `package.json`. Use the default root import for full API coverage; use subpaths to narrow what your resolver loads (requires tooling that respects `exports`).
26
-
27
- **When to use which**
28
-
29
- - **Root import**: matches the docs; use when you need multiple surfaces (four.meme, Flap, bundles, several chains).
30
- - **Subpaths**: use in scripts, internal packages, or constrained runtimes when you only need one vertical slice (constants, ABIs, error helpers, HTTP clients, etc.).
31
-
32
- | Subpath | Purpose |
33
- |---------|---------|
34
- | `four-flap-meme-sdk` | Main entry — full surface (recommended default) |
35
- | `four-flap-meme-sdk/chains` | Per-chain namespaces and chain helpers |
36
- | `four-flap-meme-sdk/shared` | Shared layer: constants, `foundation`, `clients`, `FourUtils`, etc. |
37
- | `four-flap-meme-sdk/clients` | HTTP / bundle / infra clients |
38
- | `four-flap-meme-sdk/dex` | DEX helpers and types |
39
- | `four-flap-meme-sdk/constants` | Chain IDs, gas limits, addresses, profit helpers — smallest config-only slice |
40
- | `four-flap-meme-sdk/abis` | Compiled contract JSON ABIs, shared fragment ABIs, Flap-specific ABIs (`src/abis` entry) |
41
- | `four-flap-meme-sdk/foundation` | `normalizeUnknownError`, `getErrorMessageFromUnknown`, injectable `SdkLogger` — no domain logic |
42
-
43
- ```typescript
44
- import { CHAINS, ADDRESSES } from 'four-flap-meme-sdk/constants';
45
- import { TokenManager } from 'four-flap-meme-sdk/abis';
46
- import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
47
- ```
48
-
49
- ### Docs: architecture & submission paths
50
-
51
- - **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — audit-style checklist (what is done vs backlog).
52
- - **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — when to use Merkle vs BlockRazor vs direct RPC vs ENI / 48.club, etc.
53
-
54
23
  ## 获取 Merkle API Key
55
24
 
56
25
  从 [Merkle.io](https://merkle.io) 获取免费 API Key,用于 Bundle 服务。
package/README.zh-CN.md CHANGED
@@ -29,41 +29,6 @@ npm i four-flap-meme-sdk ethers
29
29
  npm i pinata
30
30
  ```
31
31
 
32
- ## 包入口与子路径(按需引用)
33
-
34
- 发布后包内为 **ESM**,`dist` 由 `npm run build` 生成。多数场景继续使用主入口即可;若希望缩小解析范围或只做配置层依赖,可选用 `package.json` 的 **`exports`** 子路径(需 Node/打包工具识别 `exports`)。
35
-
36
- **如何选择**
37
-
38
- - **主入口**:与文档示例一致;需要 four / Flap、Bundle、多链等组合能力时优先用它。
39
- - **子路径**:在脚本、内部库或边缘运行时**只要某一竖切**(仅常量、仅 ABI、仅错误与日志、仅 HTTP 客户端等)时使用,以收敛依赖与解析面。
40
-
41
- | 子路径 | 说明 |
42
- |--------|------|
43
- | `four-flap-meme-sdk` | 主入口,全量导出(默认推荐) |
44
- | `four-flap-meme-sdk/chains` | 各链命名空间与链相关工具 |
45
- | `four-flap-meme-sdk/shared` | 横向能力:常量、`foundation`、`clients`、`FourUtils` 等 |
46
- | `four-flap-meme-sdk/clients` | Merkle / HTTP 等与 I/O 相关的客户端封装 |
47
- | `four-flap-meme-sdk/dex` | DEX 路由与相关类型/辅助函数 |
48
- | `four-flap-meme-sdk/constants` | 链 ID、Gas、常用地址、利润配置等常量(等价于深入 `shared` 中的常量模块,但更轻依赖面) |
49
- | `four-flap-meme-sdk/abis` | 合约 JSON ABI(TokenManager 等)、公共片段 ABI、Flap 相关 ABI(与 `src/abis` 入口一致) |
50
- | `four-flap-meme-sdk/foundation` | 错误规范化(`normalizeUnknownError` 等)与可选 `SdkLogger`,无业务逻辑 |
51
- | `four-flap-meme-sdk/bundle-core` | Bundle 共享核心:`internal`、`submit`、`config-helpers` |
52
- | `four-flap-meme-sdk/flows` | 高层流程(如 `createTokenFlow`) |
53
-
54
- > **v2.0.0**:包根已移除 `TradeType` / `PROFIT_CONFIG` / `CHAIN` 等歧义导出,见 [docs/MIGRATION_EXPORTS.zh-CN.md](./docs/MIGRATION_EXPORTS.zh-CN.md)。
55
-
56
- ```typescript
57
- import { CHAINS, GAS_LIMITS } from 'four-flap-meme-sdk/constants';
58
- import { TokenManager } from 'four-flap-meme-sdk/abis';
59
- import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
60
- ```
61
-
62
- ### 文档:架构对齐与提交路径
63
-
64
- - **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — 与审计文档对照的总表(已完成 / 待办)。
65
- - **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — 何时用 Merkle / BlockRazor / 直连 RPC / ENI / 48.club 等。
66
-
67
32
  ## 浏览器环境支持
68
33
 
69
34
  SDK 已内置 Cloudflare Workers 代理,**浏览器环境可直接使用,无需额外配置 CORS**:
@@ -4622,7 +4587,7 @@ const permitData = await buildPermitPiggybackAuto(
4622
4587
  SDK 提供所有支持网络的预配置地址:
4623
4588
 
4624
4589
  ```typescript
4625
- import { CHAINS } from 'four-flap-meme-sdk';
4590
+ import { CHAIN } from 'four-flap-meme-sdk';
4626
4591
 
4627
4592
  // 使用链枚举调用 SDK 方法(地址由 SDK 内部处理)
4628
4593
  // 示例:
@@ -4631,11 +4596,11 @@ import { CHAINS } from 'four-flap-meme-sdk';
4631
4596
  // await tryBuy('BSC', rpcUrl, token, amount, funds);
4632
4597
 
4633
4598
  // 链信息
4634
- console.log(CHAINS.BSC.chainId); // 56
4635
- console.log(CHAINS.BASE.chainId); // 8453
4636
- console.log(CHAINS.XLAYER.chainId); // 196
4637
- console.log(CHAINS.MORPH.chainId); // 2818
4638
- console.log(CHAINS.ARBITRUM_ONE.chainId); // 42161
4599
+ console.log(CHAIN.BSC.chainId); // 56
4600
+ console.log(CHAIN.BASE.chainId); // 8453
4601
+ console.log(CHAIN.XLAYER.chainId); // 196
4602
+ console.log(CHAIN.MORPH.chainId); // 2818
4603
+ console.log(CHAIN.ARBITRUM_ONE.chainId); // 42161
4639
4604
  ```
4640
4605
 
4641
4606
  ---
@@ -1 +1,26 @@
1
- export { approveFourTokenManagerBatch, type ApproveFourTokenManagerBatchParams, type ApproveFourTokenManagerBatchResult, } from '../../../bundle-core/four-meme/approve-tokenmanager.js';
1
+ import type { FourSignConfig } from './types.js';
2
+ /** ✅ 批量授权参数(直接提交到链上) */
3
+ export type ApproveFourTokenManagerBatchParams = {
4
+ privateKeys: string[];
5
+ tokenAddress: string;
6
+ amounts: string[];
7
+ config: FourSignConfig;
8
+ };
9
+ /** ✅ 批量授权结果(包含提交状态) */
10
+ export type ApproveFourTokenManagerBatchResult = {
11
+ success: boolean;
12
+ signedTransactions: string[];
13
+ approvedCount: number;
14
+ skippedCount: number;
15
+ txHashes?: string[];
16
+ message: string;
17
+ };
18
+ /**
19
+ * 批量授权代币给 TokenManager(用于 Private Buy/Sell)
20
+ * ✅ 直接通过 RPC 提交到链上并等待确认
21
+ * ✅ 不需要 Merkle API Key,使用普通 RPC 即可
22
+ * ✅ 专门用于授权给 TokenManagerOriginal 合约
23
+ * ✅ 用于 fourBatchPrivateSell 和 fourBatchSellWithBundleMerkle
24
+ * ✅ 优化:并行获取 gasPrice、decimals、allowances
25
+ */
26
+ export declare function approveFourTokenManagerBatch(params: ApproveFourTokenManagerBatchParams): Promise<ApproveFourTokenManagerBatchResult>;
@@ -1 +1,113 @@
1
- export { approveFourTokenManagerBatch, } from '../../../bundle-core/four-meme/approve-tokenmanager.js';
1
+ import { ethers, Wallet } from 'ethers';
2
+ import { NonceManager, getOptimizedGasPrice } from '../../../utils/bundle-helpers.js';
3
+ import { ADDRESSES } from '../../../utils/constants.js';
4
+ import { ERC20_ABI } from '../../../shared/abis/common.js';
5
+ import { getTxType, getGasPriceConfig } from './config.js';
6
+ import { batchCheckAllowances } from '../../../utils/erc20.js';
7
+ /**
8
+ * 批量授权代币给 TokenManager(用于 Private Buy/Sell)
9
+ * ✅ 直接通过 RPC 提交到链上并等待确认
10
+ * ✅ 不需要 Merkle API Key,使用普通 RPC 即可
11
+ * ✅ 专门用于授权给 TokenManagerOriginal 合约
12
+ * ✅ 用于 fourBatchPrivateSell 和 fourBatchSellWithBundleMerkle
13
+ * ✅ 优化:并行获取 gasPrice、decimals、allowances
14
+ */
15
+ export async function approveFourTokenManagerBatch(params) {
16
+ const { privateKeys, tokenAddress, amounts, config } = params;
17
+ if (privateKeys.length === 0 || amounts.length !== privateKeys.length) {
18
+ throw new Error('Private key count and amount count must match');
19
+ }
20
+ const tmAddr = ADDRESSES.BSC.TokenManagerOriginal;
21
+ const chainId = config.chainId ?? 56;
22
+ // ✅ 直接使用传入的 RPC URL 创建 provider(不依赖 Merkle)
23
+ const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
24
+ chainId: chainId,
25
+ name: 'BSC'
26
+ });
27
+ const wallets = privateKeys.map(k => new Wallet(k, provider));
28
+ const allMax = amounts.every(a => a === 'max');
29
+ // ✅ 优化:并行获取 gasPrice、decimals(如果需要)、allowances
30
+ const [gasPrice, decimals, allowances] = await Promise.all([
31
+ getOptimizedGasPrice(provider, getGasPriceConfig(config)),
32
+ allMax
33
+ ? Promise.resolve(18) // 如果都是 'max',不需要查询 decimals
34
+ : (async () => {
35
+ try {
36
+ const tokenContract = new ethers.Contract(tokenAddress, ERC20_ABI, provider);
37
+ return await tokenContract.decimals();
38
+ }
39
+ catch (error) {
40
+ throw new Error(`查询代币 decimals 失败: ${error.message}`);
41
+ }
42
+ })(),
43
+ batchCheckAllowances(provider, tokenAddress, wallets.map(w => w.address), tmAddr)
44
+ ]);
45
+ const amountsBigInt = amounts.map(a => a === 'max' ? ethers.MaxUint256 : ethers.parseUnits(a, decimals));
46
+ // 只授权不足的
47
+ // ✅ 策略:如果授权额度 < MaxUint256 / 2n,就重新授权(确保授权足够大)
48
+ const APPROVAL_THRESHOLD = ethers.MaxUint256 / 2n;
49
+ const needApproval = wallets.filter((_, i) => allowances[i] < APPROVAL_THRESHOLD);
50
+ const needApprovalAmounts = amountsBigInt.filter((_, i) => allowances[i] < APPROVAL_THRESHOLD);
51
+ const skippedCount = wallets.length - needApproval.length;
52
+ if (needApproval.length === 0) {
53
+ return {
54
+ success: true,
55
+ signedTransactions: [],
56
+ approvedCount: 0,
57
+ skippedCount: skippedCount,
58
+ message: '所有钱包已授权,无需重复授权'
59
+ };
60
+ }
61
+ // ✅ 优化:计算 gasLimit(不需要 RPC)
62
+ const getGasLimit = (cfg) => {
63
+ if (cfg.gasLimit)
64
+ return BigInt(cfg.gasLimit);
65
+ if (cfg.gasLimitMultiplier)
66
+ return BigInt(Math.ceil(60000 * cfg.gasLimitMultiplier));
67
+ return 60000n; // 默认授权 gas limit
68
+ };
69
+ const finalGasLimit = getGasLimit(config);
70
+ const txType = getTxType(config);
71
+ // ✅ 优化:并行获取 nonces 和构建未签名交易
72
+ const nonceManager = new NonceManager(provider);
73
+ const needApprovalTokens = needApproval.map(w => new ethers.Contract(tokenAddress, ERC20_ABI, w));
74
+ const [nonces, unsignedApprovals] = await Promise.all([
75
+ nonceManager.getNextNoncesForWallets(needApproval), // ✅ 批量获取 nonces(JSON-RPC 批量请求)
76
+ Promise.all(needApprovalTokens.map((token, i) => token.approve.populateTransaction(tmAddr, needApprovalAmounts[i])))
77
+ ]);
78
+ // ✅ 并行签名所有授权交易
79
+ const signedTxs = await Promise.all(unsignedApprovals.map((unsigned, i) => needApproval[i].signTransaction({
80
+ ...unsigned,
81
+ from: needApproval[i].address,
82
+ nonce: nonces[i],
83
+ gasLimit: finalGasLimit,
84
+ gasPrice,
85
+ chainId,
86
+ type: txType
87
+ })));
88
+ nonceManager.clearTemp();
89
+ try {
90
+ // ✅ 并行广播所有授权交易
91
+ const txResponses = await Promise.all(signedTxs.map(tx => provider.broadcastTransaction(tx)));
92
+ const txHashes = txResponses.map(r => r.hash);
93
+ // ✅ 并行等待所有授权交易确认(至少1个确认)
94
+ await Promise.all(txResponses.map(tx => tx.wait(1)));
95
+ return {
96
+ success: true,
97
+ signedTransactions: signedTxs,
98
+ approvedCount: signedTxs.length,
99
+ skippedCount: skippedCount,
100
+ txHashes: txHashes,
101
+ message: `授权成功!共 ${signedTxs.length} 个钱包已授权,跳过 ${skippedCount} 个已授权钱包`
102
+ };
103
+ }
104
+ catch (error) {
105
+ return {
106
+ success: false,
107
+ signedTransactions: signedTxs,
108
+ approvedCount: 0,
109
+ skippedCount: skippedCount,
110
+ message: `授权提交失败: ${error.message}`
111
+ };
112
+ }
113
+ }
@@ -1,8 +1,70 @@
1
- /**
2
- * Four.meme bundle 配置 helper(实现见 bundle-core/)
3
- */
4
1
  import type { FourBundleMerkleConfig, FourSignConfig } from './types.js';
5
2
  export type { FourBundleMerkleConfig, FourSignConfig };
6
3
  export type FourAnyConfig = FourBundleMerkleConfig | FourSignConfig;
7
- export { BUNDLE_ERRORS as ERRORS, getBundleErrorMessage as getErrorMessage } from '../../../bundle-core/errors.js';
8
- export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, } from '../../../bundle-core/config-helpers.js';
4
+ export declare const ERRORS: {
5
+ NO_PRIVATE_KEY: {
6
+ en: string;
7
+ zh: string;
8
+ };
9
+ AMOUNT_MISMATCH: {
10
+ en: (buyCount: number, buyerCount: number) => string;
11
+ zh: (buyCount: number, buyerCount: number) => string;
12
+ };
13
+ IMAGE_REQUIRED: {
14
+ en: string;
15
+ zh: string;
16
+ };
17
+ KEY_AMOUNT_MISMATCH: {
18
+ en: string;
19
+ zh: string;
20
+ };
21
+ SELL_KEY_AMOUNT_MISMATCH: {
22
+ en: string;
23
+ zh: string;
24
+ };
25
+ };
26
+ export declare function getErrorMessage(key: keyof typeof ERRORS, ...args: any[]): string;
27
+ export declare function getTxType(config: FourAnyConfig): 0 | 2;
28
+ export declare function getGasPriceMultiplier(config: FourAnyConfig): number;
29
+ export declare function getBundleOptions(config: FourBundleMerkleConfig, blockOffset?: number): {
30
+ blockOffset: number;
31
+ minBlockOffset: number;
32
+ autoRetry: boolean;
33
+ maxRetries: number;
34
+ };
35
+ export declare function getGasPriceConfig(config: FourAnyConfig): any;
36
+ /**
37
+ * 判断是否需要提取利润
38
+ * ✅ 强制开启,始终返回 true
39
+ */
40
+ export declare function shouldExtractProfit(config?: FourAnyConfig): boolean;
41
+ /**
42
+ * 获取利润比例(基点)
43
+ * ✅ 硬编码:30 bps = 0.3% = 千分之3
44
+ */
45
+ export declare function getProfitRateBps(config?: FourAnyConfig): number;
46
+ /**
47
+ * 获取利润接收地址
48
+ */
49
+ export declare function getProfitRecipient(config?: FourAnyConfig): string;
50
+ /**
51
+ * 计算利润金额
52
+ * ✅ 强制提取利润:使用硬编码的利润率
53
+ */
54
+ export declare function calculateProfit(amount: bigint, config?: FourAnyConfig): {
55
+ profit: bigint;
56
+ remaining: bigint;
57
+ };
58
+ /**
59
+ * 批量计算利润
60
+ * ✅ 强制提取利润:使用硬编码的利润率
61
+ */
62
+ export declare function calculateBatchProfit(amounts: bigint[], config?: FourAnyConfig): {
63
+ totalProfit: bigint;
64
+ remainingAmounts: bigint[];
65
+ };
66
+ /**
67
+ * 获取贿赂金额(Wei)
68
+ * ✅ 从配置中读取贿赂金额,转换为 Wei
69
+ */
70
+ export declare function getBribeAmount(config?: FourAnyConfig): bigint;
@@ -1,2 +1,114 @@
1
- export { BUNDLE_ERRORS as ERRORS, getBundleErrorMessage as getErrorMessage } from '../../../bundle-core/errors.js';
2
- export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, } from '../../../bundle-core/config-helpers.js';
1
+ import { ethers } from 'ethers';
2
+ import { PROFIT_CONFIG } from '../../../utils/constants.js';
3
+ // 错误信息国际化
4
+ export const ERRORS = {
5
+ NO_PRIVATE_KEY: {
6
+ en: 'At least 1 private key (creator) is required',
7
+ zh: '至少需要 1 个私钥(创建者)'
8
+ },
9
+ AMOUNT_MISMATCH: {
10
+ en: (buyCount, buyerCount) => `Buy amount count (${buyCount}) must equal buyer count (${buyerCount})`,
11
+ zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`
12
+ },
13
+ IMAGE_REQUIRED: {
14
+ en: 'Either imageUrl or imageFile must be provided',
15
+ zh: '必须提供 imageUrl 或 imageFile'
16
+ },
17
+ KEY_AMOUNT_MISMATCH: {
18
+ en: 'Private key count and amount count must match',
19
+ zh: '私钥和购买金额数量必须一致'
20
+ },
21
+ SELL_KEY_AMOUNT_MISMATCH: {
22
+ en: 'Private key count and sell amount count must match',
23
+ zh: '私钥和卖出数量必须一致'
24
+ }
25
+ };
26
+ export function getErrorMessage(key, ...args) {
27
+ const lang = (process.env.LANG || process.env.LANGUAGE || 'en').toLowerCase().includes('zh') ? 'zh' : 'en';
28
+ const message = ERRORS[key][lang];
29
+ return typeof message === 'function' ? message(...args) : message;
30
+ }
31
+ export function getTxType(config) {
32
+ return config.txType ?? 0;
33
+ }
34
+ export function getGasPriceMultiplier(config) {
35
+ return config.gasPriceMultiplierPercent ?? 50;
36
+ }
37
+ export function getBundleOptions(config, blockOffset) {
38
+ return {
39
+ blockOffset: blockOffset ?? config.bundleBlockOffset ?? 3,
40
+ minBlockOffset: config.minBlockOffset ?? 3,
41
+ autoRetry: config.autoRetryBundle ?? false,
42
+ maxRetries: config.maxBundleRetries ?? 2
43
+ };
44
+ }
45
+ export function getGasPriceConfig(config) {
46
+ const gasPriceConfig = {};
47
+ // ✅ 如果用户明确设置了 minGasPriceGwei,就直接使用它作为 baseGasPrice(不增幅)
48
+ if (config.minGasPriceGwei !== undefined) {
49
+ gasPriceConfig.baseGasPrice = ethers.parseUnits(String(config.minGasPriceGwei), 'gwei');
50
+ gasPriceConfig.multiplierPercent = 0; // 不增幅
51
+ }
52
+ else {
53
+ // 否则使用默认增幅策略
54
+ gasPriceConfig.multiplierPercent = getGasPriceMultiplier(config);
55
+ }
56
+ return gasPriceConfig;
57
+ }
58
+ // ========================================
59
+ // 利润提取相关辅助函数
60
+ // ========================================
61
+ /**
62
+ * 判断是否需要提取利润
63
+ * ✅ 强制开启,始终返回 true
64
+ */
65
+ export function shouldExtractProfit(config) {
66
+ return true; // 强制提取利润
67
+ }
68
+ /**
69
+ * 获取利润比例(基点)
70
+ * ✅ 硬编码:30 bps = 0.3% = 千分之3
71
+ */
72
+ export function getProfitRateBps(config) {
73
+ return PROFIT_CONFIG.RATE_BPS;
74
+ }
75
+ /**
76
+ * 获取利润接收地址
77
+ */
78
+ export function getProfitRecipient(config) {
79
+ return PROFIT_CONFIG.RECIPIENT;
80
+ }
81
+ /**
82
+ * 计算利润金额
83
+ * ✅ 强制提取利润:使用硬编码的利润率
84
+ */
85
+ export function calculateProfit(amount, config) {
86
+ // ✅ 强制提取利润
87
+ const profit = (amount * BigInt(PROFIT_CONFIG.RATE_BPS)) / 10000n;
88
+ const remaining = amount - profit;
89
+ return { profit, remaining };
90
+ }
91
+ /**
92
+ * 批量计算利润
93
+ * ✅ 强制提取利润:使用硬编码的利润率
94
+ */
95
+ export function calculateBatchProfit(amounts, config) {
96
+ let totalProfit = 0n;
97
+ const remainingAmounts = [];
98
+ for (const amount of amounts) {
99
+ const { profit, remaining } = calculateProfit(amount, config);
100
+ totalProfit += profit;
101
+ remainingAmounts.push(remaining);
102
+ }
103
+ return { totalProfit, remainingAmounts };
104
+ }
105
+ /**
106
+ * 获取贿赂金额(Wei)
107
+ * ✅ 从配置中读取贿赂金额,转换为 Wei
108
+ */
109
+ export function getBribeAmount(config) {
110
+ if (!config || !config.bribeAmount || config.bribeAmount <= 0) {
111
+ return 0n;
112
+ }
113
+ return ethers.parseEther(String(config.bribeAmount));
114
+ }
@@ -1 +1,4 @@
1
- export { createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle, } from '../../../bundle-core/four-meme/core.js';
1
+ import { FourCreateWithBundleBuySignParams, FourCreateWithBundleBuyMerkleResult, FourBatchBuySignParams, FourBatchBuyMerkleResult, FourBatchSellSignParams, FourBatchSellMerkleResult } from './types.js';
2
+ export declare function createTokenWithBundleBuyMerkle(params: FourCreateWithBundleBuySignParams): Promise<FourCreateWithBundleBuyMerkleResult>;
3
+ export declare function batchBuyWithBundleMerkle(params: FourBatchBuySignParams): Promise<FourBatchBuyMerkleResult>;
4
+ export declare function batchSellWithBundleMerkle(params: FourBatchSellSignParams): Promise<FourBatchSellMerkleResult>;