four-flap-meme-sdk 1.9.49 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/README.en.md +41 -6
  2. package/README.md +31 -0
  3. package/README.zh-CN.md +41 -6
  4. package/dist/abis/common.js +74 -68
  5. package/dist/abis/flap/vault.js +9 -7
  6. package/dist/abis/index.d.ts +3 -4
  7. package/dist/abis/index.js +3 -4
  8. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  9. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  10. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  11. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  12. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  13. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  14. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  15. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  16. package/dist/bundle-core/config-helpers.d.ts +36 -0
  17. package/dist/bundle-core/config-helpers.js +57 -0
  18. package/dist/bundle-core/errors.d.ts +50 -0
  19. package/dist/bundle-core/errors.js +34 -0
  20. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  21. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  22. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  23. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  24. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  25. package/dist/bundle-core/four-meme/core.js +515 -0
  26. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  27. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  28. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  29. package/dist/bundle-core/four-meme/private.js +465 -0
  30. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  31. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  32. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  33. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  34. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  35. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  36. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  37. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  38. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  39. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  40. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  41. package/dist/bundle-core/four-meme/swap.js +505 -0
  42. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  43. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  44. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  45. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  46. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  47. package/dist/bundle-core/four-meme/types/index.js +1 -0
  48. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  49. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  50. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  51. package/dist/bundle-core/four-meme/types.js +1 -0
  52. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  53. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  54. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  55. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  56. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  57. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  58. package/dist/bundle-core/index.d.ts +8 -0
  59. package/dist/bundle-core/index.js +8 -0
  60. package/dist/bundle-core/internal.d.ts +21 -0
  61. package/dist/bundle-core/internal.js +182 -0
  62. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  63. package/dist/bundle-core/sign-context-helpers.js +67 -0
  64. package/dist/bundle-core/submit.d.ts +293 -0
  65. package/dist/bundle-core/submit.js +727 -0
  66. package/dist/bundle-core/types/index.d.ts +8 -0
  67. package/dist/bundle-core/types/index.js +1 -0
  68. package/dist/bundle-core/types.d.ts +1 -0
  69. package/dist/bundle-core/types.js +1 -0
  70. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  71. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -116
  72. package/dist/chains/bsc/four/config.d.ts +5 -70
  73. package/dist/chains/bsc/four/config.js +2 -115
  74. package/dist/chains/bsc/four/core.d.ts +1 -4
  75. package/dist/chains/bsc/four/core.js +1 -589
  76. package/dist/chains/bsc/four/disperse.d.ts +12 -0
  77. package/dist/chains/bsc/four/disperse.js +470 -0
  78. package/dist/chains/bsc/four/index.d.ts +6 -6
  79. package/dist/chains/bsc/four/index.js +6 -6
  80. package/dist/chains/bsc/four/internal.d.ts +2 -50
  81. package/dist/chains/bsc/four/internal.js +2 -237
  82. package/dist/chains/bsc/four/pairwise.d.ts +7 -0
  83. package/dist/chains/bsc/four/pairwise.js +308 -0
  84. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  85. package/dist/chains/bsc/four/pancake-proxy.js +1 -688
  86. package/dist/chains/bsc/four/private.d.ts +1 -27
  87. package/dist/chains/bsc/four/private.js +1 -477
  88. package/dist/chains/bsc/four/submit.d.ts +2 -315
  89. package/dist/chains/bsc/four/submit.js +2 -746
  90. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  91. package/dist/chains/bsc/four/swap-buy-first.js +2 -506
  92. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  93. package/dist/chains/bsc/four/swap-internal.js +1 -18
  94. package/dist/chains/bsc/four/swap.d.ts +2 -144
  95. package/dist/chains/bsc/four/swap.js +2 -760
  96. package/dist/chains/bsc/four/sweep.d.ts +13 -0
  97. package/dist/chains/bsc/four/sweep.js +788 -0
  98. package/dist/chains/bsc/four/types.d.ts +1 -476
  99. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  100. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  101. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  102. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  103. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  104. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  105. package/dist/chains/bsc/four/utils.d.ts +5 -18
  106. package/dist/chains/bsc/four/utils.js +5 -1534
  107. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  108. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  109. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  110. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -207
  111. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  112. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  113. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  114. package/dist/chains/bsc/pancake/bundle-swap.js +111 -686
  115. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  116. package/dist/chains/bsc/pancake/index.js +1 -3
  117. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  118. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  119. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  120. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  121. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  122. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  123. package/dist/chains/eni/batch-router/transfer.js +54 -23
  124. package/dist/chains/eni/batch-router/utils.js +32 -6
  125. package/dist/chains/eni/bundler/sign.js +4 -4
  126. package/dist/chains/eni/bundler/submit.js +1 -4
  127. package/dist/chains/eni/constants.js +1 -1
  128. package/dist/chains/eni/index.d.ts +1 -1
  129. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  130. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  131. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  132. package/dist/chains/eni/platforms/daoaas/meta.js +8 -4
  133. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -43
  134. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  135. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  136. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  137. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  138. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -47
  139. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  140. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  141. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  142. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  143. package/dist/chains/eni/platforms/iro/index.js +4 -4
  144. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  145. package/dist/chains/eni/platforms/iro/token.js +107 -31
  146. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  147. package/dist/chains/eni/submit.js +5 -13
  148. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  149. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -20
  150. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  151. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  152. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -56
  153. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  154. package/dist/chains/xlayer/eip7702/bundle-sell.js +26 -74
  155. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  156. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -68
  157. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  158. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  159. package/dist/chains/xlayer/eip7702/index.d.ts +27 -46
  160. package/dist/chains/xlayer/eip7702/index.js +27 -81
  161. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  162. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  163. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  164. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +58 -291
  165. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  166. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  167. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  168. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  169. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  170. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  171. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  172. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  173. package/dist/chains/xlayer/eip7702/volume.js +83 -158
  174. package/dist/chains/xlayer/eoa/constants.js +1 -1
  175. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  176. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  177. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  178. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  179. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +64 -276
  180. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  181. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +14 -14
  182. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  183. package/dist/chains/xlayer/eoa/index.js +8 -23
  184. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  185. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  186. package/dist/chains/xlayer/eoa/types-core.d.ts +363 -0
  187. package/dist/chains/xlayer/eoa/types-core.js +53 -0
  188. package/dist/chains/xlayer/eoa/types-create.d.ts +413 -0
  189. package/dist/chains/xlayer/eoa/types-create.js +9 -0
  190. package/dist/chains/xlayer/eoa/types-volume.d.ts +209 -0
  191. package/dist/chains/xlayer/eoa/types-volume.js +13 -0
  192. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  193. package/dist/chains/xlayer/eoa/types.js +1 -3
  194. package/dist/contracts/helper3.d.ts +20 -17
  195. package/dist/contracts/helper3.js +56 -20
  196. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  197. package/dist/contracts/tm-bundle-helpers.js +72 -0
  198. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  199. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -117
  200. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -70
  201. package/dist/contracts/tm-bundle-merkle/config.js +2 -115
  202. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  203. package/dist/contracts/tm-bundle-merkle/core.js +1 -588
  204. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  205. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  206. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -50
  207. package/dist/contracts/tm-bundle-merkle/internal.js +2 -236
  208. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  209. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -687
  210. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  211. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  212. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  213. package/dist/contracts/tm-bundle-merkle/submit.js +3 -919
  214. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  215. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -505
  216. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  217. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  218. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  219. package/dist/contracts/tm-bundle-merkle/swap.js +2 -757
  220. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  221. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  222. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  223. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  224. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  225. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  226. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  227. package/dist/contracts/tm-bundle-merkle/utils.d.ts +5 -6
  228. package/dist/contracts/tm-bundle-merkle/utils.js +5 -6
  229. package/dist/contracts/tm-bundle.d.ts +3 -51
  230. package/dist/contracts/tm-bundle.js +102 -142
  231. package/dist/contracts/tm.d.ts +3 -2
  232. package/dist/contracts/tm.js +36 -32
  233. package/dist/contracts/tm1.js +9 -4
  234. package/dist/contracts/tm2.js +9 -4
  235. package/dist/dex/direct-router-helpers.d.ts +264 -0
  236. package/dist/dex/direct-router-helpers.js +539 -0
  237. package/dist/dex/direct-router.d.ts +3 -125
  238. package/dist/dex/direct-router.js +237 -652
  239. package/dist/dex/types.d.ts +81 -0
  240. package/dist/dex/types.js +1 -0
  241. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  242. package/dist/exports/root-bundle-and-tooling.js +30 -0
  243. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  244. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  245. package/dist/exports/root-foundations.d.ts +35 -0
  246. package/dist/exports/root-foundations.js +70 -0
  247. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  248. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  249. package/dist/flows/create.d.ts +2 -2
  250. package/dist/flows/create.js +6 -6
  251. package/dist/flows/index.d.ts +1 -0
  252. package/dist/flows/index.js +1 -0
  253. package/dist/index.d.ts +20 -91
  254. package/dist/index.js +20 -215
  255. package/dist/shared/abis/common.d.ts +2 -83
  256. package/dist/shared/abis/common.js +2 -252
  257. package/dist/shared/abis/index.d.ts +5 -6
  258. package/dist/shared/abis/index.js +5 -7
  259. package/dist/shared/clients/blockrazor.js +41 -24
  260. package/dist/shared/clients/club48.js +30 -26
  261. package/dist/shared/clients/emitservice.js +2 -0
  262. package/dist/shared/clients/four.js +23 -18
  263. package/dist/shared/clients/index.d.ts +8 -0
  264. package/dist/shared/clients/index.js +8 -0
  265. package/dist/shared/clients/merkle.js +26 -30
  266. package/dist/shared/constants/addresses.d.ts +1 -1
  267. package/dist/shared/constants/addresses.js +11 -2
  268. package/dist/shared/constants/chains.d.ts +1 -1
  269. package/dist/shared/constants/chains.js +1 -1
  270. package/dist/shared/constants/gas.d.ts +1 -1
  271. package/dist/shared/constants/gas.js +2 -6
  272. package/dist/shared/constants/index.d.ts +1 -0
  273. package/dist/shared/constants/index.js +1 -0
  274. package/dist/shared/constants/quote.d.ts +30 -0
  275. package/dist/shared/constants/quote.js +37 -0
  276. package/dist/shared/flap/__tests__/curve.test.js +3 -3
  277. package/dist/shared/flap/abi.js +1 -1
  278. package/dist/shared/flap/constants.d.ts +1 -1
  279. package/dist/shared/flap/constants.js +2 -2
  280. package/dist/shared/flap/curve.js +3 -0
  281. package/dist/shared/flap/errors.d.ts +1 -4
  282. package/dist/shared/flap/errors.js +21 -3
  283. package/dist/shared/flap/index.d.ts +2 -2
  284. package/dist/shared/flap/index.js +2 -2
  285. package/dist/shared/flap/meta.d.ts +16 -18
  286. package/dist/shared/flap/meta.js +14 -26
  287. package/dist/shared/flap/permit.js +6 -5
  288. package/dist/shared/flap/pinata.d.ts +9 -2
  289. package/dist/shared/flap/pinata.js +20 -18
  290. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  291. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  292. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  293. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  294. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  295. package/dist/shared/flap/portal-bundle-merkle/core.js +66 -156
  296. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +81 -86
  297. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  298. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  299. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  300. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  301. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  302. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  303. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  304. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  305. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  306. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  307. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  308. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  309. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  310. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +73 -3
  311. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.d.ts +100 -0
  312. package/dist/shared/flap/portal-bundle-merkle/utils-helpers.js +133 -0
  313. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  314. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  315. package/dist/shared/flap/portal-bundle.js +54 -42
  316. package/dist/shared/flap/portal.js +32 -10
  317. package/dist/shared/flap/vanity.js +4 -7
  318. package/dist/shared/flap/vault.d.ts +1 -1
  319. package/dist/shared/flap/vault.js +54 -48
  320. package/dist/shared/flap 2/__tests__/curve.test.d.ts +1 -0
  321. package/dist/shared/flap 2/portal-bundle-merkle/types.js +1 -0
  322. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  323. package/dist/shared/foundation/dex/v3-path.js +35 -0
  324. package/dist/shared/foundation/gas/bundle-gas.d.ts +39 -0
  325. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  326. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  327. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  328. package/dist/shared/foundation/index.d.ts +13 -0
  329. package/dist/shared/foundation/index.js +12 -0
  330. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  331. package/dist/shared/foundation/nonce/nonce-manager.js +180 -0
  332. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  333. package/dist/shared/foundation/normalize-unknown.js +29 -0
  334. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  335. package/dist/shared/foundation/sdk-logger.js +12 -0
  336. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  337. package/dist/shared/foundation/tx/build-request.js +25 -0
  338. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  339. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  340. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  341. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  342. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  343. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  344. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  345. package/dist/shared/foundation/types/erc20.js +1 -0
  346. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  347. package/dist/shared/foundation/types/holders-maker.js +1 -0
  348. package/dist/shared/foundation/types/index.d.ts +7 -0
  349. package/dist/shared/foundation/types/index.js +1 -0
  350. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  351. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  352. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  353. package/dist/shared/foundation/types/multicall.js +1 -0
  354. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  355. package/dist/shared/foundation/types/private-sale.js +1 -0
  356. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  357. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  358. package/dist/shared/four/tax-token.d.ts +1 -1
  359. package/dist/shared/four/tax-token.js +27 -7
  360. package/dist/shared/index.d.ts +4 -0
  361. package/dist/shared/index.js +4 -0
  362. package/dist/types/distribute.d.ts +72 -0
  363. package/dist/types/distribute.js +1 -0
  364. package/dist/types 2/errors.d.ts +27 -0
  365. package/dist/types 2/errors.js +34 -0
  366. package/dist/utils/airdrop-sweep-types.d.ts +1 -0
  367. package/dist/utils/airdrop-sweep-types.js +1 -0
  368. package/dist/utils/airdrop-sweep.d.ts +4 -76
  369. package/dist/utils/airdrop-sweep.js +38 -52
  370. package/dist/utils/bundle-helpers.d.ts +9 -243
  371. package/dist/utils/bundle-helpers.js +10 -584
  372. package/dist/utils/constants.d.ts +5 -61
  373. package/dist/utils/constants.js +5 -80
  374. package/dist/utils/contract-factory.d.ts +2 -4
  375. package/dist/utils/contract-factory.js +25 -18
  376. package/dist/utils/erc20-types.d.ts +1 -0
  377. package/dist/utils/erc20-types.js +1 -0
  378. package/dist/utils/erc20.d.ts +8 -90
  379. package/dist/utils/erc20.js +94 -153
  380. package/dist/utils/errors.d.ts +10 -22
  381. package/dist/utils/errors.js +61 -79
  382. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  383. package/dist/utils/holders-maker/addresses.js +15 -0
  384. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  385. package/dist/utils/holders-maker/buy-tx.js +278 -0
  386. package/dist/utils/holders-maker/constants.d.ts +6 -0
  387. package/dist/utils/holders-maker/constants.js +7 -0
  388. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  389. package/dist/utils/holders-maker/disperse.js +90 -0
  390. package/dist/utils/holders-maker/routing.d.ts +4 -0
  391. package/dist/utils/holders-maker/routing.js +45 -0
  392. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  393. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  394. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  395. package/dist/utils/holders-maker-helpers.js +9 -0
  396. package/dist/utils/holders-maker-types.d.ts +1 -0
  397. package/dist/utils/holders-maker-types.js +1 -0
  398. package/dist/utils/holders-maker.d.ts +2 -138
  399. package/dist/utils/holders-maker.js +23 -651
  400. package/dist/utils/hop-chains.d.ts +35 -0
  401. package/dist/utils/hop-chains.js +215 -0
  402. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  403. package/dist/utils/lp-inspect-helpers.js +109 -0
  404. package/dist/utils/lp-inspect-types.d.ts +1 -0
  405. package/dist/utils/lp-inspect-types.js +1 -0
  406. package/dist/utils/lp-inspect.d.ts +2 -112
  407. package/dist/utils/lp-inspect.js +63 -195
  408. package/dist/utils/mpcExclusive.d.ts +2 -5
  409. package/dist/utils/mpcExclusive.js +4 -3
  410. package/dist/utils/private-sale-types.d.ts +1 -0
  411. package/dist/utils/private-sale-types.js +1 -0
  412. package/dist/utils/private-sale.d.ts +2 -58
  413. package/dist/utils/private-sale.js +2 -7
  414. package/dist/utils/provider-factory.d.ts +4 -0
  415. package/dist/utils/provider-factory.js +10 -0
  416. package/dist/utils/quote-helpers-types.d.ts +1 -0
  417. package/dist/utils/quote-helpers-types.js +1 -0
  418. package/dist/utils/quote-helpers.d.ts +4 -45
  419. package/dist/utils/quote-helpers.js +15 -65
  420. package/dist/utils/stealth-transfer.d.ts +2 -28
  421. package/dist/utils/stealth-transfer.js +30 -14
  422. package/dist/utils/swap-helpers.d.ts +0 -3
  423. package/dist/utils/swap-helpers.js +6 -9
  424. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  425. package/dist/utils/types/airdrop-sweep.js +1 -0
  426. package/dist/utils/types/contract-factory.d.ts +1 -0
  427. package/dist/utils/types/contract-factory.js +1 -0
  428. package/dist/utils/types/erc20.d.ts +1 -0
  429. package/dist/utils/types/erc20.js +1 -0
  430. package/dist/utils/types/errors.d.ts +1 -0
  431. package/dist/utils/types/errors.js +1 -0
  432. package/dist/utils/types/holders-maker.d.ts +1 -0
  433. package/dist/utils/types/holders-maker.js +1 -0
  434. package/dist/utils/types/hop-chains.d.ts +8 -0
  435. package/dist/utils/types/hop-chains.js +1 -0
  436. package/dist/utils/types/index.d.ts +13 -0
  437. package/dist/utils/types/index.js +1 -0
  438. package/dist/utils/types/lp-inspect.d.ts +1 -0
  439. package/dist/utils/types/lp-inspect.js +1 -0
  440. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  441. package/dist/utils/types/mpc-exclusive.js +1 -0
  442. package/dist/utils/types/private-sale.d.ts +1 -0
  443. package/dist/utils/types/private-sale.js +1 -0
  444. package/dist/utils/types/quote-helpers.d.ts +1 -0
  445. package/dist/utils/types/quote-helpers.js +1 -0
  446. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  447. package/dist/utils/types/stealth-transfer.js +1 -0
  448. package/dist/utils/types/wallet.d.ts +25 -0
  449. package/dist/utils/types/wallet.js +1 -0
  450. package/dist/utils/wallet.d.ts +2 -25
  451. package/dist/utils/wallet.js +9 -10
  452. package/package.json +55 -2
  453. package/src/abis/contracts/TaxToken.json +969 -0
  454. package/src/abis/contracts/TokenManager.json +836 -0
  455. package/src/abis/contracts/TokenManager2.json +136 -0
  456. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  457. /package/dist/{shared 2/flap/__tests__/curve.test.d.ts → bundle-core/__tests__/config-helpers.test.d.ts} +0 -0
  458. /package/dist/{shared 2/flap/portal-bundle-merkle/types.js → bundle-core/__tests__/facade-parity.test.d.ts} +0 -0
  459. /package/dist/{shared 2/abis → shared/abis 2}/TaxToken.json +0 -0
  460. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager.json +0 -0
  461. /package/dist/{shared 2/abis → shared/abis 2}/TokenManager2.json +0 -0
  462. /package/dist/{shared 2/abis → shared/abis 2}/TokenManagerHelper3.json +0 -0
  463. /package/dist/{shared 2/abis → shared/abis 2}/common.d.ts +0 -0
  464. /package/dist/{shared 2/abis → shared/abis 2}/common.js +0 -0
  465. /package/dist/{shared 2/abis → shared/abis 2}/index.d.ts +0 -0
  466. /package/dist/{shared 2/abis → shared/abis 2}/index.js +0 -0
  467. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.d.ts +0 -0
  468. /package/dist/{shared 2/clients → shared/clients 2}/blockrazor.js +0 -0
  469. /package/dist/{shared 2/clients → shared/clients 2}/club48.d.ts +0 -0
  470. /package/dist/{shared 2/clients → shared/clients 2}/club48.js +0 -0
  471. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.d.ts +0 -0
  472. /package/dist/{shared 2/clients → shared/clients 2}/emitservice.js +0 -0
  473. /package/dist/{shared 2/clients → shared/clients 2}/four.d.ts +0 -0
  474. /package/dist/{shared 2/clients → shared/clients 2}/four.js +0 -0
  475. /package/dist/{shared 2/clients → shared/clients 2}/merkle.d.ts +0 -0
  476. /package/dist/{shared 2/clients → shared/clients 2}/merkle.js +0 -0
  477. /package/dist/{shared 2/flap → shared/flap 2}/__tests__/curve.test.js +0 -0
  478. /package/dist/{shared 2/flap → shared/flap 2}/abi.d.ts +0 -0
  479. /package/dist/{shared 2/flap → shared/flap 2}/abi.js +0 -0
  480. /package/dist/{shared 2/flap → shared/flap 2}/constants.d.ts +0 -0
  481. /package/dist/{shared 2/flap → shared/flap 2}/constants.js +0 -0
  482. /package/dist/{shared 2/flap → shared/flap 2}/curve.d.ts +0 -0
  483. /package/dist/{shared 2/flap → shared/flap 2}/curve.js +0 -0
  484. /package/dist/{shared 2/flap → shared/flap 2}/errors.d.ts +0 -0
  485. /package/dist/{shared 2/flap → shared/flap 2}/errors.js +0 -0
  486. /package/dist/{shared 2/flap → shared/flap 2}/index.d.ts +0 -0
  487. /package/dist/{shared 2/flap → shared/flap 2}/index.js +0 -0
  488. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.d.ts +0 -0
  489. /package/dist/{shared 2/flap → shared/flap 2}/ipfs.js +0 -0
  490. /package/dist/{shared 2/flap → shared/flap 2}/meta.d.ts +0 -0
  491. /package/dist/{shared 2/flap → shared/flap 2}/meta.js +0 -0
  492. /package/dist/{shared 2/flap → shared/flap 2}/permit.d.ts +0 -0
  493. /package/dist/{shared 2/flap → shared/flap 2}/permit.js +0 -0
  494. /package/dist/{shared 2/flap → shared/flap 2}/pinata.d.ts +0 -0
  495. /package/dist/{shared 2/flap → shared/flap 2}/pinata.js +0 -0
  496. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.d.ts +0 -0
  497. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/config.js +0 -0
  498. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.d.ts +0 -0
  499. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/core.js +0 -0
  500. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.d.ts +0 -0
  501. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/create-to-dex.js +0 -0
  502. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  503. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/curve-to-dex.js +0 -0
  504. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.d.ts +0 -0
  505. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/index.js +0 -0
  506. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  507. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/pancake-proxy.js +0 -0
  508. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.d.ts +0 -0
  509. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/private.js +0 -0
  510. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.d.ts +0 -0
  511. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap-buy-first.js +0 -0
  512. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.d.ts +0 -0
  513. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/swap.js +0 -0
  514. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/types.d.ts +0 -0
  515. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.d.ts +0 -0
  516. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle-merkle/utils.js +0 -0
  517. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.d.ts +0 -0
  518. /package/dist/{shared 2/flap → shared/flap 2}/portal-bundle.js +0 -0
  519. /package/dist/{shared 2/flap → shared/flap 2}/portal.d.ts +0 -0
  520. /package/dist/{shared 2/flap → shared/flap 2}/portal.js +0 -0
  521. /package/dist/{shared 2/flap → shared/flap 2}/vanity.d.ts +0 -0
  522. /package/dist/{shared 2/flap → shared/flap 2}/vanity.js +0 -0
  523. /package/dist/{shared 2/flap → shared/flap 2}/vault.d.ts +0 -0
  524. /package/dist/{shared 2/flap → shared/flap 2}/vault.js +0 -0
  525. /package/dist/{shared 2/four → shared/four 2}/index.d.ts +0 -0
  526. /package/dist/{shared 2/four → shared/four 2}/index.js +0 -0
  527. /package/dist/{shared 2/four → shared/four 2}/tax-token.d.ts +0 -0
  528. /package/dist/{shared 2/four → shared/four 2}/tax-token.js +0 -0
  529. /package/dist/{shared 2/index.d.ts → shared/index 2.js} +0 -0
  530. /package/dist/{shared 2/index.js → shared/index.d 2.ts} +0 -0
@@ -8,7 +8,7 @@ const PORTAL_ABI = [
8
8
  'function newTokenV2((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData)) external payable returns (address)',
9
9
  'function swapExactInputBuy((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData)) external payable returns (uint256)',
10
10
  'function swapExactInputSell((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData)) external returns (uint256)',
11
- 'function quoteExactInput((address inputToken,address outputToken,uint256 inputAmount)) external returns (uint256)'
11
+ 'function quoteExactInput((address inputToken,address outputToken,uint256 inputAmount)) external returns (uint256)',
12
12
  ];
13
13
  /**
14
14
  * Flap Protocol Bundle 交易方法
@@ -18,20 +18,20 @@ const PORTAL_ABI = [
18
18
  const ERRORS = {
19
19
  NO_PRIVATE_KEY: {
20
20
  en: 'At least 1 private key (creator) is required',
21
- zh: '至少需要 1 个私钥(创建者)'
21
+ zh: '至少需要 1 个私钥(创建者)',
22
22
  },
23
23
  AMOUNT_MISMATCH: {
24
24
  en: (buyCount, buyerCount) => `Buy amount count (${buyCount}) must equal buyer count (${buyerCount})`,
25
- zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`
25
+ zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`,
26
26
  },
27
27
  KEY_AMOUNT_MISMATCH: {
28
28
  en: 'Private key count and amount count must match',
29
- zh: '私钥和购买金额数量必须一致'
29
+ zh: '私钥和购买金额数量必须一致',
30
30
  },
31
31
  SELL_KEY_AMOUNT_MISMATCH: {
32
32
  en: 'Private key count and sell amount count must match',
33
- zh: '私钥和卖出数量必须一致'
34
- }
33
+ zh: '私钥和卖出数量必须一致',
34
+ },
35
35
  };
36
36
  // 获取错误信息(根据环境语言)
37
37
  function getErrorMessage(key, ...args) {
@@ -71,7 +71,7 @@ export async function createTokenWithBundleBuy(params) {
71
71
  const devWallet = new Wallet(privateKeys[0], provider);
72
72
  const club48 = new Club48Client({
73
73
  endpoint: config.club48Endpoint,
74
- explorerEndpoint: config.club48ExplorerEndpoint
74
+ explorerEndpoint: config.club48ExplorerEndpoint,
75
75
  });
76
76
  const blockOffset = config.bundleBlockOffset ?? 100;
77
77
  // 1. 构建交易(为重复地址分配顺序 nonce)
@@ -105,7 +105,7 @@ export async function createTokenWithBundleBuy(params) {
105
105
  quoteToken: params.quoteToken || '0x0000000000000000000000000000000000000000',
106
106
  quoteAmt: 0n,
107
107
  beneficiary: new Wallet(privateKeys[0]).address,
108
- permitData: '0x'
108
+ permitData: '0x',
109
109
  });
110
110
  // 估算 gas 并应用用户配置的安全余量
111
111
  const createGasLimit = await estimateGasWithMultiplier(provider, { ...createTxUnsigned, from: devWallet.address }, config.gasLimitMultiplier);
@@ -116,7 +116,7 @@ export async function createTokenWithBundleBuy(params) {
116
116
  gasLimit: createGasLimit,
117
117
  gasPrice: gasPrice,
118
118
  chainId: 56, // BSC
119
- type: getTxType(config) // 用户可配置:0=Legacy(默认),2=EIP-1559
119
+ type: getTxType(config), // 用户可配置:0=Legacy(默认),2=EIP-1559
120
120
  };
121
121
  const signedCreateTx = await devWallet.signTransaction(createTxRequest);
122
122
  signedTxs.push(signedCreateTx);
@@ -129,7 +129,7 @@ export async function createTokenWithBundleBuy(params) {
129
129
  gasLimit: GAS_LIMITS.BRIBE,
130
130
  chainId: 56,
131
131
  type: 0, // Legacy transaction
132
- nonce: await getNextNonce(devWallet)
132
+ nonce: await getNextNonce(devWallet),
133
133
  });
134
134
  signedTxs.push(tipTx);
135
135
  }
@@ -146,14 +146,12 @@ export async function createTokenWithBundleBuy(params) {
146
146
  const exactOut = await quote.quoteExactInput.staticCall({
147
147
  inputToken: '0x0000000000000000000000000000000000000000',
148
148
  outputToken: tokenAddress,
149
- inputAmount: amountIn
149
+ inputAmount: amountIn,
150
150
  });
151
151
  const keep = BigInt(10000 - slippageBps);
152
152
  minAmountOut = (exactOut * keep) / 10000n;
153
153
  }
154
- catch {
155
- void 0;
156
- }
154
+ catch { }
157
155
  const buyPortal = new ethers.Contract(portalAddr, PORTAL_ABI, buyerWallet);
158
156
  const buyTxUnsigned = await buyPortal.swapExactInputBuy.populateTransaction({
159
157
  inputToken: '0x0000000000000000000000000000000000000000',
@@ -178,7 +176,7 @@ export async function createTokenWithBundleBuy(params) {
178
176
  gasLimit: buyGasLimit,
179
177
  gasPrice: gasPrice,
180
178
  chainId: 56, // BSC
181
- type: getTxType(config) // 用户可配置
179
+ type: getTxType(config), // 用户可配置
182
180
  };
183
181
  const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
184
182
  signedTxs.push(signedBuyTx);
@@ -188,11 +186,11 @@ export async function createTokenWithBundleBuy(params) {
188
186
  const bundleUuid = await club48.sendBundle({
189
187
  txs: signedTxs,
190
188
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
191
- noMerge: config.noMerge
189
+ noMerge: config.noMerge,
192
190
  }, {
193
191
  spMode: params.config.spMode ?? 'timestampPersonalSign',
194
192
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
195
- spVMode: params.config.spVMode
193
+ spVMode: params.config.spVMode,
196
194
  });
197
195
  // 3. 等待完成
198
196
  const status = await club48.waitForBundle(bundleUuid, params.config.waitTimeoutMs ?? 60000);
@@ -201,7 +199,7 @@ export async function createTokenWithBundleBuy(params) {
201
199
  tokenAddress,
202
200
  status,
203
201
  createTx: signedCreateTx,
204
- buyTxs
202
+ buyTxs,
205
203
  };
206
204
  }
207
205
  /**
@@ -215,7 +213,7 @@ export async function batchBuyWithBundle(params) {
215
213
  const provider = new JsonRpcProvider(config.rpcUrl);
216
214
  const club48 = new Club48Client({
217
215
  endpoint: config.club48Endpoint,
218
- explorerEndpoint: config.club48ExplorerEndpoint
216
+ explorerEndpoint: config.club48ExplorerEndpoint,
219
217
  });
220
218
  const blockOffset = config.bundleBlockOffset ?? 100;
221
219
  const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
@@ -244,7 +242,7 @@ export async function batchBuyWithBundle(params) {
244
242
  gasLimit: GAS_LIMITS.BRIBE,
245
243
  chainId: 56,
246
244
  type: 0, // Legacy transaction
247
- nonce: await getNextNonce(tipWallet)
245
+ nonce: await getNextNonce(tipWallet),
248
246
  });
249
247
  signedTxs.unshift(tipTx);
250
248
  }
@@ -259,14 +257,12 @@ export async function batchBuyWithBundle(params) {
259
257
  const exactOut = await quote.quoteExactInput.staticCall({
260
258
  inputToken: '0x0000000000000000000000000000000000000000',
261
259
  outputToken: tokenAddress,
262
- inputAmount: amountIn
260
+ inputAmount: amountIn,
263
261
  });
264
262
  const keep = BigInt(10000 - slippageBps);
265
263
  minAmountOut = (exactOut * keep) / 10000n;
266
264
  }
267
- catch {
268
- void 0;
269
- }
265
+ catch { }
270
266
  const portal = new ethers.Contract(portalAddr, PORTAL_ABI, buyerWallet);
271
267
  const buyTxUnsigned = await portal.swapExactInputBuy.populateTransaction({
272
268
  inputToken: '0x0000000000000000000000000000000000000000',
@@ -279,7 +275,7 @@ export async function batchBuyWithBundle(params) {
279
275
  const estimatedGas = await provider.estimateGas({
280
276
  ...buyTxUnsigned,
281
277
  from: buyerWallet.address,
282
- value: amountIn
278
+ value: amountIn,
283
279
  });
284
280
  const gasLimit = (estimatedGas * 120n) / 100n;
285
281
  const buyTxRequest = {
@@ -289,7 +285,7 @@ export async function batchBuyWithBundle(params) {
289
285
  gasLimit: gasLimit,
290
286
  gasPrice: gasPrice,
291
287
  chainId: 56, // BSC
292
- type: 0 // Legacy transaction
288
+ type: 0, // Legacy transaction
293
289
  };
294
290
  const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
295
291
  signedTxs.push(signedBuyTx);
@@ -297,11 +293,11 @@ export async function batchBuyWithBundle(params) {
297
293
  const bundleUuid = await club48.sendBundle({
298
294
  txs: signedTxs,
299
295
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
300
- noMerge: config.noMerge
296
+ noMerge: config.noMerge,
301
297
  }, {
302
298
  spMode: params.config.spMode ?? 'timestampPersonalSign',
303
299
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
304
- spVMode: params.config.spVMode
300
+ spVMode: params.config.spVMode,
305
301
  });
306
302
  const status = await club48.waitForBundle(bundleUuid);
307
303
  return { bundleUuid, status, buyTxs: signedTxs };
@@ -317,7 +313,7 @@ export async function batchSellWithBundle(params) {
317
313
  const provider = new JsonRpcProvider(config.rpcUrl);
318
314
  const club48 = new Club48Client({
319
315
  endpoint: config.club48Endpoint,
320
- explorerEndpoint: config.club48ExplorerEndpoint
316
+ explorerEndpoint: config.club48ExplorerEndpoint,
321
317
  });
322
318
  const blockOffset = config.bundleBlockOffset ?? 100;
323
319
  const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
@@ -346,7 +342,7 @@ export async function batchSellWithBundle(params) {
346
342
  gasLimit: GAS_LIMITS.BRIBE,
347
343
  chainId: 56,
348
344
  type: 0, // Legacy transaction
349
- nonce: await getNextNonce(tipWallet)
345
+ nonce: await getNextNonce(tipWallet),
350
346
  });
351
347
  signedTxs.unshift(tipTx);
352
348
  }
@@ -365,7 +361,7 @@ export async function batchSellWithBundle(params) {
365
361
  // 估算 gas 并添加 20% 安全余量
366
362
  const estimatedGas = await provider.estimateGas({
367
363
  ...sellTxUnsigned,
368
- from: sellerWallet.address
364
+ from: sellerWallet.address,
369
365
  });
370
366
  const gasLimit = (estimatedGas * 120n) / 100n;
371
367
  const sellTxRequest = {
@@ -375,7 +371,7 @@ export async function batchSellWithBundle(params) {
375
371
  gasLimit: gasLimit,
376
372
  gasPrice: gasPrice,
377
373
  chainId: 56, // BSC
378
- type: 0 // Legacy transaction
374
+ type: 0, // Legacy transaction
379
375
  };
380
376
  const signedSellTx = await sellerWallet.signTransaction(sellTxRequest);
381
377
  signedTxs.push(signedSellTx);
@@ -383,11 +379,11 @@ export async function batchSellWithBundle(params) {
383
379
  const bundleUuid = await club48.sendBundle({
384
380
  txs: signedTxs,
385
381
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
386
- noMerge: config.noMerge
382
+ noMerge: config.noMerge,
387
383
  }, {
388
384
  spMode: params.config.spMode ?? 'timestampPersonalSign',
389
385
  spPrivateKey: params.config.spPrivateKey || privateKeys[0],
390
- spVMode: params.config.spVMode
386
+ spVMode: params.config.spVMode,
391
387
  });
392
388
  const status = await club48.waitForBundle(bundleUuid);
393
389
  return { bundleUuid, status, sellTxs: signedTxs };
@@ -413,7 +409,7 @@ export async function flapPrivateBuy(params) {
413
409
  const estimatedGas = await provider.estimateGas({
414
410
  ...unsigned,
415
411
  from: wallet.address,
416
- value: amountWei
412
+ value: amountWei,
417
413
  });
418
414
  const gasLimit = (estimatedGas * 120n) / 100n;
419
415
  const req = {
@@ -423,7 +419,7 @@ export async function flapPrivateBuy(params) {
423
419
  gasLimit: gasLimit,
424
420
  gasPrice,
425
421
  chainId: 56,
426
- type: 0 // Legacy transaction
422
+ type: 0, // Legacy transaction
427
423
  };
428
424
  const signed = await wallet.signTransaction(req);
429
425
  if (spPrivateKey)
@@ -450,7 +446,7 @@ export async function flapPrivateSell(params) {
450
446
  // 估算 gas 并添加 20% 安全余量
451
447
  const estimatedGas = await provider.estimateGas({
452
448
  ...unsigned,
453
- from: wallet.address
449
+ from: wallet.address,
454
450
  });
455
451
  const gasLimit = (estimatedGas * 120n) / 100n;
456
452
  const req = {
@@ -460,7 +456,7 @@ export async function flapPrivateSell(params) {
460
456
  gasLimit: gasLimit,
461
457
  gasPrice,
462
458
  chainId: 56,
463
- type: 0 // Legacy transaction
459
+ type: 0, // Legacy transaction
464
460
  };
465
461
  const signed = await wallet.signTransaction(req);
466
462
  if (spPrivateKey)
@@ -503,7 +499,15 @@ export async function flapBatchPrivateBuy(params) {
503
499
  // 估算 gas 并添加 20% 安全余量
504
500
  const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address, value: amountWei });
505
501
  const gasLimit = (estimatedGas * 120n) / 100n;
506
- const req = { ...unsigned, from: w.address, nonce: await getNextNonce(w), gasLimit, gasPrice, chainId: 56, type: 0 };
502
+ const req = {
503
+ ...unsigned,
504
+ from: w.address,
505
+ nonce: await getNextNonce(w),
506
+ gasLimit,
507
+ gasPrice,
508
+ chainId: 56,
509
+ type: 0,
510
+ };
507
511
  signedTxs.push(await w.signTransaction(req));
508
512
  }
509
513
  return await sendBatchPrivateTransactions(signedTxs, spPrivateKey, config.club48Endpoint || 'https://puissant-bsc.48.club');
@@ -545,7 +549,15 @@ export async function flapBatchPrivateSell(params) {
545
549
  // 估算 gas 并添加 20% 安全余量
546
550
  const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address });
547
551
  const gasLimit = (estimatedGas * 120n) / 100n;
548
- const req = { ...unsigned, from: w.address, nonce: await getNextNonce(w), gasLimit, gasPrice, chainId: 56, type: 0 };
552
+ const req = {
553
+ ...unsigned,
554
+ from: w.address,
555
+ nonce: await getNextNonce(w),
556
+ gasLimit,
557
+ gasPrice,
558
+ chainId: 56,
559
+ type: 0,
560
+ };
549
561
  signedTxs.push(await w.signTransaction(req));
550
562
  }
551
563
  // 使用 bundle 通道提交(统一与捆绑买保持一致)
@@ -553,12 +565,12 @@ export async function flapBatchPrivateSell(params) {
553
565
  const bundleUuid = await club48.sendBundle({
554
566
  txs: signedTxs,
555
567
  maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
556
- noMerge: config.noMerge
568
+ noMerge: config.noMerge,
557
569
  }, {
558
570
  // 若传入 sp 配置,则用于生成 48SP 签名提升打包优先级(与批量买一致)
559
571
  spMode: params.config.spMode ?? 'timestampPersonalSign',
560
572
  spPrivateKey: params.config.spPrivateKey || 'https://puissant-bsc.48.club',
561
- spVMode: params.config.spVMode
573
+ spVMode: params.config.spVMode,
562
574
  });
563
575
  try {
564
576
  const status = await club48.waitForBundle(bundleUuid);
@@ -90,17 +90,21 @@ const PORTAL_ABI = [
90
90
  'function getFeeRate() external view returns (uint256,uint256)',
91
91
  'function nonce() external view returns (uint256)',
92
92
  'function version() external pure returns (string)',
93
- 'function getLocks(address token) external view returns (uint256[])'
93
+ 'function getLocks(address token) external view returns (uint256[])',
94
94
  ];
95
95
  /**
96
96
  * 将 lpFeeProfile 转换为 V3 fee 值
97
97
  */
98
98
  export function lpFeeProfileToV3Fee(profile) {
99
99
  switch (profile) {
100
- case V3LPFeeProfile.LP_FEE_PROFILE_STANDARD: return 2500;
101
- case V3LPFeeProfile.LP_FEE_PROFILE_LOW: return 100;
102
- case V3LPFeeProfile.LP_FEE_PROFILE_HIGH: return 10000;
103
- default: return 2500; // 默认 STANDARD
100
+ case V3LPFeeProfile.LP_FEE_PROFILE_STANDARD:
101
+ return 2500;
102
+ case V3LPFeeProfile.LP_FEE_PROFILE_LOW:
103
+ return 100;
104
+ case V3LPFeeProfile.LP_FEE_PROFILE_HIGH:
105
+ return 10000;
106
+ default:
107
+ return 2500; // 默认 STANDARD
104
108
  }
105
109
  }
106
110
  /**
@@ -117,6 +121,11 @@ export function validateTaxDistribution(config) {
117
121
  return { valid: true };
118
122
  }
119
123
  export class FlapPortal {
124
+ rpcUrl;
125
+ portal;
126
+ contract;
127
+ buyFeeRate;
128
+ sellFeeRate;
120
129
  constructor(cfg) {
121
130
  this.rpcUrl = cfg.rpcUrl;
122
131
  this.portal = cfg.addressOverride ?? FLAP_PORTAL_ADDRESSES[cfg.chain];
@@ -131,13 +140,27 @@ export class FlapPortal {
131
140
  async getTokenV2(token) {
132
141
  const r = await this.contract.getTokenV2(token);
133
142
  return {
134
- status: r[0], reserve: r[1], circulatingSupply: r[2], price: r[3], tokenVersion: r[4], r: r[5], dexSupplyThresh: r[6],
143
+ status: r[0],
144
+ reserve: r[1],
145
+ circulatingSupply: r[2],
146
+ price: r[3],
147
+ tokenVersion: r[4],
148
+ r: r[5],
149
+ dexSupplyThresh: r[6],
135
150
  };
136
151
  }
137
152
  async getTokenV3(token) {
138
153
  const r = await this.contract.getTokenV3(token);
139
154
  return {
140
- status: r[0], reserve: r[1], circulatingSupply: r[2], price: r[3], tokenVersion: r[4], r: r[5], dexSupplyThresh: r[6], quoteTokenAddress: r[7], nativeToQuoteSwapEnabled: r[8],
155
+ status: r[0],
156
+ reserve: r[1],
157
+ circulatingSupply: r[2],
158
+ price: r[3],
159
+ tokenVersion: r[4],
160
+ r: r[5],
161
+ dexSupplyThresh: r[6],
162
+ quoteTokenAddress: r[7],
163
+ nativeToQuoteSwapEnabled: r[8],
141
164
  };
142
165
  }
143
166
  async getTokenV4(token) {
@@ -220,9 +243,7 @@ export class FlapPortal {
220
243
  // 含手续费(1% buy fee)
221
244
  const remainingWithFee = remainingNet / (1 - this.buyFeeRate);
222
245
  // 计算进度
223
- const progressPercent = isGraduated
224
- ? '100.00'
225
- : (currentReserveNum / graduationReserveNum * 100).toFixed(2);
246
+ const progressPercent = isGraduated ? '100.00' : ((currentReserveNum / graduationReserveNum) * 100).toFixed(2);
226
247
  return {
227
248
  remainingOkb: remainingWithFee.toFixed(6),
228
249
  graduationReserve: graduationReserveNum.toFixed(6),
@@ -330,6 +351,7 @@ export class FlapPortal {
330
351
  }
331
352
  }
332
353
  export class FlapPortalWriter extends FlapPortal {
354
+ wallet;
333
355
  constructor(cfg, privateKey) {
334
356
  super(cfg);
335
357
  // 使用 ethers v6 创建钱包
@@ -6,9 +6,7 @@ import { FLAP_ORIGINAL_PORTAL_ADDRESSES, FLAP_TOKEN_IMPL_ADDRESSES, getVanitySuf
6
6
  */
7
7
  export function predictVanityTokenAddress(salt, portal, tokenImpl) {
8
8
  // 规范化 salt 到 bytes32(避免前端传入的短字符串导致不可预期行为)
9
- const normalizedSalt = /^0x[0-9a-fA-F]{64}$/.test(salt)
10
- ? salt.toLowerCase()
11
- : keccak256(salt);
9
+ const normalizedSalt = /^0x[0-9a-fA-F]{64}$/.test(salt) ? salt.toLowerCase() : keccak256(salt);
12
10
  // 构建 EIP-1167 minimal proxy bytecode
13
11
  const bytecode = '0x3d602d80600a3d3981f3363d3d373d3d3d363d73' + tokenImpl.slice(2).toLowerCase() + '5af43d82803e903d91602b57fd5bf3';
14
12
  const bytecodeHash = keccak256(bytecode);
@@ -21,8 +19,7 @@ export function predictVanityTokenAddress(salt, portal, tokenImpl) {
21
19
  * BSC/MONAD 默认使用 NORMAL 实现(非税版)
22
20
  * @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
23
21
  */
24
- export function predictVanityTokenAddressByChain(chain, salt, taxed = false, taxedV5 = false // ✅ 新增:V5 高级税代币标识
25
- ) {
22
+ export function predictVanityTokenAddressByChain(chain, salt, taxed = false, taxedV5 = false) {
26
23
  // 使用 Flap 平台的原始 Portal 地址(用于 CREATE2)
27
24
  const portal = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain];
28
25
  let tokenImpl;
@@ -56,7 +53,7 @@ export async function findSaltEnding(opts) {
56
53
  // 若未提供 seed,默认使用随机种子,避免每次结果都相同
57
54
  let salt = opts.seed ?? keccak256(randomBytes(32));
58
55
  let iterations = 0;
59
- const limit = opts.maxIterations ?? 1000000;
56
+ const limit = opts.maxIterations ?? 1_000_000;
60
57
  while (iterations < limit) {
61
58
  const addr = predictVanityTokenAddress(salt, opts.portal, opts.tokenImpl);
62
59
  if (addr.toLowerCase().endsWith(suffix)) {
@@ -105,6 +102,6 @@ export async function findSaltEndingByChain(opts) {
105
102
  tokenImpl,
106
103
  suffix,
107
104
  maxIterations: opts.maxIterations,
108
- seed: opts.seed
105
+ seed: opts.seed,
109
106
  });
110
107
  }
@@ -361,7 +361,7 @@ export declare function buildVaultParams(config?: TaxVaultConfig, chain?: string
361
361
  * 金库参数通过 VaultPortal 的 vaultFactory/vaultData 传递
362
362
  * 此函数仅用于向后兼容
363
363
  */
364
- export declare function buildVaultExtensionParams(_config?: TaxVaultConfig): {
364
+ export declare function buildVaultExtensionParams(): {
365
365
  extensionID: string;
366
366
  extensionData: string;
367
367
  };
@@ -28,6 +28,32 @@
28
28
  * @module vault
29
29
  */
30
30
  import { Contract, AbiCoder, ZeroAddress } from 'ethers';
31
+ function mapFieldDescriptor(f) {
32
+ return {
33
+ name: f.name,
34
+ fieldType: f.fieldType,
35
+ description: f.description,
36
+ decimals: Number(f.decimals),
37
+ };
38
+ }
39
+ function mapApproveAction(a) {
40
+ return {
41
+ tokenType: a.tokenType,
42
+ amountFieldName: a.amountFieldName,
43
+ };
44
+ }
45
+ function mapVaultMethodSchema(m) {
46
+ return {
47
+ name: m.name,
48
+ description: m.description,
49
+ inputs: m.inputs.map(mapFieldDescriptor),
50
+ outputs: m.outputs.map(mapFieldDescriptor),
51
+ approvals: m.approvals.map(mapApproveAction),
52
+ isInputArray: m.isInputArray,
53
+ isOutputArray: m.isOutputArray,
54
+ isWriteMethod: m.isWriteMethod,
55
+ };
56
+ }
31
57
  /**
32
58
  * 金库类型显示标签
33
59
  */
@@ -115,7 +141,8 @@ export const VAULT_PORTAL_ABI = [
115
141
  {
116
142
  type: 'function',
117
143
  name: 'newTaxTokenWithVault',
118
- inputs: [{
144
+ inputs: [
145
+ {
119
146
  name: 'params',
120
147
  type: 'tuple',
121
148
  internalType: 'struct IVaultPortalTypes.NewTaxTokenWithVaultParams',
@@ -143,8 +170,9 @@ export const VAULT_PORTAL_ABI = [
143
170
  { name: 'minimumShareBalance', type: 'uint256', internalType: 'uint256' },
144
171
  { name: 'vaultFactory', type: 'address', internalType: 'address' },
145
172
  { name: 'vaultData', type: 'bytes', internalType: 'bytes' },
146
- ]
147
- }],
173
+ ],
174
+ },
175
+ ],
148
176
  outputs: [{ name: 'token', type: 'address', internalType: 'address' }],
149
177
  stateMutability: 'payable',
150
178
  },
@@ -152,7 +180,8 @@ export const VAULT_PORTAL_ABI = [
152
180
  type: 'function',
153
181
  name: 'getVault',
154
182
  inputs: [{ name: 'taxToken', type: 'address', internalType: 'address' }],
155
- outputs: [{
183
+ outputs: [
184
+ {
156
185
  name: 'info',
157
186
  type: 'tuple',
158
187
  internalType: 'struct IVaultPortalTypes.VaultInfo',
@@ -162,8 +191,9 @@ export const VAULT_PORTAL_ABI = [
162
191
  { name: 'description', type: 'string', internalType: 'string' },
163
192
  { name: 'isOfficial', type: 'bool', internalType: 'bool' },
164
193
  { name: 'riskLevel', type: 'uint8', internalType: 'enum IVaultPortalTypes.RiskLevel' },
165
- ]
166
- }],
194
+ ],
195
+ },
196
+ ],
167
197
  stateMutability: 'view',
168
198
  },
169
199
  {
@@ -190,9 +220,7 @@ export const VAULT_FACTORY_V2_ABI = [
190
220
  /**
191
221
  * VaultBase ABI(V1)
192
222
  */
193
- export const VAULT_BASE_ABI = [
194
- 'function description() public view returns (string)',
195
- ];
223
+ export const VAULT_BASE_ABI = ['function description() public view returns (string)'];
196
224
  /**
197
225
  * VaultBaseV2 ABI
198
226
  */
@@ -241,16 +269,21 @@ function mapFieldTypeToAbiType(fieldType) {
241
269
  function processFieldValue(field, rawValue) {
242
270
  if (rawValue === undefined || rawValue === null) {
243
271
  switch (field.fieldType) {
244
- case 'address': return ZeroAddress;
245
- case 'bool': return false;
246
- case 'string': return '';
272
+ case 'address':
273
+ return ZeroAddress;
274
+ case 'bool':
275
+ return false;
276
+ case 'string':
277
+ return '';
247
278
  case 'bytes':
248
- case 'bytes32': return '0x' + '00'.repeat(32);
249
- default: return 0;
279
+ case 'bytes32':
280
+ return '0x' + '00'.repeat(32);
281
+ default:
282
+ return 0;
250
283
  }
251
284
  }
252
285
  if (field.decimals > 0 && typeof rawValue === 'number') {
253
- return BigInt(Math.round(rawValue * (10 ** field.decimals)));
286
+ return BigInt(Math.round(rawValue * 10 ** field.decimals));
254
287
  }
255
288
  if (field.fieldType === 'bool') {
256
289
  return Boolean(rawValue);
@@ -328,7 +361,7 @@ export function buildVaultParams(config, chain) {
328
361
  * 金库参数通过 VaultPortal 的 vaultFactory/vaultData 传递
329
362
  * 此函数仅用于向后兼容
330
363
  */
331
- export function buildVaultExtensionParams(_config) {
364
+ export function buildVaultExtensionParams() {
332
365
  // 金库模式下 extensionID/extensionData 始终为零值
333
366
  return {
334
367
  extensionID: NONE_EXTENSION_ID,
@@ -344,15 +377,10 @@ export function buildVaultExtensionParams(_config) {
344
377
  export async function queryVaultDataSchema(provider, factoryAddress) {
345
378
  try {
346
379
  const factory = new Contract(factoryAddress, VAULT_FACTORY_V2_ABI, provider);
347
- const raw = await factory.vaultDataSchema();
380
+ const raw = (await factory.vaultDataSchema());
348
381
  return {
349
382
  description: raw.description,
350
- fields: raw.fields.map((f) => ({
351
- name: f.name,
352
- fieldType: f.fieldType,
353
- description: f.description,
354
- decimals: Number(f.decimals),
355
- })),
383
+ fields: raw.fields.map(mapFieldDescriptor),
356
384
  isArray: raw.isArray,
357
385
  };
358
386
  }
@@ -366,33 +394,11 @@ export async function queryVaultDataSchema(provider, factoryAddress) {
366
394
  export async function queryVaultUISchema(provider, vaultAddress) {
367
395
  try {
368
396
  const vault = new Contract(vaultAddress, VAULT_BASE_V2_ABI, provider);
369
- const raw = await vault.vaultUISchema();
397
+ const raw = (await vault.vaultUISchema());
370
398
  return {
371
399
  vaultType: raw.vaultType,
372
400
  description: raw.description,
373
- methods: raw.methods.map((m) => ({
374
- name: m.name,
375
- description: m.description,
376
- inputs: m.inputs.map((f) => ({
377
- name: f.name,
378
- fieldType: f.fieldType,
379
- description: f.description,
380
- decimals: Number(f.decimals),
381
- })),
382
- outputs: m.outputs.map((f) => ({
383
- name: f.name,
384
- fieldType: f.fieldType,
385
- description: f.description,
386
- decimals: Number(f.decimals),
387
- })),
388
- approvals: m.approvals.map((a) => ({
389
- tokenType: a.tokenType,
390
- amountFieldName: a.amountFieldName,
391
- })),
392
- isInputArray: m.isInputArray,
393
- isOutputArray: m.isOutputArray,
394
- isWriteMethod: m.isWriteMethod,
395
- })),
401
+ methods: raw.methods.map(mapVaultMethodSchema),
396
402
  };
397
403
  }
398
404
  catch {
@@ -437,7 +443,7 @@ export async function validateVaultFactory(provider, factoryAddress) {
437
443
  export async function getVaultInfo(provider, vaultPortalAddress, taxTokenAddress) {
438
444
  try {
439
445
  const portal = new Contract(vaultPortalAddress, VAULT_PORTAL_ABI, provider);
440
- const info = await portal.getVault(taxTokenAddress);
446
+ const info = (await portal.getVault(taxTokenAddress));
441
447
  return {
442
448
  vault: info.vault,
443
449
  vaultFactory: info.vaultFactory,
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare function getDeadline(minutes?: number): number;
2
+ export declare function encodeV3Path(tokens: string[], fees: number[]): string;
3
+ export declare function decodeV3Path(path: string): {
4
+ tokens: string[];
5
+ fees: number[];
6
+ };