four-flap-meme-sdk 2.2.18 → 2.2.20

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 (492) hide show
  1. package/dist/__tests__/subpath-exports.test.d.ts +1 -0
  2. package/dist/__tests__/subpath-exports.test.js +64 -0
  3. package/dist/abis/common.d.ts +85 -0
  4. package/dist/abis/common.js +240 -0
  5. package/dist/abis/contracts/TaxToken.json +969 -0
  6. package/dist/abis/contracts/TokenManager.json +836 -0
  7. package/dist/abis/contracts/TokenManager2.json +136 -0
  8. package/dist/abis/contracts/TokenManagerHelper3.json +993 -0
  9. package/dist/abis/contracts/index.d.ts +5 -0
  10. package/dist/abis/contracts/index.js +5 -0
  11. package/dist/abis/flap/index.d.ts +5 -0
  12. package/dist/abis/flap/index.js +5 -0
  13. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  14. package/dist/abis/flap/portal-eip7702.js +39 -0
  15. package/dist/abis/flap/portal-events.d.ts +6 -0
  16. package/dist/abis/flap/portal-events.js +17 -0
  17. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  18. package/dist/abis/flap/portal-merkle.js +25 -0
  19. package/dist/abis/flap/portal.d.ts +6 -0
  20. package/dist/abis/flap/portal.js +37 -0
  21. package/dist/abis/flap/vault.d.ts +171 -0
  22. package/dist/abis/flap/vault.js +91 -0
  23. package/dist/abis/index.d.ts +8 -0
  24. package/dist/abis/index.js +11 -0
  25. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
  26. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  27. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
  28. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  29. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  30. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  31. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  32. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  33. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  34. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  35. package/dist/bundle-core/config-helpers.d.ts +37 -0
  36. package/dist/bundle-core/config-helpers.js +58 -0
  37. package/dist/bundle-core/errors.d.ts +50 -0
  38. package/dist/bundle-core/errors.js +38 -0
  39. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  40. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  41. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  42. package/dist/bundle-core/four-meme/core-helpers.js +41 -0
  43. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  44. package/dist/bundle-core/four-meme/core.js +515 -0
  45. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  46. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  47. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  48. package/dist/bundle-core/four-meme/private.js +465 -0
  49. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  50. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  51. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  52. package/dist/bundle-core/four-meme/swap-buy-first.js +456 -0
  53. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  54. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  55. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  56. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  57. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +28 -0
  58. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  59. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  60. package/dist/bundle-core/four-meme/swap.js +505 -0
  61. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  62. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  63. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  64. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  65. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  66. package/dist/bundle-core/four-meme/types/index.js +1 -0
  67. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  68. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  69. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  70. package/dist/bundle-core/four-meme/types.js +1 -0
  71. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  72. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  73. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  74. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  75. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  76. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  77. package/dist/bundle-core/index.d.ts +8 -0
  78. package/dist/bundle-core/index.js +8 -0
  79. package/dist/bundle-core/internal.d.ts +16 -0
  80. package/dist/bundle-core/internal.js +160 -0
  81. package/dist/bundle-core/sign-context-helpers.d.ts +26 -0
  82. package/dist/bundle-core/sign-context-helpers.js +63 -0
  83. package/dist/bundle-core/submit.d.ts +293 -0
  84. package/dist/bundle-core/submit.js +731 -0
  85. package/dist/bundle-core/types/index.d.ts +8 -0
  86. package/dist/bundle-core/types/index.js +1 -0
  87. package/dist/bundle-core/types.d.ts +1 -0
  88. package/dist/bundle-core/types.js +1 -0
  89. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  90. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  91. package/dist/chains/bsc/four/config.d.ts +5 -67
  92. package/dist/chains/bsc/four/config.js +2 -114
  93. package/dist/chains/bsc/four/core.d.ts +1 -4
  94. package/dist/chains/bsc/four/core.js +1 -592
  95. package/dist/chains/bsc/four/index.d.ts +6 -6
  96. package/dist/chains/bsc/four/index.js +6 -6
  97. package/dist/chains/bsc/four/internal.d.ts +2 -46
  98. package/dist/chains/bsc/four/internal.js +2 -239
  99. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  100. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  101. package/dist/chains/bsc/four/private.d.ts +1 -27
  102. package/dist/chains/bsc/four/private.js +1 -477
  103. package/dist/chains/bsc/four/submit.d.ts +2 -315
  104. package/dist/chains/bsc/four/submit.js +2 -752
  105. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  106. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  107. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  108. package/dist/chains/bsc/four/swap-internal.js +1 -18
  109. package/dist/chains/bsc/four/swap.d.ts +2 -144
  110. package/dist/chains/bsc/four/swap.js +2 -766
  111. package/dist/chains/bsc/four/types.d.ts +1 -476
  112. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  113. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  114. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  115. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  116. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  117. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  118. package/dist/chains/bsc/four/utils.d.ts +5 -18
  119. package/dist/chains/bsc/four/utils.js +5 -1552
  120. package/dist/chains/bsc/iro.d.ts +5 -0
  121. package/dist/chains/bsc/iro.js +4 -0
  122. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  123. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  124. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  125. package/dist/chains/bsc/pancake/bundle-buy-first.js +98 -213
  126. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  127. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  128. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  129. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  130. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  131. package/dist/chains/bsc/pancake/index.js +1 -3
  132. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  133. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  134. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  135. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  136. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  137. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  138. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  139. package/dist/chains/eni/batch-router/transfer.js +55 -25
  140. package/dist/chains/eni/batch-router/utils.js +32 -6
  141. package/dist/chains/eni/bundler/sign.js +5 -6
  142. package/dist/chains/eni/bundler/submit.js +1 -4
  143. package/dist/chains/eni/constants.js +1 -1
  144. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  145. package/dist/chains/eni/flat-aliases.js +8 -0
  146. package/dist/chains/eni/index.d.ts +2 -1
  147. package/dist/chains/eni/index.js +1 -0
  148. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  149. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  150. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  151. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  152. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
  153. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  154. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  155. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  156. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  157. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
  158. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  159. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  160. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  161. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  162. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  163. package/dist/chains/eni/platforms/iro/index.js +4 -4
  164. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  165. package/dist/chains/eni/platforms/iro/token.js +107 -31
  166. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  167. package/dist/chains/eni/submit.d.ts +43 -0
  168. package/dist/chains/eni/submit.js +287 -0
  169. package/dist/chains/index.d.ts +13 -0
  170. package/dist/chains/index.js +13 -0
  171. package/dist/chains/xlayer/constants.d.ts +5 -0
  172. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  173. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  174. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  175. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  176. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  177. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  178. package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
  179. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  180. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
  181. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  182. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  183. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  184. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  185. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  186. package/dist/chains/xlayer/eip7702/index.js +28 -81
  187. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  188. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  189. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  190. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
  191. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  192. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  193. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  194. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  195. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  196. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  197. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  198. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  199. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  200. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  201. package/dist/chains/xlayer/eoa/constants.js +2 -16
  202. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  203. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  204. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  205. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  206. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  207. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  208. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  209. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  210. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  211. package/dist/chains/xlayer/eoa/index.js +8 -23
  212. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  213. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  214. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  215. package/dist/chains/xlayer/eoa/types.js +1 -3
  216. package/dist/chains/xlayer/index.d.ts +3 -2
  217. package/dist/chains/xlayer/index.js +4 -7
  218. package/dist/contracts/helper3.d.ts +20 -5
  219. package/dist/contracts/helper3.js +56 -20
  220. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  221. package/dist/contracts/tm-bundle-helpers.js +73 -0
  222. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  223. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
  224. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
  225. package/dist/contracts/tm-bundle-merkle/config.js +2 -114
  226. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  227. package/dist/contracts/tm-bundle-merkle/core.js +1 -591
  228. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  229. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  230. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
  231. package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
  232. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  233. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
  234. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  235. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  236. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  237. package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
  238. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  239. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
  240. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  241. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  242. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  243. package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
  244. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  245. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  246. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  247. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  248. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  249. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  250. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  251. package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
  252. package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
  253. package/dist/contracts/tm-bundle.d.ts +3 -51
  254. package/dist/contracts/tm-bundle.js +120 -187
  255. package/dist/contracts/tm.d.ts +10 -8
  256. package/dist/contracts/tm.js +39 -35
  257. package/dist/contracts/tm1.js +9 -4
  258. package/dist/contracts/tm2.js +10 -5
  259. package/dist/dex/direct-router-helpers.d.ts +269 -0
  260. package/dist/dex/direct-router-helpers.js +536 -0
  261. package/dist/dex/direct-router.d.ts +3 -125
  262. package/dist/dex/direct-router.js +244 -672
  263. package/dist/dex/types.d.ts +81 -0
  264. package/dist/dex/types.js +1 -0
  265. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  266. package/dist/exports/root-bundle-and-tooling.js +30 -0
  267. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  268. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  269. package/dist/exports/root-foundations.d.ts +35 -0
  270. package/dist/exports/root-foundations.js +70 -0
  271. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  272. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  273. package/dist/flap/index.d.ts +11 -0
  274. package/dist/flap/index.js +9 -0
  275. package/dist/flows/create.d.ts +2 -1
  276. package/dist/flows/create.js +6 -6
  277. package/dist/flows/index.d.ts +9 -0
  278. package/dist/flows/index.js +9 -0
  279. package/dist/index.d.ts +20 -88
  280. package/dist/index.js +20 -218
  281. package/dist/merkle/index.d.ts +12 -0
  282. package/dist/merkle/index.js +11 -0
  283. package/dist/shared/abis/common.d.ts +2 -83
  284. package/dist/shared/abis/common.js +2 -254
  285. package/dist/shared/abis/index.d.ts +5 -6
  286. package/dist/shared/abis/index.js +5 -7
  287. package/dist/shared/clients/blockrazor.d.ts +4 -8
  288. package/dist/shared/clients/blockrazor.js +43 -35
  289. package/dist/shared/clients/club48.d.ts +2 -2
  290. package/dist/shared/clients/club48.js +36 -30
  291. package/dist/shared/clients/emitservice.js +2 -0
  292. package/dist/shared/clients/four.d.ts +21 -6
  293. package/dist/shared/clients/four.js +29 -24
  294. package/dist/shared/clients/index.d.ts +8 -0
  295. package/dist/shared/clients/index.js +8 -0
  296. package/dist/shared/clients/merkle.d.ts +4 -3
  297. package/dist/shared/clients/merkle.js +30 -47
  298. package/dist/shared/constants/addresses.d.ts +27 -1
  299. package/dist/shared/constants/addresses.js +39 -2
  300. package/dist/shared/constants/chains.d.ts +1 -1
  301. package/dist/shared/constants/chains.js +1 -1
  302. package/dist/shared/constants/gas.d.ts +1 -1
  303. package/dist/shared/constants/gas.js +2 -6
  304. package/dist/shared/constants/index.d.ts +4 -1
  305. package/dist/shared/constants/index.js +2 -1
  306. package/dist/shared/constants/quote.d.ts +30 -0
  307. package/dist/shared/constants/quote.js +37 -0
  308. package/dist/shared/flap/abi.js +1 -1
  309. package/dist/shared/flap/constants.d.ts +1 -2
  310. package/dist/shared/flap/constants.js +3 -4
  311. package/dist/shared/flap/curve.js +3 -0
  312. package/dist/shared/flap/errors.d.ts +1 -4
  313. package/dist/shared/flap/errors.js +20 -1
  314. package/dist/shared/flap/index.d.ts +4 -5
  315. package/dist/shared/flap/index.js +4 -5
  316. package/dist/shared/flap/launch-v6.d.ts +0 -5
  317. package/dist/shared/flap/launch-v6.js +2 -16
  318. package/dist/shared/flap/meta.d.ts +22 -18
  319. package/dist/shared/flap/meta.js +32 -24
  320. package/dist/shared/flap/permit.js +10 -3
  321. package/dist/shared/flap/pinata.d.ts +22 -6
  322. package/dist/shared/flap/pinata.js +21 -26
  323. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  324. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  325. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  326. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  327. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  328. package/dist/shared/flap/portal-bundle-merkle/core.js +168 -175
  329. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  330. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +96 -117
  331. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +104 -122
  332. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  333. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  334. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  335. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  336. package/dist/shared/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  337. package/dist/shared/flap/portal-bundle-merkle/swap-batch.js +227 -0
  338. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  339. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  340. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  341. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  342. package/dist/shared/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  343. package/dist/shared/flap/portal-bundle-merkle/swap-cross.js +139 -0
  344. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  345. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  346. package/dist/shared/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  347. package/dist/shared/flap/portal-bundle-merkle/swap-planning.js +182 -0
  348. package/dist/shared/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  349. package/dist/shared/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  350. package/dist/shared/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  351. package/dist/shared/flap/portal-bundle-merkle/swap-single.js +184 -0
  352. package/dist/shared/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  353. package/dist/shared/flap/portal-bundle-merkle/swap-types.js +1 -0
  354. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +6 -199
  355. package/dist/shared/flap/portal-bundle-merkle/swap.js +5 -1357
  356. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +88 -12
  357. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  358. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  359. package/dist/shared/flap/portal-bundle.js +83 -78
  360. package/dist/shared/flap/portal-create-token.d.ts +39 -21
  361. package/dist/shared/flap/portal-create-token.js +121 -124
  362. package/dist/shared/flap/portal.d.ts +1 -2
  363. package/dist/shared/flap/portal.js +36 -28
  364. package/dist/shared/flap/vanity.d.ts +6 -6
  365. package/dist/shared/flap/vanity.js +15 -21
  366. package/dist/shared/flap/vault.d.ts +25 -93
  367. package/dist/shared/flap/vault.js +77 -127
  368. package/dist/shared/foundation/amount/split-by-weight.d.ts +5 -0
  369. package/dist/shared/foundation/amount/split-by-weight.js +35 -0
  370. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  371. package/dist/shared/foundation/dex/v3-path.js +35 -0
  372. package/dist/shared/foundation/erc20/decimals.d.ts +7 -0
  373. package/dist/shared/foundation/erc20/decimals.js +24 -0
  374. package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
  375. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  376. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  377. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  378. package/dist/shared/foundation/index.d.ts +15 -0
  379. package/dist/shared/foundation/index.js +14 -0
  380. package/dist/shared/foundation/nonce/nonce-manager.d.ts +19 -0
  381. package/dist/shared/foundation/nonce/nonce-manager.js +217 -0
  382. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  383. package/dist/shared/foundation/normalize-unknown.js +29 -0
  384. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  385. package/dist/shared/foundation/sdk-logger.js +12 -0
  386. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  387. package/dist/shared/foundation/tx/build-request.js +25 -0
  388. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  389. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  390. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  391. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  392. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  393. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  394. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  395. package/dist/shared/foundation/types/erc20.js +1 -0
  396. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  397. package/dist/shared/foundation/types/holders-maker.js +1 -0
  398. package/dist/shared/foundation/types/index.d.ts +7 -0
  399. package/dist/shared/foundation/types/index.js +1 -0
  400. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  401. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  402. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  403. package/dist/shared/foundation/types/multicall.js +1 -0
  404. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  405. package/dist/shared/foundation/types/private-sale.js +1 -0
  406. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  407. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  408. package/dist/shared/foundation/wallet/generate.d.ts +5 -0
  409. package/dist/shared/foundation/wallet/generate.js +8 -0
  410. package/dist/shared/four/tax-token.d.ts +1 -1
  411. package/dist/shared/four/tax-token.js +31 -10
  412. package/dist/shared/index.d.ts +6 -0
  413. package/dist/shared/index.js +4 -0
  414. package/dist/types/errors.d.ts +27 -0
  415. package/dist/types/errors.js +34 -0
  416. package/dist/utils/airdrop-sweep.d.ts +4 -76
  417. package/dist/utils/airdrop-sweep.js +42 -55
  418. package/dist/utils/bundle-helpers.d.ts +9 -243
  419. package/dist/utils/bundle-helpers.js +10 -584
  420. package/dist/utils/constants.d.ts +5 -61
  421. package/dist/utils/constants.js +5 -80
  422. package/dist/utils/contract-factory.d.ts +2 -4
  423. package/dist/utils/contract-factory.js +25 -18
  424. package/dist/utils/erc20.d.ts +7 -89
  425. package/dist/utils/erc20.js +98 -129
  426. package/dist/utils/errors.d.ts +12 -1
  427. package/dist/utils/errors.js +60 -1
  428. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  429. package/dist/utils/holders-maker/addresses.js +15 -0
  430. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  431. package/dist/utils/holders-maker/buy-tx.js +278 -0
  432. package/dist/utils/holders-maker/constants.d.ts +6 -0
  433. package/dist/utils/holders-maker/constants.js +7 -0
  434. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  435. package/dist/utils/holders-maker/disperse.js +90 -0
  436. package/dist/utils/holders-maker/routing.d.ts +4 -0
  437. package/dist/utils/holders-maker/routing.js +45 -0
  438. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  439. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  440. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  441. package/dist/utils/holders-maker-helpers.js +9 -0
  442. package/dist/utils/holders-maker.d.ts +2 -138
  443. package/dist/utils/holders-maker.js +50 -671
  444. package/dist/utils/hop-chains.d.ts +35 -0
  445. package/dist/utils/hop-chains.js +215 -0
  446. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  447. package/dist/utils/lp-inspect-helpers.js +109 -0
  448. package/dist/utils/lp-inspect.d.ts +2 -112
  449. package/dist/utils/lp-inspect.js +78 -293
  450. package/dist/utils/mpcExclusive.d.ts +2 -5
  451. package/dist/utils/mpcExclusive.js +4 -3
  452. package/dist/utils/private-sale.d.ts +2 -58
  453. package/dist/utils/private-sale.js +4 -15
  454. package/dist/utils/provider-factory.d.ts +4 -0
  455. package/dist/utils/provider-factory.js +10 -0
  456. package/dist/utils/quote-helpers.d.ts +4 -45
  457. package/dist/utils/quote-helpers.js +17 -74
  458. package/dist/utils/stealth-transfer.d.ts +2 -28
  459. package/dist/utils/stealth-transfer.js +39 -19
  460. package/dist/utils/swap-helpers.d.ts +2 -15
  461. package/dist/utils/swap-helpers.js +6 -11
  462. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  463. package/dist/utils/types/airdrop-sweep.js +1 -0
  464. package/dist/utils/types/contract-factory.d.ts +1 -0
  465. package/dist/utils/types/contract-factory.js +1 -0
  466. package/dist/utils/types/erc20.d.ts +1 -0
  467. package/dist/utils/types/erc20.js +1 -0
  468. package/dist/utils/types/errors.d.ts +1 -0
  469. package/dist/utils/types/errors.js +1 -0
  470. package/dist/utils/types/holders-maker.d.ts +1 -0
  471. package/dist/utils/types/holders-maker.js +1 -0
  472. package/dist/utils/types/hop-chains.d.ts +8 -0
  473. package/dist/utils/types/hop-chains.js +1 -0
  474. package/dist/utils/types/index.d.ts +13 -0
  475. package/dist/utils/types/index.js +1 -0
  476. package/dist/utils/types/lp-inspect.d.ts +1 -0
  477. package/dist/utils/types/lp-inspect.js +1 -0
  478. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  479. package/dist/utils/types/mpc-exclusive.js +1 -0
  480. package/dist/utils/types/private-sale.d.ts +1 -0
  481. package/dist/utils/types/private-sale.js +1 -0
  482. package/dist/utils/types/quote-helpers.d.ts +1 -0
  483. package/dist/utils/types/quote-helpers.js +1 -0
  484. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  485. package/dist/utils/types/stealth-transfer.js +1 -0
  486. package/dist/utils/types/wallet.d.ts +25 -0
  487. package/dist/utils/types/wallet.js +1 -0
  488. package/dist/utils/wallet.d.ts +4 -25
  489. package/dist/utils/wallet.js +27 -22
  490. package/dist/vanity/index.d.ts +5 -0
  491. package/dist/vanity/index.js +5 -0
  492. package/package.json +100 -2
@@ -1,134 +1,21 @@
1
- import { Contract, JsonRpcProvider, Interface, formatUnits, formatEther } from 'ethers';
2
- import { ADDRESSES, ZERO_ADDRESS } from './constants.js';
3
- import { MULTICALL3_ABI, V2_FACTORY_ABI, V2_PAIR_ABI, V3_FACTORY_ABI, ERC20_ABI } from '../shared/abis/common.js';
4
- import { Helper3 } from '../contracts/helper3.js';
5
- import { FlapPortal } from '../shared/flap/portal.js';
6
- import { getFlapGraduatedDexMetrics, PCS_INFINITY_CL_POOL_MANAGER_BSC, isFlapInfinityCLGraduated, } from './pcs-infinity-cl.js';
7
- // ============================================================================
8
- // 链配置
9
- // ============================================================================
10
- /** 默认 V3 费率档位(合并 PancakeSwap 和 Uniswap 的所有档位) */
11
- const DEFAULT_V3_FEE_TIERS = [100, 500, 2500, 3000, 10000];
12
- /** 链 DEX 配置 */
13
- const CHAIN_DEX_CONFIGS = {
14
- BSC: {
15
- wrappedNative: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
16
- wrappedNativeSymbol: 'WBNB',
17
- stableCoins: [
18
- { address: '0x55d398326f99059fF775485246999027B3197955', symbol: 'USDT', decimals: 18 },
19
- { address: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d', symbol: 'USDC', decimals: 18 },
20
- ],
21
- dexes: {
22
- PANCAKESWAP: {
23
- name: 'PancakeSwap',
24
- v2Factory: '0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73',
25
- v3Factory: '0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865',
26
- enabled: true,
27
- },
28
- IROSWAP: {
29
- name: 'IROSwap',
30
- v2Factory: ADDRESSES.BSC.IroSwapV2Factory,
31
- v2Router: ADDRESSES.BSC.IroSwapV2Router,
32
- enabled: true,
33
- },
34
- }
35
- },
36
- MONAD: {
37
- wrappedNative: '0x3bd359c1119da7da1d913d1c4d2b7c461115433a',
38
- wrappedNativeSymbol: 'WMON',
39
- stableCoins: [
40
- { address: '0x754704bc059f8c67012fed69bc8a327a5aafb603', symbol: 'USDC', decimals: 6 },
41
- ],
42
- dexes: {
43
- PANCAKESWAP: {
44
- name: 'PancakeSwap',
45
- v2Factory: '0x44c90b66eb4c4f814cea6aaf2ac71ca88fa77308',
46
- v3Factory: '0x40ce898c43df68c8c4229cd5ce21d3ce1f3ddcf1',
47
- enabled: true,
48
- },
49
- UNISWAP: {
50
- name: 'Uniswap',
51
- v2Factory: '0x182a927119d56008d921126764bf884221b10f59',
52
- v3Factory: '0x204faca1764b154221e35c0d20abb3c525710498',
53
- v2Router: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',
54
- v3Router: '0xd6145b2d3f379919e8cdeda7b97e37c4b2ca9c40',
55
- quoterV2: '0x661e93cca42afacb172121ef892830ca3b70f08d',
56
- enabled: true,
57
- }
58
- }
59
- },
60
- // ✅ 新增 XLayer 配置
61
- XLAYER: {
62
- wrappedNative: '0xe538905cf8410324e03a5a23c1c177a474d59b2b',
63
- wrappedNativeSymbol: 'WOKB',
64
- stableCoins: [
65
- { address: '0x1e4a5963abfd975d8c9021ce480b42188849d41d', symbol: 'USDT', decimals: 6 },
66
- { address: '0x74b7f16337b8972027f6196a17a631ac6de26d22', symbol: 'USDC', decimals: 6 },
67
- // ✅ XLayer: USD₮0 / USDT0(常见外盘配对)
68
- { address: '0x779ded0c9e1022225f8e0630b35a9b54be713736', symbol: 'USDT0', decimals: 6 },
69
- ],
70
- dexes: {
71
- POTATOSWAP: {
72
- name: 'PotatoSwap',
73
- v2Factory: '0x630DB8E822805c82Ca40a54daE02dd5aC31f7fcF', // V2 Factory
74
- v2Router: '0x881fb2f98c13d521009464e7d1cbf16e1b394e8e', // ✅ V2 Router (标准 Uniswap V2 风格)
75
- v3Router: '0xB45D0149249488333E3F3f9F359807F4b810C1FC', // SwapRouter02 (V3 风格)
76
- v3Factory: '0xa1415fAe79c4B196d087F02b8aD5a622B8A827E5', // V3 Factory
77
- quoterV2: '0x5A6f3723346aF54a4D0693bfC1718D64d4915C3e', // QuoterV2
78
- enabled: true,
79
- },
80
- DYORSWAP: {
81
- name: 'DYORSwap',
82
- v2Factory: '0x2CcaDb1e437AA9cDc741574bDa154686B1F04C09', // ✅ V2 Factory
83
- v2Router: '0xfb001fbbace32f09cb6d3c449b935183de53ee96', // DYORSwap Router (SwapRouter02 风格)
84
- enabled: true, // ✅ 已启用
85
- }
86
- }
87
- },
88
- ENI: {
89
- wrappedNative: '0x6d1e851446f4d004ae2a72f9afed85e8829a205e',
90
- wrappedNativeSymbol: 'WEGAS',
91
- stableCoins: [
92
- { address: '0xDC1a8A35b0BaA3229b13f348ED708a2fd50b5e3a', symbol: 'USDT', decimals: 18 },
93
- { address: '0xaFF944b96c1BAEA587159ec446280E468B32ee15', symbol: 'USDC', decimals: 18 },
94
- ],
95
- dexes: {
96
- DSWAP: {
97
- name: 'DSWAP',
98
- v2Factory: '0x548c0e26ce90b333c07abb6d55546304d46d269d',
99
- v2Router: '0x97ed8be49d9a8b86247090aa41e908e76b8fcf22',
100
- v3Factory: '0xa97c5a70Be5B81f573a688F656E7bE569B492A56',
101
- v3Router: '0xcdE487F5B460a516f31FaC520D4e18BA1C8cda49',
102
- enabled: true,
103
- },
104
- IROSWAP: {
105
- name: 'IROSwap',
106
- v2Factory: ADDRESSES.ENI.IroSwapV2Factory,
107
- v2Router: ADDRESSES.ENI.IroSwapV2Router,
108
- enabled: true,
109
- },
110
- }
111
- }
112
- };
113
- // ============================================================================
114
- // 动态配置 API
115
- // ============================================================================
116
- /** 运行时配置存储(内存) */
117
- const runtimeConfigs = {};
118
1
  /**
119
- * Router 合约获取 Factory 地址
120
- * 支持 Uniswap V2 Router 和 V3 SwapRouter02
2
+ * lp-inspect - 主函数
121
3
  */
4
+ import { Contract, Interface, formatUnits, formatEther } from 'ethers';
5
+ import { createProvider } from './provider-factory.js';
6
+ import { ADDRESSES, ZERO_ADDRESS } from '../shared/constants/index.js';
7
+ import { getErrorMessageFromUnknown } from '../shared/foundation/index.js';
8
+ import { MULTICALL3_ABI, V2_FACTORY_ABI, V2_PAIR_ABI, V3_FACTORY_ABI, ERC20_ABI } from '../abis/common.js';
9
+ import { Helper3 } from '../contracts/helper3.js';
10
+ import { FlapPortal } from '../shared/flap/portal.js';
11
+ import { CHAIN_DEX_CONFIGS, DEFAULT_V3_FEE_TIERS, runtimeConfigs } from './lp-inspect-helpers.js';
122
12
  export async function getFactoryFromRouter(routerAddress, rpcUrl, routerType = 'v2') {
123
- const provider = new JsonRpcProvider(rpcUrl);
13
+ const provider = createProvider(rpcUrl);
124
14
  const result = {};
125
15
  // V2 Router ABI: factory()
126
16
  const V2_ROUTER_ABI = ['function factory() view returns (address)'];
127
17
  // V3 SwapRouter02 ABI: factory() 和 factoryV2()
128
- const V3_ROUTER_ABI = [
129
- 'function factory() view returns (address)',
130
- 'function factoryV2() view returns (address)',
131
- ];
18
+ const V3_ROUTER_ABI = ['function factory() view returns (address)', 'function factoryV2() view returns (address)'];
132
19
  try {
133
20
  if (routerType === 'v2') {
134
21
  const router = new Contract(routerAddress, V2_ROUTER_ABI, provider);
@@ -140,7 +27,7 @@ export async function getFactoryFromRouter(routerAddress, rpcUrl, routerType = '
140
27
  // ✅ 并行获取 V3 和 V2 Factory
141
28
  const [v3Factory, v2Factory] = await Promise.all([
142
29
  router.factory().catch(() => undefined),
143
- router.factoryV2().catch(() => undefined)
30
+ router.factoryV2().catch(() => undefined),
144
31
  ]);
145
32
  if (v3Factory)
146
33
  result.v3Factory = v3Factory;
@@ -149,7 +36,7 @@ export async function getFactoryFromRouter(routerAddress, rpcUrl, routerType = '
149
36
  }
150
37
  }
151
38
  catch (error) {
152
- console.error(`❌ 获取 Factory 地址失败:`, error);
39
+ console.error(`❌ 获取 Factory 地址失败:`, getErrorMessageFromUnknown(error));
153
40
  }
154
41
  return result;
155
42
  }
@@ -157,7 +44,7 @@ export async function getFactoryFromRouter(routerAddress, rpcUrl, routerType = '
157
44
  * 动态注册 DYORSwap(从 Router 获取 Factory)
158
45
  */
159
46
  export async function registerDYORSwap(rpcUrl) {
160
- const DYORSWAP_ROUTER = '0xfb001fbbace32f09cb6d3c449b935183de53ee96';
47
+ const DYORSWAP_ROUTER = ADDRESSES.XLAYER.DyorSwapRouter;
161
48
  try {
162
49
  // 从 Router 获取 Factory 地址
163
50
  const factories = await getFactoryFromRouter(DYORSWAP_ROUTER, rpcUrl, 'v3');
@@ -177,7 +64,7 @@ export async function registerDYORSwap(rpcUrl) {
177
64
  return false;
178
65
  }
179
66
  catch (error) {
180
- console.error('❌ 注册 DYORSwap 失败:', error);
67
+ console.error('❌ 注册 DYORSwap 失败:', getErrorMessageFromUnknown(error));
181
68
  return false;
182
69
  }
183
70
  }
@@ -193,7 +80,7 @@ export function registerStableCoin(chain, coin) {
193
80
  const chainConfig = getChainConfig(chain);
194
81
  if (chainConfig) {
195
82
  // 检查是否已存在
196
- const exists = chainConfig.stableCoins.some(c => c.address.toLowerCase() === coin.address.toLowerCase());
83
+ const exists = chainConfig.stableCoins.some((c) => c.address.toLowerCase() === coin.address.toLowerCase());
197
84
  if (!exists) {
198
85
  chainConfig.stableCoins.push(coin);
199
86
  }
@@ -236,7 +123,7 @@ export function getQuoteTokens(chain) {
236
123
  return [];
237
124
  return [
238
125
  { address: config.wrappedNative, symbol: config.wrappedNativeSymbol, decimals: 18, isNative: true },
239
- ...config.stableCoins.map(c => ({ ...c, isNative: false })),
126
+ ...config.stableCoins.map((c) => ({ ...c, isNative: false })),
240
127
  ];
241
128
  }
242
129
  // ============================================================================
@@ -254,7 +141,7 @@ const MULTICALL3_ADDRESS = ADDRESSES.BSC.Multicall3;
254
141
  const providerCache = new Map();
255
142
  function getProvider(rpcUrl) {
256
143
  if (!providerCache.has(rpcUrl)) {
257
- providerCache.set(rpcUrl, new JsonRpcProvider(rpcUrl));
144
+ providerCache.set(rpcUrl, createProvider(rpcUrl));
258
145
  }
259
146
  return providerCache.get(rpcUrl);
260
147
  }
@@ -308,7 +195,6 @@ export async function inspectTokenLP(token, opts) {
308
195
  // 获取链配置
309
196
  let chainConfig = getChainConfig(opts.chain);
310
197
  if (!chainConfig) {
311
- console.warn(`[LP Inspect] Unknown chain: ${opts.chain}`);
312
198
  return result;
313
199
  }
314
200
  // 应用自定义配置
@@ -319,13 +205,10 @@ export async function inspectTokenLP(token, opts) {
319
205
  let tokenDecimals;
320
206
  let totalSupplyRaw;
321
207
  try {
322
- const tokenContract = new Contract(token, [
323
- 'function decimals() view returns (uint8)',
324
- 'function totalSupply() view returns (uint256)'
325
- ], provider);
208
+ const tokenContract = new Contract(token, ['function decimals() view returns (uint8)', 'function totalSupply() view returns (uint256)'], provider);
326
209
  const [decimals, supply] = await Promise.all([
327
210
  tokenContract.decimals().catch(() => 18),
328
- tokenContract.totalSupply().catch(() => undefined)
211
+ tokenContract.totalSupply().catch(() => undefined),
329
212
  ]);
330
213
  tokenDecimals = Number(decimals);
331
214
  totalSupplyRaw = supply ? BigInt(supply) : undefined;
@@ -350,94 +233,23 @@ export async function inspectTokenLP(token, opts) {
350
233
  try {
351
234
  const stV7 = await flap.getTokenV7(token);
352
235
  st = stV7;
353
- // taxRate bigint,需要转换为 number
354
- taxRate = typeof stV7.taxRate === 'bigint' ? Number(stV7.taxRate) : Number(stV7.taxRate ?? 0);
355
- if (opts.debug)
356
- console.log('[LP Inspect] Flap V7 taxRate:', taxRate);
236
+ taxRate = Number(stV7.taxRate ?? 0n);
357
237
  }
358
238
  catch {
359
- // V7 不支持,fallback 到 V5
360
239
  st = await flap.getTokenV5(token);
361
- if (opts.debug)
362
- console.log('[LP Inspect] Flap V7 failed, using V5');
363
240
  }
364
- if (st && st.status !== undefined) {
365
- const status = Number(st.status);
366
- // ✅ 已毕业:按池类型分流(Infinity CL / Pancake V3 pair / 继续扫外盘)
367
- if (status === 4) {
368
- const quoteAddr = st.quoteTokenAddress && st.quoteTokenAddress.toLowerCase() !== ZERO_ADDRESS
369
- ? st.quoteTokenAddress
370
- : chainConfig.wrappedNative;
371
- let quoteDecimals = 18;
372
- let quoteSymbol = chainConfig.wrappedNativeSymbol;
373
- if (quoteAddr.toLowerCase() !== chainConfig.wrappedNative.toLowerCase()) {
374
- quoteDecimals = await getTokenDecimals(quoteAddr, provider);
375
- const stableCoin = chainConfig.stableCoins.find(c => c.address.toLowerCase() === quoteAddr.toLowerCase());
376
- quoteSymbol = stableCoin?.symbol || 'TOKEN';
377
- }
378
- const metrics = await getFlapGraduatedDexMetrics({
379
- portal: flap,
380
- tokenAddress: token,
381
- state: st,
382
- rpcUrl: opts.rpcUrl,
383
- wrappedNativeAddress: chainConfig.wrappedNative,
384
- chain: opts.chain,
385
- });
386
- const hasMetrics = (metrics.price && metrics.price !== '0') ||
387
- parseFloat(metrics.poolBNBAmount || '0') > 0;
388
- if (hasMetrics) {
389
- result.platform = 'FLAP';
390
- result.flap = {
391
- quoteToken: quoteAddr,
392
- quoteSymbol,
393
- quoteDecimals,
394
- reserveNative: metrics.poolBNBAmount,
395
- circulatingSupply: formatBalance(st.circulatingSupply, shouldFormat, tokenDecimals ?? 18),
396
- price: metrics.price,
397
- taxRate,
398
- };
399
- if (taxRate && taxRate > 0)
400
- result.taxRate = taxRate;
401
- const liqRaw = metrics.poolBNBAmount
402
- ? BigInt(Math.floor(parseFloat(metrics.poolBNBAmount) * 1e18))
403
- : 0n;
404
- const tokRaw = metrics.poolTokenAmount
405
- ? BigInt(Math.floor(parseFloat(metrics.poolTokenAmount) * 1e18))
406
- : 0n;
407
- const isInfinity = isFlapInfinityCLGraduated(st, opts.chain);
408
- result.bestPools.push({
409
- dex: isInfinity ? 'PancakeSwap Infinity CL' : 'PancakeSwap V3',
410
- dexKey: isInfinity ? 'PCS_INFINITY_CL' : 'PANCAKESWAP_V3',
411
- version: 'v3',
412
- fee: metrics.infinityFee,
413
- quoteToken: quoteAddr,
414
- quoteSymbol,
415
- quoteDecimals,
416
- pairAddress: isInfinity
417
- ? (metrics.poolId ?? PCS_INFINITY_CL_POOL_MANAGER_BSC)
418
- : (st.pool || ''),
419
- liquidity: metrics.poolBNBAmount,
420
- liquidityRaw: liqRaw,
421
- reserveToken: metrics.poolTokenAmount,
422
- reserveTokenRaw: tokRaw,
423
- });
424
- return result;
425
- }
426
- if (opts.debug) {
427
- console.log('[LP Inspect] Flap graduated metrics empty, fallback to DEX scan');
428
- }
429
- }
241
+ if (st && st.status !== undefined && Number(st.status) !== 4) {
430
242
  result.platform = 'FLAP';
431
243
  let quoteDecimals = 18;
432
244
  let quoteSymbol = chainConfig.wrappedNativeSymbol;
433
- if (st.quoteTokenAddress && st.quoteTokenAddress.toLowerCase() !== ZERO_ADDRESS) {
434
- quoteDecimals = await getTokenDecimals(st.quoteTokenAddress, provider);
435
- // 查找符号
436
- const stableCoin = chainConfig.stableCoins.find(c => c.address.toLowerCase() === st.quoteTokenAddress.toLowerCase());
245
+ const quoteTokenAddress = st.quoteTokenAddress;
246
+ if (quoteTokenAddress && quoteTokenAddress.toLowerCase() !== ZERO_ADDRESS) {
247
+ quoteDecimals = await getTokenDecimals(quoteTokenAddress, provider);
248
+ const stableCoin = chainConfig.stableCoins.find((c) => c.address.toLowerCase() === quoteTokenAddress.toLowerCase());
437
249
  quoteSymbol = stableCoin?.symbol || 'TOKEN';
438
250
  }
439
251
  result.flap = {
440
- quoteToken: st.quoteTokenAddress,
252
+ quoteToken: quoteTokenAddress,
441
253
  quoteSymbol,
442
254
  quoteDecimals,
443
255
  reserveNative: formatBalance(st.reserve, shouldFormat, quoteDecimals),
@@ -452,9 +264,8 @@ export async function inspectTokenLP(token, opts) {
452
264
  return result;
453
265
  }
454
266
  }
455
- catch (err) {
456
- if (opts.debug)
457
- console.log('[LP Inspect] Flap check failed:', err);
267
+ catch {
268
+ // Flap 检测失败,继续其他平台检测
458
269
  }
459
270
  }
460
271
  // ========================================
@@ -473,11 +284,8 @@ export async function inspectTokenLP(token, opts) {
473
284
  // status: 0=不存在, 1=交易中(内盘), 2=已毕业(外盘)
474
285
  if (status === 1) {
475
286
  result.platform = 'DAOAAS';
476
- const price = await portal.getPrice(token);
477
- const tokenContract = new Contract(token, [
478
- 'function totalSupply() view returns (uint256)',
479
- 'function balanceOf(address) view returns (uint256)',
480
- ], provider);
287
+ const price = (await portal.getPrice(token));
288
+ const tokenContract = new Contract(token, ['function totalSupply() view returns (uint256)', 'function balanceOf(address) view returns (uint256)'], provider);
481
289
  const [totalSupply, portalTokenBalance] = await Promise.all([
482
290
  tokenContract.totalSupply(),
483
291
  tokenContract.balanceOf(portalAddress),
@@ -486,7 +294,7 @@ export async function inspectTokenLP(token, opts) {
486
294
  let reserveNative = '0';
487
295
  try {
488
296
  if (circulatingSupply > 0n) {
489
- const saleValue = await portal.getOKAmountBySale(token, circulatingSupply);
297
+ const saleValue = (await portal.getOKAmountBySale(token, circulatingSupply));
490
298
  reserveNative = formatBalance(saleValue, shouldFormat, 18);
491
299
  }
492
300
  }
@@ -495,7 +303,9 @@ export async function inspectTokenLP(token, opts) {
495
303
  const egasBalance = await provider.getBalance(portalAddress);
496
304
  reserveNative = formatBalance(egasBalance, shouldFormat, 18);
497
305
  }
498
- catch { /* ignore */ }
306
+ catch {
307
+ /* ignore */
308
+ }
499
309
  }
500
310
  result.daoaas = {
501
311
  quoteToken: ZERO_ADDRESS,
@@ -510,9 +320,8 @@ export async function inspectTokenLP(token, opts) {
510
320
  }
511
321
  // status === 2 (Graduated): 已毕业到 DSWAP V2,继续走外盘检测
512
322
  }
513
- catch (err) {
514
- if (opts.debug)
515
- console.log('[LP Inspect] DAOaaS Portal check failed:', err);
323
+ catch {
324
+ // DAOaaS Portal 检测失败,继续其他平台检测
516
325
  }
517
326
  }
518
327
  // ========================================
@@ -522,24 +331,21 @@ export async function inspectTokenLP(token, opts) {
522
331
  try {
523
332
  const helper = Helper3.connectByChain('BSC', opts.rpcUrl);
524
333
  const info = await helper.getTokenInfo(token);
525
- if (info) {
526
- const tokenManager = info.tokenManager;
527
- const versionNum = Number(info.version ?? 0);
528
- const liquidityAdded = Boolean(info.liquidityAdded);
529
- const isValid = tokenManager && tokenManager !== ZERO_ADDRESS && (versionNum === 1 || versionNum === 2);
530
- if (isValid && !liquidityAdded) {
531
- result.platform = 'FOUR';
532
- const reserveNative = info.funds !== undefined ? formatBalance(info.funds, shouldFormat) : undefined;
533
- const offerTokens = info.offers !== undefined ? formatBalance(info.offers, shouldFormat) : undefined;
534
- const lastPrice = info.lastPrice !== undefined ? formatBalance(info.lastPrice, shouldFormat) : undefined;
535
- result.four = { helper: ADDRESSES.BSC.TokenManagerHelper3, reserveNative, offerTokens, lastPrice };
536
- return result;
537
- }
334
+ const tokenManager = info.tokenManager;
335
+ const versionNum = Number(info.version);
336
+ const liquidityAdded = info.liquidityAdded;
337
+ const isValid = tokenManager && tokenManager !== ZERO_ADDRESS && (versionNum === 1 || versionNum === 2);
338
+ if (isValid && !liquidityAdded) {
339
+ result.platform = 'FOUR';
340
+ const reserveNative = formatBalance(info.funds, shouldFormat);
341
+ const offerTokens = formatBalance(info.offers, shouldFormat);
342
+ const lastPrice = formatBalance(info.lastPrice, shouldFormat);
343
+ result.four = { helper: ADDRESSES.BSC.TokenManagerHelper3, reserveNative, offerTokens, lastPrice };
344
+ return result;
538
345
  }
539
346
  }
540
- catch (err) {
541
- if (opts.debug)
542
- console.log('[LP Inspect] Four.meme check failed:', err);
347
+ catch {
348
+ // Four.meme 检测失败,继续外盘检测
543
349
  }
544
350
  }
545
351
  // ========================================
@@ -564,7 +370,7 @@ export async function inspectTokenLP(token, opts) {
564
370
  // V2 查询
565
371
  if (dexConfig.v2Factory) {
566
372
  try {
567
- const v2Pairs = await queryV2Pairs(token, dexConfig.v2Factory, quoteTokens, provider, multicall3, tokenDecimals ?? 18, shouldFormat, opts.debug);
373
+ const v2Pairs = await queryV2Pairs(token, dexConfig.v2Factory, quoteTokens, provider, multicall3, tokenDecimals ?? 18, shouldFormat);
568
374
  dexPoolInfo.v2Pairs = v2Pairs;
569
375
  // 添加到最佳池子候选
570
376
  for (const pair of v2Pairs) {
@@ -585,15 +391,14 @@ export async function inspectTokenLP(token, opts) {
585
391
  }
586
392
  }
587
393
  }
588
- catch (err) {
589
- if (opts.debug)
590
- console.log(`[LP Inspect] ${dexConfig.name} V2 query failed:`, err);
394
+ catch {
395
+ // 单个 DEX V2 查询失败,继续其他 DEX
591
396
  }
592
397
  }
593
398
  // V3 查询
594
399
  if (dexConfig.v3Factory) {
595
400
  try {
596
- const v3Pools = await queryV3Pools(token, dexConfig.v3Factory, quoteTokens, v3FeeTiers, provider, multicall3, tokenDecimals ?? 18, shouldFormat, opts.debug);
401
+ const v3Pools = await queryV3Pools(token, dexConfig.v3Factory, quoteTokens, v3FeeTiers, provider, multicall3, tokenDecimals ?? 18, shouldFormat);
597
402
  dexPoolInfo.v3Pools = v3Pools;
598
403
  // 添加到最佳池子候选
599
404
  for (const pool of v3Pools) {
@@ -615,9 +420,8 @@ export async function inspectTokenLP(token, opts) {
615
420
  }
616
421
  }
617
422
  }
618
- catch (err) {
619
- if (opts.debug)
620
- console.log(`[LP Inspect] ${dexConfig.name} V3 query failed:`, err);
423
+ catch {
424
+ // 单个 DEX V3 查询失败,继续其他 DEX
621
425
  }
622
426
  }
623
427
  return dexPoolInfo;
@@ -625,7 +429,7 @@ export async function inspectTokenLP(token, opts) {
625
429
  // 等待所有 DEX 查询完成
626
430
  const dexResults = await Promise.all(dexPromises);
627
431
  // 过滤出有流动性的 DEX
628
- result.allPools = dexResults.filter(dex => dex.v2Pairs.length > 0 || dex.v3Pools.length > 0);
432
+ result.allPools = dexResults.filter((dex) => dex.v2Pairs.length > 0 || dex.v3Pools.length > 0);
629
433
  // 按流动性排序最佳池子,并计算 poolRatio
630
434
  result.bestPools = allBestPoolCandidates
631
435
  .sort((a, b) => {
@@ -637,7 +441,7 @@ export async function inspectTokenLP(token, opts) {
637
441
  return 0;
638
442
  })
639
443
  .slice(0, 10) // 最多返回 10 个
640
- .map(pool => {
444
+ .map((pool) => {
641
445
  // ✅ 计算池子代币占比
642
446
  if (pool.reserveTokenRaw && totalSupplyRaw && totalSupplyRaw > 0n) {
643
447
  // 计算百分比:(reserveTokenRaw / totalSupplyRaw) * 100
@@ -678,17 +482,13 @@ export async function inspectTokenLP(token, opts) {
678
482
  const flap = new FlapPortal({ chain: opts.flapChain, rpcUrl: opts.rpcUrl });
679
483
  const stV7 = await flap.getTokenV7(token);
680
484
  // taxRate 是 bigint,需要转换为 number
681
- const taxRate = typeof stV7.taxRate === 'bigint' ? Number(stV7.taxRate) : Number(stV7.taxRate ?? 0);
485
+ const taxRate = Number(stV7.taxRate ?? 0n);
682
486
  if (taxRate > 0) {
683
487
  result.taxRate = taxRate;
684
- if (opts.debug)
685
- console.log('[LP Inspect] 外盘税率:', taxRate, 'bps');
686
488
  }
687
489
  }
688
- catch (err) {
490
+ catch {
689
491
  // V7 不支持或代币不是 Flap 创建的,忽略
690
- if (opts.debug)
691
- console.log('[LP Inspect] 外盘税率查询失败(可忽略):', err);
692
492
  }
693
493
  }
694
494
  return result;
@@ -696,20 +496,20 @@ export async function inspectTokenLP(token, opts) {
696
496
  // ============================================================================
697
497
  // V2 批量查询
698
498
  // ============================================================================
699
- async function queryV2Pairs(token, factoryAddress, quoteTokens, provider, multicall3, tokenDecimals, shouldFormat, debug) {
499
+ async function queryV2Pairs(token, factoryAddress, quoteTokens, provider, multicall3, tokenDecimals, shouldFormat) {
700
500
  const results = [];
701
501
  const factoryIface = new Interface(I_UNIV2_FACTORY_ABI);
702
502
  const pairIface = new Interface(I_UNIV2_PAIR_ABI);
703
503
  const mcIface = new Interface(MULTICALL3_ABI);
704
504
  // 第一步:批量查询所有 getPair
705
- const pairCalls = quoteTokens.map(qt => ({
505
+ const pairCalls = quoteTokens.map((qt) => ({
706
506
  target: factoryAddress,
707
507
  callData: factoryIface.encodeFunctionData('getPair', [token, qt.address]),
708
508
  quoteToken: qt,
709
509
  }));
710
510
  try {
711
511
  const aggData = mcIface.encodeFunctionData('aggregate', [
712
- pairCalls.map(c => ({ target: c.target, callData: c.callData }))
512
+ pairCalls.map((c) => ({ target: c.target, callData: c.callData })),
713
513
  ]);
714
514
  const res = await provider.call({ to: multicall3, data: aggData });
715
515
  const [, returnData] = mcIface.decodeFunctionResult('aggregate', res);
@@ -730,7 +530,7 @@ async function queryV2Pairs(token, factoryAddress, quoteTokens, provider, multic
730
530
  if (validPairs.length === 0)
731
531
  return results;
732
532
  // 第二步:批量查询 getReserves
733
- const reserveCalls = validPairs.flatMap(p => [
533
+ const reserveCalls = validPairs.flatMap((p) => [
734
534
  { target: p.pairAddress, callData: pairIface.encodeFunctionData('token0', []) },
735
535
  { target: p.pairAddress, callData: pairIface.encodeFunctionData('token1', []) },
736
536
  { target: p.pairAddress, callData: pairIface.encodeFunctionData('getReserves', []) },
@@ -743,7 +543,7 @@ async function queryV2Pairs(token, factoryAddress, quoteTokens, provider, multic
743
543
  try {
744
544
  const idx = i * 3;
745
545
  const token0 = pairIface.decodeFunctionResult('token0', returnData2[idx])[0];
746
- const token1 = pairIface.decodeFunctionResult('token1', returnData2[idx + 1])[0];
546
+ pairIface.decodeFunctionResult('token1', returnData2[idx + 1]);
747
547
  const [r0, r1] = pairIface.decodeFunctionResult('getReserves', returnData2[idx + 2]);
748
548
  const p = validPairs[i];
749
549
  const isToken0 = token0.toLowerCase() === token.toLowerCase();
@@ -760,15 +560,12 @@ async function queryV2Pairs(token, factoryAddress, quoteTokens, provider, multic
760
560
  reserveTokenRaw: reserveToken, // ✅ 新增
761
561
  });
762
562
  }
763
- catch (err) {
764
- if (debug)
765
- console.log('[V2] Reserve decode error:', err);
563
+ catch {
564
+ // 单条 reserve 解码失败,跳过
766
565
  }
767
566
  }
768
567
  }
769
- catch (err) {
770
- if (debug)
771
- console.log('[V2] Multicall failed:', err);
568
+ catch {
772
569
  // Fallback: 逐个查询
773
570
  return queryV2PairsFallback(token, factoryAddress, quoteTokens, provider, tokenDecimals, shouldFormat);
774
571
  }
@@ -784,12 +581,7 @@ async function queryV2PairsFallback(token, factoryAddress, quoteTokens, provider
784
581
  return null;
785
582
  }
786
583
  const pair = new Contract(pairAddress, I_UNIV2_PAIR_ABI, provider);
787
- // 并行获取 token0token1 和 reserves
788
- const [token0, token1, reserves] = await Promise.all([
789
- pair.token0(),
790
- pair.token1(),
791
- pair.getReserves()
792
- ]);
584
+ const [token0, , reserves] = await Promise.all([pair.token0(), pair.token1(), pair.getReserves()]);
793
585
  const [r0, r1] = reserves;
794
586
  const isToken0 = token0.toLowerCase() === token.toLowerCase();
795
587
  const reserveToken = isToken0 ? r0 : r1;
@@ -815,7 +607,7 @@ async function queryV2PairsFallback(token, factoryAddress, quoteTokens, provider
815
607
  // ============================================================================
816
608
  // V3 批量查询
817
609
  // ============================================================================
818
- async function queryV3Pools(token, factoryAddress, quoteTokens, feeTiers, provider, multicall3, tokenDecimals, shouldFormat, debug) {
610
+ async function queryV3Pools(token, factoryAddress, quoteTokens, feeTiers, provider, multicall3, tokenDecimals, shouldFormat) {
819
611
  const results = [];
820
612
  const factoryIface = new Interface(I_UNIV3_FACTORY_ABI);
821
613
  const erc20Iface = new Interface(I_ERC20_ABI);
@@ -827,9 +619,7 @@ async function queryV3Pools(token, factoryAddress, quoteTokens, feeTiers, provid
827
619
  // V3 要求 token0 < token1
828
620
  const tokenLower = token.toLowerCase();
829
621
  const quoteLower = qt.address.toLowerCase();
830
- const [token0, token1] = tokenLower < quoteLower
831
- ? [tokenLower, quoteLower]
832
- : [quoteLower, tokenLower];
622
+ const [token0, token1] = tokenLower < quoteLower ? [tokenLower, quoteLower] : [quoteLower, tokenLower];
833
623
  poolCalls.push({
834
624
  target: factoryAddress,
835
625
  callData: factoryIface.encodeFunctionData('getPool', [token0, token1, fee]),
@@ -841,7 +631,7 @@ async function queryV3Pools(token, factoryAddress, quoteTokens, feeTiers, provid
841
631
  try {
842
632
  // 第一步:批量查询所有 getPool
843
633
  const aggData = mcIface.encodeFunctionData('aggregate', [
844
- poolCalls.map(c => ({ target: c.target, callData: c.callData }))
634
+ poolCalls.map((c) => ({ target: c.target, callData: c.callData })),
845
635
  ]);
846
636
  const res = await provider.call({ to: multicall3, data: aggData });
847
637
  const [, returnData] = mcIface.decodeFunctionResult('aggregate', res);
@@ -866,7 +656,7 @@ async function queryV3Pools(token, factoryAddress, quoteTokens, feeTiers, provid
866
656
  if (validPools.length === 0)
867
657
  return results;
868
658
  // 第二步:批量查询余额
869
- const balanceCalls = validPools.flatMap(p => [
659
+ const balanceCalls = validPools.flatMap((p) => [
870
660
  { target: token, callData: erc20Iface.encodeFunctionData('balanceOf', [p.poolAddress]) },
871
661
  { target: p.quoteToken.address, callData: erc20Iface.encodeFunctionData('balanceOf', [p.poolAddress]) },
872
662
  ]);
@@ -892,15 +682,12 @@ async function queryV3Pools(token, factoryAddress, quoteTokens, feeTiers, provid
892
682
  fee: p.fee,
893
683
  });
894
684
  }
895
- catch (err) {
896
- if (debug)
897
- console.log('[V3] Balance decode error:', err);
685
+ catch {
686
+ // 单条 balance 解码失败,跳过
898
687
  }
899
688
  }
900
689
  }
901
- catch (err) {
902
- if (debug)
903
- console.log('[V3] Multicall failed:', err);
690
+ catch {
904
691
  // Fallback: 逐个查询
905
692
  return queryV3PoolsFallback(token, factoryAddress, quoteTokens, feeTiers, provider, tokenDecimals, shouldFormat);
906
693
  }
@@ -914,9 +701,7 @@ async function queryV3PoolsFallback(token, factoryAddress, quoteTokens, feeTiers
914
701
  for (const qt of quoteTokens) {
915
702
  const tokenLower = token.toLowerCase();
916
703
  const quoteLower = qt.address.toLowerCase();
917
- const [token0, token1] = tokenLower < quoteLower
918
- ? [tokenLower, quoteLower]
919
- : [quoteLower, tokenLower];
704
+ const [token0, token1] = tokenLower < quoteLower ? [tokenLower, quoteLower] : [quoteLower, tokenLower];
920
705
  for (const fee of feeTiers) {
921
706
  queries.push({ qt, fee, token0, token1 });
922
707
  }
@@ -960,7 +745,7 @@ function determinePlatform(allPools) {
960
745
  if (allPools.length === 0)
961
746
  return 'UNKNOWN';
962
747
  // 统计有流动性的 DEX
963
- const dexesWithLiquidity = allPools.filter(dex => dex.v2Pairs.length > 0 || dex.v3Pools.length > 0);
748
+ const dexesWithLiquidity = allPools.filter((dex) => dex.v2Pairs.length > 0 || dex.v3Pools.length > 0);
964
749
  if (dexesWithLiquidity.length > 1) {
965
750
  return 'MULTI_DEX';
966
751
  }
@@ -1,8 +1,5 @@
1
- export type ExclusiveCheckOnChainParams = {
2
- chain: 'BSC';
3
- tokenAddress: string;
4
- rpcUrl: string;
5
- };
1
+ import type { ExclusiveCheckOnChainParams } from './types/mpc-exclusive.js';
2
+ export type { ExclusiveCheckOnChainParams } from './types/mpc-exclusive.js';
6
3
  export declare function isExclusiveOnChain(params: ExclusiveCheckOnChainParams): Promise<boolean>;
7
4
  export declare function isExclusiveOffChain(getTokenInfo: (token: string) => Promise<{
8
5
  version?: string;