four-flap-meme-sdk 2.2.19 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/{shared/abis → abis}/common.d.ts +1 -1
  2. package/dist/{shared/abis → abis}/common.js +75 -91
  3. package/dist/abis/contracts/TaxToken.json +969 -0
  4. package/dist/abis/contracts/TokenManager2.json +136 -0
  5. package/dist/{shared/abis → abis/contracts}/index.d.ts +0 -1
  6. package/dist/{shared/abis → abis/contracts}/index.js +0 -2
  7. package/dist/abis/flap/index.d.ts +5 -0
  8. package/dist/abis/flap/index.js +5 -0
  9. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  10. package/dist/abis/flap/portal-eip7702.js +39 -0
  11. package/dist/abis/flap/portal-events.d.ts +6 -0
  12. package/dist/abis/flap/portal-events.js +17 -0
  13. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  14. package/dist/abis/flap/portal-merkle.js +25 -0
  15. package/dist/abis/flap/portal.d.ts +6 -0
  16. package/dist/abis/flap/portal.js +37 -0
  17. package/dist/abis/flap/vault.d.ts +171 -0
  18. package/dist/abis/flap/vault.js +91 -0
  19. package/dist/abis/index.d.ts +6 -0
  20. package/dist/abis/index.js +9 -0
  21. package/dist/bundle/config-helpers.d.ts +37 -0
  22. package/dist/bundle/config-helpers.js +58 -0
  23. package/dist/bundle/errors.d.ts +50 -0
  24. package/dist/bundle/errors.js +38 -0
  25. package/dist/bundle/four-meme/approve-tokenmanager.d.ts +7 -0
  26. package/dist/bundle/four-meme/approve-tokenmanager.js +99 -0
  27. package/dist/bundle/four-meme/core-helpers.d.ts +8 -0
  28. package/dist/bundle/four-meme/core-helpers.js +41 -0
  29. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.d.ts +1 -1
  30. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.js +74 -150
  31. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.d.ts +1 -1
  32. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.js +85 -92
  33. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.d.ts +1 -1
  34. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.js +48 -59
  35. package/dist/bundle/four-meme/sign-context-helpers.d.ts +2 -0
  36. package/dist/bundle/four-meme/sign-context-helpers.js +2 -0
  37. package/dist/bundle/four-meme/swap-buy-first.d.ts +8 -0
  38. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-buy-first.js +56 -108
  39. package/dist/bundle/four-meme/swap-hop-helpers.d.ts +6 -0
  40. package/dist/bundle/four-meme/swap-hop-helpers.js +63 -0
  41. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.js +4 -4
  42. package/dist/bundle/four-meme/swap-sign-helpers.d.ts +28 -0
  43. package/dist/bundle/four-meme/swap-sign-helpers.js +105 -0
  44. package/dist/bundle/four-meme/swap.d.ts +17 -0
  45. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap.js +84 -345
  46. package/dist/{contracts/tm-bundle-merkle/swap-buy-first.d.ts → bundle/four-meme/types/buy-first.d.ts} +11 -18
  47. package/dist/bundle/four-meme/types/core-flow.d.ts +63 -0
  48. package/dist/bundle/four-meme/types/core-flow.js +1 -0
  49. package/dist/{contracts/tm-bundle-merkle/types.d.ts → bundle/four-meme/types/index.d.ts} +130 -6
  50. package/dist/bundle/four-meme/types/index.js +1 -0
  51. package/dist/bundle/four-meme/types/swap-internal.d.ts +19 -0
  52. package/dist/bundle/four-meme/types/swap-internal.js +1 -0
  53. package/dist/bundle/four-meme/types.d.ts +1 -0
  54. package/dist/bundle/four-meme/utils-disperse.d.ts +7 -0
  55. package/dist/bundle/four-meme/utils-disperse.js +396 -0
  56. package/dist/bundle/four-meme/utils-pairwise.d.ts +8 -0
  57. package/dist/bundle/four-meme/utils-pairwise.js +328 -0
  58. package/dist/bundle/four-meme/utils-sweep.d.ts +8 -0
  59. package/dist/bundle/four-meme/utils-sweep.js +744 -0
  60. package/dist/bundle/index.d.ts +8 -0
  61. package/dist/bundle/index.js +8 -0
  62. package/dist/bundle/internal.d.ts +16 -0
  63. package/dist/bundle/internal.js +160 -0
  64. package/dist/bundle/sign-context-helpers.d.ts +26 -0
  65. package/dist/bundle/sign-context-helpers.js +63 -0
  66. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.d.ts +6 -27
  67. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.js +116 -313
  68. package/dist/bundle/types/index.d.ts +8 -0
  69. package/dist/bundle/types/index.js +1 -0
  70. package/dist/bundle/types.d.ts +1 -0
  71. package/dist/bundle/types.js +1 -0
  72. package/dist/chains/bsc/constants.js +1 -1
  73. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  74. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  75. package/dist/chains/bsc/four/config.d.ts +5 -67
  76. package/dist/chains/bsc/four/config.js +2 -114
  77. package/dist/chains/bsc/four/core.d.ts +1 -4
  78. package/dist/chains/bsc/four/core.js +1 -592
  79. package/dist/chains/bsc/four/index.d.ts +6 -6
  80. package/dist/chains/bsc/four/index.js +6 -6
  81. package/dist/chains/bsc/four/internal.d.ts +2 -46
  82. package/dist/chains/bsc/four/internal.js +2 -239
  83. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  84. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  85. package/dist/chains/bsc/four/private.d.ts +1 -27
  86. package/dist/chains/bsc/four/private.js +1 -477
  87. package/dist/chains/bsc/four/submit.d.ts +2 -315
  88. package/dist/chains/bsc/four/submit.js +2 -752
  89. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  90. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  91. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  92. package/dist/chains/bsc/four/swap-internal.js +1 -18
  93. package/dist/chains/bsc/four/swap.d.ts +2 -144
  94. package/dist/chains/bsc/four/swap.js +2 -766
  95. package/dist/chains/bsc/four/types.d.ts +1 -476
  96. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  97. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  98. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  99. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  100. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  101. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  102. package/dist/chains/bsc/four/utils.d.ts +5 -18
  103. package/dist/chains/bsc/four/utils.js +5 -1552
  104. package/dist/chains/bsc/iro.d.ts +5 -0
  105. package/dist/chains/bsc/iro.js +4 -0
  106. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  109. package/dist/chains/bsc/pancake/bundle-buy-first.js +99 -214
  110. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  112. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  113. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  114. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  115. package/dist/chains/bsc/pancake/index.js +1 -3
  116. package/dist/chains/bsc/platforms/iro/constants.js +1 -1
  117. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  118. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  119. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  120. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  121. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  122. package/dist/chains/bsc/platforms/iro/token.js +5 -2
  123. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  124. package/dist/chains/eni/batch-router/transfer.js +57 -27
  125. package/dist/chains/eni/batch-router/utils.js +32 -6
  126. package/dist/chains/eni/bundler/sign.js +5 -6
  127. package/dist/chains/eni/bundler/submit.js +1 -4
  128. package/dist/chains/eni/constants.js +2 -2
  129. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  130. package/dist/chains/eni/flat-aliases.js +8 -0
  131. package/dist/chains/eni/index.d.ts +2 -1
  132. package/dist/chains/eni/index.js +1 -0
  133. package/dist/chains/eni/platforms/daoaas/create.js +3 -3
  134. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  135. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  136. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  137. package/dist/chains/eni/platforms/daoaas/portal-direct.js +29 -45
  138. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  139. package/dist/chains/eni/platforms/dswap/liquidity.js +59 -27
  140. package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
  141. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  142. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  143. package/dist/chains/eni/platforms/fair-launch/launcher.js +88 -47
  144. package/dist/chains/eni/platforms/fair-launch/pool.js +5 -2
  145. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  146. package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
  147. package/dist/chains/eni/platforms/iro/constants.js +2 -2
  148. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  149. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  150. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  151. package/dist/chains/eni/platforms/iro/index.js +4 -4
  152. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  153. package/dist/chains/eni/platforms/iro/token.js +108 -32
  154. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  155. package/dist/chains/eni/submit.d.ts +43 -0
  156. package/dist/chains/eni/submit.js +287 -0
  157. package/dist/chains/index.d.ts +13 -0
  158. package/dist/chains/index.js +13 -0
  159. package/dist/chains/monad/constants.js +1 -1
  160. package/dist/chains/xlayer/constants.d.ts +5 -0
  161. package/dist/chains/xlayer/constants.js +1 -1
  162. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  163. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  164. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  165. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  166. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  167. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  168. package/dist/chains/xlayer/eip7702/bundle-sell.js +30 -112
  169. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  170. package/dist/chains/xlayer/eip7702/bundle-swap.js +52 -246
  171. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  172. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  173. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  174. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  175. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  176. package/dist/chains/xlayer/eip7702/index.js +28 -81
  177. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  178. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  179. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  180. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +64 -308
  181. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  182. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  183. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  184. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  185. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  186. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  187. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  188. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  189. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  190. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  191. package/dist/chains/xlayer/eoa/constants.js +2 -16
  192. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  193. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  194. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  195. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  196. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  197. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  198. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  199. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  200. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  201. package/dist/chains/xlayer/eoa/index.js +8 -23
  202. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  203. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  204. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  205. package/dist/chains/xlayer/eoa/types.js +1 -3
  206. package/dist/chains/xlayer/index.d.ts +3 -2
  207. package/dist/chains/xlayer/index.js +4 -7
  208. package/dist/core/amount/split-by-weight.d.ts +5 -0
  209. package/dist/core/amount/split-by-weight.js +35 -0
  210. package/dist/{shared → core}/clients/blockrazor.d.ts +4 -8
  211. package/dist/{shared → core}/clients/blockrazor.js +43 -35
  212. package/dist/{shared → core}/clients/club48.d.ts +2 -2
  213. package/dist/{shared → core}/clients/club48.js +36 -30
  214. package/dist/{shared → core}/clients/emitservice.js +2 -0
  215. package/dist/{shared → core}/clients/four.d.ts +21 -6
  216. package/dist/{shared → core}/clients/four.js +29 -24
  217. package/dist/core/clients/index.d.ts +8 -0
  218. package/dist/core/clients/index.js +8 -0
  219. package/dist/{shared → core}/clients/merkle.d.ts +4 -3
  220. package/dist/{shared → core}/clients/merkle.js +30 -47
  221. package/dist/{shared → core}/constants/addresses.d.ts +27 -1
  222. package/dist/{shared → core}/constants/addresses.js +39 -2
  223. package/dist/{shared → core}/constants/chains.d.ts +1 -1
  224. package/dist/{shared → core}/constants/chains.js +1 -1
  225. package/dist/{shared → core}/constants/gas.d.ts +1 -1
  226. package/dist/{shared → core}/constants/gas.js +2 -6
  227. package/dist/{shared → core}/constants/index.d.ts +5 -2
  228. package/dist/{shared → core}/constants/index.js +3 -2
  229. package/dist/core/constants/quote.d.ts +30 -0
  230. package/dist/core/constants/quote.js +37 -0
  231. package/dist/core/dex/v3-path.d.ts +6 -0
  232. package/dist/core/dex/v3-path.js +35 -0
  233. package/dist/core/erc20/decimals.d.ts +7 -0
  234. package/dist/core/erc20/decimals.js +24 -0
  235. package/dist/{utils → core}/erc20.d.ts +7 -89
  236. package/dist/{utils → core}/erc20.js +99 -130
  237. package/dist/core/foundation.d.ts +15 -0
  238. package/dist/core/foundation.js +14 -0
  239. package/dist/core/gas/bundle-gas.d.ts +49 -0
  240. package/dist/core/gas/bundle-gas.js +93 -0
  241. package/dist/core/gas/profit-hop.d.ts +20 -0
  242. package/dist/core/gas/profit-hop.js +72 -0
  243. package/dist/core/index.d.ts +5 -0
  244. package/dist/core/index.js +5 -0
  245. package/dist/core/legacy-types/errors.d.ts +27 -0
  246. package/dist/core/legacy-types/errors.js +34 -0
  247. package/dist/core/nonce/nonce-manager.d.ts +19 -0
  248. package/dist/core/nonce/nonce-manager.js +217 -0
  249. package/dist/core/normalize-unknown.d.ts +9 -0
  250. package/dist/core/normalize-unknown.js +29 -0
  251. package/dist/core/sdk-logger.d.ts +13 -0
  252. package/dist/core/sdk-logger.js +12 -0
  253. package/dist/core/shared-abis/common.d.ts +4 -0
  254. package/dist/core/shared-abis/common.js +4 -0
  255. package/dist/core/shared-abis/index.d.ts +5 -0
  256. package/dist/core/shared-abis/index.js +5 -0
  257. package/dist/core/tx/build-request.d.ts +17 -0
  258. package/dist/core/tx/build-request.js +25 -0
  259. package/dist/core/tx/sign-batch.d.ts +5 -0
  260. package/dist/core/tx/sign-batch.js +26 -0
  261. package/dist/core/tx/wallet-sign-patch.d.ts +1 -0
  262. package/dist/core/tx/wallet-sign-patch.js +18 -0
  263. package/dist/core/types/airdrop-sweep.d.ts +79 -0
  264. package/dist/core/types/airdrop-sweep.js +1 -0
  265. package/dist/core/types/erc20.d.ts +65 -0
  266. package/dist/core/types/erc20.js +1 -0
  267. package/dist/core/types/holders-maker.d.ts +64 -0
  268. package/dist/core/types/holders-maker.js +1 -0
  269. package/dist/core/types/index.d.ts +7 -0
  270. package/dist/core/types/index.js +1 -0
  271. package/dist/{utils → core/types}/lp-inspect.d.ts +4 -52
  272. package/dist/core/types/lp-inspect.js +1 -0
  273. package/dist/core/types/multicall.d.ts +5 -0
  274. package/dist/core/types/multicall.js +1 -0
  275. package/dist/core/types/private-sale.d.ts +35 -0
  276. package/dist/core/types/private-sale.js +1 -0
  277. package/dist/core/types/quote-helpers.d.ts +17 -0
  278. package/dist/core/types/quote-helpers.js +1 -0
  279. package/dist/core/types-erc20.d.ts +1 -0
  280. package/dist/core/types-erc20.js +1 -0
  281. package/dist/core/wallet/generate.d.ts +5 -0
  282. package/dist/core/wallet/generate.js +8 -0
  283. package/dist/domains/dex/direct-router-helpers.d.ts +269 -0
  284. package/dist/domains/dex/direct-router-helpers.js +536 -0
  285. package/dist/domains/dex/direct-router.d.ts +28 -0
  286. package/dist/{dex → domains/dex}/direct-router.js +246 -674
  287. package/dist/domains/dex/types.d.ts +81 -0
  288. package/dist/domains/dex/types.js +1 -0
  289. package/dist/{shared → domains}/flap/abi.js +1 -1
  290. package/dist/{shared → domains}/flap/constants.d.ts +1 -2
  291. package/dist/{shared → domains}/flap/constants.js +3 -4
  292. package/dist/{shared → domains}/flap/curve.js +3 -0
  293. package/dist/{shared → domains}/flap/errors.d.ts +1 -4
  294. package/dist/{shared → domains}/flap/errors.js +20 -1
  295. package/dist/domains/flap/index.d.ts +7 -0
  296. package/dist/domains/flap/index.js +5 -0
  297. package/dist/{shared → domains}/flap/meta.d.ts +22 -18
  298. package/dist/{shared → domains}/flap/meta.js +32 -24
  299. package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +4 -5
  300. package/dist/{shared/flap/index.js → domains/flap/module.js} +4 -5
  301. package/dist/{shared → domains}/flap/permit.js +10 -3
  302. package/dist/{shared → domains}/flap/pinata.d.ts +22 -6
  303. package/dist/{shared → domains}/flap/pinata.js +21 -26
  304. package/dist/domains/flap/portal-bundle-merkle/config.d.ts +10 -0
  305. package/dist/domains/flap/portal-bundle-merkle/config.js +13 -0
  306. package/dist/domains/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  307. package/dist/domains/flap/portal-bundle-merkle/core-helpers.js +83 -0
  308. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -4
  309. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +168 -175
  310. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  311. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +97 -118
  312. package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +105 -123
  313. package/dist/domains/flap/portal-bundle-merkle/index.d.ts +18 -0
  314. package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +4 -7
  315. package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +73 -70
  316. package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +63 -116
  317. package/dist/domains/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  318. package/dist/domains/flap/portal-bundle-merkle/swap-batch.js +227 -0
  319. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  320. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  321. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first.d.ts +2 -0
  322. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  323. package/dist/domains/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  324. package/dist/domains/flap/portal-bundle-merkle/swap-cross.js +139 -0
  325. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  326. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  327. package/dist/domains/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  328. package/dist/domains/flap/portal-bundle-merkle/swap-planning.js +182 -0
  329. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  330. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  331. package/dist/domains/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  332. package/dist/domains/flap/portal-bundle-merkle/swap-single.js +184 -0
  333. package/dist/domains/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  334. package/dist/domains/flap/portal-bundle-merkle/swap-types.js +1 -0
  335. package/dist/domains/flap/portal-bundle-merkle/swap.d.ts +8 -0
  336. package/dist/domains/flap/portal-bundle-merkle/swap.js +7 -0
  337. package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +88 -12
  338. package/dist/domains/flap/portal-bundle-merkle/types.js +1 -0
  339. package/dist/domains/flap/portal-bundle-merkle/utils.d.ts +10 -0
  340. package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +145 -265
  341. package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
  342. package/dist/{shared → domains}/flap/portal-bundle.js +84 -79
  343. package/dist/domains/flap/portal-create-token.d.ts +81 -0
  344. package/dist/domains/flap/portal-create-token.js +255 -0
  345. package/dist/{shared → domains}/flap/portal.d.ts +1 -2
  346. package/dist/{shared → domains}/flap/portal.js +36 -28
  347. package/dist/{shared → domains}/flap/vanity.d.ts +6 -6
  348. package/dist/{shared → domains}/flap/vanity.js +15 -21
  349. package/dist/{shared → domains}/flap/vault.d.ts +25 -93
  350. package/dist/{shared → domains}/flap/vault.js +77 -127
  351. package/dist/{flows → domains/flows}/create.d.ts +2 -1
  352. package/dist/{flows → domains/flows}/create.js +8 -8
  353. package/dist/domains/flows/index.d.ts +9 -0
  354. package/dist/domains/flows/index.js +9 -0
  355. package/dist/{contracts → domains/four/contracts}/helper3.d.ts +20 -5
  356. package/dist/{contracts → domains/four/contracts}/helper3.js +56 -20
  357. package/dist/domains/four/contracts/tm-bundle-helpers.d.ts +88 -0
  358. package/dist/domains/four/contracts/tm-bundle-helpers.js +73 -0
  359. package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +4 -52
  360. package/dist/{contracts → domains/four/contracts}/tm-bundle.js +122 -189
  361. package/dist/{contracts → domains/four/contracts}/tm.d.ts +10 -8
  362. package/dist/{contracts → domains/four/contracts}/tm.js +39 -35
  363. package/dist/{contracts → domains/four/contracts}/tm1.js +9 -4
  364. package/dist/{contracts → domains/four/contracts}/tm2.js +10 -5
  365. package/dist/domains/four/index.d.ts +7 -0
  366. package/dist/domains/four/index.js +7 -0
  367. package/dist/{shared → domains}/four/tax-token.d.ts +1 -1
  368. package/dist/{shared → domains}/four/tax-token.js +31 -10
  369. package/dist/domains/holders/holders-maker-helpers.d.ts +9 -0
  370. package/dist/domains/holders/holders-maker-helpers.js +9 -0
  371. package/dist/domains/holders/holders-maker.d.ts +18 -0
  372. package/dist/domains/holders/holders-maker.js +324 -0
  373. package/dist/domains/holders/index.d.ts +1 -0
  374. package/dist/domains/holders/index.js +1 -0
  375. package/dist/domains/holders/internal/addresses.d.ts +12 -0
  376. package/dist/domains/holders/internal/addresses.js +15 -0
  377. package/dist/domains/holders/internal/buy-tx.d.ts +44 -0
  378. package/dist/domains/holders/internal/buy-tx.js +278 -0
  379. package/dist/domains/holders/internal/constants.d.ts +6 -0
  380. package/dist/domains/holders/internal/constants.js +7 -0
  381. package/dist/domains/holders/internal/disperse.d.ts +18 -0
  382. package/dist/domains/holders/internal/disperse.js +90 -0
  383. package/dist/domains/holders/internal/routing.d.ts +4 -0
  384. package/dist/domains/holders/internal/routing.js +45 -0
  385. package/dist/domains/holders/internal/transfer-tx.d.ts +4 -0
  386. package/dist/domains/holders/internal/transfer-tx.js +67 -0
  387. package/dist/domains/holders/types.d.ts +1 -0
  388. package/dist/domains/holders/types.js +1 -0
  389. package/dist/domains/lp-inspect/index.d.ts +1 -0
  390. package/dist/domains/lp-inspect/index.js +1 -0
  391. package/dist/domains/lp-inspect/lp-inspect-helpers.d.ts +9 -0
  392. package/dist/domains/lp-inspect/lp-inspect-helpers.js +109 -0
  393. package/dist/domains/lp-inspect/lp-inspect.d.ts +40 -0
  394. package/dist/{utils → domains/lp-inspect}/lp-inspect.js +78 -293
  395. package/dist/domains/lp-inspect/types.d.ts +1 -0
  396. package/dist/domains/lp-inspect/types.js +1 -0
  397. package/dist/domains/merkle/index.d.ts +12 -0
  398. package/dist/domains/merkle/index.js +11 -0
  399. package/dist/domains/private-sale/index.d.ts +1 -0
  400. package/dist/domains/private-sale/index.js +1 -0
  401. package/dist/domains/private-sale/private-sale.d.ts +34 -0
  402. package/dist/{utils → domains/private-sale}/private-sale.js +5 -16
  403. package/dist/domains/private-sale/types.d.ts +1 -0
  404. package/dist/domains/private-sale/types.js +1 -0
  405. package/dist/domains/quote/index.d.ts +1 -0
  406. package/dist/domains/quote/index.js +1 -0
  407. package/dist/{utils → domains/quote}/quote-helpers.d.ts +4 -45
  408. package/dist/{utils → domains/quote}/quote-helpers.js +17 -74
  409. package/dist/domains/quote/types.d.ts +1 -0
  410. package/dist/domains/quote/types.js +1 -0
  411. package/dist/domains/vanity/index.d.ts +5 -0
  412. package/dist/domains/vanity/index.js +5 -0
  413. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  414. package/dist/exports/root-bundle-and-tooling.js +30 -0
  415. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  416. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  417. package/dist/exports/root-foundations.d.ts +35 -0
  418. package/dist/exports/root-foundations.js +70 -0
  419. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  420. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  421. package/dist/index.d.ts +17 -88
  422. package/dist/index.js +17 -218
  423. package/dist/utils/airdrop-sweep.d.ts +4 -76
  424. package/dist/utils/airdrop-sweep.js +42 -55
  425. package/dist/utils/bundle-helpers.d.ts +9 -243
  426. package/dist/utils/bundle-helpers.js +10 -584
  427. package/dist/utils/constants.d.ts +5 -61
  428. package/dist/utils/constants.js +5 -80
  429. package/dist/utils/contract-factory.d.ts +2 -4
  430. package/dist/utils/contract-factory.js +25 -18
  431. package/dist/utils/errors.d.ts +12 -1
  432. package/dist/utils/errors.js +60 -1
  433. package/dist/utils/hop-chains.d.ts +35 -0
  434. package/dist/utils/hop-chains.js +215 -0
  435. package/dist/utils/index.d.ts +5 -0
  436. package/dist/utils/index.js +5 -0
  437. package/dist/utils/mpcExclusive.d.ts +2 -5
  438. package/dist/utils/mpcExclusive.js +4 -3
  439. package/dist/utils/provider-factory.d.ts +4 -0
  440. package/dist/utils/provider-factory.js +10 -0
  441. package/dist/utils/stealth-transfer.d.ts +2 -28
  442. package/dist/utils/stealth-transfer.js +41 -21
  443. package/dist/utils/swap-helpers.d.ts +2 -15
  444. package/dist/utils/swap-helpers.js +7 -12
  445. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  446. package/dist/utils/types/airdrop-sweep.js +1 -0
  447. package/dist/utils/types/contract-factory.d.ts +1 -0
  448. package/dist/utils/types/contract-factory.js +1 -0
  449. package/dist/utils/types/errors.d.ts +1 -0
  450. package/dist/utils/types/errors.js +1 -0
  451. package/dist/utils/types/hop-chains.d.ts +8 -0
  452. package/dist/utils/types/hop-chains.js +1 -0
  453. package/dist/utils/types/index.d.ts +13 -0
  454. package/dist/utils/types/index.js +1 -0
  455. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  456. package/dist/utils/types/mpc-exclusive.js +1 -0
  457. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  458. package/dist/utils/types/stealth-transfer.js +1 -0
  459. package/dist/utils/types/wallet.d.ts +25 -0
  460. package/dist/utils/types/wallet.js +1 -0
  461. package/dist/utils/wallet.d.ts +4 -25
  462. package/dist/utils/wallet.js +27 -22
  463. package/package.json +96 -2
  464. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -26
  465. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -113
  466. package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -70
  467. package/dist/contracts/tm-bundle-merkle/config.js +0 -114
  468. package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
  469. package/dist/contracts/tm-bundle-merkle/index.js +0 -29
  470. package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -48
  471. package/dist/contracts/tm-bundle-merkle/internal.js +0 -240
  472. package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -146
  473. package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -20
  474. package/dist/contracts/tm-bundle-merkle/utils.js +0 -1503
  475. package/dist/dex/direct-router.d.ts +0 -150
  476. package/dist/shared/abis/TaxToken.json +0 -105
  477. package/dist/shared/abis/TokenManager2.json +0 -60
  478. package/dist/shared/flap/graduated-dex.d.ts +0 -1
  479. package/dist/shared/flap/graduated-dex.js +0 -1
  480. package/dist/shared/flap/launch-v6.d.ts +0 -132
  481. package/dist/shared/flap/launch-v6.js +0 -137
  482. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +0 -79
  483. package/dist/shared/flap/portal-bundle-merkle/config.js +0 -133
  484. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +0 -14
  485. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  486. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +0 -201
  487. package/dist/shared/flap/portal-bundle-merkle/swap.js +0 -1359
  488. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +0 -89
  489. package/dist/shared/flap/portal-create-token.d.ts +0 -63
  490. package/dist/shared/flap/portal-create-token.js +0 -258
  491. package/dist/shared/four/index.d.ts +0 -7
  492. package/dist/shared/four/index.js +0 -22
  493. package/dist/shared/index.d.ts +0 -10
  494. package/dist/shared/index.js +0 -10
  495. package/dist/utils/holders-maker.d.ts +0 -154
  496. package/dist/utils/holders-maker.js +0 -945
  497. package/dist/utils/pcs-infinity-cl.d.ts +0 -65
  498. package/dist/utils/pcs-infinity-cl.js +0 -426
  499. package/dist/utils/private-sale.d.ts +0 -90
  500. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  501. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
  502. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.d.ts +0 -0
  503. /package/dist/{shared/flap/portal-bundle-merkle/types.js → bundle/four-meme/types/buy-first.js} +0 -0
  504. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/types.js +0 -0
  505. /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
  506. /package/dist/{shared → core}/constants/profit.d.ts +0 -0
  507. /package/dist/{shared → core}/constants/profit.js +0 -0
  508. /package/dist/{dex → domains/dex}/index.d.ts +0 -0
  509. /package/dist/{dex → domains/dex}/index.js +0 -0
  510. /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
  511. /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
  512. /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
  513. /package/dist/{shared → domains}/flap/ipfs.js +0 -0
  514. /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
  515. /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  516. /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  517. /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
  518. /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
  519. /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
@@ -1,65 +0,0 @@
1
- import type { FlapPortal } from '../shared/flap/portal.js';
2
- import type { TokenStateV7 } from '../shared/flap/portal.js';
3
- /** PancakeSwap Infinity CL PoolManager(BSC / Base 同址) */
4
- export declare const PCS_INFINITY_CL_POOL_MANAGER_BSC = "0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b";
5
- /** PancakeSwap Infinity Vault(全池代币记账;BSC / Base 同址) */
6
- export declare const PCS_INFINITY_VAULT_BSC = "0x238a358808379702088667322f80aC48bAd5e6c4";
7
- /** Flap Portal 毕业到 Infinity CL 时使用的 hooks(BSC) */
8
- export declare const FLAP_INFINITY_HOOKS_BSC = "0xF1A9aA042454b8553bE3896597ff11a0f011c1c1";
9
- export type InfinityPoolKey = {
10
- currency0: string;
11
- currency1: string;
12
- hooks: string;
13
- poolManager: string;
14
- fee: number;
15
- parameters: string;
16
- };
17
- export type GraduatedDexMetrics = {
18
- price: string;
19
- progress: string;
20
- poolBNBAmount: string;
21
- poolTokenAmount: string;
22
- poolId?: string;
23
- infinityFee?: number;
24
- dexKind?: 'PCS_INFINITY_CL' | 'PANCAKE_V3' | 'PORTAL_QUOTE';
25
- };
26
- export declare function sortInfinityCurrencies(a: string, b: string): [string, string];
27
- export declare function computeInfinityPoolId(key: InfinityPoolKey): string;
28
- export declare function buildFlapInfinityPoolKey(params: {
29
- tokenAddress: string;
30
- quoteTokenAddress: string;
31
- chain: string;
32
- lpFeeProfile?: number;
33
- }): InfinityPoolKey | null;
34
- /** 判断 getTokenV7.pool 是否为 Infinity CL PoolManager(而非 V3 pair) */
35
- export declare function isInfinityCLPoolManagerAddress(pool: string, chain: string): boolean;
36
- /** 仅 V7 + Infinity CL 才走 Infinity 专用逻辑 */
37
- export declare function isFlapInfinityCLGraduated(state: {
38
- pool?: string;
39
- tokenVersion?: bigint | number;
40
- }, chain: string): boolean;
41
- /** Portal quoteExactInput:链上 quoteToken 为 0 时必须用 native(0),不能用 WBNB */
42
- export declare function resolvePortalQuoteInputToken(quoteTokenAddress: string, wrappedNativeAddress: string): string;
43
- export declare function infinitySpotPriceQuotePerToken(params: {
44
- sqrtPriceX96: bigint;
45
- tokenAddress: string;
46
- currency0: string;
47
- currency1: string;
48
- quoteTokenAddress: string;
49
- tokenDecimals?: number;
50
- quoteDecimals?: number;
51
- }): string | null;
52
- /**
53
- * Flap 毕业后(status=4)外盘统一入口:
54
- * - V7 / Infinity CL → Infinity + Portal quote 深度
55
- * - 旧版 V3/V2(pool 为 pair 地址)→ 读 pair 余额 + slot0
56
- * - 否则仅 Portal quote
57
- */
58
- export declare function getFlapGraduatedDexMetrics(params: {
59
- portal: FlapPortal;
60
- tokenAddress: string;
61
- state: TokenStateV7;
62
- rpcUrl: string;
63
- wrappedNativeAddress?: string;
64
- chain?: string;
65
- }): Promise<GraduatedDexMetrics>;
@@ -1,426 +0,0 @@
1
- import { AbiCoder, Contract, JsonRpcProvider, formatEther, formatUnits, keccak256 } from 'ethers';
2
- import { ZERO_ADDRESS } from '../shared/flap/constants.js';
3
- import { ERC20_ABI } from '../shared/abis/common.js';
4
- /** PancakeSwap Infinity CL PoolManager(BSC / Base 同址) */
5
- export const PCS_INFINITY_CL_POOL_MANAGER_BSC = '0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b';
6
- /** PancakeSwap Infinity Vault(全池代币记账;BSC / Base 同址) */
7
- export const PCS_INFINITY_VAULT_BSC = '0x238a358808379702088667322f80aC48bAd5e6c4';
8
- /** Flap Portal 毕业到 Infinity CL 时使用的 hooks(BSC) */
9
- export const FLAP_INFINITY_HOOKS_BSC = '0xF1A9aA042454b8553bE3896597ff11a0f011c1c1';
10
- const CL_POOL_MANAGER_ABI = [
11
- 'function getSlot0(bytes32 id) view returns (uint160 sqrtPriceX96, int24 tick, uint24 protocolFee, uint24 lpFee)',
12
- 'function getLiquidity(bytes32 id) view returns (uint128 liquidity)',
13
- ];
14
- const V3_PAIR_ABI = [
15
- 'function slot0() view returns (uint160 sqrtPriceX96,int24 tick,uint16 observationIndex,uint16 observationCardinality,uint16 observationCardinalityNext,uint8 feeProtocol,bool unlocked)',
16
- 'function token0() view returns (address)',
17
- 'function token1() view returns (address)',
18
- 'function getReserves() view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)',
19
- ];
20
- /** BSC:lpFeeProfile → Infinity PoolKey 的 fee / parameters(与链上 Initialize 一致) */
21
- const BSC_INFINITY_POOL_KEY_BY_PROFILE = {
22
- 0: {
23
- fee: 8534,
24
- parameters: '0x0000000000000000000000000000000000000000000000000000000000fa00d5',
25
- },
26
- };
27
- export function sortInfinityCurrencies(a, b) {
28
- return a.toLowerCase() < b.toLowerCase() ? [a, b] : [b, a];
29
- }
30
- export function computeInfinityPoolId(key) {
31
- const coder = AbiCoder.defaultAbiCoder();
32
- return keccak256(coder.encode(['address', 'address', 'address', 'address', 'uint24', 'bytes32'], [key.currency0, key.currency1, key.hooks, key.poolManager, key.fee, key.parameters]));
33
- }
34
- export function buildFlapInfinityPoolKey(params) {
35
- const chain = String(params.chain || '').toUpperCase();
36
- if (chain !== 'BSC')
37
- return null;
38
- const meta = BSC_INFINITY_POOL_KEY_BY_PROFILE[Number(params.lpFeeProfile ?? 0)] ??
39
- BSC_INFINITY_POOL_KEY_BY_PROFILE[0];
40
- const quote = params.quoteTokenAddress &&
41
- params.quoteTokenAddress.toLowerCase() !== ZERO_ADDRESS
42
- ? params.quoteTokenAddress
43
- : '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c';
44
- const [currency0, currency1] = sortInfinityCurrencies(params.tokenAddress, quote);
45
- return {
46
- currency0,
47
- currency1,
48
- hooks: FLAP_INFINITY_HOOKS_BSC,
49
- poolManager: PCS_INFINITY_CL_POOL_MANAGER_BSC,
50
- fee: meta.fee,
51
- parameters: meta.parameters,
52
- };
53
- }
54
- /** 判断 getTokenV7.pool 是否为 Infinity CL PoolManager(而非 V3 pair) */
55
- export function isInfinityCLPoolManagerAddress(pool, chain) {
56
- if (!pool)
57
- return false;
58
- const c = String(chain || '').toUpperCase();
59
- if (c === 'BSC' || c === 'BASE') {
60
- return pool.toLowerCase() === PCS_INFINITY_CL_POOL_MANAGER_BSC.toLowerCase();
61
- }
62
- return false;
63
- }
64
- /** 仅 V7 + Infinity CL 才走 Infinity 专用逻辑 */
65
- export function isFlapInfinityCLGraduated(state, chain) {
66
- if (isInfinityCLPoolManagerAddress(state.pool ?? '', chain))
67
- return true;
68
- return Number(state.tokenVersion ?? 0) === 7;
69
- }
70
- /** Portal quoteExactInput:链上 quoteToken 为 0 时必须用 native(0),不能用 WBNB */
71
- export function resolvePortalQuoteInputToken(quoteTokenAddress, wrappedNativeAddress) {
72
- if (!quoteTokenAddress || quoteTokenAddress.toLowerCase() === ZERO_ADDRESS) {
73
- return ZERO_ADDRESS;
74
- }
75
- if (quoteTokenAddress.toLowerCase() === wrappedNativeAddress.toLowerCase()) {
76
- return ZERO_ADDRESS;
77
- }
78
- return quoteTokenAddress;
79
- }
80
- function formatRatio(n, d, precision = 18) {
81
- if (d === 0n)
82
- return '0';
83
- const scale = 10n ** BigInt(precision);
84
- const x = (n * scale) / d;
85
- const s = x.toString().padStart(precision + 1, '0');
86
- const int = s.slice(0, -precision);
87
- const frac = s.slice(-precision).replace(/0+$/, '');
88
- return frac ? `${int}.${frac}` : int;
89
- }
90
- export function infinitySpotPriceQuotePerToken(params) {
91
- const tokenLower = params.tokenAddress.toLowerCase();
92
- const quoteLower = params.quoteTokenAddress.toLowerCase();
93
- const tokenIs0 = params.currency0.toLowerCase() === tokenLower;
94
- const tokenIs1 = params.currency1.toLowerCase() === tokenLower;
95
- const quoteIs0 = params.currency0.toLowerCase() === quoteLower;
96
- const quoteIs1 = params.currency1.toLowerCase() === quoteLower;
97
- if ((!tokenIs0 && !tokenIs1) || (!quoteIs0 && !quoteIs1))
98
- return null;
99
- const dec0 = params.tokenDecimals ?? 18;
100
- const dec1 = params.quoteDecimals ?? 18;
101
- const tokenDec = tokenIs0 ? dec0 : dec1;
102
- const quoteDec = quoteIs0 ? dec0 : dec1;
103
- const Q192 = 2n ** 192n;
104
- const num = params.sqrtPriceX96 * params.sqrtPriceX96;
105
- let n;
106
- let d;
107
- if (tokenIs0) {
108
- n = num * 10n ** BigInt(tokenDec);
109
- d = Q192 * 10n ** BigInt(quoteDec);
110
- }
111
- else {
112
- n = Q192 * 10n ** BigInt(quoteDec);
113
- d = num * 10n ** BigInt(tokenDec);
114
- }
115
- return formatRatio(n, d, 18);
116
- }
117
- function v3SpotPriceQuotePerToken(params) {
118
- return infinitySpotPriceQuotePerToken({
119
- sqrtPriceX96: params.sqrtPriceX96,
120
- tokenAddress: params.tokenAddress,
121
- currency0: params.token0,
122
- currency1: params.token1,
123
- quoteTokenAddress: params.quoteTokenAddress,
124
- });
125
- }
126
- const providerByRpc = new Map();
127
- const gradMetricsCache = new Map();
128
- const GRAD_METRICS_TTL_MS = 2500;
129
- function getCachedRpcProvider(rpcUrl) {
130
- let p = providerByRpc.get(rpcUrl);
131
- if (!p) {
132
- p = new JsonRpcProvider(rpcUrl);
133
- providerByRpc.set(rpcUrl, p);
134
- }
135
- return p;
136
- }
137
- async function getTokenDecimalsSafe(provider, address) {
138
- try {
139
- const token = new Contract(address, ERC20_ABI, provider);
140
- return Number(await token.decimals());
141
- }
142
- catch {
143
- return 18;
144
- }
145
- }
146
- /**
147
- * Infinity CL 池子 WBNB:取多档卖出 quote 的最大值(贴近 GMGN「池内 WBNB」)
148
- * 说明:不是 Vault 总 WBNB(全协议),也不是 L*sqrtP 虚拟储备(会高估到 ~5.8)。
149
- */
150
- async function estimateInfinityPoolQuoteBnbDepth(portal, tokenAddress) {
151
- const probes = [107000000n, 105000000n, 100000000n, 90000000n].map((m) => m * 10n ** 18n);
152
- let best = 0n;
153
- for (const amt of probes) {
154
- try {
155
- const bnbOut = await portal.quoteExactInput({
156
- inputToken: tokenAddress,
157
- outputToken: ZERO_ADDRESS,
158
- inputAmount: amt,
159
- });
160
- if (bnbOut > best)
161
- best = bnbOut;
162
- }
163
- catch {
164
- /* 超过可成交上限会 revert,继续试更小档位 */
165
- }
166
- }
167
- return best > 0n ? formatEther(best) : '0';
168
- }
169
- /**
170
- * Infinity CL 池内代币量:读 Vault 中该 token 余额(与 GMGN 池子代币列一致)
171
- * 注意:Vault 为全协议记账层,对 Flap 毕业主池通常即该交易对持仓。
172
- */
173
- async function getInfinityCLPoolTokenReserve(params) {
174
- const chain = String(params.chain || '').toUpperCase();
175
- const vault = chain === 'BSC' || chain === 'BASE' ? PCS_INFINITY_VAULT_BSC : '';
176
- if (!vault)
177
- return '0';
178
- try {
179
- const provider = params.provider ?? getCachedRpcProvider(params.rpcUrl);
180
- const bal = (await new Contract(params.tokenAddress, ERC20_ABI, provider).balanceOf(vault));
181
- return formatEther(bal);
182
- }
183
- catch {
184
- return '0';
185
- }
186
- }
187
- /** 单笔 buy quote 估价(比买卖双 quote 少一次 RPC) */
188
- async function quotePortalPrice(portal, tokenAddress, quoteTokenAddress, wrappedNativeAddress) {
189
- try {
190
- const buyAmt = 10n ** 16n;
191
- const inputQuote = resolvePortalQuoteInputToken(quoteTokenAddress, wrappedNativeAddress);
192
- const tokensOut = await portal.quoteExactInput({
193
- inputToken: inputQuote,
194
- outputToken: tokenAddress,
195
- inputAmount: buyAmt,
196
- });
197
- if (tokensOut <= 0n)
198
- return null;
199
- return String(Number(formatEther(buyAmt)) / Number(formatEther(tokensOut)));
200
- }
201
- catch {
202
- return null;
203
- }
204
- }
205
- function formatProgress(state) {
206
- const progressRaw = state.progress ?? 0n;
207
- if (progressRaw > 10n ** 18n)
208
- return formatUnits(progressRaw, 18);
209
- if (progressRaw >= 100n)
210
- return '100';
211
- return String(progressRaw);
212
- }
213
- async function getGraduatedV3PairMetrics(params) {
214
- try {
215
- const provider = getCachedRpcProvider(params.rpcUrl);
216
- const pool = new Contract(params.poolAddress, V3_PAIR_ABI, provider);
217
- const tokenLower = params.tokenAddress.toLowerCase();
218
- const quoteAddr = params.quoteTokenAddress.toLowerCase() === ZERO_ADDRESS
219
- ? params.wrappedNativeAddress
220
- : params.quoteTokenAddress;
221
- const [t0, t1] = await Promise.all([
222
- pool.token0(),
223
- pool.token1(),
224
- ]);
225
- let bal0;
226
- let bal1;
227
- try {
228
- [bal0, bal1] = await Promise.all([
229
- new Contract(t0, ERC20_ABI, provider).balanceOf(params.poolAddress),
230
- new Contract(t1, ERC20_ABI, provider).balanceOf(params.poolAddress),
231
- ]);
232
- }
233
- catch {
234
- try {
235
- const reserves = await pool.getReserves();
236
- bal0 = BigInt(reserves.reserve0 ?? reserves[0]);
237
- bal1 = BigInt(reserves.reserve1 ?? reserves[1]);
238
- }
239
- catch {
240
- return null;
241
- }
242
- }
243
- let sqrtPriceX96 = null;
244
- try {
245
- const slot0 = await pool.slot0();
246
- sqrtPriceX96 = BigInt(Array.isArray(slot0) ? slot0[0] : slot0.sqrtPriceX96);
247
- }
248
- catch {
249
- sqrtPriceX96 = null;
250
- }
251
- const [dec0, dec1] = await Promise.all([
252
- getTokenDecimalsSafe(provider, t0),
253
- getTokenDecimalsSafe(provider, t1),
254
- ]);
255
- const spot = sqrtPriceX96 && sqrtPriceX96 > 0n
256
- ? v3SpotPriceQuotePerToken({
257
- sqrtPriceX96,
258
- tokenAddress: params.tokenAddress,
259
- token0: t0,
260
- token1: t1,
261
- quoteTokenAddress: quoteAddr,
262
- })
263
- : null;
264
- const tokenIs0 = t0.toLowerCase() === tokenLower;
265
- const poolTokenAmount = formatUnits(tokenIs0 ? bal0 : bal1, tokenIs0 ? dec0 : dec1);
266
- const poolQuoteAmount = formatUnits(tokenIs0 ? bal1 : bal0, tokenIs0 ? dec1 : dec0);
267
- let price = spot;
268
- if (!price && parseFloat(poolTokenAmount) > 0) {
269
- price = String(parseFloat(poolQuoteAmount) / parseFloat(poolTokenAmount));
270
- }
271
- if (!price) {
272
- price = await quotePortalPrice(params.portal, params.tokenAddress, params.quoteTokenAddress, params.wrappedNativeAddress);
273
- }
274
- if (!price && poolTokenAmount === '0' && poolQuoteAmount === '0')
275
- return null;
276
- return {
277
- price: price ?? '0',
278
- progress: '100',
279
- poolBNBAmount: poolQuoteAmount,
280
- poolTokenAmount,
281
- dexKind: 'PANCAKE_V3',
282
- };
283
- }
284
- catch {
285
- return null;
286
- }
287
- }
288
- async function getInfinityCLGraduatedMetrics(params) {
289
- const progress = formatProgress(params.state);
290
- const provider = getCachedRpcProvider(params.rpcUrl);
291
- let poolBNBAmount = '0';
292
- let poolTokenAmount = '0';
293
- let poolId;
294
- let infinityFee;
295
- let price = null;
296
- const poolKey = buildFlapInfinityPoolKey({
297
- tokenAddress: params.tokenAddress,
298
- quoteTokenAddress: params.quoteTokenAddress,
299
- chain: params.chain,
300
- lpFeeProfile: params.state.lpFeeProfile,
301
- });
302
- const quoteAddr = params.quoteTokenAddress.toLowerCase() === ZERO_ADDRESS
303
- ? params.wrappedNativeAddress
304
- : params.quoteTokenAddress;
305
- const slot0Promise = (async () => {
306
- if (!poolKey)
307
- return null;
308
- poolId = computeInfinityPoolId(poolKey);
309
- infinityFee = poolKey.fee;
310
- try {
311
- const manager = new Contract(poolKey.poolManager, CL_POOL_MANAGER_ABI, provider);
312
- const slot0 = await manager.getSlot0(poolId);
313
- return BigInt(slot0[0]);
314
- }
315
- catch {
316
- return null;
317
- }
318
- })();
319
- const [sqrtPriceX96, tokenReserve, bnbDepth] = await Promise.all([
320
- slot0Promise,
321
- getInfinityCLPoolTokenReserve({
322
- tokenAddress: params.tokenAddress,
323
- rpcUrl: params.rpcUrl,
324
- chain: params.chain,
325
- provider,
326
- }),
327
- estimateInfinityPoolQuoteBnbDepth(params.portal, params.tokenAddress),
328
- ]);
329
- if (sqrtPriceX96 && sqrtPriceX96 > 0n && poolKey) {
330
- const spot = infinitySpotPriceQuotePerToken({
331
- sqrtPriceX96,
332
- tokenAddress: params.tokenAddress,
333
- currency0: poolKey.currency0,
334
- currency1: poolKey.currency1,
335
- quoteTokenAddress: quoteAddr,
336
- });
337
- if (spot)
338
- price = spot;
339
- }
340
- if (parseFloat(tokenReserve) > 0)
341
- poolTokenAmount = tokenReserve;
342
- if (parseFloat(bnbDepth) > 0)
343
- poolBNBAmount = bnbDepth;
344
- if (!price) {
345
- price = await quotePortalPrice(params.portal, params.tokenAddress, params.quoteTokenAddress, params.wrappedNativeAddress);
346
- }
347
- return {
348
- price: price ?? '0',
349
- progress,
350
- poolBNBAmount,
351
- poolTokenAmount,
352
- poolId,
353
- infinityFee,
354
- dexKind: 'PCS_INFINITY_CL',
355
- };
356
- }
357
- /**
358
- * Flap 毕业后(status=4)外盘统一入口:
359
- * - V7 / Infinity CL → Infinity + Portal quote 深度
360
- * - 旧版 V3/V2(pool 为 pair 地址)→ 读 pair 余额 + slot0
361
- * - 否则仅 Portal quote
362
- */
363
- export async function getFlapGraduatedDexMetrics(params) {
364
- const chain = String(params.chain || 'BSC').toUpperCase();
365
- const tokenKey = `${chain}:${params.tokenAddress.toLowerCase()}`;
366
- const cached = gradMetricsCache.get(tokenKey);
367
- if (cached && Date.now() - cached.at < GRAD_METRICS_TTL_MS) {
368
- return cached.data;
369
- }
370
- const wrappedNative = params.wrappedNativeAddress ?? '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c';
371
- const quoteToken = params.state.quoteTokenAddress &&
372
- params.state.quoteTokenAddress.toLowerCase() !== ZERO_ADDRESS
373
- ? params.state.quoteTokenAddress
374
- : wrappedNative;
375
- const progress = formatProgress(params.state);
376
- let data;
377
- if (isFlapInfinityCLGraduated(params.state, chain)) {
378
- data = await getInfinityCLGraduatedMetrics({
379
- portal: params.portal,
380
- tokenAddress: params.tokenAddress,
381
- state: params.state,
382
- rpcUrl: params.rpcUrl,
383
- quoteTokenAddress: quoteToken,
384
- wrappedNativeAddress: wrappedNative,
385
- chain,
386
- });
387
- }
388
- else {
389
- const pool = params.state.pool;
390
- if (pool && pool.toLowerCase() !== ZERO_ADDRESS && !isInfinityCLPoolManagerAddress(pool, chain)) {
391
- const v3 = await getGraduatedV3PairMetrics({
392
- rpcUrl: params.rpcUrl,
393
- tokenAddress: params.tokenAddress,
394
- poolAddress: pool,
395
- quoteTokenAddress: quoteToken,
396
- wrappedNativeAddress: wrappedNative,
397
- portal: params.portal,
398
- });
399
- if (v3) {
400
- data = v3;
401
- }
402
- else {
403
- const price = await quotePortalPrice(params.portal, params.tokenAddress, quoteToken, wrappedNative);
404
- data = {
405
- price: price ?? '0',
406
- progress,
407
- poolBNBAmount: '0',
408
- poolTokenAmount: '0',
409
- dexKind: 'PORTAL_QUOTE',
410
- };
411
- }
412
- }
413
- else {
414
- const price = await quotePortalPrice(params.portal, params.tokenAddress, quoteToken, wrappedNative);
415
- data = {
416
- price: price ?? '0',
417
- progress,
418
- poolBNBAmount: '0',
419
- poolTokenAmount: '0',
420
- dexKind: 'PORTAL_QUOTE',
421
- };
422
- }
423
- }
424
- gradMetricsCache.set(tokenKey, { at: Date.now(), data });
425
- return data;
426
- }
@@ -1,90 +0,0 @@
1
- /**
2
- * 私募转账签名工具
3
- *
4
- * ✅ 优化:能批量的批量,能并行的并行
5
- * - 贿赂交易:向 BlockRazor Builder EOA 转账 BNB 提高优先级
6
- * - 利润提取:千分之三(30 bps)
7
- */
8
- import type { GeneratedWallet } from './wallet.js';
9
- /** 私募签名配置 */
10
- export interface PrivateSaleSignConfig {
11
- /** RPC URL */
12
- rpcUrl: string;
13
- /** 链 ID */
14
- chainId?: number;
15
- /** Gas Limit(默认 21000) */
16
- gasLimit?: number;
17
- /** Gas Price(Gwei,默认 0.1) */
18
- gasPriceGwei?: number;
19
- /** 贿赂金额(BNB,默认 0.000001) */
20
- bribeAmount?: number;
21
- /** 是否提取利润(默认 true) */
22
- extractProfit?: boolean;
23
- /** 利润比例基点(默认 30 = 千分之三) */
24
- profitBps?: number;
25
- }
26
- /** 单个转账参数 */
27
- export interface PrivateSaleTransferParams {
28
- /** 发送者私钥 */
29
- senderPrivateKey: string;
30
- /** 接收者地址(合约地址) */
31
- recipient: string;
32
- /** 转账金额(单位:原生代币,如 BNB) */
33
- amount: number;
34
- }
35
- /** 批量转账参数 */
36
- export interface BatchPrivateSaleParams {
37
- /** 转账列表 */
38
- transfers: PrivateSaleTransferParams[];
39
- /** 签名配置 */
40
- config: PrivateSaleSignConfig;
41
- }
42
- /** 私募结果 */
43
- export interface PrivateSaleResult {
44
- /** 签名交易数组(包含贿赂 + 转账 + 利润) */
45
- signedTransactions: string[];
46
- /** ✅ 利润多跳钱包 */
47
- profitHopWallets?: GeneratedWallet[];
48
- /** 元数据 */
49
- metadata: {
50
- /** 总交易数 */
51
- totalCount: number;
52
- /** 贿赂交易数 */
53
- bribeCount: number;
54
- /** 转账交易数 */
55
- transferCount: number;
56
- /** 利润交易数 */
57
- profitCount: number;
58
- /** 总转账金额(Wei) */
59
- totalAmountWei: string;
60
- /** 总利润金额(Wei) */
61
- totalProfitWei: string;
62
- /** 贿赂金额(Wei) */
63
- bribeAmountWei: string;
64
- };
65
- }
66
- /**
67
- * 生成私募转账签名交易(带贿赂和利润提取)
68
- *
69
- * ✅ 优化:
70
- * 1. 批量获取 nonce(单次 RPC 请求)
71
- * 2. 并行签名所有交易(贿赂 + 转账 + 利润)
72
- * 3. 批量创建钱包实例
73
- *
74
- * 交易顺序:
75
- * 1. 贿赂交易(第一个发送者 → BlockRazor)
76
- * 2. 转账交易(各发送者 → 合约)
77
- * 3. 利润交易(第一个发送者 → 利润地址)
78
- *
79
- * @param params 批量转账参数
80
- * @returns 签名交易结果
81
- */
82
- export declare function batchPrivateSaleMerkle(params: BatchPrivateSaleParams): Promise<PrivateSaleResult>;
83
- /**
84
- * 生成单笔私募转账签名交易(带贿赂和利润提取)
85
- *
86
- * @param transfer 转账参数
87
- * @param config 签名配置
88
- * @returns 签名交易结果
89
- */
90
- export declare function privateSaleMerkle(transfer: PrivateSaleTransferParams, config: PrivateSaleSignConfig): Promise<PrivateSaleResult>;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes