four-flap-meme-sdk 1.9.49 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/README.en.md +41 -6
  2. package/README.md +31 -0
  3. package/README.zh-CN.md +41 -6
  4. package/dist/abis/common.js +74 -68
  5. package/dist/abis/flap/vault.js +9 -7
  6. package/dist/abis/index.d.ts +3 -4
  7. package/dist/abis/index.js +3 -4
  8. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  9. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  10. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  11. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  12. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  13. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  14. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  15. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  16. package/dist/bundle-core/config-helpers.d.ts +36 -0
  17. package/dist/bundle-core/config-helpers.js +57 -0
  18. package/dist/bundle-core/errors.d.ts +50 -0
  19. package/dist/bundle-core/errors.js +34 -0
  20. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  21. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  22. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  23. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  24. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  25. package/dist/bundle-core/four-meme/core.js +515 -0
  26. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  27. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  28. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  29. package/dist/bundle-core/four-meme/private.js +465 -0
  30. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  31. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  32. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  33. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  34. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  35. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  36. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  37. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  38. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  39. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  40. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  41. package/dist/bundle-core/four-meme/swap.js +505 -0
  42. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  43. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  44. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  45. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  46. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  47. package/dist/bundle-core/four-meme/types/index.js +1 -0
  48. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  49. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  50. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  51. package/dist/bundle-core/four-meme/types.js +1 -0
  52. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  53. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  54. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  55. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  56. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  57. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  58. package/dist/bundle-core/index.d.ts +8 -0
  59. package/dist/bundle-core/index.js +8 -0
  60. package/dist/bundle-core/internal.d.ts +21 -0
  61. package/dist/bundle-core/internal.js +182 -0
  62. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  63. package/dist/bundle-core/sign-context-helpers.js +67 -0
  64. package/dist/bundle-core/submit.d.ts +293 -0
  65. package/dist/bundle-core/submit.js +727 -0
  66. package/dist/bundle-core/types/index.d.ts +8 -0
  67. package/dist/bundle-core/types/index.js +1 -0
  68. package/dist/bundle-core/types.d.ts +1 -0
  69. package/dist/bundle-core/types.js +1 -0
  70. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  71. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -116
  72. package/dist/chains/bsc/four/config.d.ts +5 -70
  73. package/dist/chains/bsc/four/config.js +2 -115
  74. package/dist/chains/bsc/four/core.d.ts +1 -4
  75. package/dist/chains/bsc/four/core.js +1 -589
  76. package/dist/chains/bsc/four/disperse.d.ts +12 -0
  77. package/dist/chains/bsc/four/disperse.js +470 -0
  78. package/dist/chains/bsc/four/index.d.ts +6 -6
  79. package/dist/chains/bsc/four/index.js +6 -6
  80. package/dist/chains/bsc/four/internal.d.ts +2 -50
  81. package/dist/chains/bsc/four/internal.js +2 -237
  82. package/dist/chains/bsc/four/pairwise.d.ts +7 -0
  83. package/dist/chains/bsc/four/pairwise.js +308 -0
  84. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  85. package/dist/chains/bsc/four/pancake-proxy.js +1 -688
  86. package/dist/chains/bsc/four/private.d.ts +1 -27
  87. package/dist/chains/bsc/four/private.js +1 -477
  88. package/dist/chains/bsc/four/submit.d.ts +2 -315
  89. package/dist/chains/bsc/four/submit.js +2 -746
  90. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  91. package/dist/chains/bsc/four/swap-buy-first.js +2 -506
  92. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  93. package/dist/chains/bsc/four/swap-internal.js +1 -18
  94. package/dist/chains/bsc/four/swap.d.ts +2 -144
  95. package/dist/chains/bsc/four/swap.js +2 -760
  96. package/dist/chains/bsc/four/sweep.d.ts +13 -0
  97. package/dist/chains/bsc/four/sweep.js +788 -0
  98. package/dist/chains/bsc/four/types.d.ts +1 -476
  99. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  100. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  101. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  102. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  103. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  104. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  105. package/dist/chains/bsc/four/utils.d.ts +5 -18
  106. package/dist/chains/bsc/four/utils.js +5 -1534
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  109. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  110. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -207
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  112. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  113. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  114. package/dist/chains/bsc/pancake/bundle-swap.js +111 -686
  115. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  116. package/dist/chains/bsc/pancake/index.js +1 -3
  117. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  118. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  119. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  120. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  121. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  122. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  123. package/dist/chains/eni/batch-router/transfer.js +54 -23
  124. package/dist/chains/eni/batch-router/utils.js +32 -6
  125. package/dist/chains/eni/bundler/sign.js +4 -4
  126. package/dist/chains/eni/bundler/submit.js +1 -4
  127. package/dist/chains/eni/constants.js +1 -1
  128. package/dist/chains/eni/index.d.ts +1 -1
  129. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  130. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  131. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  132. package/dist/chains/eni/platforms/daoaas/meta.js +8 -4
  133. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -43
  134. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  135. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  136. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  137. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  138. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -47
  139. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  140. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  141. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  142. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  143. package/dist/chains/eni/platforms/iro/index.js +4 -4
  144. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  145. package/dist/chains/eni/platforms/iro/token.js +107 -31
  146. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  147. package/dist/chains/eni/submit.js +5 -13
  148. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  149. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -20
  150. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  151. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  152. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -56
  153. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  154. package/dist/chains/xlayer/eip7702/bundle-sell.js +26 -74
  155. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  156. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -68
  157. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  158. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  159. package/dist/chains/xlayer/eip7702/index.d.ts +27 -46
  160. package/dist/chains/xlayer/eip7702/index.js +27 -81
  161. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  162. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  163. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  164. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +58 -291
  165. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  166. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  167. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  168. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  169. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  170. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  171. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  172. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  173. package/dist/chains/xlayer/eip7702/volume.js +83 -158
  174. package/dist/chains/xlayer/eoa/constants.js +1 -1
  175. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  176. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  177. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  178. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  179. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +64 -276
  180. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  181. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +14 -14
  182. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  183. package/dist/chains/xlayer/eoa/index.js +8 -23
  184. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  185. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  186. package/dist/chains/xlayer/eoa/types-core.d.ts +363 -0
  187. package/dist/chains/xlayer/eoa/types-core.js +53 -0
  188. package/dist/chains/xlayer/eoa/types-create.d.ts +413 -0
  189. package/dist/chains/xlayer/eoa/types-create.js +9 -0
  190. package/dist/chains/xlayer/eoa/types-volume.d.ts +209 -0
  191. package/dist/chains/xlayer/eoa/types-volume.js +13 -0
  192. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  193. package/dist/chains/xlayer/eoa/types.js +1 -3
  194. package/dist/contracts/helper3.d.ts +20 -17
  195. package/dist/contracts/helper3.js +56 -20
  196. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  197. package/dist/contracts/tm-bundle-helpers.js +72 -0
  198. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  199. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -117
  200. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -70
  201. package/dist/contracts/tm-bundle-merkle/config.js +2 -115
  202. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  203. package/dist/contracts/tm-bundle-merkle/core.js +1 -588
  204. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  205. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  206. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -50
  207. package/dist/contracts/tm-bundle-merkle/internal.js +2 -236
  208. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  209. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -687
  210. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  211. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  212. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  213. package/dist/contracts/tm-bundle-merkle/submit.js +3 -919
  214. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  215. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -505
  216. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  217. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  218. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  219. package/dist/contracts/tm-bundle-merkle/swap.js +2 -757
  220. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  221. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  222. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  223. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  224. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  225. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  226. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  227. package/dist/contracts/tm-bundle-merkle/utils.d.ts +5 -6
  228. package/dist/contracts/tm-bundle-merkle/utils.js +5 -6
  229. package/dist/contracts/tm-bundle.d.ts +3 -51
  230. package/dist/contracts/tm-bundle.js +102 -142
  231. package/dist/contracts/tm.d.ts +3 -2
  232. package/dist/contracts/tm.js +36 -32
  233. package/dist/contracts/tm1.js +9 -4
  234. package/dist/contracts/tm2.js +9 -4
  235. package/dist/dex/direct-router-helpers.d.ts +264 -0
  236. package/dist/dex/direct-router-helpers.js +539 -0
  237. package/dist/dex/direct-router.d.ts +3 -125
  238. package/dist/dex/direct-router.js +237 -652
  239. package/dist/dex/types.d.ts +81 -0
  240. package/dist/dex/types.js +1 -0
  241. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  242. package/dist/exports/root-bundle-and-tooling.js +30 -0
  243. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  244. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  245. package/dist/exports/root-foundations.d.ts +35 -0
  246. package/dist/exports/root-foundations.js +70 -0
  247. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  248. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  249. package/dist/flows/create.d.ts +2 -2
  250. package/dist/flows/create.js +6 -6
  251. package/dist/flows/index.d.ts +1 -0
  252. package/dist/flows/index.js +1 -0
  253. package/dist/index.d.ts +20 -91
  254. package/dist/index.js +20 -215
  255. package/dist/shared/abis/common.d.ts +2 -83
  256. package/dist/shared/abis/common.js +2 -252
  257. package/dist/shared/abis/index.d.ts +5 -6
  258. package/dist/shared/abis/index.js +5 -7
  259. package/dist/shared/clients/blockrazor.js +41 -24
  260. package/dist/shared/clients/club48.js +30 -26
  261. package/dist/shared/clients/emitservice.js +2 -0
  262. package/dist/shared/clients/four.js +23 -18
  263. package/dist/shared/clients/index.d.ts +8 -0
  264. package/dist/shared/clients/index.js +8 -0
  265. package/dist/shared/clients/merkle.js +26 -30
  266. package/dist/shared/constants/addresses.d.ts +1 -1
  267. package/dist/shared/constants/addresses.js +11 -2
  268. package/dist/shared/constants/chains.d.ts +1 -1
  269. package/dist/shared/constants/chains.js +1 -1
  270. package/dist/shared/constants/gas.d.ts +1 -1
  271. package/dist/shared/constants/gas.js +2 -6
  272. package/dist/shared/constants/index.d.ts +1 -0
  273. package/dist/shared/constants/index.js +1 -0
  274. package/dist/shared/constants/quote.d.ts +30 -0
  275. package/dist/shared/constants/quote.js +37 -0
  276. package/dist/shared/flap/__tests__/curve.test.js +3 -3
  277. package/dist/shared/flap/abi.js +1 -1
  278. package/dist/shared/flap/constants.d.ts +1 -1
  279. package/dist/shared/flap/constants.js +2 -2
  280. package/dist/shared/flap/curve.js +3 -0
  281. package/dist/shared/flap/errors.d.ts +1 -4
  282. package/dist/shared/flap/errors.js +21 -3
  283. package/dist/shared/flap/index.d.ts +2 -2
  284. package/dist/shared/flap/index.js +2 -2
  285. package/dist/shared/flap/meta.d.ts +16 -18
  286. package/dist/shared/flap/meta.js +14 -26
  287. package/dist/shared/flap/permit.js +6 -5
  288. package/dist/shared/flap/pinata.d.ts +9 -2
  289. package/dist/shared/flap/pinata.js +20 -18
  290. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  291. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  292. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  293. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  294. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  295. package/dist/shared/flap/portal-bundle-merkle/core.js +66 -156
  296. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +81 -86
  297. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  298. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  299. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  300. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  301. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  302. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  303. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  304. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  305. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  306. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  307. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  308. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  309. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  310. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +73 -3
  311. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +100 -0
  312. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +133 -0
  313. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  314. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  315. package/dist/shared/flap/portal-bundle.js +54 -42
  316. package/dist/shared/flap/portal.js +32 -10
  317. package/dist/shared/flap/vanity.js +4 -7
  318. package/dist/shared/flap/vault.d.ts +1 -1
  319. package/dist/shared/flap/vault.js +54 -48
  320. package/dist/shared/flap 2/__tests__/curve.test.d.ts +1 -0
  321. package/dist/shared/flap 2/portal-bundle-merkle/types.js +1 -0
  322. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  323. package/dist/shared/foundation/dex/v3-path.js +35 -0
  324. package/dist/shared/foundation/gas/bundle-gas.d.ts +39 -0
  325. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  326. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  327. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  328. package/dist/shared/foundation/index.d.ts +13 -0
  329. package/dist/shared/foundation/index.js +12 -0
  330. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  331. package/dist/shared/foundation/nonce/nonce-manager.js +180 -0
  332. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  333. package/dist/shared/foundation/normalize-unknown.js +29 -0
  334. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  335. package/dist/shared/foundation/sdk-logger.js +12 -0
  336. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  337. package/dist/shared/foundation/tx/build-request.js +25 -0
  338. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  339. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  340. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  341. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  342. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  343. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  344. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  345. package/dist/shared/foundation/types/erc20.js +1 -0
  346. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  347. package/dist/shared/foundation/types/holders-maker.js +1 -0
  348. package/dist/shared/foundation/types/index.d.ts +7 -0
  349. package/dist/shared/foundation/types/index.js +1 -0
  350. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  351. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  352. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  353. package/dist/shared/foundation/types/multicall.js +1 -0
  354. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  355. package/dist/shared/foundation/types/private-sale.js +1 -0
  356. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  357. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  358. package/dist/shared/four/tax-token.d.ts +1 -1
  359. package/dist/shared/four/tax-token.js +27 -7
  360. package/dist/shared/index.d.ts +4 -0
  361. package/dist/shared/index.js +4 -0
  362. package/dist/types/distribute.d.ts +72 -0
  363. package/dist/types/distribute.js +1 -0
  364. package/dist/types 2/errors.d.ts +27 -0
  365. package/dist/types 2/errors.js +34 -0
  366. package/dist/utils/airdrop-sweep-types.d.ts +1 -0
  367. package/dist/utils/airdrop-sweep-types.js +1 -0
  368. package/dist/utils/airdrop-sweep.d.ts +4 -76
  369. package/dist/utils/airdrop-sweep.js +38 -52
  370. package/dist/utils/bundle-helpers.d.ts +9 -243
  371. package/dist/utils/bundle-helpers.js +10 -584
  372. package/dist/utils/constants.d.ts +5 -61
  373. package/dist/utils/constants.js +5 -80
  374. package/dist/utils/contract-factory.d.ts +2 -4
  375. package/dist/utils/contract-factory.js +25 -18
  376. package/dist/utils/erc20-types.d.ts +1 -0
  377. package/dist/utils/erc20-types.js +1 -0
  378. package/dist/utils/erc20.d.ts +8 -90
  379. package/dist/utils/erc20.js +94 -153
  380. package/dist/utils/errors.d.ts +10 -22
  381. package/dist/utils/errors.js +61 -79
  382. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  383. package/dist/utils/holders-maker/addresses.js +15 -0
  384. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  385. package/dist/utils/holders-maker/buy-tx.js +278 -0
  386. package/dist/utils/holders-maker/constants.d.ts +6 -0
  387. package/dist/utils/holders-maker/constants.js +7 -0
  388. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  389. package/dist/utils/holders-maker/disperse.js +90 -0
  390. package/dist/utils/holders-maker/routing.d.ts +4 -0
  391. package/dist/utils/holders-maker/routing.js +45 -0
  392. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  393. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  394. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  395. package/dist/utils/holders-maker-helpers.js +9 -0
  396. package/dist/utils/holders-maker-types.d.ts +1 -0
  397. package/dist/utils/holders-maker-types.js +1 -0
  398. package/dist/utils/holders-maker.d.ts +2 -138
  399. package/dist/utils/holders-maker.js +23 -651
  400. package/dist/utils/hop-chains.d.ts +35 -0
  401. package/dist/utils/hop-chains.js +215 -0
  402. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  403. package/dist/utils/lp-inspect-helpers.js +109 -0
  404. package/dist/utils/lp-inspect-types.d.ts +1 -0
  405. package/dist/utils/lp-inspect-types.js +1 -0
  406. package/dist/utils/lp-inspect.d.ts +2 -112
  407. package/dist/utils/lp-inspect.js +63 -195
  408. package/dist/utils/mpcExclusive.d.ts +2 -5
  409. package/dist/utils/mpcExclusive.js +4 -3
  410. package/dist/utils/private-sale-types.d.ts +1 -0
  411. package/dist/utils/private-sale-types.js +1 -0
  412. package/dist/utils/private-sale.d.ts +2 -58
  413. package/dist/utils/private-sale.js +2 -7
  414. package/dist/utils/provider-factory.d.ts +4 -0
  415. package/dist/utils/provider-factory.js +10 -0
  416. package/dist/utils/quote-helpers-types.d.ts +1 -0
  417. package/dist/utils/quote-helpers-types.js +1 -0
  418. package/dist/utils/quote-helpers.d.ts +4 -45
  419. package/dist/utils/quote-helpers.js +15 -65
  420. package/dist/utils/stealth-transfer.d.ts +2 -28
  421. package/dist/utils/stealth-transfer.js +30 -14
  422. package/dist/utils/swap-helpers.d.ts +0 -3
  423. package/dist/utils/swap-helpers.js +6 -9
  424. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  425. package/dist/utils/types/airdrop-sweep.js +1 -0
  426. package/dist/utils/types/contract-factory.d.ts +1 -0
  427. package/dist/utils/types/contract-factory.js +1 -0
  428. package/dist/utils/types/erc20.d.ts +1 -0
  429. package/dist/utils/types/erc20.js +1 -0
  430. package/dist/utils/types/errors.d.ts +1 -0
  431. package/dist/utils/types/errors.js +1 -0
  432. package/dist/utils/types/holders-maker.d.ts +1 -0
  433. package/dist/utils/types/holders-maker.js +1 -0
  434. package/dist/utils/types/hop-chains.d.ts +8 -0
  435. package/dist/utils/types/hop-chains.js +1 -0
  436. package/dist/utils/types/index.d.ts +13 -0
  437. package/dist/utils/types/index.js +1 -0
  438. package/dist/utils/types/lp-inspect.d.ts +1 -0
  439. package/dist/utils/types/lp-inspect.js +1 -0
  440. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  441. package/dist/utils/types/mpc-exclusive.js +1 -0
  442. package/dist/utils/types/private-sale.d.ts +1 -0
  443. package/dist/utils/types/private-sale.js +1 -0
  444. package/dist/utils/types/quote-helpers.d.ts +1 -0
  445. package/dist/utils/types/quote-helpers.js +1 -0
  446. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  447. package/dist/utils/types/stealth-transfer.js +1 -0
  448. package/dist/utils/types/wallet.d.ts +25 -0
  449. package/dist/utils/types/wallet.js +1 -0
  450. package/dist/utils/wallet.d.ts +2 -25
  451. package/dist/utils/wallet.js +9 -10
  452. package/package.json +55 -2
  453. package/src/abis/contracts/TaxToken.json +969 -0
  454. package/src/abis/contracts/TokenManager.json +836 -0
  455. package/src/abis/contracts/TokenManager2.json +136 -0
  456. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  457. /package/dist/{shared 2/flap/__tests__/curve.test.d.ts → bundle-core/__tests__/config-helpers.test.d.ts} +0 -0
  458. /package/dist/{shared 2/flap/portal-bundle-merkle/types.js → bundle-core/__tests__/facade-parity.test.d.ts} +0 -0
  459. /package/dist/{shared 2/abis → shared/abis 2}/TaxToken.json +0 -0
  460. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager.json +0 -0
  461. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager2.json +0 -0
  462. /package/dist/{shared 2/abis → shared/abis 2}/TokenManagerHelper3.json +0 -0
  463. /package/dist/{shared 2/abis → shared/abis 2}/common.d.ts +0 -0
  464. /package/dist/{shared 2/abis → shared/abis 2}/common.js +0 -0
  465. /package/dist/{shared 2/abis → shared/abis 2}/index.d.ts +0 -0
  466. /package/dist/{shared 2/abis → shared/abis 2}/index.js +0 -0
  467. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.d.ts +0 -0
  468. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.js +0 -0
  469. /package/dist/{shared 2/clients → shared/clients 2}/club48.d.ts +0 -0
  470. /package/dist/{shared 2/clients → shared/clients 2}/club48.js +0 -0
  471. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.d.ts +0 -0
  472. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.js +0 -0
  473. /package/dist/{shared 2/clients → shared/clients 2}/four.d.ts +0 -0
  474. /package/dist/{shared 2/clients → shared/clients 2}/four.js +0 -0
  475. /package/dist/{shared 2/clients → shared/clients 2}/merkle.d.ts +0 -0
  476. /package/dist/{shared 2/clients → shared/clients 2}/merkle.js +0 -0
  477. /package/dist/{shared 2/flap → shared/flap 2}/__tests__/curve.test.js +0 -0
  478. /package/dist/{shared 2/flap → shared/flap 2}/abi.d.ts +0 -0
  479. /package/dist/{shared 2/flap → shared/flap 2}/abi.js +0 -0
  480. /package/dist/{shared 2/flap → shared/flap 2}/constants.d.ts +0 -0
  481. /package/dist/{shared 2/flap → shared/flap 2}/constants.js +0 -0
  482. /package/dist/{shared 2/flap → shared/flap 2}/curve.d.ts +0 -0
  483. /package/dist/{shared 2/flap → shared/flap 2}/curve.js +0 -0
  484. /package/dist/{shared 2/flap → shared/flap 2}/errors.d.ts +0 -0
  485. /package/dist/{shared 2/flap → shared/flap 2}/errors.js +0 -0
  486. /package/dist/{shared 2/flap → shared/flap 2}/index.d.ts +0 -0
  487. /package/dist/{shared 2/flap → shared/flap 2}/index.js +0 -0
  488. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.d.ts +0 -0
  489. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.js +0 -0
  490. /package/dist/{shared 2/flap → shared/flap 2}/meta.d.ts +0 -0
  491. /package/dist/{shared 2/flap → shared/flap 2}/meta.js +0 -0
  492. /package/dist/{shared 2/flap → shared/flap 2}/permit.d.ts +0 -0
  493. /package/dist/{shared 2/flap → shared/flap 2}/permit.js +0 -0
  494. /package/dist/{shared 2/flap → shared/flap 2}/pinata.d.ts +0 -0
  495. /package/dist/{shared 2/flap → shared/flap 2}/pinata.js +0 -0
  496. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.d.ts +0 -0
  497. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.js +0 -0
  498. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.d.ts +0 -0
  499. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.js +0 -0
  500. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.d.ts +0 -0
  501. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.js +0 -0
  502. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  503. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.js +0 -0
  504. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.d.ts +0 -0
  505. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.js +0 -0
  506. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  507. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.js +0 -0
  508. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.d.ts +0 -0
  509. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.js +0 -0
  510. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.d.ts +0 -0
  511. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.js +0 -0
  512. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.d.ts +0 -0
  513. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.js +0 -0
  514. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/types.d.ts +0 -0
  515. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.d.ts +0 -0
  516. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.js +0 -0
  517. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.d.ts +0 -0
  518. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.js +0 -0
  519. /package/dist/{shared 2/flap → shared/flap 2}/portal.d.ts +0 -0
  520. /package/dist/{shared 2/flap → shared/flap 2}/portal.js +0 -0
  521. /package/dist/{shared 2/flap → shared/flap 2}/vanity.d.ts +0 -0
  522. /package/dist/{shared 2/flap → shared/flap 2}/vanity.js +0 -0
  523. /package/dist/{shared 2/flap → shared/flap 2}/vault.d.ts +0 -0
  524. /package/dist/{shared 2/flap → shared/flap 2}/vault.js +0 -0
  525. /package/dist/{shared 2/four → shared/four 2}/index.d.ts +0 -0
  526. /package/dist/{shared 2/four → shared/four 2}/index.js +0 -0
  527. /package/dist/{shared 2/four → shared/four 2}/tax-token.d.ts +0 -0
  528. /package/dist/{shared 2/four → shared/four 2}/tax-token.js +0 -0
  529. /package/dist/{shared 2/index.d.ts → shared/index 2.js} +0 -0
  530. /package/dist/{shared 2/index.js → shared/index.d 2.ts} +0 -0
@@ -5,7 +5,7 @@
5
5
  * 等同于 BSC EOA 普通模式 / Monad direct 模式
6
6
  */
7
7
  import { Wallet, JsonRpcProvider } from 'ethers';
8
- import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL, NATIVE_TRANSFER_GAS_LIMIT, } from '../../constants.js';
8
+ import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
9
9
  import { encodeBuyCall, encodeSellCall, applySlippage, DaoaasPortalQuery } from './portal.js';
10
10
  import { getProfitRecipient, getProfitRateBps, calculateProfitAmount } from '../../../../shared/constants/profit.js';
11
11
  const NORMAL_PROFIT_BPS = getProfitRateBps('normal');
@@ -45,7 +45,7 @@ export async function directBuy(params) {
45
45
  const provider = new JsonRpcProvider(params.rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });
46
46
  const wallet = new Wallet(params.privateKey, provider);
47
47
  const calldata = encodeBuyCall(params.token, params.amountOutMin ?? 0n);
48
- const nonce = params.nonce ?? await wallet.getNonce('pending');
48
+ const nonce = params.nonce ?? (await wallet.getNonce('pending'));
49
49
  const feeData = await provider.getFeeData();
50
50
  const tx = await wallet.signTransaction({
51
51
  to: DAOAAS_PORTAL,
@@ -70,7 +70,7 @@ export async function directSell(params) {
70
70
  const provider = new JsonRpcProvider(params.rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });
71
71
  const wallet = new Wallet(params.privateKey, provider);
72
72
  const calldata = encodeSellCall(params.token, params.tokenAmount, params.amountOutMin ?? 0n);
73
- const nonce = params.nonce ?? await wallet.getNonce('pending');
73
+ const nonce = params.nonce ?? (await wallet.getNonce('pending'));
74
74
  const feeData = await provider.getFeeData();
75
75
  const tx = await wallet.signTransaction({
76
76
  to: DAOAAS_PORTAL,
@@ -260,7 +260,7 @@ export async function directSellForSubmit(params) {
260
260
  };
261
261
  }
262
262
  export async function directBatchBuyForSubmit(params) {
263
- const { rpcUrl = ENI_RPC_URL, token, privateKeys: rawKeys, amounts: rawAmounts, slippageBps = 100, gasPrice } = params;
263
+ const { rpcUrl = ENI_RPC_URL, token, privateKeys: rawKeys, amounts: rawAmounts, slippageBps = 100, gasPrice, } = params;
264
264
  if (rawKeys.length !== rawAmounts.length) {
265
265
  throw new Error(`privateKeys.length (${rawKeys.length}) !== amounts.length (${rawAmounts.length})`);
266
266
  }
@@ -277,8 +277,8 @@ export async function directBatchBuyForSubmit(params) {
277
277
  const totalFlowRaw = rawAmounts.reduce((sum, amount) => sum + amount, 0n);
278
278
  const profitAmountFull = calculateProfitAmount(totalFlowRaw, NORMAL_PROFIT_BPS) + profitTxGasCost;
279
279
  const maxPayerIdx = pickMaxAmountIndex(rawAmounts);
280
- const wallets = rawKeys.map(pk => new Wallet(pk, provider));
281
- const balances = await Promise.all(wallets.map(w => provider.getBalance(w.address)));
280
+ const wallets = rawKeys.map((pk) => new Wallet(pk, provider));
281
+ const balances = await Promise.all(wallets.map((w) => provider.getBalance(w.address)));
282
282
  let privateKeys = rawKeys;
283
283
  let amounts = rawAmounts;
284
284
  const validIndices = [];
@@ -287,7 +287,6 @@ export async function directBatchBuyForSubmit(params) {
287
287
  if (i === maxPayerIdx)
288
288
  required += profitAmountFull + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
289
289
  if (balances[i] < required) {
290
- console.warn(`[DAOAAS BatchBuy] 钱包 ${wallets[i].address.slice(0, 10)} 余额不足: 余额=${balances[i]}, 需要=${required},跳过`);
291
290
  continue;
292
291
  }
293
292
  validIndices.push(i);
@@ -296,8 +295,8 @@ export async function directBatchBuyForSubmit(params) {
296
295
  throw new Error('所有钱包余额不足(含 swap + gas),无法执行 DAOAAS 买入');
297
296
  }
298
297
  if (validIndices.length < rawKeys.length) {
299
- privateKeys = validIndices.map(i => rawKeys[i]);
300
- amounts = validIndices.map(i => rawAmounts[i]);
298
+ privateKeys = validIndices.map((i) => rawKeys[i]);
299
+ amounts = validIndices.map((i) => rawAmounts[i]);
301
300
  }
302
301
  const transactions = [];
303
302
  const totalFlow = amounts.reduce((sum, amount) => sum + amount, 0n);
@@ -305,9 +304,7 @@ export async function directBatchBuyForSubmit(params) {
305
304
  for (let i = 0; i < privateKeys.length; i++) {
306
305
  const wallet = new Wallet(privateKeys[i], provider);
307
306
  const preview = await query.previewBuy(token, amounts[i]);
308
- const effectiveSlippage = isBatch
309
- ? Math.min(9500, slippageBps + i * 2000)
310
- : slippageBps;
307
+ const effectiveSlippage = isBatch ? Math.min(9500, slippageBps + i * 2000) : slippageBps;
311
308
  const minOut = applySlippage(preview, effectiveSlippage);
312
309
  const calldata = encodeBuyCall(token, minOut);
313
310
  const nonce = await wallet.getNonce('pending');
@@ -336,7 +333,7 @@ export async function directBatchBuyForSubmit(params) {
336
333
  });
337
334
  return {
338
335
  transactions,
339
- signedTransactions: [...transactions.map(tx => tx.signedTx), profitTx.signedTx],
336
+ signedTransactions: [...transactions.map((tx) => tx.signedTx), profitTx.signedTx],
340
337
  totalGasCost: swapGasLimit * maxFeePerGas * BigInt(transactions.length) + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
341
338
  metadata: formatSubmitMetadata(totalFlow, profitAmount),
342
339
  };
@@ -355,19 +352,7 @@ export async function directBatchSellForSubmit(params) {
355
352
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
356
353
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
357
354
  const swapGasLimit = 300000n;
358
- const swapGasCost = swapGasLimit * maxFeePerGas;
359
- const profitGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
360
- const wallets = privateKeys.map(pk => new Wallet(pk, provider));
361
- const balances = await Promise.all(wallets.map(w => provider.getBalance(w.address)));
362
- const maxPayerIdx = pickMaxAmountIndex(tokenAmounts);
363
- for (let i = 0; i < wallets.length; i++) {
364
- let required = swapGasCost;
365
- if (i === maxPayerIdx)
366
- required += profitGasCost;
367
- if (balances[i] < required) {
368
- console.warn(`[DAOAAS BatchSell] 钱包 ${wallets[i].address.slice(0, 10)} 原生余额不足 gas: 余额=${balances[i]}, 需要=${required},可能导致交易失败`);
369
- }
370
- }
355
+ const wallets = privateKeys.map((pk) => new Wallet(pk, provider));
371
356
  const transactions = [];
372
357
  const estimatedOuts = [];
373
358
  const isBatch = privateKeys.length > 1;
@@ -375,9 +360,7 @@ export async function directBatchSellForSubmit(params) {
375
360
  const wallet = wallets[i];
376
361
  const preview = await query.previewSell(token, tokenAmounts[i]);
377
362
  estimatedOuts.push(preview);
378
- const effectiveSlippage = isBatch
379
- ? Math.min(9500, slippageBps + i * 2000)
380
- : slippageBps;
363
+ const effectiveSlippage = isBatch ? Math.min(9500, slippageBps + i * 2000) : slippageBps;
381
364
  const minOut = applySlippage(preview, effectiveSlippage);
382
365
  const calldata = encodeSellCall(token, tokenAmounts[i], minOut);
383
366
  const nonce = await wallet.getNonce('pending');
@@ -407,7 +390,7 @@ export async function directBatchSellForSubmit(params) {
407
390
  });
408
391
  return {
409
392
  transactions,
410
- signedTransactions: [...transactions.map(tx => tx.signedTx), profitTx.signedTx],
393
+ signedTransactions: [...transactions.map((tx) => tx.signedTx), profitTx.signedTx],
411
394
  totalGasCost: 300000n * maxFeePerGas * BigInt(transactions.length) + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
412
395
  metadata: formatSubmitMetadata(totalFlow, profitAmount),
413
396
  };
@@ -438,9 +421,9 @@ export async function directQuickSwapForSubmit(params) {
438
421
  if (params.sellerKeys.length > 1) {
439
422
  for (let i = 1; i < params.sellerKeys.length; i++) {
440
423
  const otherWallet = new Wallet(params.sellerKeys[i], provider);
441
- const otherSellTxs = sellResult.transactions.filter(tx => tx.from.toLowerCase() === otherWallet.address.toLowerCase());
424
+ const otherSellTxs = sellResult.transactions.filter((tx) => tx.from.toLowerCase() === otherWallet.address.toLowerCase());
442
425
  const otherNextNonce = otherSellTxs.length > 0
443
- ? Math.max(...otherSellTxs.map(tx => tx.nonce)) + 1
426
+ ? Math.max(...otherSellTxs.map((tx) => tx.nonce)) + 1
444
427
  : await otherWallet.getNonce('pending');
445
428
  const otherBalance = await provider.getBalance(otherWallet.address);
446
429
  const reserveGas = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
@@ -464,23 +447,23 @@ export async function directQuickSwapForSubmit(params) {
464
447
  const hopCount = params.hopCount ?? 0;
465
448
  const distributeHopWallets = [];
466
449
  if (params.buyerKeys.length > 0) {
467
- const primarySellTxs = sellResult.transactions.filter(tx => tx.from.toLowerCase() === primarySellerAddress);
450
+ const primarySellTxs = sellResult.transactions.filter((tx) => tx.from.toLowerCase() === primarySellerAddress);
468
451
  let primaryNextNonce = primarySellTxs.length > 0
469
- ? Math.max(...primarySellTxs.map(tx => tx.nonce)) + 1
452
+ ? Math.max(...primarySellTxs.map((tx) => tx.nonce)) + 1
470
453
  : await primarySellerWallet.getNonce('pending');
471
454
  const gasForBuy = 300000n * maxFeePerGas;
472
455
  const hopGasFee = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
473
456
  const totalFlow = params.buyAmounts.reduce((sum, a) => sum + a, 0n);
474
457
  const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
475
458
  const profitAmount = calculateProfitAmount(totalFlow, NORMAL_PROFIT_BPS) + profitTxGasCost;
476
- const profitGasPerBuyer = (NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas);
459
+ const profitGasPerBuyer = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
477
460
  for (let i = 0; i < params.buyerKeys.length; i++) {
478
461
  const buyerAddress = new Wallet(params.buyerKeys[i]).address;
479
462
  const transferAmount = params.buyAmounts[i];
480
463
  if (transferAmount <= 0n)
481
464
  continue;
482
465
  const isMaxBuyer = i === pickMaxAmountIndex(params.buyAmounts);
483
- const extraForProfit = isMaxBuyer ? (profitAmount + profitGasPerBuyer) : 0n;
466
+ const extraForProfit = isMaxBuyer ? profitAmount + profitGasPerBuyer : 0n;
484
467
  const baseTransfer = transferAmount + gasForBuy + extraForProfit;
485
468
  if (hopCount <= 0) {
486
469
  const signedTx = await primarySellerWallet.signTransaction({
@@ -503,8 +486,8 @@ export async function directQuickSwapForSubmit(params) {
503
486
  hops.push({ address: w.address, privateKey: w.privateKey });
504
487
  }
505
488
  distributeHopWallets.push(hops);
506
- const fullChain = [primarySellerWallet, ...hops.map(h => new Wallet(h.privateKey))];
507
- const addresses = [...fullChain.map(w => w.address), buyerAddress];
489
+ const fullChain = [primarySellerWallet, ...hops.map((h) => new Wallet(h.privateKey))];
490
+ const addresses = [...fullChain.map((w) => w.address), buyerAddress];
508
491
  for (let j = 0; j < addresses.length - 1; j++) {
509
492
  const fromWallet = fullChain[j];
510
493
  const toAddress = addresses[j + 1];
@@ -544,8 +527,10 @@ export async function directQuickSwapForSubmit(params) {
544
527
  const payerIndex = pickMaxAmountIndex(params.buyAmounts);
545
528
  const payerKey = params.buyerKeys[payerIndex] || primarySellerKey;
546
529
  const payerAddress = new Wallet(payerKey).address.toLowerCase();
547
- const payerTxs = allTxs.filter(tx => tx.from.toLowerCase() === payerAddress);
548
- const payerNonce = payerTxs.length > 0 ? Math.max(...payerTxs.map(tx => tx.nonce)) + 1 : await new Wallet(payerKey, provider).getNonce('pending');
530
+ const payerTxs = allTxs.filter((tx) => tx.from.toLowerCase() === payerAddress);
531
+ const payerNonce = payerTxs.length > 0
532
+ ? Math.max(...payerTxs.map((tx) => tx.nonce)) + 1
533
+ : await new Wallet(payerKey, provider).getNonce('pending');
549
534
  const profitTx = await buildRevenueTail({
550
535
  rpcUrl,
551
536
  payerKey,
@@ -557,7 +542,7 @@ export async function directQuickSwapForSubmit(params) {
557
542
  const distributeGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas * BigInt(distributeTxs.length);
558
543
  return {
559
544
  transactions: allTxs,
560
- signedTransactions: [...allTxs.map(tx => tx.signedTx), profitTx.signedTx],
545
+ signedTransactions: [...allTxs.map((tx) => tx.signedTx), profitTx.signedTx],
561
546
  totalGasCost: sellResult.totalGasCost + distributeGasCost + buyResult.totalGasCost + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
562
547
  metadata: formatSubmitMetadata(totalFlow, profitAmount),
563
548
  ...(distributeHopWallets.length > 0 ? { hopWallets: distributeHopWallets } : {}),
@@ -571,11 +556,11 @@ export async function directQuickSwapForSubmit(params) {
571
556
  * ENI 不需要多跳,直接转到收益地址
572
557
  */
573
558
  export async function buildProfitTransfer(params) {
574
- const { rpcUrl = ENI_RPC_URL, payerKey, profitAmount, gasPrice, nonce: explicitNonce, maxFeePerGas, maxPriorityFeePerGas } = params;
559
+ const { rpcUrl = ENI_RPC_URL, payerKey, profitAmount, gasPrice, nonce: explicitNonce, maxFeePerGas, maxPriorityFeePerGas, } = params;
575
560
  const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
576
561
  const wallet = new Wallet(payerKey, provider);
577
562
  const feeData = await provider.getFeeData();
578
- const nonce = explicitNonce ?? await wallet.getNonce('pending');
563
+ const nonce = explicitNonce ?? (await wallet.getNonce('pending'));
579
564
  const resolvedMaxFeePerGas = maxFeePerGas ?? gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
580
565
  const resolvedMaxPriorityFeePerGas = maxPriorityFeePerGas ?? feeData.maxPriorityFeePerGas ?? 0n;
581
566
  const signedTx = await wallet.signTransaction({
@@ -5,8 +5,8 @@
5
5
  * 接口与 Flap Portal 不兼容,独立实现
6
6
  */
7
7
  import { Contract, Interface, JsonRpcProvider, formatEther, parseEther } from 'ethers';
8
- import { DAOAAS_PORTAL, DAOAAS_PORTAL_ABI, ENI_CHAIN_ID, ENI_MULTICALL3, ENI_RPC_URL, } from '../../constants.js';
9
- import { ERC20_ABI, MULTICALL3_ABI } from '../../../../shared/abis/common.js';
8
+ import { DAOAAS_PORTAL, DAOAAS_PORTAL_ABI, ENI_CHAIN_ID, ENI_MULTICALL3, ENI_RPC_URL } from '../../constants.js';
9
+ import { ERC20_ABI, MULTICALL3_ABI } from '../../../../abis/common.js';
10
10
  const portalIface = new Interface(DAOAAS_PORTAL_ABI);
11
11
  const erc20Iface = new Interface(ERC20_ABI);
12
12
  const multicallIface = new Interface(MULTICALL3_ABI);
@@ -34,6 +34,10 @@ export function encodeTransferCall(to, amount) {
34
34
  return erc20Iface.encodeFunctionData('transfer', [to, amount]);
35
35
  }
36
36
  export class DaoaasPortalQuery {
37
+ provider;
38
+ portal;
39
+ portalAddress;
40
+ multicall3Address;
37
41
  constructor(config = {}) {
38
42
  const rpcUrl = config.rpcUrl ?? ENI_RPC_URL;
39
43
  this.provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
@@ -56,7 +60,7 @@ export class DaoaasPortalQuery {
56
60
  /** 获取代币完整状态(链上 getTokenState 仅返回 uint256 状态码,其余数据分别查询) */
57
61
  async getTokenState(token) {
58
62
  const status = Number(await this.portal.getTokenState(token));
59
- const price = await this.portal.getPrice(token);
63
+ const price = (await this.portal.getPrice(token));
60
64
  const tokenContract = new Contract(token, ERC20_ABI, this.provider);
61
65
  const [totalSupply, portalBalance, name, symbol] = await Promise.all([
62
66
  tokenContract.totalSupply(),
@@ -69,7 +73,7 @@ export class DaoaasPortalQuery {
69
73
  }
70
74
  /** 批量获取钱包 EGAS 余额 */
71
75
  async getMultipleEgasBalances(addresses) {
72
- const calls = addresses.map(addr => ({
76
+ const calls = addresses.map((addr) => ({
73
77
  target: this.multicall3Address,
74
78
  allowFailure: true,
75
79
  callData: multicallIface.encodeFunctionData('getEthBalance', [addr]),
@@ -85,7 +89,7 @@ export class DaoaasPortalQuery {
85
89
  }
86
90
  /** 批量获取 ERC20 余额 */
87
91
  async getMultipleTokenBalances(token, addresses) {
88
- const calls = addresses.map(addr => ({
92
+ const calls = addresses.map((addr) => ({
89
93
  target: token,
90
94
  allowFailure: true,
91
95
  callData: erc20Iface.encodeFunctionData('balanceOf', [addr]),
@@ -101,7 +105,7 @@ export class DaoaasPortalQuery {
101
105
  }
102
106
  /** 批量获取 ERC20 allowance */
103
107
  async getMultipleAllowances(token, owners, spender) {
104
- const calls = owners.map(owner => ({
108
+ const calls = owners.map((owner) => ({
105
109
  target: token,
106
110
  allowFailure: true,
107
111
  callData: erc20Iface.encodeFunctionData('allowance', [owner, spender]),
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { Wallet, JsonRpcProvider, Contract, ethers, Interface } from 'ethers';
11
11
  import { ENI_CHAIN_ID, ENI_RPC_URL, WEGAS, NATIVE_TRANSFER_GAS_LIMIT, DSWAP_V2_ROUTER, DSWAP_V2_FACTORY, DSWAP_V2_ROUTER_ABI, DSWAP_V2_FACTORY_ABI, DSWAP_V2_PAIR_ABI, } from '../../constants.js';
12
- import { ERC20_ABI } from '../../../../shared/abis/common.js';
12
+ import { ERC20_ABI } from '../../../../abis/common.js';
13
13
  import { getProfitRecipient, getProfitRateBps, calculateProfitAmount } from '../../../../shared/constants/profit.js';
14
14
  const DEFAULT_DEADLINE_MINUTES = 20;
15
15
  const DEFAULT_SLIPPAGE_PCT = 5;
@@ -25,7 +25,7 @@ function getDeadline(minutes) {
25
25
  }
26
26
  function applySlippage(amount, slippagePct) {
27
27
  const pct = Math.max(0, Math.min(100, slippagePct));
28
- return amount * BigInt(100 - Math.floor(pct)) / 100n;
28
+ return (amount * BigInt(100 - Math.floor(pct))) / 100n;
29
29
  }
30
30
  async function signProfitTx(params) {
31
31
  return params.wallet.signTransaction({
@@ -64,17 +64,11 @@ export async function getLPPairInfo(params) {
64
64
  ]);
65
65
  let userLPBalance = 0n;
66
66
  if (params.userAddress) {
67
- userLPBalance = await pair.balanceOf(params.userAddress);
67
+ userLPBalance = (await pair.balanceOf(params.userAddress));
68
68
  }
69
- const userShare = totalSupply > 0n
70
- ? Number(userLPBalance * 10000n / totalSupply) / 10000
71
- : 0;
72
- const userToken0Amount = totalSupply > 0n
73
- ? reserves[0] * userLPBalance / totalSupply
74
- : 0n;
75
- const userToken1Amount = totalSupply > 0n
76
- ? reserves[1] * userLPBalance / totalSupply
77
- : 0n;
69
+ const userShare = totalSupply > 0n ? Number((userLPBalance * 10000n) / totalSupply) / 10000 : 0;
70
+ const userToken0Amount = totalSupply > 0n ? (reserves[0] * userLPBalance) / totalSupply : 0n;
71
+ const userToken1Amount = totalSupply > 0n ? (reserves[1] * userLPBalance) / totalSupply : 0n;
78
72
  return {
79
73
  pairAddress: pairAddr,
80
74
  token0,
@@ -89,7 +83,7 @@ export async function getLPPairInfo(params) {
89
83
  };
90
84
  }
91
85
  export async function batchGetLPPairInfo(params) {
92
- return Promise.all(params.tokens.map(token => getLPPairInfo({ rpcUrl: params.rpcUrl, token, userAddress: params.userAddress })));
86
+ return Promise.all(params.tokens.map((token) => getLPPairInfo({ rpcUrl: params.rpcUrl, token, userAddress: params.userAddress })));
93
87
  }
94
88
  // ============================================================================
95
89
  // 创建/添加 流动性 — EGAS + Token
@@ -123,7 +117,12 @@ export async function addLiquidityETHForSubmit(params) {
123
117
  const amountTokenMin = applySlippage(amountTokenDesired, slippage);
124
118
  const amountETHMin = applySlippage(amountETHDesired, slippage);
125
119
  const addLiqData = routerIface.encodeFunctionData('addLiquidityETH', [
126
- token, amountTokenDesired, amountTokenMin, amountETHMin, wallet.address, deadline,
120
+ token,
121
+ amountTokenDesired,
122
+ amountTokenMin,
123
+ amountETHMin,
124
+ wallet.address,
125
+ deadline,
127
126
  ]);
128
127
  const addLiqTx = await wallet.signTransaction({
129
128
  to: DSWAP_V2_ROUTER,
@@ -140,7 +139,13 @@ export async function addLiquidityETHForSubmit(params) {
140
139
  const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
141
140
  const profitAmount = calculateProfitAmount(amountETHDesired, PROFIT_BPS) + profitTxGasCost;
142
141
  if (profitAmount > 0n) {
143
- const profitTx = await signProfitTx({ wallet, nonce: currentNonce, profitAmount, maxFeePerGas, maxPriorityFeePerGas });
142
+ const profitTx = await signProfitTx({
143
+ wallet,
144
+ nonce: currentNonce,
145
+ profitAmount,
146
+ maxFeePerGas,
147
+ maxPriorityFeePerGas,
148
+ });
144
149
  signedTxs.push(profitTx);
145
150
  }
146
151
  return { signedTransactions: signedTxs };
@@ -165,7 +170,7 @@ export async function removeLiquidityETHForSubmit(params) {
165
170
  const pair = new Contract(pairAddr, DSWAP_V2_PAIR_ABI, provider);
166
171
  let liquidity = params.liquidity;
167
172
  if (liquidity === 0n) {
168
- liquidity = await pair.balanceOf(wallet.address);
173
+ liquidity = (await pair.balanceOf(wallet.address));
169
174
  if (liquidity === 0n)
170
175
  throw new Error('No LP tokens to remove');
171
176
  }
@@ -177,8 +182,8 @@ export async function removeLiquidityETHForSubmit(params) {
177
182
  const isToken0 = token.toLowerCase() === token0.toLowerCase();
178
183
  const reserveToken = isToken0 ? reserves[0] : reserves[1];
179
184
  const reserveETH = isToken0 ? reserves[1] : reserves[0];
180
- const amountTokenExpected = reserveToken * liquidity / totalSupply;
181
- const amountETHExpected = reserveETH * liquidity / totalSupply;
185
+ const amountTokenExpected = (reserveToken * liquidity) / totalSupply;
186
+ const amountETHExpected = (reserveETH * liquidity) / totalSupply;
182
187
  const amountTokenMin = applySlippage(amountTokenExpected, slippage);
183
188
  const amountETHMin = applySlippage(amountETHExpected, slippage);
184
189
  let currentNonce = await wallet.getNonce();
@@ -198,7 +203,12 @@ export async function removeLiquidityETHForSubmit(params) {
198
203
  signedTxs.push(approveTx);
199
204
  }
200
205
  const removeLiqData = routerIface.encodeFunctionData('removeLiquidityETHSupportingFeeOnTransferTokens', [
201
- token, liquidity, amountTokenMin, amountETHMin, wallet.address, deadline,
206
+ token,
207
+ liquidity,
208
+ amountTokenMin,
209
+ amountETHMin,
210
+ wallet.address,
211
+ deadline,
202
212
  ]);
203
213
  const removeLiqTx = await wallet.signTransaction({
204
214
  to: DSWAP_V2_ROUTER,
@@ -215,7 +225,13 @@ export async function removeLiquidityETHForSubmit(params) {
215
225
  const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
216
226
  const profitAmount = calculateProfitAmount(amountETHExpected, PROFIT_BPS) + profitTxGasCost;
217
227
  if (profitAmount > 0n) {
218
- const profitTx = await signProfitTx({ wallet, nonce: currentNonce, profitAmount, maxFeePerGas, maxPriorityFeePerGas });
228
+ const profitTx = await signProfitTx({
229
+ wallet,
230
+ nonce: currentNonce,
231
+ profitAmount,
232
+ maxFeePerGas,
233
+ maxPriorityFeePerGas,
234
+ });
219
235
  signedTxs.push(profitTx);
220
236
  }
221
237
  return { signedTransactions: signedTxs };
@@ -234,7 +250,10 @@ export async function addLiquidityForSubmit(params) {
234
250
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
235
251
  let currentNonce = await wallet.getNonce();
236
252
  const signedTxs = [];
237
- for (const [token, amount] of [[tokenA, amountADesired], [tokenB, amountBDesired]]) {
253
+ for (const [token, amount] of [
254
+ [tokenA, amountADesired],
255
+ [tokenB, amountBDesired],
256
+ ]) {
238
257
  const erc20 = new Contract(token, ERC20_ABI, provider);
239
258
  const allowance = await erc20.allowance(wallet.address, DSWAP_V2_ROUTER);
240
259
  if (allowance < amount) {
@@ -254,7 +273,14 @@ export async function addLiquidityForSubmit(params) {
254
273
  const amountAMin = applySlippage(amountADesired, slippage);
255
274
  const amountBMin = applySlippage(amountBDesired, slippage);
256
275
  const addLiqData = routerIface.encodeFunctionData('addLiquidity', [
257
- tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, wallet.address, deadline,
276
+ tokenA,
277
+ tokenB,
278
+ amountADesired,
279
+ amountBDesired,
280
+ amountAMin,
281
+ amountBMin,
282
+ wallet.address,
283
+ deadline,
258
284
  ]);
259
285
  const addLiqTx = await wallet.signTransaction({
260
286
  to: DSWAP_V2_ROUTER,
@@ -290,7 +316,7 @@ export async function removeLiquidityForSubmit(params) {
290
316
  const pair = new Contract(pairAddr, DSWAP_V2_PAIR_ABI, provider);
291
317
  let liquidity = params.liquidity;
292
318
  if (liquidity === 0n) {
293
- liquidity = await pair.balanceOf(wallet.address);
319
+ liquidity = (await pair.balanceOf(wallet.address));
294
320
  if (liquidity === 0n)
295
321
  throw new Error('No LP tokens to remove');
296
322
  }
@@ -302,8 +328,8 @@ export async function removeLiquidityForSubmit(params) {
302
328
  const isAToken0 = tokenA.toLowerCase() === token0.toLowerCase();
303
329
  const reserveA = isAToken0 ? reserves[0] : reserves[1];
304
330
  const reserveB = isAToken0 ? reserves[1] : reserves[0];
305
- const amountAMin = applySlippage(reserveA * liquidity / totalSupply, slippage);
306
- const amountBMin = applySlippage(reserveB * liquidity / totalSupply, slippage);
331
+ const amountAMin = applySlippage((reserveA * liquidity) / totalSupply, slippage);
332
+ const amountBMin = applySlippage((reserveB * liquidity) / totalSupply, slippage);
307
333
  let currentNonce = await wallet.getNonce();
308
334
  const signedTxs = [];
309
335
  const lpAllowance = await pair.allowance(wallet.address, DSWAP_V2_ROUTER);
@@ -321,7 +347,13 @@ export async function removeLiquidityForSubmit(params) {
321
347
  signedTxs.push(approveTx);
322
348
  }
323
349
  const removeLiqData = routerIface.encodeFunctionData('removeLiquidity', [
324
- tokenA, tokenB, liquidity, amountAMin, amountBMin, wallet.address, deadline,
350
+ tokenA,
351
+ tokenB,
352
+ liquidity,
353
+ amountAMin,
354
+ amountBMin,
355
+ wallet.address,
356
+ deadline,
325
357
  ]);
326
358
  const removeLiqTx = await wallet.signTransaction({
327
359
  to: DSWAP_V2_ROUTER,
@@ -9,5 +9,5 @@ export type { LaunchParams, FairLaunchTokenInfo, FairLaunchQueryConfig, FairLaun
9
9
  export { LP_FAIR_LAUNCHER_ADDRESS, TOKEN_FACTORY_ADDRESS, POOL_FACTORY_ADDRESS, RATE_BASE, DEAD_ADDRESS, QUOTE_TOKENS, DEFAULT_LOCK_TIME, DEFAULT_RELEASE_PERIOD, DEFAULT_INITIAL_LP, } from './constants.js';
10
10
  export { standardPreset, liquidityProvidingPreset, dividendPreset, dividendBuybackPreset, deflationaryPreset, validateLaunchParams, detectLaunchType, } from './presets.js';
11
11
  export { FairLauncherQuery, encodeLaunchTokenCall, launchToken, launchTokenForSubmit, setTokenTradeStartTime, setTokenTradeStartTimeForSubmit, } from './launcher.js';
12
- export { FairPoolQuery, claimFromPool, claimFromPoolForSubmit, batchClaimForSubmit, } from './pool.js';
13
- export type { PoolOverview, PoolClaimParams, PoolClaimResult, } from './pool.js';
12
+ export { FairPoolQuery, claimFromPool, claimFromPoolForSubmit, batchClaimForSubmit } from './pool.js';
13
+ export type { PoolOverview, PoolClaimParams, PoolClaimResult } from './pool.js';
@@ -23,4 +23,4 @@ export { FairLauncherQuery, encodeLaunchTokenCall, launchToken, launchTokenForSu
23
23
  // ============================================================================
24
24
  // 池 (Pool)
25
25
  // ============================================================================
26
- export { FairPoolQuery, claimFromPool, claimFromPoolForSubmit, batchClaimForSubmit, } from './pool.js';
26
+ export { FairPoolQuery, claimFromPool, claimFromPoolForSubmit, batchClaimForSubmit } from './pool.js';
@@ -7,7 +7,7 @@
7
7
  * - 查询代币列表
8
8
  */
9
9
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
10
- import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_LAUNCHER_ABI, NATIVE_TRANSFER_GAS_LIMIT, } from '../../constants.js';
10
+ import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_LAUNCHER_ABI, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
11
11
  import { LP_FAIR_LAUNCHER_ADDRESS } from './constants.js';
12
12
  import { buildProfitTransfer } from '../daoaas/portal-direct.js';
13
13
  import { calculateProfitAmount, getProfitRateBps, getProfitRecipient } from '../../../../shared/constants/profit.js';
@@ -17,6 +17,8 @@ const launcherIface = new Interface(LP_FAIR_LAUNCHER_ABI);
17
17
  // 只读查询
18
18
  // ============================================================================
19
19
  export class FairLauncherQuery {
20
+ provider;
21
+ launcher;
20
22
  constructor(config = {}) {
21
23
  const rpcUrl = config.rpcUrl ?? ENI_RPC_URL;
22
24
  this.provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
@@ -257,55 +259,93 @@ export async function launchTokenForSubmit(params) {
257
259
  // ============================================================================
258
260
  function paramsToTuple(p) {
259
261
  return [
260
- p.name, p.symbol, p.logo, p.metadata,
261
- p.quoteTokenAddr, p.initialLp, p.initialQuote,
262
- p.lpAddRate, p.lpAddMin,
263
- p.buybackRate, p.buybackMin, p.buybackPath,
264
- p.marketingRates, p.marketingAddrs,
265
- p.vestingAmount, p.vestingLockEndTime, p.vestingReleaseEndTime,
266
- p.vestingRecipients, p.vestingRatios,
267
- p.tradeStartTime, p.claimStartTime, p.claimEndTime,
268
- p.lockTime, p.releasePeriod,
269
- p.maxCount, p.minAmount, p.maxAmount,
270
- p.whitelistEnabled, p.whitelistAddrs,
271
- p.inviteCodeEnabled, p.inviteCodes,
262
+ p.name,
263
+ p.symbol,
264
+ p.logo,
265
+ p.metadata,
266
+ p.quoteTokenAddr,
267
+ p.initialLp,
268
+ p.initialQuote,
269
+ p.lpAddRate,
270
+ p.lpAddMin,
271
+ p.buybackRate,
272
+ p.buybackMin,
273
+ p.buybackPath,
274
+ p.marketingRates,
275
+ p.marketingAddrs,
276
+ p.vestingAmount,
277
+ p.vestingLockEndTime,
278
+ p.vestingReleaseEndTime,
279
+ p.vestingRecipients,
280
+ p.vestingRatios,
281
+ p.tradeStartTime,
282
+ p.claimStartTime,
283
+ p.claimEndTime,
284
+ p.lockTime,
285
+ p.releasePeriod,
286
+ p.maxCount,
287
+ p.minAmount,
288
+ p.maxAmount,
289
+ p.whitelistEnabled,
290
+ p.whitelistAddrs,
291
+ p.inviteCodeEnabled,
292
+ p.inviteCodes,
272
293
  ];
273
294
  }
274
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
295
+ function readRawBigint(raw, key, index) {
296
+ const value = raw[key] ?? raw[index];
297
+ if (value === undefined || value === null)
298
+ return 0n;
299
+ return BigInt(value);
300
+ }
301
+ function readRawString(raw, key, index) {
302
+ const value = raw[key] ?? raw[index];
303
+ return typeof value === 'string' ? value : '';
304
+ }
305
+ function readRawStringArray(raw, key, index) {
306
+ const value = raw[key] ?? raw[index];
307
+ return Array.isArray(value) ? [...value] : [];
308
+ }
309
+ function readRawBigintArray(raw, key, index) {
310
+ const value = raw[key] ?? raw[index];
311
+ if (!Array.isArray(value))
312
+ return [];
313
+ return value.map((item) => BigInt(item));
314
+ }
275
315
  function parseFairLaunchTokenInfo(raw) {
276
316
  return {
277
- indexAll: BigInt(raw.indexAll ?? raw[0] ?? 0),
278
- user: raw.user ?? raw[1] ?? '',
279
- index: BigInt(raw.index ?? raw[2] ?? 0),
280
- tokenAddress: raw.tokenAddr ?? raw[3] ?? '',
281
- poolAddress: raw.poolAddr ?? raw[4] ?? '',
282
- vestingAddress: raw.vestingAddr ?? raw[5] ?? '',
283
- quoteTokenAddr: raw.quoteTokenAddr ?? raw[6] ?? '',
284
- initialSupply: BigInt(raw.initialSupply ?? raw[7] ?? 0),
285
- initialLP: BigInt(raw.initialLP ?? raw[8] ?? 0),
286
- initialQuote: BigInt(raw.initialQuote ?? raw[9] ?? 0),
287
- lpAddRate: BigInt(raw.lpAddRate ?? raw[10] ?? 0),
288
- buybackRate: BigInt(raw.buybackRate ?? raw[11] ?? 0),
289
- buybackPath: Array.from(raw.buybackPath ?? raw[12] ?? []),
290
- marketingRates: (raw.marketingRates ?? raw[13] ?? []).map((r) => BigInt(r)),
291
- marketingAddrs: Array.from(raw.marketingAddrs ?? raw[14] ?? []),
292
- vestingAmount: BigInt(raw.vestingAmount ?? raw[15] ?? 0),
293
- vestingLockEndTime: BigInt(raw.vestingLockEndTime ?? raw[16] ?? 0),
294
- vestingReleaseEndTime: BigInt(raw.vestingReleaseEndTime ?? raw[17] ?? 0),
295
- vestingRecipients: Array.from(raw.vestingRecipients ?? raw[18] ?? []),
296
- vestingRatios: (raw.vestingRatios ?? raw[19] ?? []).map((r) => BigInt(r)),
297
- tradeStartTime: BigInt(raw.tradeStartTime ?? raw[20] ?? 0),
298
- claimStartTime: BigInt(raw.claimStartTime ?? raw[21] ?? 0),
299
- claimEndTime: BigInt(raw.claimEndTime ?? raw[22] ?? 0),
300
- lockTime: BigInt(raw.lockTime ?? raw[23] ?? 0),
301
- releasePeriod: BigInt(raw.releasePeriod ?? raw[24] ?? 0),
302
- maxCount: BigInt(raw.maxCount ?? raw[25] ?? 0),
303
- minAmount: BigInt(raw.minAmount ?? raw[26] ?? 0),
304
- maxAmount: BigInt(raw.maxAmount ?? raw[27] ?? 0),
305
- name: raw.name ?? raw[28] ?? '',
306
- symbol: raw.symbol ?? raw[29] ?? '',
307
- logo: raw.logo ?? raw[30] ?? '',
308
- metadata: raw.metadata ?? raw[31] ?? '',
309
- timestamp: BigInt(raw.timestamp ?? raw[32] ?? 0),
317
+ indexAll: readRawBigint(raw, 'indexAll', 0),
318
+ user: readRawString(raw, 'user', 1),
319
+ index: readRawBigint(raw, 'index', 2),
320
+ tokenAddress: readRawString(raw, 'tokenAddr', 3),
321
+ poolAddress: readRawString(raw, 'poolAddr', 4),
322
+ vestingAddress: readRawString(raw, 'vestingAddr', 5),
323
+ quoteTokenAddr: readRawString(raw, 'quoteTokenAddr', 6),
324
+ initialSupply: readRawBigint(raw, 'initialSupply', 7),
325
+ initialLP: readRawBigint(raw, 'initialLP', 8),
326
+ initialQuote: readRawBigint(raw, 'initialQuote', 9),
327
+ lpAddRate: readRawBigint(raw, 'lpAddRate', 10),
328
+ buybackRate: readRawBigint(raw, 'buybackRate', 11),
329
+ buybackPath: readRawStringArray(raw, 'buybackPath', 12),
330
+ marketingRates: readRawBigintArray(raw, 'marketingRates', 13),
331
+ marketingAddrs: readRawStringArray(raw, 'marketingAddrs', 14),
332
+ vestingAmount: readRawBigint(raw, 'vestingAmount', 15),
333
+ vestingLockEndTime: readRawBigint(raw, 'vestingLockEndTime', 16),
334
+ vestingReleaseEndTime: readRawBigint(raw, 'vestingReleaseEndTime', 17),
335
+ vestingRecipients: readRawStringArray(raw, 'vestingRecipients', 18),
336
+ vestingRatios: readRawBigintArray(raw, 'vestingRatios', 19),
337
+ tradeStartTime: readRawBigint(raw, 'tradeStartTime', 20),
338
+ claimStartTime: readRawBigint(raw, 'claimStartTime', 21),
339
+ claimEndTime: readRawBigint(raw, 'claimEndTime', 22),
340
+ lockTime: readRawBigint(raw, 'lockTime', 23),
341
+ releasePeriod: readRawBigint(raw, 'releasePeriod', 24),
342
+ maxCount: readRawBigint(raw, 'maxCount', 25),
343
+ minAmount: readRawBigint(raw, 'minAmount', 26),
344
+ maxAmount: readRawBigint(raw, 'maxAmount', 27),
345
+ name: readRawString(raw, 'name', 28),
346
+ symbol: readRawString(raw, 'symbol', 29),
347
+ logo: readRawString(raw, 'logo', 30),
348
+ metadata: readRawString(raw, 'metadata', 31),
349
+ timestamp: readRawBigint(raw, 'timestamp', 32),
310
350
  };
311
351
  }
@@ -7,7 +7,7 @@
7
7
  * - 构建跟买交易 (claimForSubmit / batchClaimForSubmit)
8
8
  */
9
9
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
10
- import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_POOL_ABI, NATIVE_TRANSFER_GAS_LIMIT, } from '../../constants.js';
10
+ import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_POOL_ABI, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
11
11
  import { buildProfitTransfer } from '../daoaas/portal-direct.js';
12
12
  import { calculateProfitAmount, getProfitRateBps, getProfitRecipient } from '../../../../shared/constants/profit.js';
13
13
  const poolIface = new Interface(LP_FAIR_POOL_ABI);
@@ -15,6 +15,9 @@ const poolIface = new Interface(LP_FAIR_POOL_ABI);
15
15
  // 查询
16
16
  // ============================================================================
17
17
  export class FairPoolQuery {
18
+ provider;
19
+ pool;
20
+ poolAddress;
18
21
  constructor(poolAddress, rpcUrl) {
19
22
  this.poolAddress = poolAddress;
20
23
  this.provider = new JsonRpcProvider(rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });