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
@@ -1,6 +1,6 @@
1
1
  import { ethers, JsonRpcProvider } from 'ethers';
2
- import { Club48Client } from '../shared/clients/club48.js';
3
- import { GAS_LIMITS } from '../shared/constants/index.js';
2
+ import { Club48Client } from '../core/clients/club48.js';
3
+ import { GAS_LIMITS } from '../core/constants/index.js';
4
4
  /**
5
5
  * 隐秘转账(原生币,多跳)
6
6
  * - 生成 hopCount 个中转地址
@@ -54,8 +54,8 @@ async function _stealthTransferInternal(params) {
54
54
  throw new Error(`insufficient balance: need ${needed.toString()}, have ${rootBal.toString()}`);
55
55
  }
56
56
  // ✅ 并行预取所有 nonce
57
- const allAddresses = [rootAddr, ...hops.map(w => w.address)];
58
- const nonces = await Promise.all(allAddresses.map(addr => provider.getTransactionCount(addr, 'pending')));
57
+ const allAddresses = [rootAddr, ...hops.map((w) => w.address)];
58
+ const nonces = await Promise.all(allAddresses.map((addr) => provider.getTransactionCount(addr, 'pending')));
59
59
  const signed = [];
60
60
  const hopAddresses = [];
61
61
  if (mode !== 'erc20') {
@@ -92,10 +92,14 @@ async function _stealthTransferInternal(params) {
92
92
  }
93
93
  else {
94
94
  // ============== ERC20 代币多跳路径 ==============
95
+ const erc20Config = erc20;
96
+ if (!erc20Config?.address) {
97
+ throw new Error('erc20.address is required in erc20 mode');
98
+ }
95
99
  const erc20Iface = new ethers.Interface(['function transfer(address,uint256) returns (bool)']);
96
- const transferGas = erc20?.transferGasLimit ?? GAS_LIMITS.ERC20_TRANSFER;
100
+ const transferGas = erc20Config.transferGasLimit ?? GAS_LIMITS.ERC20_TRANSFER;
97
101
  // 填充 hopAddresses
98
- hops.forEach(hop => hopAddresses.push(hop.address));
102
+ hops.forEach((hop) => hopAddresses.push(hop.address));
99
103
  // ✅ 并行签名所有 gas 注资交易(root -> hop[i])
100
104
  const fundTxs = await Promise.all(hops.map((hop, i) => root.signTransaction({
101
105
  to: hop.address,
@@ -108,14 +112,14 @@ async function _stealthTransferInternal(params) {
108
112
  })));
109
113
  signed.push(...fundTxs);
110
114
  // 代币持有者:可选独立私钥,未提供则用 root
111
- const tokenOwner = (erc20?.holderPrivateKey && erc20.holderPrivateKey.length > 0)
112
- ? new ethers.Wallet(erc20.holderPrivateKey, provider)
115
+ const tokenOwner = erc20Config.holderPrivateKey && erc20Config.holderPrivateKey.length > 0
116
+ ? new ethers.Wallet(erc20Config.holderPrivateKey, provider)
113
117
  : root;
114
118
  // tokenOwner -> hop0: ERC20 transfer 全量 token
115
119
  const callDataRoot = erc20Iface.encodeFunctionData('transfer', [hops[0].address, amountWei]);
116
120
  const rootTokenNonce = nonces[0] + hops.length;
117
121
  const erc20TxRoot = await tokenOwner.signTransaction({
118
- to: erc20.address,
122
+ to: erc20Config.address,
119
123
  data: callDataRoot,
120
124
  value: 0n,
121
125
  nonce: rootTokenNonce,
@@ -131,7 +135,7 @@ async function _stealthTransferInternal(params) {
131
135
  const nextTo = isLast ? finalTo : hops[i + 1].address;
132
136
  const callData = erc20Iface.encodeFunctionData('transfer', [nextTo, amountWei]);
133
137
  return hop.signTransaction({
134
- to: erc20.address,
138
+ to: erc20Config.address,
135
139
  data: callData,
136
140
  value: 0n,
137
141
  nonce: nonces[i + 1],
@@ -148,9 +152,7 @@ async function _stealthTransferInternal(params) {
148
152
  const bundleUuid = await club48.sendBundle({
149
153
  txs: signed,
150
154
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
151
- }, spPrivateKey
152
- ? { spMode: spMode ?? 'timestampPersonalSign', spPrivateKey, spVMode }
153
- : undefined);
155
+ }, spPrivateKey ? { spMode: spMode ?? 'timestampPersonalSign', spPrivateKey, spVMode } : undefined);
154
156
  return { bundleUuid, txs: signed, hopAddresses };
155
157
  }
156
158
  /**
@@ -160,21 +162,30 @@ async function _stealthTransferInternal(params) {
160
162
  * - 自动生成 hopCount 个中转地址,并通过 48.club Bundle 原子提交
161
163
  */
162
164
  export async function stealthTransfer(params) {
163
- const { rpcUrl, chainId, rootPrivateKey, finalTo, hopCount, amount, tokenAddress, tokenHolderPrivateKey, bundleEndpoint, gasPriceGwei, gasLimit, blockOffset, spMode, spPrivateKey, spVMode } = params;
165
+ const { rpcUrl, chainId, rootPrivateKey, finalTo, hopCount, amount, tokenAddress, tokenHolderPrivateKey, bundleEndpoint, gasPriceGwei, gasLimit, blockOffset, spMode, spPrivateKey, spVMode, } = params;
164
166
  if (!tokenAddress) {
165
167
  // 原生:直接 parseEther
166
168
  const amountWei = ethers.parseEther(amount);
167
169
  return await _stealthTransferInternal({
168
- rpcUrl, chainId, rootPrivateKey, finalTo, hopCount,
170
+ rpcUrl,
171
+ chainId,
172
+ rootPrivateKey,
173
+ finalTo,
174
+ hopCount,
169
175
  amountWei,
170
176
  mode: 'native',
171
- bundleEndpoint, gasPriceGwei, gasLimit, blockOffset,
172
- spMode, spPrivateKey, spVMode
177
+ bundleEndpoint,
178
+ gasPriceGwei,
179
+ gasLimit,
180
+ blockOffset,
181
+ spMode,
182
+ spPrivateKey,
183
+ spVMode,
173
184
  });
174
185
  }
175
186
  // ERC20:自动读取 decimals(读取失败则回退 18)
176
187
  const provider = new JsonRpcProvider(rpcUrl, chainId);
177
- let decimals = 18;
188
+ let decimals;
178
189
  try {
179
190
  const erc20 = new ethers.Contract(tokenAddress, ['function decimals() view returns (uint8)'], provider);
180
191
  decimals = Number(await erc20.decimals());
@@ -186,11 +197,20 @@ export async function stealthTransfer(params) {
186
197
  }
187
198
  const amountWei = ethers.parseUnits(amount, decimals);
188
199
  return await _stealthTransferInternal({
189
- rpcUrl, chainId, rootPrivateKey, finalTo, hopCount,
200
+ rpcUrl,
201
+ chainId,
202
+ rootPrivateKey,
203
+ finalTo,
204
+ hopCount,
190
205
  amountWei,
191
206
  mode: 'erc20',
192
207
  erc20: { address: tokenAddress, holderPrivateKey: tokenHolderPrivateKey },
193
- bundleEndpoint, gasPriceGwei, gasLimit, blockOffset,
194
- spMode, spPrivateKey, spVMode
208
+ bundleEndpoint,
209
+ gasPriceGwei,
210
+ gasLimit,
211
+ blockOffset,
212
+ spMode,
213
+ spPrivateKey,
214
+ spVMode,
195
215
  });
196
216
  }
@@ -2,11 +2,12 @@
2
2
  * 换手交易通用工具函数
3
3
  */
4
4
  import { Wallet, JsonRpcProvider } from 'ethers';
5
+ import type { MerkleClient } from '../core/clients/merkle.js';
5
6
  /**
6
7
  * 检查并执行代币授权(如果需要)
7
8
  * ✅ 与 pancake-proxy.ts 的授权逻辑一致
8
9
  */
9
- export declare function ensureTokenApproval(provider: JsonRpcProvider, merkle: any, wallet: Wallet, tokenAddress: string, spenderAddress: string, config: {
10
+ export declare function ensureTokenApproval(provider: JsonRpcProvider, merkle: MerkleClient, wallet: Wallet, tokenAddress: string, spenderAddress: string, config: {
10
11
  gasLimit?: number;
11
12
  gasLimitMultiplier?: number;
12
13
  minGasPriceGwei?: number;
@@ -38,17 +39,3 @@ export declare function calculateSwapLoss(sellAmount: bigint, buyAmount: bigint)
38
39
  * 验证钱包BNB余额
39
40
  */
40
41
  export declare function validateBNBBalance(provider: JsonRpcProvider, walletAddress: string, requiredBNB: bigint, purpose: string): Promise<void>;
41
- /**
42
- * 格式化换手结果日志
43
- */
44
- export declare function logSwapResult(params: {
45
- sellerAddress: string;
46
- buyerAddress: string;
47
- tokenAddress: string;
48
- sellAmount: bigint;
49
- buyAmount: bigint;
50
- decimals: number;
51
- sellerGotBNB: bigint;
52
- buyerSpentBNB: bigint;
53
- swapType: string;
54
- }): void;
@@ -2,8 +2,9 @@
2
2
  * 换手交易通用工具函数
3
3
  */
4
4
  import { ethers, Contract } from 'ethers';
5
- import { batchCheckAllowances } from './erc20.js';
6
- import { ERC20_ABI } from '../shared/abis/common.js';
5
+ import { batchCheckAllowances } from '../core/erc20.js';
6
+ import { ERC20_ABI } from '../abis/common.js';
7
+ import { NonceManager, getOptimizedGasPrice } from './bundle-helpers.js';
7
8
  const APPROVAL_THRESHOLD = ethers.MaxUint256 / 2n;
8
9
  /**
9
10
  * 获取 Gas Limit(授权专用)
@@ -35,7 +36,6 @@ export async function ensureTokenApproval(provider, merkle, wallet, tokenAddress
35
36
  return;
36
37
  }
37
38
  // ✅ 使用 NonceManager(与 pancake-proxy.ts 一致)
38
- const { NonceManager, getOptimizedGasPrice } = await import('./bundle-helpers.js');
39
39
  const nonceManager = new NonceManager(provider);
40
40
  // 构建授权交易
41
41
  const tokenContract = new Contract(tokenAddress, ERC20_ABI, wallet);
@@ -65,7 +65,7 @@ export async function ensureTokenApproval(provider, merkle, wallet, tokenAddress
65
65
  gasLimit: approveGasLimit,
66
66
  gasPrice,
67
67
  chainId,
68
- type: config.txType ?? 0
68
+ type: config.txType ?? 0,
69
69
  });
70
70
  // 清理临时 nonce 缓存
71
71
  nonceManager.clearTemp();
@@ -75,7 +75,7 @@ export async function ensureTokenApproval(provider, merkle, wallet, tokenAddress
75
75
  transactions: [signedTx],
76
76
  blockOffset,
77
77
  minTimestamp: 0,
78
- maxTimestamp: 0
78
+ maxTimestamp: 0,
79
79
  });
80
80
  // 等待确认
81
81
  const results = await merkle.waitForBundleConfirmation(bundleResult.txHashes, 1, config.waitTimeoutMs ?? 120000);
@@ -112,7 +112,7 @@ export async function calculateSellAmount(provider, tokenAddress, walletAddress,
112
112
  const decimals = await getTokenDecimals(provider, tokenAddress);
113
113
  return {
114
114
  amount: ethers.parseUnits(sellAmount, decimals),
115
- decimals
115
+ decimals,
116
116
  };
117
117
  }
118
118
  // 百分比:需要 decimals 和 balance
@@ -123,7 +123,7 @@ export async function calculateSellAmount(provider, tokenAddress, walletAddress,
123
123
  // ✅ 并行获取 decimals 和 balance
124
124
  const [decimals, balance] = await Promise.all([
125
125
  getTokenDecimals(provider, tokenAddress),
126
- getTokenBalance(provider, tokenAddress, walletAddress)
126
+ getTokenBalance(provider, tokenAddress, walletAddress),
127
127
  ]);
128
128
  const amount = (balance * BigInt(Math.floor(sellPercentage * 100))) / 10000n;
129
129
  return { amount, decimals };
@@ -150,8 +150,3 @@ export async function validateBNBBalance(provider, walletAddress, requiredBNB, p
150
150
  `实际 ${ethers.formatEther(balance)} BNB`);
151
151
  }
152
152
  }
153
- /**
154
- * 格式化换手结果日志
155
- */
156
- export function logSwapResult(params) {
157
- }
@@ -0,0 +1 @@
1
+ export type { BundleSubmitResult, SignedTransactionsResult, AirdropDisperseParams, AirdropDisperseSignParams, AirdropSweepParams, AirdropSweepSignParams, DisperseParams, DisperseSignParams, SweepParams, SweepSignParams, } from '../../core/types/airdrop-sweep.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type ChainName = 'BSC' | 'BASE' | 'ARBITRUM_ONE';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type FourErrorCode = 'GW' | 'ZA' | 'TO' | 'Slippage' | 'More BNB' | 'FR' | 'SO';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { Wallet } from 'ethers';
2
+ import type { GeneratedWallet } from './wallet.js';
3
+ /** 分发多跳路径信息 */
4
+ export type DisperseHopPath = {
5
+ targetAddress: string;
6
+ hopWallets: Wallet[];
7
+ hopWalletsInfo: GeneratedWallet[];
8
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ /** utils 层类型 facade(业务类型源在 core/types;utils 不得依赖 domains) */
2
+ export type * from '../../core/types/holders-maker.js';
3
+ export type * from '../../core/types/lp-inspect.js';
4
+ export type * from './airdrop-sweep.js';
5
+ export type * from '../../core/types/private-sale.js';
6
+ export type * from '../../core/types/quote-helpers.js';
7
+ export type * from '../../core/types/erc20.js';
8
+ export type * from './wallet.js';
9
+ export type * from './stealth-transfer.js';
10
+ export type * from './errors.js';
11
+ export type * from './mpc-exclusive.js';
12
+ export type * from './contract-factory.js';
13
+ export type * from './hop-chains.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export type ExclusiveCheckOnChainParams = {
2
+ chain: 'BSC';
3
+ tokenAddress: string;
4
+ rpcUrl: string;
5
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ import type { SoulPointSignatureMode, VNormalizationMode } from '../../core/clients/club48.js';
2
+ export type StealthTransferResult = {
3
+ bundleUuid: string;
4
+ txs: string[];
5
+ hopAddresses: string[];
6
+ };
7
+ export type StealthTransferSimpleParams = {
8
+ rpcUrl: string;
9
+ chainId: number;
10
+ rootPrivateKey: string;
11
+ finalTo: string;
12
+ hopCount: number;
13
+ amount: string;
14
+ tokenAddress?: string;
15
+ tokenHolderPrivateKey?: string;
16
+ bundleEndpoint?: string;
17
+ gasPriceGwei?: string;
18
+ gasLimit?: bigint;
19
+ blockOffset?: number;
20
+ spMode?: SoulPointSignatureMode;
21
+ spPrivateKey?: string;
22
+ spVMode?: VNormalizationMode;
23
+ };
24
+ export type InternalStealthParams = {
25
+ rpcUrl: string;
26
+ chainId: number;
27
+ rootPrivateKey: string;
28
+ finalTo: string;
29
+ hopCount: number;
30
+ amountWei: bigint;
31
+ bundleEndpoint?: string;
32
+ gasPriceGwei?: string;
33
+ gasLimit?: bigint;
34
+ blockOffset?: number;
35
+ mode: 'native' | 'erc20';
36
+ erc20?: {
37
+ address: string;
38
+ holderPrivateKey?: string;
39
+ transferGasLimit?: bigint;
40
+ };
41
+ spMode?: SoulPointSignatureMode;
42
+ spPrivateKey?: string;
43
+ spVMode?: VNormalizationMode;
44
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ export type GeneratedWallet = {
2
+ address: string;
3
+ privateKey: string;
4
+ };
5
+ export type PrivateKeyValidation = {
6
+ privateKey: string;
7
+ valid: boolean;
8
+ address?: string;
9
+ normalized?: string;
10
+ error?: string;
11
+ };
12
+ export type MulticallResult = {
13
+ address: string;
14
+ balance: bigint;
15
+ success: boolean;
16
+ };
17
+ export type MultiTokenBalancesResult = {
18
+ address: string;
19
+ native: string;
20
+ tokens: Array<{
21
+ token: string;
22
+ balance: string;
23
+ }>;
24
+ success: boolean;
25
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,28 +1,7 @@
1
- export type GeneratedWallet = {
2
- address: string;
3
- privateKey: string;
4
- };
5
- export type PrivateKeyValidation = {
6
- privateKey: string;
7
- valid: boolean;
8
- address?: string;
9
- normalized?: string;
10
- error?: string;
11
- };
12
- export type MulticallResult = {
13
- address: string;
14
- balance: bigint;
15
- success: boolean;
16
- };
17
- export type MultiTokenBalancesResult = {
18
- address: string;
19
- native: string;
20
- tokens: Array<{
21
- token: string;
22
- balance: string;
23
- }>;
24
- success: boolean;
25
- };
1
+ import { type GeneratedWallet } from '../core/wallet/generate.js';
2
+ import type { MultiTokenBalancesResult, MulticallResult, PrivateKeyValidation } from './types/wallet.js';
3
+ export type { PrivateKeyValidation, MulticallResult, MultiTokenBalancesResult, } from './types/wallet.js';
4
+ export type { GeneratedWallet } from '../core/wallet/generate.js';
26
5
  /**
27
6
  * 批量生成钱包(并行优化)
28
7
  */
@@ -1,6 +1,8 @@
1
1
  import { Wallet, Interface, JsonRpcProvider, formatEther, formatUnits, isHexString } from 'ethers';
2
- import { CHAIN, ADDRESSES } from './constants.js';
3
- import { ERC20_ABI, MULTICALL3_ABI } from '../shared/abis/common.js';
2
+ import { CHAIN_ID_MAP, ADDRESSES } from '../core/constants/index.js';
3
+ import { ERC20_ABI, MULTICALL3_ABI } from '../abis/common.js';
4
+ import { getErrorMessageFromUnknown } from '../core/index.js';
5
+ import { generateWallets as generateWalletsFromFoundation, } from '../core/wallet/generate.js';
4
6
  // ============================================================================
5
7
  // 常量
6
8
  // ============================================================================
@@ -30,12 +32,7 @@ const MULTICALL_BATCH_SIZE = 100;
30
32
  * 批量生成钱包(并行优化)
31
33
  */
32
34
  export function generateWallets(count) {
33
- const n = Math.max(0, Math.floor(count));
34
- // ✅ 使用 Array.from 并行生成
35
- return Array.from({ length: n }, () => {
36
- const w = Wallet.createRandom();
37
- return { address: w.address, privateKey: w.privateKey };
38
- });
35
+ return generateWalletsFromFoundation(count);
39
36
  }
40
37
  /**
41
38
  * 批量校验私钥(并行处理)
@@ -52,7 +49,7 @@ export function validatePrivateKeys(privateKeys) {
52
49
  return { privateKey: pk, valid: true, address: w.address, normalized };
53
50
  }
54
51
  catch (e) {
55
- return { privateKey: pk, valid: false, error: String(e?.message || e) };
52
+ return { privateKey: pk, valid: false, error: getErrorMessageFromUnknown(e) };
56
53
  }
57
54
  });
58
55
  }
@@ -119,13 +116,14 @@ async function _queryMultiTokenBalancesSingle(provider, multicallAddress, tokenA
119
116
  // ✅ 单次 multicall 获取所有数据
120
117
  const callData = multiIface.encodeFunctionData('aggregate', [calls]);
121
118
  const result = await provider.call({ to: multicallAddress, data: callData });
122
- const [, returnData] = multiIface.decodeFunctionResult('aggregate', result);
119
+ const decoded = multiIface.decodeFunctionResult('aggregate', result);
120
+ const returnData = decoded[1];
123
121
  // ✅ 并行解码结果
124
122
  const outputs = holders.map((addr) => ({
125
123
  address: addr,
126
124
  native: '0',
127
125
  tokens: [],
128
- success: true
126
+ success: true,
129
127
  }));
130
128
  // 解码原生余额
131
129
  let idx = 0;
@@ -145,14 +143,20 @@ async function _queryMultiTokenBalancesSingle(provider, multicallAddress, tokenA
145
143
  for (let i = 0; i < holders.length; i++, idx++) {
146
144
  try {
147
145
  const decoded = erc20Iface.decodeFunctionResult('balanceOf', returnData[idx]);
148
- if (!rawBalances.has(i))
149
- rawBalances.set(i, new Map());
150
- rawBalances.get(i).set(token, decoded[0]);
146
+ let balanceMap = rawBalances.get(i);
147
+ if (!balanceMap) {
148
+ balanceMap = new Map();
149
+ rawBalances.set(i, balanceMap);
150
+ }
151
+ balanceMap.set(token, decoded[0]);
151
152
  }
152
153
  catch {
153
- if (!rawBalances.has(i))
154
- rawBalances.set(i, new Map());
155
- rawBalances.get(i).set(token, 0n);
154
+ let balanceMap = rawBalances.get(i);
155
+ if (!balanceMap) {
156
+ balanceMap = new Map();
157
+ rawBalances.set(i, balanceMap);
158
+ }
159
+ balanceMap.set(token, 0n);
156
160
  outputs[i].success = false;
157
161
  }
158
162
  }
@@ -172,9 +176,9 @@ async function _queryMultiTokenBalancesSingle(provider, multicallAddress, tokenA
172
176
  // ✅ 格式化最终结果
173
177
  for (let i = 0; i < holders.length; i++) {
174
178
  const raw = rawBalances.get(i);
175
- outputs[i].tokens = tokenAddresses.map(token => ({
179
+ outputs[i].tokens = tokenAddresses.map((token) => ({
176
180
  token,
177
- balance: formatUnits(raw?.get(token) ?? 0n, tokenDecimals.get(token) ?? 18)
181
+ balance: formatUnits(raw?.get(token) ?? 0n, tokenDecimals.get(token) ?? 18),
178
182
  }));
179
183
  }
180
184
  return outputs;
@@ -208,11 +212,12 @@ async function _querySingleTokenBalancesSingle(provider, multicallAddress, token
208
212
  const multiIface = new Interface(MULTICALL3_ABI);
209
213
  const calls = holders.map((addr) => ({
210
214
  target: token,
211
- callData: erc20Iface.encodeFunctionData('balanceOf', [addr])
215
+ callData: erc20Iface.encodeFunctionData('balanceOf', [addr]),
212
216
  }));
213
217
  const callData = multiIface.encodeFunctionData('aggregate', [calls]);
214
218
  const result = await provider.call({ to: multicallAddress, data: callData });
215
- const [, returnData] = multiIface.decodeFunctionResult('aggregate', result);
219
+ const decoded = multiIface.decodeFunctionResult('aggregate', result);
220
+ const returnData = decoded[1];
216
221
  return holders.map((addr, i) => {
217
222
  try {
218
223
  const decoded = erc20Iface.decodeFunctionResult('balanceOf', returnData[i]);
@@ -255,7 +260,7 @@ export async function getTokenBalancesWithMulticall(rpcUrl, a, b, c) {
255
260
  chainId = a;
256
261
  }
257
262
  else if (typeof a === 'string') {
258
- chainId = CHAIN[a]?.chainId;
263
+ chainId = CHAIN_ID_MAP[a];
259
264
  }
260
265
  const multicallAddress = await getMulticallAddress(provider, chainId);
261
266
  return _queryMultiTokenBalances(provider, multicallAddress, b, c);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "four-flap-meme-sdk",
3
- "version": "2.2.19",
3
+ "version": "3.0.0",
4
4
  "description": "SDK for Flap bonding curve and four.meme TokenManager",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,8 +12,98 @@
12
12
  "scripts": {
13
13
  "build": "tsc -p tsconfig.json",
14
14
  "clean": "rm -rf dist",
15
+ "test": "vitest run",
16
+ "lint": "eslint \"src/**/*.{ts,tsx}\"",
17
+ "check:export-types": "node scripts/check-export-return-types.mjs",
15
18
  "prepublishOnly": "npm run build"
16
19
  },
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "default": "./dist/index.js"
24
+ },
25
+ "./core": {
26
+ "types": "./dist/core/index.d.ts",
27
+ "default": "./dist/core/index.js"
28
+ },
29
+ "./flap": {
30
+ "types": "./dist/domains/flap/index.d.ts",
31
+ "default": "./dist/domains/flap/index.js"
32
+ },
33
+ "./four": {
34
+ "types": "./dist/domains/four/index.d.ts",
35
+ "default": "./dist/domains/four/index.js"
36
+ },
37
+ "./dex": {
38
+ "types": "./dist/domains/dex/index.d.ts",
39
+ "default": "./dist/domains/dex/index.js"
40
+ },
41
+ "./merkle": {
42
+ "types": "./dist/domains/merkle/index.d.ts",
43
+ "default": "./dist/domains/merkle/index.js"
44
+ },
45
+ "./vanity": {
46
+ "types": "./dist/domains/vanity/index.d.ts",
47
+ "default": "./dist/domains/vanity/index.js"
48
+ },
49
+ "./quote": {
50
+ "types": "./dist/domains/quote/index.d.ts",
51
+ "default": "./dist/domains/quote/index.js"
52
+ },
53
+ "./lp-inspect": {
54
+ "types": "./dist/domains/lp-inspect/index.d.ts",
55
+ "default": "./dist/domains/lp-inspect/index.js"
56
+ },
57
+ "./holders": {
58
+ "types": "./dist/domains/holders/index.d.ts",
59
+ "default": "./dist/domains/holders/index.js"
60
+ },
61
+ "./private-sale": {
62
+ "types": "./dist/domains/private-sale/index.d.ts",
63
+ "default": "./dist/domains/private-sale/index.js"
64
+ },
65
+ "./bundle": {
66
+ "types": "./dist/bundle/index.d.ts",
67
+ "default": "./dist/bundle/index.js"
68
+ },
69
+ "./flows": {
70
+ "types": "./dist/domains/flows/index.d.ts",
71
+ "default": "./dist/domains/flows/index.js"
72
+ },
73
+ "./chains": {
74
+ "types": "./dist/chains/index.d.ts",
75
+ "default": "./dist/chains/index.js"
76
+ },
77
+ "./chains/bsc": {
78
+ "types": "./dist/chains/bsc/index.d.ts",
79
+ "default": "./dist/chains/bsc/index.js"
80
+ },
81
+ "./chains/bsc/iro": {
82
+ "types": "./dist/chains/bsc/iro.d.ts",
83
+ "default": "./dist/chains/bsc/iro.js"
84
+ },
85
+ "./chains/xlayer": {
86
+ "types": "./dist/chains/xlayer/index.d.ts",
87
+ "default": "./dist/chains/xlayer/index.js"
88
+ },
89
+ "./chains/xlayer/eip7702": {
90
+ "types": "./dist/chains/xlayer/eip7702/index.d.ts",
91
+ "default": "./dist/chains/xlayer/eip7702/index.js"
92
+ },
93
+ "./chains/eni": {
94
+ "types": "./dist/chains/eni/index.d.ts",
95
+ "default": "./dist/chains/eni/index.js"
96
+ },
97
+ "./chains/monad": {
98
+ "types": "./dist/chains/monad/index.d.ts",
99
+ "default": "./dist/chains/monad/index.js"
100
+ },
101
+ "./utils": {
102
+ "types": "./dist/utils/index.d.ts",
103
+ "default": "./dist/utils/index.js"
104
+ },
105
+ "./package.json": "./package.json"
106
+ },
17
107
  "keywords": [
18
108
  "flap",
19
109
  "four",
@@ -35,7 +125,11 @@
35
125
  "pinata": "^1.10.1"
36
126
  },
37
127
  "devDependencies": {
128
+ "@eslint/js": "^10.0.1",
129
+ "eslint": "^10.7.0",
38
130
  "solc": "^0.8.33",
39
- "typescript": "^5.6.3"
131
+ "typescript": "^5.6.3",
132
+ "typescript-eslint": "^8.65.0",
133
+ "vitest": "^3.2.6"
40
134
  }
41
135
  }
@@ -1,26 +0,0 @@
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>;