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
@@ -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)
@@ -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] });
@@ -25,7 +25,7 @@ export async function getTokenWhiteList(params) {
25
25
  const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
26
26
  const contract = new Contract(params.iroOwnerAddress, IRO_OWNER_WHITELIST_ABI, provider);
27
27
  const addresses = await contract.getTokenWhiteList(params.tokenAddress);
28
- return addresses.map(a => ethers.getAddress(a));
28
+ return addresses.map((a) => ethers.getAddress(a));
29
29
  }
30
30
  /**
31
31
  * 添加单个白名单地址 (返回签名交易)
@@ -34,11 +34,7 @@ export async function addTokenWhiteListForSubmit(params) {
34
34
  const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
35
35
  const wallet = new Wallet(params.privateKey, provider);
36
36
  const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
37
- const data = iface.encodeFunctionData('addTokenWhiteList', [
38
- params.tokenAddress,
39
- params.addr,
40
- params.quota,
41
- ]);
37
+ const data = iface.encodeFunctionData('addTokenWhiteList', [params.tokenAddress, params.addr, params.quota]);
42
38
  const feeData = await provider.getFeeData();
43
39
  const nonce = await provider.getTransactionCount(wallet.address, 'pending');
44
40
  const tx = await wallet.signTransaction({
@@ -59,17 +55,12 @@ export async function addTokenWhiteListForSubmit(params) {
59
55
  export async function batchAddTokenWhiteListForSubmit(params) {
60
56
  const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
61
57
  const wallet = new Wallet(params.privateKey, provider);
62
- const tuples = params.entries.map(e => ({ account: e.addr, quota: e.quota }));
58
+ const tuples = params.entries.map((e) => ({ account: e.addr, quota: e.quota }));
63
59
  const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
64
- const data = iface.encodeFunctionData('batchAddTokenWhiteList', [
65
- params.tokenAddress,
66
- tuples,
67
- ]);
60
+ const data = iface.encodeFunctionData('batchAddTokenWhiteList', [params.tokenAddress, tuples]);
68
61
  const feeData = await provider.getFeeData();
69
62
  const nonce = await provider.getTransactionCount(wallet.address, 'pending');
70
- const gasLimit = params.entries.length > 5
71
- ? BATCH_WHITELIST_GAS_LIMIT * 2n
72
- : BATCH_WHITELIST_GAS_LIMIT;
63
+ const gasLimit = params.entries.length > 5 ? BATCH_WHITELIST_GAS_LIMIT * 2n : BATCH_WHITELIST_GAS_LIMIT;
73
64
  const tx = await wallet.signTransaction({
74
65
  to: params.iroOwnerAddress,
75
66
  data,
@@ -89,10 +80,7 @@ export async function removeTokenWhiteListForSubmit(params) {
89
80
  const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
90
81
  const wallet = new Wallet(params.privateKey, provider);
91
82
  const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
92
- const data = iface.encodeFunctionData('removeTokenWhiteList', [
93
- params.tokenAddress,
94
- params.addr,
95
- ]);
83
+ const data = iface.encodeFunctionData('removeTokenWhiteList', [params.tokenAddress, params.addr]);
96
84
  const feeData = await provider.getFeeData();
97
85
  const nonce = await provider.getTransactionCount(wallet.address, 'pending');
98
86
  const tx = await wallet.signTransaction({
@@ -4,11 +4,10 @@
4
4
  * 包括快速顺序广播、同块确认等提交策略。
5
5
  */
6
6
  import { ethers } from 'ethers';
7
+ import { createSignProvider } from '../../bundle-core/sign-context-helpers.js';
7
8
  // ==================== 内部辅助 ====================
8
9
  function shouldTreatBroadcastErrorAsMaybeSent(m) {
9
- return (m.includes('nonce too low') ||
10
- m.includes('already known') ||
11
- m.includes('replacement transaction underpriced'));
10
+ return (m.includes('nonce too low') || m.includes('already known') || m.includes('replacement transaction underpriced'));
12
11
  }
13
12
  async function recoverTxHashIfAlreadySeen(provider, signedTx, errorMessage) {
14
13
  if (!shouldTreatBroadcastErrorAsMaybeSent(errorMessage))
@@ -46,10 +45,7 @@ export async function submitEniParallelThenProfit(signedTransactions, config) {
46
45
  return emptyFail('rpcUrl is required');
47
46
  const chainId = config.chainId ?? 173;
48
47
  const chainName = config.chainName ?? 'ENI';
49
- const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
50
- chainId,
51
- name: chainName,
52
- });
48
+ const provider = createSignProvider(config.rpcUrl, chainId, chainName);
53
49
  // Step 1: 按 from 地址分组,识别独立交易和依赖交易
54
50
  const fromCounts = new Map();
55
51
  const txMeta = [];
@@ -177,10 +173,7 @@ export async function submitBundleToEni(signedTransactions, config) {
177
173
  const chainName = config.chainName ?? 'ENI';
178
174
  const simulationTimeout = config.simulationTimeout ?? 10000;
179
175
  const blockConfirmTimeout = config.blockConfirmTimeout ?? 15000;
180
- const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
181
- chainId,
182
- name: chainName,
183
- });
176
+ const provider = createSignProvider(config.rpcUrl, chainId, chainName);
184
177
  // Phase 1: 模拟验证
185
178
  const simStart = Date.now();
186
179
  const simErrors = [];
@@ -202,8 +195,7 @@ export async function submitBundleToEni(signedTransactions, config) {
202
195
  if (msg.includes('simulation timeout')) {
203
196
  console.warn(`⚠️ [${chainName}] 交易 ${i + 1} 模拟超时,跳过验证`);
204
197
  }
205
- else if (msg.includes('execution reverted') ||
206
- msg.includes('CALL_EXCEPTION')) {
198
+ else if (msg.includes('execution reverted') || msg.includes('CALL_EXCEPTION')) {
207
199
  simErrors.push(`交易 ${i + 1} 模拟失败: ${msg.slice(0, 200)}`);
208
200
  }
209
201
  }
@@ -7,7 +7,7 @@
7
7
  * 在 EIP-7702 中,通过 delegate 调用时 msg.sender 是 EOA 本身
8
8
  * 需要使用 executeApprove 函数
9
9
  */
10
- import type { BundleApproveParams, BundleApproveResult, EIP7702Config } from './types.js';
10
+ import type { BundleApproveParams, BundleApproveResult, BundleApproveMultiSpendersParams, BundleApproveMultiSpendersResult, EIP7702Config } from './types.js';
11
11
  /**
12
12
  * 批量授权 - 生成签名后的交易
13
13
  *
@@ -15,31 +15,7 @@ import type { BundleApproveParams, BundleApproveResult, EIP7702Config } from './
15
15
  * @returns 签名后的交易和元数据
16
16
  */
17
17
  export declare function bundleApprove(params: BundleApproveParams): Promise<BundleApproveResult>;
18
- export interface BundleApproveMultiSpendersParams {
19
- /** 主钱包(发起交易,支付 gas) */
20
- mainPrivateKey: string;
21
- /** 需要授权的钱包私钥列表 */
22
- privateKeys: string[];
23
- /** 代币地址 */
24
- tokenAddress: string;
25
- /** 授权给的地址列表(多个 spender) */
26
- spenderAddresses: string[];
27
- /** 授权金额(可选,默认 MaxUint256) */
28
- amount?: bigint;
29
- /** 配置 */
30
- config?: EIP7702Config;
31
- }
32
- export interface BundleApproveMultiSpendersResult {
33
- /** 签名后的交易 */
34
- signedTransaction: string;
35
- /** 元数据 */
36
- metadata: {
37
- walletCount: number;
38
- tokenAddress: string;
39
- spenderAddresses: string[];
40
- totalApproveCalls: number;
41
- };
42
- }
18
+ export type { BundleApproveMultiSpendersParams, BundleApproveMultiSpendersResult } from './types.js';
43
19
  /**
44
20
  * 多 spender 批量授权 - 生成签名后的交易
45
21
  *