four-flap-meme-sdk 2.2.19 → 2.2.20

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 (493) hide show
  1. package/dist/__tests__/subpath-exports.test.d.ts +1 -0
  2. package/dist/__tests__/subpath-exports.test.js +64 -0
  3. package/dist/abis/common.d.ts +85 -0
  4. package/dist/abis/common.js +240 -0
  5. package/dist/abis/contracts/TaxToken.json +969 -0
  6. package/dist/abis/contracts/TokenManager.json +836 -0
  7. package/dist/abis/contracts/TokenManager2.json +136 -0
  8. package/dist/abis/contracts/TokenManagerHelper3.json +993 -0
  9. package/dist/abis/contracts/index.d.ts +5 -0
  10. package/dist/abis/contracts/index.js +5 -0
  11. package/dist/abis/flap/index.d.ts +5 -0
  12. package/dist/abis/flap/index.js +5 -0
  13. package/dist/abis/flap/portal-eip7702.d.ts +4 -0
  14. package/dist/abis/flap/portal-eip7702.js +39 -0
  15. package/dist/abis/flap/portal-events.d.ts +6 -0
  16. package/dist/abis/flap/portal-events.js +17 -0
  17. package/dist/abis/flap/portal-merkle.d.ts +4 -0
  18. package/dist/abis/flap/portal-merkle.js +25 -0
  19. package/dist/abis/flap/portal.d.ts +6 -0
  20. package/dist/abis/flap/portal.js +37 -0
  21. package/dist/abis/flap/vault.d.ts +171 -0
  22. package/dist/abis/flap/vault.js +91 -0
  23. package/dist/abis/index.d.ts +8 -0
  24. package/dist/abis/index.js +11 -0
  25. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
  26. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  27. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
  28. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  29. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  30. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  31. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  32. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  33. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  34. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  35. package/dist/bundle-core/config-helpers.d.ts +37 -0
  36. package/dist/bundle-core/config-helpers.js +58 -0
  37. package/dist/bundle-core/errors.d.ts +50 -0
  38. package/dist/bundle-core/errors.js +38 -0
  39. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  40. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  41. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  42. package/dist/bundle-core/four-meme/core-helpers.js +41 -0
  43. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  44. package/dist/bundle-core/four-meme/core.js +515 -0
  45. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  46. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  47. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  48. package/dist/bundle-core/four-meme/private.js +465 -0
  49. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  50. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  51. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  52. package/dist/bundle-core/four-meme/swap-buy-first.js +456 -0
  53. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  54. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  55. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  56. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  57. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +28 -0
  58. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  59. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  60. package/dist/bundle-core/four-meme/swap.js +505 -0
  61. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  62. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  63. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  64. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  65. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  66. package/dist/bundle-core/four-meme/types/index.js +1 -0
  67. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  68. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  69. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  70. package/dist/bundle-core/four-meme/types.js +1 -0
  71. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  72. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  73. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  74. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  75. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  76. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  77. package/dist/bundle-core/index.d.ts +8 -0
  78. package/dist/bundle-core/index.js +8 -0
  79. package/dist/bundle-core/internal.d.ts +16 -0
  80. package/dist/bundle-core/internal.js +160 -0
  81. package/dist/bundle-core/sign-context-helpers.d.ts +26 -0
  82. package/dist/bundle-core/sign-context-helpers.js +63 -0
  83. package/dist/bundle-core/submit.d.ts +293 -0
  84. package/dist/bundle-core/submit.js +731 -0
  85. package/dist/bundle-core/types/index.d.ts +8 -0
  86. package/dist/bundle-core/types/index.js +1 -0
  87. package/dist/bundle-core/types.d.ts +1 -0
  88. package/dist/bundle-core/types.js +1 -0
  89. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  90. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  91. package/dist/chains/bsc/four/config.d.ts +5 -67
  92. package/dist/chains/bsc/four/config.js +2 -114
  93. package/dist/chains/bsc/four/core.d.ts +1 -4
  94. package/dist/chains/bsc/four/core.js +1 -592
  95. package/dist/chains/bsc/four/index.d.ts +6 -6
  96. package/dist/chains/bsc/four/index.js +6 -6
  97. package/dist/chains/bsc/four/internal.d.ts +2 -46
  98. package/dist/chains/bsc/four/internal.js +2 -239
  99. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  100. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  101. package/dist/chains/bsc/four/private.d.ts +1 -27
  102. package/dist/chains/bsc/four/private.js +1 -477
  103. package/dist/chains/bsc/four/submit.d.ts +2 -315
  104. package/dist/chains/bsc/four/submit.js +2 -752
  105. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  106. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  107. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  108. package/dist/chains/bsc/four/swap-internal.js +1 -18
  109. package/dist/chains/bsc/four/swap.d.ts +2 -144
  110. package/dist/chains/bsc/four/swap.js +2 -766
  111. package/dist/chains/bsc/four/types.d.ts +1 -476
  112. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  113. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  114. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  115. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  116. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  117. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  118. package/dist/chains/bsc/four/utils.d.ts +5 -18
  119. package/dist/chains/bsc/four/utils.js +5 -1552
  120. package/dist/chains/bsc/iro.d.ts +5 -0
  121. package/dist/chains/bsc/iro.js +4 -0
  122. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +155 -0
  123. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
  124. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  125. package/dist/chains/bsc/pancake/bundle-buy-first.js +98 -213
  126. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  127. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  128. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  129. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  130. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  131. package/dist/chains/bsc/pancake/index.js +1 -3
  132. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  133. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  134. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  135. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  136. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  137. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  138. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  139. package/dist/chains/eni/batch-router/transfer.js +55 -25
  140. package/dist/chains/eni/batch-router/utils.js +32 -6
  141. package/dist/chains/eni/bundler/sign.js +5 -6
  142. package/dist/chains/eni/bundler/submit.js +1 -4
  143. package/dist/chains/eni/constants.js +1 -1
  144. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  145. package/dist/chains/eni/flat-aliases.js +8 -0
  146. package/dist/chains/eni/index.d.ts +2 -1
  147. package/dist/chains/eni/index.js +1 -0
  148. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  149. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  150. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  151. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  152. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
  153. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  154. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  155. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  156. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  157. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
  158. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  159. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  160. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  161. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  162. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  163. package/dist/chains/eni/platforms/iro/index.js +4 -4
  164. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  165. package/dist/chains/eni/platforms/iro/token.js +107 -31
  166. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  167. package/dist/chains/eni/submit.d.ts +43 -0
  168. package/dist/chains/eni/submit.js +287 -0
  169. package/dist/chains/index.d.ts +13 -0
  170. package/dist/chains/index.js +13 -0
  171. package/dist/chains/xlayer/constants.d.ts +5 -0
  172. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  173. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  174. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  175. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  176. package/dist/chains/xlayer/eip7702/bundle-create.js +104 -74
  177. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  178. package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
  179. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  180. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
  181. package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
  182. package/dist/chains/xlayer/eip7702/constants.js +15 -68
  183. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  184. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  185. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  186. package/dist/chains/xlayer/eip7702/index.js +28 -81
  187. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  188. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  189. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  190. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
  191. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  192. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -0
  193. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  194. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  195. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  196. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  197. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  198. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  199. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  200. package/dist/chains/xlayer/eoa/constants.d.ts +1 -1
  201. package/dist/chains/xlayer/eoa/constants.js +2 -16
  202. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  203. package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
  204. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  205. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  206. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  207. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  208. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  209. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  210. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  211. package/dist/chains/xlayer/eoa/index.js +8 -23
  212. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  213. package/dist/chains/xlayer/eoa/router-manager.js +5 -4
  214. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  215. package/dist/chains/xlayer/eoa/types.js +1 -3
  216. package/dist/chains/xlayer/index.d.ts +3 -2
  217. package/dist/chains/xlayer/index.js +4 -7
  218. package/dist/contracts/helper3.d.ts +20 -5
  219. package/dist/contracts/helper3.js +56 -20
  220. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  221. package/dist/contracts/tm-bundle-helpers.js +73 -0
  222. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  223. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
  224. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
  225. package/dist/contracts/tm-bundle-merkle/config.js +2 -114
  226. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  227. package/dist/contracts/tm-bundle-merkle/core.js +1 -591
  228. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  229. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  230. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
  231. package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
  232. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  233. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
  234. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  235. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  236. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  237. package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
  238. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  239. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
  240. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  241. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  242. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  243. package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
  244. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  245. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  246. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  247. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  248. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  249. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  250. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  251. package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
  252. package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
  253. package/dist/contracts/tm-bundle.d.ts +3 -51
  254. package/dist/contracts/tm-bundle.js +120 -187
  255. package/dist/contracts/tm.d.ts +10 -8
  256. package/dist/contracts/tm.js +39 -35
  257. package/dist/contracts/tm1.js +9 -4
  258. package/dist/contracts/tm2.js +10 -5
  259. package/dist/dex/direct-router-helpers.d.ts +269 -0
  260. package/dist/dex/direct-router-helpers.js +536 -0
  261. package/dist/dex/direct-router.d.ts +3 -125
  262. package/dist/dex/direct-router.js +244 -672
  263. package/dist/dex/types.d.ts +81 -0
  264. package/dist/dex/types.js +1 -0
  265. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  266. package/dist/exports/root-bundle-and-tooling.js +30 -0
  267. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  268. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  269. package/dist/exports/root-foundations.d.ts +35 -0
  270. package/dist/exports/root-foundations.js +70 -0
  271. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  272. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  273. package/dist/flap/index.d.ts +11 -0
  274. package/dist/flap/index.js +9 -0
  275. package/dist/flows/create.d.ts +2 -1
  276. package/dist/flows/create.js +6 -6
  277. package/dist/flows/index.d.ts +9 -0
  278. package/dist/flows/index.js +9 -0
  279. package/dist/index.d.ts +20 -88
  280. package/dist/index.js +20 -218
  281. package/dist/merkle/index.d.ts +12 -0
  282. package/dist/merkle/index.js +11 -0
  283. package/dist/shared/abis/common.d.ts +2 -83
  284. package/dist/shared/abis/common.js +2 -254
  285. package/dist/shared/abis/index.d.ts +5 -6
  286. package/dist/shared/abis/index.js +5 -7
  287. package/dist/shared/clients/blockrazor.d.ts +4 -8
  288. package/dist/shared/clients/blockrazor.js +43 -35
  289. package/dist/shared/clients/club48.d.ts +2 -2
  290. package/dist/shared/clients/club48.js +36 -30
  291. package/dist/shared/clients/emitservice.js +2 -0
  292. package/dist/shared/clients/four.d.ts +21 -6
  293. package/dist/shared/clients/four.js +29 -24
  294. package/dist/shared/clients/index.d.ts +8 -0
  295. package/dist/shared/clients/index.js +8 -0
  296. package/dist/shared/clients/merkle.d.ts +4 -3
  297. package/dist/shared/clients/merkle.js +30 -47
  298. package/dist/shared/constants/addresses.d.ts +27 -1
  299. package/dist/shared/constants/addresses.js +39 -2
  300. package/dist/shared/constants/chains.d.ts +1 -1
  301. package/dist/shared/constants/chains.js +1 -1
  302. package/dist/shared/constants/gas.d.ts +1 -1
  303. package/dist/shared/constants/gas.js +2 -6
  304. package/dist/shared/constants/index.d.ts +4 -1
  305. package/dist/shared/constants/index.js +2 -1
  306. package/dist/shared/constants/quote.d.ts +30 -0
  307. package/dist/shared/constants/quote.js +37 -0
  308. package/dist/shared/flap/abi.js +1 -1
  309. package/dist/shared/flap/constants.d.ts +1 -2
  310. package/dist/shared/flap/constants.js +3 -4
  311. package/dist/shared/flap/curve.js +3 -0
  312. package/dist/shared/flap/errors.d.ts +1 -4
  313. package/dist/shared/flap/errors.js +20 -1
  314. package/dist/shared/flap/index.d.ts +4 -5
  315. package/dist/shared/flap/index.js +4 -5
  316. package/dist/shared/flap/launch-v6.d.ts +0 -5
  317. package/dist/shared/flap/launch-v6.js +2 -16
  318. package/dist/shared/flap/meta.d.ts +22 -18
  319. package/dist/shared/flap/meta.js +32 -24
  320. package/dist/shared/flap/permit.js +10 -3
  321. package/dist/shared/flap/pinata.d.ts +22 -6
  322. package/dist/shared/flap/pinata.js +21 -26
  323. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  324. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  325. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  326. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  327. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  328. package/dist/shared/flap/portal-bundle-merkle/core.js +168 -175
  329. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
  330. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +96 -117
  331. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +104 -122
  332. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  333. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  334. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  335. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  336. package/dist/shared/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
  337. package/dist/shared/flap/portal-bundle-merkle/swap-batch.js +227 -0
  338. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  339. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  340. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  341. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
  342. package/dist/shared/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
  343. package/dist/shared/flap/portal-bundle-merkle/swap-cross.js +139 -0
  344. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  345. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  346. package/dist/shared/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
  347. package/dist/shared/flap/portal-bundle-merkle/swap-planning.js +182 -0
  348. package/dist/shared/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
  349. package/dist/shared/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
  350. package/dist/shared/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
  351. package/dist/shared/flap/portal-bundle-merkle/swap-single.js +184 -0
  352. package/dist/shared/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
  353. package/dist/shared/flap/portal-bundle-merkle/swap-types.js +1 -0
  354. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +6 -199
  355. package/dist/shared/flap/portal-bundle-merkle/swap.js +5 -1357
  356. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +88 -12
  357. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  358. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  359. package/dist/shared/flap/portal-bundle.js +83 -78
  360. package/dist/shared/flap/portal-create-token.d.ts +39 -21
  361. package/dist/shared/flap/portal-create-token.js +121 -124
  362. package/dist/shared/flap/portal.d.ts +1 -2
  363. package/dist/shared/flap/portal.js +36 -28
  364. package/dist/shared/flap/vanity.d.ts +6 -6
  365. package/dist/shared/flap/vanity.js +15 -21
  366. package/dist/shared/flap/vault.d.ts +25 -93
  367. package/dist/shared/flap/vault.js +77 -127
  368. package/dist/shared/foundation/amount/split-by-weight.d.ts +5 -0
  369. package/dist/shared/foundation/amount/split-by-weight.js +35 -0
  370. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  371. package/dist/shared/foundation/dex/v3-path.js +35 -0
  372. package/dist/shared/foundation/erc20/decimals.d.ts +7 -0
  373. package/dist/shared/foundation/erc20/decimals.js +24 -0
  374. package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
  375. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  376. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  377. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  378. package/dist/shared/foundation/index.d.ts +15 -0
  379. package/dist/shared/foundation/index.js +14 -0
  380. package/dist/shared/foundation/nonce/nonce-manager.d.ts +19 -0
  381. package/dist/shared/foundation/nonce/nonce-manager.js +217 -0
  382. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  383. package/dist/shared/foundation/normalize-unknown.js +29 -0
  384. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  385. package/dist/shared/foundation/sdk-logger.js +12 -0
  386. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  387. package/dist/shared/foundation/tx/build-request.js +25 -0
  388. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  389. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  390. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  391. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  392. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  393. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  394. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  395. package/dist/shared/foundation/types/erc20.js +1 -0
  396. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  397. package/dist/shared/foundation/types/holders-maker.js +1 -0
  398. package/dist/shared/foundation/types/index.d.ts +7 -0
  399. package/dist/shared/foundation/types/index.js +1 -0
  400. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  401. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  402. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  403. package/dist/shared/foundation/types/multicall.js +1 -0
  404. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  405. package/dist/shared/foundation/types/private-sale.js +1 -0
  406. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  407. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  408. package/dist/shared/foundation/wallet/generate.d.ts +5 -0
  409. package/dist/shared/foundation/wallet/generate.js +8 -0
  410. package/dist/shared/four/tax-token.d.ts +1 -1
  411. package/dist/shared/four/tax-token.js +31 -10
  412. package/dist/shared/index.d.ts +6 -0
  413. package/dist/shared/index.js +4 -0
  414. package/dist/types/errors.d.ts +27 -0
  415. package/dist/types/errors.js +34 -0
  416. package/dist/utils/airdrop-sweep.d.ts +4 -76
  417. package/dist/utils/airdrop-sweep.js +42 -55
  418. package/dist/utils/bundle-helpers.d.ts +9 -243
  419. package/dist/utils/bundle-helpers.js +10 -584
  420. package/dist/utils/constants.d.ts +5 -61
  421. package/dist/utils/constants.js +5 -80
  422. package/dist/utils/contract-factory.d.ts +2 -4
  423. package/dist/utils/contract-factory.js +25 -18
  424. package/dist/utils/erc20.d.ts +7 -89
  425. package/dist/utils/erc20.js +98 -129
  426. package/dist/utils/errors.d.ts +12 -1
  427. package/dist/utils/errors.js +60 -1
  428. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  429. package/dist/utils/holders-maker/addresses.js +15 -0
  430. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  431. package/dist/utils/holders-maker/buy-tx.js +278 -0
  432. package/dist/utils/holders-maker/constants.d.ts +6 -0
  433. package/dist/utils/holders-maker/constants.js +7 -0
  434. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  435. package/dist/utils/holders-maker/disperse.js +90 -0
  436. package/dist/utils/holders-maker/routing.d.ts +4 -0
  437. package/dist/utils/holders-maker/routing.js +45 -0
  438. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  439. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  440. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  441. package/dist/utils/holders-maker-helpers.js +9 -0
  442. package/dist/utils/holders-maker.d.ts +2 -138
  443. package/dist/utils/holders-maker.js +50 -671
  444. package/dist/utils/hop-chains.d.ts +35 -0
  445. package/dist/utils/hop-chains.js +215 -0
  446. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  447. package/dist/utils/lp-inspect-helpers.js +109 -0
  448. package/dist/utils/lp-inspect.d.ts +2 -112
  449. package/dist/utils/lp-inspect.js +78 -293
  450. package/dist/utils/mpcExclusive.d.ts +2 -5
  451. package/dist/utils/mpcExclusive.js +4 -3
  452. package/dist/utils/pcs-infinity-cl.js +18 -54
  453. package/dist/utils/private-sale.d.ts +2 -58
  454. package/dist/utils/private-sale.js +4 -15
  455. package/dist/utils/provider-factory.d.ts +4 -0
  456. package/dist/utils/provider-factory.js +10 -0
  457. package/dist/utils/quote-helpers.d.ts +4 -45
  458. package/dist/utils/quote-helpers.js +17 -74
  459. package/dist/utils/stealth-transfer.d.ts +2 -28
  460. package/dist/utils/stealth-transfer.js +39 -19
  461. package/dist/utils/swap-helpers.d.ts +2 -15
  462. package/dist/utils/swap-helpers.js +6 -11
  463. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  464. package/dist/utils/types/airdrop-sweep.js +1 -0
  465. package/dist/utils/types/contract-factory.d.ts +1 -0
  466. package/dist/utils/types/contract-factory.js +1 -0
  467. package/dist/utils/types/erc20.d.ts +1 -0
  468. package/dist/utils/types/erc20.js +1 -0
  469. package/dist/utils/types/errors.d.ts +1 -0
  470. package/dist/utils/types/errors.js +1 -0
  471. package/dist/utils/types/holders-maker.d.ts +1 -0
  472. package/dist/utils/types/holders-maker.js +1 -0
  473. package/dist/utils/types/hop-chains.d.ts +8 -0
  474. package/dist/utils/types/hop-chains.js +1 -0
  475. package/dist/utils/types/index.d.ts +13 -0
  476. package/dist/utils/types/index.js +1 -0
  477. package/dist/utils/types/lp-inspect.d.ts +1 -0
  478. package/dist/utils/types/lp-inspect.js +1 -0
  479. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  480. package/dist/utils/types/mpc-exclusive.js +1 -0
  481. package/dist/utils/types/private-sale.d.ts +1 -0
  482. package/dist/utils/types/private-sale.js +1 -0
  483. package/dist/utils/types/quote-helpers.d.ts +1 -0
  484. package/dist/utils/types/quote-helpers.js +1 -0
  485. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  486. package/dist/utils/types/stealth-transfer.js +1 -0
  487. package/dist/utils/types/wallet.d.ts +25 -0
  488. package/dist/utils/types/wallet.js +1 -0
  489. package/dist/utils/wallet.d.ts +4 -25
  490. package/dist/utils/wallet.js +27 -22
  491. package/dist/vanity/index.d.ts +5 -0
  492. package/dist/vanity/index.js +5 -0
  493. package/package.json +100 -2
@@ -9,10 +9,10 @@
9
9
  * 支持 FLAP 内盘、V2 和 V3 三种交易类型
10
10
  * 只生成签名,由调用方决定如何提交
11
11
  */
12
- import { ethers, Contract, JsonRpcProvider } from 'ethers';
12
+ import { ethers, Contract } from 'ethers';
13
13
  import { quoteV2, quoteV3 } from '../../../utils/quote-helpers.js';
14
14
  import { getCachedProvider, createWallet, signAuthorization, signAuthorizationsWithNonces, batchGetNonces, buildEIP7702TransactionSync, calculateProfitAmountByUserType, calculateProfitAmountByTxCount, getProfitRecipient, generateRandomWallets, } from './utils.js';
15
- import { UNIFIED_DELEGATE_ADDRESS, POTATOSWAP_V2_ROUTER, POTATOSWAP_V3_ROUTER, FLAP_PORTAL_ADDRESS, WOKB_ADDRESS, V3_FEE_TIERS, UNIFIED_DELEGATE_ABI, FLAP_PORTAL_ABI, ERC20_ABI, XLAYER_RPC_URL, XLAYER_CHAIN_ID, } from './constants.js';
15
+ import { UNIFIED_DELEGATE_ADDRESS, POTATOSWAP_V2_ROUTER, POTATOSWAP_V3_ROUTER, FLAP_PORTAL_ADDRESS, WOKB_ADDRESS, V3_FEE_TIERS, UNIFIED_DELEGATE_ABI, FLAP_PORTAL_ABI, ERC20_ABI, XLAYER_RPC_URL, } from './constants.js';
16
16
  // ========================================
17
17
  // 路由地址获取
18
18
  // ========================================
@@ -50,7 +50,7 @@ function truncateDecimals(value, decimals = 18) {
50
50
  async function quoteSellOutput(sellAmount, tokenAddress, tradeType, fee, rpcUrl) {
51
51
  if (sellAmount <= 0n)
52
52
  return 0n;
53
- const provider = new JsonRpcProvider(rpcUrl || XLAYER_RPC_URL, { chainId: XLAYER_CHAIN_ID, name: 'xlayer', ensAddress: undefined });
53
+ const provider = getCachedProvider(rpcUrl || XLAYER_RPC_URL);
54
54
  try {
55
55
  switch (tradeType) {
56
56
  case 'FLAP': {
@@ -63,25 +63,22 @@ async function quoteSellOutput(sellAmount, tokenAddress, tradeType, fee, rpcUrl)
63
63
  outputToken: ethers.ZeroAddress,
64
64
  inputAmount: sellAmount,
65
65
  });
66
- console.log(`[Bundle Swap] FLAP quoteExactInput 成功: ${ethers.formatEther(okbOut)} OKB`);
67
66
  return BigInt(okbOut.toString());
68
67
  }
69
- catch (e) {
70
- console.warn(`[Bundle Swap] FLAP quoteExactInput 失败:`, e);
68
+ catch {
69
+ // fallback to previewSell
71
70
  }
72
71
  // 回退到 previewSell
73
72
  try {
74
73
  const okbOut = await portalContract.previewSell(tokenAddress, sellAmount);
75
- console.log(`[Bundle Swap] FLAP previewSell 成功: ${ethers.formatEther(okbOut)} OKB`);
76
74
  return BigInt(okbOut.toString());
77
75
  }
78
76
  catch {
79
- console.warn(`[Bundle Swap] FLAP previewSell 失败,尝试 V2...`);
77
+ // fallback to V2
80
78
  }
81
79
  // 回退到 V2
82
80
  const v2Result = await quoteV2(provider, tokenAddress, WOKB_ADDRESS, sellAmount, 'XLAYER');
83
81
  if (v2Result.amountOut > 0n) {
84
- console.log(`[Bundle Swap] FLAP 回退 V2 报价成功: ${ethers.formatEther(v2Result.amountOut)} OKB`);
85
82
  return v2Result.amountOut;
86
83
  }
87
84
  break;
@@ -89,7 +86,6 @@ async function quoteSellOutput(sellAmount, tokenAddress, tradeType, fee, rpcUrl)
89
86
  case 'V2': {
90
87
  const result = await quoteV2(provider, tokenAddress, WOKB_ADDRESS, sellAmount, 'XLAYER');
91
88
  if (result.amountOut > 0n) {
92
- console.log(`[Bundle Swap] V2 报价成功: ${ethers.formatEther(result.amountOut)} OKB`);
93
89
  return result.amountOut;
94
90
  }
95
91
  break;
@@ -97,199 +93,22 @@ async function quoteSellOutput(sellAmount, tokenAddress, tradeType, fee, rpcUrl)
97
93
  case 'V3': {
98
94
  const result = await quoteV3(provider, tokenAddress, WOKB_ADDRESS, sellAmount, 'XLAYER', fee);
99
95
  if (result.amountOut > 0n) {
100
- console.log(`[Bundle Swap] V3 报价成功 (fee=${result.fee}): ${ethers.formatEther(result.amountOut)} OKB`);
101
96
  return result.amountOut;
102
97
  }
103
98
  // 回退到 V2
104
99
  const v2Result = await quoteV2(provider, tokenAddress, WOKB_ADDRESS, sellAmount, 'XLAYER');
105
100
  if (v2Result.amountOut > 0n) {
106
- console.log(`[Bundle Swap] V3 回退 V2 报价成功: ${ethers.formatEther(v2Result.amountOut)} OKB`);
107
101
  return v2Result.amountOut;
108
102
  }
109
103
  break;
110
104
  }
111
105
  }
112
106
  }
113
- catch (error) {
114
- console.error(`[Bundle Swap] 报价失败:`, error);
107
+ catch {
108
+ // quote failed, return 0
115
109
  }
116
- console.warn(`[Bundle Swap] 无法获取报价,利润计算可能不准确`);
117
110
  return 0n;
118
111
  }
119
- // ========================================
120
- // 构建卖出并转账调用
121
- // ========================================
122
- function buildSellAndTransferCall(sellerWallet, sellAmount, tokenAddress, recipient, tradeType, routerAddress, fee) {
123
- const delegateInterface = new ethers.Interface(UNIFIED_DELEGATE_ABI);
124
- const portalInterface = new ethers.Interface(FLAP_PORTAL_ABI);
125
- switch (tradeType) {
126
- case 'FLAP': {
127
- // ✅ FLAP: 使用 swapExactInput 卖出(与 AA 模式保持一致)
128
- const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [{
129
- inputToken: tokenAddress,
130
- outputToken: ethers.ZeroAddress, // 0x0 = OKB
131
- inputAmount: sellAmount,
132
- minOutputAmount: 0n,
133
- permitData: '0x',
134
- }]);
135
- // 通过 executeBatch 让 seller 钱包调用 Portal
136
- const batchCalls = [{ target: FLAP_PORTAL_ADDRESS, value: 0n, data: portalCallData }];
137
- const callData = delegateInterface.encodeFunctionData('executeBatch', [batchCalls]);
138
- return {
139
- target: sellerWallet.address,
140
- allowFailure: false,
141
- value: 0n,
142
- callData,
143
- };
144
- }
145
- case 'V2': {
146
- // V2: 使用 executeSellAndTransferV2
147
- const path = [tokenAddress, WOKB_ADDRESS];
148
- const callData = delegateInterface.encodeFunctionData('executeSellAndTransferV2', [
149
- routerAddress,
150
- path,
151
- sellAmount,
152
- recipient,
153
- ]);
154
- return {
155
- target: sellerWallet.address,
156
- allowFailure: false,
157
- value: 0n,
158
- callData,
159
- };
160
- }
161
- case 'V3': {
162
- // V3: 使用 executeSellAndTransfer
163
- const callData = delegateInterface.encodeFunctionData('executeSellAndTransfer', [
164
- routerAddress,
165
- tokenAddress,
166
- WOKB_ADDRESS,
167
- fee,
168
- sellAmount,
169
- recipient,
170
- ]);
171
- return {
172
- target: sellerWallet.address,
173
- allowFailure: false,
174
- value: 0n,
175
- callData,
176
- };
177
- }
178
- }
179
- }
180
- // ========================================
181
- // 构建买入调用
182
- // ========================================
183
- function buildBuyCall(buyerWallet, tokenAddress, tradeType, routerAddress, fee, buyAmount // ✅ 新增:买入金额(防止使用全部余额导致问题)
184
- ) {
185
- const delegateInterface = new ethers.Interface(UNIFIED_DELEGATE_ABI);
186
- const portalInterface = new ethers.Interface(FLAP_PORTAL_ABI);
187
- switch (tradeType) {
188
- case 'FLAP': {
189
- // ✅ FLAP: 使用 swapExactInput 买入(与 AA 模式保持一致)
190
- // 原 buy(address token) ABI 与 Portal 不匹配,改用 swapExactInput
191
- const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [{
192
- inputToken: ethers.ZeroAddress, // 0x0 = OKB (原生代币)
193
- outputToken: tokenAddress,
194
- inputAmount: buyAmount,
195
- minOutputAmount: 0n,
196
- permitData: '0x',
197
- }]);
198
- const batchCalls = [{ target: FLAP_PORTAL_ADDRESS, value: buyAmount, data: portalCallData }];
199
- return {
200
- target: buyerWallet.address,
201
- allowFailure: false,
202
- value: 0n,
203
- callData: delegateInterface.encodeFunctionData('executeBatch', [batchCalls]),
204
- };
205
- }
206
- case 'V2': {
207
- // ✅ V2: 使用 executeBuyV2,传入指定金额
208
- const path = [WOKB_ADDRESS, tokenAddress];
209
- const callData = delegateInterface.encodeFunctionData('executeBuyV2', [
210
- routerAddress,
211
- path,
212
- buyAmount, // ✅ 使用指定金额,不是 0
213
- ]);
214
- return {
215
- target: buyerWallet.address,
216
- allowFailure: false,
217
- value: 0n,
218
- callData,
219
- };
220
- }
221
- case 'V3': {
222
- // ✅ V3: 使用 executeBuy,传入指定金额
223
- const callData = delegateInterface.encodeFunctionData('executeBuy', [
224
- routerAddress,
225
- WOKB_ADDRESS,
226
- tokenAddress,
227
- fee,
228
- buyAmount, // ✅ 使用指定金额,不是 0
229
- ]);
230
- return {
231
- target: buyerWallet.address,
232
- allowFailure: false,
233
- value: 0n,
234
- callData,
235
- };
236
- }
237
- }
238
- }
239
- /**
240
- * 构建捆绑换手交易
241
- */
242
- async function buildSwapCalls(sellerWallet, buyerWallet, hopWallets, sellAmount, buyAmount, // ✅ 新增:买入金额(防止使用全部余额)
243
- tokenAddress, tradeType, routerAddress, fee) {
244
- const delegateInterface = new ethers.Interface(UNIFIED_DELEGATE_ABI);
245
- const calls = [];
246
- // 第一步:卖家卖币并转账给第一个中间钱包
247
- const firstRecipient = hopWallets.length > 0 ? hopWallets[0].address : buyerWallet.address;
248
- const sellCall = buildSellAndTransferCall(sellerWallet, sellAmount, tokenAddress, firstRecipient, tradeType, routerAddress, fee);
249
- calls.push(sellCall);
250
- // FLAP 模式需要额外的转账调用(因为 sell 函数不支持直接转账)
251
- if (tradeType === 'FLAP') {
252
- const transferData = delegateInterface.encodeFunctionData('transferTo', [firstRecipient]);
253
- calls.push({
254
- target: sellerWallet.address,
255
- allowFailure: false,
256
- value: 0n,
257
- callData: transferData,
258
- });
259
- }
260
- // 中间钱包之间的转账
261
- for (let i = 0; i < hopWallets.length; i++) {
262
- const nextRecipient = i < hopWallets.length - 1 ? hopWallets[i + 1].address : buyerWallet.address;
263
- const transferData = delegateInterface.encodeFunctionData('transferTo', [nextRecipient]);
264
- calls.push({
265
- target: hopWallets[i].address,
266
- allowFailure: false,
267
- value: 0n,
268
- callData: transferData,
269
- });
270
- }
271
- // ✅ 最后一步:买家买币(使用指定金额)
272
- const buyCall = buildBuyCall(buyerWallet, tokenAddress, tradeType, routerAddress, fee, buyAmount);
273
- calls.push(buyCall);
274
- return calls;
275
- }
276
- /**
277
- * 捆绑换手 - 生成签名后的交易
278
- *
279
- * @param params 换手参数
280
- * @returns 签名后的交易和元数据
281
- *
282
- * @example
283
- * // FLAP 内盘换手
284
- * const result = await bundleSwap({
285
- * sellerPrivateKey: '0x...',
286
- * buyerPrivateKey: '0x...',
287
- * tokenAddress: '0x...',
288
- * sellAmount: '100',
289
- * tradeType: 'FLAP',
290
- * hopCount: 2,
291
- * });
292
- */
293
112
  export async function bundleSwap(params) {
294
113
  const { sellerPrivateKey, buyerPrivateKey, tokenAddress, tokenDecimals = 18, sellAmount, hopCount = 0, tradeType = 'V3', routerAddress, fee = V3_FEE_TIERS.MEDIUM, userType = 'v0', useFundUtilization = false, // ✅ 默认普通模式
295
114
  config, } = params;
@@ -306,25 +125,15 @@ export async function bundleSwap(params) {
306
125
  // 资金利用率模式才需要中间钱包
307
126
  const actualHopCount = useFundUtilization ? hopCount : 0;
308
127
  const hopWalletInfos = actualHopCount > 0 ? generateRandomWallets(actualHopCount) : [];
309
- const hopWallets = hopWalletInfos.map(info => createWallet(info.privateKey, provider));
128
+ const hopWallets = hopWalletInfos.map((info) => createWallet(info.privateKey, provider));
310
129
  const sellAmountWei = ethers.parseUnits(truncateDecimals(sellAmount, tokenDecimals), tokenDecimals);
311
130
  // 获取卖出报价
312
131
  const estimatedOkbOut = await quoteSellOutput(sellAmountWei, tokenAddress, tradeType, fee, config?.rpcUrl);
313
132
  // 使用双边费率计算利润(换手 = 卖 + 买)
314
- const profitAmount = estimatedOkbOut > 0n
315
- ? calculateProfitAmountByUserType(estimatedOkbOut, userType, true)
316
- : 0n;
133
+ const profitAmount = estimatedOkbOut > 0n ? calculateProfitAmountByUserType(estimatedOkbOut, userType, true) : 0n;
317
134
  const profitRecipient = getProfitRecipient(config);
318
135
  // 计算买入金额
319
- const buyAmountAfterProfit = estimatedOkbOut > profitAmount
320
- ? estimatedOkbOut - profitAmount
321
- : 0n;
322
- const modeLabel = useFundUtilization ? '资金利用率' : '普通';
323
- console.log(`[Bundle Swap] 模式: ${modeLabel}`);
324
- console.log(`[Bundle Swap] 卖出数量: ${sellAmount} Token`);
325
- console.log(`[Bundle Swap] 预估获得: ${ethers.formatEther(estimatedOkbOut)} OKB`);
326
- console.log(`[Bundle Swap] 利润: ${ethers.formatEther(profitAmount)} OKB (userType=${userType})`);
327
- console.log(`[Bundle Swap] 买入金额: ${ethers.formatEther(buyAmountAfterProfit)} OKB`);
136
+ const buyAmountAfterProfit = estimatedOkbOut > profitAmount ? estimatedOkbOut - profitAmount : 0n;
328
137
  // ========================================
329
138
  // 并行获取数据
330
139
  // ========================================
@@ -374,7 +183,6 @@ export async function bundleSwap(params) {
374
183
  // 4. 分发者按比例转账给买家
375
184
  // 5. 买家买入
376
185
  // ========================================
377
- console.log(`[Bundle Swap] 资金利用率模式,hopCount=${actualHopCount}`);
378
186
  // 1. 卖家卖出
379
187
  const sellCall = buildSellCallWithAmountInternal(sellerWallet, sellAmountWei, tokenAddress, tradeType, actualRouter, fee, delegateInterface, portalInterface);
380
188
  calls.push(sellCall);
@@ -427,7 +235,6 @@ export async function bundleSwap(params) {
427
235
  // 2. 买家用自己预存的 OKB 买入代币
428
236
  // 3. 利润从买家的 OKB 中扣除
429
237
  // ========================================
430
- console.log(`[Bundle Swap] 普通模式`);
431
238
  // 1. 卖家卖出(OKB 留在卖家账户)
432
239
  const sellCall = buildSellCallWithAmountInternal(sellerWallet, sellAmountWei, tokenAddress, tradeType, actualRouter, fee, delegateInterface, portalInterface);
433
240
  calls.push(sellCall);
@@ -492,28 +299,18 @@ export async function bundleBatchSwap(params) {
492
299
  // 创建钱包
493
300
  // ========================================
494
301
  const sellerWallet = createWallet(sellerPrivateKey, provider);
495
- const buyerWallets = buyerPrivateKeys.map(pk => createWallet(pk, provider));
302
+ const buyerWallets = buyerPrivateKeys.map((pk) => createWallet(pk, provider));
496
303
  // 资金利用率模式才需要中间钱包
497
304
  const actualHopCount = useFundUtilization ? hopCount : 0;
498
305
  const hopWalletInfos = actualHopCount > 0 ? generateRandomWallets(actualHopCount) : [];
499
- const hopWallets = hopWalletInfos.map(info => createWallet(info.privateKey, provider));
306
+ const hopWallets = hopWalletInfos.map((info) => createWallet(info.privateKey, provider));
500
307
  const sellAmountWei = ethers.parseUnits(truncateDecimals(sellAmount, tokenDecimals), tokenDecimals);
501
308
  // 获取卖出报价
502
309
  const estimatedOkbOut = await quoteSellOutput(sellAmountWei, tokenAddress, tradeType, fee, config?.rpcUrl);
503
310
  // 计算利润和买入金额
504
- const profitAmount = estimatedOkbOut > 0n
505
- ? calculateProfitAmountByUserType(estimatedOkbOut, userType, true)
506
- : 0n;
311
+ const profitAmount = estimatedOkbOut > 0n ? calculateProfitAmountByUserType(estimatedOkbOut, userType, true) : 0n;
507
312
  const profitRecipient = getProfitRecipient(config);
508
- const totalBuyAmountAfterProfit = estimatedOkbOut > profitAmount
509
- ? estimatedOkbOut - profitAmount
510
- : 0n;
511
- const modeLabel = useFundUtilization ? '资金利用率' : '普通';
512
- console.log(`[Bundle Batch Swap] 模式: ${modeLabel}`);
513
- console.log(`[Bundle Batch Swap] 卖出数量: ${sellAmount} Token`);
514
- console.log(`[Bundle Batch Swap] 预估获得: ${ethers.formatEther(estimatedOkbOut)} OKB`);
515
- console.log(`[Bundle Batch Swap] 利润: ${ethers.formatEther(profitAmount)} OKB (userType=${userType})`);
516
- console.log(`[Bundle Batch Swap] 买入金额: ${ethers.formatEther(totalBuyAmountAfterProfit)} OKB`);
313
+ const totalBuyAmountAfterProfit = estimatedOkbOut > profitAmount ? estimatedOkbOut - profitAmount : 0n;
517
314
  // 验证报价
518
315
  if (tradeType === 'FLAP' && totalBuyAmountAfterProfit <= 0n) {
519
316
  throw new Error('FLAP 内盘模式需要有效的报价,请检查代币地址或稍后重试');
@@ -521,11 +318,11 @@ export async function bundleBatchSwap(params) {
521
318
  // ========================================
522
319
  // 并行获取数据
523
320
  // ========================================
524
- const addressesToQuery = [sellerWallet.address, ...buyerWallets.map(w => w.address)];
321
+ const addressesToQuery = [sellerWallet.address, ...buyerWallets.map((w) => w.address)];
525
322
  const [nonces, feeData, ...buyerBalances] = await Promise.all([
526
323
  batchGetNonces(addressesToQuery, provider),
527
324
  provider.getFeeData(),
528
- ...buyerWallets.map(w => provider.getBalance(w.address)),
325
+ ...buyerWallets.map((w) => provider.getBalance(w.address)),
529
326
  ]);
530
327
  const sellerNonce = nonces[0];
531
328
  const buyerNonces = nonces.slice(1);
@@ -578,7 +375,6 @@ export async function bundleBatchSwap(params) {
578
375
  const remainder = totalBuyAmountAfterProfit % BigInt(buyerWallets.length);
579
376
  buyAmountsPerBuyer = buyerWallets.map((_, i) => i === buyerWallets.length - 1 ? avgAmount + remainder : avgAmount);
580
377
  }
581
- console.log(`[bundleBatchSwap] 买入金额分配:`, buyAmountsPerBuyer.map(a => ethers.formatEther(a)));
582
378
  if (useFundUtilization) {
583
379
  // ========================================
584
380
  // ✅ 资金利用率模式(一卖多买)
@@ -587,7 +383,6 @@ export async function bundleBatchSwap(params) {
587
383
  // 3. 卖家(或最后一个 hop)按比例转账给各买家
588
384
  // 4. 各买家用收到的 OKB 买入
589
385
  // ========================================
590
- console.log(`[Bundle Batch Swap] 资金利用率模式,hopCount=${actualHopCount}`);
591
386
  // 1. 卖家卖出
592
387
  const sellCall = buildSellCallWithAmountInternal(sellerWallet, sellAmountWei, tokenAddress, tradeType, actualRouter, fee, delegateInterface, portalInterface);
593
388
  calls.push(sellCall);
@@ -610,7 +405,10 @@ export async function bundleBatchSwap(params) {
610
405
  target: sellerWallet.address,
611
406
  allowFailure: false,
612
407
  value: 0n,
613
- callData: delegateInterface.encodeFunctionData('transferAmount', [hopWallets[0].address, totalBuyAmountAfterProfit]),
408
+ callData: delegateInterface.encodeFunctionData('transferAmount', [
409
+ hopWallets[0].address,
410
+ totalBuyAmountAfterProfit,
411
+ ]),
614
412
  });
615
413
  // 中间钱包之间转账(到最后一个 hop):使用 transferTo(全部余额)
616
414
  for (let i = 0; i < hopWallets.length - 1; i++) {
@@ -651,7 +449,6 @@ export async function bundleBatchSwap(params) {
651
449
  // 2. 利润从第一个买家 OKB 中扣除
652
450
  // 3. 各买家用自己预存的 OKB 买入
653
451
  // ========================================
654
- console.log(`[Bundle Batch Swap] 普通模式`);
655
452
  // 1. 卖家卖出(OKB 留在卖家账户)
656
453
  const sellCall = buildSellCallWithAmountInternal(sellerWallet, sellAmountWei, tokenAddress, tradeType, actualRouter, fee, delegateInterface, portalInterface);
657
454
  calls.push(sellCall);
@@ -679,7 +476,7 @@ export async function bundleBatchSwap(params) {
679
476
  hopWallets: hopWalletInfos,
680
477
  metadata: {
681
478
  sellerAddress: sellerWallet.address,
682
- buyerAddresses: buyerWallets.map(w => w.address),
479
+ buyerAddresses: buyerWallets.map((w) => w.address),
683
480
  sellAmount: ethers.formatUnits(sellAmountWei, tokenDecimals),
684
481
  estimatedOkbOut: ethers.formatEther(estimatedOkbOut),
685
482
  estimatedBuyAmount: ethers.formatEther(totalBuyAmountAfterProfit),
@@ -723,18 +520,15 @@ export async function bundleMultiSwap(params) {
723
520
  throw new Error('必须提供有效的 mainPrivateKey(Payer 钱包私钥)');
724
521
  }
725
522
  // ✅ 验证卖家私钥
726
- const validSellerPrivateKeys = sellerPrivateKeys.filter(pk => isValidPrivateKey(pk));
523
+ const validSellerPrivateKeys = sellerPrivateKeys.filter((pk) => isValidPrivateKey(pk));
727
524
  if (validSellerPrivateKeys.length === 0) {
728
525
  throw new Error('没有有效的卖家私钥');
729
526
  }
730
527
  // ✅ 验证买家私钥
731
- const validBuyerPrivateKeys = buyerPrivateKeys.filter(pk => isValidPrivateKey(pk));
528
+ const validBuyerPrivateKeys = buyerPrivateKeys.filter((pk) => isValidPrivateKey(pk));
732
529
  if (validBuyerPrivateKeys.length === 0) {
733
530
  throw new Error('没有有效的买家私钥');
734
531
  }
735
- if (validSellerPrivateKeys.length !== sellerPrivateKeys.length || validBuyerPrivateKeys.length !== buyerPrivateKeys.length) {
736
- console.warn(`[bundleMultiSwap] 跳过无效私钥: 卖家 ${sellerPrivateKeys.length - validSellerPrivateKeys.length} 个, 买家 ${buyerPrivateKeys.length - validBuyerPrivateKeys.length} 个`);
737
- }
738
532
  const provider = getCachedProvider(config?.rpcUrl);
739
533
  // ✅ 空字符串也使用默认值
740
534
  const delegateAddress = (config?.delegateAddress && config.delegateAddress.trim()) || UNIFIED_DELEGATE_ADDRESS;
@@ -744,16 +538,16 @@ export async function bundleMultiSwap(params) {
744
538
  // ✅ 创建 Payer 钱包(支付 Gas 费)
745
539
  const mainWallet = createWallet(mainPrivateKey, provider);
746
540
  // 创建钱包
747
- const sellerWallets = validSellerPrivateKeys.map(pk => createWallet(pk, provider));
748
- const buyerWallets = validBuyerPrivateKeys.map(pk => createWallet(pk, provider));
541
+ const sellerWallets = validSellerPrivateKeys.map((pk) => createWallet(pk, provider));
542
+ const buyerWallets = validBuyerPrivateKeys.map((pk) => createWallet(pk, provider));
749
543
  // 合并所有钱包(去重,包括 mainWallet)
750
544
  const allWalletsMap = new Map();
751
545
  allWalletsMap.set(mainWallet.address.toLowerCase(), mainWallet);
752
- sellerWallets.forEach(w => allWalletsMap.set(w.address.toLowerCase(), w));
753
- buyerWallets.forEach(w => allWalletsMap.set(w.address.toLowerCase(), w));
546
+ sellerWallets.forEach((w) => allWalletsMap.set(w.address.toLowerCase(), w));
547
+ buyerWallets.forEach((w) => allWalletsMap.set(w.address.toLowerCase(), w));
754
548
  const allWallets = Array.from(allWalletsMap.values());
755
549
  // 找出 mainWallet 在 allWallets 中的索引
756
- const mainWalletIndex = allWallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
550
+ const mainWalletIndex = allWallets.findIndex((w) => w.address.toLowerCase() === mainWallet.address.toLowerCase());
757
551
  // 计算买入金额
758
552
  const totalBuyAmountWei = ethers.parseEther(truncateDecimals(totalBuyAmount));
759
553
  const buyAmountPerWallet = totalBuyAmountWei / BigInt(buyerWallets.length);
@@ -764,13 +558,13 @@ export async function bundleMultiSwap(params) {
764
558
  // ========================================
765
559
  // 并行获取数据
766
560
  // ========================================
767
- const allAddresses = allWallets.map(w => w.address);
561
+ const allAddresses = allWallets.map((w) => w.address);
768
562
  // 获取卖出钱包的代币余额
769
563
  const tokenContract = new ethers.Contract(tokenAddress, ERC20_ABI, provider);
770
564
  const [nonces, feeData, sellerBalances] = await Promise.all([
771
565
  batchGetNonces(allAddresses, provider),
772
566
  provider.getFeeData(),
773
- Promise.all(sellerWallets.map(w => tokenContract.balanceOf(w.address))),
567
+ Promise.all(sellerWallets.map((w) => tokenContract.balanceOf(w.address))),
774
568
  ]);
775
569
  // 计算每个卖家的卖出金额(按百分比)
776
570
  const percentBigInt = BigInt(Math.min(100, Math.max(1, sellPercent)));
@@ -815,8 +609,8 @@ export async function bundleMultiSwap(params) {
815
609
  signedTransaction,
816
610
  metadata: {
817
611
  payerAddress: mainWallet.address,
818
- sellerAddresses: sellerWallets.map(w => w.address),
819
- buyerAddresses: buyerWallets.map(w => w.address),
612
+ sellerAddresses: sellerWallets.map((w) => w.address),
613
+ buyerAddresses: buyerWallets.map((w) => w.address),
820
614
  sellerCount: sellerWallets.filter((_, i) => sellAmountsWei[i] > 0n).length,
821
615
  buyerCount: buyerWallets.length,
822
616
  totalBuyAmount: ethers.formatEther(totalBuyAmountWei),
@@ -835,13 +629,15 @@ function buildBuyCallInternal(wallet, amount, tokenAddress, tradeType, routerAdd
835
629
  case 'FLAP': {
836
630
  // ✅ FLAP: 使用 swapExactInput 买入(与 AA 模式保持一致)
837
631
  // 原 buy(address token) ABI 与 Portal 不匹配,改用 swapExactInput
838
- const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [{
632
+ const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [
633
+ {
839
634
  inputToken: ethers.ZeroAddress, // 0x0 = OKB (原生代币)
840
635
  outputToken: tokenAddress,
841
636
  inputAmount: amount,
842
637
  minOutputAmount: 0n,
843
638
  permitData: '0x',
844
- }]);
639
+ },
640
+ ]);
845
641
  const batchCalls = [{ target: FLAP_PORTAL_ADDRESS, value: amount, data: portalCallData }];
846
642
  return {
847
643
  target: wallet.address,
@@ -867,7 +663,11 @@ function buildBuyCallInternal(wallet, amount, tokenAddress, tradeType, routerAdd
867
663
  allowFailure: false,
868
664
  value: 0n,
869
665
  callData: delegateInterface.encodeFunctionData('executeBuy', [
870
- routerAddress, WOKB_ADDRESS, tokenAddress, fee, amount
666
+ routerAddress,
667
+ WOKB_ADDRESS,
668
+ tokenAddress,
669
+ fee,
670
+ amount,
871
671
  ]),
872
672
  };
873
673
  }
@@ -877,13 +677,15 @@ function buildSellCallWithAmountInternal(wallet, amount, tokenAddress, tradeType
877
677
  switch (tradeType) {
878
678
  case 'FLAP': {
879
679
  // ✅ 使用 swapExactInput 卖出(与 AA 模式保持一致)
880
- const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [{
680
+ const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [
681
+ {
881
682
  inputToken: tokenAddress,
882
683
  outputToken: ethers.ZeroAddress, // 0x0 = OKB
883
684
  inputAmount: amount,
884
685
  minOutputAmount: 0n,
885
686
  permitData: '0x',
886
- }]);
687
+ },
688
+ ]);
887
689
  const batchCalls = [{ target: FLAP_PORTAL_ADDRESS, value: 0n, data: portalCallData }];
888
690
  return {
889
691
  target: wallet.address,
@@ -909,7 +711,11 @@ function buildSellCallWithAmountInternal(wallet, amount, tokenAddress, tradeType
909
711
  value: 0n,
910
712
  // ✅ 修复:传入实际数量,避免卖出全部
911
713
  callData: delegateInterface.encodeFunctionData('executeSell', [
912
- routerAddress, tokenAddress, WOKB_ADDRESS, fee, amount
714
+ routerAddress,
715
+ tokenAddress,
716
+ WOKB_ADDRESS,
717
+ fee,
718
+ amount,
913
719
  ]),
914
720
  };
915
721
  }
@@ -6,39 +6,24 @@ export declare const XLAYER_RPC_URL: "https://xlayerrpc.okx.com";
6
6
  /** 已部署的 UnifiedDelegate 合约地址 */
7
7
  export declare const UNIFIED_DELEGATE_ADDRESS = "0x33C577Fa6A701E30F35B4B0DE3A361bfF400F0Cc";
8
8
  /** Multicall3 地址 (标准部署) */
9
- export declare const MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
9
+ export declare const MULTICALL3_ADDRESS: string;
10
10
  /** WOKB 地址 */
11
- export declare const WOKB_ADDRESS = "0xe538905cf8410324e03a5a23c1c177a474d59b2b";
11
+ export declare const WOKB_ADDRESS: "0xe538905cf8410324e03a5a23c1c177a474d59b2b";
12
12
  /** Flap Portal 地址 */
13
- export declare const FLAP_PORTAL_ADDRESS = "0xb30D8c4216E1f21F27444D2FfAee3ad577808678";
13
+ export declare const FLAP_PORTAL_ADDRESS: "0xb30D8c4216E1f21F27444D2FfAee3ad577808678";
14
14
  /** PotatoSwap V2 Router */
15
- export declare const POTATOSWAP_V2_ROUTER = "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
15
+ export declare const POTATOSWAP_V2_ROUTER: "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
16
16
  /** PotatoSwap V3 Router (SwapRouter02) */
17
- export declare const POTATOSWAP_V3_ROUTER = "0xB45D0149249488333E3F3f9F359807F4b810C1FC";
17
+ export declare const POTATOSWAP_V3_ROUTER: "0xB45D0149249488333E3F3f9F359807F4b810C1FC";
18
18
  /** DYORSwap Router */
19
- export declare const DYORSWAP_ROUTER = "0xfb001fbbace32f09cb6d3c449b935183de53ee96";
19
+ export declare const DYORSWAP_ROUTER: "0xfb001fbbace32f09cb6d3c449b935183de53ee96";
20
20
  /** USDT 地址 (6 位精度) */
21
- export declare const USDT_ADDRESS = "0x1e4a5963abfd975d8c9021ce480b42188849d41d";
21
+ export declare const USDT_ADDRESS: "0x1e4a5963abfd975d8c9021ce480b42188849d41d";
22
22
  /** USDC 地址 (6 位精度) */
23
- export declare const USDC_ADDRESS = "0x74b7f16337b8972027f6196a17a631ac6de26d22";
23
+ export declare const USDC_ADDRESS: "0x74b7f16337b8972027f6196a17a631ac6de26d22";
24
24
  /** USDT0 地址 (6 位精度) */
25
- export declare const USDT0_ADDRESS = "0x779ded0c9e1022225f8e0630b35a9b54be713736";
26
- export declare const PROFIT_CONFIG: {
27
- /** 利润接收地址池(随机轮换,与全局配置一致) */
28
- readonly RECIPIENT: string;
29
- /** 利润比例(基点):40 bps = 0.4%(普通模式) */
30
- RATE_BPS: number;
31
- /** 利润比例(换手模式):6 bps = 0.06% */
32
- RATE_BPS_SWAP: number;
33
- /** 利润比例(单边基点):4 bps = 0.04%(用户类型 v0) */
34
- RATE_BPS_V0: number;
35
- /** 利润比例(双边基点):4 bps = 0.04%(用户类型 v0) */
36
- RATE_BPS_V0_DOUBLE: number;
37
- /** 利润比例(单边基点):5 bps = 0.05%(用户类型 v1) */
38
- RATE_BPS_V1: number;
39
- /** 利润比例(双边基点):5 bps = 0.05%(用户类型 v1) */
40
- RATE_BPS_V1_DOUBLE: number;
41
- };
25
+ export declare const USDT0_ADDRESS: "0x779ded0c9e1022225f8e0630b35a9b54be713736";
26
+ export { getProfitRecipient, getProfitRateBps, getAllProfitRecipients, calculateProfitAmount, } from '../../../shared/constants/index.js';
42
27
  export declare const DEFAULT_GAS_LIMIT = 2000000n;
43
28
  export declare const DEFAULT_DEADLINE_MINUTES = 20;
44
29
  export declare const DEFAULT_SLIPPAGE_BPS = 100;
@@ -78,6 +63,6 @@ export declare const ERC20_ABI: readonly ["function approve(address spender, uin
78
63
  export declare const MULTICALL3_ABI: readonly ["function aggregate3Value((address target, bool allowFailure, uint256 value, bytes callData)[] calls) external payable returns ((bool success, bytes returnData)[] returnData)"];
79
64
  export declare const V3_ROUTER_ABI: readonly ["function exactInputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 amountIn, uint256 amountOutMinimum, uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountOut)", "function multicall(uint256 deadline, bytes[] data) external payable returns (bytes[] results)", "function unwrapWETH9(uint256 amountMinimum, address recipient) external payable", "function refundETH() external payable"];
80
65
  export declare const V2_ROUTER_ABI: readonly ["function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] path, address to, uint256 deadline) external payable", "function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline) external", "function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline) external"];
81
- export declare const FLAP_PORTAL_ABI: readonly ["function buy(address token) external payable returns (uint256)", "function sell(address token, uint256 amount, uint256 minOut) external returns (uint256)", "function swapExactInput((address inputToken, address outputToken, uint256 inputAmount, uint256 minOutputAmount, bytes permitData) params) external payable returns (uint256)", "function swapExactInputV3((address inputToken, address outputToken, uint256 inputAmount, uint256 minOutputAmount, bytes permitData, bytes extensionData) params) external payable returns (uint256)", "function newTokenV2((string name, string symbol, string meta, uint8 dexThresh, bytes32 salt, uint16 taxRate, uint8 migratorType, address quoteToken, uint256 quoteAmt, address beneficiary, bytes permitData) params) external payable returns (address)", "function newTokenV3((string name, string symbol, string meta, uint8 dexThresh, bytes32 salt, uint16 taxRate, uint8 migratorType, address quoteToken, uint256 quoteAmt, address beneficiary, bytes permitData, bytes32 extensionID, bytes extensionData) params) external payable returns (address)", "function newTokenV4((string name, string symbol, string meta, uint8 dexThresh, bytes32 salt, uint16 taxRate, uint8 migratorType, address quoteToken, uint256 quoteAmt, address beneficiary, bytes permitData, bytes32 extensionID, bytes extensionData, uint8 dexId, uint8 lpFeeProfile) params) external payable returns (address)", "function newTokenV5((string name, string symbol, string meta, uint8 dexThresh, bytes32 salt, uint16 taxRate, uint8 migratorType, address quoteToken, uint256 quoteAmt, address beneficiary, bytes permitData, bytes32 extensionID, bytes extensionData, uint8 dexId, uint8 lpFeeProfile, uint64 taxDuration, uint64 antiFarmerDuration, uint16 mktBps, uint16 deflationBps, uint16 dividendBps, uint16 lpBps, uint256 minimumShareBalance) params) external payable returns (address)", "function getToken(address token) external view returns (tuple(address creator, uint256 supply, uint256 reserve, bool graduated))", "function getTokenV5(address token) external view returns (uint8 status, uint256 reserve, uint256 circulatingSupply, uint256 price, uint8 tokenVersion, uint256 r, uint256 h, uint256 k, uint256 dexSupplyThresh, address quoteTokenAddress, bool nativeToQuoteSwapEnabled, bytes32 extensionID)", "function getTokenV7(address token) external view returns (uint8 status, uint256 reserve, uint256 circulatingSupply, uint256 price, uint8 tokenVersion, uint256 r, uint256 h, uint256 k, uint256 dexSupplyThresh, address quoteTokenAddress, bool nativeToQuoteSwapEnabled, bytes32 extensionID, uint8 taxRate, address pool, uint256 progress, uint8 lpFeeProfile)", "function quoteBuy(address token, uint256 ethIn) external view returns (uint256)", "function quoteSell(address token, uint256 tokenIn) external view returns (uint256)", "function quoteExactInput((address inputToken, address outputToken, uint256 inputAmount) params) external view returns (uint256)", "function previewBuy(address token, uint256 ethAmount) external view returns (uint256)", "function previewSell(address token, uint256 tokenAmount) external view returns (uint256)"];
66
+ export { FLAP_PORTAL_ABI } from '../../../abis/flap/portal-eip7702.js';
82
67
  export declare const EIP7702_TX_TYPE = 4;
83
68
  export declare const EIP7702_AUTH_PREFIX = 5;