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,14 +1,15 @@
1
+ import { createReadStream } from 'node:fs';
2
+ import axios from 'axios';
3
+ import NodeFormData from 'form-data';
4
+ import { PinataSDK } from 'pinata';
1
5
  export class PinataClient {
6
+ client;
2
7
  constructor(cfg) {
3
- this.ready = (async () => {
4
- const mod = await import('pinata');
5
- this.client = new mod.PinataSDK({ pinataJwt: cfg.jwt, pinataGateway: cfg.gateway });
6
- })();
8
+ this.client = new PinataSDK({ pinataJwt: cfg.jwt, pinataGateway: cfg.gateway });
7
9
  }
8
10
  async uploadFile(file) {
9
- await this.ready;
10
11
  const r = await this.client.upload.file(file);
11
- return { cid: r.cid, id: r.id };
12
+ return { cid: r.cid, id: r.id ?? '' };
12
13
  }
13
14
  async uploadJSON(obj, name = 'meta.json') {
14
15
  const blob = new Blob([JSON.stringify(obj)], { type: 'application/json' });
@@ -16,12 +17,9 @@ export class PinataClient {
16
17
  return await this.uploadFile(file);
17
18
  }
18
19
  async get(cid) {
19
- await this.ready;
20
- const data = await this.client.gateways.public.get(cid);
21
- return data;
20
+ return await this.client.gateways.public.get(cid);
22
21
  }
23
22
  async url(cid) {
24
- await this.ready;
25
23
  return await this.client.gateways.convert(cid);
26
24
  }
27
25
  }
@@ -33,12 +31,9 @@ export class PinataClient {
33
31
  * @param fileName 可选:内存数据的文件名
34
32
  */
35
33
  export async function pinFileToIPFSWithJWT(jwt, filePath, data, fileName) {
36
- const axiosMod = await import('axios');
37
- const FormDataMod = await import('form-data');
38
- const fsMod = await import('fs');
39
- const form = new FormDataMod.default ? new FormDataMod.default() : new FormDataMod();
34
+ const form = new NodeFormData();
40
35
  if (filePath && filePath.length > 0) {
41
- form.append('file', fsMod.createReadStream(filePath));
36
+ form.append('file', createReadStream(filePath));
42
37
  }
43
38
  else if (data) {
44
39
  form.append('file', data, { filename: fileName || 'upload.bin' });
@@ -46,17 +41,17 @@ export async function pinFileToIPFSWithJWT(jwt, filePath, data, fileName) {
46
41
  else {
47
42
  throw new Error('pinFileToIPFSWithJWT: either filePath or data must be provided');
48
43
  }
49
- const resp = await axiosMod.default.post('https://api.pinata.cloud/pinning/pinFileToIPFS', form, {
50
- headers: { Authorization: `Bearer ${jwt}`, ...(form.getHeaders ? form.getHeaders() : {}) },
44
+ const resp = await axios.post('https://api.pinata.cloud/pinning/pinFileToIPFS', form, {
45
+ headers: { Authorization: `Bearer ${jwt}`, ...form.getHeaders() },
51
46
  maxContentLength: Infinity,
52
- maxBodyLength: Infinity
47
+ maxBodyLength: Infinity,
53
48
  });
54
- const d = resp.data || {};
49
+ const d = resp.data ?? {};
55
50
  return {
56
- cid: d.IpfsHash || d.cid,
51
+ cid: d.IpfsHash || d.cid || '',
57
52
  size: d.PinSize,
58
53
  timestamp: d.Timestamp,
59
- raw: d
54
+ raw: d,
60
55
  };
61
56
  }
62
57
  /**
@@ -70,23 +65,23 @@ export async function pinImageByPath(jwt, filePath) {
70
65
  // 说明:使用浏览器自带 FormData + fetch;参数为 File/Blob 或 dataURL
71
66
  export async function pinFileToIPFSWithJWTWeb(jwt, file, fileName) {
72
67
  const form = new FormData();
73
- const name = fileName || file.name || 'upload.bin';
68
+ const name = fileName || (file instanceof File ? file.name : undefined) || 'upload.bin';
74
69
  form.append('file', file, name);
75
70
  const resp = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', {
76
71
  method: 'POST',
77
72
  headers: { Authorization: `Bearer ${jwt}` },
78
- body: form
73
+ body: form,
79
74
  });
80
75
  if (!resp.ok) {
81
76
  const txt = await resp.text();
82
77
  throw new Error(`Pinata upload failed: ${resp.status} ${txt}`);
83
78
  }
84
- const d = await resp.json();
79
+ const d = (await resp.json());
85
80
  return {
86
- cid: d.IpfsHash || d.cid,
81
+ cid: d.IpfsHash || d.cid || '',
87
82
  size: d.PinSize,
88
83
  timestamp: d.Timestamp,
89
- raw: d
84
+ raw: d,
90
85
  };
91
86
  }
92
87
  export function dataURLToBlob(dataUrl) {
@@ -0,0 +1,10 @@
1
+ import type { FlapBundleMerkleConfig, FlapSignConfig, FlapChainForMerkleBundle } from './types.js';
2
+ export type { FlapBundleMerkleConfig, FlapSignConfig, FlapChainForMerkleBundle };
3
+ export declare const BLOCKRAZOR_BUILDER_EOA: "0x1266C6bE60392A8Ff346E8d5ECCd3E69dD9c5F20";
4
+ export type FlapAnyConfig = FlapBundleMerkleConfig | FlapSignConfig;
5
+ export declare const CHAIN_ID_MAP: Record<FlapChainForMerkleBundle, number>;
6
+ export declare const MERKLE_SUPPORTED_CHAIN_IDS: readonly [56, 1];
7
+ export type MerkleSupportedChainId = (typeof MERKLE_SUPPORTED_CHAIN_IDS)[number];
8
+ export declare const PORTAL_ABI: string[];
9
+ export { BUNDLE_ERRORS as ERRORS, getBundleErrorMessage as getErrorMessage } from '../../../bundle/errors.js';
10
+ export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, } from '../../../bundle/config-helpers.js';
@@ -0,0 +1,13 @@
1
+ import { FLAP_PORTAL_ABI } from '../../../core/shared-abis/common.js';
2
+ import { BLOCKRAZOR_BUILDER_EOA as _BLOCKRAZOR_BUILDER_EOA } from '../../../core/constants/index.js';
3
+ export const BLOCKRAZOR_BUILDER_EOA = _BLOCKRAZOR_BUILDER_EOA;
4
+ export const CHAIN_ID_MAP = {
5
+ BSC: 56,
6
+ MONAD: 143,
7
+ XLAYER: 196,
8
+ BASE: 8453,
9
+ };
10
+ export const MERKLE_SUPPORTED_CHAIN_IDS = [56, 1];
11
+ export const PORTAL_ABI = FLAP_PORTAL_ABI;
12
+ export { BUNDLE_ERRORS as ERRORS, getBundleErrorMessage as getErrorMessage } from '../../../bundle/errors.js';
13
+ export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, } from '../../../bundle/config-helpers.js';
@@ -0,0 +1,32 @@
1
+ import { JsonRpcProvider } from 'ethers';
2
+ import { FlapAnyConfig } from './config.js';
3
+ import { FlapCreateWithBundleBuySignParams } from './types.js';
4
+ export declare const MULTICALL3_ADDRESS: "0xcA11bde05977b3631167028862bE2a173976CA11";
5
+ export declare const BSC_PANCAKE_V2_ROUTER: "0x10ED43C718714eb63d5aA57B78B54704E256024E";
6
+ export declare const BSC_WBNB: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
7
+ export declare const MONAD_PANCAKE_V2_ROUTER = "0xb1bc24c34e88f7d43d5923034e3a14b24daacff9";
8
+ export declare const MONAD_WMON: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a";
9
+ export declare const XLAYER_POTATOSWAP_V2_ROUTER: "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
10
+ export declare const XLAYER_WOKB: "0xe538905cf8410324e03a5a23c1c177a474d59b2b";
11
+ export declare const ROUTER_ABI: string[];
12
+ /**
13
+ * 获取 ERC20 代币 → 原生代币的报价
14
+ * @param provider - Provider 实例
15
+ * @param tokenAddress - ERC20 代币地址
16
+ * @param tokenAmount - 代币数量(wei)
17
+ * @param chainId - 链 ID(56=BSC, 143=Monad)
18
+ * @returns 等值的原生代币数量(wei),失败返回 0n
19
+ */
20
+ export declare function getTokenToNativeQuote(provider: JsonRpcProvider, tokenAddress: string, tokenAmount: bigint, chainId: number): Promise<bigint>;
21
+ export type FlapChain = FlapCreateWithBundleBuySignParams['chain'];
22
+ /**
23
+ * 获取 Gas Limit
24
+ * 优先使用 config.gasLimit,否则使用默认值 * multiplier
25
+ *
26
+ * ✅ ethers v6 最佳实践:直接使用 bigint 类型
27
+ */
28
+ export declare function getGasLimit(config: FlapAnyConfig, defaultGas?: number): bigint;
29
+ /**
30
+ * Flap Protocol: 创建代币 + 捆绑购买(仅签名版本 - 不依赖 Merkle)
31
+ * ✅ 精简版:只负责签名交易,不提交到 Merkle
32
+ */
@@ -0,0 +1,83 @@
1
+ import { Contract } from 'ethers';
2
+ import { ADDRESSES } from '../../../core/constants/index.js';
3
+ import { CHAINS } from '../../../core/constants/index.js';
4
+ import { V2_ROUTER_QUOTE_ABI } from '../../../core/shared-abis/common.js';
5
+ // ✅ 常量
6
+ export const MULTICALL3_ADDRESS = ADDRESSES.BSC.Multicall3;
7
+ // ==================== ERC20 → 原生代币报价 ====================
8
+ // BSC 链常量
9
+ export const BSC_PANCAKE_V2_ROUTER = ADDRESSES.BSC.PancakeV2Router;
10
+ export const BSC_WBNB = ADDRESSES.BSC.WBNB;
11
+ // ✅ Monad 链常量
12
+ export const MONAD_PANCAKE_V2_ROUTER = '0xb1bc24c34e88f7d43d5923034e3a14b24daacff9';
13
+ export const MONAD_WMON = ADDRESSES.MONAD.WMON;
14
+ // ✅ XLAYER 链常量(PotatoSwap V2)
15
+ export const XLAYER_POTATOSWAP_V2_ROUTER = ADDRESSES.XLAYER.PotatoSwapV2Router;
16
+ export const XLAYER_WOKB = ADDRESSES.XLAYER.WOKB;
17
+ export const ROUTER_ABI = V2_ROUTER_QUOTE_ABI;
18
+ /**
19
+ * 获取 ERC20 代币 → 原生代币的报价
20
+ * @param provider - Provider 实例
21
+ * @param tokenAddress - ERC20 代币地址
22
+ * @param tokenAmount - 代币数量(wei)
23
+ * @param chainId - 链 ID(56=BSC, 143=Monad)
24
+ * @returns 等值的原生代币数量(wei),失败返回 0n
25
+ */
26
+ export async function getTokenToNativeQuote(provider, tokenAddress, tokenAmount, chainId) {
27
+ if (tokenAmount <= 0n)
28
+ return 0n;
29
+ try {
30
+ if (chainId === CHAINS.BSC.chainId) {
31
+ // BSC: 使用 PancakeSwap V2 Router
32
+ const router = new Contract(BSC_PANCAKE_V2_ROUTER, ROUTER_ABI, provider);
33
+ const amounts = await router.getAmountsOut(tokenAmount, [tokenAddress, BSC_WBNB]);
34
+ return amounts[1];
35
+ }
36
+ if (chainId === CHAINS.MONAD.chainId) {
37
+ // ✅ Monad: 使用 PancakeSwap V2 Router
38
+ const router = new Contract(MONAD_PANCAKE_V2_ROUTER, ROUTER_ABI, provider);
39
+ const amounts = await router.getAmountsOut(tokenAmount, [tokenAddress, MONAD_WMON]);
40
+ return amounts[1];
41
+ }
42
+ if (chainId === CHAINS.XLAYER.chainId) {
43
+ // ✅ XLAYER: 使用 PotatoSwap V2 Router(USDT0 → WOKB)
44
+ const router = new Contract(XLAYER_POTATOSWAP_V2_ROUTER, ROUTER_ABI, provider);
45
+ const amounts = await router.getAmountsOut(tokenAmount, [tokenAddress, XLAYER_WOKB]);
46
+ return amounts[1];
47
+ }
48
+ if (chainId === CHAINS.BASE.chainId) {
49
+ // ✅ Base: 目前大部分 Flap 交易使用 ETH(原生代币),ERC20 报价暂不支持
50
+ // Base 主力 DEX 是 Uniswap V3,V2 Router 流动性有限,暂返回 0
51
+ // TODO: 后续可接入 Uniswap V3 QuoterV2 进行精确报价
52
+ return 0n;
53
+ }
54
+ // 其他链暂不支持报价,返回 0
55
+ return 0n;
56
+ }
57
+ catch {
58
+ // 报价失败返回 0(可能是流动性不足或路径不存在)
59
+ return 0n;
60
+ }
61
+ }
62
+ /**
63
+ * 获取 Gas Limit
64
+ * 优先使用 config.gasLimit,否则使用默认值 * multiplier
65
+ *
66
+ * ✅ ethers v6 最佳实践:直接使用 bigint 类型
67
+ */
68
+ export function getGasLimit(config, defaultGas = 800000) {
69
+ // 优先使用前端传入的 gasLimit
70
+ if (config.gasLimit !== undefined) {
71
+ // 如果已经是 bigint,直接返回;否则转换
72
+ return typeof config.gasLimit === 'bigint' ? config.gasLimit : BigInt(config.gasLimit);
73
+ }
74
+ // 使用默认值 * multiplier
75
+ const multiplier = config.gasLimitMultiplier ?? 1.0;
76
+ const calculatedGas = Math.ceil(defaultGas * multiplier);
77
+ // JavaScript 原生 BigInt 转换(ethers v6 兼容)
78
+ return BigInt(calculatedGas);
79
+ }
80
+ /**
81
+ * Flap Protocol: 创建代币 + 捆绑购买(仅签名版本 - 不依赖 Merkle)
82
+ * ✅ 精简版:只负责签名交易,不提交到 Merkle
83
+ */
@@ -1,8 +1,4 @@
1
1
  import { FlapCreateWithBundleBuySignParams, FlapCreateWithBundleBuyMerkleResult, FlapBatchBuySignParams, FlapBatchBuyMerkleResult, FlapBatchSellSignParams, FlapBatchSellMerkleResult } from './types.js';
2
- /**
3
- * Flap Protocol: 创建代币 + 捆绑购买(仅签名版本 - 不依赖 Merkle)
4
- * ✅ 精简版:只负责签名交易,不提交到 Merkle
5
- */
6
2
  export declare function createTokenWithBundleBuyMerkle(params: FlapCreateWithBundleBuySignParams): Promise<FlapCreateWithBundleBuyMerkleResult>;
7
3
  /**
8
4
  * Flap Protocol: 批量购买(仅签名版本 - 不依赖 Merkle)