four-flap-meme-sdk 1.9.49 → 2.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 (530) hide show
  1. package/README.en.md +41 -6
  2. package/README.md +31 -0
  3. package/README.zh-CN.md +41 -6
  4. package/dist/abis/common.js +74 -68
  5. package/dist/abis/flap/vault.js +9 -7
  6. package/dist/abis/index.d.ts +3 -4
  7. package/dist/abis/index.js +3 -4
  8. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  9. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  10. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  11. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  12. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  13. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  14. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  15. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  16. package/dist/bundle-core/config-helpers.d.ts +36 -0
  17. package/dist/bundle-core/config-helpers.js +57 -0
  18. package/dist/bundle-core/errors.d.ts +50 -0
  19. package/dist/bundle-core/errors.js +34 -0
  20. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  21. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  22. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  23. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  24. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  25. package/dist/bundle-core/four-meme/core.js +515 -0
  26. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  27. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  28. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  29. package/dist/bundle-core/four-meme/private.js +465 -0
  30. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  31. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  32. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  33. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  34. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  35. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  36. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  37. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  38. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  39. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  40. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  41. package/dist/bundle-core/four-meme/swap.js +505 -0
  42. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  43. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  44. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  45. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  46. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  47. package/dist/bundle-core/four-meme/types/index.js +1 -0
  48. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  49. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  50. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  51. package/dist/bundle-core/four-meme/types.js +1 -0
  52. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  53. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  54. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  55. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  56. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  57. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  58. package/dist/bundle-core/index.d.ts +8 -0
  59. package/dist/bundle-core/index.js +8 -0
  60. package/dist/bundle-core/internal.d.ts +21 -0
  61. package/dist/bundle-core/internal.js +182 -0
  62. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  63. package/dist/bundle-core/sign-context-helpers.js +67 -0
  64. package/dist/bundle-core/submit.d.ts +293 -0
  65. package/dist/bundle-core/submit.js +727 -0
  66. package/dist/bundle-core/types/index.d.ts +8 -0
  67. package/dist/bundle-core/types/index.js +1 -0
  68. package/dist/bundle-core/types.d.ts +1 -0
  69. package/dist/bundle-core/types.js +1 -0
  70. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  71. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -116
  72. package/dist/chains/bsc/four/config.d.ts +5 -70
  73. package/dist/chains/bsc/four/config.js +2 -115
  74. package/dist/chains/bsc/four/core.d.ts +1 -4
  75. package/dist/chains/bsc/four/core.js +1 -589
  76. package/dist/chains/bsc/four/disperse.d.ts +12 -0
  77. package/dist/chains/bsc/four/disperse.js +470 -0
  78. package/dist/chains/bsc/four/index.d.ts +6 -6
  79. package/dist/chains/bsc/four/index.js +6 -6
  80. package/dist/chains/bsc/four/internal.d.ts +2 -50
  81. package/dist/chains/bsc/four/internal.js +2 -237
  82. package/dist/chains/bsc/four/pairwise.d.ts +7 -0
  83. package/dist/chains/bsc/four/pairwise.js +308 -0
  84. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  85. package/dist/chains/bsc/four/pancake-proxy.js +1 -688
  86. package/dist/chains/bsc/four/private.d.ts +1 -27
  87. package/dist/chains/bsc/four/private.js +1 -477
  88. package/dist/chains/bsc/four/submit.d.ts +2 -315
  89. package/dist/chains/bsc/four/submit.js +2 -746
  90. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  91. package/dist/chains/bsc/four/swap-buy-first.js +2 -506
  92. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  93. package/dist/chains/bsc/four/swap-internal.js +1 -18
  94. package/dist/chains/bsc/four/swap.d.ts +2 -144
  95. package/dist/chains/bsc/four/swap.js +2 -760
  96. package/dist/chains/bsc/four/sweep.d.ts +13 -0
  97. package/dist/chains/bsc/four/sweep.js +788 -0
  98. package/dist/chains/bsc/four/types.d.ts +1 -476
  99. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  100. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  101. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  102. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  103. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  104. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  105. package/dist/chains/bsc/four/utils.d.ts +5 -18
  106. package/dist/chains/bsc/four/utils.js +5 -1534
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  109. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  110. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -207
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  112. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  113. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  114. package/dist/chains/bsc/pancake/bundle-swap.js +111 -686
  115. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  116. package/dist/chains/bsc/pancake/index.js +1 -3
  117. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  118. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  119. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  120. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  121. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  122. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  123. package/dist/chains/eni/batch-router/transfer.js +54 -23
  124. package/dist/chains/eni/batch-router/utils.js +32 -6
  125. package/dist/chains/eni/bundler/sign.js +4 -4
  126. package/dist/chains/eni/bundler/submit.js +1 -4
  127. package/dist/chains/eni/constants.js +1 -1
  128. package/dist/chains/eni/index.d.ts +1 -1
  129. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  130. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  131. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  132. package/dist/chains/eni/platforms/daoaas/meta.js +8 -4
  133. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -43
  134. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  135. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  136. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  137. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  138. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -47
  139. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  140. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  141. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  142. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  143. package/dist/chains/eni/platforms/iro/index.js +4 -4
  144. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  145. package/dist/chains/eni/platforms/iro/token.js +107 -31
  146. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  147. package/dist/chains/eni/submit.js +5 -13
  148. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  149. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -20
  150. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  151. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  152. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -56
  153. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  154. package/dist/chains/xlayer/eip7702/bundle-sell.js +26 -74
  155. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  156. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -68
  157. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  158. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  159. package/dist/chains/xlayer/eip7702/index.d.ts +27 -46
  160. package/dist/chains/xlayer/eip7702/index.js +27 -81
  161. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  162. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  163. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  164. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +58 -291
  165. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  166. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  167. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  168. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  169. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  170. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  171. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  172. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  173. package/dist/chains/xlayer/eip7702/volume.js +83 -158
  174. package/dist/chains/xlayer/eoa/constants.js +1 -1
  175. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  176. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  177. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  178. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  179. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +64 -276
  180. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  181. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +14 -14
  182. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  183. package/dist/chains/xlayer/eoa/index.js +8 -23
  184. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  185. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  186. package/dist/chains/xlayer/eoa/types-core.d.ts +363 -0
  187. package/dist/chains/xlayer/eoa/types-core.js +53 -0
  188. package/dist/chains/xlayer/eoa/types-create.d.ts +413 -0
  189. package/dist/chains/xlayer/eoa/types-create.js +9 -0
  190. package/dist/chains/xlayer/eoa/types-volume.d.ts +209 -0
  191. package/dist/chains/xlayer/eoa/types-volume.js +13 -0
  192. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  193. package/dist/chains/xlayer/eoa/types.js +1 -3
  194. package/dist/contracts/helper3.d.ts +20 -17
  195. package/dist/contracts/helper3.js +56 -20
  196. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  197. package/dist/contracts/tm-bundle-helpers.js +72 -0
  198. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  199. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -117
  200. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -70
  201. package/dist/contracts/tm-bundle-merkle/config.js +2 -115
  202. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  203. package/dist/contracts/tm-bundle-merkle/core.js +1 -588
  204. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  205. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  206. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -50
  207. package/dist/contracts/tm-bundle-merkle/internal.js +2 -236
  208. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  209. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -687
  210. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  211. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  212. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  213. package/dist/contracts/tm-bundle-merkle/submit.js +3 -919
  214. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  215. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -505
  216. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  217. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  218. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  219. package/dist/contracts/tm-bundle-merkle/swap.js +2 -757
  220. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  221. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  222. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  223. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  224. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  225. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  226. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  227. package/dist/contracts/tm-bundle-merkle/utils.d.ts +5 -6
  228. package/dist/contracts/tm-bundle-merkle/utils.js +5 -6
  229. package/dist/contracts/tm-bundle.d.ts +3 -51
  230. package/dist/contracts/tm-bundle.js +102 -142
  231. package/dist/contracts/tm.d.ts +3 -2
  232. package/dist/contracts/tm.js +36 -32
  233. package/dist/contracts/tm1.js +9 -4
  234. package/dist/contracts/tm2.js +9 -4
  235. package/dist/dex/direct-router-helpers.d.ts +264 -0
  236. package/dist/dex/direct-router-helpers.js +539 -0
  237. package/dist/dex/direct-router.d.ts +3 -125
  238. package/dist/dex/direct-router.js +237 -652
  239. package/dist/dex/types.d.ts +81 -0
  240. package/dist/dex/types.js +1 -0
  241. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  242. package/dist/exports/root-bundle-and-tooling.js +30 -0
  243. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  244. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  245. package/dist/exports/root-foundations.d.ts +35 -0
  246. package/dist/exports/root-foundations.js +70 -0
  247. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  248. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  249. package/dist/flows/create.d.ts +2 -2
  250. package/dist/flows/create.js +6 -6
  251. package/dist/flows/index.d.ts +1 -0
  252. package/dist/flows/index.js +1 -0
  253. package/dist/index.d.ts +20 -91
  254. package/dist/index.js +20 -215
  255. package/dist/shared/abis/common.d.ts +2 -83
  256. package/dist/shared/abis/common.js +2 -252
  257. package/dist/shared/abis/index.d.ts +5 -6
  258. package/dist/shared/abis/index.js +5 -7
  259. package/dist/shared/clients/blockrazor.js +41 -24
  260. package/dist/shared/clients/club48.js +30 -26
  261. package/dist/shared/clients/emitservice.js +2 -0
  262. package/dist/shared/clients/four.js +23 -18
  263. package/dist/shared/clients/index.d.ts +8 -0
  264. package/dist/shared/clients/index.js +8 -0
  265. package/dist/shared/clients/merkle.js +26 -30
  266. package/dist/shared/constants/addresses.d.ts +1 -1
  267. package/dist/shared/constants/addresses.js +11 -2
  268. package/dist/shared/constants/chains.d.ts +1 -1
  269. package/dist/shared/constants/chains.js +1 -1
  270. package/dist/shared/constants/gas.d.ts +1 -1
  271. package/dist/shared/constants/gas.js +2 -6
  272. package/dist/shared/constants/index.d.ts +1 -0
  273. package/dist/shared/constants/index.js +1 -0
  274. package/dist/shared/constants/quote.d.ts +30 -0
  275. package/dist/shared/constants/quote.js +37 -0
  276. package/dist/shared/flap/__tests__/curve.test.js +3 -3
  277. package/dist/shared/flap/abi.js +1 -1
  278. package/dist/shared/flap/constants.d.ts +1 -1
  279. package/dist/shared/flap/constants.js +2 -2
  280. package/dist/shared/flap/curve.js +3 -0
  281. package/dist/shared/flap/errors.d.ts +1 -4
  282. package/dist/shared/flap/errors.js +21 -3
  283. package/dist/shared/flap/index.d.ts +2 -2
  284. package/dist/shared/flap/index.js +2 -2
  285. package/dist/shared/flap/meta.d.ts +16 -18
  286. package/dist/shared/flap/meta.js +14 -26
  287. package/dist/shared/flap/permit.js +6 -5
  288. package/dist/shared/flap/pinata.d.ts +9 -2
  289. package/dist/shared/flap/pinata.js +20 -18
  290. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  291. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  292. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  293. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  294. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  295. package/dist/shared/flap/portal-bundle-merkle/core.js +66 -156
  296. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +81 -86
  297. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  298. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  299. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  300. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  301. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  302. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  303. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  304. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  305. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  306. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  307. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  308. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  309. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  310. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +73 -3
  311. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +100 -0
  312. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +133 -0
  313. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  314. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  315. package/dist/shared/flap/portal-bundle.js +54 -42
  316. package/dist/shared/flap/portal.js +32 -10
  317. package/dist/shared/flap/vanity.js +4 -7
  318. package/dist/shared/flap/vault.d.ts +1 -1
  319. package/dist/shared/flap/vault.js +54 -48
  320. package/dist/shared/flap 2/__tests__/curve.test.d.ts +1 -0
  321. package/dist/shared/flap 2/portal-bundle-merkle/types.js +1 -0
  322. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  323. package/dist/shared/foundation/dex/v3-path.js +35 -0
  324. package/dist/shared/foundation/gas/bundle-gas.d.ts +39 -0
  325. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  326. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  327. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  328. package/dist/shared/foundation/index.d.ts +13 -0
  329. package/dist/shared/foundation/index.js +12 -0
  330. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  331. package/dist/shared/foundation/nonce/nonce-manager.js +180 -0
  332. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  333. package/dist/shared/foundation/normalize-unknown.js +29 -0
  334. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  335. package/dist/shared/foundation/sdk-logger.js +12 -0
  336. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  337. package/dist/shared/foundation/tx/build-request.js +25 -0
  338. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  339. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  340. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  341. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  342. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  343. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  344. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  345. package/dist/shared/foundation/types/erc20.js +1 -0
  346. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  347. package/dist/shared/foundation/types/holders-maker.js +1 -0
  348. package/dist/shared/foundation/types/index.d.ts +7 -0
  349. package/dist/shared/foundation/types/index.js +1 -0
  350. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  351. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  352. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  353. package/dist/shared/foundation/types/multicall.js +1 -0
  354. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  355. package/dist/shared/foundation/types/private-sale.js +1 -0
  356. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  357. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  358. package/dist/shared/four/tax-token.d.ts +1 -1
  359. package/dist/shared/four/tax-token.js +27 -7
  360. package/dist/shared/index.d.ts +4 -0
  361. package/dist/shared/index.js +4 -0
  362. package/dist/types/distribute.d.ts +72 -0
  363. package/dist/types/distribute.js +1 -0
  364. package/dist/types 2/errors.d.ts +27 -0
  365. package/dist/types 2/errors.js +34 -0
  366. package/dist/utils/airdrop-sweep-types.d.ts +1 -0
  367. package/dist/utils/airdrop-sweep-types.js +1 -0
  368. package/dist/utils/airdrop-sweep.d.ts +4 -76
  369. package/dist/utils/airdrop-sweep.js +38 -52
  370. package/dist/utils/bundle-helpers.d.ts +9 -243
  371. package/dist/utils/bundle-helpers.js +10 -584
  372. package/dist/utils/constants.d.ts +5 -61
  373. package/dist/utils/constants.js +5 -80
  374. package/dist/utils/contract-factory.d.ts +2 -4
  375. package/dist/utils/contract-factory.js +25 -18
  376. package/dist/utils/erc20-types.d.ts +1 -0
  377. package/dist/utils/erc20-types.js +1 -0
  378. package/dist/utils/erc20.d.ts +8 -90
  379. package/dist/utils/erc20.js +94 -153
  380. package/dist/utils/errors.d.ts +10 -22
  381. package/dist/utils/errors.js +61 -79
  382. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  383. package/dist/utils/holders-maker/addresses.js +15 -0
  384. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  385. package/dist/utils/holders-maker/buy-tx.js +278 -0
  386. package/dist/utils/holders-maker/constants.d.ts +6 -0
  387. package/dist/utils/holders-maker/constants.js +7 -0
  388. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  389. package/dist/utils/holders-maker/disperse.js +90 -0
  390. package/dist/utils/holders-maker/routing.d.ts +4 -0
  391. package/dist/utils/holders-maker/routing.js +45 -0
  392. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  393. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  394. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  395. package/dist/utils/holders-maker-helpers.js +9 -0
  396. package/dist/utils/holders-maker-types.d.ts +1 -0
  397. package/dist/utils/holders-maker-types.js +1 -0
  398. package/dist/utils/holders-maker.d.ts +2 -138
  399. package/dist/utils/holders-maker.js +23 -651
  400. package/dist/utils/hop-chains.d.ts +35 -0
  401. package/dist/utils/hop-chains.js +215 -0
  402. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  403. package/dist/utils/lp-inspect-helpers.js +109 -0
  404. package/dist/utils/lp-inspect-types.d.ts +1 -0
  405. package/dist/utils/lp-inspect-types.js +1 -0
  406. package/dist/utils/lp-inspect.d.ts +2 -112
  407. package/dist/utils/lp-inspect.js +63 -195
  408. package/dist/utils/mpcExclusive.d.ts +2 -5
  409. package/dist/utils/mpcExclusive.js +4 -3
  410. package/dist/utils/private-sale-types.d.ts +1 -0
  411. package/dist/utils/private-sale-types.js +1 -0
  412. package/dist/utils/private-sale.d.ts +2 -58
  413. package/dist/utils/private-sale.js +2 -7
  414. package/dist/utils/provider-factory.d.ts +4 -0
  415. package/dist/utils/provider-factory.js +10 -0
  416. package/dist/utils/quote-helpers-types.d.ts +1 -0
  417. package/dist/utils/quote-helpers-types.js +1 -0
  418. package/dist/utils/quote-helpers.d.ts +4 -45
  419. package/dist/utils/quote-helpers.js +15 -65
  420. package/dist/utils/stealth-transfer.d.ts +2 -28
  421. package/dist/utils/stealth-transfer.js +30 -14
  422. package/dist/utils/swap-helpers.d.ts +0 -3
  423. package/dist/utils/swap-helpers.js +6 -9
  424. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  425. package/dist/utils/types/airdrop-sweep.js +1 -0
  426. package/dist/utils/types/contract-factory.d.ts +1 -0
  427. package/dist/utils/types/contract-factory.js +1 -0
  428. package/dist/utils/types/erc20.d.ts +1 -0
  429. package/dist/utils/types/erc20.js +1 -0
  430. package/dist/utils/types/errors.d.ts +1 -0
  431. package/dist/utils/types/errors.js +1 -0
  432. package/dist/utils/types/holders-maker.d.ts +1 -0
  433. package/dist/utils/types/holders-maker.js +1 -0
  434. package/dist/utils/types/hop-chains.d.ts +8 -0
  435. package/dist/utils/types/hop-chains.js +1 -0
  436. package/dist/utils/types/index.d.ts +13 -0
  437. package/dist/utils/types/index.js +1 -0
  438. package/dist/utils/types/lp-inspect.d.ts +1 -0
  439. package/dist/utils/types/lp-inspect.js +1 -0
  440. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  441. package/dist/utils/types/mpc-exclusive.js +1 -0
  442. package/dist/utils/types/private-sale.d.ts +1 -0
  443. package/dist/utils/types/private-sale.js +1 -0
  444. package/dist/utils/types/quote-helpers.d.ts +1 -0
  445. package/dist/utils/types/quote-helpers.js +1 -0
  446. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  447. package/dist/utils/types/stealth-transfer.js +1 -0
  448. package/dist/utils/types/wallet.d.ts +25 -0
  449. package/dist/utils/types/wallet.js +1 -0
  450. package/dist/utils/wallet.d.ts +2 -25
  451. package/dist/utils/wallet.js +9 -10
  452. package/package.json +55 -2
  453. package/src/abis/contracts/TaxToken.json +969 -0
  454. package/src/abis/contracts/TokenManager.json +836 -0
  455. package/src/abis/contracts/TokenManager2.json +136 -0
  456. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  457. /package/dist/{shared 2/flap/__tests__/curve.test.d.ts → bundle-core/__tests__/config-helpers.test.d.ts} +0 -0
  458. /package/dist/{shared 2/flap/portal-bundle-merkle/types.js → bundle-core/__tests__/facade-parity.test.d.ts} +0 -0
  459. /package/dist/{shared 2/abis → shared/abis 2}/TaxToken.json +0 -0
  460. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager.json +0 -0
  461. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager2.json +0 -0
  462. /package/dist/{shared 2/abis → shared/abis 2}/TokenManagerHelper3.json +0 -0
  463. /package/dist/{shared 2/abis → shared/abis 2}/common.d.ts +0 -0
  464. /package/dist/{shared 2/abis → shared/abis 2}/common.js +0 -0
  465. /package/dist/{shared 2/abis → shared/abis 2}/index.d.ts +0 -0
  466. /package/dist/{shared 2/abis → shared/abis 2}/index.js +0 -0
  467. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.d.ts +0 -0
  468. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.js +0 -0
  469. /package/dist/{shared 2/clients → shared/clients 2}/club48.d.ts +0 -0
  470. /package/dist/{shared 2/clients → shared/clients 2}/club48.js +0 -0
  471. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.d.ts +0 -0
  472. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.js +0 -0
  473. /package/dist/{shared 2/clients → shared/clients 2}/four.d.ts +0 -0
  474. /package/dist/{shared 2/clients → shared/clients 2}/four.js +0 -0
  475. /package/dist/{shared 2/clients → shared/clients 2}/merkle.d.ts +0 -0
  476. /package/dist/{shared 2/clients → shared/clients 2}/merkle.js +0 -0
  477. /package/dist/{shared 2/flap → shared/flap 2}/__tests__/curve.test.js +0 -0
  478. /package/dist/{shared 2/flap → shared/flap 2}/abi.d.ts +0 -0
  479. /package/dist/{shared 2/flap → shared/flap 2}/abi.js +0 -0
  480. /package/dist/{shared 2/flap → shared/flap 2}/constants.d.ts +0 -0
  481. /package/dist/{shared 2/flap → shared/flap 2}/constants.js +0 -0
  482. /package/dist/{shared 2/flap → shared/flap 2}/curve.d.ts +0 -0
  483. /package/dist/{shared 2/flap → shared/flap 2}/curve.js +0 -0
  484. /package/dist/{shared 2/flap → shared/flap 2}/errors.d.ts +0 -0
  485. /package/dist/{shared 2/flap → shared/flap 2}/errors.js +0 -0
  486. /package/dist/{shared 2/flap → shared/flap 2}/index.d.ts +0 -0
  487. /package/dist/{shared 2/flap → shared/flap 2}/index.js +0 -0
  488. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.d.ts +0 -0
  489. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.js +0 -0
  490. /package/dist/{shared 2/flap → shared/flap 2}/meta.d.ts +0 -0
  491. /package/dist/{shared 2/flap → shared/flap 2}/meta.js +0 -0
  492. /package/dist/{shared 2/flap → shared/flap 2}/permit.d.ts +0 -0
  493. /package/dist/{shared 2/flap → shared/flap 2}/permit.js +0 -0
  494. /package/dist/{shared 2/flap → shared/flap 2}/pinata.d.ts +0 -0
  495. /package/dist/{shared 2/flap → shared/flap 2}/pinata.js +0 -0
  496. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.d.ts +0 -0
  497. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.js +0 -0
  498. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.d.ts +0 -0
  499. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.js +0 -0
  500. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.d.ts +0 -0
  501. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.js +0 -0
  502. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  503. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.js +0 -0
  504. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.d.ts +0 -0
  505. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.js +0 -0
  506. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  507. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.js +0 -0
  508. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.d.ts +0 -0
  509. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.js +0 -0
  510. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.d.ts +0 -0
  511. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.js +0 -0
  512. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.d.ts +0 -0
  513. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.js +0 -0
  514. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/types.d.ts +0 -0
  515. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.d.ts +0 -0
  516. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.js +0 -0
  517. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.d.ts +0 -0
  518. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.js +0 -0
  519. /package/dist/{shared 2/flap → shared/flap 2}/portal.d.ts +0 -0
  520. /package/dist/{shared 2/flap → shared/flap 2}/portal.js +0 -0
  521. /package/dist/{shared 2/flap → shared/flap 2}/vanity.d.ts +0 -0
  522. /package/dist/{shared 2/flap → shared/flap 2}/vanity.js +0 -0
  523. /package/dist/{shared 2/flap → shared/flap 2}/vault.d.ts +0 -0
  524. /package/dist/{shared 2/flap → shared/flap 2}/vault.js +0 -0
  525. /package/dist/{shared 2/four → shared/four 2}/index.d.ts +0 -0
  526. /package/dist/{shared 2/four → shared/four 2}/index.js +0 -0
  527. /package/dist/{shared 2/four → shared/four 2}/tax-token.d.ts +0 -0
  528. /package/dist/{shared 2/four → shared/four 2}/tax-token.js +0 -0
  529. /package/dist/{shared 2/index.d.ts → shared/index 2.js} +0 -0
  530. /package/dist/{shared 2/index.js → shared/index.d 2.ts} +0 -0
@@ -1,254 +1,4 @@
1
1
  /**
2
- * 公共 ABI 定义
3
- *
4
- * 将重复的 ABI 提取到这里,统一管理
2
+ * @deprecated 兼容路径 — 唯一数据源见 `src/abis/common.ts`
5
3
  */
6
- // ============================================================================
7
- // ERC20 ABI
8
- // ============================================================================
9
- /** 完整 ERC20 ABI */
10
- export const ERC20_ABI = [
11
- 'function approve(address spender, uint256 amount) external returns (bool)',
12
- 'function allowance(address owner, address spender) external view returns (uint256)',
13
- 'function balanceOf(address account) external view returns (uint256)',
14
- 'function decimals() external view returns (uint8)',
15
- 'function name() external view returns (string)',
16
- 'function symbol() external view returns (string)',
17
- 'function totalSupply() external view returns (uint256)',
18
- 'function transfer(address to, uint256 amount) external returns (bool)',
19
- 'function transferFrom(address from, address to, uint256 amount) external returns (bool)',
20
- ];
21
- /** 精简 ERC20 ABI(余额查询 + decimals) */
22
- export const ERC20_BALANCE_ABI = [
23
- 'function balanceOf(address account) external view returns (uint256)',
24
- 'function decimals() external view returns (uint8)',
25
- ];
26
- /** ERC20 授权相关 ABI */
27
- export const ERC20_ALLOWANCE_ABI = [
28
- 'function allowance(address owner, address spender) external view returns (uint256)',
29
- 'function approve(address spender, uint256 amount) external returns (bool)',
30
- 'function decimals() external view returns (uint8)',
31
- ];
32
- // ============================================================================
33
- // Multicall3 ABI
34
- // ============================================================================
35
- export const MULTICALL3_ABI = [
36
- // ✅ 标记为 view,确保 ethers.js v6 使用 call 而不是 sendTransaction
37
- 'function aggregate3(tuple(address target, bool allowFailure, bytes callData)[] calls) view returns (tuple(bool success, bytes returnData)[])',
38
- 'function aggregate(tuple(address target, bytes callData)[] calls) view returns (uint256 blockNumber, bytes[] returnData)',
39
- 'function getEthBalance(address addr) view returns (uint256 balance)',
40
- ];
41
- // ============================================================================
42
- // PancakeSwap / Uniswap V2 Router ABI
43
- // ============================================================================
44
- /** V2 Router 完整 ABI */
45
- export const V2_ROUTER_ABI = [
46
- // BNB/ETH → Token (买入)
47
- 'function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)',
48
- 'function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable',
49
- // Token → BNB/ETH (卖出)
50
- 'function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)',
51
- 'function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external',
52
- // Token → Token
53
- 'function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)',
54
- 'function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external',
55
- // 报价
56
- 'function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts)',
57
- 'function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts)',
58
- // Factory
59
- 'function factory() external view returns (address)',
60
- ];
61
- /** V2 Router 精简 ABI(只用于报价) */
62
- export const V2_ROUTER_QUOTE_ABI = [
63
- 'function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts)',
64
- ];
65
- // ============================================================================
66
- // PancakeSwap / Uniswap V3 Router ABI (SwapRouter02)
67
- // ============================================================================
68
- /** V3 SwapRouter02 ABI(新版,deadline 在 multicall 中传递) */
69
- export const V3_ROUTER02_ABI = [
70
- // exactInputSingle - 单跳,不含 deadline
71
- {
72
- "inputs": [{
73
- "components": [
74
- { "name": "tokenIn", "type": "address" },
75
- { "name": "tokenOut", "type": "address" },
76
- { "name": "fee", "type": "uint24" },
77
- { "name": "recipient", "type": "address" },
78
- { "name": "amountIn", "type": "uint256" },
79
- { "name": "amountOutMinimum", "type": "uint256" },
80
- { "name": "sqrtPriceLimitX96", "type": "uint160" }
81
- ],
82
- "name": "params",
83
- "type": "tuple"
84
- }],
85
- "name": "exactInputSingle",
86
- "outputs": [{ "name": "amountOut", "type": "uint256" }],
87
- "stateMutability": "payable",
88
- "type": "function"
89
- },
90
- // exactInput - 多跳,不含 deadline
91
- {
92
- "inputs": [{
93
- "components": [
94
- { "name": "path", "type": "bytes" },
95
- { "name": "recipient", "type": "address" },
96
- { "name": "amountIn", "type": "uint256" },
97
- { "name": "amountOutMinimum", "type": "uint256" }
98
- ],
99
- "name": "params",
100
- "type": "tuple"
101
- }],
102
- "name": "exactInput",
103
- "outputs": [{ "name": "amountOut", "type": "uint256" }],
104
- "stateMutability": "payable",
105
- "type": "function"
106
- },
107
- // multicall - 带 deadline 版本
108
- 'function multicall(uint256 deadline, bytes[] calldata data) external payable returns (bytes[] memory results)',
109
- 'function refundETH() external payable',
110
- 'function unwrapWETH9(uint256 amountMinimum, address recipient) external payable',
111
- ];
112
- /** V3 SwapRouter 旧版 ABI(deadline 在 struct 内部) */
113
- export const V3_ROUTER_LEGACY_ABI = [
114
- // exactInputSingle - 包含 deadline
115
- {
116
- "inputs": [{
117
- "components": [
118
- { "name": "tokenIn", "type": "address" },
119
- { "name": "tokenOut", "type": "address" },
120
- { "name": "fee", "type": "uint24" },
121
- { "name": "recipient", "type": "address" },
122
- { "name": "deadline", "type": "uint256" },
123
- { "name": "amountIn", "type": "uint256" },
124
- { "name": "amountOutMinimum", "type": "uint256" },
125
- { "name": "sqrtPriceLimitX96", "type": "uint160" }
126
- ],
127
- "name": "params",
128
- "type": "tuple"
129
- }],
130
- "name": "exactInputSingle",
131
- "outputs": [{ "name": "amountOut", "type": "uint256" }],
132
- "stateMutability": "payable",
133
- "type": "function"
134
- },
135
- // multicall - 不带 deadline 版本
136
- 'function multicall(bytes[] calldata data) external payable returns (bytes[] memory results)',
137
- 'function refundETH() external payable',
138
- 'function unwrapWETH9(uint256 amountMinimum, address recipient) external payable',
139
- ];
140
- // ============================================================================
141
- // SwapRouter02 V2 方法 ABI (PotatoSwap/DYORSwap 等)
142
- // ============================================================================
143
- /**
144
- * SwapRouter02 的 V2 方法 ABI
145
- *
146
- * 注意:SwapRouter02 的 V2 方法只有 token-to-token 交换
147
- * 没有 swapExactETHForTokens / swapExactTokensForETH
148
- * 必须通过 multicall 组合 wrapETH/unwrapWETH9 来处理原生代币
149
- */
150
- export const SWAP_ROUTER02_V2_ABI = [
151
- // V2 交换方法(只有 token-to-token)
152
- 'function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to) external payable returns (uint256 amountOut)',
153
- 'function swapTokensForExactTokens(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to) external payable returns (uint256 amountIn)',
154
- // Multicall - 多种重载
155
- 'function multicall(uint256 deadline, bytes[] calldata data) external payable returns (bytes[] memory results)',
156
- 'function multicall(bytes32 previousBlockhash, bytes[] calldata data) external payable returns (bytes[] memory results)',
157
- 'function multicall(bytes[] calldata data) external payable returns (bytes[] memory results)',
158
- // 辅助方法 - ETH/WETH 转换
159
- 'function wrapETH(uint256 value) external payable',
160
- 'function unwrapWETH9(uint256 amountMinimum, address recipient) external payable',
161
- 'function unwrapWETH9(uint256 amountMinimum) external payable',
162
- 'function refundETH() external payable',
163
- // 代币操作
164
- 'function pull(address token, uint256 value) external payable',
165
- 'function sweepToken(address token, uint256 amountMinimum, address recipient) external payable',
166
- 'function sweepToken(address token, uint256 amountMinimum) external payable',
167
- ];
168
- // ============================================================================
169
- // V3 Quoter ABI
170
- // ============================================================================
171
- /** V3 QuoterV2 ABI */
172
- export const V3_QUOTER_ABI = [
173
- {
174
- "inputs": [{
175
- "components": [
176
- { "name": "tokenIn", "type": "address" },
177
- { "name": "tokenOut", "type": "address" },
178
- { "name": "amountIn", "type": "uint256" },
179
- { "name": "fee", "type": "uint24" },
180
- { "name": "sqrtPriceLimitX96", "type": "uint160" }
181
- ],
182
- "name": "params",
183
- "type": "tuple"
184
- }],
185
- "name": "quoteExactInputSingle",
186
- "outputs": [
187
- { "name": "amountOut", "type": "uint256" },
188
- { "name": "sqrtPriceX96After", "type": "uint160" },
189
- { "name": "initializedTicksCrossed", "type": "uint32" },
190
- { "name": "gasEstimate", "type": "uint256" }
191
- ],
192
- "stateMutability": "nonpayable",
193
- "type": "function"
194
- }
195
- ];
196
- // ============================================================================
197
- // Uniswap V2 Factory & Pair ABI
198
- // ============================================================================
199
- export const V2_FACTORY_ABI = [
200
- 'function getPair(address tokenA, address tokenB) external view returns (address pair)',
201
- ];
202
- export const V2_PAIR_ABI = [
203
- 'function token0() external view returns (address)',
204
- 'function token1() external view returns (address)',
205
- 'function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)',
206
- ];
207
- // ============================================================================
208
- // Uniswap V3 Factory & Pool ABI
209
- // ============================================================================
210
- export const V3_FACTORY_ABI = [
211
- 'function getPool(address tokenA, address tokenB, uint24 fee) external view returns (address pool)',
212
- ];
213
- export const V3_POOL_ABI = [
214
- 'function token0() external view returns (address)',
215
- 'function token1() external view returns (address)',
216
- 'function fee() external view returns (uint24)',
217
- 'function slot0() external view returns (uint160 sqrtPriceX96, int24 tick, uint16 observationIndex, uint16 observationCardinality, uint16 observationCardinalityNext, uint8 feeProtocol, bool unlocked)',
218
- ];
219
- // ============================================================================
220
- // Flap Portal ABI
221
- // ============================================================================
222
- export const FLAP_PORTAL_ABI = [
223
- // 创建代币
224
- 'function newToken(string name, string symbol, string meta) external payable returns (address)',
225
- 'function newTokenV2((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData)) external payable returns (address)',
226
- 'function newTokenV3((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData)) external payable returns (address)',
227
- // ✅ V4:支持 dexId / lpFeeProfile(与 portal-bundle-merkle/core.ts 的 newTokenV4.populateTransaction 对齐)
228
- 'function newTokenV4((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile)) external payable returns (address)',
229
- // ✅ V5:Tax Token V2 高级税收分配
230
- 'function newTokenV5((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile,uint64 taxDuration,uint64 antiFarmerDuration,uint16 mktBps,uint16 deflationBps,uint16 dividendBps,uint16 lpBps,uint256 minimumShareBalance)) external payable returns (address)',
231
- // 交易
232
- 'function swapExactInput((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData)) external payable returns (uint256)',
233
- // ✅ V3:支持 extensionData(注意:这里的 V3 指“扩展交易接口版本”,不是“外盘 V3 池子”)
234
- 'function swapExactInputV3((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData,bytes extensionData)) external payable returns (uint256)',
235
- 'function quoteExactInput((address inputToken,address outputToken,uint256 inputAmount)) external view returns (uint256)',
236
- // 旧版兼容
237
- 'function buy(address token, uint256 minReceived) external payable returns (uint256)',
238
- 'function sell(address token, uint256 sellAmount, uint256 minReceived) external returns (uint256)',
239
- ];
240
- // ============================================================================
241
- // Four TokenManager ABI
242
- // ============================================================================
243
- export const TM2_ABI = [
244
- // 新版方法(Four.meme TokenManager2)
245
- 'function buyTokenAMAP(uint256 origin, address token, address to, uint256 funds, uint256 minAmount) external payable',
246
- 'function sellToken(uint256 origin, address token, uint256 amount, uint256 minFunds) external',
247
- // 旧版兼容方法
248
- 'function buy(address token, uint256 minReceived) external payable returns (uint256)',
249
- 'function sell(address token, uint256 sellAmount, uint256 minReceived) external returns (uint256)',
250
- 'function trySell(address token, uint256 sellAmount) external view returns (uint256)',
251
- ];
252
- export const HELPER3_ABI = [
253
- 'function getTokenInfo(address token) external view returns (tuple(address addr, string name, string symbol, uint8 decimals, uint256 totalSupply, uint256 balance, uint256 price, uint256 marketCap))',
254
- ];
4
+ export * from '../../abis/common.js';
@@ -1,6 +1,5 @@
1
- import TokenManager from './TokenManager.json';
2
- import TokenManager2 from './TokenManager2.json';
3
- import TokenManagerHelper3 from './TokenManagerHelper3.json';
4
- import TaxToken from './TaxToken.json';
5
- export { TokenManager, TokenManager2, TokenManagerHelper3, TaxToken };
6
- export * from './common.js';
1
+ /**
2
+ * ABI 导出(兼容路径:历史代码多从此处 import)。
3
+ * 唯一数据源见 `src/abis/`。
4
+ */
5
+ export * from '../../abis/index.js';
@@ -1,7 +1,5 @@
1
- import TokenManager from './TokenManager.json' with { type: 'json' };
2
- import TokenManager2 from './TokenManager2.json' with { type: 'json' };
3
- import TokenManagerHelper3 from './TokenManagerHelper3.json' with { type: 'json' };
4
- import TaxToken from './TaxToken.json' with { type: 'json' };
5
- export { TokenManager, TokenManager2, TokenManagerHelper3, TaxToken };
6
- // ✅ 公共 ABI 导出
7
- export * from './common.js';
1
+ /**
2
+ * ABI 导出(兼容路径:历史代码多从此处 import)。
3
+ * 唯一数据源见 `src/abis/`。
4
+ */
5
+ export * from '../../abis/index.js';
@@ -27,6 +27,7 @@
27
27
  */
28
28
  import { JsonRpcProvider, Transaction, ethers } from 'ethers';
29
29
  import { GAS_LIMITS } from '../constants/index.js';
30
+ import { getErrorMessageFromUnknown } from '../foundation/index.js';
30
31
  // ============================================================================
31
32
  // 常量
32
33
  // ============================================================================
@@ -55,9 +56,14 @@ const MIN_GAS_PRICE_GWEI = 0.05;
55
56
  * BlockRazor 客户端
56
57
  */
57
58
  export class BlockRazorClient {
59
+ provider;
60
+ chainId;
61
+ apiKey;
62
+ builderUrl;
63
+ // 区块号缓存
64
+ blockNumberCache = null;
65
+ static BLOCK_CACHE_TTL_MS = 1000; // 1秒缓存
58
66
  constructor(config) {
59
- // 区块号缓存
60
- this.blockNumberCache = null;
61
67
  this.chainId = config.chainId;
62
68
  this.apiKey = config.apiKey;
63
69
  // 普通 RPC(用于查询)
@@ -114,7 +120,7 @@ export class BlockRazorClient {
114
120
  async buildIncentiveTransaction(params) {
115
121
  const { wallet, amount, nonce, gasPrice } = params;
116
122
  // 获取 nonce(使用 pending 确保包含待处理交易)
117
- const txNonce = nonce ?? await this.provider.getTransactionCount(wallet.address, 'pending');
123
+ const txNonce = nonce ?? (await this.provider.getTransactionCount(wallet.address, 'pending'));
118
124
  // 获取 gas price
119
125
  let txGasPrice = gasPrice;
120
126
  if (!txGasPrice) {
@@ -152,7 +158,7 @@ export class BlockRazorClient {
152
158
  const gasPrice = tx.gasPrice || 0n;
153
159
  const minGasPrice = ethers.parseUnits(String(MIN_GAS_PRICE_GWEI), 'gwei');
154
160
  if (gasPrice < minGasPrice) {
155
- void 0;
161
+ throw new Error(`Transaction gas price (${ethers.formatUnits(gasPrice, 'gwei')} gwei) is below minimum (${MIN_GAS_PRICE_GWEI} gwei)`);
156
162
  }
157
163
  }
158
164
  catch {
@@ -184,7 +190,7 @@ export class BlockRazorClient {
184
190
  jsonrpc: '2.0',
185
191
  id: '1',
186
192
  method: 'eth_sendBundle',
187
- params: [bundleParams]
193
+ params: [bundleParams],
188
194
  };
189
195
  const headers = {
190
196
  'Content-Type': 'application/json',
@@ -203,12 +209,23 @@ export class BlockRazorClient {
203
209
  throw new Error(`HTTP ${response.status}: ${text}`);
204
210
  }
205
211
  const result = await response.json();
212
+ if (typeof result !== 'object' || result === null) {
213
+ throw new Error('Invalid JSON-RPC response');
214
+ }
215
+ const rpc = result;
206
216
  // 检查 JSON-RPC 错误
207
- if (result.error) {
208
- throw new Error(`RPC Error: ${result.error.message || JSON.stringify(result.error)}`);
217
+ if (rpc.error != null) {
218
+ const er = rpc.error;
219
+ const rpcMsg = typeof er === 'object' &&
220
+ er !== null &&
221
+ 'message' in er &&
222
+ typeof er.message === 'string'
223
+ ? er.message
224
+ : JSON.stringify(er);
225
+ throw new Error(`RPC Error: ${rpcMsg}`);
209
226
  }
210
227
  // 提取 bundle hash
211
- const bundleHash = result.result;
228
+ const bundleHash = rpc.result;
212
229
  if (typeof bundleHash === 'string') {
213
230
  return bundleHash;
214
231
  }
@@ -217,14 +234,12 @@ export class BlockRazorClient {
217
234
  return String(bundleHash.bundleHash);
218
235
  }
219
236
  }
220
- return JSON.stringify(result.result || result);
237
+ return JSON.stringify(rpc.result ?? rpc);
221
238
  }
222
239
  catch (error) {
223
- const errorMsg = error instanceof Error ? error.message : String(error);
240
+ const errorMsg = getErrorMessageFromUnknown(error);
224
241
  console.error(`❌ [BlockRazor] Bundle 发送失败: ${errorMsg}`);
225
- const enhanced = new Error(`BlockRazor send bundle failed: ${errorMsg}`);
226
- Object.assign(enhanced, { cause: error });
227
- throw enhanced;
242
+ throw new Error(`BlockRazor send bundle failed: ${errorMsg}`);
228
243
  }
229
244
  }
230
245
  /**
@@ -260,7 +275,7 @@ export class BlockRazorClient {
260
275
  noMerge: options.noMerge,
261
276
  });
262
277
  // 提取交易哈希
263
- const txHashes = options.transactions.map(rawTx => {
278
+ const txHashes = options.transactions.map((rawTx) => {
264
279
  try {
265
280
  return Transaction.from(rawTx).hash || '';
266
281
  }
@@ -276,16 +291,19 @@ export class BlockRazorClient {
276
291
  };
277
292
  }
278
293
  catch (error) {
279
- lastError = error instanceof Error ? error : new Error(String(error));
294
+ lastError = error;
280
295
  if (autoRetry && attempt < maxRetries) {
281
296
  attempt++;
282
- await new Promise(resolve => setTimeout(resolve, 3000)); // 等待一个区块
297
+ await new Promise((resolve) => setTimeout(resolve, 3000)); // 等待一个区块
283
298
  continue;
284
299
  }
285
300
  throw error;
286
301
  }
287
302
  }
288
- throw lastError || new Error('Bundle submission failed after all retries');
303
+ if (lastError !== null && lastError !== undefined) {
304
+ throw lastError;
305
+ }
306
+ throw new Error('Bundle submission failed after all retries');
289
307
  }
290
308
  /**
291
309
  * 发送带激励的 Bundle(自动添加激励交易)
@@ -351,7 +369,7 @@ export class BlockRazorClient {
351
369
  index,
352
370
  hash,
353
371
  success: false,
354
- error: error instanceof Error ? error.message : String(error),
372
+ error: getErrorMessageFromUnknown(error),
355
373
  };
356
374
  }
357
375
  });
@@ -442,7 +460,7 @@ export class BlockRazorClient {
442
460
  return { index: globalIndex, hash: txResponse.hash, error: null };
443
461
  }
444
462
  catch (err) {
445
- const errorMsg = err instanceof Error ? err.message : String(err);
463
+ const errorMsg = getErrorMessageFromUnknown(err);
446
464
  console.warn(`[broadcastParallel] 交易 ${globalIndex} 广播失败:`, errorMsg);
447
465
  return { index: globalIndex, hash: '', error: errorMsg };
448
466
  }
@@ -501,19 +519,19 @@ export class BlockRazorClient {
501
519
  }
502
520
  }
503
521
  catch (waitErr) {
504
- const waitMsg = waitErr instanceof Error ? waitErr.message : String(waitErr);
505
- console.warn(`[broadcastSequential] 交易 ${i} 等待确认超时:`, waitMsg);
522
+ console.warn(`[broadcastSequential] 交易 ${i} 等待确认超时:`, getErrorMessageFromUnknown(waitErr));
523
+ // 超时不算失败,交易可能还在 pending
506
524
  }
507
525
  }
508
526
  else {
509
527
  // 不等待确认,只加一个小延迟确保 RPC 处理完成
510
528
  if (broadcastDelay > 0 && i < signedTransactions.length - 1) {
511
- await new Promise(resolve => setTimeout(resolve, broadcastDelay));
529
+ await new Promise((resolve) => setTimeout(resolve, broadcastDelay));
512
530
  }
513
531
  }
514
532
  }
515
533
  catch (err) {
516
- const errorMsg = err instanceof Error ? err.message : String(err);
534
+ const errorMsg = getErrorMessageFromUnknown(err);
517
535
  console.warn(`[broadcastSequential] 交易 ${i} 广播失败:`, errorMsg);
518
536
  errors.push({ index: i, error: errorMsg });
519
537
  // 如果是 nonce 问题,后续交易也会失败,提前终止
@@ -584,7 +602,6 @@ export class BlockRazorClient {
584
602
  };
585
603
  }
586
604
  }
587
- BlockRazorClient.BLOCK_CACHE_TTL_MS = 1000; // 1秒缓存
588
605
  /**
589
606
  * 创建 BlockRazor 客户端的便捷函数
590
607
  */
@@ -4,6 +4,8 @@ import { ethers } from 'ethers';
4
4
  * 48.club Bundle 客户端
5
5
  */
6
6
  export class Club48Client {
7
+ endpoint;
8
+ explorerEndpoint;
7
9
  constructor(config) {
8
10
  this.endpoint = config?.endpoint || 'https://puissant-bsc.48.club';
9
11
  this.explorerEndpoint = config?.explorerEndpoint || 'https://explore.48.club';
@@ -18,7 +20,7 @@ export class Club48Client {
18
20
  */
19
21
  static sign48SoulPoint(privateKey, txs) {
20
22
  // 1. 计算每笔交易的哈希
21
- const txHashes = txs.map(tx => ethers.keccak256(tx));
23
+ const txHashes = txs.map((tx) => ethers.keccak256(tx));
22
24
  // 2. 连接所有哈希
23
25
  const concatenated = ethers.concat(txHashes);
24
26
  // 3. 对连接后的数据进行哈希
@@ -103,7 +105,7 @@ export class Club48Client {
103
105
  }
104
106
  // 添加 Soul Point 签名(优先:调用方直接提供;否则按 opts 生成)
105
107
  if (params.soulPointSignature) {
106
- bundleParams["48spSign"] = params.soulPointSignature;
108
+ bundleParams['48spSign'] = params.soulPointSignature;
107
109
  }
108
110
  else if (opts && opts.spMode && opts.spMode !== 'none') {
109
111
  if (!opts.spPrivateKey) {
@@ -121,17 +123,17 @@ export class Club48Client {
121
123
  }
122
124
  if (opts.spVMode)
123
125
  sig = Club48Client.normalizeSignatureV(sig, opts.spVMode);
124
- bundleParams["48spSign"] = sig;
126
+ bundleParams['48spSign'] = sig;
125
127
  }
126
128
  // 添加 backrun 目标(如果提供)
127
129
  if (params.backrunTarget) {
128
130
  bundleParams.backrunTarget = params.backrunTarget;
129
131
  }
130
132
  const response = await axios.post(this.endpoint, {
131
- jsonrpc: "2.0",
133
+ jsonrpc: '2.0',
132
134
  id: 1,
133
- method: "eth_sendBundle",
134
- params: [bundleParams]
135
+ method: 'eth_sendBundle',
136
+ params: [bundleParams],
135
137
  });
136
138
  if (response.data.error) {
137
139
  throw new Error(`48.club bundle failed: ${response.data.error.message}`);
@@ -146,10 +148,10 @@ export class Club48Client {
146
148
  */
147
149
  async sendPrivateTransaction(signedTx) {
148
150
  const response = await axios.post(this.endpoint, {
149
- jsonrpc: "2.0",
151
+ jsonrpc: '2.0',
150
152
  id: 1,
151
- method: "eth_sendPrivateRawTransaction",
152
- params: [signedTx]
153
+ method: 'eth_sendPrivateRawTransaction',
154
+ params: [signedTx],
153
155
  });
154
156
  if (response.data.error) {
155
157
  throw new Error(`48.club tx failed: ${response.data.error.message}`);
@@ -179,10 +181,10 @@ export class Club48Client {
179
181
  signature = Club48Client.normalizeSignatureV(signature, opts.spVMode);
180
182
  // 2) 调用 48.club RPC
181
183
  const response = await axios.post(this.endpoint, {
182
- jsonrpc: "2.0",
184
+ jsonrpc: '2.0',
183
185
  id: 1,
184
- method: "eth_sendPrivateTransactionWith48SP",
185
- params: [signedTx, signature]
186
+ method: 'eth_sendPrivateTransactionWith48SP',
187
+ params: [signedTx, signature],
186
188
  });
187
189
  if (response.data.error) {
188
190
  throw new Error(`48.club tx failed: ${response.data.error.message}`);
@@ -196,9 +198,9 @@ export class Club48Client {
196
198
  */
197
199
  async getMinGasPrice() {
198
200
  const response = await axios.post(this.endpoint, {
199
- jsonrpc: "2.0",
201
+ jsonrpc: '2.0',
200
202
  id: 1,
201
- method: "eth_gasPrice"
203
+ method: 'eth_gasPrice',
202
204
  });
203
205
  if (response.data.error) {
204
206
  throw new Error(`Get gas price failed: ${response.data.error.message}`);
@@ -237,13 +239,15 @@ export class Club48Client {
237
239
  throw new Error(`Bundle failed to execute: ${JSON.stringify(status)}`);
238
240
  }
239
241
  // 等待 3 秒后重试
240
- await new Promise(resolve => setTimeout(resolve, 3000));
242
+ await new Promise((resolve) => setTimeout(resolve, 3000));
241
243
  }
242
244
  catch (error) {
243
- // 如果是 404 或网络错误,继续等待(可能是 explorer 还没索引到)
244
- const errObj = error;
245
- if (errObj.response?.status === 404 || errObj.code === 'ECONNREFUSED' || errObj.code === 'ENOTFOUND') {
246
- await new Promise(resolve => setTimeout(resolve, 3000));
245
+ const status = axios.isAxiosError(error) ? error.response?.status : undefined;
246
+ const nodeCode = typeof error === 'object' && error !== null && 'code' in error
247
+ ? String(error.code ?? '')
248
+ : '';
249
+ if (status === 404 || nodeCode === 'ECONNREFUSED' || nodeCode === 'ENOTFOUND') {
250
+ await new Promise((resolve) => setTimeout(resolve, 3000));
247
251
  continue;
248
252
  }
249
253
  // 其他错误,如果有最后状态且为 INCLUDED,返回成功
@@ -269,8 +273,8 @@ export class Club48Client {
269
273
  transaction: {
270
274
  from: '0x0000000000000000000000000000000000000000',
271
275
  gasPrice: '0',
272
- nonce: 0
273
- }
276
+ nonce: 0,
277
+ },
274
278
  };
275
279
  }
276
280
  }
@@ -287,7 +291,7 @@ export function createAuctionFeedClient(wsUrl, callbacks) {
287
291
  },
288
292
  close: () => {
289
293
  callbacks.onClose?.();
290
- }
294
+ },
291
295
  };
292
296
  }
293
297
  /**
@@ -307,13 +311,13 @@ export async function sendBatchPrivateTransactions(signedTxs, spPrivateKey, endp
307
311
  signature = Club48Client.normalizeSignatureV(signature, opts.spVMode);
308
312
  // 2. 批量提交
309
313
  const response = await axios.post(endpoint, {
310
- jsonrpc: "2.0",
314
+ jsonrpc: '2.0',
311
315
  id: 1,
312
- method: "eth_sendBatchPrivateTransactionsWith48SP",
316
+ method: 'eth_sendBatchPrivateTransactionsWith48SP',
313
317
  params: [
314
318
  signedTxs, // 已签名的交易数组
315
- signature // 48SP 签名
316
- ]
319
+ signature, // 48SP 签名
320
+ ],
317
321
  });
318
322
  // 注意:批量方法不返回交易哈希,只确认接收
319
323
  if (response.data.error) {
@@ -13,6 +13,8 @@ async function parseJsonSafe(resp) {
13
13
  return JSON.parse(text);
14
14
  }
15
15
  export class EmitServiceClient {
16
+ baseUrl;
17
+ headers;
16
18
  constructor(config) {
17
19
  this.baseUrl = trimTrailingSlash(config.baseUrl);
18
20
  this.headers = config.headers;