four-flap-meme-sdk 1.9.49 → 2.1.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 (567) 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.js +34 -0
  5. package/dist/abis/common.js +74 -68
  6. package/dist/abis/flap/vault.js +9 -7
  7. package/dist/abis/index.d.ts +3 -4
  8. package/dist/abis/index.js +3 -4
  9. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  10. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  11. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  12. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  13. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  14. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  15. package/dist/bundle-core/config-helpers.d.ts +36 -0
  16. package/dist/bundle-core/config-helpers.js +57 -0
  17. package/dist/bundle-core/errors.d.ts +50 -0
  18. package/dist/bundle-core/errors.js +34 -0
  19. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  20. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  21. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  22. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  23. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  24. package/dist/bundle-core/four-meme/core.js +515 -0
  25. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  26. package/dist/{shared 2/flap/portal-bundle-merkle/pancake-proxy.js → bundle-core/four-meme/pancake-proxy.js} +277 -299
  27. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  28. package/dist/bundle-core/four-meme/private.js +465 -0
  29. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  30. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  31. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  32. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  33. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  34. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  35. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  36. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  37. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  38. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  39. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  40. package/dist/{chains/bsc/four/swap/index.js → bundle-core/four-meme/swap.js} +84 -408
  41. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  42. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  43. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  44. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  45. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  46. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  47. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  48. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  49. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  50. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  51. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  52. package/dist/bundle-core/index.d.ts +8 -0
  53. package/dist/bundle-core/index.js +8 -0
  54. package/dist/bundle-core/internal.d.ts +21 -0
  55. package/dist/bundle-core/internal.js +182 -0
  56. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  57. package/dist/bundle-core/sign-context-helpers.js +67 -0
  58. package/dist/bundle-core/submit.d.ts +293 -0
  59. package/dist/bundle-core/submit.js +727 -0
  60. package/dist/bundle-core/types/index.d.ts +8 -0
  61. package/dist/bundle-core/types.d.ts +1 -0
  62. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  63. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -116
  64. package/dist/chains/bsc/four/config.d.ts +5 -70
  65. package/dist/chains/bsc/four/config.js +2 -115
  66. package/dist/chains/bsc/four/core.d.ts +1 -4
  67. package/dist/chains/bsc/four/core.js +1 -589
  68. package/dist/chains/bsc/four/index.d.ts +6 -6
  69. package/dist/chains/bsc/four/index.js +6 -6
  70. package/dist/chains/bsc/four/internal.d.ts +2 -50
  71. package/dist/chains/bsc/four/internal.js +2 -237
  72. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  73. package/dist/chains/bsc/four/pancake-proxy.js +1 -688
  74. package/dist/chains/bsc/four/private.d.ts +1 -27
  75. package/dist/chains/bsc/four/private.js +1 -477
  76. package/dist/chains/bsc/four/submit.d.ts +2 -315
  77. package/dist/chains/bsc/four/submit.js +2 -746
  78. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  79. package/dist/chains/bsc/four/swap-buy-first.js +2 -506
  80. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  81. package/dist/chains/bsc/four/swap-internal.js +1 -18
  82. package/dist/chains/bsc/four/swap.d.ts +2 -144
  83. package/dist/chains/bsc/four/swap.js +2 -760
  84. package/dist/chains/bsc/four/types.d.ts +1 -476
  85. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  86. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  87. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  88. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  89. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  90. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  91. package/dist/chains/bsc/four/utils.d.ts +5 -18
  92. package/dist/chains/bsc/four/utils.js +5 -1534
  93. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  94. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  95. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  96. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -207
  97. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  98. package/dist/chains/bsc/pancake/{bundle-swap/helpers.js → bundle-swap-helpers.js} +63 -70
  99. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  100. package/dist/chains/bsc/pancake/bundle-swap.js +111 -686
  101. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  102. package/dist/chains/bsc/pancake/index.js +1 -3
  103. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  104. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  105. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  106. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  107. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  108. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  109. package/dist/chains/eni/batch-router/transfer.js +54 -23
  110. package/dist/chains/eni/batch-router/utils.js +32 -6
  111. package/dist/chains/eni/bundler/sign.js +4 -4
  112. package/dist/chains/eni/bundler/submit.js +1 -4
  113. package/dist/chains/eni/constants.js +1 -1
  114. package/dist/chains/eni/index.d.ts +1 -1
  115. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  116. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  117. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  118. package/dist/chains/eni/platforms/daoaas/meta.js +8 -4
  119. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -43
  120. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  121. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  122. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  123. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  124. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -47
  125. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  126. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  127. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  128. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  129. package/dist/chains/eni/platforms/iro/index.js +4 -4
  130. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  131. package/dist/chains/eni/platforms/iro/token.js +107 -31
  132. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  133. package/dist/chains/eni/submit.js +5 -13
  134. package/dist/chains/index.d.ts +13 -0
  135. package/dist/chains/index.js +13 -0
  136. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  137. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -20
  138. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  139. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  140. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -56
  141. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  142. package/dist/chains/xlayer/eip7702/bundle-sell.js +26 -74
  143. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  144. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -68
  145. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  146. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  147. package/dist/chains/xlayer/eip7702/index.d.ts +29 -46
  148. package/dist/chains/xlayer/eip7702/index.js +27 -81
  149. package/dist/chains/xlayer/eip7702/{multi-hop-transfer/types.d.ts → multi-hop-transfer-helpers.d.ts} +17 -23
  150. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  151. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +58 -291
  152. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  153. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  154. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  155. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  156. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  157. package/dist/chains/xlayer/eip7702/{volume/types.d.ts → volume-helpers.d.ts} +41 -17
  158. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  159. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  160. package/dist/chains/xlayer/eip7702/volume.js +83 -158
  161. package/dist/chains/xlayer/eoa/constants.js +1 -1
  162. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  163. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  164. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  165. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  166. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +64 -276
  167. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  168. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +14 -14
  169. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  170. package/dist/chains/xlayer/eoa/index.js +8 -23
  171. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  172. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  173. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  174. package/dist/chains/xlayer/eoa/types.js +1 -3
  175. package/dist/contracts/helper3.d.ts +20 -17
  176. package/dist/contracts/helper3.js +56 -20
  177. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  178. package/dist/contracts/tm-bundle-helpers.js +72 -0
  179. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  180. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -117
  181. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -70
  182. package/dist/contracts/tm-bundle-merkle/config.js +2 -115
  183. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  184. package/dist/contracts/tm-bundle-merkle/core.js +1 -588
  185. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  186. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  187. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -50
  188. package/dist/contracts/tm-bundle-merkle/internal.js +2 -236
  189. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  190. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -687
  191. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  192. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  193. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  194. package/dist/contracts/tm-bundle-merkle/submit.js +3 -919
  195. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  196. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -505
  197. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  198. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  199. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  200. package/dist/contracts/tm-bundle-merkle/swap.js +2 -757
  201. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  202. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  203. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  204. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  205. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  206. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  207. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  208. package/dist/contracts/tm-bundle-merkle/utils.d.ts +5 -6
  209. package/dist/contracts/tm-bundle-merkle/utils.js +5 -6
  210. package/dist/contracts/tm-bundle.d.ts +3 -51
  211. package/dist/contracts/tm-bundle.js +102 -142
  212. package/dist/contracts/tm.d.ts +3 -2
  213. package/dist/contracts/tm.js +36 -32
  214. package/dist/contracts/tm1.js +9 -4
  215. package/dist/contracts/tm2.js +9 -4
  216. package/dist/dex/direct-router-helpers.d.ts +264 -0
  217. package/dist/dex/direct-router-helpers.js +539 -0
  218. package/dist/dex/direct-router.d.ts +3 -125
  219. package/dist/dex/direct-router.js +237 -652
  220. package/dist/dex/{direct-router/types.d.ts → types.d.ts} +1 -1
  221. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  222. package/dist/exports/root-bundle-and-tooling.js +30 -0
  223. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  224. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  225. package/dist/exports/root-foundations.d.ts +35 -0
  226. package/dist/exports/root-foundations.js +70 -0
  227. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  228. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  229. package/dist/flap/index.d.ts +10 -0
  230. package/dist/flap/index.js +8 -0
  231. package/dist/flows/create.d.ts +2 -2
  232. package/dist/flows/create.js +6 -6
  233. package/dist/flows/index.d.ts +1 -0
  234. package/dist/flows/index.js +1 -0
  235. package/dist/index.d.ts +20 -91
  236. package/dist/index.js +20 -215
  237. package/dist/shared/abis/common.d.ts +2 -83
  238. package/dist/shared/abis/common.js +2 -252
  239. package/dist/shared/abis/index.d.ts +5 -6
  240. package/dist/shared/abis/index.js +5 -7
  241. package/dist/shared/clients/blockrazor.js +41 -24
  242. package/dist/shared/clients/club48.js +30 -26
  243. package/dist/shared/clients/emitservice.js +2 -0
  244. package/dist/shared/clients/four.js +23 -18
  245. package/dist/shared/clients/index.d.ts +8 -0
  246. package/dist/shared/clients/index.js +8 -0
  247. package/dist/shared/clients/merkle.js +26 -30
  248. package/dist/shared/constants/addresses.d.ts +1 -1
  249. package/dist/shared/constants/addresses.js +11 -2
  250. package/dist/shared/constants/chains.d.ts +1 -1
  251. package/dist/shared/constants/chains.js +1 -1
  252. package/dist/shared/constants/gas.d.ts +1 -1
  253. package/dist/shared/constants/gas.js +2 -6
  254. package/dist/shared/constants/index.d.ts +3 -0
  255. package/dist/shared/constants/index.js +1 -0
  256. package/dist/shared/constants/quote.d.ts +30 -0
  257. package/dist/shared/constants/quote.js +37 -0
  258. package/dist/shared/flap/abi.js +1 -1
  259. package/dist/shared/flap/constants.d.ts +1 -1
  260. package/dist/shared/flap/constants.js +2 -2
  261. package/dist/shared/flap/curve.js +3 -0
  262. package/dist/shared/flap/errors.d.ts +1 -4
  263. package/dist/shared/flap/errors.js +21 -3
  264. package/dist/shared/flap/index.d.ts +2 -2
  265. package/dist/shared/flap/index.js +2 -2
  266. package/dist/shared/flap/meta.d.ts +16 -18
  267. package/dist/shared/flap/meta.js +14 -26
  268. package/dist/shared/flap/permit.js +6 -5
  269. package/dist/shared/flap/pinata.d.ts +9 -2
  270. package/dist/shared/flap/pinata.js +20 -18
  271. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  272. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  273. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  274. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  275. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  276. package/dist/shared/flap/portal-bundle-merkle/core.js +66 -156
  277. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +81 -86
  278. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  279. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  280. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  281. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  282. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  283. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  284. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  285. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  286. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  287. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  288. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  289. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  290. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  291. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +73 -3
  292. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  293. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  294. package/dist/shared/flap/portal-bundle.js +54 -42
  295. package/dist/shared/flap/portal.js +32 -10
  296. package/dist/shared/flap/vanity.js +4 -7
  297. package/dist/shared/flap/vault.d.ts +1 -1
  298. package/dist/shared/flap/vault.js +54 -48
  299. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  300. package/dist/shared/foundation/dex/v3-path.js +35 -0
  301. package/dist/shared/foundation/gas/bundle-gas.d.ts +39 -0
  302. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  303. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  304. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  305. package/dist/shared/foundation/index.d.ts +13 -0
  306. package/dist/shared/foundation/index.js +12 -0
  307. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  308. package/dist/shared/foundation/nonce/nonce-manager.js +180 -0
  309. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  310. package/dist/shared/foundation/normalize-unknown.js +29 -0
  311. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  312. package/dist/shared/foundation/sdk-logger.js +12 -0
  313. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  314. package/dist/shared/foundation/tx/build-request.js +25 -0
  315. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  316. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  317. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  318. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  319. package/dist/{utils/erc20/types.d.ts → shared/foundation/types/erc20.d.ts} +7 -19
  320. package/dist/{utils/holders-maker/types.d.ts → shared/foundation/types/holders-maker.d.ts} +4 -12
  321. package/dist/shared/foundation/types/index.d.ts +7 -0
  322. package/dist/{utils/lp-inspect/types.d.ts → shared/foundation/types/lp-inspect.d.ts} +4 -2
  323. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  324. package/dist/shared/foundation/types/multicall.js +1 -0
  325. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  326. package/dist/shared/foundation/types/private-sale.js +1 -0
  327. package/dist/{utils/quote-helpers/types.d.ts → shared/foundation/types/quote-helpers.d.ts} +1 -0
  328. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  329. package/dist/shared/four/tax-token.d.ts +1 -1
  330. package/dist/shared/four/tax-token.js +27 -7
  331. package/dist/shared/index.d.ts +6 -0
  332. package/dist/shared/index.js +4 -0
  333. package/dist/utils/airdrop-sweep.d.ts +4 -76
  334. package/dist/utils/airdrop-sweep.js +38 -52
  335. package/dist/utils/bundle-helpers.d.ts +9 -243
  336. package/dist/utils/bundle-helpers.js +10 -584
  337. package/dist/utils/constants.d.ts +5 -61
  338. package/dist/utils/constants.js +5 -80
  339. package/dist/utils/contract-factory.d.ts +2 -4
  340. package/dist/utils/contract-factory.js +25 -18
  341. package/dist/utils/erc20.d.ts +8 -90
  342. package/dist/utils/erc20.js +94 -153
  343. package/dist/utils/errors.d.ts +10 -22
  344. package/dist/utils/errors.js +61 -79
  345. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  346. package/dist/utils/holders-maker/addresses.js +15 -0
  347. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  348. package/dist/utils/holders-maker/buy-tx.js +278 -0
  349. package/dist/utils/holders-maker/constants.d.ts +6 -0
  350. package/dist/utils/holders-maker/constants.js +7 -0
  351. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  352. package/dist/utils/holders-maker/disperse.js +90 -0
  353. package/dist/utils/holders-maker/routing.d.ts +4 -0
  354. package/dist/utils/holders-maker/routing.js +45 -0
  355. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  356. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  357. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  358. package/dist/utils/holders-maker-helpers.js +9 -0
  359. package/dist/utils/holders-maker.d.ts +2 -138
  360. package/dist/utils/holders-maker.js +23 -651
  361. package/dist/utils/hop-chains.d.ts +35 -0
  362. package/dist/utils/hop-chains.js +215 -0
  363. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  364. package/dist/utils/lp-inspect-helpers.js +109 -0
  365. package/dist/utils/lp-inspect.d.ts +2 -112
  366. package/dist/utils/lp-inspect.js +63 -195
  367. package/dist/utils/mpcExclusive.d.ts +2 -5
  368. package/dist/utils/mpcExclusive.js +4 -3
  369. package/dist/utils/private-sale.d.ts +2 -58
  370. package/dist/utils/private-sale.js +2 -7
  371. package/dist/utils/provider-factory.d.ts +4 -0
  372. package/dist/utils/provider-factory.js +10 -0
  373. package/dist/utils/quote-helpers.d.ts +4 -45
  374. package/dist/utils/quote-helpers.js +15 -65
  375. package/dist/utils/stealth-transfer.d.ts +2 -28
  376. package/dist/utils/stealth-transfer.js +30 -14
  377. package/dist/utils/swap-helpers.d.ts +0 -3
  378. package/dist/utils/swap-helpers.js +6 -9
  379. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  380. package/dist/utils/types/airdrop-sweep.js +1 -0
  381. package/dist/utils/types/contract-factory.d.ts +1 -0
  382. package/dist/utils/types/contract-factory.js +1 -0
  383. package/dist/utils/types/erc20.d.ts +1 -0
  384. package/dist/utils/types/erc20.js +1 -0
  385. package/dist/utils/types/errors.d.ts +1 -0
  386. package/dist/utils/types/errors.js +1 -0
  387. package/dist/utils/types/holders-maker.d.ts +1 -0
  388. package/dist/utils/types/holders-maker.js +1 -0
  389. package/dist/utils/types/hop-chains.d.ts +8 -0
  390. package/dist/utils/types/hop-chains.js +1 -0
  391. package/dist/utils/types/index.d.ts +13 -0
  392. package/dist/utils/types/index.js +1 -0
  393. package/dist/utils/types/lp-inspect.d.ts +1 -0
  394. package/dist/utils/types/lp-inspect.js +1 -0
  395. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  396. package/dist/utils/types/mpc-exclusive.js +1 -0
  397. package/dist/utils/types/private-sale.d.ts +1 -0
  398. package/dist/utils/types/private-sale.js +1 -0
  399. package/dist/utils/types/quote-helpers.d.ts +1 -0
  400. package/dist/utils/types/quote-helpers.js +1 -0
  401. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  402. package/dist/utils/types/stealth-transfer.js +1 -0
  403. package/dist/utils/types/wallet.d.ts +25 -0
  404. package/dist/utils/types/wallet.js +1 -0
  405. package/dist/utils/wallet.d.ts +2 -25
  406. package/dist/utils/wallet.js +9 -10
  407. package/package.json +120 -2
  408. package/src/abis/contracts/TaxToken.json +969 -0
  409. package/src/abis/contracts/TokenManager.json +836 -0
  410. package/src/abis/contracts/TokenManager2.json +136 -0
  411. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  412. package/dist/chains/bsc/four/submit/blockrazor.d.ts +0 -18
  413. package/dist/chains/bsc/four/submit/blockrazor.js +0 -86
  414. package/dist/chains/bsc/four/submit/direct.d.ts +0 -66
  415. package/dist/chains/bsc/four/submit/direct.js +0 -452
  416. package/dist/chains/bsc/four/submit/helpers.d.ts +0 -18
  417. package/dist/chains/bsc/four/submit/helpers.js +0 -57
  418. package/dist/chains/bsc/four/submit/index.d.ts +0 -12
  419. package/dist/chains/bsc/four/submit/index.js +0 -11
  420. package/dist/chains/bsc/four/submit/merkle.d.ts +0 -18
  421. package/dist/chains/bsc/four/submit/merkle.js +0 -74
  422. package/dist/chains/bsc/four/submit/types.d.ts +0 -143
  423. package/dist/chains/bsc/four/swap/index.d.ts +0 -32
  424. package/dist/chains/bsc/four/swap/types.d.ts +0 -70
  425. package/dist/chains/bsc/four/utils/index.d.ts +0 -20
  426. package/dist/chains/bsc/four/utils/index.js +0 -1558
  427. package/dist/chains/bsc/pancake/bundle-buy-first/index.d.ts +0 -8
  428. package/dist/chains/bsc/pancake/bundle-buy-first/index.js +0 -907
  429. package/dist/chains/bsc/pancake/bundle-buy-first/types.d.ts +0 -73
  430. package/dist/chains/bsc/pancake/bundle-swap/helpers.d.ts +0 -102
  431. package/dist/chains/bsc/pancake/bundle-swap/index.d.ts +0 -50
  432. package/dist/chains/bsc/pancake/bundle-swap/index.js +0 -1066
  433. package/dist/chains/bsc/pancake/bundle-swap/types.d.ts +0 -202
  434. package/dist/chains/bsc/pancake/bundle-swap/types.js +0 -3
  435. package/dist/chains/xlayer/eip7702/bundle-swap/index.d.ts +0 -72
  436. package/dist/chains/xlayer/eip7702/bundle-swap/index.js +0 -921
  437. package/dist/chains/xlayer/eip7702/bundle-swap/types.d.ts +0 -65
  438. package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.d.ts +0 -128
  439. package/dist/chains/xlayer/eip7702/multi-hop-transfer/index.js +0 -857
  440. package/dist/chains/xlayer/eip7702/volume/index.d.ts +0 -96
  441. package/dist/chains/xlayer/eip7702/volume/index.js +0 -793
  442. package/dist/dex/direct-router/index.d.ts +0 -70
  443. package/dist/dex/direct-router/index.js +0 -1410
  444. package/dist/shared/abis/TaxToken.json +0 -969
  445. package/dist/shared/abis/TokenManager.json +0 -836
  446. package/dist/shared/abis/TokenManager2.json +0 -136
  447. package/dist/shared/abis/TokenManagerHelper3.json +0 -993
  448. package/dist/shared/flap/__tests__/curve.test.js +0 -85
  449. package/dist/shared/flap/portal/index.d.ts +0 -12
  450. package/dist/shared/flap/portal/index.js +0 -11
  451. package/dist/shared/flap/portal/portal.d.ts +0 -47
  452. package/dist/shared/flap/portal/portal.js +0 -218
  453. package/dist/shared/flap/portal/types.d.ts +0 -227
  454. package/dist/shared/flap/portal/types.js +0 -80
  455. package/dist/shared/flap/portal/writer.d.ts +0 -121
  456. package/dist/shared/flap/portal/writer.js +0 -265
  457. package/dist/shared/flap/portal-bundle-merkle/core/index.d.ts +0 -18
  458. package/dist/shared/flap/portal-bundle-merkle/core/index.js +0 -938
  459. package/dist/shared/flap/portal-bundle-merkle/swap/index.d.ts +0 -42
  460. package/dist/shared/flap/portal-bundle-merkle/swap/index.js +0 -1448
  461. package/dist/shared/flap/portal-bundle-merkle/swap/types.d.ts +0 -84
  462. package/dist/shared/flap/portal-bundle-merkle/utils/index.d.ts +0 -17
  463. package/dist/shared/flap/portal-bundle-merkle/utils/index.js +0 -1024
  464. package/dist/shared/flap/portal-bundle-merkle/utils/types.d.ts +0 -16
  465. package/dist/shared 2/abis/TaxToken.json +0 -105
  466. package/dist/shared 2/abis/TokenManager.json +0 -836
  467. package/dist/shared 2/abis/TokenManager2.json +0 -60
  468. package/dist/shared 2/abis/TokenManagerHelper3.json +0 -993
  469. package/dist/shared 2/abis/common.d.ts +0 -85
  470. package/dist/shared 2/abis/common.js +0 -254
  471. package/dist/shared 2/abis/index.d.ts +0 -8
  472. package/dist/shared 2/abis/index.js +0 -8
  473. package/dist/shared 2/clients/blockrazor.d.ts +0 -314
  474. package/dist/shared 2/clients/blockrazor.js +0 -596
  475. package/dist/shared 2/clients/club48.d.ts +0 -154
  476. package/dist/shared 2/clients/club48.js +0 -331
  477. package/dist/shared 2/clients/emitservice.d.ts +0 -47
  478. package/dist/shared 2/clients/emitservice.js +0 -44
  479. package/dist/shared 2/clients/four.d.ts +0 -132
  480. package/dist/shared 2/clients/four.js +0 -281
  481. package/dist/shared 2/clients/merkle.d.ts +0 -210
  482. package/dist/shared 2/clients/merkle.js +0 -400
  483. package/dist/shared 2/flap/__tests__/curve.test.js +0 -85
  484. package/dist/shared 2/flap/abi.d.ts +0 -4
  485. package/dist/shared 2/flap/abi.js +0 -4
  486. package/dist/shared 2/flap/constants.d.ts +0 -128
  487. package/dist/shared 2/flap/constants.js +0 -143
  488. package/dist/shared 2/flap/curve.d.ts +0 -33
  489. package/dist/shared 2/flap/curve.js +0 -84
  490. package/dist/shared 2/flap/errors.d.ts +0 -37
  491. package/dist/shared 2/flap/errors.js +0 -114
  492. package/dist/shared 2/flap/index.d.ts +0 -22
  493. package/dist/shared 2/flap/index.js +0 -33
  494. package/dist/shared 2/flap/ipfs.d.ts +0 -21
  495. package/dist/shared 2/flap/ipfs.js +0 -38
  496. package/dist/shared 2/flap/meta.d.ts +0 -30
  497. package/dist/shared 2/flap/meta.js +0 -195
  498. package/dist/shared 2/flap/permit.d.ts +0 -16
  499. package/dist/shared 2/flap/permit.js +0 -67
  500. package/dist/shared 2/flap/pinata.d.ts +0 -40
  501. package/dist/shared 2/flap/pinata.js +0 -106
  502. package/dist/shared 2/flap/portal-bundle-merkle/config.d.ts +0 -79
  503. package/dist/shared 2/flap/portal-bundle-merkle/config.js +0 -133
  504. package/dist/shared 2/flap/portal-bundle-merkle/core.d.ts +0 -18
  505. package/dist/shared 2/flap/portal-bundle-merkle/core.js +0 -938
  506. package/dist/shared 2/flap/portal-bundle-merkle/create-to-dex.d.ts +0 -125
  507. package/dist/shared 2/flap/portal-bundle-merkle/create-to-dex.js +0 -665
  508. package/dist/shared 2/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -88
  509. package/dist/shared 2/flap/portal-bundle-merkle/curve-to-dex.js +0 -446
  510. package/dist/shared 2/flap/portal-bundle-merkle/index.d.ts +0 -14
  511. package/dist/shared 2/flap/portal-bundle-merkle/index.js +0 -26
  512. package/dist/shared 2/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -28
  513. package/dist/shared 2/flap/portal-bundle-merkle/private.d.ts +0 -17
  514. package/dist/shared 2/flap/portal-bundle-merkle/private.js +0 -549
  515. package/dist/shared 2/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  516. package/dist/shared 2/flap/portal-bundle-merkle/swap-buy-first.js +0 -831
  517. package/dist/shared 2/flap/portal-bundle-merkle/swap.d.ts +0 -201
  518. package/dist/shared 2/flap/portal-bundle-merkle/swap.js +0 -1359
  519. package/dist/shared 2/flap/portal-bundle-merkle/types.d.ts +0 -358
  520. package/dist/shared 2/flap/portal-bundle-merkle/utils.d.ts +0 -89
  521. package/dist/shared 2/flap/portal-bundle-merkle/utils.js +0 -963
  522. package/dist/shared 2/flap/portal-bundle.d.ts +0 -119
  523. package/dist/shared 2/flap/portal-bundle.js +0 -584
  524. package/dist/shared 2/flap/portal.d.ts +0 -392
  525. package/dist/shared 2/flap/portal.js +0 -559
  526. package/dist/shared 2/flap/vanity.d.ts +0 -48
  527. package/dist/shared 2/flap/vanity.js +0 -110
  528. package/dist/shared 2/flap/vault.d.ts +0 -240
  529. package/dist/shared 2/flap/vault.js +0 -366
  530. package/dist/shared 2/four/index.d.ts +0 -7
  531. package/dist/shared 2/four/index.js +0 -22
  532. package/dist/shared 2/four/tax-token.d.ts +0 -176
  533. package/dist/shared 2/four/tax-token.js +0 -302
  534. package/dist/shared 2/index.d.ts +0 -10
  535. package/dist/shared 2/index.js +0 -10
  536. package/dist/utils/__tests__/errors.test.js +0 -76
  537. package/dist/utils/erc20/index.d.ts +0 -242
  538. package/dist/utils/erc20/index.js +0 -645
  539. package/dist/utils/holders-maker/helpers.d.ts +0 -43
  540. package/dist/utils/holders-maker/helpers.js +0 -371
  541. package/dist/utils/holders-maker/index.d.ts +0 -26
  542. package/dist/utils/holders-maker/index.js +0 -218
  543. package/dist/utils/holders-maker/types.js +0 -4
  544. package/dist/utils/lp-inspect/index.d.ts +0 -44
  545. package/dist/utils/lp-inspect/index.js +0 -937
  546. package/dist/utils/quote-helpers/index.d.ts +0 -107
  547. package/dist/utils/quote-helpers/index.js +0 -346
  548. /package/dist/{chains/bsc/four/submit/types.js → __tests__/subpath-exports.test.d.ts} +0 -0
  549. /package/dist/{chains/bsc/four/swap/types.js → bundle-core/__tests__/config-helpers.test.d.ts} +0 -0
  550. /package/dist/{chains/bsc/four/utils/types.d.ts → bundle-core/__tests__/facade-parity.test.d.ts} +0 -0
  551. /package/dist/{chains/bsc/four/utils/types.js → bundle-core/__tests__/sign-context-helpers.test.d.ts} +0 -0
  552. /package/dist/{chains/bsc/pancake/bundle-buy-first/types.js → bundle-core/__tests__/sign-fixture.test.d.ts} +0 -0
  553. /package/dist/{chains/xlayer/eip7702/multi-hop-transfer/types.js → bundle-core/four-meme/types/buy-first.js} +0 -0
  554. /package/dist/{chains/xlayer/eip7702/volume/types.js → bundle-core/four-meme/types/core-flow.js} +0 -0
  555. /package/dist/{dex/direct-router/types.js → bundle-core/four-meme/types/index.js} +0 -0
  556. /package/dist/{shared 2/flap/__tests__/curve.test.d.ts → bundle-core/four-meme/types/swap-internal.js} +0 -0
  557. /package/dist/{chains/xlayer/eip7702/bundle-swap → bundle-core/four-meme}/types.js +0 -0
  558. /package/dist/{shared/flap/__tests__/curve.test.d.ts → bundle-core/types/index.js} +0 -0
  559. /package/dist/{shared 2/flap/portal-bundle-merkle → bundle-core}/types.js +0 -0
  560. /package/dist/{shared/flap/portal-bundle-merkle/core/types.d.ts → chains/xlayer/eip7702/multi-hop-transfer-helpers.js} +0 -0
  561. /package/dist/{shared/flap/portal-bundle-merkle/core → dex}/types.js +0 -0
  562. /package/dist/shared/{flap/portal-bundle-merkle/swap/types.js → foundation/tx/wallet-sign-patch.d.ts} +0 -0
  563. /package/dist/shared/{flap/portal-bundle-merkle/utils/types.js → foundation/types/airdrop-sweep.js} +0 -0
  564. /package/dist/{utils/__tests__/errors.test.d.ts → shared/foundation/types/erc20.js} +0 -0
  565. /package/dist/{utils/erc20/types.js → shared/foundation/types/holders-maker.js} +0 -0
  566. /package/dist/{utils/lp-inspect/types.js → shared/foundation/types/index.js} +0 -0
  567. /package/dist/{utils/quote-helpers/types.js → shared/foundation/types/lp-inspect.js} +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,3 +7,16 @@ export * as bsc from './bsc/index.js';
7
7
  export * as xlayer from './xlayer/index.js';
8
8
  export * as monad from './monad/index.js';
9
9
  export * as eni from './eni/index.js';
10
+ /**
11
+ * 与包根 `export * as chains` 一致的命名空间(`chains.bsc` / `chains.eni` …)
12
+ */
13
+ import * as bscNs from './bsc/index.js';
14
+ import * as xlayerNs from './xlayer/index.js';
15
+ import * as monadNs from './monad/index.js';
16
+ import * as eniNs from './eni/index.js';
17
+ export declare const chains: {
18
+ readonly bsc: typeof bscNs;
19
+ readonly xlayer: typeof xlayerNs;
20
+ readonly monad: typeof monadNs;
21
+ readonly eni: typeof eniNs;
22
+ };
@@ -11,3 +11,16 @@ export * as xlayer from './xlayer/index.js';
11
11
  export * as monad from './monad/index.js';
12
12
  // ENI 链
13
13
  export * as eni from './eni/index.js';
14
+ /**
15
+ * 与包根 `export * as chains` 一致的命名空间(`chains.bsc` / `chains.eni` …)
16
+ */
17
+ import * as bscNs from './bsc/index.js';
18
+ import * as xlayerNs from './xlayer/index.js';
19
+ import * as monadNs from './monad/index.js';
20
+ import * as eniNs from './eni/index.js';
21
+ export const chains = {
22
+ bsc: bscNs,
23
+ xlayer: xlayerNs,
24
+ monad: monadNs,
25
+ eni: eniNs,
26
+ };
@@ -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
  *