four-flap-meme-sdk 3.0.0 → 4.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 (446) hide show
  1. package/dist/bundle/four-meme/approve-tokenmanager.d.ts +2 -2
  2. package/dist/bundle/four-meme/approve-tokenmanager.js +3 -3
  3. package/dist/bundle/four-meme/core/buy-flow.d.ts +5 -0
  4. package/dist/bundle/four-meme/core/buy-flow.js +147 -0
  5. package/dist/bundle/four-meme/core/constants.d.ts +6 -0
  6. package/dist/bundle/four-meme/core/constants.js +15 -0
  7. package/dist/bundle/four-meme/core/create-token.d.ts +5 -0
  8. package/dist/bundle/four-meme/core/create-token.js +137 -0
  9. package/dist/bundle/four-meme/core/index.d.ts +14 -0
  10. package/dist/bundle/four-meme/core/index.js +14 -0
  11. package/dist/bundle/four-meme/core/sell-flow.d.ts +5 -0
  12. package/dist/bundle/four-meme/core/sell-flow.js +240 -0
  13. package/dist/bundle/four-meme/core-helpers.js +1 -1
  14. package/dist/bundle/four-meme/core.d.ts +7 -4
  15. package/dist/bundle/four-meme/core.js +5 -513
  16. package/dist/bundle/four-meme/pancake-proxy/approve.d.ts +15 -0
  17. package/dist/bundle/four-meme/pancake-proxy/approve.js +113 -0
  18. package/dist/bundle/four-meme/pancake-proxy/buy.d.ts +8 -0
  19. package/dist/bundle/four-meme/pancake-proxy/buy.js +143 -0
  20. package/dist/bundle/four-meme/pancake-proxy/constants.d.ts +25 -0
  21. package/dist/bundle/four-meme/pancake-proxy/constants.js +14 -0
  22. package/dist/bundle/four-meme/pancake-proxy/helpers.d.ts +45 -0
  23. package/dist/bundle/four-meme/pancake-proxy/helpers.js +232 -0
  24. package/dist/bundle/four-meme/pancake-proxy/index.d.ts +15 -0
  25. package/dist/bundle/four-meme/pancake-proxy/index.js +15 -0
  26. package/dist/bundle/four-meme/pancake-proxy/sell.d.ts +8 -0
  27. package/dist/bundle/four-meme/pancake-proxy/sell.js +194 -0
  28. package/dist/bundle/four-meme/pancake-proxy.d.ts +4 -20
  29. package/dist/bundle/four-meme/pancake-proxy.js +3 -670
  30. package/dist/bundle/four-meme/private/buy.d.ts +16 -0
  31. package/dist/bundle/four-meme/private/buy.js +225 -0
  32. package/dist/bundle/four-meme/private/index.d.ts +11 -0
  33. package/dist/bundle/four-meme/private/index.js +11 -0
  34. package/dist/bundle/four-meme/private/sell.d.ts +18 -0
  35. package/dist/bundle/four-meme/private/sell.js +245 -0
  36. package/dist/bundle/four-meme/private.d.ts +5 -25
  37. package/dist/bundle/four-meme/private.js +5 -463
  38. package/dist/bundle/four-meme/swap/batch.d.ts +8 -0
  39. package/dist/bundle/four-meme/swap/batch.js +170 -0
  40. package/dist/bundle/four-meme/swap/bundle.d.ts +8 -0
  41. package/dist/bundle/four-meme/swap/bundle.js +147 -0
  42. package/dist/bundle/four-meme/swap/index.d.ts +14 -0
  43. package/dist/bundle/four-meme/swap/index.js +13 -0
  44. package/dist/bundle/four-meme/swap/quick-batch.d.ts +8 -0
  45. package/dist/bundle/four-meme/swap/quick-batch.js +206 -0
  46. package/dist/bundle/four-meme/swap-buy-first/helpers.d.ts +20 -0
  47. package/dist/bundle/four-meme/swap-buy-first/helpers.js +39 -0
  48. package/dist/bundle/four-meme/swap-buy-first/index.d.ts +12 -0
  49. package/dist/bundle/four-meme/swap-buy-first/index.js +11 -0
  50. package/dist/bundle/four-meme/swap-buy-first/multi-wallet.d.ts +20 -0
  51. package/dist/bundle/four-meme/swap-buy-first/multi-wallet.js +198 -0
  52. package/dist/bundle/four-meme/swap-buy-first/single.d.ts +7 -0
  53. package/dist/bundle/four-meme/swap-buy-first/single.js +232 -0
  54. package/dist/bundle/four-meme/swap-buy-first.d.ts +4 -3
  55. package/dist/bundle/four-meme/swap-buy-first.js +4 -451
  56. package/dist/bundle/four-meme/swap-hop-helpers.d.ts +2 -2
  57. package/dist/bundle/four-meme/swap-sign-helpers.d.ts +2 -2
  58. package/dist/bundle/four-meme/swap-sign-helpers.js +1 -1
  59. package/dist/bundle/four-meme/swap.d.ts +4 -14
  60. package/dist/bundle/four-meme/swap.js +4 -502
  61. package/dist/bundle/four-meme/types/index.d.ts +1 -1
  62. package/dist/bundle/four-meme/utils-disperse.d.ts +1 -1
  63. package/dist/bundle/four-meme/utils-disperse.js +1 -1
  64. package/dist/bundle/four-meme/utils-pairwise.d.ts +1 -1
  65. package/dist/bundle/four-meme/utils-pairwise.js +1 -1
  66. package/dist/bundle/four-meme/utils-sweep/context.d.ts +39 -0
  67. package/dist/bundle/four-meme/utils-sweep/context.js +7 -0
  68. package/dist/bundle/four-meme/utils-sweep/erc20-no-hop.d.ts +5 -0
  69. package/dist/bundle/four-meme/utils-sweep/erc20-no-hop.js +162 -0
  70. package/dist/bundle/four-meme/utils-sweep/index.d.ts +13 -0
  71. package/dist/bundle/four-meme/utils-sweep/index.js +13 -0
  72. package/dist/bundle/four-meme/utils-sweep/main.d.ts +8 -0
  73. package/dist/bundle/four-meme/utils-sweep/main.js +114 -0
  74. package/dist/bundle/four-meme/utils-sweep/native-no-hop.d.ts +5 -0
  75. package/dist/bundle/four-meme/utils-sweep/native-no-hop.js +156 -0
  76. package/dist/bundle/four-meme/utils-sweep/with-hops.d.ts +6 -0
  77. package/dist/bundle/four-meme/utils-sweep/with-hops.js +382 -0
  78. package/dist/bundle/four-meme/utils-sweep.d.ts +3 -4
  79. package/dist/bundle/four-meme/utils-sweep.js +3 -740
  80. package/dist/bundle/internal.d.ts +2 -2
  81. package/dist/bundle/sign-context-helpers.d.ts +1 -26
  82. package/dist/bundle/sign-context-helpers.js +1 -63
  83. package/dist/bundle/submit/blockrazor.d.ts +94 -0
  84. package/dist/bundle/submit/blockrazor.js +122 -0
  85. package/dist/bundle/submit/direct.d.ts +118 -0
  86. package/dist/bundle/submit/direct.js +484 -0
  87. package/dist/bundle/submit/helpers.d.ts +7 -0
  88. package/dist/bundle/submit/helpers.js +15 -0
  89. package/dist/bundle/submit/index.d.ts +14 -0
  90. package/dist/bundle/submit/index.js +14 -0
  91. package/dist/bundle/submit/merkle.d.ts +84 -0
  92. package/dist/bundle/submit/merkle.js +121 -0
  93. package/dist/bundle/submit.d.ts +3 -286
  94. package/dist/bundle/submit.js +3 -724
  95. package/dist/chains/bsc/four/types.d.ts +1 -1
  96. package/dist/chains/bsc/index.d.ts +1 -1
  97. package/dist/chains/bsc/index.js +2 -0
  98. package/dist/chains/bsc/pancake/bundle-buy-first-build.d.ts +25 -0
  99. package/dist/chains/bsc/pancake/bundle-buy-first-build.js +177 -0
  100. package/dist/chains/bsc/pancake/bundle-buy-first-constants.d.ts +30 -0
  101. package/dist/chains/bsc/pancake/bundle-buy-first-constants.js +24 -0
  102. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +11 -149
  103. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +12 -74
  104. package/dist/chains/bsc/pancake/bundle-buy-first-multi-wallet.d.ts +9 -0
  105. package/dist/chains/bsc/pancake/bundle-buy-first-multi-wallet.js +225 -0
  106. package/dist/chains/bsc/pancake/bundle-buy-first-plan.d.ts +14 -0
  107. package/dist/chains/bsc/pancake/bundle-buy-first-plan.js +64 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first-profit.d.ts +12 -0
  109. package/dist/chains/bsc/pancake/bundle-buy-first-profit.js +22 -0
  110. package/dist/chains/bsc/pancake/bundle-buy-first-quote.d.ts +15 -0
  111. package/dist/chains/bsc/pancake/bundle-buy-first-quote.js +122 -0
  112. package/dist/chains/bsc/pancake/bundle-buy-first-types.d.ts +179 -0
  113. package/dist/chains/bsc/pancake/bundle-buy-first-types.js +1 -0
  114. package/dist/chains/bsc/pancake/bundle-buy-first-validate.d.ts +2 -0
  115. package/dist/chains/bsc/pancake/bundle-buy-first-validate.js +41 -0
  116. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -1
  117. package/dist/chains/bsc/pancake/bundle-buy-first.js +8 -578
  118. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +11 -239
  119. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +12 -564
  120. package/dist/chains/bsc/pancake/bundle-swap-types.d.ts +183 -0
  121. package/dist/chains/bsc/pancake/bundle-swap-types.js +17 -0
  122. package/dist/chains/bsc/pancake/bundle-swap.d.ts +10 -132
  123. package/dist/chains/bsc/pancake/bundle-swap.js +12 -1003
  124. package/dist/chains/bsc/pancake/hop-chain.d.ts +18 -0
  125. package/dist/chains/bsc/pancake/hop-chain.js +227 -0
  126. package/dist/chains/bsc/pancake/quote.d.ts +14 -0
  127. package/dist/chains/bsc/pancake/quote.js +84 -0
  128. package/dist/chains/bsc/pancake/swap-batch.d.ts +42 -0
  129. package/dist/chains/bsc/pancake/swap-batch.js +283 -0
  130. package/dist/chains/bsc/pancake/swap-build.d.ts +19 -0
  131. package/dist/chains/bsc/pancake/swap-build.js +226 -0
  132. package/dist/chains/bsc/pancake/swap-cross.d.ts +42 -0
  133. package/dist/chains/bsc/pancake/swap-cross.js +140 -0
  134. package/dist/chains/bsc/pancake/swap-quick.d.ts +54 -0
  135. package/dist/chains/bsc/pancake/swap-quick.js +424 -0
  136. package/dist/chains/bsc/pancake/swap-single.d.ts +2 -0
  137. package/dist/chains/bsc/pancake/swap-single.js +182 -0
  138. package/dist/chains/bsc/platforms/four/index.d.ts +21 -3
  139. package/dist/chains/bsc/platforms/four/index.js +28 -3
  140. package/dist/chains/eni/batch-router/transfer-disperse.d.ts +37 -0
  141. package/dist/chains/eni/batch-router/transfer-disperse.js +302 -0
  142. package/dist/chains/eni/batch-router/transfer-shared.d.ts +9 -0
  143. package/dist/chains/eni/batch-router/transfer-shared.js +10 -0
  144. package/dist/chains/eni/batch-router/transfer-sweep.d.ts +51 -0
  145. package/dist/chains/eni/batch-router/transfer-sweep.js +364 -0
  146. package/dist/chains/eni/batch-router/transfer.d.ts +4 -74
  147. package/dist/chains/eni/batch-router/transfer.js +2 -647
  148. package/dist/chains/eni/index.d.ts +2 -0
  149. package/dist/chains/eni/index.js +4 -0
  150. package/dist/chains/eni/platforms/daoaas/portal-direct-profit.d.ts +17 -0
  151. package/dist/chains/eni/platforms/daoaas/portal-direct-profit.js +30 -0
  152. package/dist/chains/eni/platforms/daoaas/portal-direct-submit.d.ts +12 -0
  153. package/dist/chains/eni/platforms/daoaas/portal-direct-submit.js +396 -0
  154. package/dist/chains/eni/platforms/daoaas/portal-direct-tx.d.ts +20 -0
  155. package/dist/chains/eni/platforms/daoaas/portal-direct-tx.js +165 -0
  156. package/dist/chains/eni/platforms/daoaas/portal-direct.d.ts +3 -32
  157. package/dist/chains/eni/platforms/daoaas/portal-direct.js +3 -571
  158. package/dist/chains/eni/submit.js +1 -1
  159. package/dist/chains/xlayer/constants.d.ts +0 -2
  160. package/dist/chains/xlayer/constants.js +0 -2
  161. package/dist/chains/xlayer/eip7702/auth.d.ts +16 -0
  162. package/dist/chains/xlayer/eip7702/auth.js +81 -0
  163. package/dist/chains/xlayer/eip7702/bundle-create-buy.d.ts +22 -0
  164. package/dist/chains/xlayer/eip7702/bundle-create-buy.js +201 -0
  165. package/dist/chains/xlayer/eip7702/bundle-create-helpers.d.ts +114 -0
  166. package/dist/chains/xlayer/eip7702/bundle-create-helpers.js +139 -0
  167. package/dist/chains/xlayer/eip7702/bundle-create-to-dex.d.ts +24 -0
  168. package/dist/chains/xlayer/eip7702/bundle-create-to-dex.js +233 -0
  169. package/dist/chains/xlayer/eip7702/bundle-create.d.ts +3 -35
  170. package/dist/chains/xlayer/eip7702/bundle-create.js +3 -746
  171. package/dist/chains/xlayer/eip7702/bundle-graduate-buy.d.ts +22 -0
  172. package/dist/chains/xlayer/eip7702/bundle-graduate-buy.js +214 -0
  173. package/dist/chains/xlayer/eip7702/bundle-sell.js +1 -1
  174. package/dist/chains/xlayer/eip7702/bundle-swap-batch.d.ts +31 -0
  175. package/dist/chains/xlayer/eip7702/bundle-swap-batch.js +216 -0
  176. package/dist/chains/xlayer/eip7702/bundle-swap-helpers.d.ts +21 -0
  177. package/dist/chains/xlayer/eip7702/bundle-swap-helpers.js +206 -0
  178. package/dist/chains/xlayer/eip7702/bundle-swap-multi.d.ts +33 -0
  179. package/dist/chains/xlayer/eip7702/bundle-swap-multi.js +146 -0
  180. package/dist/chains/xlayer/eip7702/bundle-swap-single.d.ts +31 -0
  181. package/dist/chains/xlayer/eip7702/bundle-swap-single.js +177 -0
  182. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +6 -61
  183. package/dist/chains/xlayer/eip7702/bundle-swap.js +3 -712
  184. package/dist/chains/xlayer/eip7702/bytes.d.ts +4 -0
  185. package/dist/chains/xlayer/eip7702/bytes.js +31 -0
  186. package/dist/chains/xlayer/eip7702/gas.d.ts +19 -0
  187. package/dist/chains/xlayer/eip7702/gas.js +152 -0
  188. package/dist/chains/xlayer/eip7702/multi-hop-transfer-disperse.d.ts +5 -0
  189. package/dist/chains/xlayer/eip7702/multi-hop-transfer-disperse.js +196 -0
  190. package/dist/chains/xlayer/eip7702/multi-hop-transfer-pairwise.d.ts +5 -0
  191. package/dist/chains/xlayer/eip7702/multi-hop-transfer-pairwise.js +188 -0
  192. package/dist/chains/xlayer/eip7702/multi-hop-transfer-sweep.d.ts +5 -0
  193. package/dist/chains/xlayer/eip7702/multi-hop-transfer-sweep.js +220 -0
  194. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +8 -4
  195. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +5 -591
  196. package/dist/chains/xlayer/eip7702/profit.d.ts +32 -0
  197. package/dist/chains/xlayer/eip7702/profit.js +59 -0
  198. package/dist/chains/xlayer/eip7702/provider.d.ts +3 -0
  199. package/dist/chains/xlayer/eip7702/provider.js +17 -0
  200. package/dist/chains/xlayer/eip7702/time.d.ts +2 -0
  201. package/dist/chains/xlayer/eip7702/time.js +10 -0
  202. package/dist/chains/xlayer/eip7702/tx-build.d.ts +10 -0
  203. package/dist/chains/xlayer/eip7702/tx-build.js +128 -0
  204. package/dist/chains/xlayer/eip7702/utils.d.ts +19 -85
  205. package/dist/chains/xlayer/eip7702/utils.js +19 -484
  206. package/dist/chains/xlayer/eip7702/volume-bundle.d.ts +13 -0
  207. package/dist/chains/xlayer/eip7702/volume-bundle.js +250 -0
  208. package/dist/chains/xlayer/eip7702/volume-internal.d.ts +13 -0
  209. package/dist/chains/xlayer/eip7702/volume-internal.js +169 -0
  210. package/dist/chains/xlayer/eip7702/volume-make.d.ts +8 -0
  211. package/dist/chains/xlayer/eip7702/volume-make.js +38 -0
  212. package/dist/chains/xlayer/eip7702/volume-single-round.d.ts +17 -0
  213. package/dist/chains/xlayer/eip7702/volume-single-round.js +44 -0
  214. package/dist/chains/xlayer/eip7702/volume-swap.d.ts +18 -0
  215. package/dist/chains/xlayer/eip7702/volume-swap.js +30 -0
  216. package/dist/chains/xlayer/eip7702/volume-wash.d.ts +8 -0
  217. package/dist/chains/xlayer/eip7702/volume-wash.js +191 -0
  218. package/dist/chains/xlayer/eip7702/volume.d.ts +7 -35
  219. package/dist/chains/xlayer/eip7702/volume.js +5 -697
  220. package/dist/chains/xlayer/eip7702/wallet.d.ts +6 -0
  221. package/dist/chains/xlayer/eip7702/wallet.js +17 -0
  222. package/dist/chains/xlayer/eoa/aa-types.d.ts +176 -0
  223. package/dist/chains/xlayer/eoa/aa-types.js +6 -0
  224. package/dist/chains/xlayer/eoa/constants.d.ts +0 -2
  225. package/dist/chains/xlayer/eoa/constants.js +0 -2
  226. package/dist/chains/xlayer/eoa/context.d.ts +8 -0
  227. package/dist/chains/xlayer/eoa/context.js +23 -0
  228. package/dist/chains/xlayer/eoa/encoders.d.ts +147 -0
  229. package/dist/chains/xlayer/eoa/encoders.js +147 -0
  230. package/dist/chains/xlayer/eoa/eoa-bundle-swap-cross.d.ts +5 -0
  231. package/dist/chains/xlayer/eoa/eoa-bundle-swap-cross.js +113 -0
  232. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +10 -123
  233. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +10 -225
  234. package/dist/chains/xlayer/eoa/eoa-bundle-swap-pure.d.ts +50 -0
  235. package/dist/chains/xlayer/eoa/eoa-bundle-swap-pure.js +170 -0
  236. package/dist/chains/xlayer/eoa/eoa-bundle-swap-quick.d.ts +5 -0
  237. package/dist/chains/xlayer/eoa/eoa-bundle-swap-quick.js +257 -0
  238. package/dist/chains/xlayer/eoa/eoa-bundle-swap-types.d.ts +99 -0
  239. package/dist/chains/xlayer/eoa/eoa-bundle-swap-types.js +11 -0
  240. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +5 -47
  241. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +3 -522
  242. package/dist/chains/xlayer/eoa/eoa-types.d.ts +776 -0
  243. package/dist/chains/xlayer/eoa/eoa-types.js +6 -0
  244. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +8 -0
  245. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +8 -0
  246. package/dist/chains/xlayer/eoa/format.d.ts +34 -0
  247. package/dist/chains/xlayer/eoa/format.js +56 -0
  248. package/dist/chains/xlayer/eoa/hop-chain.d.ts +4 -0
  249. package/dist/chains/xlayer/eoa/hop-chain.js +87 -0
  250. package/dist/chains/xlayer/eoa/nonce-map.d.ts +20 -0
  251. package/dist/chains/xlayer/eoa/nonce-map.js +51 -0
  252. package/dist/chains/xlayer/eoa/portal-ops.d.ts +9 -292
  253. package/dist/chains/xlayer/eoa/portal-ops.js +9 -486
  254. package/dist/chains/xlayer/eoa/query.d.ts +117 -0
  255. package/dist/chains/xlayer/eoa/query.js +285 -0
  256. package/dist/chains/xlayer/eoa/quote.d.ts +6 -0
  257. package/dist/chains/xlayer/eoa/quote.js +90 -0
  258. package/dist/chains/xlayer/eoa/types.d.ts +9 -959
  259. package/dist/chains/xlayer/eoa/types.js +9 -49
  260. package/dist/core/clients/blockrazor.js +1 -1
  261. package/dist/core/clients/merkle.js +1 -1
  262. package/dist/core/erc20/allowances.d.ts +104 -0
  263. package/dist/core/erc20/allowances.js +205 -0
  264. package/dist/core/erc20/approve.d.ts +141 -0
  265. package/dist/core/erc20/approve.js +325 -0
  266. package/dist/core/erc20/helpers.d.ts +20 -0
  267. package/dist/core/erc20/helpers.js +109 -0
  268. package/dist/core/erc20/index.d.ts +13 -0
  269. package/dist/core/erc20/index.js +12 -0
  270. package/dist/core/gas/bundle-gas.d.ts +6 -1
  271. package/dist/core/index.d.ts +1 -1
  272. package/dist/core/index.js +1 -1
  273. package/dist/core/quote/index.d.ts +1 -0
  274. package/dist/core/quote/index.js +1 -0
  275. package/dist/core/quote/quote-helpers.d.ts +78 -0
  276. package/dist/core/quote/quote-helpers.js +289 -0
  277. package/dist/core/quote/types.d.ts +1 -0
  278. package/dist/core/quote/types.js +1 -0
  279. package/dist/core/sign-context-helpers.d.ts +29 -0
  280. package/dist/core/sign-context-helpers.js +63 -0
  281. package/dist/domains/dex/direct-router-helpers.d.ts +16 -268
  282. package/dist/domains/dex/direct-router-helpers.js +16 -535
  283. package/dist/domains/dex/direct-router-types.d.ts +104 -0
  284. package/dist/domains/dex/direct-router-types.js +81 -0
  285. package/dist/domains/dex/direct-router-v2-buy.d.ts +2 -0
  286. package/dist/domains/dex/direct-router-v2-buy.js +249 -0
  287. package/dist/domains/dex/direct-router-v2-sell.d.ts +5 -0
  288. package/dist/domains/dex/direct-router-v2-sell.js +270 -0
  289. package/dist/domains/dex/direct-router-v2.d.ts +9 -0
  290. package/dist/domains/dex/direct-router-v2.js +9 -0
  291. package/dist/domains/dex/direct-router-v3.d.ts +17 -0
  292. package/dist/domains/dex/direct-router-v3.js +432 -0
  293. package/dist/domains/dex/direct-router.d.ts +11 -26
  294. package/dist/domains/dex/direct-router.js +10 -977
  295. package/dist/domains/dex/dyo-encode.d.ts +62 -0
  296. package/dist/domains/dex/dyo-encode.js +124 -0
  297. package/dist/domains/dex/profit.d.ts +24 -0
  298. package/dist/domains/dex/profit.js +86 -0
  299. package/dist/domains/dex/provider.d.ts +10 -0
  300. package/dist/domains/dex/provider.js +27 -0
  301. package/dist/domains/dex/quote.d.ts +7 -0
  302. package/dist/domains/dex/quote.js +52 -0
  303. package/dist/domains/dex/router.d.ts +56 -0
  304. package/dist/domains/dex/router.js +193 -0
  305. package/dist/domains/flap/portal-bundle/batch.d.ts +9 -0
  306. package/dist/domains/flap/portal-bundle/batch.js +193 -0
  307. package/dist/domains/flap/portal-bundle/create.d.ts +5 -0
  308. package/dist/domains/flap/portal-bundle/create.js +153 -0
  309. package/dist/domains/flap/portal-bundle/helpers.d.ts +32 -0
  310. package/dist/domains/flap/portal-bundle/helpers.js +50 -0
  311. package/dist/domains/flap/portal-bundle/index.d.ts +16 -0
  312. package/dist/domains/flap/portal-bundle/index.js +15 -0
  313. package/dist/domains/flap/portal-bundle/private.d.ts +5 -0
  314. package/dist/domains/flap/portal-bundle/private.js +198 -0
  315. package/dist/domains/flap/portal-bundle/types.d.ts +102 -0
  316. package/dist/domains/flap/portal-bundle/types.js +1 -0
  317. package/dist/domains/flap/portal-bundle-merkle/core-batch.d.ts +13 -0
  318. package/dist/domains/flap/portal-bundle-merkle/core-batch.js +376 -0
  319. package/dist/domains/flap/portal-bundle-merkle/core-helpers.d.ts +75 -7
  320. package/dist/domains/flap/portal-bundle-merkle/core-helpers.js +259 -20
  321. package/dist/domains/flap/portal-bundle-merkle/core.d.ts +2 -13
  322. package/dist/domains/flap/portal-bundle-merkle/core.js +12 -629
  323. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/constants.d.ts +70 -0
  324. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/constants.js +90 -0
  325. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/index.d.ts +12 -0
  326. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/index.js +11 -0
  327. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/main.d.ts +15 -0
  328. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/main.js +432 -0
  329. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/types.d.ts +113 -0
  330. package/dist/domains/flap/portal-bundle-merkle/create-to-dex/types.js +4 -0
  331. package/dist/domains/flap/portal-bundle-merkle/create-to-dex.d.ts +4 -127
  332. package/dist/domains/flap/portal-bundle-merkle/create-to-dex.js +4 -527
  333. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/constants.d.ts +42 -0
  334. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/constants.js +81 -0
  335. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/index.d.ts +12 -0
  336. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/index.js +11 -0
  337. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/main.d.ts +15 -0
  338. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/main.js +339 -0
  339. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/types.d.ts +72 -0
  340. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex/types.js +4 -0
  341. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex.d.ts +4 -85
  342. package/dist/domains/flap/portal-bundle-merkle/curve-to-dex.js +4 -425
  343. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/approve.d.ts +12 -0
  344. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/approve.js +102 -0
  345. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/buy.d.ts +5 -0
  346. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/buy.js +135 -0
  347. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/helpers.d.ts +52 -0
  348. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/helpers.js +267 -0
  349. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/index.d.ts +14 -0
  350. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/index.js +14 -0
  351. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/sell.d.ts +5 -0
  352. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy/sell.js +195 -0
  353. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy.d.ts +3 -24
  354. package/dist/domains/flap/portal-bundle-merkle/pancake-proxy.js +3 -700
  355. package/dist/domains/flap/portal-bundle-merkle/private/buy.d.ts +9 -0
  356. package/dist/domains/flap/portal-bundle-merkle/private/buy.js +188 -0
  357. package/dist/domains/flap/portal-bundle-merkle/private/helpers.d.ts +36 -0
  358. package/dist/domains/flap/portal-bundle-merkle/private/helpers.js +127 -0
  359. package/dist/domains/flap/portal-bundle-merkle/private/index.d.ts +12 -0
  360. package/dist/domains/flap/portal-bundle-merkle/private/index.js +12 -0
  361. package/dist/domains/flap/portal-bundle-merkle/private/sell.d.ts +9 -0
  362. package/dist/domains/flap/portal-bundle-merkle/private/sell.js +191 -0
  363. package/dist/domains/flap/portal-bundle-merkle/private.d.ts +5 -15
  364. package/dist/domains/flap/portal-bundle-merkle/private.js +5 -494
  365. package/dist/domains/flap/portal-bundle-merkle/swap-batch.js +3 -2
  366. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-chain.d.ts +4 -0
  367. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-chain.js +43 -0
  368. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-constants.d.ts +13 -0
  369. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-constants.js +21 -0
  370. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +11 -121
  371. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.js +11 -109
  372. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-multi-wallet.d.ts +20 -0
  373. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-multi-wallet.js +223 -0
  374. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-plan.d.ts +32 -0
  375. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-plan.js +66 -0
  376. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-profit.d.ts +22 -0
  377. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-profit.js +22 -0
  378. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-quote.d.ts +51 -0
  379. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-quote.js +149 -0
  380. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-types.d.ts +87 -0
  381. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-types.js +1 -0
  382. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first.js +5 -404
  383. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -1
  384. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.js +0 -7
  385. package/dist/domains/flap/portal-bundle-merkle/swap-planning.js +1 -1
  386. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.js +3 -2
  387. package/dist/domains/flap/portal-bundle-merkle/swap-single.js +3 -2
  388. package/dist/domains/flap/portal-bundle-merkle/utils/disperse.d.ts +2 -0
  389. package/dist/domains/flap/portal-bundle-merkle/utils/disperse.js +275 -0
  390. package/dist/domains/flap/portal-bundle-merkle/utils/index.d.ts +11 -0
  391. package/dist/domains/flap/portal-bundle-merkle/utils/index.js +11 -0
  392. package/dist/domains/flap/portal-bundle-merkle/utils/sweep.d.ts +9 -0
  393. package/dist/domains/flap/portal-bundle-merkle/utils/sweep.js +570 -0
  394. package/dist/domains/flap/portal-bundle-merkle/utils.d.ts +5 -8
  395. package/dist/domains/flap/portal-bundle-merkle/utils.js +5 -841
  396. package/dist/domains/flap/portal-bundle.d.ts +5 -117
  397. package/dist/domains/flap/portal-bundle.js +5 -587
  398. package/dist/domains/flap/portal.d.ts +13 -404
  399. package/dist/domains/flap/portal.js +12 -619
  400. package/dist/domains/flap/reader.d.ts +51 -0
  401. package/dist/domains/flap/reader.js +275 -0
  402. package/dist/domains/flap/types.d.ts +246 -0
  403. package/dist/domains/flap/types.js +104 -0
  404. package/dist/domains/flap/vault/constants.d.ts +220 -0
  405. package/dist/domains/flap/vault/constants.js +173 -0
  406. package/dist/domains/flap/vault/encode.d.ts +39 -0
  407. package/dist/domains/flap/vault/encode.js +135 -0
  408. package/dist/domains/flap/vault/index.d.ts +15 -0
  409. package/dist/domains/flap/vault/index.js +14 -0
  410. package/dist/domains/flap/vault/query.d.ts +40 -0
  411. package/dist/domains/flap/vault/query.js +104 -0
  412. package/dist/domains/flap/vault/types.d.ts +147 -0
  413. package/dist/domains/flap/vault/types.js +29 -0
  414. package/dist/domains/flap/vault.d.ts +3 -413
  415. package/dist/domains/flap/vault.js +3 -467
  416. package/dist/domains/flap/writer.d.ts +124 -0
  417. package/dist/domains/flap/writer.js +255 -0
  418. package/dist/domains/four/contracts/tm-bundle-batch.d.ts +35 -0
  419. package/dist/domains/four/contracts/tm-bundle-batch.js +286 -0
  420. package/dist/domains/four/contracts/tm-bundle-create.d.ts +2 -0
  421. package/dist/domains/four/contracts/tm-bundle-create.js +304 -0
  422. package/dist/domains/four/contracts/tm-bundle-helpers.d.ts +2 -1
  423. package/dist/domains/four/contracts/tm-bundle-helpers.js +3 -0
  424. package/dist/domains/four/contracts/tm-bundle-private.d.ts +36 -0
  425. package/dist/domains/four/contracts/tm-bundle-private.js +164 -0
  426. package/dist/domains/four/contracts/tm-bundle.d.ts +10 -71
  427. package/dist/domains/four/contracts/tm-bundle.js +9 -738
  428. package/dist/domains/lp-inspect/inspect-helpers.d.ts +25 -0
  429. package/dist/domains/lp-inspect/inspect-helpers.js +343 -0
  430. package/dist/domains/lp-inspect/inspect.d.ts +8 -0
  431. package/dist/domains/lp-inspect/inspect.js +332 -0
  432. package/dist/domains/lp-inspect/lp-inspect.d.ts +9 -37
  433. package/dist/domains/lp-inspect/lp-inspect.js +9 -775
  434. package/dist/domains/lp-inspect/registry.d.ts +43 -0
  435. package/dist/domains/lp-inspect/registry.js +127 -0
  436. package/dist/domains/merkle/index.d.ts +1 -1
  437. package/dist/exports/root-bundle-and-tooling.d.ts +9 -1
  438. package/dist/exports/root-bundle-and-tooling.js +8 -1
  439. package/dist/exports/root-foundations.d.ts +1 -1
  440. package/dist/exports/root-foundations.js +1 -1
  441. package/dist/exports/root-swap-dex-and-xlayer.d.ts +4 -4
  442. package/dist/exports/root-swap-dex-and-xlayer.js +4 -4
  443. package/dist/index.d.ts +1 -1
  444. package/dist/index.js +1 -1
  445. package/dist/utils/swap-helpers.js +1 -1
  446. package/package.json +1 -81
@@ -0,0 +1,30 @@
1
+ /**
2
+ * DAOaaS Portal 利润转账 (Phase 1: 直接转到收益地址)
3
+ */
4
+ import { Wallet, JsonRpcProvider } from 'ethers';
5
+ import { ENI_CHAIN_ID, ENI_RPC_URL, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
6
+ import { getProfitRecipient } from '../../../../core/constants/profit.js';
7
+ /**
8
+ * 构建利润转账交易
9
+ * ENI 不需要多跳,直接转到收益地址
10
+ */
11
+ export async function buildProfitTransfer(params) {
12
+ const { rpcUrl = ENI_RPC_URL, payerKey, profitAmount, gasPrice, nonce: explicitNonce, maxFeePerGas, maxPriorityFeePerGas, } = params;
13
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
14
+ const wallet = new Wallet(payerKey, provider);
15
+ const feeData = await provider.getFeeData();
16
+ const nonce = explicitNonce ?? (await wallet.getNonce('pending'));
17
+ const resolvedMaxFeePerGas = maxFeePerGas ?? gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
18
+ const resolvedMaxPriorityFeePerGas = maxPriorityFeePerGas ?? feeData.maxPriorityFeePerGas ?? 0n;
19
+ const signedTx = await wallet.signTransaction({
20
+ to: getProfitRecipient(),
21
+ value: profitAmount,
22
+ nonce,
23
+ chainId: ENI_CHAIN_ID,
24
+ type: 2,
25
+ maxFeePerGas: resolvedMaxFeePerGas,
26
+ maxPriorityFeePerGas: resolvedMaxPriorityFeePerGas,
27
+ gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
28
+ });
29
+ return { hash: '', signedTx, from: wallet.address, nonce };
30
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * DAOaaS Portal 直连 RPC 模式交易 — 前端统一提交入口 (ForSubmit)
3
+ *
4
+ * Phase 1: 各钱包独立签名,顺序广播到 ENI RPC
5
+ * 等同于 BSC EOA 普通模式 / Monad direct 模式
6
+ */
7
+ import type { DaoaasBuyParams, DaoaasSellParams, DaoaasBatchBuyParams, DaoaasBatchSellParams, DaoaasQuickSwapParams, DaoaasSubmitResult } from './types.js';
8
+ export declare function directBuyForSubmit(params: DaoaasBuyParams): Promise<DaoaasSubmitResult>;
9
+ export declare function directSellForSubmit(params: DaoaasSellParams): Promise<DaoaasSubmitResult>;
10
+ export declare function directBatchBuyForSubmit(params: DaoaasBatchBuyParams): Promise<DaoaasSubmitResult>;
11
+ export declare function directBatchSellForSubmit(params: DaoaasBatchSellParams): Promise<DaoaasSubmitResult>;
12
+ export declare function directQuickSwapForSubmit(params: DaoaasQuickSwapParams): Promise<DaoaasSubmitResult>;
@@ -0,0 +1,396 @@
1
+ /**
2
+ * DAOaaS Portal 直连 RPC 模式交易 — 前端统一提交入口 (ForSubmit)
3
+ *
4
+ * Phase 1: 各钱包独立签名,顺序广播到 ENI RPC
5
+ * 等同于 BSC EOA 普通模式 / Monad direct 模式
6
+ */
7
+ import { Wallet, JsonRpcProvider } from 'ethers';
8
+ import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
9
+ import { encodeBuyCall, encodeSellCall, applySlippage, DaoaasPortalQuery } from './portal.js';
10
+ import { getProfitRecipient, getProfitRateBps, calculateProfitAmount } from '../../../../core/constants/profit.js';
11
+ import { directBuy, directSell, directBatchBuy, directBatchSell } from './portal-direct-tx.js';
12
+ import { buildProfitTransfer } from './portal-direct-profit.js';
13
+ const NORMAL_PROFIT_BPS = getProfitRateBps('normal');
14
+ function formatSubmitMetadata(totalFlow, profitAmount) {
15
+ return {
16
+ profitAmount: profitAmount > 0n ? profitAmount.toString() : '0',
17
+ profitRecipient: getProfitRecipient(),
18
+ totalFlow: totalFlow.toString(),
19
+ };
20
+ }
21
+ function pickMaxAmountIndex(amounts) {
22
+ if (amounts.length === 0)
23
+ return 0;
24
+ let maxIndex = 0;
25
+ for (let i = 1; i < amounts.length; i++) {
26
+ if (amounts[i] > amounts[maxIndex]) {
27
+ maxIndex = i;
28
+ }
29
+ }
30
+ return maxIndex;
31
+ }
32
+ async function buildRevenueTail(params) {
33
+ return buildProfitTransfer({
34
+ rpcUrl: params.rpcUrl,
35
+ payerKey: params.payerKey,
36
+ profitAmount: params.profitAmount,
37
+ nonce: params.nonce,
38
+ maxFeePerGas: params.maxFeePerGas,
39
+ maxPriorityFeePerGas: params.maxPriorityFeePerGas,
40
+ });
41
+ }
42
+ export async function directBuyForSubmit(params) {
43
+ const rpcUrl = params.rpcUrl ?? ENI_RPC_URL;
44
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
45
+ const feeData = await provider.getFeeData();
46
+ const maxFeePerGas = params.gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
47
+ const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
48
+ const tradeTx = await directBuy({ ...params, rpcUrl, gasPrice: maxFeePerGas });
49
+ const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
50
+ const profitAmount = calculateProfitAmount(params.amount, NORMAL_PROFIT_BPS) + profitTxGasCost;
51
+ const signedTransactions = [tradeTx.signedTx];
52
+ let totalGasCost = 300000n * maxFeePerGas;
53
+ if (profitAmount > 0n) {
54
+ const profitTx = await buildRevenueTail({
55
+ rpcUrl,
56
+ payerKey: params.privateKey,
57
+ nonce: tradeTx.nonce + 1,
58
+ profitAmount,
59
+ maxFeePerGas,
60
+ maxPriorityFeePerGas,
61
+ });
62
+ signedTransactions.push(profitTx.signedTx);
63
+ totalGasCost += NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
64
+ }
65
+ return {
66
+ transactions: [tradeTx],
67
+ signedTransactions,
68
+ totalGasCost,
69
+ metadata: formatSubmitMetadata(params.amount, profitAmount),
70
+ };
71
+ }
72
+ export async function directSellForSubmit(params) {
73
+ const rpcUrl = params.rpcUrl ?? ENI_RPC_URL;
74
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
75
+ const query = new DaoaasPortalQuery({ rpcUrl });
76
+ const feeData = await provider.getFeeData();
77
+ const maxFeePerGas = params.gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
78
+ const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
79
+ const estimatedOut = await query.previewSell(params.token, params.tokenAmount);
80
+ const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
81
+ const profitAmount = calculateProfitAmount(estimatedOut, NORMAL_PROFIT_BPS) + profitTxGasCost;
82
+ const tradeTx = await directSell({
83
+ ...params,
84
+ rpcUrl,
85
+ gasPrice: maxFeePerGas,
86
+ });
87
+ const signedTransactions = [tradeTx.signedTx];
88
+ let totalGasCost = 300000n * maxFeePerGas;
89
+ if (profitAmount > 0n) {
90
+ const profitTx = await buildRevenueTail({
91
+ rpcUrl,
92
+ payerKey: params.privateKey,
93
+ nonce: tradeTx.nonce + 1,
94
+ profitAmount,
95
+ maxFeePerGas,
96
+ maxPriorityFeePerGas,
97
+ });
98
+ signedTransactions.push(profitTx.signedTx);
99
+ totalGasCost += NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
100
+ }
101
+ return {
102
+ transactions: [tradeTx],
103
+ signedTransactions,
104
+ totalGasCost,
105
+ metadata: formatSubmitMetadata(estimatedOut, profitAmount),
106
+ };
107
+ }
108
+ export async function directBatchBuyForSubmit(params) {
109
+ const { rpcUrl = ENI_RPC_URL, token, privateKeys: rawKeys, amounts: rawAmounts, slippageBps = 100, gasPrice, } = params;
110
+ if (rawKeys.length !== rawAmounts.length) {
111
+ throw new Error(`privateKeys.length (${rawKeys.length}) !== amounts.length (${rawAmounts.length})`);
112
+ }
113
+ if (rawKeys.length === 0) {
114
+ throw new Error('privateKeys 不能为空');
115
+ }
116
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
117
+ const query = new DaoaasPortalQuery({ rpcUrl });
118
+ const feeData = await provider.getFeeData();
119
+ const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
120
+ const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
121
+ const swapGasLimit = 300000n;
122
+ const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
123
+ const totalFlowRaw = rawAmounts.reduce((sum, amount) => sum + amount, 0n);
124
+ const profitAmountFull = calculateProfitAmount(totalFlowRaw, NORMAL_PROFIT_BPS) + profitTxGasCost;
125
+ const maxPayerIdx = pickMaxAmountIndex(rawAmounts);
126
+ const wallets = rawKeys.map((pk) => new Wallet(pk, provider));
127
+ const balances = await Promise.all(wallets.map((w) => provider.getBalance(w.address)));
128
+ let privateKeys = rawKeys;
129
+ let amounts = rawAmounts;
130
+ const validIndices = [];
131
+ for (let i = 0; i < rawKeys.length; i++) {
132
+ let required = rawAmounts[i] + swapGasLimit * maxFeePerGas;
133
+ if (i === maxPayerIdx)
134
+ required += profitAmountFull + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
135
+ if (balances[i] < required) {
136
+ continue;
137
+ }
138
+ validIndices.push(i);
139
+ }
140
+ if (validIndices.length === 0) {
141
+ throw new Error('所有钱包余额不足(含 swap + gas),无法执行 DAOAAS 买入');
142
+ }
143
+ if (validIndices.length < rawKeys.length) {
144
+ privateKeys = validIndices.map((i) => rawKeys[i]);
145
+ amounts = validIndices.map((i) => rawAmounts[i]);
146
+ }
147
+ const transactions = [];
148
+ const totalFlow = amounts.reduce((sum, amount) => sum + amount, 0n);
149
+ const isBatch = privateKeys.length > 1;
150
+ for (let i = 0; i < privateKeys.length; i++) {
151
+ const wallet = new Wallet(privateKeys[i], provider);
152
+ const preview = await query.previewBuy(token, amounts[i]);
153
+ const effectiveSlippage = isBatch ? Math.min(9500, slippageBps + i * 2000) : slippageBps;
154
+ const minOut = applySlippage(preview, effectiveSlippage);
155
+ const calldata = encodeBuyCall(token, minOut);
156
+ const nonce = await wallet.getNonce('pending');
157
+ const signedTx = await wallet.signTransaction({
158
+ to: DAOAAS_PORTAL,
159
+ value: amounts[i],
160
+ data: calldata,
161
+ nonce,
162
+ chainId: ENI_CHAIN_ID,
163
+ type: 2,
164
+ maxFeePerGas,
165
+ maxPriorityFeePerGas,
166
+ gasLimit: swapGasLimit,
167
+ });
168
+ transactions.push({ hash: '', signedTx, from: wallet.address, nonce });
169
+ }
170
+ const profitAmount = calculateProfitAmount(totalFlow, NORMAL_PROFIT_BPS) + profitTxGasCost;
171
+ const payerIndex = pickMaxAmountIndex(amounts);
172
+ const profitTx = await buildRevenueTail({
173
+ rpcUrl,
174
+ payerKey: privateKeys[payerIndex],
175
+ nonce: transactions[payerIndex].nonce + 1,
176
+ profitAmount,
177
+ maxFeePerGas,
178
+ maxPriorityFeePerGas,
179
+ });
180
+ return {
181
+ transactions,
182
+ signedTransactions: [...transactions.map((tx) => tx.signedTx), profitTx.signedTx],
183
+ totalGasCost: swapGasLimit * maxFeePerGas * BigInt(transactions.length) + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
184
+ metadata: formatSubmitMetadata(totalFlow, profitAmount),
185
+ };
186
+ }
187
+ export async function directBatchSellForSubmit(params) {
188
+ const { rpcUrl = ENI_RPC_URL, token, privateKeys, tokenAmounts, slippageBps = 100, gasPrice } = params;
189
+ if (privateKeys.length !== tokenAmounts.length) {
190
+ throw new Error(`privateKeys.length (${privateKeys.length}) !== tokenAmounts.length (${tokenAmounts.length})`);
191
+ }
192
+ if (privateKeys.length === 0) {
193
+ throw new Error('privateKeys 不能为空');
194
+ }
195
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
196
+ const query = new DaoaasPortalQuery({ rpcUrl });
197
+ const feeData = await provider.getFeeData();
198
+ const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
199
+ const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
200
+ const swapGasLimit = 300000n;
201
+ const wallets = privateKeys.map((pk) => new Wallet(pk, provider));
202
+ const transactions = [];
203
+ const estimatedOuts = [];
204
+ const isBatch = privateKeys.length > 1;
205
+ for (let i = 0; i < privateKeys.length; i++) {
206
+ const wallet = wallets[i];
207
+ const preview = await query.previewSell(token, tokenAmounts[i]);
208
+ estimatedOuts.push(preview);
209
+ const effectiveSlippage = isBatch ? Math.min(9500, slippageBps + i * 2000) : slippageBps;
210
+ const minOut = applySlippage(preview, effectiveSlippage);
211
+ const calldata = encodeSellCall(token, tokenAmounts[i], minOut);
212
+ const nonce = await wallet.getNonce('pending');
213
+ const signedTx = await wallet.signTransaction({
214
+ to: DAOAAS_PORTAL,
215
+ data: calldata,
216
+ nonce,
217
+ chainId: ENI_CHAIN_ID,
218
+ type: 2,
219
+ maxFeePerGas,
220
+ maxPriorityFeePerGas,
221
+ gasLimit: swapGasLimit,
222
+ });
223
+ transactions.push({ hash: '', signedTx, from: wallet.address, nonce });
224
+ }
225
+ const totalFlow = estimatedOuts.reduce((sum, amount) => sum + amount, 0n);
226
+ const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
227
+ const profitAmount = calculateProfitAmount(totalFlow, NORMAL_PROFIT_BPS) + profitTxGasCost;
228
+ const payerIndex = pickMaxAmountIndex(estimatedOuts);
229
+ const profitTx = await buildRevenueTail({
230
+ rpcUrl,
231
+ payerKey: privateKeys[payerIndex],
232
+ nonce: transactions[payerIndex].nonce + 1,
233
+ profitAmount,
234
+ maxFeePerGas,
235
+ maxPriorityFeePerGas,
236
+ });
237
+ return {
238
+ transactions,
239
+ signedTransactions: [...transactions.map((tx) => tx.signedTx), profitTx.signedTx],
240
+ totalGasCost: 300000n * maxFeePerGas * BigInt(transactions.length) + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
241
+ metadata: formatSubmitMetadata(totalFlow, profitAmount),
242
+ };
243
+ }
244
+ export async function directQuickSwapForSubmit(params) {
245
+ const { rpcUrl = ENI_RPC_URL, token, slippageBps = 100 } = params;
246
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
247
+ const feeData = await provider.getFeeData();
248
+ const maxFeePerGas = params.gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
249
+ const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
250
+ // 1) 卖出:所有 seller 卖代币获得 EGAS
251
+ const sellResult = await directBatchSell({
252
+ rpcUrl,
253
+ token,
254
+ privateKeys: params.sellerKeys,
255
+ tokenAmounts: params.sellAmounts,
256
+ slippageBps,
257
+ gasPrice: maxFeePerGas,
258
+ });
259
+ const distributeTxs = [];
260
+ const primarySellerKey = params.sellerKeys[0];
261
+ if (!primarySellerKey) {
262
+ throw new Error('quickSwap 至少需要一个 seller');
263
+ }
264
+ const primarySellerWallet = new Wallet(primarySellerKey, provider);
265
+ const primarySellerAddress = primarySellerWallet.address.toLowerCase();
266
+ // 2a) 归集:其他 seller 将 EGAS 转到 seller[0](多卖家场景)
267
+ if (params.sellerKeys.length > 1) {
268
+ for (let i = 1; i < params.sellerKeys.length; i++) {
269
+ const otherWallet = new Wallet(params.sellerKeys[i], provider);
270
+ const otherSellTxs = sellResult.transactions.filter((tx) => tx.from.toLowerCase() === otherWallet.address.toLowerCase());
271
+ const otherNextNonce = otherSellTxs.length > 0
272
+ ? Math.max(...otherSellTxs.map((tx) => tx.nonce)) + 1
273
+ : await otherWallet.getNonce('pending');
274
+ const otherBalance = await provider.getBalance(otherWallet.address);
275
+ const reserveGas = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
276
+ const transferable = otherBalance - reserveGas;
277
+ if (transferable <= 0n)
278
+ continue;
279
+ const signedTx = await otherWallet.signTransaction({
280
+ to: primarySellerWallet.address,
281
+ value: transferable,
282
+ nonce: otherNextNonce,
283
+ chainId: ENI_CHAIN_ID,
284
+ type: 2,
285
+ maxFeePerGas,
286
+ maxPriorityFeePerGas,
287
+ gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
288
+ });
289
+ distributeTxs.push({ hash: '', signedTx, from: otherWallet.address, nonce: otherNextNonce });
290
+ }
291
+ }
292
+ // 2b) 分发:seller[0] 将 EGAS 转给每个 buyer(支持多跳)
293
+ const hopCount = params.hopCount ?? 0;
294
+ const distributeHopWallets = [];
295
+ if (params.buyerKeys.length > 0) {
296
+ const primarySellTxs = sellResult.transactions.filter((tx) => tx.from.toLowerCase() === primarySellerAddress);
297
+ let primaryNextNonce = primarySellTxs.length > 0
298
+ ? Math.max(...primarySellTxs.map((tx) => tx.nonce)) + 1
299
+ : await primarySellerWallet.getNonce('pending');
300
+ const gasForBuy = 300000n * maxFeePerGas;
301
+ const hopGasFee = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
302
+ const totalFlow = params.buyAmounts.reduce((sum, a) => sum + a, 0n);
303
+ const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
304
+ const profitAmount = calculateProfitAmount(totalFlow, NORMAL_PROFIT_BPS) + profitTxGasCost;
305
+ const profitGasPerBuyer = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
306
+ for (let i = 0; i < params.buyerKeys.length; i++) {
307
+ const buyerAddress = new Wallet(params.buyerKeys[i]).address;
308
+ const transferAmount = params.buyAmounts[i];
309
+ if (transferAmount <= 0n)
310
+ continue;
311
+ const isMaxBuyer = i === pickMaxAmountIndex(params.buyAmounts);
312
+ const extraForProfit = isMaxBuyer ? profitAmount + profitGasPerBuyer : 0n;
313
+ const baseTransfer = transferAmount + gasForBuy + extraForProfit;
314
+ if (hopCount <= 0) {
315
+ const signedTx = await primarySellerWallet.signTransaction({
316
+ to: buyerAddress,
317
+ value: baseTransfer,
318
+ nonce: primaryNextNonce,
319
+ chainId: ENI_CHAIN_ID,
320
+ type: 2,
321
+ maxFeePerGas,
322
+ maxPriorityFeePerGas,
323
+ gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
324
+ });
325
+ distributeTxs.push({ hash: '', signedTx, from: primarySellerWallet.address, nonce: primaryNextNonce });
326
+ primaryNextNonce++;
327
+ }
328
+ else {
329
+ const hops = [];
330
+ for (let j = 0; j < hopCount; j++) {
331
+ const w = Wallet.createRandom();
332
+ hops.push({ address: w.address, privateKey: w.privateKey });
333
+ }
334
+ distributeHopWallets.push(hops);
335
+ const fullChain = [primarySellerWallet, ...hops.map((h) => new Wallet(h.privateKey))];
336
+ const addresses = [...fullChain.map((w) => w.address), buyerAddress];
337
+ for (let j = 0; j < addresses.length - 1; j++) {
338
+ const fromWallet = fullChain[j];
339
+ const toAddress = addresses[j + 1];
340
+ const txNonce = j === 0 ? primaryNextNonce++ : 0;
341
+ const remainingHops = addresses.length - 2 - j;
342
+ const additionalGas = hopGasFee * BigInt(remainingHops);
343
+ const value = baseTransfer + additionalGas;
344
+ const signedTx = await fromWallet.signTransaction({
345
+ to: toAddress,
346
+ value,
347
+ nonce: txNonce,
348
+ chainId: ENI_CHAIN_ID,
349
+ type: 2,
350
+ maxFeePerGas,
351
+ maxPriorityFeePerGas,
352
+ gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
353
+ });
354
+ distributeTxs.push({ hash: '', signedTx, from: fromWallet.address, nonce: txNonce });
355
+ }
356
+ }
357
+ }
358
+ }
359
+ // 3) 买入:buyer 用收到的 EGAS 买代币
360
+ const buyResult = await directBatchBuy({
361
+ rpcUrl,
362
+ token,
363
+ privateKeys: params.buyerKeys,
364
+ amounts: params.buyAmounts,
365
+ slippageBps,
366
+ gasPrice: maxFeePerGas,
367
+ });
368
+ const allTxs = [...sellResult.transactions, ...distributeTxs, ...buyResult.transactions];
369
+ // 4) 利润:从最大买方钱包扣除利润(含利润转账 Gas)
370
+ const totalFlow = params.buyAmounts.reduce((sum, amount) => sum + amount, 0n);
371
+ const profitTxGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas;
372
+ const profitAmount = calculateProfitAmount(totalFlow, NORMAL_PROFIT_BPS) + profitTxGasCost;
373
+ const payerIndex = pickMaxAmountIndex(params.buyAmounts);
374
+ const payerKey = params.buyerKeys[payerIndex] || primarySellerKey;
375
+ const payerAddress = new Wallet(payerKey).address.toLowerCase();
376
+ const payerTxs = allTxs.filter((tx) => tx.from.toLowerCase() === payerAddress);
377
+ const payerNonce = payerTxs.length > 0
378
+ ? Math.max(...payerTxs.map((tx) => tx.nonce)) + 1
379
+ : await new Wallet(payerKey, provider).getNonce('pending');
380
+ const profitTx = await buildRevenueTail({
381
+ rpcUrl,
382
+ payerKey,
383
+ nonce: payerNonce,
384
+ profitAmount,
385
+ maxFeePerGas,
386
+ maxPriorityFeePerGas,
387
+ });
388
+ const distributeGasCost = NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas * BigInt(distributeTxs.length);
389
+ return {
390
+ transactions: allTxs,
391
+ signedTransactions: [...allTxs.map((tx) => tx.signedTx), profitTx.signedTx],
392
+ totalGasCost: sellResult.totalGasCost + distributeGasCost + buyResult.totalGasCost + NATIVE_TRANSFER_GAS_LIMIT * maxFeePerGas,
393
+ metadata: formatSubmitMetadata(totalFlow, profitAmount),
394
+ ...(distributeHopWallets.length > 0 ? { hopWallets: distributeHopWallets } : {}),
395
+ };
396
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * DAOaaS Portal 直连 RPC 模式交易(单笔 / 批量)
3
+ *
4
+ * Phase 1: 各钱包独立签名,顺序广播到 ENI RPC
5
+ * 等同于 BSC EOA 普通模式 / Monad direct 模式
6
+ */
7
+ import type { DaoaasBuyParams, DaoaasSellParams, DaoaasBatchBuyParams, DaoaasBatchSellParams, DaoaasQuickSwapParams, DaoaasTxResult, DaoaasBatchResult } from './types.js';
8
+ /** 单钱包买入 */
9
+ export declare function directBuy(params: DaoaasBuyParams): Promise<DaoaasTxResult>;
10
+ /** 单钱包卖出 */
11
+ export declare function directSell(params: DaoaasSellParams): Promise<DaoaasTxResult>;
12
+ /** 批量买入 — 各钱包独立签名,返回签名交易数组 */
13
+ export declare function directBatchBuy(params: DaoaasBatchBuyParams): Promise<DaoaasBatchResult>;
14
+ /** 批量卖出 — 各钱包独立签名 */
15
+ export declare function directBatchSell(params: DaoaasBatchSellParams): Promise<DaoaasBatchResult>;
16
+ /**
17
+ * Direct 模式换手 — 先卖后买,非原子
18
+ * Phase 1 临时方案,有时间差风险
19
+ */
20
+ export declare function directQuickSwap(params: DaoaasQuickSwapParams): Promise<DaoaasBatchResult>;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * DAOaaS Portal 直连 RPC 模式交易(单笔 / 批量)
3
+ *
4
+ * Phase 1: 各钱包独立签名,顺序广播到 ENI RPC
5
+ * 等同于 BSC EOA 普通模式 / Monad direct 模式
6
+ */
7
+ import { Wallet, JsonRpcProvider } from 'ethers';
8
+ import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL } from '../../constants.js';
9
+ import { encodeBuyCall, encodeSellCall, applySlippage, DaoaasPortalQuery } from './portal.js';
10
+ // ============================================================================
11
+ // 单笔交易
12
+ // ============================================================================
13
+ /** 单钱包买入 */
14
+ export async function directBuy(params) {
15
+ const provider = new JsonRpcProvider(params.rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });
16
+ const wallet = new Wallet(params.privateKey, provider);
17
+ const calldata = encodeBuyCall(params.token, params.amountOutMin ?? 0n);
18
+ const nonce = params.nonce ?? (await wallet.getNonce('pending'));
19
+ const feeData = await provider.getFeeData();
20
+ const tx = await wallet.signTransaction({
21
+ to: DAOAAS_PORTAL,
22
+ value: params.amount,
23
+ data: calldata,
24
+ nonce,
25
+ chainId: ENI_CHAIN_ID,
26
+ type: 2,
27
+ maxFeePerGas: params.gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n,
28
+ maxPriorityFeePerGas: feeData.maxPriorityFeePerGas ?? 0n,
29
+ gasLimit: 300000n,
30
+ });
31
+ return {
32
+ hash: '',
33
+ signedTx: tx,
34
+ from: wallet.address,
35
+ nonce,
36
+ };
37
+ }
38
+ /** 单钱包卖出 */
39
+ export async function directSell(params) {
40
+ const provider = new JsonRpcProvider(params.rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });
41
+ const wallet = new Wallet(params.privateKey, provider);
42
+ const calldata = encodeSellCall(params.token, params.tokenAmount, params.amountOutMin ?? 0n);
43
+ const nonce = params.nonce ?? (await wallet.getNonce('pending'));
44
+ const feeData = await provider.getFeeData();
45
+ const tx = await wallet.signTransaction({
46
+ to: DAOAAS_PORTAL,
47
+ data: calldata,
48
+ nonce,
49
+ chainId: ENI_CHAIN_ID,
50
+ type: 2,
51
+ maxFeePerGas: params.gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n,
52
+ maxPriorityFeePerGas: feeData.maxPriorityFeePerGas ?? 0n,
53
+ gasLimit: 300000n,
54
+ });
55
+ return {
56
+ hash: '',
57
+ signedTx: tx,
58
+ from: wallet.address,
59
+ nonce,
60
+ };
61
+ }
62
+ // ============================================================================
63
+ // 批量交易 (Direct 模式, Phase 1)
64
+ // ============================================================================
65
+ /** 批量买入 — 各钱包独立签名,返回签名交易数组 */
66
+ export async function directBatchBuy(params) {
67
+ const { rpcUrl = ENI_RPC_URL, token, privateKeys, amounts, slippageBps = 100, gasPrice } = params;
68
+ if (privateKeys.length !== amounts.length) {
69
+ throw new Error(`privateKeys.length (${privateKeys.length}) !== amounts.length (${amounts.length})`);
70
+ }
71
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
72
+ const query = new DaoaasPortalQuery({ rpcUrl });
73
+ const feeData = await provider.getFeeData();
74
+ const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
75
+ const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
76
+ const transactions = [];
77
+ for (let i = 0; i < privateKeys.length; i++) {
78
+ const wallet = new Wallet(privateKeys[i], provider);
79
+ const preview = await query.previewBuy(token, amounts[i]);
80
+ const minOut = applySlippage(preview, slippageBps);
81
+ const calldata = encodeBuyCall(token, minOut);
82
+ const nonce = await wallet.getNonce('pending');
83
+ const signedTx = await wallet.signTransaction({
84
+ to: DAOAAS_PORTAL,
85
+ value: amounts[i],
86
+ data: calldata,
87
+ nonce,
88
+ chainId: ENI_CHAIN_ID,
89
+ type: 2,
90
+ maxFeePerGas,
91
+ maxPriorityFeePerGas,
92
+ gasLimit: 300000n,
93
+ });
94
+ transactions.push({ hash: '', signedTx, from: wallet.address, nonce });
95
+ }
96
+ return {
97
+ transactions,
98
+ totalGasCost: 300000n * maxFeePerGas * BigInt(transactions.length),
99
+ };
100
+ }
101
+ /** 批量卖出 — 各钱包独立签名 */
102
+ export async function directBatchSell(params) {
103
+ const { rpcUrl = ENI_RPC_URL, token, privateKeys, tokenAmounts, slippageBps = 100, gasPrice } = params;
104
+ if (privateKeys.length !== tokenAmounts.length) {
105
+ throw new Error(`privateKeys.length (${privateKeys.length}) !== tokenAmounts.length (${tokenAmounts.length})`);
106
+ }
107
+ const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
108
+ const query = new DaoaasPortalQuery({ rpcUrl });
109
+ const feeData = await provider.getFeeData();
110
+ const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
111
+ const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
112
+ const transactions = [];
113
+ for (let i = 0; i < privateKeys.length; i++) {
114
+ const wallet = new Wallet(privateKeys[i], provider);
115
+ const preview = await query.previewSell(token, tokenAmounts[i]);
116
+ const minOut = applySlippage(preview, slippageBps);
117
+ const calldata = encodeSellCall(token, tokenAmounts[i], minOut);
118
+ const nonce = await wallet.getNonce('pending');
119
+ const signedTx = await wallet.signTransaction({
120
+ to: DAOAAS_PORTAL,
121
+ data: calldata,
122
+ nonce,
123
+ chainId: ENI_CHAIN_ID,
124
+ type: 2,
125
+ maxFeePerGas,
126
+ maxPriorityFeePerGas,
127
+ gasLimit: 300000n,
128
+ });
129
+ transactions.push({ hash: '', signedTx, from: wallet.address, nonce });
130
+ }
131
+ return {
132
+ transactions,
133
+ totalGasCost: 300000n * maxFeePerGas * BigInt(transactions.length),
134
+ };
135
+ }
136
+ // ============================================================================
137
+ // 换手 (Direct 模式, Phase 1 — 非原子)
138
+ // ============================================================================
139
+ /**
140
+ * Direct 模式换手 — 先卖后买,非原子
141
+ * Phase 1 临时方案,有时间差风险
142
+ */
143
+ export async function directQuickSwap(params) {
144
+ const { rpcUrl = ENI_RPC_URL, token, slippageBps = 100 } = params;
145
+ const sellResult = await directBatchSell({
146
+ rpcUrl,
147
+ token,
148
+ privateKeys: params.sellerKeys,
149
+ tokenAmounts: params.sellAmounts,
150
+ slippageBps,
151
+ gasPrice: params.gasPrice,
152
+ });
153
+ const buyResult = await directBatchBuy({
154
+ rpcUrl,
155
+ token,
156
+ privateKeys: params.buyerKeys,
157
+ amounts: params.buyAmounts,
158
+ slippageBps,
159
+ gasPrice: params.gasPrice,
160
+ });
161
+ return {
162
+ transactions: [...sellResult.transactions, ...buyResult.transactions],
163
+ totalGasCost: sellResult.totalGasCost + buyResult.totalGasCost,
164
+ };
165
+ }
@@ -4,35 +4,6 @@
4
4
  * Phase 1: 各钱包独立签名,顺序广播到 ENI RPC
5
5
  * 等同于 BSC EOA 普通模式 / Monad direct 模式
6
6
  */
7
- import type { DaoaasBuyParams, DaoaasSellParams, DaoaasBatchBuyParams, DaoaasBatchSellParams, DaoaasQuickSwapParams, DaoaasTxResult, DaoaasBatchResult, DaoaasSubmitResult } from './types.js';
8
- /** 单钱包买入 */
9
- export declare function directBuy(params: DaoaasBuyParams): Promise<DaoaasTxResult>;
10
- /** 单钱包卖出 */
11
- export declare function directSell(params: DaoaasSellParams): Promise<DaoaasTxResult>;
12
- /** 批量买入 — 各钱包独立签名,返回签名交易数组 */
13
- export declare function directBatchBuy(params: DaoaasBatchBuyParams): Promise<DaoaasBatchResult>;
14
- /** 批量卖出 — 各钱包独立签名 */
15
- export declare function directBatchSell(params: DaoaasBatchSellParams): Promise<DaoaasBatchResult>;
16
- /**
17
- * Direct 模式换手 — 先卖后买,非原子
18
- * Phase 1 临时方案,有时间差风险
19
- */
20
- export declare function directQuickSwap(params: DaoaasQuickSwapParams): Promise<DaoaasBatchResult>;
21
- export declare function directBuyForSubmit(params: DaoaasBuyParams): Promise<DaoaasSubmitResult>;
22
- export declare function directSellForSubmit(params: DaoaasSellParams): Promise<DaoaasSubmitResult>;
23
- export declare function directBatchBuyForSubmit(params: DaoaasBatchBuyParams): Promise<DaoaasSubmitResult>;
24
- export declare function directBatchSellForSubmit(params: DaoaasBatchSellParams): Promise<DaoaasSubmitResult>;
25
- export declare function directQuickSwapForSubmit(params: DaoaasQuickSwapParams): Promise<DaoaasSubmitResult>;
26
- /**
27
- * 构建利润转账交易
28
- * ENI 不需要多跳,直接转到收益地址
29
- */
30
- export declare function buildProfitTransfer(params: {
31
- rpcUrl?: string;
32
- payerKey: string;
33
- profitAmount: bigint;
34
- gasPrice?: bigint;
35
- nonce?: number;
36
- maxFeePerGas?: bigint;
37
- maxPriorityFeePerGas?: bigint;
38
- }): Promise<DaoaasTxResult>;
7
+ export { directBuy, directSell, directBatchBuy, directBatchSell, directQuickSwap } from './portal-direct-tx.js';
8
+ export { directBuyForSubmit, directSellForSubmit, directBatchBuyForSubmit, directBatchSellForSubmit, directQuickSwapForSubmit, } from './portal-direct-submit.js';
9
+ export { buildProfitTransfer } from './portal-direct-profit.js';