four-flap-meme-sdk 1.9.49 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/README.en.md +41 -6
  2. package/README.md +31 -0
  3. package/README.zh-CN.md +41 -6
  4. package/dist/abis/common.js +74 -68
  5. package/dist/abis/flap/vault.js +9 -7
  6. package/dist/abis/index.d.ts +3 -4
  7. package/dist/abis/index.js +3 -4
  8. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  9. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  10. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  11. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  12. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  13. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  14. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  15. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  16. package/dist/bundle-core/config-helpers.d.ts +36 -0
  17. package/dist/bundle-core/config-helpers.js +57 -0
  18. package/dist/bundle-core/errors.d.ts +50 -0
  19. package/dist/bundle-core/errors.js +34 -0
  20. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  21. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  22. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  23. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  24. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  25. package/dist/bundle-core/four-meme/core.js +515 -0
  26. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  27. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  28. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  29. package/dist/bundle-core/four-meme/private.js +465 -0
  30. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  31. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  32. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  33. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  34. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  35. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  36. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  37. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  38. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  39. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  40. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  41. package/dist/bundle-core/four-meme/swap.js +505 -0
  42. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  43. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  44. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  45. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  46. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  47. package/dist/bundle-core/four-meme/types/index.js +1 -0
  48. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  49. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  50. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  51. package/dist/bundle-core/four-meme/types.js +1 -0
  52. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  53. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  54. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  55. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  56. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  57. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  58. package/dist/bundle-core/index.d.ts +8 -0
  59. package/dist/bundle-core/index.js +8 -0
  60. package/dist/bundle-core/internal.d.ts +21 -0
  61. package/dist/bundle-core/internal.js +182 -0
  62. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  63. package/dist/bundle-core/sign-context-helpers.js +67 -0
  64. package/dist/bundle-core/submit.d.ts +293 -0
  65. package/dist/bundle-core/submit.js +727 -0
  66. package/dist/bundle-core/types/index.d.ts +8 -0
  67. package/dist/bundle-core/types/index.js +1 -0
  68. package/dist/bundle-core/types.d.ts +1 -0
  69. package/dist/bundle-core/types.js +1 -0
  70. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  71. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -116
  72. package/dist/chains/bsc/four/config.d.ts +5 -70
  73. package/dist/chains/bsc/four/config.js +2 -115
  74. package/dist/chains/bsc/four/core.d.ts +1 -4
  75. package/dist/chains/bsc/four/core.js +1 -589
  76. package/dist/chains/bsc/four/disperse.d.ts +12 -0
  77. package/dist/chains/bsc/four/disperse.js +470 -0
  78. package/dist/chains/bsc/four/index.d.ts +6 -6
  79. package/dist/chains/bsc/four/index.js +6 -6
  80. package/dist/chains/bsc/four/internal.d.ts +2 -50
  81. package/dist/chains/bsc/four/internal.js +2 -237
  82. package/dist/chains/bsc/four/pairwise.d.ts +7 -0
  83. package/dist/chains/bsc/four/pairwise.js +308 -0
  84. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  85. package/dist/chains/bsc/four/pancake-proxy.js +1 -688
  86. package/dist/chains/bsc/four/private.d.ts +1 -27
  87. package/dist/chains/bsc/four/private.js +1 -477
  88. package/dist/chains/bsc/four/submit.d.ts +2 -315
  89. package/dist/chains/bsc/four/submit.js +2 -746
  90. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  91. package/dist/chains/bsc/four/swap-buy-first.js +2 -506
  92. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  93. package/dist/chains/bsc/four/swap-internal.js +1 -18
  94. package/dist/chains/bsc/four/swap.d.ts +2 -144
  95. package/dist/chains/bsc/four/swap.js +2 -760
  96. package/dist/chains/bsc/four/sweep.d.ts +13 -0
  97. package/dist/chains/bsc/four/sweep.js +788 -0
  98. package/dist/chains/bsc/four/types.d.ts +1 -476
  99. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  100. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  101. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  102. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  103. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  104. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  105. package/dist/chains/bsc/four/utils.d.ts +5 -18
  106. package/dist/chains/bsc/four/utils.js +5 -1534
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  109. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  110. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -207
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  112. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  113. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  114. package/dist/chains/bsc/pancake/bundle-swap.js +111 -686
  115. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  116. package/dist/chains/bsc/pancake/index.js +1 -3
  117. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  118. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  119. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  120. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  121. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  122. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  123. package/dist/chains/eni/batch-router/transfer.js +54 -23
  124. package/dist/chains/eni/batch-router/utils.js +32 -6
  125. package/dist/chains/eni/bundler/sign.js +4 -4
  126. package/dist/chains/eni/bundler/submit.js +1 -4
  127. package/dist/chains/eni/constants.js +1 -1
  128. package/dist/chains/eni/index.d.ts +1 -1
  129. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  130. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  131. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  132. package/dist/chains/eni/platforms/daoaas/meta.js +8 -4
  133. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -43
  134. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  135. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  136. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  137. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  138. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -47
  139. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  140. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  141. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  142. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  143. package/dist/chains/eni/platforms/iro/index.js +4 -4
  144. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  145. package/dist/chains/eni/platforms/iro/token.js +107 -31
  146. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  147. package/dist/chains/eni/submit.js +5 -13
  148. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  149. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -20
  150. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  151. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  152. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -56
  153. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  154. package/dist/chains/xlayer/eip7702/bundle-sell.js +26 -74
  155. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  156. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -68
  157. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  158. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  159. package/dist/chains/xlayer/eip7702/index.d.ts +27 -46
  160. package/dist/chains/xlayer/eip7702/index.js +27 -81
  161. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  162. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  163. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  164. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +58 -291
  165. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  166. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  167. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  168. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  169. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  170. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  171. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  172. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  173. package/dist/chains/xlayer/eip7702/volume.js +83 -158
  174. package/dist/chains/xlayer/eoa/constants.js +1 -1
  175. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  176. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  177. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  178. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  179. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +64 -276
  180. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  181. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +14 -14
  182. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  183. package/dist/chains/xlayer/eoa/index.js +8 -23
  184. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  185. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  186. package/dist/chains/xlayer/eoa/types-core.d.ts +363 -0
  187. package/dist/chains/xlayer/eoa/types-core.js +53 -0
  188. package/dist/chains/xlayer/eoa/types-create.d.ts +413 -0
  189. package/dist/chains/xlayer/eoa/types-create.js +9 -0
  190. package/dist/chains/xlayer/eoa/types-volume.d.ts +209 -0
  191. package/dist/chains/xlayer/eoa/types-volume.js +13 -0
  192. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  193. package/dist/chains/xlayer/eoa/types.js +1 -3
  194. package/dist/contracts/helper3.d.ts +20 -17
  195. package/dist/contracts/helper3.js +56 -20
  196. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  197. package/dist/contracts/tm-bundle-helpers.js +72 -0
  198. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  199. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -117
  200. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -70
  201. package/dist/contracts/tm-bundle-merkle/config.js +2 -115
  202. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  203. package/dist/contracts/tm-bundle-merkle/core.js +1 -588
  204. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  205. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  206. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -50
  207. package/dist/contracts/tm-bundle-merkle/internal.js +2 -236
  208. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  209. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -687
  210. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  211. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  212. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  213. package/dist/contracts/tm-bundle-merkle/submit.js +3 -919
  214. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  215. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -505
  216. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  217. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  218. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  219. package/dist/contracts/tm-bundle-merkle/swap.js +2 -757
  220. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  221. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  222. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  223. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  224. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  225. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  226. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  227. package/dist/contracts/tm-bundle-merkle/utils.d.ts +5 -6
  228. package/dist/contracts/tm-bundle-merkle/utils.js +5 -6
  229. package/dist/contracts/tm-bundle.d.ts +3 -51
  230. package/dist/contracts/tm-bundle.js +102 -142
  231. package/dist/contracts/tm.d.ts +3 -2
  232. package/dist/contracts/tm.js +36 -32
  233. package/dist/contracts/tm1.js +9 -4
  234. package/dist/contracts/tm2.js +9 -4
  235. package/dist/dex/direct-router-helpers.d.ts +264 -0
  236. package/dist/dex/direct-router-helpers.js +539 -0
  237. package/dist/dex/direct-router.d.ts +3 -125
  238. package/dist/dex/direct-router.js +237 -652
  239. package/dist/dex/types.d.ts +81 -0
  240. package/dist/dex/types.js +1 -0
  241. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  242. package/dist/exports/root-bundle-and-tooling.js +30 -0
  243. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  244. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  245. package/dist/exports/root-foundations.d.ts +35 -0
  246. package/dist/exports/root-foundations.js +70 -0
  247. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  248. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  249. package/dist/flows/create.d.ts +2 -2
  250. package/dist/flows/create.js +6 -6
  251. package/dist/flows/index.d.ts +1 -0
  252. package/dist/flows/index.js +1 -0
  253. package/dist/index.d.ts +20 -91
  254. package/dist/index.js +20 -215
  255. package/dist/shared/abis/common.d.ts +2 -83
  256. package/dist/shared/abis/common.js +2 -252
  257. package/dist/shared/abis/index.d.ts +5 -6
  258. package/dist/shared/abis/index.js +5 -7
  259. package/dist/shared/clients/blockrazor.js +41 -24
  260. package/dist/shared/clients/club48.js +30 -26
  261. package/dist/shared/clients/emitservice.js +2 -0
  262. package/dist/shared/clients/four.js +23 -18
  263. package/dist/shared/clients/index.d.ts +8 -0
  264. package/dist/shared/clients/index.js +8 -0
  265. package/dist/shared/clients/merkle.js +26 -30
  266. package/dist/shared/constants/addresses.d.ts +1 -1
  267. package/dist/shared/constants/addresses.js +11 -2
  268. package/dist/shared/constants/chains.d.ts +1 -1
  269. package/dist/shared/constants/chains.js +1 -1
  270. package/dist/shared/constants/gas.d.ts +1 -1
  271. package/dist/shared/constants/gas.js +2 -6
  272. package/dist/shared/constants/index.d.ts +1 -0
  273. package/dist/shared/constants/index.js +1 -0
  274. package/dist/shared/constants/quote.d.ts +30 -0
  275. package/dist/shared/constants/quote.js +37 -0
  276. package/dist/shared/flap/__tests__/curve.test.js +3 -3
  277. package/dist/shared/flap/abi.js +1 -1
  278. package/dist/shared/flap/constants.d.ts +1 -1
  279. package/dist/shared/flap/constants.js +2 -2
  280. package/dist/shared/flap/curve.js +3 -0
  281. package/dist/shared/flap/errors.d.ts +1 -4
  282. package/dist/shared/flap/errors.js +21 -3
  283. package/dist/shared/flap/index.d.ts +2 -2
  284. package/dist/shared/flap/index.js +2 -2
  285. package/dist/shared/flap/meta.d.ts +16 -18
  286. package/dist/shared/flap/meta.js +14 -26
  287. package/dist/shared/flap/permit.js +6 -5
  288. package/dist/shared/flap/pinata.d.ts +9 -2
  289. package/dist/shared/flap/pinata.js +20 -18
  290. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  291. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  292. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  293. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  294. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  295. package/dist/shared/flap/portal-bundle-merkle/core.js +66 -156
  296. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +81 -86
  297. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  298. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  299. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  300. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  301. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  302. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  303. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  304. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  305. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  306. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  307. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  308. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  309. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  310. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +73 -3
  311. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +100 -0
  312. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +133 -0
  313. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  314. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  315. package/dist/shared/flap/portal-bundle.js +54 -42
  316. package/dist/shared/flap/portal.js +32 -10
  317. package/dist/shared/flap/vanity.js +4 -7
  318. package/dist/shared/flap/vault.d.ts +1 -1
  319. package/dist/shared/flap/vault.js +54 -48
  320. package/dist/shared/flap 2/__tests__/curve.test.d.ts +1 -0
  321. package/dist/shared/flap 2/portal-bundle-merkle/types.js +1 -0
  322. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  323. package/dist/shared/foundation/dex/v3-path.js +35 -0
  324. package/dist/shared/foundation/gas/bundle-gas.d.ts +39 -0
  325. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  326. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  327. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  328. package/dist/shared/foundation/index.d.ts +13 -0
  329. package/dist/shared/foundation/index.js +12 -0
  330. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  331. package/dist/shared/foundation/nonce/nonce-manager.js +180 -0
  332. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  333. package/dist/shared/foundation/normalize-unknown.js +29 -0
  334. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  335. package/dist/shared/foundation/sdk-logger.js +12 -0
  336. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  337. package/dist/shared/foundation/tx/build-request.js +25 -0
  338. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  339. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  340. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  341. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  342. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  343. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  344. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  345. package/dist/shared/foundation/types/erc20.js +1 -0
  346. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  347. package/dist/shared/foundation/types/holders-maker.js +1 -0
  348. package/dist/shared/foundation/types/index.d.ts +7 -0
  349. package/dist/shared/foundation/types/index.js +1 -0
  350. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  351. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  352. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  353. package/dist/shared/foundation/types/multicall.js +1 -0
  354. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  355. package/dist/shared/foundation/types/private-sale.js +1 -0
  356. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  357. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  358. package/dist/shared/four/tax-token.d.ts +1 -1
  359. package/dist/shared/four/tax-token.js +27 -7
  360. package/dist/shared/index.d.ts +4 -0
  361. package/dist/shared/index.js +4 -0
  362. package/dist/types/distribute.d.ts +72 -0
  363. package/dist/types/distribute.js +1 -0
  364. package/dist/types 2/errors.d.ts +27 -0
  365. package/dist/types 2/errors.js +34 -0
  366. package/dist/utils/airdrop-sweep-types.d.ts +1 -0
  367. package/dist/utils/airdrop-sweep-types.js +1 -0
  368. package/dist/utils/airdrop-sweep.d.ts +4 -76
  369. package/dist/utils/airdrop-sweep.js +38 -52
  370. package/dist/utils/bundle-helpers.d.ts +9 -243
  371. package/dist/utils/bundle-helpers.js +10 -584
  372. package/dist/utils/constants.d.ts +5 -61
  373. package/dist/utils/constants.js +5 -80
  374. package/dist/utils/contract-factory.d.ts +2 -4
  375. package/dist/utils/contract-factory.js +25 -18
  376. package/dist/utils/erc20-types.d.ts +1 -0
  377. package/dist/utils/erc20-types.js +1 -0
  378. package/dist/utils/erc20.d.ts +8 -90
  379. package/dist/utils/erc20.js +94 -153
  380. package/dist/utils/errors.d.ts +10 -22
  381. package/dist/utils/errors.js +61 -79
  382. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  383. package/dist/utils/holders-maker/addresses.js +15 -0
  384. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  385. package/dist/utils/holders-maker/buy-tx.js +278 -0
  386. package/dist/utils/holders-maker/constants.d.ts +6 -0
  387. package/dist/utils/holders-maker/constants.js +7 -0
  388. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  389. package/dist/utils/holders-maker/disperse.js +90 -0
  390. package/dist/utils/holders-maker/routing.d.ts +4 -0
  391. package/dist/utils/holders-maker/routing.js +45 -0
  392. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  393. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  394. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  395. package/dist/utils/holders-maker-helpers.js +9 -0
  396. package/dist/utils/holders-maker-types.d.ts +1 -0
  397. package/dist/utils/holders-maker-types.js +1 -0
  398. package/dist/utils/holders-maker.d.ts +2 -138
  399. package/dist/utils/holders-maker.js +23 -651
  400. package/dist/utils/hop-chains.d.ts +35 -0
  401. package/dist/utils/hop-chains.js +215 -0
  402. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  403. package/dist/utils/lp-inspect-helpers.js +109 -0
  404. package/dist/utils/lp-inspect-types.d.ts +1 -0
  405. package/dist/utils/lp-inspect-types.js +1 -0
  406. package/dist/utils/lp-inspect.d.ts +2 -112
  407. package/dist/utils/lp-inspect.js +63 -195
  408. package/dist/utils/mpcExclusive.d.ts +2 -5
  409. package/dist/utils/mpcExclusive.js +4 -3
  410. package/dist/utils/private-sale-types.d.ts +1 -0
  411. package/dist/utils/private-sale-types.js +1 -0
  412. package/dist/utils/private-sale.d.ts +2 -58
  413. package/dist/utils/private-sale.js +2 -7
  414. package/dist/utils/provider-factory.d.ts +4 -0
  415. package/dist/utils/provider-factory.js +10 -0
  416. package/dist/utils/quote-helpers-types.d.ts +1 -0
  417. package/dist/utils/quote-helpers-types.js +1 -0
  418. package/dist/utils/quote-helpers.d.ts +4 -45
  419. package/dist/utils/quote-helpers.js +15 -65
  420. package/dist/utils/stealth-transfer.d.ts +2 -28
  421. package/dist/utils/stealth-transfer.js +30 -14
  422. package/dist/utils/swap-helpers.d.ts +0 -3
  423. package/dist/utils/swap-helpers.js +6 -9
  424. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  425. package/dist/utils/types/airdrop-sweep.js +1 -0
  426. package/dist/utils/types/contract-factory.d.ts +1 -0
  427. package/dist/utils/types/contract-factory.js +1 -0
  428. package/dist/utils/types/erc20.d.ts +1 -0
  429. package/dist/utils/types/erc20.js +1 -0
  430. package/dist/utils/types/errors.d.ts +1 -0
  431. package/dist/utils/types/errors.js +1 -0
  432. package/dist/utils/types/holders-maker.d.ts +1 -0
  433. package/dist/utils/types/holders-maker.js +1 -0
  434. package/dist/utils/types/hop-chains.d.ts +8 -0
  435. package/dist/utils/types/hop-chains.js +1 -0
  436. package/dist/utils/types/index.d.ts +13 -0
  437. package/dist/utils/types/index.js +1 -0
  438. package/dist/utils/types/lp-inspect.d.ts +1 -0
  439. package/dist/utils/types/lp-inspect.js +1 -0
  440. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  441. package/dist/utils/types/mpc-exclusive.js +1 -0
  442. package/dist/utils/types/private-sale.d.ts +1 -0
  443. package/dist/utils/types/private-sale.js +1 -0
  444. package/dist/utils/types/quote-helpers.d.ts +1 -0
  445. package/dist/utils/types/quote-helpers.js +1 -0
  446. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  447. package/dist/utils/types/stealth-transfer.js +1 -0
  448. package/dist/utils/types/wallet.d.ts +25 -0
  449. package/dist/utils/types/wallet.js +1 -0
  450. package/dist/utils/wallet.d.ts +2 -25
  451. package/dist/utils/wallet.js +9 -10
  452. package/package.json +55 -2
  453. package/src/abis/contracts/TaxToken.json +969 -0
  454. package/src/abis/contracts/TokenManager.json +836 -0
  455. package/src/abis/contracts/TokenManager2.json +136 -0
  456. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  457. /package/dist/{shared 2/flap/__tests__/curve.test.d.ts → bundle-core/__tests__/config-helpers.test.d.ts} +0 -0
  458. /package/dist/{shared 2/flap/portal-bundle-merkle/types.js → bundle-core/__tests__/facade-parity.test.d.ts} +0 -0
  459. /package/dist/{shared 2/abis → shared/abis 2}/TaxToken.json +0 -0
  460. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager.json +0 -0
  461. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager2.json +0 -0
  462. /package/dist/{shared 2/abis → shared/abis 2}/TokenManagerHelper3.json +0 -0
  463. /package/dist/{shared 2/abis → shared/abis 2}/common.d.ts +0 -0
  464. /package/dist/{shared 2/abis → shared/abis 2}/common.js +0 -0
  465. /package/dist/{shared 2/abis → shared/abis 2}/index.d.ts +0 -0
  466. /package/dist/{shared 2/abis → shared/abis 2}/index.js +0 -0
  467. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.d.ts +0 -0
  468. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.js +0 -0
  469. /package/dist/{shared 2/clients → shared/clients 2}/club48.d.ts +0 -0
  470. /package/dist/{shared 2/clients → shared/clients 2}/club48.js +0 -0
  471. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.d.ts +0 -0
  472. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.js +0 -0
  473. /package/dist/{shared 2/clients → shared/clients 2}/four.d.ts +0 -0
  474. /package/dist/{shared 2/clients → shared/clients 2}/four.js +0 -0
  475. /package/dist/{shared 2/clients → shared/clients 2}/merkle.d.ts +0 -0
  476. /package/dist/{shared 2/clients → shared/clients 2}/merkle.js +0 -0
  477. /package/dist/{shared 2/flap → shared/flap 2}/__tests__/curve.test.js +0 -0
  478. /package/dist/{shared 2/flap → shared/flap 2}/abi.d.ts +0 -0
  479. /package/dist/{shared 2/flap → shared/flap 2}/abi.js +0 -0
  480. /package/dist/{shared 2/flap → shared/flap 2}/constants.d.ts +0 -0
  481. /package/dist/{shared 2/flap → shared/flap 2}/constants.js +0 -0
  482. /package/dist/{shared 2/flap → shared/flap 2}/curve.d.ts +0 -0
  483. /package/dist/{shared 2/flap → shared/flap 2}/curve.js +0 -0
  484. /package/dist/{shared 2/flap → shared/flap 2}/errors.d.ts +0 -0
  485. /package/dist/{shared 2/flap → shared/flap 2}/errors.js +0 -0
  486. /package/dist/{shared 2/flap → shared/flap 2}/index.d.ts +0 -0
  487. /package/dist/{shared 2/flap → shared/flap 2}/index.js +0 -0
  488. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.d.ts +0 -0
  489. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.js +0 -0
  490. /package/dist/{shared 2/flap → shared/flap 2}/meta.d.ts +0 -0
  491. /package/dist/{shared 2/flap → shared/flap 2}/meta.js +0 -0
  492. /package/dist/{shared 2/flap → shared/flap 2}/permit.d.ts +0 -0
  493. /package/dist/{shared 2/flap → shared/flap 2}/permit.js +0 -0
  494. /package/dist/{shared 2/flap → shared/flap 2}/pinata.d.ts +0 -0
  495. /package/dist/{shared 2/flap → shared/flap 2}/pinata.js +0 -0
  496. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.d.ts +0 -0
  497. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.js +0 -0
  498. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.d.ts +0 -0
  499. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.js +0 -0
  500. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.d.ts +0 -0
  501. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.js +0 -0
  502. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  503. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.js +0 -0
  504. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.d.ts +0 -0
  505. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.js +0 -0
  506. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  507. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.js +0 -0
  508. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.d.ts +0 -0
  509. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.js +0 -0
  510. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.d.ts +0 -0
  511. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.js +0 -0
  512. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.d.ts +0 -0
  513. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.js +0 -0
  514. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/types.d.ts +0 -0
  515. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.d.ts +0 -0
  516. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.js +0 -0
  517. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.d.ts +0 -0
  518. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.js +0 -0
  519. /package/dist/{shared 2/flap → shared/flap 2}/portal.d.ts +0 -0
  520. /package/dist/{shared 2/flap → shared/flap 2}/portal.js +0 -0
  521. /package/dist/{shared 2/flap → shared/flap 2}/vanity.d.ts +0 -0
  522. /package/dist/{shared 2/flap → shared/flap 2}/vanity.js +0 -0
  523. /package/dist/{shared 2/flap → shared/flap 2}/vault.d.ts +0 -0
  524. /package/dist/{shared 2/flap → shared/flap 2}/vault.js +0 -0
  525. /package/dist/{shared 2/four → shared/four 2}/index.d.ts +0 -0
  526. /package/dist/{shared 2/four → shared/four 2}/index.js +0 -0
  527. /package/dist/{shared 2/four → shared/four 2}/tax-token.d.ts +0 -0
  528. /package/dist/{shared 2/four → shared/four 2}/tax-token.js +0 -0
  529. /package/dist/{shared 2/index.d.ts → shared/index 2.js} +0 -0
  530. /package/dist/{shared 2/index.js → shared/index.d 2.ts} +0 -0
@@ -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';
@@ -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);
@@ -440,12 +455,28 @@ export async function eniSweepForSubmit(params) {
440
455
  return { signedTransactions: [] };
441
456
  if (hopCount > 0) {
442
457
  return eniSweepWithHops({
443
- provider, validKeys, validAmounts, target, targetPrivateKey,
444
- 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,
445
469
  });
446
470
  }
447
- const result = await batchSweepToken({ rpcUrl, token: tokenAddress, privateKeys: validKeys, amounts: validAmounts, target, gasLimit: erc20GasLimit });
448
- 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);
449
480
  if (targetPrivateKey) {
450
481
  const profitTxGasCost = GAS_LIMITS.NATIVE_TRANSFER * maxFeePerGas;
451
482
  const profitAmount = calculateTransferFee(ENI_CHAIN_ID, validKeys.length) + profitTxGasCost;
@@ -484,8 +515,8 @@ async function eniSweepWithHops(params) {
484
515
  const sourceWallet = new Wallet(validKeys[i], provider);
485
516
  const amountWei = validAmounts[i];
486
517
  const hops = hopWallets[i];
487
- const fullChain = [sourceWallet, ...hops.map(h => new Wallet(h.privateKey, provider))];
488
- 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];
489
520
  const sourceNonce = await sourceWallet.getNonce();
490
521
  if (isNative) {
491
522
  for (let j = 0; j < addresses.length - 1; j++) {
@@ -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();
@@ -32,7 +32,7 @@ export async function signOperation(params) {
32
32
  const { privateKey, bundlerAddress, op, rpcUrl } = params;
33
33
  const wallet = new Wallet(privateKey);
34
34
  const signer = wallet.address;
35
- const nonce = params.nonce ?? await getBundlerNonce({ rpcUrl, bundlerAddress, signer });
35
+ const nonce = params.nonce ?? (await getBundlerNonce({ rpcUrl, bundlerAddress, signer }));
36
36
  const deadline = BigInt(Math.floor(Date.now() / 1000) + DEFAULT_DEADLINE_SEC);
37
37
  const domain = buildDomain(bundlerAddress);
38
38
  const value = {
@@ -61,7 +61,7 @@ export async function signTokenPull(params) {
61
61
  const { privateKey, bundlerAddress, token, spender, amount, rpcUrl } = params;
62
62
  const wallet = new Wallet(privateKey);
63
63
  const signer = wallet.address;
64
- const nonce = params.nonce ?? await getBundlerNonce({ rpcUrl, bundlerAddress, signer });
64
+ const nonce = params.nonce ?? (await getBundlerNonce({ rpcUrl, bundlerAddress, signer }));
65
65
  const deadline = BigInt(Math.floor(Date.now() / 1000) + DEFAULT_DEADLINE_SEC);
66
66
  const domain = buildDomain(bundlerAddress);
67
67
  const value = {
@@ -91,8 +91,8 @@ export async function signOperationsBatch(params) {
91
91
  if (privateKeys.length !== ops.length) {
92
92
  throw new Error(`privateKeys.length (${privateKeys.length}) !== ops.length (${ops.length})`);
93
93
  }
94
- const signers = privateKeys.map(k => new Wallet(k).address);
95
- const nonces = await Promise.all(signers.map(signer => getBundlerNonce({ rpcUrl, bundlerAddress, signer })));
94
+ const signers = privateKeys.map((k) => new Wallet(k).address);
95
+ const nonces = await Promise.all(signers.map((signer) => getBundlerNonce({ rpcUrl, bundlerAddress, signer })));
96
96
  return Promise.all(privateKeys.map((pk, i) => signOperation({
97
97
  privateKey: pk,
98
98
  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
  // ============================================================================
@@ -15,7 +15,7 @@ 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';
@@ -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';
@@ -5,8 +5,8 @@
5
5
  * 提供代币 Logo、社交链接、描述等元信息查询
6
6
  */
7
7
  import { Contract, JsonRpcProvider } from 'ethers';
8
- import { ENI_CHAIN_ID, ENI_RPC_URL, } from '../../constants.js';
9
- import { ERC20_ABI } from '../../../../shared/abis/common.js';
8
+ import { ENI_CHAIN_ID, ENI_RPC_URL } from '../../constants.js';
9
+ import { ERC20_ABI } from '../../../../abis/common.js';
10
10
  /**
11
11
  * 从 ERC20 合约获取 DAOaaS Portal 代币基本元数据
12
12
  * Portal 的 getTokenState 仅返回状态码,name/symbol 从 ERC20 接口获取
@@ -21,7 +21,9 @@ export async function getTokenMeta(token, rpcUrl = ENI_RPC_URL) {
21
21
  tokenContract.symbol(),
22
22
  ]);
23
23
  }
24
- catch { /* ignore */ }
24
+ catch {
25
+ /* ignore */
26
+ }
25
27
  return {
26
28
  token,
27
29
  name,
@@ -50,7 +52,9 @@ export async function getFairLaunchTokenMeta(token, rpcUrl = ENI_RPC_URL) {
50
52
  meta = JSON.parse(info.metadata);
51
53
  }
52
54
  }
53
- catch { /* metadata may not be valid JSON */ }
55
+ catch {
56
+ /* metadata may not be valid JSON */
57
+ }
54
58
  return {
55
59
  token: info.token ?? token,
56
60
  name: info.name ?? '',