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,17 +1,19 @@
1
- import { Contract, JsonRpcProvider, Wallet } from 'ethers';
2
- import TM2Abi from '../shared/abis/TokenManager2.json' with { type: 'json' };
3
- import Helper3Abi from '../shared/abis/TokenManagerHelper3.json' with { type: 'json' };
4
- import { Contract as EContract } from 'ethers';
5
- import { ADDRESSES } from '../utils/constants.js';
1
+ import { Contract, Wallet } from 'ethers';
2
+ import TM2Abi from '../abis/contracts/TokenManager2.json' with { type: 'json' };
3
+ import Helper3Abi from '../abis/contracts/TokenManagerHelper3.json' with { type: 'json' };
4
+ import { ADDRESSES } from '../shared/constants/index.js';
5
+ import { createBscProvider } from '../utils/provider-factory.js';
6
6
  import { TM1 } from './tm1.js';
7
7
  import { TM2 } from './tm2.js';
8
+ const TM2_ABI = TM2Abi;
9
+ const HELPER3_ABI = Helper3Abi;
8
10
  export async function createTokenOnChain(params) {
9
11
  const { rpcUrl, signerPrivateKey, args, signature, valueWei } = params;
10
- const provider = new JsonRpcProvider(rpcUrl);
12
+ const provider = createBscProvider(rpcUrl);
11
13
  const signer = new Wallet(signerPrivateKey, provider);
12
14
  // 使用 Four.meme 平台原始合约地址(API 签名是给原始合约的)
13
15
  const FOUR_ORIGINAL_TM2 = '0x5c952063c7fc8610FFDB798152D69F0B9550762b';
14
- const tm2 = new Contract(FOUR_ORIGINAL_TM2, TM2Abi, signer);
16
+ const tm2 = new Contract(FOUR_ORIGINAL_TM2, TM2_ABI, signer);
15
17
  const tx = await tm2.createToken(args, signature, { value: valueWei ?? 0n });
16
18
  const receipt = await tx.wait();
17
19
  // 解析 TokenCreate 事件获取代币地址
@@ -25,8 +27,7 @@ export async function createTokenOnChain(params) {
25
27
  break;
26
28
  }
27
29
  }
28
- catch (e) {
29
- console.warn('Failed to parse TokenCreate event:', e instanceof Error ? e.message : String(e));
30
+ catch (_e) {
30
31
  // 忽略无法解析的日志
31
32
  }
32
33
  }
@@ -39,13 +40,11 @@ export async function tryBuy(chain, rpcUrl, token, amount, funds, proxyAddressOv
39
40
  BASE: ADDRESSES.BASE.TokenManagerHelper3,
40
41
  ARBITRUM_ONE: ADDRESSES.ARBITRUM_ONE.TokenManagerHelper3,
41
42
  };
42
- const provider = new JsonRpcProvider(rpcUrl);
43
+ const provider = createBscProvider(rpcUrl);
43
44
  // 优先用代理预览(若提供)
44
45
  if (proxyAddressOverride) {
45
- const proxyAbi = [
46
- 'function previewBuy(address token, uint256 funds) view returns (uint256)',
47
- ];
48
- const proxy = new EContract(proxyAddressOverride, proxyAbi, provider);
46
+ const proxyAbi = ['function previewBuy(address token, uint256 funds) view returns (uint256)'];
47
+ const proxy = new Contract(proxyAddressOverride, proxyAbi, provider);
49
48
  const estimatedAmount = await proxy.previewBuy(token, funds);
50
49
  return {
51
50
  tokenManager: 'proxy',
@@ -58,7 +57,7 @@ export async function tryBuy(chain, rpcUrl, token, amount, funds, proxyAddressOv
58
57
  amountFunds: funds,
59
58
  };
60
59
  }
61
- const helper = new Contract(helper3Addresses[chain], Helper3Abi, provider);
60
+ const helper = new Contract(helper3Addresses[chain], HELPER3_ABI, provider);
62
61
  const r = await helper.tryBuy(token, amount, funds);
63
62
  return {
64
63
  tokenManager: r.tokenManager,
@@ -77,13 +76,11 @@ export async function trySell(chain, rpcUrl, token, amount, proxyAddressOverride
77
76
  BASE: ADDRESSES.BASE.TokenManagerHelper3,
78
77
  ARBITRUM_ONE: ADDRESSES.ARBITRUM_ONE.TokenManagerHelper3,
79
78
  };
80
- const provider = new JsonRpcProvider(rpcUrl);
79
+ const provider = createBscProvider(rpcUrl);
81
80
  // 优先用代理预览(若提供)
82
81
  if (proxyAddressOverride) {
83
- const proxyAbi = [
84
- 'function previewSell(address token, uint256 amount) view returns (uint256)',
85
- ];
86
- const proxy = new EContract(proxyAddressOverride, proxyAbi, provider);
82
+ const proxyAbi = ['function previewSell(address token, uint256 amount) view returns (uint256)'];
83
+ const proxy = new Contract(proxyAddressOverride, proxyAbi, provider);
87
84
  const funds = await proxy.previewSell(token, amount);
88
85
  return {
89
86
  tokenManager: 'proxy',
@@ -92,7 +89,7 @@ export async function trySell(chain, rpcUrl, token, amount, proxyAddressOverride
92
89
  fee: 0n,
93
90
  };
94
91
  }
95
- const helper = new Contract(helper3Addresses[chain], Helper3Abi, provider);
92
+ const helper = new Contract(helper3Addresses[chain], HELPER3_ABI, provider);
96
93
  const r = await helper.trySell(token, amount);
97
94
  return {
98
95
  tokenManager: r.tokenManager,
@@ -102,9 +99,9 @@ export async function trySell(chain, rpcUrl, token, amount, proxyAddressOverride
102
99
  };
103
100
  }
104
101
  export async function buyTokenWithFunds(chain, rpcUrl, signerPrivateKey, token, funds, minAmount, to, origin = 0n) {
105
- const provider = new JsonRpcProvider(rpcUrl);
102
+ const provider = createBscProvider(rpcUrl);
106
103
  const signer = new Wallet(signerPrivateKey, provider);
107
- const tm2 = new Contract(ADDRESSES[chain].TokenManagerV2, TM2Abi, signer);
104
+ const tm2 = new Contract(ADDRESSES[chain].TokenManagerV2, TM2_ABI, signer);
108
105
  if (to) {
109
106
  const tx = await tm2.buyTokenAMAP(origin, token, to, funds, minAmount, { value: funds });
110
107
  return await tx.wait();
@@ -115,9 +112,9 @@ export async function buyTokenWithFunds(chain, rpcUrl, signerPrivateKey, token,
115
112
  }
116
113
  }
117
114
  export async function sellToken(chain, rpcUrl, signerPrivateKey, token, amount, minFunds, origin = 0n) {
118
- const provider = new JsonRpcProvider(rpcUrl);
115
+ const provider = createBscProvider(rpcUrl);
119
116
  const signer = new Wallet(signerPrivateKey, provider);
120
- const tm2 = new Contract(ADDRESSES[chain].TokenManagerV2, TM2Abi, signer);
117
+ const tm2 = new Contract(ADDRESSES[chain].TokenManagerV2, TM2_ABI, signer);
121
118
  // 使用明确的函数签名避免歧义
122
119
  const tx = await tm2['sellToken(uint256,address,uint256,uint256)'](origin, token, amount, minFunds);
123
120
  return await tx.wait();
@@ -129,8 +126,8 @@ export async function tradeBuy(chain, rpcUrl, token, params) {
129
126
  BASE: ADDRESSES.BASE.TokenManagerHelper3,
130
127
  ARBITRUM_ONE: ADDRESSES.ARBITRUM_ONE.TokenManagerHelper3,
131
128
  };
132
- const provider = new JsonRpcProvider(rpcUrl);
133
- const helper = new Contract(helper3Addresses[chain], Helper3Abi, provider);
129
+ const provider = createBscProvider(rpcUrl);
130
+ const helper = new Contract(helper3Addresses[chain], HELPER3_ABI, provider);
134
131
  const info = await helper.getTokenInfo(token);
135
132
  const version = info.version;
136
133
  if (version === 1n) {
@@ -144,9 +141,16 @@ export async function tradeBuy(chain, rpcUrl, token, params) {
144
141
  if (chain !== 'BSC')
145
142
  throw new Error('TokenManager V2 only supported on BSC');
146
143
  const tm2 = TM2.connectByChain('BSC', rpcUrl);
147
- if (params.type === 'funds')
148
- return await tm2.buyTokenAMAP(params.origin ?? 0n, token, params.to ?? undefined, params.funds, params.minAmount);
149
- return await tm2.buyToken(params.origin ?? 0n, token, params.to ?? undefined, params.amount, params.maxFunds);
144
+ if (params.type === 'funds') {
145
+ const o = params.origin ?? 0n;
146
+ return params.to !== undefined
147
+ ? await tm2.buyTokenAMAP(o, token, params.to, params.funds, params.minAmount)
148
+ : await tm2.buyTokenAMAP(o, token, params.funds, params.minAmount);
149
+ }
150
+ const o = params.origin ?? 0n;
151
+ return params.to !== undefined
152
+ ? await tm2.buyToken(o, token, params.to, params.amount, params.maxFunds)
153
+ : await tm2.buyToken(o, token, params.amount, params.maxFunds);
150
154
  }
151
155
  export async function tradeSell(chain, rpcUrl, token, params) {
152
156
  const helper3Addresses = {
@@ -154,8 +158,8 @@ export async function tradeSell(chain, rpcUrl, token, params) {
154
158
  BASE: ADDRESSES.BASE.TokenManagerHelper3,
155
159
  ARBITRUM_ONE: ADDRESSES.ARBITRUM_ONE.TokenManagerHelper3,
156
160
  };
157
- const provider = new JsonRpcProvider(rpcUrl);
158
- const helper = new Contract(helper3Addresses[chain], Helper3Abi, provider);
161
+ const provider = createBscProvider(rpcUrl);
162
+ const helper = new Contract(helper3Addresses[chain], HELPER3_ABI, provider);
159
163
  const info = await helper.getTokenInfo(token);
160
164
  const version = info.version;
161
165
  if (version === 1n) {
@@ -1,7 +1,10 @@
1
1
  import { Contract, JsonRpcProvider } from 'ethers';
2
- import TM1Abi from '../shared/abis/TokenManager.json' with { type: 'json' };
3
- import { ADDRESSES } from '../utils/constants.js';
2
+ import TM1Abi from '../abis/contracts/TokenManager.json' with { type: 'json' };
3
+ import { ADDRESSES } from '../shared/constants/index.js';
4
+ const TM1_ABI = TM1Abi;
4
5
  export class TM1 {
6
+ address;
7
+ provider;
5
8
  constructor(address, provider) {
6
9
  this.address = address;
7
10
  this.provider = provider;
@@ -14,9 +17,11 @@ export class TM1 {
14
17
  return new TM1(address, new JsonRpcProvider(rpcUrl));
15
18
  }
16
19
  get c() {
17
- return new Contract(this.address, TM1Abi, this.provider);
20
+ return new Contract(this.address, TM1_ABI, this.provider);
21
+ }
22
+ async lastPrice(token) {
23
+ return await this.c.lastPrice(token);
18
24
  }
19
- async lastPrice(token) { return await this.c.lastPrice(token); }
20
25
  async purchaseToken(token, amount, maxFunds, origin, to) {
21
26
  if (origin !== undefined && to)
22
27
  return await this.c.purchaseToken(origin, token, to, amount, maxFunds, { value: maxFunds });
@@ -1,7 +1,10 @@
1
1
  import { Contract, JsonRpcProvider, Wallet } from 'ethers';
2
- import TM2Abi from '../shared/abis/TokenManager2.json' with { type: 'json' };
3
- import { ADDRESSES } from '../utils/constants.js';
2
+ import TM2Abi from '../abis/contracts/TokenManager2.json' with { type: 'json' };
3
+ import { ADDRESSES } from '../shared/constants/index.js';
4
+ const TM2_ABI = TM2Abi;
4
5
  export class TM2 {
6
+ address;
7
+ provider;
5
8
  constructor(address, provider) {
6
9
  this.address = address;
7
10
  this.provider = provider;
@@ -20,9 +23,11 @@ export class TM2 {
20
23
  const address = ADDRESSES[chain].TokenManagerV2;
21
24
  const provider = new JsonRpcProvider(rpcUrl);
22
25
  const signer = new Wallet(privateKey, provider);
23
- return new Contract(address, TM2Abi, signer);
26
+ return new Contract(address, TM2_ABI, signer);
27
+ }
28
+ get c() {
29
+ return new Contract(this.address, TM2_ABI, this.provider);
24
30
  }
25
- get c() { return new Contract(this.address, TM2Abi, this.provider); }
26
31
  async buyToken(originOrToken, tokenOrTo, toOrAmount, amountOrMaxFunds, maxFunds) {
27
32
  if (typeof originOrToken === 'bigint') {
28
33
  const origin = originOrToken;
@@ -0,0 +1,264 @@
1
+ import { ethers, Wallet, JsonRpcProvider } from 'ethers';
2
+ import type { DirectRouterSignConfig } from './types.js';
3
+ import type { GeneratedWallet } from '../utils/wallet.js';
4
+ /**
5
+ * 直接 Router 交易(不走代理合约)
6
+ *
7
+ * 支持:
8
+ * - BSC: PancakeSwap V2/V3
9
+ * - Monad: PancakeSwap V2, Uniswap V2/V3
10
+ *
11
+ * 收费方式:交易末尾附加利润提取交易(和内盘一致)
12
+ */
13
+ export declare const providerCache: Map<string, ethers.JsonRpcProvider>;
14
+ export declare const PROVIDER_CACHE_TTL = 60000;
15
+ export declare const providerCacheTimestamps: Map<string, number>;
16
+ /**
17
+ * 获取缓存的 Provider 实例
18
+ * - 根据 rpcUrl + chainId 作为缓存 key
19
+ * - 60秒后自动失效,避免长连接问题
20
+ */
21
+ export declare function getCachedProvider(rpcUrl: string, chainId: number, chainName: string): JsonRpcProvider;
22
+ export declare const DEFAULT_GAS_LIMIT = 300000;
23
+ export declare const DEADLINE_MINUTES = 20;
24
+ /**
25
+ * 截断小数位数,避免超过代币精度导致 parseUnits 报错
26
+ * 例如:truncateDecimals("21906.025000000000000000", 1) => "21906.0"
27
+ */
28
+ export declare function truncateDecimals(value: string, decimals: number): string;
29
+ /** Router 地址配置 - ✅ 使用公共模块中的地址 */
30
+ export declare const DIRECT_ROUTERS: {
31
+ readonly BSC: {
32
+ readonly PANCAKESWAP_V2: "0x10ED43C718714eb63d5aA57B78B54704E256024E";
33
+ readonly PANCAKESWAP_V3: "0x13f4EA83D0bd40E75C8222255bc855a974568Dd4";
34
+ readonly IROSWAP_V2: "0xe90fb729E458092592a79EdaFefB3404ecb3C463";
35
+ readonly WBNB: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
36
+ };
37
+ readonly MONAD: {
38
+ readonly PANCAKESWAP_V2: "0xB1Bc24c34e88f7D43D5923034E3a14B24DaACfF9";
39
+ readonly PANCAKESWAP_V3: "0x1b81D678ffb9C0263b24A97847620C99d213eB14";
40
+ readonly UNISWAP_V2: "0x4b2ab38dbf28d31d467aa8993f6c2585981d6804";
41
+ readonly UNISWAP_V3: "0xd6145b2d3f379919e8cdeda7b97e37c4b2ca9c40";
42
+ readonly WMON: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a";
43
+ };
44
+ readonly XLAYER: {
45
+ readonly POTATOSWAP_V2: "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
46
+ readonly POTATOSWAP_V3: "0xB45D0149249488333E3F3f9F359807F4b810C1FC";
47
+ readonly DYORSWAP_ROUTER: "0xfb001fbbace32f09cb6d3c449b935183de53ee96";
48
+ readonly DYORSWAP_FACTORY: "0x2CcaDb1e437AA9cDc741574bDa154686B1F04C09";
49
+ readonly V3_ROUTER: "0xBB069e9465BcabC4F488d21e793BDEf0F2d41D41";
50
+ readonly V3_FACTORY: "0xa1415fAe79c4B196d087F02b8aD5a622B8A827E5";
51
+ readonly WOKB: "0xe538905cf8410324e03a5a23c1c177a474d59b2b";
52
+ };
53
+ readonly ENI: {
54
+ readonly DSWAP_V2: "0x97ed8be49d9a8b86247090aa41e908e76b8fcf22";
55
+ readonly DSWAP_V3: "0xcdE487F5B460a516f31FaC520D4e18BA1C8cda49";
56
+ readonly IROSWAP_V2: "0x93b1199fA96f6b9b1f993AA0226eB6076968a9BF";
57
+ readonly WEGAS: "0x6d1e851446f4d004ae2a72f9afed85e8829a205e";
58
+ };
59
+ };
60
+ /** 链 ID 映射 */
61
+ export declare const CHAIN_IDS: Record<string, number>;
62
+ /** 获取原生包装代币地址 */
63
+ export declare function getWrappedNative(chain: string): string;
64
+ /** V2 Router ABI */
65
+ export declare const V2_ROUTER_ABI: string[];
66
+ /** SwapRouter02 的 V2 方法 ABI - ✅ 从公共模块导入 */
67
+ export declare const SWAP_ROUTER02_V2_ABI: string[];
68
+ /**
69
+ * DYORSwap SwapRouter02 的 V2 方法
70
+ *
71
+ * ⚠️ 重要:DYORSwap 使用自定义的函数签名,无法通过标准 ABI 编码
72
+ * 必须手动构造 calldata
73
+ *
74
+ * swapExactTokensForTokens selector: 0x3234fe0d
75
+ * unwrapWETH9 selector: 0x7342292e
76
+ * refundETH selector: 0x6d29fcf4
77
+ */
78
+ export declare const DYORSWAP_SELECTORS: {
79
+ swapExactTokensForTokens: string;
80
+ unwrapWETH9: string;
81
+ refundETH: string;
82
+ multicall: string;
83
+ };
84
+ /**
85
+ * 手动编码 DYORSwap 的 swapExactTokensForTokens calldata
86
+ *
87
+ * 参数格式 (根据成功交易分析):
88
+ * - amountIn: uint256
89
+ * - amountOutMin: uint256
90
+ * - path: address[] (动态) - offset from start
91
+ * - pools: address[] (动态) - offset from start
92
+ * - to: uint256 (address(2) = 2)
93
+ * - flag: uint256 (1)
94
+ * - factory: address
95
+ *
96
+ * 成功交易的布局:
97
+ * [0] amountIn
98
+ * [1] amountOutMin
99
+ * [2] offset to path = 0xa0 = 160 = 5 * 32 (从参数区域开始)
100
+ * [3] offset to pools = 0xe0 = 224 = 7 * 32
101
+ * [4] to = 2
102
+ * [5] flag = 1
103
+ * [6] factory
104
+ * [7] path.length
105
+ * [8+] path elements
106
+ * [N] pools.length
107
+ * [N+1+] pools elements
108
+ */
109
+ export declare function encodeDYORSwapExactTokensForTokens(amountIn: bigint, amountOutMin: bigint, path: string[], pools: string[], to: string | bigint, // 可以是地址 (string) 或 address(2) 这样的特殊值 (bigint)
110
+ flag: bigint, factory: string): string;
111
+ /**
112
+ * 手动编码 DYORSwap 的 unwrapWETH9 calldata
113
+ *
114
+ * 参数格式 (根据成功交易分析):
115
+ * - amountMinimum: uint256
116
+ * - recipient: address
117
+ * - pools: bytes (动态) - 包含特殊的 pool 数据
118
+ *
119
+ * 成功交易的布局:
120
+ * [0] amountMinimum
121
+ * [1] recipient
122
+ * [2] offset to pools = 0x60 = 96 = 3 * 32
123
+ * [3] pools 数据 (bytes)
124
+ */
125
+ export declare function encodeDYORUnwrapWETH9(amountMinimum: bigint, recipient: string, poolsData?: string): string;
126
+ /**
127
+ * DYORSwap 的 ETHBack_Dividend 合约地址
128
+ * 这是 refundETH 中使用的固定地址,不是 LP 池地址
129
+ */
130
+ export declare const DYORSWAP_ETHBACK_DIVIDEND = "0x2e61b0b4410f6fb941d47205191cbb8963d44bcc";
131
+ /**
132
+ * 手动编码 DYORSwap 的 refundETH calldata
133
+ *
134
+ * 根据成功交易分析,refundETH 的格式是:
135
+ * refundETH(bytes pools)
136
+ *
137
+ * 成功交易的 refundETH (0x6d29fcf4):
138
+ * [0] offset to pools = 0x20 = 32
139
+ * [1] pools 数组长度 = 1
140
+ * [2] fee = 30 (0x1e)
141
+ * [3] ETHBack_Dividend 合约地址
142
+ */
143
+ export declare function encodeDYORRefundETH(fee?: number): string;
144
+ /**
145
+ * 手动编码 DYORSwap 的 multicall calldata
146
+ *
147
+ * multicall(uint256 deadline, bytes[] data)
148
+ * 这个函数使用标准 ABI 编码
149
+ */
150
+ export declare function encodeDYORMulticall(deadline: bigint, data: string[]): string;
151
+ /** V3 SwapRouter02 ABI (PancakeSwap V3, 新版 Uniswap) */
152
+ export declare const V3_ROUTER02_ABI: (string | {
153
+ inputs: {
154
+ components: {
155
+ name: string;
156
+ type: string;
157
+ }[];
158
+ name: string;
159
+ type: string;
160
+ }[];
161
+ name: string;
162
+ outputs: {
163
+ name: string;
164
+ type: string;
165
+ }[];
166
+ stateMutability: string;
167
+ type: string;
168
+ })[];
169
+ /** V3 SwapRouter(旧版)ABI (Monad Uniswap V3) */
170
+ export declare const V3_ROUTER_LEGACY_ABI: (string | {
171
+ inputs: {
172
+ components: {
173
+ name: string;
174
+ type: string;
175
+ }[];
176
+ name: string;
177
+ type: string;
178
+ }[];
179
+ name: string;
180
+ outputs: {
181
+ name: string;
182
+ type: string;
183
+ }[];
184
+ stateMutability: string;
185
+ type: string;
186
+ })[];
187
+ /**
188
+ * 判断是否使用旧版 SwapRouter
189
+ *
190
+ * 旧版特征:
191
+ * - exactInputSingle 包含 deadline 字段
192
+ * - multicall 只有 bytes[] 参数
193
+ *
194
+ * Monad 上的 V3 DEX 都使用旧版:
195
+ * - Uniswap V3: 0xd6145b2d3f379919e8cdeda7b97e37c4b2ca9c40
196
+ * - PancakeSwap V3: 0x1b81D678ffb9C0263b24A97847620C99d213eB14
197
+ *
198
+ * XLayer:
199
+ * - V3 Router (0xBB069e9465BcabC4F488d21e793BDEf0F2d41D41) - 旧版(exactInputSingle 包含 deadline)
200
+ * - SwapRouter02 (0xB45D0149249488333E3F3f9F359807F4b810C1FC) - 新版(V2+V3 混合)
201
+ *
202
+ * BSC PancakeSwap V3 使用新版 SwapRouter02
203
+ */
204
+ export declare function isLegacySwapRouter(chain: string, routerAddress: string): boolean;
205
+ /** ERC20 ABI - ✅ 从公共模块导入 */
206
+ export declare function getDeadline(minutes?: number): number;
207
+ export declare function getGasLimit(config: DirectRouterSignConfig, defaultGas?: number): bigint;
208
+ export declare function getGasPrice(provider: JsonRpcProvider, config: DirectRouterSignConfig): Promise<bigint>;
209
+ export declare function isNativeToken(quoteToken?: string): boolean;
210
+ export declare const XLAYER_V3_FACTORY_ABI: readonly ["function getPool(address tokenA, address tokenB, uint24 fee) view returns (address pool)"];
211
+ export declare const XLAYER_V3_POOL_ABI: readonly ["function slot0() view returns (uint160 sqrtPriceX96,int24 tick,uint16 observationIndex,uint16 observationCardinality,uint16 observationCardinalityNext,uint8 feeProtocol,bool unlocked)", "function token0() view returns (address)", "function token1() view returns (address)"];
212
+ export declare const V3_FEE_DENOMINATOR = 1000000n;
213
+ export declare function quoteXLayerV3TokenToNativeBySlot0(params: {
214
+ provider: JsonRpcProvider;
215
+ tokenIn: string;
216
+ amountIn: bigint;
217
+ fee: number;
218
+ }): Promise<bigint>;
219
+ /**
220
+ * ✅ 找到金额最大的钱包索引(和 core.ts 逻辑一致)
221
+ */
222
+ export declare function findMaxFlowIndex(amounts: bigint[]): number;
223
+ /** 计算利润金额 */
224
+ export declare function calculateProfitAmount(totalFlowWei: bigint): bigint;
225
+ /**
226
+ * 构建利润多跳转账交易(强制 2 跳中转)
227
+ */
228
+ export declare function buildProfitTransactionWithHops(provider: JsonRpcProvider, wallet: Wallet, profitAmountWei: bigint, nonce: number, gasPrice: bigint, chainId: number, txType?: 0 | 2, profitRecipient?: string): Promise<{
229
+ signedTransactions: string[];
230
+ hopWallets?: GeneratedWallet[];
231
+ }>;
232
+ /**
233
+ * 获取贿赂金额(wei)
234
+ * ✅ 仅 BSC 链支持贿赂
235
+ */
236
+ export declare function getBribeAmount(config: DirectRouterSignConfig, chain: string): bigint;
237
+ /** 构建贿赂交易(向 BlockRazor Builder EOA 转账 BNB) */
238
+ export declare function buildBribeTransaction(wallet: Wallet, bribeAmountWei: bigint, nonce: number, gasPrice: bigint, chainId: number, txType?: 0 | 2): Promise<string>;
239
+ /**
240
+ * 判断是否是 SwapRouter02 (XLayer PotatoSwap V3)
241
+ *
242
+ * SwapRouter02 风格的 Router 使用 multicall 包装 V2 方法:
243
+ * - multicall(uint256 deadline, bytes[] data)
244
+ * - data 内包含 swapExactTokensForTokens 等 V2 方法
245
+ *
246
+ * SwapRouter02 的 V2 方法签名不同:
247
+ * - swapExactTokensForTokens(amountIn, amountOutMin, path[], to) - 没有 deadline
248
+ * - 需要通过 multicall 的 deadline 参数传递 deadline
249
+ *
250
+ * ⚠️ 注意:DYORSwap 虽然也用 multicall,但它的 ABI 完全不同,需要单独处理
251
+ */
252
+ export declare function isSwapRouter02(chain: string, routerAddress: string): boolean;
253
+ /**
254
+ * 判断是否是 DYORSwap Router
255
+ *
256
+ * DYORSwap 使用 multicall,但它的 swapExactTokensForTokens 有特殊的 ABI:
257
+ * - swapExactTokensForTokens(amountIn, amountOutMin, path[], payer, flags, factory, pools)
258
+ * - unwrapWETH9(amountMinimum, recipient, pools)
259
+ */
260
+ export declare function isDYORSwap(chain: string, routerAddress: string): boolean;
261
+ export declare function filterEniNativeBuyIndices(balances: bigint[], flowAmounts: bigint[], gasLimit: number | bigint, gasPrice: bigint, profitWei: bigint): number[] | null;
262
+ /**
263
+ * V2 批量买入(直接调用 Router)
264
+ */