four-flap-meme-sdk 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/README.en.md +41 -6
  2. package/README.md +31 -0
  3. package/README.zh-CN.md +41 -6
  4. package/dist/__tests__/subpath-exports.test.d.ts +1 -0
  5. package/dist/__tests__/subpath-exports.test.js +64 -0
  6. package/dist/abis/common.d.ts +85 -0
  7. package/dist/abis/common.js +264 -0
  8. package/dist/abis/contracts/TaxToken.json +969 -0
  9. package/dist/abis/contracts/TokenManager2.json +136 -0
  10. package/dist/abis/contracts/index.d.ts +5 -0
  11. package/dist/abis/contracts/index.js +5 -0
  12. package/dist/abis/flap/index.d.ts +3 -0
  13. package/dist/abis/flap/index.js +3 -0
  14. package/dist/abis/flap/portal-events.d.ts +6 -0
  15. package/dist/abis/flap/portal-events.js +17 -0
  16. package/dist/abis/flap/portal.d.ts +6 -0
  17. package/dist/abis/flap/portal.js +37 -0
  18. package/dist/abis/flap/vault.d.ts +171 -0
  19. package/dist/abis/flap/vault.js +91 -0
  20. package/dist/abis/index.d.ts +8 -0
  21. package/dist/abis/index.js +11 -0
  22. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
  23. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  24. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
  25. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  26. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  27. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  28. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  29. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  30. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  31. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  32. package/dist/bundle-core/config-helpers.d.ts +36 -0
  33. package/dist/bundle-core/config-helpers.js +57 -0
  34. package/dist/bundle-core/errors.d.ts +50 -0
  35. package/dist/bundle-core/errors.js +35 -0
  36. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  37. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  38. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  39. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  40. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  41. package/dist/bundle-core/four-meme/core.js +515 -0
  42. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  43. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  44. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  45. package/dist/bundle-core/four-meme/private.js +465 -0
  46. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  47. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  48. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  49. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  50. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  51. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  52. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  53. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  54. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  55. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  56. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  57. package/dist/bundle-core/four-meme/swap.js +505 -0
  58. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  59. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  60. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  61. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  62. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  63. package/dist/bundle-core/four-meme/types/index.js +1 -0
  64. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  65. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  66. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  67. package/dist/bundle-core/four-meme/types.js +1 -0
  68. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  69. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  70. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  71. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  72. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  73. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  74. package/dist/bundle-core/index.d.ts +8 -0
  75. package/dist/bundle-core/index.js +8 -0
  76. package/dist/bundle-core/internal.d.ts +21 -0
  77. package/dist/bundle-core/internal.js +182 -0
  78. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  79. package/dist/bundle-core/sign-context-helpers.js +67 -0
  80. package/dist/bundle-core/submit.d.ts +293 -0
  81. package/dist/bundle-core/submit.js +727 -0
  82. package/dist/bundle-core/types/index.d.ts +8 -0
  83. package/dist/bundle-core/types/index.js +1 -0
  84. package/dist/bundle-core/types.d.ts +1 -0
  85. package/dist/bundle-core/types.js +1 -0
  86. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  87. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  88. package/dist/chains/bsc/four/config.d.ts +5 -67
  89. package/dist/chains/bsc/four/config.js +2 -114
  90. package/dist/chains/bsc/four/core.d.ts +1 -4
  91. package/dist/chains/bsc/four/core.js +1 -592
  92. package/dist/chains/bsc/four/index.d.ts +6 -6
  93. package/dist/chains/bsc/four/index.js +6 -6
  94. package/dist/chains/bsc/four/internal.d.ts +2 -46
  95. package/dist/chains/bsc/four/internal.js +2 -239
  96. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  97. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  98. package/dist/chains/bsc/four/private.d.ts +1 -27
  99. package/dist/chains/bsc/four/private.js +1 -477
  100. package/dist/chains/bsc/four/submit.d.ts +2 -315
  101. package/dist/chains/bsc/four/submit.js +2 -752
  102. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  103. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  104. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  105. package/dist/chains/bsc/four/swap-internal.js +1 -18
  106. package/dist/chains/bsc/four/swap.d.ts +2 -144
  107. package/dist/chains/bsc/four/swap.js +2 -766
  108. package/dist/chains/bsc/four/types.d.ts +1 -476
  109. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  110. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  111. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  112. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  113. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  114. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  115. package/dist/chains/bsc/four/utils.d.ts +5 -18
  116. package/dist/chains/bsc/four/utils.js +5 -1552
  117. package/dist/chains/bsc/iro.d.ts +5 -0
  118. package/dist/chains/bsc/iro.js +4 -0
  119. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  120. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  121. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  122. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -212
  123. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  124. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  125. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  126. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  127. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  128. package/dist/chains/bsc/pancake/index.js +1 -3
  129. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  130. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  131. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  132. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  133. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  134. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  135. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  136. package/dist/chains/eni/batch-router/transfer.js +55 -25
  137. package/dist/chains/eni/batch-router/utils.js +32 -6
  138. package/dist/chains/eni/bundler/sign.js +5 -6
  139. package/dist/chains/eni/bundler/submit.js +1 -4
  140. package/dist/chains/eni/constants.js +1 -1
  141. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  142. package/dist/chains/eni/flat-aliases.js +8 -0
  143. package/dist/chains/eni/index.d.ts +2 -1
  144. package/dist/chains/eni/index.js +1 -0
  145. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  146. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  147. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  148. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  149. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
  150. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  151. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  152. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  153. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  154. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
  155. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  156. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  157. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  158. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  159. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  160. package/dist/chains/eni/platforms/iro/index.js +4 -4
  161. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  162. package/dist/chains/eni/platforms/iro/token.js +107 -31
  163. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  164. package/dist/chains/eni/submit.d.ts +43 -0
  165. package/dist/chains/eni/submit.js +286 -0
  166. package/dist/chains/index.d.ts +13 -0
  167. package/dist/chains/index.js +13 -0
  168. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  169. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  170. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  171. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  172. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -59
  173. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  174. package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
  175. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  176. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
  177. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  178. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  179. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  180. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  181. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  182. package/dist/chains/xlayer/eip7702/index.js +28 -81
  183. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  184. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  185. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  186. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
  187. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  188. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  189. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  190. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  191. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  192. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  193. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  194. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  195. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  196. package/dist/chains/xlayer/eoa/constants.js +1 -1
  197. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  198. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  199. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  200. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  201. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  202. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  203. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  204. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  205. package/dist/chains/xlayer/eoa/index.js +8 -23
  206. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  207. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  208. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  209. package/dist/chains/xlayer/eoa/types.js +1 -3
  210. package/dist/chains/xlayer/index.d.ts +3 -2
  211. package/dist/chains/xlayer/index.js +4 -7
  212. package/dist/contracts/helper3.d.ts +20 -5
  213. package/dist/contracts/helper3.js +56 -20
  214. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  215. package/dist/contracts/tm-bundle-helpers.js +72 -0
  216. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  217. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
  218. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
  219. package/dist/contracts/tm-bundle-merkle/config.js +2 -114
  220. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  221. package/dist/contracts/tm-bundle-merkle/core.js +1 -591
  222. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  223. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  224. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
  225. package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
  226. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  227. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
  228. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  229. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  230. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  231. package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
  232. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  233. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
  234. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  235. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  236. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  237. package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
  238. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  239. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  240. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  241. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  242. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  243. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  244. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  245. package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
  246. package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
  247. package/dist/contracts/tm-bundle.d.ts +3 -51
  248. package/dist/contracts/tm-bundle.js +108 -177
  249. package/dist/contracts/tm.d.ts +3 -2
  250. package/dist/contracts/tm.js +37 -32
  251. package/dist/contracts/tm1.js +9 -4
  252. package/dist/contracts/tm2.js +9 -4
  253. package/dist/dex/direct-router-helpers.d.ts +264 -0
  254. package/dist/dex/direct-router-helpers.js +539 -0
  255. package/dist/dex/direct-router.d.ts +3 -125
  256. package/dist/dex/direct-router.js +237 -666
  257. package/dist/dex/types.d.ts +81 -0
  258. package/dist/dex/types.js +1 -0
  259. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  260. package/dist/exports/root-bundle-and-tooling.js +30 -0
  261. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  262. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  263. package/dist/exports/root-foundations.d.ts +35 -0
  264. package/dist/exports/root-foundations.js +70 -0
  265. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  266. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  267. package/dist/flap/index.d.ts +10 -0
  268. package/dist/flap/index.js +8 -0
  269. package/dist/flows/create.d.ts +2 -1
  270. package/dist/flows/create.js +6 -6
  271. package/dist/flows/index.d.ts +1 -0
  272. package/dist/flows/index.js +1 -0
  273. package/dist/index.d.ts +20 -85
  274. package/dist/index.js +20 -215
  275. package/dist/merkle/index.d.ts +12 -0
  276. package/dist/merkle/index.js +11 -0
  277. package/dist/shared/abis/common.d.ts +2 -83
  278. package/dist/shared/abis/common.js +2 -252
  279. package/dist/shared/abis/index.d.ts +5 -6
  280. package/dist/shared/abis/index.js +5 -7
  281. package/dist/shared/clients/blockrazor.js +39 -25
  282. package/dist/shared/clients/club48.d.ts +2 -2
  283. package/dist/shared/clients/club48.js +34 -29
  284. package/dist/shared/clients/emitservice.js +2 -0
  285. package/dist/shared/clients/four.d.ts +21 -6
  286. package/dist/shared/clients/four.js +29 -24
  287. package/dist/shared/clients/index.d.ts +8 -0
  288. package/dist/shared/clients/index.js +8 -0
  289. package/dist/shared/clients/merkle.js +27 -34
  290. package/dist/shared/constants/addresses.d.ts +1 -1
  291. package/dist/shared/constants/addresses.js +11 -2
  292. package/dist/shared/constants/chains.d.ts +1 -1
  293. package/dist/shared/constants/chains.js +1 -1
  294. package/dist/shared/constants/gas.d.ts +1 -1
  295. package/dist/shared/constants/gas.js +2 -6
  296. package/dist/shared/constants/index.d.ts +3 -0
  297. package/dist/shared/constants/index.js +1 -0
  298. package/dist/shared/constants/quote.d.ts +30 -0
  299. package/dist/shared/constants/quote.js +37 -0
  300. package/dist/shared/flap/abi.js +1 -1
  301. package/dist/shared/flap/constants.d.ts +1 -2
  302. package/dist/shared/flap/constants.js +2 -3
  303. package/dist/shared/flap/curve.js +3 -0
  304. package/dist/shared/flap/errors.d.ts +1 -4
  305. package/dist/shared/flap/errors.js +20 -1
  306. package/dist/shared/flap/index.d.ts +5 -4
  307. package/dist/shared/flap/index.js +5 -4
  308. package/dist/shared/flap/meta.d.ts +22 -18
  309. package/dist/shared/flap/meta.js +12 -17
  310. package/dist/shared/flap/permit.js +5 -2
  311. package/dist/shared/flap/pinata.d.ts +22 -6
  312. package/dist/shared/flap/pinata.js +21 -26
  313. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  314. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  315. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  316. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  317. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  318. package/dist/shared/flap/portal-bundle-merkle/core.js +86 -278
  319. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +7 -2
  320. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +101 -206
  321. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  322. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  323. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  324. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  325. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  326. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  327. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  328. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  329. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  330. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  331. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  332. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  333. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  334. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +83 -9
  335. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  336. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  337. package/dist/shared/flap/portal-bundle.js +55 -56
  338. package/dist/shared/flap/portal-create-token.d.ts +77 -0
  339. package/dist/shared/flap/portal-create-token.js +214 -0
  340. package/dist/shared/flap/portal.d.ts +14 -3
  341. package/dist/shared/flap/portal.js +50 -25
  342. package/dist/shared/flap/vanity.d.ts +1 -5
  343. package/dist/shared/flap/vanity.js +6 -17
  344. package/dist/shared/flap/vault.d.ts +17 -124
  345. package/dist/shared/flap/vault.js +67 -148
  346. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  347. package/dist/shared/foundation/dex/v3-path.js +35 -0
  348. package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
  349. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  350. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  351. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  352. package/dist/shared/foundation/index.d.ts +13 -0
  353. package/dist/shared/foundation/index.js +12 -0
  354. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  355. package/dist/shared/foundation/nonce/nonce-manager.js +183 -0
  356. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  357. package/dist/shared/foundation/normalize-unknown.js +29 -0
  358. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  359. package/dist/shared/foundation/sdk-logger.js +12 -0
  360. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  361. package/dist/shared/foundation/tx/build-request.js +25 -0
  362. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  363. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  364. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  365. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  366. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  367. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  368. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  369. package/dist/shared/foundation/types/erc20.js +1 -0
  370. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  371. package/dist/shared/foundation/types/holders-maker.js +1 -0
  372. package/dist/shared/foundation/types/index.d.ts +7 -0
  373. package/dist/shared/foundation/types/index.js +1 -0
  374. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  375. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  376. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  377. package/dist/shared/foundation/types/multicall.js +1 -0
  378. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  379. package/dist/shared/foundation/types/private-sale.js +1 -0
  380. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  381. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  382. package/dist/shared/four/tax-token.d.ts +1 -1
  383. package/dist/shared/four/tax-token.js +27 -7
  384. package/dist/shared/index.d.ts +6 -0
  385. package/dist/shared/index.js +4 -0
  386. package/dist/types/errors.d.ts +27 -0
  387. package/dist/types/errors.js +34 -0
  388. package/dist/utils/airdrop-sweep.d.ts +4 -76
  389. package/dist/utils/airdrop-sweep.js +42 -55
  390. package/dist/utils/bundle-helpers.d.ts +9 -243
  391. package/dist/utils/bundle-helpers.js +10 -584
  392. package/dist/utils/constants.d.ts +5 -61
  393. package/dist/utils/constants.js +5 -80
  394. package/dist/utils/contract-factory.d.ts +2 -4
  395. package/dist/utils/contract-factory.js +25 -18
  396. package/dist/utils/erc20.d.ts +7 -89
  397. package/dist/utils/erc20.js +94 -125
  398. package/dist/utils/errors.d.ts +12 -1
  399. package/dist/utils/errors.js +60 -1
  400. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  401. package/dist/utils/holders-maker/addresses.js +15 -0
  402. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  403. package/dist/utils/holders-maker/buy-tx.js +278 -0
  404. package/dist/utils/holders-maker/constants.d.ts +6 -0
  405. package/dist/utils/holders-maker/constants.js +7 -0
  406. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  407. package/dist/utils/holders-maker/disperse.js +90 -0
  408. package/dist/utils/holders-maker/routing.d.ts +4 -0
  409. package/dist/utils/holders-maker/routing.js +45 -0
  410. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  411. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  412. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  413. package/dist/utils/holders-maker-helpers.js +9 -0
  414. package/dist/utils/holders-maker.d.ts +2 -138
  415. package/dist/utils/holders-maker.js +26 -661
  416. package/dist/utils/hop-chains.d.ts +35 -0
  417. package/dist/utils/hop-chains.js +215 -0
  418. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  419. package/dist/utils/lp-inspect-helpers.js +109 -0
  420. package/dist/utils/lp-inspect.d.ts +2 -112
  421. package/dist/utils/lp-inspect.js +73 -223
  422. package/dist/utils/mpcExclusive.d.ts +2 -5
  423. package/dist/utils/mpcExclusive.js +4 -3
  424. package/dist/utils/private-sale.d.ts +2 -58
  425. package/dist/utils/private-sale.js +4 -15
  426. package/dist/utils/provider-factory.d.ts +4 -0
  427. package/dist/utils/provider-factory.js +10 -0
  428. package/dist/utils/quote-helpers.d.ts +4 -45
  429. package/dist/utils/quote-helpers.js +17 -74
  430. package/dist/utils/stealth-transfer.d.ts +2 -28
  431. package/dist/utils/stealth-transfer.js +31 -15
  432. package/dist/utils/swap-helpers.d.ts +2 -15
  433. package/dist/utils/swap-helpers.js +6 -11
  434. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  435. package/dist/utils/types/airdrop-sweep.js +1 -0
  436. package/dist/utils/types/contract-factory.d.ts +1 -0
  437. package/dist/utils/types/contract-factory.js +1 -0
  438. package/dist/utils/types/erc20.d.ts +1 -0
  439. package/dist/utils/types/erc20.js +1 -0
  440. package/dist/utils/types/errors.d.ts +1 -0
  441. package/dist/utils/types/errors.js +1 -0
  442. package/dist/utils/types/holders-maker.d.ts +1 -0
  443. package/dist/utils/types/holders-maker.js +1 -0
  444. package/dist/utils/types/hop-chains.d.ts +8 -0
  445. package/dist/utils/types/hop-chains.js +1 -0
  446. package/dist/utils/types/index.d.ts +13 -0
  447. package/dist/utils/types/index.js +1 -0
  448. package/dist/utils/types/lp-inspect.d.ts +1 -0
  449. package/dist/utils/types/lp-inspect.js +1 -0
  450. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  451. package/dist/utils/types/mpc-exclusive.js +1 -0
  452. package/dist/utils/types/private-sale.d.ts +1 -0
  453. package/dist/utils/types/private-sale.js +1 -0
  454. package/dist/utils/types/quote-helpers.d.ts +1 -0
  455. package/dist/utils/types/quote-helpers.js +1 -0
  456. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  457. package/dist/utils/types/stealth-transfer.js +1 -0
  458. package/dist/utils/types/wallet.d.ts +25 -0
  459. package/dist/utils/types/wallet.js +1 -0
  460. package/dist/utils/wallet.d.ts +2 -25
  461. package/dist/utils/wallet.js +13 -10
  462. package/dist/vanity/index.d.ts +5 -0
  463. package/dist/vanity/index.js +5 -0
  464. package/package.json +160 -4
  465. package/src/abis/contracts/TaxToken.json +969 -0
  466. package/src/abis/contracts/TokenManager.json +836 -0
  467. package/src/abis/contracts/TokenManager2.json +136 -0
  468. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  469. package/dist/shared/abis/TaxToken.json +0 -105
  470. package/dist/shared/abis/TokenManager2.json +0 -60
  471. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  472. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
@@ -7,7 +7,7 @@
7
7
  * - 查询代币列表
8
8
  */
9
9
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
10
- import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_LAUNCHER_ABI, NATIVE_TRANSFER_GAS_LIMIT, } from '../../constants.js';
10
+ import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_LAUNCHER_ABI, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
11
11
  import { LP_FAIR_LAUNCHER_ADDRESS } from './constants.js';
12
12
  import { buildProfitTransfer } from '../daoaas/portal-direct.js';
13
13
  import { calculateProfitAmount, getProfitRateBps, getProfitRecipient } from '../../../../shared/constants/profit.js';
@@ -17,6 +17,8 @@ const launcherIface = new Interface(LP_FAIR_LAUNCHER_ABI);
17
17
  // 只读查询
18
18
  // ============================================================================
19
19
  export class FairLauncherQuery {
20
+ provider;
21
+ launcher;
20
22
  constructor(config = {}) {
21
23
  const rpcUrl = config.rpcUrl ?? ENI_RPC_URL;
22
24
  this.provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
@@ -257,54 +259,93 @@ export async function launchTokenForSubmit(params) {
257
259
  // ============================================================================
258
260
  function paramsToTuple(p) {
259
261
  return [
260
- p.name, p.symbol, p.logo, p.metadata,
261
- p.quoteTokenAddr, p.initialLp, p.initialQuote,
262
- p.lpAddRate, p.lpAddMin,
263
- p.buybackRate, p.buybackMin, p.buybackPath,
264
- p.marketingRates, p.marketingAddrs,
265
- p.vestingAmount, p.vestingLockEndTime, p.vestingReleaseEndTime,
266
- p.vestingRecipients, p.vestingRatios,
267
- p.tradeStartTime, p.claimStartTime, p.claimEndTime,
268
- p.lockTime, p.releasePeriod,
269
- p.maxCount, p.minAmount, p.maxAmount,
270
- p.whitelistEnabled, p.whitelistAddrs,
271
- p.inviteCodeEnabled, p.inviteCodes,
262
+ p.name,
263
+ p.symbol,
264
+ p.logo,
265
+ p.metadata,
266
+ p.quoteTokenAddr,
267
+ p.initialLp,
268
+ p.initialQuote,
269
+ p.lpAddRate,
270
+ p.lpAddMin,
271
+ p.buybackRate,
272
+ p.buybackMin,
273
+ p.buybackPath,
274
+ p.marketingRates,
275
+ p.marketingAddrs,
276
+ p.vestingAmount,
277
+ p.vestingLockEndTime,
278
+ p.vestingReleaseEndTime,
279
+ p.vestingRecipients,
280
+ p.vestingRatios,
281
+ p.tradeStartTime,
282
+ p.claimStartTime,
283
+ p.claimEndTime,
284
+ p.lockTime,
285
+ p.releasePeriod,
286
+ p.maxCount,
287
+ p.minAmount,
288
+ p.maxAmount,
289
+ p.whitelistEnabled,
290
+ p.whitelistAddrs,
291
+ p.inviteCodeEnabled,
292
+ p.inviteCodes,
272
293
  ];
273
294
  }
295
+ function readRawBigint(raw, key, index) {
296
+ const value = raw[key] ?? raw[index];
297
+ if (value === undefined || value === null)
298
+ return 0n;
299
+ return BigInt(value);
300
+ }
301
+ function readRawString(raw, key, index) {
302
+ const value = raw[key] ?? raw[index];
303
+ return typeof value === 'string' ? value : '';
304
+ }
305
+ function readRawStringArray(raw, key, index) {
306
+ const value = raw[key] ?? raw[index];
307
+ return Array.isArray(value) ? [...value] : [];
308
+ }
309
+ function readRawBigintArray(raw, key, index) {
310
+ const value = raw[key] ?? raw[index];
311
+ if (!Array.isArray(value))
312
+ return [];
313
+ return value.map((item) => BigInt(item));
314
+ }
274
315
  function parseFairLaunchTokenInfo(raw) {
275
316
  return {
276
- indexAll: BigInt(raw.indexAll ?? raw[0] ?? 0),
277
- user: raw.user ?? raw[1] ?? '',
278
- index: BigInt(raw.index ?? raw[2] ?? 0),
279
- tokenAddress: raw.tokenAddr ?? raw[3] ?? '',
280
- poolAddress: raw.poolAddr ?? raw[4] ?? '',
281
- vestingAddress: raw.vestingAddr ?? raw[5] ?? '',
282
- quoteTokenAddr: raw.quoteTokenAddr ?? raw[6] ?? '',
283
- initialSupply: BigInt(raw.initialSupply ?? raw[7] ?? 0),
284
- initialLP: BigInt(raw.initialLP ?? raw[8] ?? 0),
285
- initialQuote: BigInt(raw.initialQuote ?? raw[9] ?? 0),
286
- lpAddRate: BigInt(raw.lpAddRate ?? raw[10] ?? 0),
287
- buybackRate: BigInt(raw.buybackRate ?? raw[11] ?? 0),
288
- buybackPath: Array.from(raw.buybackPath ?? raw[12] ?? []),
289
- marketingRates: (raw.marketingRates ?? raw[13] ?? []).map((r) => BigInt(r)),
290
- marketingAddrs: Array.from(raw.marketingAddrs ?? raw[14] ?? []),
291
- vestingAmount: BigInt(raw.vestingAmount ?? raw[15] ?? 0),
292
- vestingLockEndTime: BigInt(raw.vestingLockEndTime ?? raw[16] ?? 0),
293
- vestingReleaseEndTime: BigInt(raw.vestingReleaseEndTime ?? raw[17] ?? 0),
294
- vestingRecipients: Array.from(raw.vestingRecipients ?? raw[18] ?? []),
295
- vestingRatios: (raw.vestingRatios ?? raw[19] ?? []).map((r) => BigInt(r)),
296
- tradeStartTime: BigInt(raw.tradeStartTime ?? raw[20] ?? 0),
297
- claimStartTime: BigInt(raw.claimStartTime ?? raw[21] ?? 0),
298
- claimEndTime: BigInt(raw.claimEndTime ?? raw[22] ?? 0),
299
- lockTime: BigInt(raw.lockTime ?? raw[23] ?? 0),
300
- releasePeriod: BigInt(raw.releasePeriod ?? raw[24] ?? 0),
301
- maxCount: BigInt(raw.maxCount ?? raw[25] ?? 0),
302
- minAmount: BigInt(raw.minAmount ?? raw[26] ?? 0),
303
- maxAmount: BigInt(raw.maxAmount ?? raw[27] ?? 0),
304
- name: raw.name ?? raw[28] ?? '',
305
- symbol: raw.symbol ?? raw[29] ?? '',
306
- logo: raw.logo ?? raw[30] ?? '',
307
- metadata: raw.metadata ?? raw[31] ?? '',
308
- timestamp: BigInt(raw.timestamp ?? raw[32] ?? 0),
317
+ indexAll: readRawBigint(raw, 'indexAll', 0),
318
+ user: readRawString(raw, 'user', 1),
319
+ index: readRawBigint(raw, 'index', 2),
320
+ tokenAddress: readRawString(raw, 'tokenAddr', 3),
321
+ poolAddress: readRawString(raw, 'poolAddr', 4),
322
+ vestingAddress: readRawString(raw, 'vestingAddr', 5),
323
+ quoteTokenAddr: readRawString(raw, 'quoteTokenAddr', 6),
324
+ initialSupply: readRawBigint(raw, 'initialSupply', 7),
325
+ initialLP: readRawBigint(raw, 'initialLP', 8),
326
+ initialQuote: readRawBigint(raw, 'initialQuote', 9),
327
+ lpAddRate: readRawBigint(raw, 'lpAddRate', 10),
328
+ buybackRate: readRawBigint(raw, 'buybackRate', 11),
329
+ buybackPath: readRawStringArray(raw, 'buybackPath', 12),
330
+ marketingRates: readRawBigintArray(raw, 'marketingRates', 13),
331
+ marketingAddrs: readRawStringArray(raw, 'marketingAddrs', 14),
332
+ vestingAmount: readRawBigint(raw, 'vestingAmount', 15),
333
+ vestingLockEndTime: readRawBigint(raw, 'vestingLockEndTime', 16),
334
+ vestingReleaseEndTime: readRawBigint(raw, 'vestingReleaseEndTime', 17),
335
+ vestingRecipients: readRawStringArray(raw, 'vestingRecipients', 18),
336
+ vestingRatios: readRawBigintArray(raw, 'vestingRatios', 19),
337
+ tradeStartTime: readRawBigint(raw, 'tradeStartTime', 20),
338
+ claimStartTime: readRawBigint(raw, 'claimStartTime', 21),
339
+ claimEndTime: readRawBigint(raw, 'claimEndTime', 22),
340
+ lockTime: readRawBigint(raw, 'lockTime', 23),
341
+ releasePeriod: readRawBigint(raw, 'releasePeriod', 24),
342
+ maxCount: readRawBigint(raw, 'maxCount', 25),
343
+ minAmount: readRawBigint(raw, 'minAmount', 26),
344
+ maxAmount: readRawBigint(raw, 'maxAmount', 27),
345
+ name: readRawString(raw, 'name', 28),
346
+ symbol: readRawString(raw, 'symbol', 29),
347
+ logo: readRawString(raw, 'logo', 30),
348
+ metadata: readRawString(raw, 'metadata', 31),
349
+ timestamp: readRawBigint(raw, 'timestamp', 32),
309
350
  };
310
351
  }
@@ -7,7 +7,7 @@
7
7
  * - 构建跟买交易 (claimForSubmit / batchClaimForSubmit)
8
8
  */
9
9
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
10
- import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_POOL_ABI, NATIVE_TRANSFER_GAS_LIMIT, } from '../../constants.js';
10
+ import { ENI_CHAIN_ID, ENI_RPC_URL, LP_FAIR_POOL_ABI, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
11
11
  import { buildProfitTransfer } from '../daoaas/portal-direct.js';
12
12
  import { calculateProfitAmount, getProfitRateBps, getProfitRecipient } from '../../../../shared/constants/profit.js';
13
13
  const poolIface = new Interface(LP_FAIR_POOL_ABI);
@@ -15,6 +15,9 @@ const poolIface = new Interface(LP_FAIR_POOL_ABI);
15
15
  // 查询
16
16
  // ============================================================================
17
17
  export class FairPoolQuery {
18
+ provider;
19
+ pool;
20
+ poolAddress;
18
21
  constructor(poolAddress, rpcUrl) {
19
22
  this.poolAddress = poolAddress;
20
23
  this.provider = new JsonRpcProvider(rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });
@@ -197,10 +197,10 @@ export function validateLaunchParams(params) {
197
197
  // 模式检测(从参数推断类型)
198
198
  // ============================================================================
199
199
  export function detectLaunchType(params) {
200
- const hasMarketing = params.marketingRates.length > 0 && params.marketingRates.some(r => r > 0n);
200
+ const hasMarketing = params.marketingRates.length > 0 && params.marketingRates.some((r) => r > 0n);
201
201
  const hasBuyback = params.buybackRate > 0n;
202
202
  const hasLpAdd = params.lpAddRate > 0n;
203
- const isBurn = hasMarketing && params.marketingAddrs.every(a => a.toLowerCase() === DEAD_ADDRESS.toLowerCase());
203
+ const isBurn = hasMarketing && params.marketingAddrs.every((a) => a.toLowerCase() === DEAD_ADDRESS.toLowerCase());
204
204
  if (isBurn)
205
205
  return TokenLaunchType.Deflationary;
206
206
  if (hasBuyback && hasMarketing)
@@ -4,7 +4,7 @@
4
4
  * ENI 使用 EIP-1559 (type 2) 交易,与 BSC (type 0) 不同
5
5
  */
6
6
  import { JsonRpcProvider } from 'ethers';
7
- import type { IroCreateParams, IroCreateProjectResult, IroQueryConfig, IroFactoryTokenInfo } from './types.js';
7
+ import type { IroCreateParams, IroCreateProjectResult, IroQueryConfig, IroFactoryTokenInfo, IroCreateProjectParams } from './types.js';
8
8
  export declare class IroFactoryQuery {
9
9
  private provider;
10
10
  private factory;
@@ -20,7 +20,7 @@ export declare class IroFactoryQuery {
20
20
  }>;
21
21
  get providerInstance(): JsonRpcProvider;
22
22
  }
23
- export declare function encodeCreateProjectCall(params: import('./types.js').IroCreateProjectParams): string;
23
+ export declare function encodeCreateProjectCall(params: IroCreateProjectParams): string;
24
24
  export declare function createProject(params: IroCreateParams): Promise<IroCreateProjectResult>;
25
25
  export declare function parseCreateProjectEvent(receipt: {
26
26
  logs: Array<{
@@ -5,12 +5,14 @@
5
5
  */
6
6
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
7
7
  import { ENI_CHAIN_ID, ENI_RPC_URL } from '../../constants.js';
8
- import { ENI_IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, CREATE_PROJECT_GAS_LIMIT, } from './constants.js';
8
+ import { ENI_IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, CREATE_PROJECT_GAS_LIMIT } from './constants.js';
9
9
  const factoryIface = new Interface(IRO_FACTORY_ABI);
10
10
  // ============================================================================
11
11
  // 只读查询
12
12
  // ============================================================================
13
13
  export class IroFactoryQuery {
14
+ provider;
15
+ factory;
14
16
  constructor(config = {}) {
15
17
  const rpcUrl = config.rpcUrl ?? ENI_RPC_URL;
16
18
  const chainId = config.chainId ?? ENI_CHAIN_ID;
@@ -8,11 +8,11 @@
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 { ENI_IRO_FACTORY_ADDRESS, ENI_IRO_OWNER_ADDRESS, ENI_IRO_SELL_FEE_CONTRACT, ENI_IROSWAP_V2_ROUTER, ENI_IROSWAP_V2_FACTORY, ENI_USDT, 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';
15
- export { ENI_IRO_PLATFORM_URL, setIroApiBase, iroApiCreateProject, iroApiUploadImage, } from './api.js';
16
- export type { IroApiCreateProjectRequest, IroApiCreateProjectResponse, IroApiUploadImageResponse, } from './api.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
+ export { ENI_IRO_PLATFORM_URL, setIroApiBase, iroApiCreateProject, iroApiUploadImage } from './api.js';
16
+ export type { IroApiCreateProjectRequest, IroApiCreateProjectResponse, IroApiUploadImageResponse } from './api.js';
17
17
  export { IRO_OWNER_WHITELIST_ABI, WHITELIST_GAS_LIMIT, BATCH_WHITELIST_GAS_LIMIT, getTokenWhiteList, addTokenWhiteListForSubmit, batchAddTokenWhiteListForSubmit, removeTokenWhiteListForSubmit, } from './whitelist.js';
18
18
  export type { WhitelistManageConfig, AddWhitelistParams, BatchAddWhitelistParams, RemoveWhitelistParams, GetWhitelistParams, } from './whitelist.js';
@@ -13,19 +13,19 @@ export { ENI_IRO_FACTORY_ADDRESS, ENI_IRO_OWNER_ADDRESS, ENI_IRO_SELL_FEE_CONTRA
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
27
27
  // ============================================================================
28
- export { ENI_IRO_PLATFORM_URL, setIroApiBase, iroApiCreateProject, iroApiUploadImage, } from './api.js';
28
+ export { ENI_IRO_PLATFORM_URL, setIroApiBase, iroApiCreateProject, iroApiUploadImage } from './api.js';
29
29
  // ============================================================================
30
30
  // Whitelist Management (IROOwner)
31
31
  // ============================================================================
@@ -11,38 +11,79 @@ const poolIface = new Interface(IRO_POOL_ABI);
11
11
  // 查询
12
12
  // ============================================================================
13
13
  export class IroPoolQuery {
14
+ provider;
15
+ pool;
16
+ poolAddress;
14
17
  constructor(poolAddress, rpcUrl, chainId) {
15
18
  this.poolAddress = poolAddress;
16
19
  this.provider = new JsonRpcProvider(rpcUrl ?? ENI_RPC_URL, chainId ?? ENI_CHAIN_ID, { staticNetwork: true });
17
20
  this.pool = new Contract(poolAddress, IRO_POOL_ABI, this.provider);
18
21
  }
19
- async token() { return this.pool.token(); }
20
- async totalShare() { return this.pool.totalShare(); }
21
- async produceNum() { return this.pool.produceNum(); }
22
- async produceLpNum() { return this.pool.produceLpNum(); }
23
- async produceLimit() { return this.pool.produceLimit(); }
24
- async lastAddProduce() { return this.pool.lastAddProduce(); }
25
- async getDeposit(account) { return this.pool.getDeposit(account); }
26
- async getUserPledgeLpForUsdt(user) { return this.pool.getUserPledgeLpForUsdt(user); }
27
- async getLPValueForUSDTValue(targetTKAValue) { return this.pool.getLPValueForUSDTValue(targetTKAValue); }
22
+ async token() {
23
+ return this.pool.token();
24
+ }
25
+ async totalShare() {
26
+ return this.pool.totalShare();
27
+ }
28
+ async produceNum() {
29
+ return this.pool.produceNum();
30
+ }
31
+ async produceLpNum() {
32
+ return this.pool.produceLpNum();
33
+ }
34
+ async produceLimit() {
35
+ return this.pool.produceLimit();
36
+ }
37
+ async lastAddProduce() {
38
+ return this.pool.lastAddProduce();
39
+ }
40
+ async getDeposit(account) {
41
+ return this.pool.getDeposit(account);
42
+ }
43
+ async getUserPledgeLpForUsdt(user) {
44
+ return this.pool.getUserPledgeLpForUsdt(user);
45
+ }
46
+ async getLPValueForUSDTValue(targetTKAValue) {
47
+ return this.pool.getLPValueForUSDTValue(targetTKAValue);
48
+ }
28
49
  async increaseRateMap(index) {
29
50
  const raw = await this.pool.increaseRateMap(index);
30
51
  return { status: raw[0], rate: BigInt(raw[1]) };
31
52
  }
32
- async totalSupply() { return this.pool.totalSupply(); }
33
- async balanceOf(account) { return this.pool.balanceOf(account); }
34
- async lastPrice() { return this.pool.lastPrice(); }
53
+ async totalSupply() {
54
+ return this.pool.totalSupply();
55
+ }
56
+ async balanceOf(account) {
57
+ return this.pool.balanceOf(account);
58
+ }
59
+ async lastPrice() {
60
+ return this.pool.lastPrice();
61
+ }
35
62
  async userAward(account) {
36
63
  const raw = await this.pool.userAward(account);
37
64
  return {
38
- deposit: BigInt(raw[0]), debt: BigInt(raw[1]), share: BigInt(raw[2]), lastTimestamp: BigInt(raw[3]),
39
- totalDeposit: BigInt(raw[4]), totalInviteReward: BigInt(raw[5]), lastInviteReward: BigInt(raw[6]), pledgeNum: BigInt(raw[7]),
65
+ deposit: BigInt(raw[0]),
66
+ debt: BigInt(raw[1]),
67
+ share: BigInt(raw[2]),
68
+ lastTimestamp: BigInt(raw[3]),
69
+ totalDeposit: BigInt(raw[4]),
70
+ totalInviteReward: BigInt(raw[5]),
71
+ lastInviteReward: BigInt(raw[6]),
72
+ pledgeNum: BigInt(raw[7]),
40
73
  };
41
74
  }
42
- async getUserStake(account) { return this.pool.getUserStake(account); }
43
- async ownerAddr() { return this.pool.ownerAddr(); }
44
- async isInitialized() { return this.pool.isInitialized(); }
45
- get providerInstance() { return this.provider; }
75
+ async getUserStake(account) {
76
+ return this.pool.getUserStake(account);
77
+ }
78
+ async ownerAddr() {
79
+ return this.pool.ownerAddr();
80
+ }
81
+ async isInitialized() {
82
+ return this.pool.isInitialized();
83
+ }
84
+ get providerInstance() {
85
+ return this.provider;
86
+ }
46
87
  }
47
88
  // ============================================================================
48
89
  // 写入操作 — EIP-1559
@@ -57,8 +98,14 @@ export async function poolRemovePledge(params) {
57
98
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
58
99
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
59
100
  const signedTx = await wallet.signTransaction({
60
- to: poolAddress, data: calldata, nonce, chainId,
61
- type: 2, maxFeePerGas, maxPriorityFeePerGas, gasLimit: POOL_OPERATION_GAS_LIMIT,
101
+ to: poolAddress,
102
+ data: calldata,
103
+ nonce,
104
+ chainId,
105
+ type: 2,
106
+ maxFeePerGas,
107
+ maxPriorityFeePerGas,
108
+ gasLimit: POOL_OPERATION_GAS_LIMIT,
62
109
  });
63
110
  return { signedTx, from: wallet.address, nonce };
64
111
  }
@@ -72,13 +119,19 @@ export async function poolExtract(params) {
72
119
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
73
120
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
74
121
  const signedTx = await wallet.signTransaction({
75
- to: poolAddress, data: calldata, nonce, chainId,
76
- type: 2, maxFeePerGas, maxPriorityFeePerGas, gasLimit: POOL_OPERATION_GAS_LIMIT,
122
+ to: poolAddress,
123
+ data: calldata,
124
+ nonce,
125
+ chainId,
126
+ type: 2,
127
+ maxFeePerGas,
128
+ maxPriorityFeePerGas,
129
+ gasLimit: POOL_OPERATION_GAS_LIMIT,
77
130
  });
78
131
  return { signedTx, from: wallet.address, nonce };
79
132
  }
80
133
  export async function poolTransferAwards(params) {
81
- const { rpcUrl = ENI_RPC_URL, chainId = ENI_CHAIN_ID, privateKey, poolAddress, recipients, amounts, gasPrice } = params;
134
+ const { rpcUrl = ENI_RPC_URL, chainId = ENI_CHAIN_ID, privateKey, poolAddress, recipients, amounts, gasPrice, } = params;
82
135
  const provider = new JsonRpcProvider(rpcUrl, chainId, { staticNetwork: true });
83
136
  const wallet = new Wallet(privateKey, provider);
84
137
  const calldata = poolIface.encodeFunctionData('transferAwards', [recipients, amounts]);
@@ -87,8 +140,14 @@ export async function poolTransferAwards(params) {
87
140
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
88
141
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
89
142
  const signedTx = await wallet.signTransaction({
90
- to: poolAddress, data: calldata, nonce, chainId,
91
- type: 2, maxFeePerGas, maxPriorityFeePerGas, gasLimit: POOL_OPERATION_GAS_LIMIT,
143
+ to: poolAddress,
144
+ data: calldata,
145
+ nonce,
146
+ chainId,
147
+ type: 2,
148
+ maxFeePerGas,
149
+ maxPriorityFeePerGas,
150
+ gasLimit: POOL_OPERATION_GAS_LIMIT,
92
151
  });
93
152
  return { signedTx, from: wallet.address, nonce };
94
153
  }
@@ -98,7 +157,12 @@ export async function batchExtract(params) {
98
157
  const results = [];
99
158
  for (const w of wallets) {
100
159
  const result = await poolExtract({
101
- rpcUrl, chainId, privateKey: w.privateKey, poolAddress, amount: w.amount, gasPrice,
160
+ rpcUrl,
161
+ chainId,
162
+ privateKey: w.privateKey,
163
+ poolAddress,
164
+ amount: w.amount,
165
+ gasPrice,
102
166
  });
103
167
  signedTransactions.push(result.signedTx);
104
168
  results.push(result);
@@ -13,26 +13,59 @@ const tokenIface = new Interface(IRO_TOKEN_ABI);
13
13
  // 查询
14
14
  // ============================================================================
15
15
  export class IroTokenQuery {
16
+ provider;
17
+ token;
18
+ tokenAddress;
16
19
  constructor(tokenAddress, rpcUrl, chainId) {
17
20
  this.tokenAddress = tokenAddress;
18
21
  this.provider = new JsonRpcProvider(rpcUrl ?? ENI_RPC_URL, chainId ?? ENI_CHAIN_ID, { staticNetwork: true });
19
22
  this.token = new Contract(tokenAddress, IRO_TOKEN_ABI, this.provider);
20
23
  }
21
- async name() { return this.token.name(); }
22
- async symbol() { return this.token.symbol(); }
23
- async decimals() { return Number(await this.token.decimals()); }
24
- async totalSupply() { return this.token.totalSupply(); }
25
- async balanceOf(account) { return this.token.balanceOf(account); }
26
- async allowance(owner, spender) { return this.token.allowance(owner, spender); }
27
- async price() { return this.token.price(); }
28
- async creator() { return this.token.creator(); }
29
- async isOpen() { return this.token.isOpen(); }
30
- async isWhitelisted() { return this.token.isWhitelisted(); }
31
- async isWXOC() { return this.token.isWXOC(); }
32
- async tradingLimit() { return this.token.tradingLimit(); }
33
- async totalCreatorFee() { return this.token.totalCreatorFee(); }
34
- async pool() { return this.token.POOL(); }
35
- async tka() { return this.token.TKA(); }
24
+ async name() {
25
+ return this.token.name();
26
+ }
27
+ async symbol() {
28
+ return this.token.symbol();
29
+ }
30
+ async decimals() {
31
+ return Number(await this.token.decimals());
32
+ }
33
+ async totalSupply() {
34
+ return this.token.totalSupply();
35
+ }
36
+ async balanceOf(account) {
37
+ return this.token.balanceOf(account);
38
+ }
39
+ async allowance(owner, spender) {
40
+ return this.token.allowance(owner, spender);
41
+ }
42
+ async price() {
43
+ return this.token.price();
44
+ }
45
+ async creator() {
46
+ return this.token.creator();
47
+ }
48
+ async isOpen() {
49
+ return this.token.isOpen();
50
+ }
51
+ async isWhitelisted() {
52
+ return this.token.isWhitelisted();
53
+ }
54
+ async isWXOC() {
55
+ return this.token.isWXOC();
56
+ }
57
+ async tradingLimit() {
58
+ return this.token.tradingLimit();
59
+ }
60
+ async totalCreatorFee() {
61
+ return this.token.totalCreatorFee();
62
+ }
63
+ async pool() {
64
+ return this.token.POOL();
65
+ }
66
+ async tka() {
67
+ return this.token.TKA();
68
+ }
36
69
  async getTokenPrice() {
37
70
  const raw = await this.token.getTokenPrice();
38
71
  return {
@@ -46,16 +79,32 @@ export class IroTokenQuery {
46
79
  }
47
80
  async getTokenInfo() {
48
81
  const [name, symbol, decimals, totalSupply, poolAddress, isOpen, priceVal, creatorAddr, tkaAddr] = await Promise.all([
49
- this.name(), this.symbol(), this.decimals(), this.totalSupply(),
50
- this.pool(), this.isOpen(), this.price(), this.creator(), this.tka(),
82
+ this.name(),
83
+ this.symbol(),
84
+ this.decimals(),
85
+ this.totalSupply(),
86
+ this.pool(),
87
+ this.isOpen(),
88
+ this.price(),
89
+ this.creator(),
90
+ this.tka(),
51
91
  ]);
52
92
  return {
53
- name, symbol, decimals, totalSupply,
93
+ name,
94
+ symbol,
95
+ decimals,
96
+ totalSupply,
54
97
  tokenAddress: this.tokenAddress,
55
- poolAddress, isOpen, price: priceVal, creator: creatorAddr, tka: tkaAddr,
98
+ poolAddress,
99
+ isOpen,
100
+ price: priceVal,
101
+ creator: creatorAddr,
102
+ tka: tkaAddr,
56
103
  };
57
104
  }
58
- get providerInstance() { return this.provider; }
105
+ get providerInstance() {
106
+ return this.provider;
107
+ }
59
108
  }
60
109
  // ============================================================================
61
110
  // 写入操作 — EIP-1559
@@ -70,8 +119,15 @@ export async function subscribe(params) {
70
119
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
71
120
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
72
121
  const signedTx = await wallet.signTransaction({
73
- to: tokenAddress, data: calldata, value: value ?? 0n, nonce, chainId,
74
- type: 2, maxFeePerGas, maxPriorityFeePerGas, gasLimit: subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT,
122
+ to: tokenAddress,
123
+ data: calldata,
124
+ value: value ?? 0n,
125
+ nonce,
126
+ chainId,
127
+ type: 2,
128
+ maxFeePerGas,
129
+ maxPriorityFeePerGas,
130
+ gasLimit: subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT,
75
131
  });
76
132
  return { signedTx, from: wallet.address, nonce };
77
133
  }
@@ -85,8 +141,15 @@ export async function pledge(params) {
85
141
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
86
142
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
87
143
  const signedTx = await wallet.signTransaction({
88
- to: tokenAddress, data: calldata, value: value ?? 0n, nonce, chainId,
89
- type: 2, maxFeePerGas, maxPriorityFeePerGas, gasLimit: subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT,
144
+ to: tokenAddress,
145
+ data: calldata,
146
+ value: value ?? 0n,
147
+ nonce,
148
+ chainId,
149
+ type: 2,
150
+ maxFeePerGas,
151
+ maxPriorityFeePerGas,
152
+ gasLimit: subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT,
90
153
  });
91
154
  return { signedTx, from: wallet.address, nonce };
92
155
  }
@@ -99,8 +162,14 @@ export async function batchSubscribe(params) {
99
162
  const results = [];
100
163
  for (const sub of subscribers) {
101
164
  const result = await subscribe({
102
- rpcUrl, chainId, privateKey: sub.privateKey, tokenAddress,
103
- user: sub.user, amount: sub.amount, value: sub.value, gasPrice: resolvedGasPrice,
165
+ rpcUrl,
166
+ chainId,
167
+ privateKey: sub.privateKey,
168
+ tokenAddress,
169
+ user: sub.user,
170
+ amount: sub.amount,
171
+ value: sub.value,
172
+ gasPrice: resolvedGasPrice,
104
173
  });
105
174
  signedTransactions.push(result.signedTx);
106
175
  results.push(result);
@@ -108,7 +177,7 @@ export async function batchSubscribe(params) {
108
177
  return { signedTransactions, results };
109
178
  }
110
179
  export async function batchSubscribeForSubmit(params) {
111
- const { rpcUrl = ENI_RPC_URL, chainId = ENI_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit } = params;
180
+ const { rpcUrl = ENI_RPC_URL, chainId = ENI_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit, } = params;
112
181
  if (subscribers.length === 0) {
113
182
  return { signedTransactions: [...approvalTxs], subscribeResults: [], profitAmount: 0n };
114
183
  }
@@ -117,16 +186,23 @@ export async function batchSubscribeForSubmit(params) {
117
186
  const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
118
187
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
119
188
  const resolvedGasLimit = subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT;
120
- const wallets = subscribers.map(sub => new Wallet(sub.privateKey, provider));
121
- const nonces = await Promise.all(wallets.map(w => w.getNonce()));
189
+ const wallets = subscribers.map((sub) => new Wallet(sub.privateKey, provider));
190
+ const nonces = await Promise.all(wallets.map((w) => w.getNonce()));
122
191
  const subscribeTxs = [];
123
192
  const subscribeResults = [];
124
193
  for (let i = 0; i < subscribers.length; i++) {
125
194
  const sub = subscribers[i];
126
195
  const calldata = tokenIface.encodeFunctionData('subscribe', [sub.user, sub.amount]);
127
196
  const signedTx = await wallets[i].signTransaction({
128
- to: tokenAddress, data: calldata, value: sub.value ?? 0n, nonce: nonces[i], chainId,
129
- type: 2, maxFeePerGas, maxPriorityFeePerGas, gasLimit: resolvedGasLimit,
197
+ to: tokenAddress,
198
+ data: calldata,
199
+ value: sub.value ?? 0n,
200
+ nonce: nonces[i],
201
+ chainId,
202
+ type: 2,
203
+ maxFeePerGas,
204
+ maxPriorityFeePerGas,
205
+ gasLimit: resolvedGasLimit,
130
206
  });
131
207
  subscribeTxs.push(signedTx);
132
208
  subscribeResults.push({ signedTx, from: wallets[i].address, nonce: nonces[i] });