four-flap-meme-sdk 2.2.19 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/{shared/abis → abis}/common.d.ts +1 -1
  2. package/dist/{shared/abis → abis}/common.js +75 -91
  3. package/dist/abis/contracts/TaxToken.json +969 -0
  4. package/dist/abis/contracts/TokenManager2.json +136 -0
  5. package/dist/{shared/abis → abis/contracts}/index.d.ts +0 -1
  6. package/dist/{shared/abis → abis/contracts}/index.js +0 -2
  7. package/dist/abis/flap/index.d.ts +5 -0
  8. package/dist/abis/flap/index.js +5 -0
  9. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  10. package/dist/abis/flap/portal-eip7702.js +39 -0
  11. package/dist/abis/flap/portal-events.d.ts +6 -0
  12. package/dist/abis/flap/portal-events.js +17 -0
  13. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  14. package/dist/abis/flap/portal-merkle.js +25 -0
  15. package/dist/abis/flap/portal.d.ts +6 -0
  16. package/dist/abis/flap/portal.js +37 -0
  17. package/dist/abis/flap/vault.d.ts +171 -0
  18. package/dist/abis/flap/vault.js +91 -0
  19. package/dist/abis/index.d.ts +6 -0
  20. package/dist/abis/index.js +9 -0
  21. package/dist/bundle/config-helpers.d.ts +37 -0
  22. package/dist/bundle/config-helpers.js +58 -0
  23. package/dist/bundle/errors.d.ts +50 -0
  24. package/dist/bundle/errors.js +38 -0
  25. package/dist/bundle/four-meme/approve-tokenmanager.d.ts +7 -0
  26. package/dist/bundle/four-meme/approve-tokenmanager.js +99 -0
  27. package/dist/bundle/four-meme/core-helpers.d.ts +8 -0
  28. package/dist/bundle/four-meme/core-helpers.js +41 -0
  29. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.d.ts +1 -1
  30. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.js +74 -150
  31. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.d.ts +1 -1
  32. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.js +85 -92
  33. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.d.ts +1 -1
  34. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.js +48 -59
  35. package/dist/bundle/four-meme/sign-context-helpers.d.ts +2 -0
  36. package/dist/bundle/four-meme/sign-context-helpers.js +2 -0
  37. package/dist/bundle/four-meme/swap-buy-first.d.ts +8 -0
  38. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-buy-first.js +56 -108
  39. package/dist/bundle/four-meme/swap-hop-helpers.d.ts +6 -0
  40. package/dist/bundle/four-meme/swap-hop-helpers.js +63 -0
  41. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.js +4 -4
  42. package/dist/bundle/four-meme/swap-sign-helpers.d.ts +28 -0
  43. package/dist/bundle/four-meme/swap-sign-helpers.js +105 -0
  44. package/dist/bundle/four-meme/swap.d.ts +17 -0
  45. package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap.js +84 -345
  46. package/dist/{contracts/tm-bundle-merkle/swap-buy-first.d.ts → bundle/four-meme/types/buy-first.d.ts} +11 -18
  47. package/dist/bundle/four-meme/types/core-flow.d.ts +63 -0
  48. package/dist/bundle/four-meme/types/core-flow.js +1 -0
  49. package/dist/{contracts/tm-bundle-merkle/types.d.ts → bundle/four-meme/types/index.d.ts} +130 -6
  50. package/dist/bundle/four-meme/types/index.js +1 -0
  51. package/dist/bundle/four-meme/types/swap-internal.d.ts +19 -0
  52. package/dist/bundle/four-meme/types/swap-internal.js +1 -0
  53. package/dist/bundle/four-meme/types.d.ts +1 -0
  54. package/dist/bundle/four-meme/utils-disperse.d.ts +7 -0
  55. package/dist/bundle/four-meme/utils-disperse.js +396 -0
  56. package/dist/bundle/four-meme/utils-pairwise.d.ts +8 -0
  57. package/dist/bundle/four-meme/utils-pairwise.js +328 -0
  58. package/dist/bundle/four-meme/utils-sweep.d.ts +8 -0
  59. package/dist/bundle/four-meme/utils-sweep.js +744 -0
  60. package/dist/bundle/index.d.ts +8 -0
  61. package/dist/bundle/index.js +8 -0
  62. package/dist/bundle/internal.d.ts +16 -0
  63. package/dist/bundle/internal.js +160 -0
  64. package/dist/bundle/sign-context-helpers.d.ts +26 -0
  65. package/dist/bundle/sign-context-helpers.js +63 -0
  66. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.d.ts +6 -27
  67. package/dist/{contracts/tm-bundle-merkle → bundle}/submit.js +116 -313
  68. package/dist/bundle/types/index.d.ts +8 -0
  69. package/dist/bundle/types/index.js +1 -0
  70. package/dist/bundle/types.d.ts +1 -0
  71. package/dist/bundle/types.js +1 -0
  72. package/dist/chains/bsc/constants.js +1 -1
  73. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  74. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  75. package/dist/chains/bsc/four/config.d.ts +5 -67
  76. package/dist/chains/bsc/four/config.js +2 -114
  77. package/dist/chains/bsc/four/core.d.ts +1 -4
  78. package/dist/chains/bsc/four/core.js +1 -592
  79. package/dist/chains/bsc/four/index.d.ts +6 -6
  80. package/dist/chains/bsc/four/index.js +6 -6
  81. package/dist/chains/bsc/four/internal.d.ts +2 -46
  82. package/dist/chains/bsc/four/internal.js +2 -239
  83. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  84. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  85. package/dist/chains/bsc/four/private.d.ts +1 -27
  86. package/dist/chains/bsc/four/private.js +1 -477
  87. package/dist/chains/bsc/four/submit.d.ts +2 -315
  88. package/dist/chains/bsc/four/submit.js +2 -752
  89. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  90. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  91. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  92. package/dist/chains/bsc/four/swap-internal.js +1 -18
  93. package/dist/chains/bsc/four/swap.d.ts +2 -144
  94. package/dist/chains/bsc/four/swap.js +2 -766
  95. package/dist/chains/bsc/four/types.d.ts +1 -476
  96. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  97. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  98. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  99. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  100. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  101. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  102. package/dist/chains/bsc/four/utils.d.ts +5 -18
  103. package/dist/chains/bsc/four/utils.js +5 -1552
  104. package/dist/chains/bsc/iro.d.ts +5 -0
  105. package/dist/chains/bsc/iro.js +4 -0
  106. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  109. package/dist/chains/bsc/pancake/bundle-buy-first.js +99 -214
  110. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  112. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  113. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  114. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  115. package/dist/chains/bsc/pancake/index.js +1 -3
  116. package/dist/chains/bsc/platforms/iro/constants.js +1 -1
  117. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  118. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  119. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  120. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  121. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  122. package/dist/chains/bsc/platforms/iro/token.js +5 -2
  123. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  124. package/dist/chains/eni/batch-router/transfer.js +57 -27
  125. package/dist/chains/eni/batch-router/utils.js +32 -6
  126. package/dist/chains/eni/bundler/sign.js +5 -6
  127. package/dist/chains/eni/bundler/submit.js +1 -4
  128. package/dist/chains/eni/constants.js +2 -2
  129. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  130. package/dist/chains/eni/flat-aliases.js +8 -0
  131. package/dist/chains/eni/index.d.ts +2 -1
  132. package/dist/chains/eni/index.js +1 -0
  133. package/dist/chains/eni/platforms/daoaas/create.js +3 -3
  134. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  135. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  136. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  137. package/dist/chains/eni/platforms/daoaas/portal-direct.js +29 -45
  138. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  139. package/dist/chains/eni/platforms/dswap/liquidity.js +59 -27
  140. package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
  141. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  142. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  143. package/dist/chains/eni/platforms/fair-launch/launcher.js +88 -47
  144. package/dist/chains/eni/platforms/fair-launch/pool.js +5 -2
  145. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  146. package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
  147. package/dist/chains/eni/platforms/iro/constants.js +2 -2
  148. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  149. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  150. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  151. package/dist/chains/eni/platforms/iro/index.js +4 -4
  152. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  153. package/dist/chains/eni/platforms/iro/token.js +108 -32
  154. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  155. package/dist/chains/eni/submit.d.ts +43 -0
  156. package/dist/chains/eni/submit.js +287 -0
  157. package/dist/chains/index.d.ts +13 -0
  158. package/dist/chains/index.js +13 -0
  159. package/dist/chains/monad/constants.js +1 -1
  160. package/dist/chains/xlayer/constants.d.ts +5 -0
  161. package/dist/chains/xlayer/constants.js +1 -1
  162. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  163. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  164. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  165. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  166. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  167. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  168. package/dist/chains/xlayer/eip7702/bundle-sell.js +30 -112
  169. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  170. package/dist/chains/xlayer/eip7702/bundle-swap.js +52 -246
  171. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  172. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  173. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  174. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  175. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  176. package/dist/chains/xlayer/eip7702/index.js +28 -81
  177. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  178. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  179. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  180. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +64 -308
  181. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  182. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  183. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  184. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  185. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  186. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  187. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  188. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  189. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  190. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  191. package/dist/chains/xlayer/eoa/constants.js +2 -16
  192. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  193. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  194. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  195. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  196. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  197. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  198. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  199. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  200. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  201. package/dist/chains/xlayer/eoa/index.js +8 -23
  202. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  203. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  204. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  205. package/dist/chains/xlayer/eoa/types.js +1 -3
  206. package/dist/chains/xlayer/index.d.ts +3 -2
  207. package/dist/chains/xlayer/index.js +4 -7
  208. package/dist/core/amount/split-by-weight.d.ts +5 -0
  209. package/dist/core/amount/split-by-weight.js +35 -0
  210. package/dist/{shared → core}/clients/blockrazor.d.ts +4 -8
  211. package/dist/{shared → core}/clients/blockrazor.js +43 -35
  212. package/dist/{shared → core}/clients/club48.d.ts +2 -2
  213. package/dist/{shared → core}/clients/club48.js +36 -30
  214. package/dist/{shared → core}/clients/emitservice.js +2 -0
  215. package/dist/{shared → core}/clients/four.d.ts +21 -6
  216. package/dist/{shared → core}/clients/four.js +29 -24
  217. package/dist/core/clients/index.d.ts +8 -0
  218. package/dist/core/clients/index.js +8 -0
  219. package/dist/{shared → core}/clients/merkle.d.ts +4 -3
  220. package/dist/{shared → core}/clients/merkle.js +30 -47
  221. package/dist/{shared → core}/constants/addresses.d.ts +27 -1
  222. package/dist/{shared → core}/constants/addresses.js +39 -2
  223. package/dist/{shared → core}/constants/chains.d.ts +1 -1
  224. package/dist/{shared → core}/constants/chains.js +1 -1
  225. package/dist/{shared → core}/constants/gas.d.ts +1 -1
  226. package/dist/{shared → core}/constants/gas.js +2 -6
  227. package/dist/{shared → core}/constants/index.d.ts +5 -2
  228. package/dist/{shared → core}/constants/index.js +3 -2
  229. package/dist/core/constants/quote.d.ts +30 -0
  230. package/dist/core/constants/quote.js +37 -0
  231. package/dist/core/dex/v3-path.d.ts +6 -0
  232. package/dist/core/dex/v3-path.js +35 -0
  233. package/dist/core/erc20/decimals.d.ts +7 -0
  234. package/dist/core/erc20/decimals.js +24 -0
  235. package/dist/{utils → core}/erc20.d.ts +7 -89
  236. package/dist/{utils → core}/erc20.js +99 -130
  237. package/dist/core/foundation.d.ts +15 -0
  238. package/dist/core/foundation.js +14 -0
  239. package/dist/core/gas/bundle-gas.d.ts +49 -0
  240. package/dist/core/gas/bundle-gas.js +93 -0
  241. package/dist/core/gas/profit-hop.d.ts +20 -0
  242. package/dist/core/gas/profit-hop.js +72 -0
  243. package/dist/core/index.d.ts +5 -0
  244. package/dist/core/index.js +5 -0
  245. package/dist/core/legacy-types/errors.d.ts +27 -0
  246. package/dist/core/legacy-types/errors.js +34 -0
  247. package/dist/core/nonce/nonce-manager.d.ts +19 -0
  248. package/dist/core/nonce/nonce-manager.js +217 -0
  249. package/dist/core/normalize-unknown.d.ts +9 -0
  250. package/dist/core/normalize-unknown.js +29 -0
  251. package/dist/core/sdk-logger.d.ts +13 -0
  252. package/dist/core/sdk-logger.js +12 -0
  253. package/dist/core/shared-abis/common.d.ts +4 -0
  254. package/dist/core/shared-abis/common.js +4 -0
  255. package/dist/core/shared-abis/index.d.ts +5 -0
  256. package/dist/core/shared-abis/index.js +5 -0
  257. package/dist/core/tx/build-request.d.ts +17 -0
  258. package/dist/core/tx/build-request.js +25 -0
  259. package/dist/core/tx/sign-batch.d.ts +5 -0
  260. package/dist/core/tx/sign-batch.js +26 -0
  261. package/dist/core/tx/wallet-sign-patch.d.ts +1 -0
  262. package/dist/core/tx/wallet-sign-patch.js +18 -0
  263. package/dist/core/types/airdrop-sweep.d.ts +79 -0
  264. package/dist/core/types/airdrop-sweep.js +1 -0
  265. package/dist/core/types/erc20.d.ts +65 -0
  266. package/dist/core/types/erc20.js +1 -0
  267. package/dist/core/types/holders-maker.d.ts +64 -0
  268. package/dist/core/types/holders-maker.js +1 -0
  269. package/dist/core/types/index.d.ts +7 -0
  270. package/dist/core/types/index.js +1 -0
  271. package/dist/{utils → core/types}/lp-inspect.d.ts +4 -52
  272. package/dist/core/types/lp-inspect.js +1 -0
  273. package/dist/core/types/multicall.d.ts +5 -0
  274. package/dist/core/types/multicall.js +1 -0
  275. package/dist/core/types/private-sale.d.ts +35 -0
  276. package/dist/core/types/private-sale.js +1 -0
  277. package/dist/core/types/quote-helpers.d.ts +17 -0
  278. package/dist/core/types/quote-helpers.js +1 -0
  279. package/dist/core/types-erc20.d.ts +1 -0
  280. package/dist/core/types-erc20.js +1 -0
  281. package/dist/core/wallet/generate.d.ts +5 -0
  282. package/dist/core/wallet/generate.js +8 -0
  283. package/dist/domains/dex/direct-router-helpers.d.ts +269 -0
  284. package/dist/domains/dex/direct-router-helpers.js +536 -0
  285. package/dist/domains/dex/direct-router.d.ts +28 -0
  286. package/dist/{dex → domains/dex}/direct-router.js +246 -674
  287. package/dist/domains/dex/types.d.ts +81 -0
  288. package/dist/domains/dex/types.js +1 -0
  289. package/dist/{shared → domains}/flap/abi.js +1 -1
  290. package/dist/{shared → domains}/flap/constants.d.ts +1 -2
  291. package/dist/{shared → domains}/flap/constants.js +3 -4
  292. package/dist/{shared → domains}/flap/curve.js +3 -0
  293. package/dist/{shared → domains}/flap/errors.d.ts +1 -4
  294. package/dist/{shared → domains}/flap/errors.js +20 -1
  295. package/dist/domains/flap/index.d.ts +7 -0
  296. package/dist/domains/flap/index.js +5 -0
  297. package/dist/{shared → domains}/flap/meta.d.ts +22 -18
  298. package/dist/{shared → domains}/flap/meta.js +32 -24
  299. package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +4 -5
  300. package/dist/{shared/flap/index.js → domains/flap/module.js} +4 -5
  301. package/dist/{shared → domains}/flap/permit.js +10 -3
  302. package/dist/{shared → domains}/flap/pinata.d.ts +22 -6
  303. package/dist/{shared → domains}/flap/pinata.js +21 -26
  304. package/dist/domains/flap/portal-bundle-merkle/config.d.ts +10 -0
  305. package/dist/domains/flap/portal-bundle-merkle/config.js +13 -0
  306. package/dist/domains/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  307. package/dist/domains/flap/portal-bundle-merkle/core-helpers.js +83 -0
  308. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -4
  309. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +168 -175
  310. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  311. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +97 -118
  312. package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +105 -123
  313. package/dist/domains/flap/portal-bundle-merkle/index.d.ts +18 -0
  314. package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +4 -7
  315. package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +73 -70
  316. package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +63 -116
  317. package/dist/domains/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  318. package/dist/domains/flap/portal-bundle-merkle/swap-batch.js +227 -0
  319. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  320. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  321. package/dist/domains/flap/portal-bundle-merkle/swap-buy-first.d.ts +2 -0
  322. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  323. package/dist/domains/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  324. package/dist/domains/flap/portal-bundle-merkle/swap-cross.js +139 -0
  325. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  326. package/dist/domains/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  327. package/dist/domains/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  328. package/dist/domains/flap/portal-bundle-merkle/swap-planning.js +182 -0
  329. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  330. package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  331. package/dist/domains/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  332. package/dist/domains/flap/portal-bundle-merkle/swap-single.js +184 -0
  333. package/dist/domains/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  334. package/dist/domains/flap/portal-bundle-merkle/swap-types.js +1 -0
  335. package/dist/domains/flap/portal-bundle-merkle/swap.d.ts +8 -0
  336. package/dist/domains/flap/portal-bundle-merkle/swap.js +7 -0
  337. package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +88 -12
  338. package/dist/domains/flap/portal-bundle-merkle/types.js +1 -0
  339. package/dist/domains/flap/portal-bundle-merkle/utils.d.ts +10 -0
  340. package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +145 -265
  341. package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
  342. package/dist/{shared → domains}/flap/portal-bundle.js +84 -79
  343. package/dist/domains/flap/portal-create-token.d.ts +81 -0
  344. package/dist/domains/flap/portal-create-token.js +255 -0
  345. package/dist/{shared → domains}/flap/portal.d.ts +1 -2
  346. package/dist/{shared → domains}/flap/portal.js +36 -28
  347. package/dist/{shared → domains}/flap/vanity.d.ts +6 -6
  348. package/dist/{shared → domains}/flap/vanity.js +15 -21
  349. package/dist/{shared → domains}/flap/vault.d.ts +25 -93
  350. package/dist/{shared → domains}/flap/vault.js +77 -127
  351. package/dist/{flows → domains/flows}/create.d.ts +2 -1
  352. package/dist/{flows → domains/flows}/create.js +8 -8
  353. package/dist/domains/flows/index.d.ts +9 -0
  354. package/dist/domains/flows/index.js +9 -0
  355. package/dist/{contracts → domains/four/contracts}/helper3.d.ts +20 -5
  356. package/dist/{contracts → domains/four/contracts}/helper3.js +56 -20
  357. package/dist/domains/four/contracts/tm-bundle-helpers.d.ts +88 -0
  358. package/dist/domains/four/contracts/tm-bundle-helpers.js +73 -0
  359. package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +4 -52
  360. package/dist/{contracts → domains/four/contracts}/tm-bundle.js +122 -189
  361. package/dist/{contracts → domains/four/contracts}/tm.d.ts +10 -8
  362. package/dist/{contracts → domains/four/contracts}/tm.js +39 -35
  363. package/dist/{contracts → domains/four/contracts}/tm1.js +9 -4
  364. package/dist/{contracts → domains/four/contracts}/tm2.js +10 -5
  365. package/dist/domains/four/index.d.ts +7 -0
  366. package/dist/domains/four/index.js +7 -0
  367. package/dist/{shared → domains}/four/tax-token.d.ts +1 -1
  368. package/dist/{shared → domains}/four/tax-token.js +31 -10
  369. package/dist/domains/holders/holders-maker-helpers.d.ts +9 -0
  370. package/dist/domains/holders/holders-maker-helpers.js +9 -0
  371. package/dist/domains/holders/holders-maker.d.ts +18 -0
  372. package/dist/domains/holders/holders-maker.js +324 -0
  373. package/dist/domains/holders/index.d.ts +1 -0
  374. package/dist/domains/holders/index.js +1 -0
  375. package/dist/domains/holders/internal/addresses.d.ts +12 -0
  376. package/dist/domains/holders/internal/addresses.js +15 -0
  377. package/dist/domains/holders/internal/buy-tx.d.ts +44 -0
  378. package/dist/domains/holders/internal/buy-tx.js +278 -0
  379. package/dist/domains/holders/internal/constants.d.ts +6 -0
  380. package/dist/domains/holders/internal/constants.js +7 -0
  381. package/dist/domains/holders/internal/disperse.d.ts +18 -0
  382. package/dist/domains/holders/internal/disperse.js +90 -0
  383. package/dist/domains/holders/internal/routing.d.ts +4 -0
  384. package/dist/domains/holders/internal/routing.js +45 -0
  385. package/dist/domains/holders/internal/transfer-tx.d.ts +4 -0
  386. package/dist/domains/holders/internal/transfer-tx.js +67 -0
  387. package/dist/domains/holders/types.d.ts +1 -0
  388. package/dist/domains/holders/types.js +1 -0
  389. package/dist/domains/lp-inspect/index.d.ts +1 -0
  390. package/dist/domains/lp-inspect/index.js +1 -0
  391. package/dist/domains/lp-inspect/lp-inspect-helpers.d.ts +9 -0
  392. package/dist/domains/lp-inspect/lp-inspect-helpers.js +109 -0
  393. package/dist/domains/lp-inspect/lp-inspect.d.ts +40 -0
  394. package/dist/{utils → domains/lp-inspect}/lp-inspect.js +78 -293
  395. package/dist/domains/lp-inspect/types.d.ts +1 -0
  396. package/dist/domains/lp-inspect/types.js +1 -0
  397. package/dist/domains/merkle/index.d.ts +12 -0
  398. package/dist/domains/merkle/index.js +11 -0
  399. package/dist/domains/private-sale/index.d.ts +1 -0
  400. package/dist/domains/private-sale/index.js +1 -0
  401. package/dist/domains/private-sale/private-sale.d.ts +34 -0
  402. package/dist/{utils → domains/private-sale}/private-sale.js +5 -16
  403. package/dist/domains/private-sale/types.d.ts +1 -0
  404. package/dist/domains/private-sale/types.js +1 -0
  405. package/dist/domains/quote/index.d.ts +1 -0
  406. package/dist/domains/quote/index.js +1 -0
  407. package/dist/{utils → domains/quote}/quote-helpers.d.ts +4 -45
  408. package/dist/{utils → domains/quote}/quote-helpers.js +17 -74
  409. package/dist/domains/quote/types.d.ts +1 -0
  410. package/dist/domains/quote/types.js +1 -0
  411. package/dist/domains/vanity/index.d.ts +5 -0
  412. package/dist/domains/vanity/index.js +5 -0
  413. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  414. package/dist/exports/root-bundle-and-tooling.js +30 -0
  415. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  416. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  417. package/dist/exports/root-foundations.d.ts +35 -0
  418. package/dist/exports/root-foundations.js +70 -0
  419. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  420. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  421. package/dist/index.d.ts +17 -88
  422. package/dist/index.js +17 -218
  423. package/dist/utils/airdrop-sweep.d.ts +4 -76
  424. package/dist/utils/airdrop-sweep.js +42 -55
  425. package/dist/utils/bundle-helpers.d.ts +9 -243
  426. package/dist/utils/bundle-helpers.js +10 -584
  427. package/dist/utils/constants.d.ts +5 -61
  428. package/dist/utils/constants.js +5 -80
  429. package/dist/utils/contract-factory.d.ts +2 -4
  430. package/dist/utils/contract-factory.js +25 -18
  431. package/dist/utils/errors.d.ts +12 -1
  432. package/dist/utils/errors.js +60 -1
  433. package/dist/utils/hop-chains.d.ts +35 -0
  434. package/dist/utils/hop-chains.js +215 -0
  435. package/dist/utils/index.d.ts +5 -0
  436. package/dist/utils/index.js +5 -0
  437. package/dist/utils/mpcExclusive.d.ts +2 -5
  438. package/dist/utils/mpcExclusive.js +4 -3
  439. package/dist/utils/provider-factory.d.ts +4 -0
  440. package/dist/utils/provider-factory.js +10 -0
  441. package/dist/utils/stealth-transfer.d.ts +2 -28
  442. package/dist/utils/stealth-transfer.js +41 -21
  443. package/dist/utils/swap-helpers.d.ts +2 -15
  444. package/dist/utils/swap-helpers.js +7 -12
  445. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  446. package/dist/utils/types/airdrop-sweep.js +1 -0
  447. package/dist/utils/types/contract-factory.d.ts +1 -0
  448. package/dist/utils/types/contract-factory.js +1 -0
  449. package/dist/utils/types/errors.d.ts +1 -0
  450. package/dist/utils/types/errors.js +1 -0
  451. package/dist/utils/types/hop-chains.d.ts +8 -0
  452. package/dist/utils/types/hop-chains.js +1 -0
  453. package/dist/utils/types/index.d.ts +13 -0
  454. package/dist/utils/types/index.js +1 -0
  455. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  456. package/dist/utils/types/mpc-exclusive.js +1 -0
  457. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  458. package/dist/utils/types/stealth-transfer.js +1 -0
  459. package/dist/utils/types/wallet.d.ts +25 -0
  460. package/dist/utils/types/wallet.js +1 -0
  461. package/dist/utils/wallet.d.ts +4 -25
  462. package/dist/utils/wallet.js +27 -22
  463. package/package.json +96 -2
  464. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -26
  465. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -113
  466. package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -70
  467. package/dist/contracts/tm-bundle-merkle/config.js +0 -114
  468. package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
  469. package/dist/contracts/tm-bundle-merkle/index.js +0 -29
  470. package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -48
  471. package/dist/contracts/tm-bundle-merkle/internal.js +0 -240
  472. package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -146
  473. package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -20
  474. package/dist/contracts/tm-bundle-merkle/utils.js +0 -1503
  475. package/dist/dex/direct-router.d.ts +0 -150
  476. package/dist/shared/abis/TaxToken.json +0 -105
  477. package/dist/shared/abis/TokenManager2.json +0 -60
  478. package/dist/shared/flap/graduated-dex.d.ts +0 -1
  479. package/dist/shared/flap/graduated-dex.js +0 -1
  480. package/dist/shared/flap/launch-v6.d.ts +0 -132
  481. package/dist/shared/flap/launch-v6.js +0 -137
  482. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +0 -79
  483. package/dist/shared/flap/portal-bundle-merkle/config.js +0 -133
  484. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +0 -14
  485. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
  486. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +0 -201
  487. package/dist/shared/flap/portal-bundle-merkle/swap.js +0 -1359
  488. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +0 -89
  489. package/dist/shared/flap/portal-create-token.d.ts +0 -63
  490. package/dist/shared/flap/portal-create-token.js +0 -258
  491. package/dist/shared/four/index.d.ts +0 -7
  492. package/dist/shared/four/index.js +0 -22
  493. package/dist/shared/index.d.ts +0 -10
  494. package/dist/shared/index.js +0 -10
  495. package/dist/utils/holders-maker.d.ts +0 -154
  496. package/dist/utils/holders-maker.js +0 -945
  497. package/dist/utils/pcs-infinity-cl.d.ts +0 -65
  498. package/dist/utils/pcs-infinity-cl.js +0 -426
  499. package/dist/utils/private-sale.d.ts +0 -90
  500. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  501. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
  502. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.d.ts +0 -0
  503. /package/dist/{shared/flap/portal-bundle-merkle/types.js → bundle/four-meme/types/buy-first.js} +0 -0
  504. /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/types.js +0 -0
  505. /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
  506. /package/dist/{shared → core}/constants/profit.d.ts +0 -0
  507. /package/dist/{shared → core}/constants/profit.js +0 -0
  508. /package/dist/{dex → domains/dex}/index.d.ts +0 -0
  509. /package/dist/{dex → domains/dex}/index.js +0 -0
  510. /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
  511. /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
  512. /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
  513. /package/dist/{shared → domains}/flap/ipfs.js +0 -0
  514. /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
  515. /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  516. /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  517. /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
  518. /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
  519. /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
@@ -7,32 +7,65 @@
7
7
  import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
8
8
  import { ENI_CHAIN_ID, ENI_RPC_URL, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
9
9
  import { IRO_TOKEN_ABI, SUBSCRIBE_GAS_LIMIT } from './constants.js';
10
- import { getProfitRecipient } from '../../../../shared/constants/profit.js';
10
+ import { getProfitRecipient } from '../../../../core/constants/profit.js';
11
11
  const tokenIface = new Interface(IRO_TOKEN_ABI);
12
12
  // ============================================================================
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({
@@ -0,0 +1,43 @@
1
+ /**
2
+ * ENI 链交易提交方法
3
+ *
4
+ * 包括快速顺序广播、同块确认等提交策略。
5
+ */
6
+ export interface EniBundleSubmitConfig {
7
+ rpcUrl: string;
8
+ chainId?: number;
9
+ chainName?: string;
10
+ simulationTimeout?: number;
11
+ blockConfirmTimeout?: number;
12
+ }
13
+ export interface EniTxResult {
14
+ index: number;
15
+ success: boolean;
16
+ txHash?: string;
17
+ error?: string;
18
+ }
19
+ export interface EniBundleSubmitResult {
20
+ code: boolean;
21
+ totalTransactions: number;
22
+ successCount: number;
23
+ failedCount: number;
24
+ txHashes: string[];
25
+ results: EniTxResult[];
26
+ sameBlock: boolean;
27
+ blockNumber?: number;
28
+ blockNumbers?: number[];
29
+ simulationDurationMs?: number;
30
+ broadcastDurationMs?: number;
31
+ errorSummary?: string;
32
+ }
33
+ /**
34
+ * ENI 快速并行广播:业务交易并行 + 利润交易顺序跟随
35
+ */
36
+ export declare function submitEniParallelThenProfit(signedTransactions: string[], config: EniBundleSubmitConfig): Promise<EniBundleSubmitResult>;
37
+ /**
38
+ * ENI Bundle 提交:模拟验证 → 快速顺序广播 → 同块确认
39
+ *
40
+ * 复用同一 Provider 快速顺序广播,最小化延迟、最大化同块概率。
41
+ * ENI 出块 ~1.08s,连续 nonce 快速提交同块率极高。
42
+ */
43
+ export declare function submitBundleToEni(signedTransactions: string[], config: EniBundleSubmitConfig): Promise<EniBundleSubmitResult>;
@@ -0,0 +1,287 @@
1
+ /**
2
+ * ENI 链交易提交方法
3
+ *
4
+ * 包括快速顺序广播、同块确认等提交策略。
5
+ */
6
+ import { ethers } from 'ethers';
7
+ import { getErrorMessageFromUnknown } from '../../core/index.js';
8
+ import { createSignProvider } from '../../bundle/sign-context-helpers.js';
9
+ // ==================== 内部辅助 ====================
10
+ function shouldTreatBroadcastErrorAsMaybeSent(m) {
11
+ return (m.includes('nonce too low') || m.includes('already known') || m.includes('replacement transaction underpriced'));
12
+ }
13
+ async function recoverTxHashIfAlreadySeen(provider, signedTx, errorMessage) {
14
+ if (!shouldTreatBroadcastErrorAsMaybeSent(errorMessage))
15
+ return undefined;
16
+ try {
17
+ const hash = ethers.keccak256(signedTx);
18
+ if (!hash)
19
+ return undefined;
20
+ const tx = await provider.getTransaction(hash);
21
+ return tx ? hash : undefined;
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ // ==================== 提交方法 ====================
28
+ /**
29
+ * ENI 快速并行广播:业务交易并行 + 利润交易顺序跟随
30
+ */
31
+ export async function submitEniParallelThenProfit(signedTransactions, config) {
32
+ const totalTransactions = signedTransactions?.length ?? 0;
33
+ const emptyFail = (msg) => ({
34
+ code: false,
35
+ totalTransactions,
36
+ successCount: 0,
37
+ failedCount: totalTransactions,
38
+ txHashes: [],
39
+ results: [],
40
+ sameBlock: false,
41
+ errorSummary: msg,
42
+ });
43
+ if (!signedTransactions || signedTransactions.length === 0)
44
+ return emptyFail('signedTransactions cannot be empty');
45
+ if (!config.rpcUrl)
46
+ return emptyFail('rpcUrl is required');
47
+ const chainId = config.chainId ?? 173;
48
+ const chainName = config.chainName ?? 'ENI';
49
+ const provider = createSignProvider(config.rpcUrl, chainId, chainName);
50
+ // Step 1: 按 from 地址分组,识别独立交易和依赖交易
51
+ const fromCounts = new Map();
52
+ const txMeta = [];
53
+ for (let i = 0; i < signedTransactions.length; i++) {
54
+ const tx = ethers.Transaction.from(signedTransactions[i]);
55
+ const from = tx.from;
56
+ const count = fromCounts.get(from) ?? 0;
57
+ fromCounts.set(from, count + 1);
58
+ txMeta.push({ from, index: i, seqInFrom: count });
59
+ }
60
+ const independentTxs = txMeta.filter((t) => t.seqInFrom === 0);
61
+ const allResults = [];
62
+ const txHashes = [];
63
+ const errors = [];
64
+ // Step 2: 并行广播独立交易
65
+ await Promise.all(independentTxs.map(async ({ index }) => {
66
+ try {
67
+ const txResponse = await provider.broadcastTransaction(signedTransactions[index]);
68
+ allResults[index] = {
69
+ index,
70
+ success: true,
71
+ txHash: txResponse.hash,
72
+ };
73
+ txHashes.push(txResponse.hash);
74
+ }
75
+ catch (error) {
76
+ const errorMessage = getErrorMessageFromUnknown(error);
77
+ const recovered = await recoverTxHashIfAlreadySeen(provider, signedTransactions[index], errorMessage);
78
+ if (recovered) {
79
+ allResults[index] = {
80
+ index,
81
+ success: true,
82
+ txHash: recovered,
83
+ error: errorMessage,
84
+ };
85
+ txHashes.push(recovered);
86
+ }
87
+ else {
88
+ allResults[index] = { index, success: false, error: errorMessage };
89
+ errors.push(`独立交易 ${index + 1}: ${errorMessage}`);
90
+ }
91
+ }
92
+ }));
93
+ // Step 3: 逐 from 处理依赖交易(利润尾随)
94
+ const independentFroms = independentTxs.map((t) => t.from);
95
+ const fromDependents = new Map();
96
+ for (const meta of txMeta) {
97
+ if (meta.seqInFrom > 0) {
98
+ const deps = fromDependents.get(meta.from) ?? [];
99
+ deps.push(meta);
100
+ fromDependents.set(meta.from, deps);
101
+ }
102
+ }
103
+ for (const from of independentFroms) {
104
+ const deps = fromDependents.get(from);
105
+ if (!deps || deps.length === 0)
106
+ continue;
107
+ for (const dep of deps) {
108
+ try {
109
+ const txResponse = await provider.broadcastTransaction(signedTransactions[dep.index]);
110
+ allResults[dep.index] = {
111
+ index: dep.index,
112
+ success: true,
113
+ txHash: txResponse.hash,
114
+ };
115
+ txHashes.push(txResponse.hash);
116
+ }
117
+ catch (error) {
118
+ const errorMessage = getErrorMessageFromUnknown(error);
119
+ const recovered = await recoverTxHashIfAlreadySeen(provider, signedTransactions[dep.index], errorMessage);
120
+ if (recovered) {
121
+ allResults[dep.index] = {
122
+ index: dep.index,
123
+ success: true,
124
+ txHash: recovered,
125
+ error: errorMessage,
126
+ };
127
+ txHashes.push(recovered);
128
+ }
129
+ else {
130
+ allResults[dep.index] = {
131
+ index: dep.index,
132
+ success: false,
133
+ error: errorMessage,
134
+ };
135
+ errors.push(`依赖交易 ${dep.index + 1}(${from}): ${errorMessage}`);
136
+ }
137
+ }
138
+ }
139
+ }
140
+ return {
141
+ code: errors.length === 0,
142
+ totalTransactions,
143
+ successCount: txHashes.length,
144
+ failedCount: totalTransactions - txHashes.length,
145
+ txHashes,
146
+ results: allResults.filter(Boolean),
147
+ sameBlock: false,
148
+ errorSummary: errors.length > 0 ? errors.join('; ') : undefined,
149
+ };
150
+ }
151
+ /**
152
+ * ENI Bundle 提交:模拟验证 → 快速顺序广播 → 同块确认
153
+ *
154
+ * 复用同一 Provider 快速顺序广播,最小化延迟、最大化同块概率。
155
+ * ENI 出块 ~1.08s,连续 nonce 快速提交同块率极高。
156
+ */
157
+ export async function submitBundleToEni(signedTransactions, config) {
158
+ const totalTransactions = signedTransactions?.length ?? 0;
159
+ const emptyFail = (msg) => ({
160
+ code: false,
161
+ totalTransactions,
162
+ successCount: 0,
163
+ failedCount: totalTransactions,
164
+ txHashes: [],
165
+ results: [],
166
+ sameBlock: false,
167
+ errorSummary: msg,
168
+ });
169
+ if (!signedTransactions || signedTransactions.length === 0)
170
+ return emptyFail('signedTransactions cannot be empty');
171
+ if (!config.rpcUrl)
172
+ return emptyFail('rpcUrl is required');
173
+ const chainId = config.chainId ?? 173;
174
+ const chainName = config.chainName ?? 'ENI';
175
+ const simulationTimeout = config.simulationTimeout ?? 10000;
176
+ const blockConfirmTimeout = config.blockConfirmTimeout ?? 15000;
177
+ const provider = createSignProvider(config.rpcUrl, chainId, chainName);
178
+ // Phase 1: 模拟验证
179
+ const simStart = Date.now();
180
+ const simErrors = [];
181
+ for (let i = 0; i < signedTransactions.length; i++) {
182
+ try {
183
+ const tx = ethers.Transaction.from(signedTransactions[i]);
184
+ await Promise.race([
185
+ provider.call({
186
+ to: tx.to,
187
+ data: tx.data,
188
+ value: tx.value,
189
+ from: tx.from,
190
+ }),
191
+ new Promise((_, reject) => setTimeout(() => reject(new Error('simulation timeout')), simulationTimeout)),
192
+ ]);
193
+ }
194
+ catch (e) {
195
+ const msg = getErrorMessageFromUnknown(e);
196
+ if (msg.includes('simulation timeout')) {
197
+ console.warn(`⚠️ [${chainName}] 交易 ${i + 1} 模拟超时,跳过验证`);
198
+ }
199
+ else if (msg.includes('execution reverted') || msg.includes('CALL_EXCEPTION')) {
200
+ simErrors.push(`交易 ${i + 1} 模拟失败: ${msg.slice(0, 200)}`);
201
+ }
202
+ }
203
+ }
204
+ const simulationDurationMs = Date.now() - simStart;
205
+ if (simErrors.length > 0) {
206
+ return { ...emptyFail(simErrors.join('; ')), simulationDurationMs };
207
+ }
208
+ // Phase 2: 快速顺序广播
209
+ const broadStart = Date.now();
210
+ const results = [];
211
+ const txHashes = [];
212
+ for (let i = 0; i < signedTransactions.length; i++) {
213
+ try {
214
+ const txResponse = await provider.broadcastTransaction(signedTransactions[i]);
215
+ results.push({ index: i, success: true, txHash: txResponse.hash });
216
+ txHashes.push(txResponse.hash);
217
+ }
218
+ catch (error) {
219
+ const errorMessage = getErrorMessageFromUnknown(error);
220
+ const recovered = await recoverTxHashIfAlreadySeen(provider, signedTransactions[i], errorMessage);
221
+ if (recovered) {
222
+ results.push({ index: i, success: true, txHash: recovered, error: errorMessage });
223
+ txHashes.push(recovered);
224
+ }
225
+ else {
226
+ results.push({ index: i, success: false, error: errorMessage });
227
+ console.error(`❌ [${chainName}] Bundle tx ${i + 1}/${totalTransactions} 失败: ${errorMessage}`);
228
+ }
229
+ }
230
+ }
231
+ const broadcastDurationMs = Date.now() - broadStart;
232
+ const successCount = txHashes.length;
233
+ const failedCount = totalTransactions - successCount;
234
+ if (successCount === 0) {
235
+ return {
236
+ code: false,
237
+ totalTransactions,
238
+ successCount,
239
+ failedCount,
240
+ txHashes,
241
+ results,
242
+ sameBlock: false,
243
+ simulationDurationMs,
244
+ broadcastDurationMs,
245
+ errorSummary: results
246
+ .filter((r) => !r.success)
247
+ .map((r) => r.error)
248
+ .join('; '),
249
+ };
250
+ }
251
+ // Phase 3: 同块确认
252
+ let sameBlock = false;
253
+ let blockNumber;
254
+ const blockNumbers = [];
255
+ try {
256
+ const receipts = await Promise.all(txHashes.map((hash) => Promise.race([
257
+ provider.waitForTransaction(hash, 1, blockConfirmTimeout),
258
+ new Promise((resolve) => setTimeout(() => resolve(null), blockConfirmTimeout)),
259
+ ])));
260
+ for (const receipt of receipts) {
261
+ if (receipt && receipt.blockNumber) {
262
+ blockNumbers.push(receipt.blockNumber);
263
+ }
264
+ }
265
+ if (blockNumbers.length === txHashes.length && blockNumbers.length > 0) {
266
+ const uniqueBlocks = new Set(blockNumbers);
267
+ sameBlock = uniqueBlocks.size === 1;
268
+ blockNumber = sameBlock ? blockNumbers[0] : undefined;
269
+ }
270
+ }
271
+ catch {
272
+ console.warn(`⚠️ [${chainName}] Bundle 区块确认超时`);
273
+ }
274
+ return {
275
+ code: true,
276
+ totalTransactions,
277
+ successCount,
278
+ failedCount,
279
+ txHashes,
280
+ results,
281
+ sameBlock,
282
+ blockNumber,
283
+ blockNumbers: blockNumbers.length > 0 ? blockNumbers : undefined,
284
+ simulationDurationMs,
285
+ broadcastDurationMs,
286
+ };
287
+ }
@@ -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
+ };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Monad 链特有常量
3
3
  */
4
- import { CHAINS, GAS_LIMITS } from '../../shared/constants/index.js';
4
+ import { CHAINS, GAS_LIMITS } from '../../core/constants/index.js';
5
5
  // ============================================================================
6
6
  // 链配置
7
7
  // ============================================================================
@@ -16,9 +16,14 @@ export declare const XLAYER_ADDRESSES: {
16
16
  readonly FlapPortal: "0xb30D8c4216E1f21F27444D2FfAee3ad577808678";
17
17
  readonly FlapTokenImpl: "0x12Dc83157Bf1cfCB8Db5952b3ba5bb56Cc38f8C9";
18
18
  readonly PotatoSwapV2Router: "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
19
+ readonly PotatoSwapV2Factory: "0x630DB8E822805c82Ca40a54daE02dd5aC31f7fcF";
19
20
  readonly PotatoSwapSwapRouter02: "0xB45D0149249488333E3F3f9F359807F4b810C1FC";
20
21
  readonly PotatoSwapV3Router: "0xBB069e9465BcabC4F488d21e793BDEf0F2d41D41";
21
22
  readonly PotatoSwapV3Factory: "0xa1415fAe79c4B196d087F02b8aD5a622B8A827E5";
23
+ readonly PotatoSwapQuoterV2: "0x5A6f3723346aF54a4D0693bfC1718D64d4915C3e";
24
+ readonly DyorSwapV2Factory: "0x2CcaDb1e437AA9cDc741574bDa154686B1F04C09";
25
+ readonly DyorSwapRouter: "0xfb001fbbace32f09cb6d3c449b935183de53ee96";
26
+ readonly DyorSwapEthBackDividend: "0x2e61b0b4410f6fb941d47205191cbb8963d44bcc";
22
27
  readonly EntryPointV06: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789";
23
28
  readonly SimpleAccountFactory: "0x9406Cc6185a346906296840746125a0E44976454";
24
29
  readonly Multicall3: "0xca11bde05977b3631167028862be2a173976ca11";
@@ -4,7 +4,7 @@
4
4
  * 通用常量请使用 shared/constants
5
5
  * ABI 定义在 xlayer/constants.ts(旧文件,后续迁移)
6
6
  */
7
- import { CHAINS, ADDRESSES, GAS_LIMITS, GAS_CONFIG } from '../../shared/constants/index.js';
7
+ import { CHAINS, ADDRESSES, GAS_LIMITS, GAS_CONFIG } from '../../core/constants/index.js';
8
8
  // ============================================================================
9
9
  // 链配置(从 shared 导出)
10
10
  // ============================================================================