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
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * BSC - PancakeSwap 平台模块
3
3
  */
4
- export { pancakeBundleSwapMerkle, pancakeBatchSwapMerkle, pancakeQuickBatchSwapMerkle, pancakeCrossSwapMerkle, type PancakeSwapSignConfig, type PancakeSwapConfig, type PancakeBundleSwapSignParams, type PancakeBundleSwapParams, type PancakeSwapResult, type PancakeBatchSwapSignParams, type PancakeBatchSwapResult, type PancakeQuickBatchSwapParams, type PancakeQuickBatchSwapResult, type PancakeCrossSwapParams, type PancakeCrossSwapResult, type SwapRouteType, type RouteParams, type V2RouteParams, type V3SingleRouteParams, type V3MultiRouteParams, type UserType, } from './bundle-swap.js';
5
- export { pancakeBundleBuyFirstMerkle, type PancakeBuyFirstSignConfig, type PancakeBuyFirstConfig, type PancakeBundleBuyFirstSignParams, type PancakeBundleBuyFirstParams, type PancakeBuyFirstResult, } from './bundle-buy-first.js';
4
+ export { pancakeBundleSwapMerkle, pancakeBatchSwapMerkle, pancakeQuickBatchSwapMerkle, pancakeCrossSwapMerkle, type PancakeBatchSwapSignParams, type PancakeBatchSwapResult, type PancakeQuickBatchSwapParams, type PancakeQuickBatchSwapResult, type PancakeCrossSwapParams, type PancakeCrossSwapResult, } from './bundle-swap.js';
5
+ export type { PancakeSwapSignConfig, PancakeSwapConfig, PancakeBundleSwapSignParams, PancakeBundleSwapParams, PancakeSwapResult, SwapRouteType, RouteParams, V2RouteParams, V3SingleRouteParams, V3MultiRouteParams, UserType, } from './bundle-swap-helpers.js';
6
+ export { pancakeBundleBuyFirstMerkle } from './bundle-buy-first.js';
7
+ export type { PancakeBuyFirstSignConfig, PancakeBuyFirstConfig, PancakeBundleBuyFirstSignParams, PancakeBundleBuyFirstParams, PancakeBuyFirstResult, } from './bundle-buy-first-helpers.js';
@@ -1,7 +1,5 @@
1
1
  /**
2
2
  * BSC - PancakeSwap 平台模块
3
3
  */
4
- // Bundle Swap
5
4
  export { pancakeBundleSwapMerkle, pancakeBatchSwapMerkle, pancakeQuickBatchSwapMerkle, pancakeCrossSwapMerkle, } from './bundle-swap.js';
6
- // Bundle Buy First
7
- export { pancakeBundleBuyFirstMerkle, } from './bundle-buy-first.js';
5
+ export { pancakeBundleBuyFirstMerkle } from './bundle-buy-first.js';
@@ -6,7 +6,7 @@
6
6
  * - 查询: 通过 projectId / token 地址获取信息
7
7
  */
8
8
  import { JsonRpcProvider } from 'ethers';
9
- import type { IroCreateParams, IroCreateProjectResult, IroQueryConfig, IroFactoryTokenInfo } from './types.js';
9
+ import type { IroCreateParams, IroCreateProjectResult, IroQueryConfig, IroFactoryTokenInfo, IroCreateProjectParams } from './types.js';
10
10
  export declare class IroFactoryQuery {
11
11
  private provider;
12
12
  private factory;
@@ -31,7 +31,7 @@ export declare class IroFactoryQuery {
31
31
  /**
32
32
  * 编码 createProject calldata
33
33
  */
34
- export declare function encodeCreateProjectCall(params: import('./types.js').IroCreateProjectParams): string;
34
+ export declare function encodeCreateProjectCall(params: IroCreateProjectParams): string;
35
35
  /**
36
36
  * 创建 IRO 项目 — 签名交易
37
37
  *
@@ -7,12 +7,14 @@
7
7
  */
8
8
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
9
9
  import { BSC_CHAIN_ID, BSC_RPC_URL } from '../../constants.js';
10
- import { IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, CREATE_PROJECT_GAS_LIMIT, } from './constants.js';
10
+ import { IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, CREATE_PROJECT_GAS_LIMIT } from './constants.js';
11
11
  const factoryIface = new Interface(IRO_FACTORY_ABI);
12
12
  // ============================================================================
13
13
  // 只读查询
14
14
  // ============================================================================
15
15
  export class IroFactoryQuery {
16
+ provider;
17
+ factory;
16
18
  constructor(config = {}) {
17
19
  const rpcUrl = config.rpcUrl ?? BSC_RPC_URL;
18
20
  const chainId = config.chainId ?? BSC_CHAIN_ID;
@@ -8,9 +8,9 @@
8
8
  */
9
9
  export type { WhiteListQuota, IroCreateProjectParams, IroFactoryTokenInfo, IroSubscribeParams, IroPledgeParams, IroTokenPrice, IroPoolRemovePledgeParams, IroPoolExtractParams, IroPoolTransferAwardsParams, IroTokenInfo, IroTxResult, IroCreateProjectResult, IroQueryConfig, IroCreateParams, } from './types.js';
10
10
  export { IRO_FACTORY_ADDRESS, IROSWAP_V2_ROUTER, IROSWAP_V2_FACTORY, USDT_BSC, IRO_FACTORY_ABI, IRO_TOKEN_ABI, IRO_POOL_ABI, CREATE_PROJECT_GAS_LIMIT, SUBSCRIBE_GAS_LIMIT, POOL_OPERATION_GAS_LIMIT, } from './constants.js';
11
- export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent, } from './factory.js';
12
- export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit, } from './token.js';
13
- export type { IroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult, } from './token.js';
14
- export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract, } from './pool.js';
11
+ export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent } from './factory.js';
12
+ export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit } from './token.js';
13
+ export type { IroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult } from './token.js';
14
+ export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract } from './pool.js';
15
15
  export { IRO_PLATFORM_URL, IRO_TESTNET_PLATFORM_URL, setIroApiBase, setIroTestApiBase, iroApiCreateProject, iroApiUploadImage, } from './api.js';
16
- export type { IroApiCreateProjectRequest, IroApiCreateProjectResponse, IroApiUploadImageResponse, } from './api.js';
16
+ export type { IroApiCreateProjectRequest, IroApiCreateProjectResponse, IroApiUploadImageResponse } from './api.js';
@@ -13,15 +13,15 @@ export { IRO_FACTORY_ADDRESS, IROSWAP_V2_ROUTER, IROSWAP_V2_FACTORY, USDT_BSC, I
13
13
  // ============================================================================
14
14
  // Factory (工厂合约)
15
15
  // ============================================================================
16
- export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent, } from './factory.js';
16
+ export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent } from './factory.js';
17
17
  // ============================================================================
18
18
  // Token (代币合约 — 认购)
19
19
  // ============================================================================
20
- export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit, } from './token.js';
20
+ export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit } from './token.js';
21
21
  // ============================================================================
22
22
  // Pool (资金池 — 质押/挖矿)
23
23
  // ============================================================================
24
- export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract, } from './pool.js';
24
+ export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract } from './pool.js';
25
25
  // ============================================================================
26
26
  // API (IRO 平台后端)
27
27
  // ============================================================================
@@ -16,6 +16,9 @@ const poolIface = new Interface(IRO_POOL_ABI);
16
16
  // 查询
17
17
  // ============================================================================
18
18
  export class IroPoolQuery {
19
+ provider;
20
+ pool;
21
+ poolAddress;
19
22
  constructor(poolAddress, rpcUrl, chainId) {
20
23
  this.poolAddress = poolAddress;
21
24
  this.provider = new JsonRpcProvider(rpcUrl ?? BSC_RPC_URL, chainId ?? BSC_CHAIN_ID, { staticNetwork: true });
@@ -62,19 +65,37 @@ export class IroPoolQuery {
62
65
  const raw = await this.pool.increaseRateMap(index);
63
66
  return { status: raw[0], rate: BigInt(raw[1]) };
64
67
  }
65
- async totalSupply() { return this.pool.totalSupply(); }
66
- async balanceOf(account) { return this.pool.balanceOf(account); }
67
- async lastPrice() { return this.pool.lastPrice(); }
68
+ async totalSupply() {
69
+ return this.pool.totalSupply();
70
+ }
71
+ async balanceOf(account) {
72
+ return this.pool.balanceOf(account);
73
+ }
74
+ async lastPrice() {
75
+ return this.pool.lastPrice();
76
+ }
68
77
  async userAward(account) {
69
78
  const raw = await this.pool.userAward(account);
70
79
  return {
71
- deposit: BigInt(raw[0]), debt: BigInt(raw[1]), share: BigInt(raw[2]), lastTimestamp: BigInt(raw[3]),
72
- totalDeposit: BigInt(raw[4]), totalInviteReward: BigInt(raw[5]), lastInviteReward: BigInt(raw[6]), pledgeNum: BigInt(raw[7]),
80
+ deposit: BigInt(raw[0]),
81
+ debt: BigInt(raw[1]),
82
+ share: BigInt(raw[2]),
83
+ lastTimestamp: BigInt(raw[3]),
84
+ totalDeposit: BigInt(raw[4]),
85
+ totalInviteReward: BigInt(raw[5]),
86
+ lastInviteReward: BigInt(raw[6]),
87
+ pledgeNum: BigInt(raw[7]),
73
88
  };
74
89
  }
75
- async getUserStake(account) { return this.pool.getUserStake(account); }
76
- async ownerAddr() { return this.pool.ownerAddr(); }
77
- async isInitialized() { return this.pool.isInitialized(); }
90
+ async getUserStake(account) {
91
+ return this.pool.getUserStake(account);
92
+ }
93
+ async ownerAddr() {
94
+ return this.pool.ownerAddr();
95
+ }
96
+ async isInitialized() {
97
+ return this.pool.isInitialized();
98
+ }
78
99
  get providerInstance() {
79
100
  return this.provider;
80
101
  }
@@ -87,7 +108,7 @@ export class IroPoolQuery {
87
108
  * removePledge() — 用户直接调用
88
109
  */
89
110
  export async function poolRemovePledge(params) {
90
- const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, gasPrice, } = params;
111
+ const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, gasPrice } = params;
91
112
  const provider = new JsonRpcProvider(rpcUrl, chainId, { staticNetwork: true });
92
113
  const wallet = new Wallet(privateKey, provider);
93
114
  const calldata = poolIface.encodeFunctionData('removePledge', []);
@@ -109,7 +130,7 @@ export async function poolRemovePledge(params) {
109
130
  * extract(uint256 amount) — 用户直接调用
110
131
  */
111
132
  export async function poolExtract(params) {
112
- const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, amount, gasPrice, } = params;
133
+ const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, amount, gasPrice } = params;
113
134
  const provider = new JsonRpcProvider(rpcUrl, chainId, { staticNetwork: true });
114
135
  const wallet = new Wallet(privateKey, provider);
115
136
  const calldata = poolIface.encodeFunctionData('extract', [amount]);
@@ -16,6 +16,9 @@ const tokenIface = new Interface(IRO_TOKEN_ABI);
16
16
  // 查询
17
17
  // ============================================================================
18
18
  export class IroTokenQuery {
19
+ provider;
20
+ token;
21
+ tokenAddress;
19
22
  constructor(tokenAddress, rpcUrl, chainId) {
20
23
  this.tokenAddress = tokenAddress;
21
24
  this.provider = new JsonRpcProvider(rpcUrl ?? BSC_RPC_URL, chainId ?? BSC_CHAIN_ID, { staticNetwork: true });
@@ -217,7 +220,7 @@ export async function batchSubscribe(params) {
217
220
  * 后端 submit_blockrazor 会验证最后 3 笔是利润交易,然后去掉后广播业务交易
218
221
  */
219
222
  export async function batchSubscribeForSubmit(params) {
220
- const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit } = params;
223
+ const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit, } = params;
221
224
  if (subscribers.length === 0) {
222
225
  return { signedTransactions: [...approvalTxs], subscribeResults: [], profitAmount: 0n };
223
226
  }
@@ -5,9 +5,10 @@
5
5
  * ENI 不支持 EIP-7702,所以无法在一笔 tx 中完成多钱包 approve
6
6
  * 采用并行广播策略
7
7
  */
8
- import { Wallet, JsonRpcProvider, Interface } from 'ethers';
8
+ import { Wallet, Interface } from 'ethers';
9
9
  import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
10
- import { ERC20_ABI } from '../../../shared/abis/common.js';
10
+ import { createEniProvider } from '../../../utils/provider-factory.js';
11
+ import { ERC20_ABI } from '../../../abis/common.js';
11
12
  const MAX_UINT256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
12
13
  const erc20Iface = new Interface(ERC20_ABI);
13
14
  /**
@@ -16,7 +17,7 @@ const erc20Iface = new Interface(ERC20_ABI);
16
17
  */
17
18
  export async function batchApprove(params) {
18
19
  const { rpcUrl = ENI_RPC_URL, token, privateKeys, spender, gasPrice } = params;
19
- const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
20
+ const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
20
21
  const feeData = await provider.getFeeData();
21
22
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
22
23
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
@@ -8,11 +8,12 @@
8
8
  * - eniDisperseForSubmit: 前端统一入口 (EGAS / ERC20 分发)
9
9
  * - eniSweepForSubmit: 前端统一入口 (EGAS / ERC20 归集)
10
10
  */
11
- import { Wallet, JsonRpcProvider, Interface, Contract, ethers } from 'ethers';
11
+ import { Wallet, Interface, Contract, ethers } from 'ethers';
12
12
  import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
13
+ import { createEniProvider } from '../../../utils/provider-factory.js';
13
14
  import { BATCH_ROUTER_ADDRESS, estimateGas } from './constants.js';
14
15
  import { validateBatchParams, encodeBatchTransfer, encodeBatchTransferToken, buildBatchRouterTx } from './utils.js';
15
- import { ERC20_ABI } from '../../../shared/abis/common.js';
16
+ import { ERC20_ABI } from '../../../abis/common.js';
16
17
  import { getProfitRecipient, calculateTransferFee } from '../../../shared/constants/profit.js';
17
18
  import { GAS_LIMITS } from '../../../shared/constants/gas.js';
18
19
  const erc20Iface = new Interface(ERC20_ABI);
@@ -60,7 +61,7 @@ export async function batchSweepToken(params) {
60
61
  if (privateKeys.length !== amounts.length) {
61
62
  throw new Error(`privateKeys.length (${privateKeys.length}) !== amounts.length (${amounts.length})`);
62
63
  }
63
- const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
64
+ const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
64
65
  const feeData = await provider.getFeeData();
65
66
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
66
67
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
@@ -87,7 +88,7 @@ export async function batchSweepEgas(params) {
87
88
  if (privateKeys.length !== amounts.length) {
88
89
  throw new Error(`privateKeys.length (${privateKeys.length}) !== amounts.length (${amounts.length})`);
89
90
  }
90
- const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
91
+ const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
91
92
  const feeData = await provider.getFeeData();
92
93
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
93
94
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
@@ -112,8 +113,8 @@ export async function eniDisperseForSubmit(params) {
112
113
  const { rpcUrl = ENI_RPC_URL, fromPrivateKey, recipients, tokenAddress, hopCount = 0 } = params;
113
114
  const decimals = params.tokenDecimals ?? 18;
114
115
  const isNative = !tokenAddress || tokenAddress === ethers.ZeroAddress;
115
- const amountsWei = params.amounts.map(a => ethers.parseUnits(a, decimals));
116
- const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
116
+ const amountsWei = params.amounts.map((a) => ethers.parseUnits(a, decimals));
117
+ const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
117
118
  const mainWallet = new Wallet(fromPrivateKey, provider);
118
119
  const feeData = await provider.getFeeData();
119
120
  const maxFeePerGas = feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
@@ -123,8 +124,17 @@ export async function eniDisperseForSubmit(params) {
123
124
  const erc20GasLimit = params.gasLimit ? BigInt(params.gasLimit) : DEFAULT_GAS_PER_SWEEP;
124
125
  if (hopCount > 0) {
125
126
  return eniDisperseWithHops({
126
- provider, mainWallet, recipients, amountsWei, isNative, tokenAddress,
127
- hopCount, profitAmount, maxFeePerGas, maxPriorityFeePerGas, erc20GasLimit,
127
+ provider,
128
+ mainWallet,
129
+ recipients,
130
+ amountsWei,
131
+ isNative,
132
+ tokenAddress,
133
+ hopCount,
134
+ profitAmount,
135
+ maxFeePerGas,
136
+ maxPriorityFeePerGas,
137
+ erc20GasLimit,
128
138
  });
129
139
  }
130
140
  // ===== 无多跳:使用 BatchRouter 合约批量分发 =====
@@ -216,8 +226,8 @@ async function eniDisperseWithHops(params) {
216
226
  const finalRecipient = recipients[i];
217
227
  const amountWei = amountsWei[i];
218
228
  const hops = hopWallets[i];
219
- const fullChain = [mainWallet, ...hops.map(h => new Wallet(h.privateKey, provider))];
220
- const addresses = [...fullChain.map(w => w.address), finalRecipient];
229
+ const fullChain = [mainWallet, ...hops.map((h) => new Wallet(h.privateKey, provider))];
230
+ const addresses = [...fullChain.map((w) => w.address), finalRecipient];
221
231
  if (isNative) {
222
232
  for (let j = 0; j < addresses.length - 1; j++) {
223
233
  const fromWallet = fullChain[j];
@@ -353,7 +363,7 @@ export async function eniSweepForSubmit(params) {
353
363
  const isNative = !tokenAddress || tokenAddress === ethers.ZeroAddress;
354
364
  const ratioPct = params.ratioPct ?? 100;
355
365
  const erc20GasLimit = params.gasLimit ? BigInt(params.gasLimit) : DEFAULT_GAS_PER_SWEEP;
356
- const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
366
+ const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
357
367
  const feeData = await provider.getFeeData();
358
368
  const maxFeePerGas = feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
359
369
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
@@ -381,12 +391,19 @@ export async function eniSweepForSubmit(params) {
381
391
  return { signedTransactions: [] };
382
392
  if (hopCount > 0) {
383
393
  return eniSweepWithHops({
384
- provider, validKeys, validAmounts, target, targetPrivateKey,
385
- isNative: true, hopCount, maxFeePerGas, maxPriorityFeePerGas,
394
+ provider,
395
+ validKeys,
396
+ validAmounts,
397
+ target,
398
+ targetPrivateKey,
399
+ isNative: true,
400
+ hopCount,
401
+ maxFeePerGas,
402
+ maxPriorityFeePerGas,
386
403
  });
387
404
  }
388
405
  const result = await batchSweepEgas({ rpcUrl, privateKeys: validKeys, amounts: validAmounts, target });
389
- const signedTxs = result.transactions.map(tx => tx.signedTx);
406
+ const signedTxs = result.transactions.map((tx) => tx.signedTx);
390
407
  if (targetPrivateKey) {
391
408
  const profitTxGasCost = GAS_LIMITS.NATIVE_TRANSFER * maxFeePerGas;
392
409
  const profitAmount = calculateTransferFee(ENI_CHAIN_ID, validKeys.length) + profitTxGasCost;
@@ -409,9 +426,7 @@ export async function eniSweepForSubmit(params) {
409
426
  // ===== ERC20 归集 =====
410
427
  const erc20 = new Contract(tokenAddress, ERC20_ABI, provider);
411
428
  const erc20TransferGasCost = erc20GasLimit * maxFeePerGas;
412
- const hopGasCostPerWallet = hopCount > 0
413
- ? gasForTransfer * BigInt(hopCount) + erc20GasLimit * maxFeePerGas * BigInt(hopCount)
414
- : 0n;
429
+ const hopGasCostPerWallet = hopCount > 0 ? gasForTransfer * BigInt(hopCount) + erc20GasLimit * maxFeePerGas * BigInt(hopCount) : 0n;
415
430
  const minNativeRequired = erc20TransferGasCost + hopGasCostPerWallet;
416
431
  const walletsData = await Promise.all(sourcePrivateKeys.map(async (key) => {
417
432
  const wallet = new Wallet(key, provider);
@@ -428,7 +443,6 @@ export async function eniSweepForSubmit(params) {
428
443
  if (tokenBal <= 0n)
429
444
  continue;
430
445
  if (nativeBal < minNativeRequired) {
431
- console.log(`[eniSweep] 跳过钱包 ${i}: EGAS 余额 ${ethers.formatEther(nativeBal)} 不足以支付 gas (需要 ${ethers.formatEther(minNativeRequired)})`);
432
446
  continue;
433
447
  }
434
448
  const amount = ratioPct >= 100 ? tokenBal : (tokenBal * BigInt(ratioPct)) / 100n;
@@ -441,12 +455,28 @@ export async function eniSweepForSubmit(params) {
441
455
  return { signedTransactions: [] };
442
456
  if (hopCount > 0) {
443
457
  return eniSweepWithHops({
444
- provider, validKeys, validAmounts, target, targetPrivateKey,
445
- isNative: false, tokenAddress, hopCount, maxFeePerGas, maxPriorityFeePerGas, erc20GasLimit,
458
+ provider,
459
+ validKeys,
460
+ validAmounts,
461
+ target,
462
+ targetPrivateKey,
463
+ isNative: false,
464
+ tokenAddress,
465
+ hopCount,
466
+ maxFeePerGas,
467
+ maxPriorityFeePerGas,
468
+ erc20GasLimit,
446
469
  });
447
470
  }
448
- const result = await batchSweepToken({ rpcUrl, token: tokenAddress, privateKeys: validKeys, amounts: validAmounts, target, gasLimit: erc20GasLimit });
449
- const signedTxs = result.transactions.map(tx => tx.signedTx);
471
+ const result = await batchSweepToken({
472
+ rpcUrl,
473
+ token: tokenAddress,
474
+ privateKeys: validKeys,
475
+ amounts: validAmounts,
476
+ target,
477
+ gasLimit: erc20GasLimit,
478
+ });
479
+ const signedTxs = result.transactions.map((tx) => tx.signedTx);
450
480
  if (targetPrivateKey) {
451
481
  const profitTxGasCost = GAS_LIMITS.NATIVE_TRANSFER * maxFeePerGas;
452
482
  const profitAmount = calculateTransferFee(ENI_CHAIN_ID, validKeys.length) + profitTxGasCost;
@@ -485,8 +515,8 @@ async function eniSweepWithHops(params) {
485
515
  const sourceWallet = new Wallet(validKeys[i], provider);
486
516
  const amountWei = validAmounts[i];
487
517
  const hops = hopWallets[i];
488
- const fullChain = [sourceWallet, ...hops.map(h => new Wallet(h.privateKey, provider))];
489
- const addresses = [...fullChain.map(w => w.address), target];
518
+ const fullChain = [sourceWallet, ...hops.map((h) => new Wallet(h.privateKey, provider))];
519
+ const addresses = [...fullChain.map((w) => w.address), target];
490
520
  const sourceNonce = await sourceWallet.getNonce();
491
521
  if (isNative) {
492
522
  for (let j = 0; j < addresses.length - 1; j++) {
@@ -543,7 +573,7 @@ async function eniSweepWithHops(params) {
543
573
  to: tokenAddress,
544
574
  data: srcToFirstHopData,
545
575
  value: 0n,
546
- nonce: srcNonce++,
576
+ nonce: srcNonce,
547
577
  chainId: BigInt(ENI_CHAIN_ID),
548
578
  type: 2,
549
579
  maxFeePerGas,
@@ -3,8 +3,9 @@
3
3
  *
4
4
  * 对标 BSC 全部 Bundle 操作的 calldata 编码
5
5
  */
6
- import { Interface, Wallet, JsonRpcProvider } from 'ethers';
6
+ import { Interface, Wallet } from 'ethers';
7
7
  import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
8
+ import { createEniProvider } from '../../../utils/provider-factory.js';
8
9
  import { BATCH_ROUTER_ABI, MAX_BATCH_SIZE } from './constants.js';
9
10
  const routerIface = new Interface(BATCH_ROUTER_ABI);
10
11
  // ============================================================================
@@ -65,7 +66,14 @@ export function encodeBuyFirstSwapV2(router, token, buyers, buyAmounts, sellers,
65
66
  // ============================================================================
66
67
  export function encodeCreateAndBatchBuy(portal, name, symbol, salt, createValue, token, buyers, buyAmounts) {
67
68
  return routerIface.encodeFunctionData('createAndBatchBuy', [
68
- portal, name, symbol, salt, createValue, token, buyers, buyAmounts,
69
+ portal,
70
+ name,
71
+ symbol,
72
+ salt,
73
+ createValue,
74
+ token,
75
+ buyers,
76
+ buyAmounts,
69
77
  ]);
70
78
  }
71
79
  export function encodeFairLaunchAndBatchBuyV2(launcher, launchParams, launchValue, router, token, buyers, buyAmounts) {
@@ -103,7 +111,13 @@ export function encodeFairLaunchAndBatchBuyV2(launcher, launchParams, launchValu
103
111
  launchParams.inviteCodes,
104
112
  ];
105
113
  return routerIface.encodeFunctionData('fairLaunchAndBatchBuyV2', [
106
- launcher, paramsTuple, launchValue, router, token, buyers, buyAmounts,
114
+ launcher,
115
+ paramsTuple,
116
+ launchValue,
117
+ router,
118
+ token,
119
+ buyers,
120
+ buyAmounts,
107
121
  ]);
108
122
  }
109
123
  // ============================================================================
@@ -111,12 +125,24 @@ export function encodeFairLaunchAndBatchBuyV2(launcher, launchParams, launchValu
111
125
  // ============================================================================
112
126
  export function encodeCrossSwapPortalToV2(portal, router, token, sellers, sellAmounts, buyers, buyAmounts) {
113
127
  return routerIface.encodeFunctionData('crossSwapPortalToV2', [
114
- portal, router, token, sellers, sellAmounts, buyers, buyAmounts,
128
+ portal,
129
+ router,
130
+ token,
131
+ sellers,
132
+ sellAmounts,
133
+ buyers,
134
+ buyAmounts,
115
135
  ]);
116
136
  }
117
137
  export function encodeCrossSwapV2ToPortal(portal, router, token, sellers, sellAmounts, buyers, buyAmounts) {
118
138
  return routerIface.encodeFunctionData('crossSwapV2ToPortal', [
119
- portal, router, token, sellers, sellAmounts, buyers, buyAmounts,
139
+ portal,
140
+ router,
141
+ token,
142
+ sellers,
143
+ sellAmounts,
144
+ buyers,
145
+ buyAmounts,
120
146
  ]);
121
147
  }
122
148
  // ============================================================================
@@ -136,7 +162,7 @@ export function encodeBatchSweepToken(token, sources, target) {
136
162
  // ============================================================================
137
163
  export async function buildBatchRouterTx(params) {
138
164
  const { rpcUrl = ENI_RPC_URL, mainPrivateKey, batchRouterAddress, calldata, value = 0n, gasLimit, gasPrice } = params;
139
- const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
165
+ const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
140
166
  const wallet = new Wallet(mainPrivateKey, provider);
141
167
  const nonce = await wallet.getNonce();
142
168
  const feeData = await provider.getFeeData();
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 各钱包离线签署操作意图,主钱包收集后统一提交。
5
5
  */
6
- import { Wallet, JsonRpcProvider } from 'ethers';
6
+ import { Wallet, JsonRpcProvider, Interface } from 'ethers';
7
7
  import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
8
8
  import { ENI_BUNDLER_ABI, EIP712_DOMAIN, SIGNED_OP_TYPE, TOKEN_PULL_TYPE } from './constants.js';
9
9
  const DEFAULT_DEADLINE_SEC = 300;
@@ -19,7 +19,6 @@ function buildDomain(bundlerAddress, chainId = Number(ENI_CHAIN_ID)) {
19
19
  */
20
20
  export async function getBundlerNonce(params) {
21
21
  const provider = new JsonRpcProvider(params.rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });
22
- const { Interface } = await import('ethers');
23
22
  const iface = new Interface(ENI_BUNDLER_ABI);
24
23
  const data = iface.encodeFunctionData('nonces', [params.signer]);
25
24
  const result = await provider.call({ to: params.bundlerAddress, data });
@@ -32,7 +31,7 @@ export async function signOperation(params) {
32
31
  const { privateKey, bundlerAddress, op, rpcUrl } = params;
33
32
  const wallet = new Wallet(privateKey);
34
33
  const signer = wallet.address;
35
- const nonce = params.nonce ?? await getBundlerNonce({ rpcUrl, bundlerAddress, signer });
34
+ const nonce = params.nonce ?? (await getBundlerNonce({ rpcUrl, bundlerAddress, signer }));
36
35
  const deadline = BigInt(Math.floor(Date.now() / 1000) + DEFAULT_DEADLINE_SEC);
37
36
  const domain = buildDomain(bundlerAddress);
38
37
  const value = {
@@ -61,7 +60,7 @@ export async function signTokenPull(params) {
61
60
  const { privateKey, bundlerAddress, token, spender, amount, rpcUrl } = params;
62
61
  const wallet = new Wallet(privateKey);
63
62
  const signer = wallet.address;
64
- const nonce = params.nonce ?? await getBundlerNonce({ rpcUrl, bundlerAddress, signer });
63
+ const nonce = params.nonce ?? (await getBundlerNonce({ rpcUrl, bundlerAddress, signer }));
65
64
  const deadline = BigInt(Math.floor(Date.now() / 1000) + DEFAULT_DEADLINE_SEC);
66
65
  const domain = buildDomain(bundlerAddress);
67
66
  const value = {
@@ -91,8 +90,8 @@ export async function signOperationsBatch(params) {
91
90
  if (privateKeys.length !== ops.length) {
92
91
  throw new Error(`privateKeys.length (${privateKeys.length}) !== ops.length (${ops.length})`);
93
92
  }
94
- const signers = privateKeys.map(k => new Wallet(k).address);
95
- const nonces = await Promise.all(signers.map(signer => getBundlerNonce({ rpcUrl, bundlerAddress, signer })));
93
+ const signers = privateKeys.map((k) => new Wallet(k).address);
94
+ const nonces = await Promise.all(signers.map((signer) => getBundlerNonce({ rpcUrl, bundlerAddress, signer })));
96
95
  return Promise.all(privateKeys.map((pk, i) => signOperation({
97
96
  privateKey: pk,
98
97
  bundlerAddress,
@@ -46,10 +46,7 @@ export async function buildExecuteBatch(params) {
46
46
  export async function buildPullAndExecute(params) {
47
47
  const { rpcUrl = ENI_RPC_URL, mainPrivateKey, bundlerAddress, pulls, ops, gasPrice } = params;
48
48
  const totalValue = ops.reduce((sum, op) => sum + op.value, 0n);
49
- const calldata = bundlerIface.encodeFunctionData('pullAndExecute', [
50
- pulls.map(toPullTuple),
51
- ops.map(toOpTuple),
52
- ]);
49
+ const calldata = bundlerIface.encodeFunctionData('pullAndExecute', [pulls.map(toPullTuple), ops.map(toOpTuple)]);
53
50
  const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
54
51
  const wallet = new Wallet(mainPrivateKey, provider);
55
52
  const nonce = await wallet.getNonce();
@@ -45,7 +45,7 @@ export const DAOAAS_BUY_FEE_RATE = 0.015;
45
45
  /** DAOaaS Portal 卖出手续费率 (1.5%) */
46
46
  export const DAOAAS_SELL_FEE_RATE = 0.015;
47
47
  /** LPFairLauncher RATE_BASE */
48
- export const RATE_BASE = 1000000;
48
+ export const RATE_BASE = 1_000_000;
49
49
  /** 最大 BatchRouter 钱包数(受 10M gas 限制, ~35-45 钱包) */
50
50
  export const MAX_BATCH_WALLETS = 35;
51
51
  // ============================================================================
@@ -0,0 +1,10 @@
1
+ /**
2
+ * ENI 包根扁平别名(子路径 `four-flap-meme-sdk/chains/eni` 可直接 import)
3
+ *
4
+ * 与 `root-eni-and-bsc-iro.ts` 中 `eni*` / `Eni*` 命名对齐,避免为 ENI 拉包根。
5
+ */
6
+ export { DaoaasPortalQuery as EniPortalQuery, createPortalQuery as eniCreatePortalQuery, encodeBuyCall as eniEncodeBuyCall, encodeSellCall as eniEncodeSellCall, encodeCreateCall as eniEncodeCreateCall, applySlippage as eniApplySlippage, formatEgas as eniFormatEgas, parseEgas as eniParseEgas, directBuy as eniDirectBuy, directSell as eniDirectSell, directBatchBuy as eniDirectBatchBuy, directBatchSell as eniDirectBatchSell, directBuyForSubmit as eniDirectBuyForSubmit, directSellForSubmit as eniDirectSellForSubmit, directBatchBuyForSubmit as eniDirectBatchBuyForSubmit, directBatchSellForSubmit as eniDirectBatchSellForSubmit, directQuickSwap as eniDirectQuickSwap, directQuickSwapForSubmit as eniDirectQuickSwapForSubmit, buildProfitTransfer as eniBuildProfitTransfer, createToken as eniCreateToken, createTokenForSubmit as eniCreateTokenForSubmit, getGraduationInfo as eniGetGraduationInfo, batchGetGraduationInfo as eniBatchGetGraduationInfo, getTokenMeta as eniGetTokenMeta, getFairLaunchTokenMeta as eniGetFairLaunchTokenMeta, getTokenMetasBatch as eniGetTokenMetasBatch, DaoaasTokenStatus as EniDaoaasTokenStatus, } from './platforms/daoaas/index.js';
7
+ export type { DaoaasTokenState as EniDaoaasTokenState, DaoaasBuyParams as EniDaoaasBuyParams, DaoaasSellParams as EniDaoaasSellParams, DaoaasCreateParams as EniDaoaasCreateParams, PortalQueryConfig as EniPortalQueryConfig, GraduationInfo as EniGraduationInfo, DaoaasTokenMeta as EniDaoaasTokenMeta, } from './platforms/daoaas/index.js';
8
+ export { eniDisperseForSubmit, eniSweepForSubmit, batchTransferEgas, batchSweepEgas, batchSweepToken, } from './batch-router/index.js';
9
+ export type { EniDisperseParams, EniDisperseResult, EniSweepParams, EniSweepResult } from './batch-router/index.js';
10
+ export * as EniBatchRouter from './batch-router/index.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ENI 包根扁平别名(子路径 `four-flap-meme-sdk/chains/eni` 可直接 import)
3
+ *
4
+ * 与 `root-eni-and-bsc-iro.ts` 中 `eni*` / `Eni*` 命名对齐,避免为 ENI 拉包根。
5
+ */
6
+ export { DaoaasPortalQuery as EniPortalQuery, createPortalQuery as eniCreatePortalQuery, encodeBuyCall as eniEncodeBuyCall, encodeSellCall as eniEncodeSellCall, encodeCreateCall as eniEncodeCreateCall, applySlippage as eniApplySlippage, formatEgas as eniFormatEgas, parseEgas as eniParseEgas, directBuy as eniDirectBuy, directSell as eniDirectSell, directBatchBuy as eniDirectBatchBuy, directBatchSell as eniDirectBatchSell, directBuyForSubmit as eniDirectBuyForSubmit, directSellForSubmit as eniDirectSellForSubmit, directBatchBuyForSubmit as eniDirectBatchBuyForSubmit, directBatchSellForSubmit as eniDirectBatchSellForSubmit, directQuickSwap as eniDirectQuickSwap, directQuickSwapForSubmit as eniDirectQuickSwapForSubmit, buildProfitTransfer as eniBuildProfitTransfer, createToken as eniCreateToken, createTokenForSubmit as eniCreateTokenForSubmit, getGraduationInfo as eniGetGraduationInfo, batchGetGraduationInfo as eniBatchGetGraduationInfo, getTokenMeta as eniGetTokenMeta, getFairLaunchTokenMeta as eniGetFairLaunchTokenMeta, getTokenMetasBatch as eniGetTokenMetasBatch, DaoaasTokenStatus as EniDaoaasTokenStatus, } from './platforms/daoaas/index.js';
7
+ export { eniDisperseForSubmit, eniSweepForSubmit, batchTransferEgas, batchSweepEgas, batchSweepToken, } from './batch-router/index.js';
8
+ export * as EniBatchRouter from './batch-router/index.js';
@@ -15,8 +15,9 @@ export type { DaoaasTokenState, DaoaasBuyParams, DaoaasSellParams, DaoaasCreateP
15
15
  export { TokenLaunchType, FairLauncherQuery, launchToken, launchTokenForSubmit, setTokenTradeStartTime, setTokenTradeStartTimeForSubmit, encodeLaunchTokenCall, standardPreset, liquidityProvidingPreset, dividendPreset, dividendBuybackPreset, deflationaryPreset, validateLaunchParams, detectLaunchType, RATE_BASE, QUOTE_TOKENS, LP_FAIR_LAUNCHER_ADDRESS, } from './platforms/fair-launch/index.js';
16
16
  export type { LaunchParams, FairLaunchTokenInfo, FairLaunchQueryConfig, FairLaunchCreateParams, FairLaunchCreateResult, } from './platforms/fair-launch/index.js';
17
17
  export { FairPoolQuery, claimFromPool, claimFromPoolForSubmit, batchClaimForSubmit, } from './platforms/fair-launch/index.js';
18
- export type { PoolOverview, PoolClaimParams, PoolClaimResult, } from './platforms/fair-launch/index.js';
18
+ export type { PoolOverview, PoolClaimParams, PoolClaimResult } from './platforms/fair-launch/index.js';
19
19
  export { getLPPairInfo, batchGetLPPairInfo, getPairAddress, addLiquidityETHForSubmit, removeLiquidityETHForSubmit, addLiquidityForSubmit, removeLiquidityForSubmit, } from './platforms/dswap/index.js';
20
20
  export type { LPPairInfo, GetLPInfoParams, BatchGetLPInfoParams, AddLiquidityETHParams, RemoveLiquidityETHParams, AddLiquidityParams, RemoveLiquidityParams, LiquidityTxResult, LiquidityForSubmitResult, } from './platforms/dswap/index.js';
21
21
  export { IroFactoryQuery as EniIroFactoryQuery, encodeCreateProjectCall as eniIroEncodeCreateProjectCall, createProject as eniIroCreateProject, parseCreateProjectEvent as eniIroParseCreateProjectEvent, IroTokenQuery as EniIroTokenQuery, subscribe as eniIroSubscribe, pledge as eniIroPledge, batchSubscribe as eniIroBatchSubscribe, batchSubscribeForSubmit as eniIroBatchSubscribeForSubmit, IroPoolQuery as EniIroPoolQuery, poolRemovePledge as eniIroPoolRemovePledge, poolExtract as eniIroPoolExtract, poolTransferAwards as eniIroPoolTransferAwards, batchExtract as eniIroBatchExtract, ENI_IRO_FACTORY_ADDRESS, ENI_IRO_OWNER_ADDRESS, ENI_IRO_SELL_FEE_CONTRACT, ENI_IROSWAP_V2_ROUTER, ENI_IROSWAP_V2_FACTORY, IRO_FACTORY_ABI as ENI_IRO_FACTORY_ABI, IRO_TOKEN_ABI as ENI_IRO_TOKEN_ABI, IRO_POOL_ABI as ENI_IRO_POOL_ABI, CREATE_PROJECT_GAS_LIMIT as ENI_CREATE_PROJECT_GAS_LIMIT, ENI_IRO_PLATFORM_URL, setIroApiBase as setEniIroApiBase, iroApiCreateProject as eniIroApiCreateProject, iroApiUploadImage as eniIroApiUploadImage, getTokenWhiteList as eniIroGetTokenWhiteList, addTokenWhiteListForSubmit as eniIroAddTokenWhiteListForSubmit, batchAddTokenWhiteListForSubmit as eniIroBatchAddTokenWhiteListForSubmit, removeTokenWhiteListForSubmit as eniIroRemoveTokenWhiteListForSubmit, IRO_OWNER_WHITELIST_ABI as ENI_IRO_OWNER_WHITELIST_ABI, } from './platforms/iro/index.js';
22
22
  export type { WhiteListQuota as EniWhiteListQuota, IroCreateProjectParams as EniIroCreateProjectParams, IroSubscribeParams as EniIroSubscribeParams, IroPledgeParams as EniIroPledgeParams, IroTokenInfo as EniIroTokenInfo, IroTxResult as EniIroTxResult, IroCreateProjectResult as EniIroCreateProjectResult, IroQueryConfig as EniIroQueryConfig, IroCreateParams as EniIroCreateParams, IroBatchSubscribeForSubmitParams as EniIroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult as EniIroBatchSubscribeForSubmitResult, WhitelistManageConfig as EniWhitelistManageConfig, AddWhitelistParams as EniAddWhitelistParams, BatchAddWhitelistParams as EniBatchAddWhitelistParams, RemoveWhitelistParams as EniRemoveWhitelistParams, GetWhitelistParams as EniGetWhitelistParams, } from './platforms/iro/index.js';
23
+ export * from './flat-aliases.js';
@@ -31,3 +31,4 @@ export { getLPPairInfo, batchGetLPPairInfo, getPairAddress, addLiquidityETHForSu
31
31
  // 快捷导出 - IRO (Initial Rights Offering)
32
32
  // ============================================================================
33
33
  export { IroFactoryQuery as EniIroFactoryQuery, encodeCreateProjectCall as eniIroEncodeCreateProjectCall, createProject as eniIroCreateProject, parseCreateProjectEvent as eniIroParseCreateProjectEvent, IroTokenQuery as EniIroTokenQuery, subscribe as eniIroSubscribe, pledge as eniIroPledge, batchSubscribe as eniIroBatchSubscribe, batchSubscribeForSubmit as eniIroBatchSubscribeForSubmit, IroPoolQuery as EniIroPoolQuery, poolRemovePledge as eniIroPoolRemovePledge, poolExtract as eniIroPoolExtract, poolTransferAwards as eniIroPoolTransferAwards, batchExtract as eniIroBatchExtract, ENI_IRO_FACTORY_ADDRESS, ENI_IRO_OWNER_ADDRESS, ENI_IRO_SELL_FEE_CONTRACT, ENI_IROSWAP_V2_ROUTER, ENI_IROSWAP_V2_FACTORY, IRO_FACTORY_ABI as ENI_IRO_FACTORY_ABI, IRO_TOKEN_ABI as ENI_IRO_TOKEN_ABI, IRO_POOL_ABI as ENI_IRO_POOL_ABI, CREATE_PROJECT_GAS_LIMIT as ENI_CREATE_PROJECT_GAS_LIMIT, ENI_IRO_PLATFORM_URL, setIroApiBase as setEniIroApiBase, iroApiCreateProject as eniIroApiCreateProject, iroApiUploadImage as eniIroApiUploadImage, getTokenWhiteList as eniIroGetTokenWhiteList, addTokenWhiteListForSubmit as eniIroAddTokenWhiteListForSubmit, batchAddTokenWhiteListForSubmit as eniIroBatchAddTokenWhiteListForSubmit, removeTokenWhiteListForSubmit as eniIroRemoveTokenWhiteListForSubmit, IRO_OWNER_WHITELIST_ABI as ENI_IRO_OWNER_WHITELIST_ABI, } from './platforms/iro/index.js';
34
+ export * from './flat-aliases.js';
@@ -4,7 +4,7 @@
4
4
  * 支持 createAndInitPurchase — 创建代币并可选首次买入
5
5
  */
6
6
  import { Wallet, JsonRpcProvider } from 'ethers';
7
- import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL, NATIVE_TRANSFER_GAS_LIMIT, } from '../../constants.js';
7
+ import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
8
8
  import { encodeCreateCall } from './portal.js';
9
9
  import { buildProfitTransfer } from './portal-direct.js';
10
10
  import { calculateProfitAmount, getProfitRateBps, getProfitRecipient } from '../../../../shared/constants/profit.js';
@@ -15,7 +15,7 @@ const NORMAL_PROFIT_BPS = getProfitRateBps('normal');
15
15
  */
16
16
  export function generateSalt(_deployer, _name, _symbol) {
17
17
  const timestamp = BigInt(Date.now());
18
- const random = BigInt(Math.floor(Math.random() * 1000000));
18
+ const random = BigInt(Math.floor(Math.random() * 1_000_000));
19
19
  return timestamp * 1000000n + random;
20
20
  }
21
21
  /**
@@ -8,6 +8,6 @@ export type { DaoaasTokenState, DaoaasBuyParams, DaoaasSellParams, DaoaasCreateP
8
8
  export { DaoaasTokenStatus } from './types.js';
9
9
  export { DaoaasPortalQuery, createPortalQuery, encodeBuyCall, encodeSellCall, encodeCreateCall, encodeApproveCall, encodeTransferCall, applySlippage, formatEgas, parseEgas, type PortalQueryConfig, } from './portal.js';
10
10
  export { directBuy, directSell, directBatchBuy, directBatchSell, directQuickSwap, directBuyForSubmit, directSellForSubmit, directBatchBuyForSubmit, directBatchSellForSubmit, directQuickSwapForSubmit, buildProfitTransfer, } from './portal-direct.js';
11
- export { createToken, createTokenForSubmit, generateSalt, } from './create.js';
12
- export { getGraduationInfo, batchGetGraduationInfo, type GraduationInfo, } from './graduation.js';
13
- export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch, type DaoaasTokenMeta, } from './meta.js';
11
+ export { createToken, createTokenForSubmit, generateSalt } from './create.js';
12
+ export { getGraduationInfo, batchGetGraduationInfo, type GraduationInfo } from './graduation.js';
13
+ export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch, type DaoaasTokenMeta } from './meta.js';
@@ -16,12 +16,12 @@ export { directBuy, directSell, directBatchBuy, directBatchSell, directQuickSwap
16
16
  // ============================================================================
17
17
  // 代币创建
18
18
  // ============================================================================
19
- export { createToken, createTokenForSubmit, generateSalt, } from './create.js';
19
+ export { createToken, createTokenForSubmit, generateSalt } from './create.js';
20
20
  // ============================================================================
21
21
  // 毕业状态
22
22
  // ============================================================================
23
- export { getGraduationInfo, batchGetGraduationInfo, } from './graduation.js';
23
+ export { getGraduationInfo, batchGetGraduationInfo } from './graduation.js';
24
24
  // ============================================================================
25
25
  // 代币元数据
26
26
  // ============================================================================
27
- export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch, } from './meta.js';
27
+ export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch } from './meta.js';