four-flap-meme-sdk 2.2.2 → 2.2.3

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 (472) 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/__tests__/subpath-exports.test.d.ts +1 -0
  5. package/dist/__tests__/subpath-exports.test.js +64 -0
  6. package/dist/abis/common.d.ts +85 -0
  7. package/dist/abis/common.js +264 -0
  8. package/dist/abis/contracts/TaxToken.json +969 -0
  9. package/dist/abis/contracts/TokenManager2.json +136 -0
  10. package/dist/abis/contracts/index.d.ts +5 -0
  11. package/dist/abis/contracts/index.js +5 -0
  12. package/dist/abis/flap/index.d.ts +3 -0
  13. package/dist/abis/flap/index.js +3 -0
  14. package/dist/abis/flap/portal-events.d.ts +6 -0
  15. package/dist/abis/flap/portal-events.js +17 -0
  16. package/dist/abis/flap/portal.d.ts +6 -0
  17. package/dist/abis/flap/portal.js +37 -0
  18. package/dist/abis/flap/vault.d.ts +171 -0
  19. package/dist/abis/flap/vault.js +91 -0
  20. package/dist/abis/index.d.ts +8 -0
  21. package/dist/abis/index.js +11 -0
  22. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
  23. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  24. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
  25. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  26. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  27. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  28. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  29. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  30. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  31. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  32. package/dist/bundle-core/config-helpers.d.ts +36 -0
  33. package/dist/bundle-core/config-helpers.js +57 -0
  34. package/dist/bundle-core/errors.d.ts +50 -0
  35. package/dist/bundle-core/errors.js +35 -0
  36. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  37. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  38. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  39. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  40. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  41. package/dist/bundle-core/four-meme/core.js +515 -0
  42. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  43. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  44. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  45. package/dist/bundle-core/four-meme/private.js +465 -0
  46. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  47. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  48. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  49. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  50. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  51. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  52. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  53. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  54. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  55. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  56. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  57. package/dist/bundle-core/four-meme/swap.js +505 -0
  58. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  59. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  60. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  61. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  62. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  63. package/dist/bundle-core/four-meme/types/index.js +1 -0
  64. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  65. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  66. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  67. package/dist/bundle-core/four-meme/types.js +1 -0
  68. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  69. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  70. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  71. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  72. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  73. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  74. package/dist/bundle-core/index.d.ts +8 -0
  75. package/dist/bundle-core/index.js +8 -0
  76. package/dist/bundle-core/internal.d.ts +21 -0
  77. package/dist/bundle-core/internal.js +182 -0
  78. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  79. package/dist/bundle-core/sign-context-helpers.js +67 -0
  80. package/dist/bundle-core/submit.d.ts +293 -0
  81. package/dist/bundle-core/submit.js +727 -0
  82. package/dist/bundle-core/types/index.d.ts +8 -0
  83. package/dist/bundle-core/types/index.js +1 -0
  84. package/dist/bundle-core/types.d.ts +1 -0
  85. package/dist/bundle-core/types.js +1 -0
  86. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  87. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  88. package/dist/chains/bsc/four/config.d.ts +5 -67
  89. package/dist/chains/bsc/four/config.js +2 -114
  90. package/dist/chains/bsc/four/core.d.ts +1 -4
  91. package/dist/chains/bsc/four/core.js +1 -592
  92. package/dist/chains/bsc/four/index.d.ts +6 -6
  93. package/dist/chains/bsc/four/index.js +6 -6
  94. package/dist/chains/bsc/four/internal.d.ts +2 -46
  95. package/dist/chains/bsc/four/internal.js +2 -239
  96. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  97. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  98. package/dist/chains/bsc/four/private.d.ts +1 -27
  99. package/dist/chains/bsc/four/private.js +1 -477
  100. package/dist/chains/bsc/four/submit.d.ts +2 -315
  101. package/dist/chains/bsc/four/submit.js +2 -752
  102. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  103. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  104. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  105. package/dist/chains/bsc/four/swap-internal.js +1 -18
  106. package/dist/chains/bsc/four/swap.d.ts +2 -144
  107. package/dist/chains/bsc/four/swap.js +2 -766
  108. package/dist/chains/bsc/four/types.d.ts +1 -476
  109. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  110. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  111. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  112. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  113. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  114. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  115. package/dist/chains/bsc/four/utils.d.ts +5 -18
  116. package/dist/chains/bsc/four/utils.js +5 -1552
  117. package/dist/chains/bsc/iro.d.ts +5 -0
  118. package/dist/chains/bsc/iro.js +4 -0
  119. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  120. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  121. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  122. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -212
  123. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  124. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  125. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  126. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  127. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  128. package/dist/chains/bsc/pancake/index.js +1 -3
  129. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  130. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  131. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  132. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  133. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  134. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  135. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  136. package/dist/chains/eni/batch-router/transfer.js +55 -25
  137. package/dist/chains/eni/batch-router/utils.js +32 -6
  138. package/dist/chains/eni/bundler/sign.js +5 -6
  139. package/dist/chains/eni/bundler/submit.js +1 -4
  140. package/dist/chains/eni/constants.js +1 -1
  141. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  142. package/dist/chains/eni/flat-aliases.js +8 -0
  143. package/dist/chains/eni/index.d.ts +2 -1
  144. package/dist/chains/eni/index.js +1 -0
  145. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  146. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  147. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  148. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  149. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
  150. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  151. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  152. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  153. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  154. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
  155. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  156. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  157. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  158. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  159. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  160. package/dist/chains/eni/platforms/iro/index.js +4 -4
  161. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  162. package/dist/chains/eni/platforms/iro/token.js +107 -31
  163. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  164. package/dist/chains/eni/submit.d.ts +43 -0
  165. package/dist/chains/eni/submit.js +286 -0
  166. package/dist/chains/index.d.ts +13 -0
  167. package/dist/chains/index.js +13 -0
  168. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  169. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  170. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  171. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  172. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -59
  173. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  174. package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
  175. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  176. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
  177. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  178. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  179. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  180. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  181. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  182. package/dist/chains/xlayer/eip7702/index.js +28 -81
  183. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  184. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  185. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  186. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
  187. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  188. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  189. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  190. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  191. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  192. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  193. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  194. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  195. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  196. package/dist/chains/xlayer/eoa/constants.js +1 -1
  197. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  198. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  199. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  200. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  201. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  202. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  203. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  204. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  205. package/dist/chains/xlayer/eoa/index.js +8 -23
  206. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  207. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  208. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  209. package/dist/chains/xlayer/eoa/types.js +1 -3
  210. package/dist/chains/xlayer/index.d.ts +3 -2
  211. package/dist/chains/xlayer/index.js +4 -7
  212. package/dist/contracts/helper3.d.ts +20 -5
  213. package/dist/contracts/helper3.js +56 -20
  214. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  215. package/dist/contracts/tm-bundle-helpers.js +72 -0
  216. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  217. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
  218. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
  219. package/dist/contracts/tm-bundle-merkle/config.js +2 -114
  220. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  221. package/dist/contracts/tm-bundle-merkle/core.js +1 -591
  222. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  223. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  224. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
  225. package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
  226. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  227. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
  228. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  229. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  230. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  231. package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
  232. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  233. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
  234. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  235. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  236. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  237. package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
  238. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  239. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  240. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  241. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  242. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  243. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  244. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  245. package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
  246. package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
  247. package/dist/contracts/tm-bundle.d.ts +3 -51
  248. package/dist/contracts/tm-bundle.js +108 -177
  249. package/dist/contracts/tm.d.ts +3 -2
  250. package/dist/contracts/tm.js +37 -32
  251. package/dist/contracts/tm1.js +9 -4
  252. package/dist/contracts/tm2.js +9 -4
  253. package/dist/dex/direct-router-helpers.d.ts +264 -0
  254. package/dist/dex/direct-router-helpers.js +539 -0
  255. package/dist/dex/direct-router.d.ts +3 -125
  256. package/dist/dex/direct-router.js +237 -666
  257. package/dist/dex/types.d.ts +81 -0
  258. package/dist/dex/types.js +1 -0
  259. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  260. package/dist/exports/root-bundle-and-tooling.js +30 -0
  261. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  262. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  263. package/dist/exports/root-foundations.d.ts +35 -0
  264. package/dist/exports/root-foundations.js +70 -0
  265. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  266. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  267. package/dist/flap/index.d.ts +10 -0
  268. package/dist/flap/index.js +8 -0
  269. package/dist/flows/create.d.ts +2 -1
  270. package/dist/flows/create.js +6 -6
  271. package/dist/flows/index.d.ts +1 -0
  272. package/dist/flows/index.js +1 -0
  273. package/dist/index.d.ts +20 -85
  274. package/dist/index.js +20 -215
  275. package/dist/merkle/index.d.ts +12 -0
  276. package/dist/merkle/index.js +11 -0
  277. package/dist/shared/abis/common.d.ts +2 -83
  278. package/dist/shared/abis/common.js +2 -252
  279. package/dist/shared/abis/index.d.ts +5 -6
  280. package/dist/shared/abis/index.js +5 -7
  281. package/dist/shared/clients/blockrazor.js +39 -25
  282. package/dist/shared/clients/club48.d.ts +2 -2
  283. package/dist/shared/clients/club48.js +34 -29
  284. package/dist/shared/clients/emitservice.js +2 -0
  285. package/dist/shared/clients/four.d.ts +21 -6
  286. package/dist/shared/clients/four.js +29 -24
  287. package/dist/shared/clients/index.d.ts +8 -0
  288. package/dist/shared/clients/index.js +8 -0
  289. package/dist/shared/clients/merkle.js +27 -34
  290. package/dist/shared/constants/addresses.d.ts +1 -1
  291. package/dist/shared/constants/addresses.js +11 -2
  292. package/dist/shared/constants/chains.d.ts +1 -1
  293. package/dist/shared/constants/chains.js +1 -1
  294. package/dist/shared/constants/gas.d.ts +1 -1
  295. package/dist/shared/constants/gas.js +2 -6
  296. package/dist/shared/constants/index.d.ts +3 -0
  297. package/dist/shared/constants/index.js +1 -0
  298. package/dist/shared/constants/quote.d.ts +30 -0
  299. package/dist/shared/constants/quote.js +37 -0
  300. package/dist/shared/flap/abi.js +1 -1
  301. package/dist/shared/flap/constants.d.ts +1 -2
  302. package/dist/shared/flap/constants.js +2 -3
  303. package/dist/shared/flap/curve.js +3 -0
  304. package/dist/shared/flap/errors.d.ts +1 -4
  305. package/dist/shared/flap/errors.js +20 -1
  306. package/dist/shared/flap/index.d.ts +5 -4
  307. package/dist/shared/flap/index.js +5 -4
  308. package/dist/shared/flap/meta.d.ts +22 -18
  309. package/dist/shared/flap/meta.js +12 -17
  310. package/dist/shared/flap/permit.js +5 -2
  311. package/dist/shared/flap/pinata.d.ts +22 -6
  312. package/dist/shared/flap/pinata.js +21 -26
  313. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  314. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  315. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  316. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  317. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  318. package/dist/shared/flap/portal-bundle-merkle/core.js +86 -278
  319. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +7 -2
  320. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +101 -206
  321. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  322. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  323. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  324. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  325. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  326. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  327. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  328. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  329. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  330. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  331. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  332. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  333. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  334. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +83 -9
  335. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  336. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  337. package/dist/shared/flap/portal-bundle.js +55 -56
  338. package/dist/shared/flap/portal-create-token.d.ts +77 -0
  339. package/dist/shared/flap/portal-create-token.js +214 -0
  340. package/dist/shared/flap/portal.d.ts +14 -3
  341. package/dist/shared/flap/portal.js +50 -25
  342. package/dist/shared/flap/vanity.d.ts +1 -5
  343. package/dist/shared/flap/vanity.js +6 -17
  344. package/dist/shared/flap/vault.d.ts +17 -124
  345. package/dist/shared/flap/vault.js +67 -148
  346. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  347. package/dist/shared/foundation/dex/v3-path.js +35 -0
  348. package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
  349. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  350. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  351. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  352. package/dist/shared/foundation/index.d.ts +13 -0
  353. package/dist/shared/foundation/index.js +12 -0
  354. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  355. package/dist/shared/foundation/nonce/nonce-manager.js +183 -0
  356. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  357. package/dist/shared/foundation/normalize-unknown.js +29 -0
  358. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  359. package/dist/shared/foundation/sdk-logger.js +12 -0
  360. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  361. package/dist/shared/foundation/tx/build-request.js +25 -0
  362. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  363. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  364. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  365. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  366. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  367. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  368. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  369. package/dist/shared/foundation/types/erc20.js +1 -0
  370. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  371. package/dist/shared/foundation/types/holders-maker.js +1 -0
  372. package/dist/shared/foundation/types/index.d.ts +7 -0
  373. package/dist/shared/foundation/types/index.js +1 -0
  374. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  375. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  376. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  377. package/dist/shared/foundation/types/multicall.js +1 -0
  378. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  379. package/dist/shared/foundation/types/private-sale.js +1 -0
  380. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  381. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  382. package/dist/shared/four/tax-token.d.ts +1 -1
  383. package/dist/shared/four/tax-token.js +27 -7
  384. package/dist/shared/index.d.ts +6 -0
  385. package/dist/shared/index.js +4 -0
  386. package/dist/types/errors.d.ts +27 -0
  387. package/dist/types/errors.js +34 -0
  388. package/dist/utils/airdrop-sweep.d.ts +4 -76
  389. package/dist/utils/airdrop-sweep.js +42 -55
  390. package/dist/utils/bundle-helpers.d.ts +9 -243
  391. package/dist/utils/bundle-helpers.js +10 -584
  392. package/dist/utils/constants.d.ts +5 -61
  393. package/dist/utils/constants.js +5 -80
  394. package/dist/utils/contract-factory.d.ts +2 -4
  395. package/dist/utils/contract-factory.js +25 -18
  396. package/dist/utils/erc20.d.ts +7 -89
  397. package/dist/utils/erc20.js +94 -125
  398. package/dist/utils/errors.d.ts +12 -1
  399. package/dist/utils/errors.js +60 -1
  400. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  401. package/dist/utils/holders-maker/addresses.js +15 -0
  402. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  403. package/dist/utils/holders-maker/buy-tx.js +278 -0
  404. package/dist/utils/holders-maker/constants.d.ts +6 -0
  405. package/dist/utils/holders-maker/constants.js +7 -0
  406. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  407. package/dist/utils/holders-maker/disperse.js +90 -0
  408. package/dist/utils/holders-maker/routing.d.ts +4 -0
  409. package/dist/utils/holders-maker/routing.js +45 -0
  410. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  411. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  412. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  413. package/dist/utils/holders-maker-helpers.js +9 -0
  414. package/dist/utils/holders-maker.d.ts +2 -138
  415. package/dist/utils/holders-maker.js +26 -661
  416. package/dist/utils/hop-chains.d.ts +35 -0
  417. package/dist/utils/hop-chains.js +215 -0
  418. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  419. package/dist/utils/lp-inspect-helpers.js +109 -0
  420. package/dist/utils/lp-inspect.d.ts +2 -112
  421. package/dist/utils/lp-inspect.js +73 -223
  422. package/dist/utils/mpcExclusive.d.ts +2 -5
  423. package/dist/utils/mpcExclusive.js +4 -3
  424. package/dist/utils/private-sale.d.ts +2 -58
  425. package/dist/utils/private-sale.js +4 -15
  426. package/dist/utils/provider-factory.d.ts +4 -0
  427. package/dist/utils/provider-factory.js +10 -0
  428. package/dist/utils/quote-helpers.d.ts +4 -45
  429. package/dist/utils/quote-helpers.js +17 -74
  430. package/dist/utils/stealth-transfer.d.ts +2 -28
  431. package/dist/utils/stealth-transfer.js +31 -15
  432. package/dist/utils/swap-helpers.d.ts +2 -15
  433. package/dist/utils/swap-helpers.js +6 -11
  434. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  435. package/dist/utils/types/airdrop-sweep.js +1 -0
  436. package/dist/utils/types/contract-factory.d.ts +1 -0
  437. package/dist/utils/types/contract-factory.js +1 -0
  438. package/dist/utils/types/erc20.d.ts +1 -0
  439. package/dist/utils/types/erc20.js +1 -0
  440. package/dist/utils/types/errors.d.ts +1 -0
  441. package/dist/utils/types/errors.js +1 -0
  442. package/dist/utils/types/holders-maker.d.ts +1 -0
  443. package/dist/utils/types/holders-maker.js +1 -0
  444. package/dist/utils/types/hop-chains.d.ts +8 -0
  445. package/dist/utils/types/hop-chains.js +1 -0
  446. package/dist/utils/types/index.d.ts +13 -0
  447. package/dist/utils/types/index.js +1 -0
  448. package/dist/utils/types/lp-inspect.d.ts +1 -0
  449. package/dist/utils/types/lp-inspect.js +1 -0
  450. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  451. package/dist/utils/types/mpc-exclusive.js +1 -0
  452. package/dist/utils/types/private-sale.d.ts +1 -0
  453. package/dist/utils/types/private-sale.js +1 -0
  454. package/dist/utils/types/quote-helpers.d.ts +1 -0
  455. package/dist/utils/types/quote-helpers.js +1 -0
  456. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  457. package/dist/utils/types/stealth-transfer.js +1 -0
  458. package/dist/utils/types/wallet.d.ts +25 -0
  459. package/dist/utils/types/wallet.js +1 -0
  460. package/dist/utils/wallet.d.ts +2 -25
  461. package/dist/utils/wallet.js +13 -10
  462. package/dist/vanity/index.d.ts +5 -0
  463. package/dist/vanity/index.js +5 -0
  464. package/package.json +160 -4
  465. package/src/abis/contracts/TaxToken.json +969 -0
  466. package/src/abis/contracts/TokenManager.json +836 -0
  467. package/src/abis/contracts/TokenManager2.json +136 -0
  468. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  469. package/dist/shared/abis/TaxToken.json +0 -105
  470. package/dist/shared/abis/TokenManager2.json +0 -60
  471. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  472. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
@@ -5,8 +5,9 @@
5
5
  * 提供代币 Logo、社交链接、描述等元信息查询
6
6
  */
7
7
  import { Contract, JsonRpcProvider } from 'ethers';
8
- import { ENI_CHAIN_ID, ENI_RPC_URL, } from '../../constants.js';
9
- import { ERC20_ABI } from '../../../../shared/abis/common.js';
8
+ import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_LAUNCHER_ABI } from '../../constants.js';
9
+ import { LP_FAIR_LAUNCHER_ADDRESS } from '../fair-launch/constants.js';
10
+ import { ERC20_ABI } from '../../../../abis/common.js';
10
11
  /**
11
12
  * 从 ERC20 合约获取 DAOaaS Portal 代币基本元数据
12
13
  * Portal 的 getTokenState 仅返回状态码,name/symbol 从 ERC20 接口获取
@@ -21,7 +22,9 @@ export async function getTokenMeta(token, rpcUrl = ENI_RPC_URL) {
21
22
  tokenContract.symbol(),
22
23
  ]);
23
24
  }
24
- catch { /* ignore */ }
25
+ catch {
26
+ /* ignore */
27
+ }
25
28
  return {
26
29
  token,
27
30
  name,
@@ -39,8 +42,6 @@ export async function getTokenMeta(token, rpcUrl = ENI_RPC_URL) {
39
42
  * FairLaunch 代币的 logo 和 metadata 存储在 LaunchParams 中
40
43
  */
41
44
  export async function getFairLaunchTokenMeta(token, rpcUrl = ENI_RPC_URL) {
42
- const { LP_FAIR_LAUNCHER_ABI } = await import('../../constants.js');
43
- const { LP_FAIR_LAUNCHER_ADDRESS } = await import('../fair-launch/constants.js');
44
45
  const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
45
46
  const launcher = new Contract(LP_FAIR_LAUNCHER_ADDRESS, LP_FAIR_LAUNCHER_ABI, provider);
46
47
  const info = await launcher.getTokenInfoByToken(token);
@@ -50,7 +51,9 @@ export async function getFairLaunchTokenMeta(token, rpcUrl = ENI_RPC_URL) {
50
51
  meta = JSON.parse(info.metadata);
51
52
  }
52
53
  }
53
- catch { /* metadata may not be valid JSON */ }
54
+ catch {
55
+ /* metadata may not be valid JSON */
56
+ }
54
57
  return {
55
58
  token: info.token ?? token,
56
59
  name: info.name ?? '',
@@ -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,9 +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]);
301
- console.log(`[DAOAAS BatchBuy] 余额预检: ${rawKeys.length - validIndices.length} 个钱包被跳过, 剩余 ${validIndices.length} 个`);
298
+ privateKeys = validIndices.map((i) => rawKeys[i]);
299
+ amounts = validIndices.map((i) => rawAmounts[i]);
302
300
  }
303
301
  const transactions = [];
304
302
  const totalFlow = amounts.reduce((sum, amount) => sum + amount, 0n);
@@ -306,9 +304,7 @@ export async function directBatchBuyForSubmit(params) {
306
304
  for (let i = 0; i < privateKeys.length; i++) {
307
305
  const wallet = new Wallet(privateKeys[i], provider);
308
306
  const preview = await query.previewBuy(token, amounts[i]);
309
- const effectiveSlippage = isBatch
310
- ? Math.min(9500, slippageBps + i * 2000)
311
- : slippageBps;
307
+ const effectiveSlippage = isBatch ? Math.min(9500, slippageBps + i * 2000) : slippageBps;
312
308
  const minOut = applySlippage(preview, effectiveSlippage);
313
309
  const calldata = encodeBuyCall(token, minOut);
314
310
  const nonce = await wallet.getNonce('pending');
@@ -337,7 +333,7 @@ export async function directBatchBuyForSubmit(params) {
337
333
  });
338
334
  return {
339
335
  transactions,
340
- signedTransactions: [...transactions.map(tx => tx.signedTx), profitTx.signedTx],
336
+ signedTransactions: [...transactions.map((tx) => tx.signedTx), profitTx.signedTx],
341
337
  totalGasCost: swapGasLimit * maxFeePerGas * BigInt(transactions.length) + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
342
338
  metadata: formatSubmitMetadata(totalFlow, profitAmount),
343
339
  };
@@ -356,19 +352,7 @@ export async function directBatchSellForSubmit(params) {
356
352
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
357
353
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
358
354
  const swapGasLimit = 300000n;
359
- const swapGasCost = swapGasLimit * maxFeePerGas;
360
- const profitGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
361
- const wallets = privateKeys.map(pk => new Wallet(pk, provider));
362
- const balances = await Promise.all(wallets.map(w => provider.getBalance(w.address)));
363
- const maxPayerIdx = pickMaxAmountIndex(tokenAmounts);
364
- for (let i = 0; i < wallets.length; i++) {
365
- let required = swapGasCost;
366
- if (i === maxPayerIdx)
367
- required += profitGasCost;
368
- if (balances[i] < required) {
369
- console.warn(`[DAOAAS BatchSell] 钱包 ${wallets[i].address.slice(0, 10)} 原生余额不足 gas: 余额=${balances[i]}, 需要=${required},可能导致交易失败`);
370
- }
371
- }
355
+ const wallets = privateKeys.map((pk) => new Wallet(pk, provider));
372
356
  const transactions = [];
373
357
  const estimatedOuts = [];
374
358
  const isBatch = privateKeys.length > 1;
@@ -376,9 +360,7 @@ export async function directBatchSellForSubmit(params) {
376
360
  const wallet = wallets[i];
377
361
  const preview = await query.previewSell(token, tokenAmounts[i]);
378
362
  estimatedOuts.push(preview);
379
- const effectiveSlippage = isBatch
380
- ? Math.min(9500, slippageBps + i * 2000)
381
- : slippageBps;
363
+ const effectiveSlippage = isBatch ? Math.min(9500, slippageBps + i * 2000) : slippageBps;
382
364
  const minOut = applySlippage(preview, effectiveSlippage);
383
365
  const calldata = encodeSellCall(token, tokenAmounts[i], minOut);
384
366
  const nonce = await wallet.getNonce('pending');
@@ -408,7 +390,7 @@ export async function directBatchSellForSubmit(params) {
408
390
  });
409
391
  return {
410
392
  transactions,
411
- signedTransactions: [...transactions.map(tx => tx.signedTx), profitTx.signedTx],
393
+ signedTransactions: [...transactions.map((tx) => tx.signedTx), profitTx.signedTx],
412
394
  totalGasCost: 300000n * maxFeePerGas * BigInt(transactions.length) + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
413
395
  metadata: formatSubmitMetadata(totalFlow, profitAmount),
414
396
  };
@@ -439,9 +421,9 @@ export async function directQuickSwapForSubmit(params) {
439
421
  if (params.sellerKeys.length > 1) {
440
422
  for (let i = 1; i < params.sellerKeys.length; i++) {
441
423
  const otherWallet = new Wallet(params.sellerKeys[i], provider);
442
- 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());
443
425
  const otherNextNonce = otherSellTxs.length > 0
444
- ? Math.max(...otherSellTxs.map(tx => tx.nonce)) + 1
426
+ ? Math.max(...otherSellTxs.map((tx) => tx.nonce)) + 1
445
427
  : await otherWallet.getNonce('pending');
446
428
  const otherBalance = await provider.getBalance(otherWallet.address);
447
429
  const reserveGas = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
@@ -465,23 +447,23 @@ export async function directQuickSwapForSubmit(params) {
465
447
  const hopCount = params.hopCount ?? 0;
466
448
  const distributeHopWallets = [];
467
449
  if (params.buyerKeys.length > 0) {
468
- const primarySellTxs = sellResult.transactions.filter(tx => tx.from.toLowerCase() === primarySellerAddress);
450
+ const primarySellTxs = sellResult.transactions.filter((tx) => tx.from.toLowerCase() === primarySellerAddress);
469
451
  let primaryNextNonce = primarySellTxs.length > 0
470
- ? Math.max(...primarySellTxs.map(tx => tx.nonce)) + 1
452
+ ? Math.max(...primarySellTxs.map((tx) => tx.nonce)) + 1
471
453
  : await primarySellerWallet.getNonce('pending');
472
454
  const gasForBuy = 300000n * maxFeePerGas;
473
455
  const hopGasFee = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
474
456
  const totalFlow = params.buyAmounts.reduce((sum, a) => sum + a, 0n);
475
457
  const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
476
458
  const profitAmount = calculateProfitAmount(totalFlow, NORMAL_PROFIT_BPS) + profitTxGasCost;
477
- const profitGasPerBuyer = (NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas);
459
+ const profitGasPerBuyer = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
478
460
  for (let i = 0; i < params.buyerKeys.length; i++) {
479
461
  const buyerAddress = new Wallet(params.buyerKeys[i]).address;
480
462
  const transferAmount = params.buyAmounts[i];
481
463
  if (transferAmount <= 0n)
482
464
  continue;
483
465
  const isMaxBuyer = i === pickMaxAmountIndex(params.buyAmounts);
484
- const extraForProfit = isMaxBuyer ? (profitAmount + profitGasPerBuyer) : 0n;
466
+ const extraForProfit = isMaxBuyer ? profitAmount + profitGasPerBuyer : 0n;
485
467
  const baseTransfer = transferAmount + gasForBuy + extraForProfit;
486
468
  if (hopCount <= 0) {
487
469
  const signedTx = await primarySellerWallet.signTransaction({
@@ -504,8 +486,8 @@ export async function directQuickSwapForSubmit(params) {
504
486
  hops.push({ address: w.address, privateKey: w.privateKey });
505
487
  }
506
488
  distributeHopWallets.push(hops);
507
- const fullChain = [primarySellerWallet, ...hops.map(h => new Wallet(h.privateKey))];
508
- 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];
509
491
  for (let j = 0; j < addresses.length - 1; j++) {
510
492
  const fromWallet = fullChain[j];
511
493
  const toAddress = addresses[j + 1];
@@ -545,8 +527,10 @@ export async function directQuickSwapForSubmit(params) {
545
527
  const payerIndex = pickMaxAmountIndex(params.buyAmounts);
546
528
  const payerKey = params.buyerKeys[payerIndex] || primarySellerKey;
547
529
  const payerAddress = new Wallet(payerKey).address.toLowerCase();
548
- const payerTxs = allTxs.filter(tx => tx.from.toLowerCase() === payerAddress);
549
- 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');
550
534
  const profitTx = await buildRevenueTail({
551
535
  rpcUrl,
552
536
  payerKey,
@@ -558,7 +542,7 @@ export async function directQuickSwapForSubmit(params) {
558
542
  const distributeGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas * BigInt(distributeTxs.length);
559
543
  return {
560
544
  transactions: allTxs,
561
- signedTransactions: [...allTxs.map(tx => tx.signedTx), profitTx.signedTx],
545
+ signedTransactions: [...allTxs.map((tx) => tx.signedTx), profitTx.signedTx],
562
546
  totalGasCost: sellResult.totalGasCost + distributeGasCost + buyResult.totalGasCost + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
563
547
  metadata: formatSubmitMetadata(totalFlow, profitAmount),
564
548
  ...(distributeHopWallets.length > 0 ? { hopWallets: distributeHopWallets } : {}),
@@ -572,11 +556,11 @@ export async function directQuickSwapForSubmit(params) {
572
556
  * ENI 不需要多跳,直接转到收益地址
573
557
  */
574
558
  export async function buildProfitTransfer(params) {
575
- 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;
576
560
  const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
577
561
  const wallet = new Wallet(payerKey, provider);
578
562
  const feeData = await provider.getFeeData();
579
- const nonce = explicitNonce ?? await wallet.getNonce('pending');
563
+ const nonce = explicitNonce ?? (await wallet.getNonce('pending'));
580
564
  const resolvedMaxFeePerGas = maxFeePerGas ?? gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
581
565
  const resolvedMaxPriorityFeePerGas = maxPriorityFeePerGas ?? feeData.maxPriorityFeePerGas ?? 0n;
582
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';