four-flap-meme-sdk 2.2.19 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/{shared/abis → abis}/common.d.ts +1 -1
  2. package/dist/{shared/abis → abis}/common.js +75 -91
  3. package/dist/abis/contracts/TaxToken.json +969 -0
  4. package/dist/abis/contracts/TokenManager2.json +136 -0
  5. package/dist/{shared/abis → abis/contracts}/index.d.ts +0 -1
  6. package/dist/{shared/abis → abis/contracts}/index.js +0 -2
  7. package/dist/abis/flap/index.d.ts +5 -0
  8. package/dist/abis/flap/index.js +5 -0
  9. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  10. package/dist/abis/flap/portal-eip7702.js +39 -0
  11. package/dist/abis/flap/portal-events.d.ts +6 -0
  12. package/dist/abis/flap/portal-events.js +17 -0
  13. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  14. package/dist/abis/flap/portal-merkle.js +25 -0
  15. package/dist/abis/flap/portal.d.ts +6 -0
  16. package/dist/abis/flap/portal.js +37 -0
  17. package/dist/abis/flap/vault.d.ts +171 -0
  18. package/dist/abis/flap/vault.js +91 -0
  19. package/dist/abis/index.d.ts +6 -0
  20. package/dist/abis/index.js +9 -0
  21. package/dist/bundle/config-helpers.d.ts +37 -0
  22. package/dist/bundle/config-helpers.js +58 -0
  23. package/dist/bundle/errors.d.ts +50 -0
  24. package/dist/bundle/errors.js +38 -0
  25. package/dist/bundle/four-meme/approve-tokenmanager.d.ts +7 -0
  26. package/dist/bundle/four-meme/approve-tokenmanager.js +99 -0
  27. package/dist/bundle/four-meme/core-helpers.d.ts +8 -0
  28. package/dist/bundle/four-meme/core-helpers.js +41 -0
  29. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.d.ts +1 -1
  30. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.js +74 -150
  31. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.d.ts +1 -1
  32. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.js +85 -92
  33. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.d.ts +1 -1
  34. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.js +48 -59
  35. package/dist/bundle/four-meme/sign-context-helpers.d.ts +2 -0
  36. package/dist/bundle/four-meme/sign-context-helpers.js +2 -0
  37. package/dist/bundle/four-meme/swap-buy-first.d.ts +8 -0
  38. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-buy-first.js +56 -108
  39. package/dist/bundle/four-meme/swap-hop-helpers.d.ts +6 -0
  40. package/dist/bundle/four-meme/swap-hop-helpers.js +63 -0
  41. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.js +4 -4
  42. package/dist/bundle/four-meme/swap-sign-helpers.d.ts +28 -0
  43. package/dist/bundle/four-meme/swap-sign-helpers.js +105 -0
  44. package/dist/bundle/four-meme/swap.d.ts +17 -0
  45. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap.js +84 -345
  46. package/dist/{contracts/tm-bundle-merkle/swap-buy-first.d.ts → bundle/four-meme/types/buy-first.d.ts} +11 -18
  47. package/dist/bundle/four-meme/types/core-flow.d.ts +63 -0
  48. package/dist/bundle/four-meme/types/core-flow.js +1 -0
  49. package/dist/{contracts/tm-bundle-merkle/types.d.ts → bundle/four-meme/types/index.d.ts} +130 -6
  50. package/dist/bundle/four-meme/types/index.js +1 -0
  51. package/dist/bundle/four-meme/types/swap-internal.d.ts +19 -0
  52. package/dist/bundle/four-meme/types/swap-internal.js +1 -0
  53. package/dist/bundle/four-meme/types.d.ts +1 -0
  54. package/dist/bundle/four-meme/utils-disperse.d.ts +7 -0
  55. package/dist/bundle/four-meme/utils-disperse.js +396 -0
  56. package/dist/bundle/four-meme/utils-pairwise.d.ts +8 -0
  57. package/dist/bundle/four-meme/utils-pairwise.js +328 -0
  58. package/dist/bundle/four-meme/utils-sweep.d.ts +8 -0
  59. package/dist/bundle/four-meme/utils-sweep.js +744 -0
  60. package/dist/bundle/index.d.ts +8 -0
  61. package/dist/bundle/index.js +8 -0
  62. package/dist/bundle/internal.d.ts +16 -0
  63. package/dist/bundle/internal.js +160 -0
  64. package/dist/bundle/sign-context-helpers.d.ts +26 -0
  65. package/dist/bundle/sign-context-helpers.js +63 -0
  66. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.d.ts +6 -27
  67. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.js +116 -313
  68. package/dist/bundle/types/index.d.ts +8 -0
  69. package/dist/bundle/types/index.js +1 -0
  70. package/dist/bundle/types.d.ts +1 -0
  71. package/dist/bundle/types.js +1 -0
  72. package/dist/chains/bsc/constants.js +1 -1
  73. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  74. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  75. package/dist/chains/bsc/four/config.d.ts +5 -67
  76. package/dist/chains/bsc/four/config.js +2 -114
  77. package/dist/chains/bsc/four/core.d.ts +1 -4
  78. package/dist/chains/bsc/four/core.js +1 -592
  79. package/dist/chains/bsc/four/index.d.ts +6 -6
  80. package/dist/chains/bsc/four/index.js +6 -6
  81. package/dist/chains/bsc/four/internal.d.ts +2 -46
  82. package/dist/chains/bsc/four/internal.js +2 -239
  83. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  84. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  85. package/dist/chains/bsc/four/private.d.ts +1 -27
  86. package/dist/chains/bsc/four/private.js +1 -477
  87. package/dist/chains/bsc/four/submit.d.ts +2 -315
  88. package/dist/chains/bsc/four/submit.js +2 -752
  89. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  90. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  91. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  92. package/dist/chains/bsc/four/swap-internal.js +1 -18
  93. package/dist/chains/bsc/four/swap.d.ts +2 -144
  94. package/dist/chains/bsc/four/swap.js +2 -766
  95. package/dist/chains/bsc/four/types.d.ts +1 -476
  96. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  97. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  98. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  99. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  100. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  101. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  102. package/dist/chains/bsc/four/utils.d.ts +5 -18
  103. package/dist/chains/bsc/four/utils.js +5 -1552
  104. package/dist/chains/bsc/iro.d.ts +5 -0
  105. package/dist/chains/bsc/iro.js +4 -0
  106. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  109. package/dist/chains/bsc/pancake/bundle-buy-first.js +99 -214
  110. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  112. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  113. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  114. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  115. package/dist/chains/bsc/pancake/index.js +1 -3
  116. package/dist/chains/bsc/platforms/iro/constants.js +1 -1
  117. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  118. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  119. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  120. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  121. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  122. package/dist/chains/bsc/platforms/iro/token.js +5 -2
  123. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  124. package/dist/chains/eni/batch-router/transfer.js +57 -27
  125. package/dist/chains/eni/batch-router/utils.js +32 -6
  126. package/dist/chains/eni/bundler/sign.js +5 -6
  127. package/dist/chains/eni/bundler/submit.js +1 -4
  128. package/dist/chains/eni/constants.js +2 -2
  129. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  130. package/dist/chains/eni/flat-aliases.js +8 -0
  131. package/dist/chains/eni/index.d.ts +2 -1
  132. package/dist/chains/eni/index.js +1 -0
  133. package/dist/chains/eni/platforms/daoaas/create.js +3 -3
  134. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  135. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  136. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  137. package/dist/chains/eni/platforms/daoaas/portal-direct.js +29 -45
  138. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  139. package/dist/chains/eni/platforms/dswap/liquidity.js +59 -27
  140. package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
  141. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  142. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  143. package/dist/chains/eni/platforms/fair-launch/launcher.js +88 -47
  144. package/dist/chains/eni/platforms/fair-launch/pool.js +5 -2
  145. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  146. package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
  147. package/dist/chains/eni/platforms/iro/constants.js +2 -2
  148. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  149. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  150. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  151. package/dist/chains/eni/platforms/iro/index.js +4 -4
  152. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  153. package/dist/chains/eni/platforms/iro/token.js +108 -32
  154. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  155. package/dist/chains/eni/submit.d.ts +43 -0
  156. package/dist/chains/eni/submit.js +287 -0
  157. package/dist/chains/index.d.ts +13 -0
  158. package/dist/chains/index.js +13 -0
  159. package/dist/chains/monad/constants.js +1 -1
  160. package/dist/chains/xlayer/constants.d.ts +5 -0
  161. package/dist/chains/xlayer/constants.js +1 -1
  162. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  163. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  164. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  165. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  166. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  167. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  168. package/dist/chains/xlayer/eip7702/bundle-sell.js +30 -112
  169. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  170. package/dist/chains/xlayer/eip7702/bundle-swap.js +52 -246
  171. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  172. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  173. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  174. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  175. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  176. package/dist/chains/xlayer/eip7702/index.js +28 -81
  177. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  178. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  179. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  180. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +64 -308
  181. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  182. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  183. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  184. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  185. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  186. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  187. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  188. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  189. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  190. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  191. package/dist/chains/xlayer/eoa/constants.js +2 -16
  192. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  193. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  194. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  195. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  196. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  197. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  198. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  199. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  200. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  201. package/dist/chains/xlayer/eoa/index.js +8 -23
  202. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  203. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  204. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  205. package/dist/chains/xlayer/eoa/types.js +1 -3
  206. package/dist/chains/xlayer/index.d.ts +3 -2
  207. package/dist/chains/xlayer/index.js +4 -7
  208. package/dist/core/amount/split-by-weight.d.ts +5 -0
  209. package/dist/core/amount/split-by-weight.js +35 -0
  210. package/dist/{shared → core}/clients/blockrazor.d.ts +4 -8
  211. package/dist/{shared → core}/clients/blockrazor.js +43 -35
  212. package/dist/{shared → core}/clients/club48.d.ts +2 -2
  213. package/dist/{shared → core}/clients/club48.js +36 -30
  214. package/dist/{shared → core}/clients/emitservice.js +2 -0
  215. package/dist/{shared → core}/clients/four.d.ts +21 -6
  216. package/dist/{shared → core}/clients/four.js +29 -24
  217. package/dist/core/clients/index.d.ts +8 -0
  218. package/dist/core/clients/index.js +8 -0
  219. package/dist/{shared → core}/clients/merkle.d.ts +4 -3
  220. package/dist/{shared → core}/clients/merkle.js +30 -47
  221. package/dist/{shared → core}/constants/addresses.d.ts +27 -1
  222. package/dist/{shared → core}/constants/addresses.js +39 -2
  223. package/dist/{shared → core}/constants/chains.d.ts +1 -1
  224. package/dist/{shared → core}/constants/chains.js +1 -1
  225. package/dist/{shared → core}/constants/gas.d.ts +1 -1
  226. package/dist/{shared → core}/constants/gas.js +2 -6
  227. package/dist/{shared → core}/constants/index.d.ts +5 -2
  228. package/dist/{shared → core}/constants/index.js +3 -2
  229. package/dist/core/constants/quote.d.ts +30 -0
  230. package/dist/core/constants/quote.js +37 -0
  231. package/dist/core/dex/v3-path.d.ts +6 -0
  232. package/dist/core/dex/v3-path.js +35 -0
  233. package/dist/core/erc20/decimals.d.ts +7 -0
  234. package/dist/core/erc20/decimals.js +24 -0
  235. package/dist/{utils → core}/erc20.d.ts +7 -89
  236. package/dist/{utils → core}/erc20.js +99 -130
  237. package/dist/core/foundation.d.ts +15 -0
  238. package/dist/core/foundation.js +14 -0
  239. package/dist/core/gas/bundle-gas.d.ts +49 -0
  240. package/dist/core/gas/bundle-gas.js +93 -0
  241. package/dist/core/gas/profit-hop.d.ts +20 -0
  242. package/dist/core/gas/profit-hop.js +72 -0
  243. package/dist/core/index.d.ts +5 -0
  244. package/dist/core/index.js +5 -0
  245. package/dist/core/legacy-types/errors.d.ts +27 -0
  246. package/dist/core/legacy-types/errors.js +34 -0
  247. package/dist/core/nonce/nonce-manager.d.ts +19 -0
  248. package/dist/core/nonce/nonce-manager.js +217 -0
  249. package/dist/core/normalize-unknown.d.ts +9 -0
  250. package/dist/core/normalize-unknown.js +29 -0
  251. package/dist/core/sdk-logger.d.ts +13 -0
  252. package/dist/core/sdk-logger.js +12 -0
  253. package/dist/core/shared-abis/common.d.ts +4 -0
  254. package/dist/core/shared-abis/common.js +4 -0
  255. package/dist/core/shared-abis/index.d.ts +5 -0
  256. package/dist/core/shared-abis/index.js +5 -0
  257. package/dist/core/tx/build-request.d.ts +17 -0
  258. package/dist/core/tx/build-request.js +25 -0
  259. package/dist/core/tx/sign-batch.d.ts +5 -0
  260. package/dist/core/tx/sign-batch.js +26 -0
  261. package/dist/core/tx/wallet-sign-patch.d.ts +1 -0
  262. package/dist/core/tx/wallet-sign-patch.js +18 -0
  263. package/dist/core/types/airdrop-sweep.d.ts +79 -0
  264. package/dist/core/types/airdrop-sweep.js +1 -0
  265. package/dist/core/types/erc20.d.ts +65 -0
  266. package/dist/core/types/erc20.js +1 -0
  267. package/dist/core/types/holders-maker.d.ts +64 -0
  268. package/dist/core/types/holders-maker.js +1 -0
  269. package/dist/core/types/index.d.ts +7 -0
  270. package/dist/core/types/index.js +1 -0
  271. package/dist/{utils → core/types}/lp-inspect.d.ts +4 -52
  272. package/dist/core/types/lp-inspect.js +1 -0
  273. package/dist/core/types/multicall.d.ts +5 -0
  274. package/dist/core/types/multicall.js +1 -0
  275. package/dist/core/types/private-sale.d.ts +35 -0
  276. package/dist/core/types/private-sale.js +1 -0
  277. package/dist/core/types/quote-helpers.d.ts +17 -0
  278. package/dist/core/types/quote-helpers.js +1 -0
  279. package/dist/core/types-erc20.d.ts +1 -0
  280. package/dist/core/types-erc20.js +1 -0
  281. package/dist/core/wallet/generate.d.ts +5 -0
  282. package/dist/core/wallet/generate.js +8 -0
  283. package/dist/domains/dex/direct-router-helpers.d.ts +269 -0
  284. package/dist/domains/dex/direct-router-helpers.js +536 -0
  285. package/dist/domains/dex/direct-router.d.ts +28 -0
  286. package/dist/{dex → domains/dex}/direct-router.js +246 -674
  287. package/dist/domains/dex/types.d.ts +81 -0
  288. package/dist/domains/dex/types.js +1 -0
  289. package/dist/{shared → domains}/flap/abi.js +1 -1
  290. package/dist/{shared → domains}/flap/constants.d.ts +1 -2
  291. package/dist/{shared → domains}/flap/constants.js +3 -4
  292. package/dist/{shared → domains}/flap/curve.js +3 -0
  293. package/dist/{shared → domains}/flap/errors.d.ts +1 -4
  294. package/dist/{shared → domains}/flap/errors.js +20 -1
  295. package/dist/domains/flap/index.d.ts +7 -0
  296. package/dist/domains/flap/index.js +5 -0
  297. package/dist/{shared → domains}/flap/meta.d.ts +22 -18
  298. package/dist/{shared → domains}/flap/meta.js +32 -24
  299. package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +4 -5
  300. package/dist/{shared/flap/index.js → domains/flap/module.js} +4 -5
  301. package/dist/{shared → domains}/flap/permit.js +10 -3
  302. package/dist/{shared → domains}/flap/pinata.d.ts +22 -6
  303. package/dist/{shared → domains}/flap/pinata.js +21 -26
  304. package/dist/domains/flap/portal-bundle-merkle/config.d.ts +10 -0
  305. package/dist/domains/flap/portal-bundle-merkle/config.js +13 -0
  306. package/dist/domains/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  307. package/dist/domains/flap/portal-bundle-merkle/core-helpers.js +83 -0
  308. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -4
  309. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +168 -175
  310. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  311. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +97 -118
  312. package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +105 -123
  313. package/dist/domains/flap/portal-bundle-merkle/index.d.ts +18 -0
  314. package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +4 -7
  315. package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +73 -70
  316. package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +63 -116
  317. package/dist/domains/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  318. package/dist/domains/flap/portal-bundle-merkle/swap-batch.js +227 -0
  319. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  320. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  321. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first.d.ts +2 -0
  322. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  323. package/dist/domains/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  324. package/dist/domains/flap/portal-bundle-merkle/swap-cross.js +139 -0
  325. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  326. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  327. package/dist/domains/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  328. package/dist/domains/flap/portal-bundle-merkle/swap-planning.js +182 -0
  329. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  330. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  331. package/dist/domains/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  332. package/dist/domains/flap/portal-bundle-merkle/swap-single.js +184 -0
  333. package/dist/domains/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  334. package/dist/domains/flap/portal-bundle-merkle/swap-types.js +1 -0
  335. package/dist/domains/flap/portal-bundle-merkle/swap.d.ts +8 -0
  336. package/dist/domains/flap/portal-bundle-merkle/swap.js +7 -0
  337. package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +88 -12
  338. package/dist/domains/flap/portal-bundle-merkle/types.js +1 -0
  339. package/dist/domains/flap/portal-bundle-merkle/utils.d.ts +10 -0
  340. package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +145 -265
  341. package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
  342. package/dist/{shared → domains}/flap/portal-bundle.js +84 -79
  343. package/dist/domains/flap/portal-create-token.d.ts +81 -0
  344. package/dist/domains/flap/portal-create-token.js +255 -0
  345. package/dist/{shared → domains}/flap/portal.d.ts +1 -2
  346. package/dist/{shared → domains}/flap/portal.js +36 -28
  347. package/dist/{shared → domains}/flap/vanity.d.ts +6 -6
  348. package/dist/{shared → domains}/flap/vanity.js +15 -21
  349. package/dist/{shared → domains}/flap/vault.d.ts +25 -93
  350. package/dist/{shared → domains}/flap/vault.js +77 -127
  351. package/dist/{flows → domains/flows}/create.d.ts +2 -1
  352. package/dist/{flows → domains/flows}/create.js +8 -8
  353. package/dist/domains/flows/index.d.ts +9 -0
  354. package/dist/domains/flows/index.js +9 -0
  355. package/dist/{contracts → domains/four/contracts}/helper3.d.ts +20 -5
  356. package/dist/{contracts → domains/four/contracts}/helper3.js +56 -20
  357. package/dist/domains/four/contracts/tm-bundle-helpers.d.ts +88 -0
  358. package/dist/domains/four/contracts/tm-bundle-helpers.js +73 -0
  359. package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +4 -52
  360. package/dist/{contracts → domains/four/contracts}/tm-bundle.js +122 -189
  361. package/dist/{contracts → domains/four/contracts}/tm.d.ts +10 -8
  362. package/dist/{contracts → domains/four/contracts}/tm.js +39 -35
  363. package/dist/{contracts → domains/four/contracts}/tm1.js +9 -4
  364. package/dist/{contracts → domains/four/contracts}/tm2.js +10 -5
  365. package/dist/domains/four/index.d.ts +7 -0
  366. package/dist/domains/four/index.js +7 -0
  367. package/dist/{shared → domains}/four/tax-token.d.ts +1 -1
  368. package/dist/{shared → domains}/four/tax-token.js +31 -10
  369. package/dist/domains/holders/holders-maker-helpers.d.ts +9 -0
  370. package/dist/domains/holders/holders-maker-helpers.js +9 -0
  371. package/dist/domains/holders/holders-maker.d.ts +18 -0
  372. package/dist/domains/holders/holders-maker.js +324 -0
  373. package/dist/domains/holders/index.d.ts +1 -0
  374. package/dist/domains/holders/index.js +1 -0
  375. package/dist/domains/holders/internal/addresses.d.ts +12 -0
  376. package/dist/domains/holders/internal/addresses.js +15 -0
  377. package/dist/domains/holders/internal/buy-tx.d.ts +44 -0
  378. package/dist/domains/holders/internal/buy-tx.js +278 -0
  379. package/dist/domains/holders/internal/constants.d.ts +6 -0
  380. package/dist/domains/holders/internal/constants.js +7 -0
  381. package/dist/domains/holders/internal/disperse.d.ts +18 -0
  382. package/dist/domains/holders/internal/disperse.js +90 -0
  383. package/dist/domains/holders/internal/routing.d.ts +4 -0
  384. package/dist/domains/holders/internal/routing.js +45 -0
  385. package/dist/domains/holders/internal/transfer-tx.d.ts +4 -0
  386. package/dist/domains/holders/internal/transfer-tx.js +67 -0
  387. package/dist/domains/holders/types.d.ts +1 -0
  388. package/dist/domains/holders/types.js +1 -0
  389. package/dist/domains/lp-inspect/index.d.ts +1 -0
  390. package/dist/domains/lp-inspect/index.js +1 -0
  391. package/dist/domains/lp-inspect/lp-inspect-helpers.d.ts +9 -0
  392. package/dist/domains/lp-inspect/lp-inspect-helpers.js +109 -0
  393. package/dist/domains/lp-inspect/lp-inspect.d.ts +40 -0
  394. package/dist/{utils → domains/lp-inspect}/lp-inspect.js +78 -293
  395. package/dist/domains/lp-inspect/types.d.ts +1 -0
  396. package/dist/domains/lp-inspect/types.js +1 -0
  397. package/dist/domains/merkle/index.d.ts +12 -0
  398. package/dist/domains/merkle/index.js +11 -0
  399. package/dist/domains/private-sale/index.d.ts +1 -0
  400. package/dist/domains/private-sale/index.js +1 -0
  401. package/dist/domains/private-sale/private-sale.d.ts +34 -0
  402. package/dist/{utils → domains/private-sale}/private-sale.js +5 -16
  403. package/dist/domains/private-sale/types.d.ts +1 -0
  404. package/dist/domains/private-sale/types.js +1 -0
  405. package/dist/domains/quote/index.d.ts +1 -0
  406. package/dist/domains/quote/index.js +1 -0
  407. package/dist/{utils → domains/quote}/quote-helpers.d.ts +4 -45
  408. package/dist/{utils → domains/quote}/quote-helpers.js +17 -74
  409. package/dist/domains/quote/types.d.ts +1 -0
  410. package/dist/domains/quote/types.js +1 -0
  411. package/dist/domains/vanity/index.d.ts +5 -0
  412. package/dist/domains/vanity/index.js +5 -0
  413. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  414. package/dist/exports/root-bundle-and-tooling.js +30 -0
  415. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  416. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  417. package/dist/exports/root-foundations.d.ts +35 -0
  418. package/dist/exports/root-foundations.js +70 -0
  419. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  420. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  421. package/dist/index.d.ts +17 -88
  422. package/dist/index.js +17 -218
  423. package/dist/utils/airdrop-sweep.d.ts +4 -76
  424. package/dist/utils/airdrop-sweep.js +42 -55
  425. package/dist/utils/bundle-helpers.d.ts +9 -243
  426. package/dist/utils/bundle-helpers.js +10 -584
  427. package/dist/utils/constants.d.ts +5 -61
  428. package/dist/utils/constants.js +5 -80
  429. package/dist/utils/contract-factory.d.ts +2 -4
  430. package/dist/utils/contract-factory.js +25 -18
  431. package/dist/utils/errors.d.ts +12 -1
  432. package/dist/utils/errors.js +60 -1
  433. package/dist/utils/hop-chains.d.ts +35 -0
  434. package/dist/utils/hop-chains.js +215 -0
  435. package/dist/utils/index.d.ts +5 -0
  436. package/dist/utils/index.js +5 -0
  437. package/dist/utils/mpcExclusive.d.ts +2 -5
  438. package/dist/utils/mpcExclusive.js +4 -3
  439. package/dist/utils/provider-factory.d.ts +4 -0
  440. package/dist/utils/provider-factory.js +10 -0
  441. package/dist/utils/stealth-transfer.d.ts +2 -28
  442. package/dist/utils/stealth-transfer.js +41 -21
  443. package/dist/utils/swap-helpers.d.ts +2 -15
  444. package/dist/utils/swap-helpers.js +7 -12
  445. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  446. package/dist/utils/types/airdrop-sweep.js +1 -0
  447. package/dist/utils/types/contract-factory.d.ts +1 -0
  448. package/dist/utils/types/contract-factory.js +1 -0
  449. package/dist/utils/types/errors.d.ts +1 -0
  450. package/dist/utils/types/errors.js +1 -0
  451. package/dist/utils/types/hop-chains.d.ts +8 -0
  452. package/dist/utils/types/hop-chains.js +1 -0
  453. package/dist/utils/types/index.d.ts +13 -0
  454. package/dist/utils/types/index.js +1 -0
  455. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  456. package/dist/utils/types/mpc-exclusive.js +1 -0
  457. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  458. package/dist/utils/types/stealth-transfer.js +1 -0
  459. package/dist/utils/types/wallet.d.ts +25 -0
  460. package/dist/utils/types/wallet.js +1 -0
  461. package/dist/utils/wallet.d.ts +4 -25
  462. package/dist/utils/wallet.js +27 -22
  463. package/package.json +96 -2
  464. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -26
  465. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -113
  466. package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -70
  467. package/dist/contracts/tm-bundle-merkle/config.js +0 -114
  468. package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
  469. package/dist/contracts/tm-bundle-merkle/index.js +0 -29
  470. package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -48
  471. package/dist/contracts/tm-bundle-merkle/internal.js +0 -240
  472. package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -146
  473. package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -20
  474. package/dist/contracts/tm-bundle-merkle/utils.js +0 -1503
  475. package/dist/dex/direct-router.d.ts +0 -150
  476. package/dist/shared/abis/TaxToken.json +0 -105
  477. package/dist/shared/abis/TokenManager2.json +0 -60
  478. package/dist/shared/flap/graduated-dex.d.ts +0 -1
  479. package/dist/shared/flap/graduated-dex.js +0 -1
  480. package/dist/shared/flap/launch-v6.d.ts +0 -132
  481. package/dist/shared/flap/launch-v6.js +0 -137
  482. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +0 -79
  483. package/dist/shared/flap/portal-bundle-merkle/config.js +0 -133
  484. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +0 -14
  485. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  486. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +0 -201
  487. package/dist/shared/flap/portal-bundle-merkle/swap.js +0 -1359
  488. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +0 -89
  489. package/dist/shared/flap/portal-create-token.d.ts +0 -63
  490. package/dist/shared/flap/portal-create-token.js +0 -258
  491. package/dist/shared/four/index.d.ts +0 -7
  492. package/dist/shared/four/index.js +0 -22
  493. package/dist/shared/index.d.ts +0 -10
  494. package/dist/shared/index.js +0 -10
  495. package/dist/utils/holders-maker.d.ts +0 -154
  496. package/dist/utils/holders-maker.js +0 -945
  497. package/dist/utils/pcs-infinity-cl.d.ts +0 -65
  498. package/dist/utils/pcs-infinity-cl.js +0 -426
  499. package/dist/utils/private-sale.d.ts +0 -90
  500. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  501. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
  502. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.d.ts +0 -0
  503. /package/dist/{shared/flap/portal-bundle-merkle/types.js → bundle/four-meme/types/buy-first.js} +0 -0
  504. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/types.js +0 -0
  505. /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
  506. /package/dist/{shared → core}/constants/profit.d.ts +0 -0
  507. /package/dist/{shared → core}/constants/profit.js +0 -0
  508. /package/dist/{dex → domains/dex}/index.d.ts +0 -0
  509. /package/dist/{dex → domains/dex}/index.js +0 -0
  510. /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
  511. /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
  512. /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
  513. /package/dist/{shared → domains}/flap/ipfs.js +0 -0
  514. /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
  515. /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  516. /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  517. /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
  518. /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
  519. /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
@@ -1,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';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * IRO 平台常量 — 合约地址 + ABI
3
3
  */
4
- import { ADDRESSES } from '../../../../shared/constants/index.js';
4
+ import { ADDRESSES } from '../../../../core/constants/index.js';
5
5
  // ============================================================================
6
6
  // 合约地址
7
7
  // ============================================================================
@@ -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]);
@@ -10,12 +10,15 @@ import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
10
10
  import { BSC_CHAIN_ID, BSC_RPC_URL } from '../../constants.js';
11
11
  import { IRO_TOKEN_ABI, SUBSCRIBE_GAS_LIMIT } from './constants.js';
12
12
  import { buildProfitHopTransactions, PROFIT_HOP_COUNT } from '../../../../utils/bundle-helpers.js';
13
- import { getProfitRecipient } from '../../../../shared/constants/profit.js';
13
+ import { getProfitRecipient } from '../../../../core/constants/profit.js';
14
14
  const tokenIface = new Interface(IRO_TOKEN_ABI);
15
15
  // ============================================================================
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,13 +8,14 @@
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 { getProfitRecipient, calculateTransferFee } from '../../../shared/constants/profit.js';
17
- import { GAS_LIMITS } from '../../../shared/constants/gas.js';
16
+ import { ERC20_ABI } from '../../../abis/common.js';
17
+ import { getProfitRecipient, calculateTransferFee } from '../../../core/constants/profit.js';
18
+ import { GAS_LIMITS } from '../../../core/constants/gas.js';
18
19
  const erc20Iface = new Interface(ERC20_ABI);
19
20
  const DEFAULT_GAS_PER_SWEEP = 200000n;
20
21
  const GAS_NATIVE_TRANSFER = 21000n;
@@ -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();
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 通用常量请使用 shared/constants
5
5
  */
6
- import { CHAINS, ADDRESSES, GAS_LIMITS } from '../../shared/constants/index.js';
6
+ import { CHAINS, ADDRESSES, GAS_LIMITS } from '../../core/constants/index.js';
7
7
  // ============================================================================
8
8
  // 链配置(从 shared 导出)
9
9
  // ============================================================================
@@ -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';