four-flap-meme-sdk 2.2.8 → 2.2.10

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 (474) hide show
  1. package/README.en.md +6 -41
  2. package/README.md +0 -31
  3. package/README.zh-CN.md +6 -41
  4. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +26 -1
  5. package/dist/chains/bsc/four/approve-tokenmanager.js +113 -1
  6. package/dist/chains/bsc/four/config.d.ts +67 -5
  7. package/dist/chains/bsc/four/config.js +114 -2
  8. package/dist/chains/bsc/four/core.d.ts +4 -1
  9. package/dist/chains/bsc/four/core.js +592 -1
  10. package/dist/chains/bsc/four/index.d.ts +6 -6
  11. package/dist/chains/bsc/four/index.js +6 -6
  12. package/dist/chains/bsc/four/internal.d.ts +46 -2
  13. package/dist/chains/bsc/four/internal.js +239 -2
  14. package/dist/chains/bsc/four/pancake-proxy.d.ts +28 -1
  15. package/dist/chains/bsc/four/pancake-proxy.js +687 -1
  16. package/dist/chains/bsc/four/private.d.ts +27 -1
  17. package/dist/chains/bsc/four/private.js +477 -1
  18. package/dist/chains/bsc/four/submit.d.ts +315 -2
  19. package/dist/chains/bsc/four/submit.js +752 -2
  20. package/dist/chains/bsc/four/swap-buy-first.d.ts +55 -2
  21. package/dist/chains/bsc/four/swap-buy-first.js +507 -2
  22. package/dist/chains/bsc/four/swap-internal.d.ts +3 -1
  23. package/dist/chains/bsc/four/swap-internal.js +18 -1
  24. package/dist/chains/bsc/four/swap.d.ts +144 -2
  25. package/dist/chains/bsc/four/swap.js +766 -2
  26. package/dist/chains/bsc/four/types.d.ts +476 -1
  27. package/dist/chains/bsc/four/utils.d.ts +18 -5
  28. package/dist/chains/bsc/four/utils.js +1552 -5
  29. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +91 -1
  30. package/dist/chains/bsc/pancake/bundle-buy-first.js +212 -97
  31. package/dist/chains/bsc/pancake/bundle-swap.d.ts +79 -1
  32. package/dist/chains/bsc/pancake/bundle-swap.js +726 -114
  33. package/dist/chains/bsc/pancake/index.d.ts +2 -4
  34. package/dist/chains/bsc/pancake/index.js +3 -1
  35. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  36. package/dist/chains/bsc/platforms/iro/factory.js +1 -3
  37. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  38. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  39. package/dist/chains/bsc/platforms/iro/pool.js +10 -31
  40. package/dist/chains/bsc/platforms/iro/token.js +1 -4
  41. package/dist/chains/eni/batch-router/bundle-approve.js +3 -4
  42. package/dist/chains/eni/batch-router/transfer.js +25 -55
  43. package/dist/chains/eni/batch-router/utils.js +6 -32
  44. package/dist/chains/eni/bundler/sign.js +6 -5
  45. package/dist/chains/eni/bundler/submit.js +4 -1
  46. package/dist/chains/eni/constants.js +1 -1
  47. package/dist/chains/eni/index.d.ts +1 -2
  48. package/dist/chains/eni/index.js +0 -1
  49. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  50. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  51. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  52. package/dist/chains/eni/platforms/daoaas/meta.js +6 -9
  53. package/dist/chains/eni/platforms/daoaas/portal-direct.js +44 -28
  54. package/dist/chains/eni/platforms/daoaas/portal.js +6 -10
  55. package/dist/chains/eni/platforms/dswap/liquidity.js +26 -58
  56. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  57. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  58. package/dist/chains/eni/platforms/fair-launch/launcher.js +46 -87
  59. package/dist/chains/eni/platforms/fair-launch/pool.js +1 -4
  60. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  61. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  62. package/dist/chains/eni/platforms/iro/factory.js +1 -3
  63. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  64. package/dist/chains/eni/platforms/iro/index.js +4 -4
  65. package/dist/chains/eni/platforms/iro/pool.js +26 -90
  66. package/dist/chains/eni/platforms/iro/token.js +31 -107
  67. package/dist/chains/eni/platforms/iro/whitelist.js +18 -6
  68. package/dist/chains/index.d.ts +0 -13
  69. package/dist/chains/index.js +0 -13
  70. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +26 -2
  71. package/dist/chains/xlayer/eip7702/bundle-approve.js +21 -11
  72. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +6 -2
  73. package/dist/chains/xlayer/eip7702/bundle-buy.js +51 -13
  74. package/dist/chains/xlayer/eip7702/bundle-create.js +59 -93
  75. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +6 -2
  76. package/dist/chains/xlayer/eip7702/bundle-sell.js +111 -29
  77. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +65 -3
  78. package/dist/chains/xlayer/eip7702/bundle-swap.js +245 -51
  79. package/dist/chains/xlayer/eip7702/constants.d.ts +16 -1
  80. package/dist/chains/xlayer/eip7702/constants.js +21 -3
  81. package/dist/chains/xlayer/eip7702/index.d.ts +46 -28
  82. package/dist/chains/xlayer/eip7702/index.js +81 -28
  83. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +203 -2
  84. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +307 -63
  85. package/dist/chains/xlayer/eip7702/types.d.ts +0 -88
  86. package/dist/chains/xlayer/eip7702/utils.d.ts +3 -0
  87. package/dist/chains/xlayer/eip7702/utils.js +28 -23
  88. package/dist/chains/xlayer/eip7702/volume.d.ts +184 -6
  89. package/dist/chains/xlayer/eip7702/volume.js +164 -89
  90. package/dist/chains/xlayer/eoa/constants.js +1 -1
  91. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  92. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +95 -1
  93. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +299 -66
  94. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  95. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +23 -18
  96. package/dist/chains/xlayer/eoa/index.d.ts +6 -10
  97. package/dist/chains/xlayer/eoa/index.js +23 -8
  98. package/dist/chains/xlayer/eoa/portal-ops.js +2 -7
  99. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  100. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  101. package/dist/chains/xlayer/eoa/types.js +3 -1
  102. package/dist/chains/xlayer/index.d.ts +2 -3
  103. package/dist/chains/xlayer/index.js +7 -4
  104. package/dist/contracts/helper3.d.ts +5 -20
  105. package/dist/contracts/helper3.js +20 -56
  106. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +26 -1
  107. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +113 -1
  108. package/dist/contracts/tm-bundle-merkle/config.d.ts +67 -5
  109. package/dist/contracts/tm-bundle-merkle/config.js +114 -2
  110. package/dist/contracts/tm-bundle-merkle/core.d.ts +4 -1
  111. package/dist/contracts/tm-bundle-merkle/core.js +591 -1
  112. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  113. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  114. package/dist/contracts/tm-bundle-merkle/internal.d.ts +46 -2
  115. package/dist/contracts/tm-bundle-merkle/internal.js +238 -2
  116. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +28 -1
  117. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +686 -1
  118. package/dist/contracts/tm-bundle-merkle/private.d.ts +27 -1
  119. package/dist/contracts/tm-bundle-merkle/private.js +476 -1
  120. package/dist/contracts/tm-bundle-merkle/submit.d.ts +314 -3
  121. package/dist/contracts/tm-bundle-merkle/submit.js +928 -3
  122. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +55 -2
  123. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +506 -2
  124. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +3 -1
  125. package/dist/contracts/tm-bundle-merkle/swap-internal.js +18 -1
  126. package/dist/contracts/tm-bundle-merkle/swap.d.ts +144 -2
  127. package/dist/contracts/tm-bundle-merkle/swap.js +764 -2
  128. package/dist/contracts/tm-bundle-merkle/types.d.ts +476 -1
  129. package/dist/contracts/tm-bundle-merkle/utils.d.ts +18 -6
  130. package/dist/contracts/tm-bundle-merkle/utils.js +1501 -6
  131. package/dist/contracts/tm-bundle.d.ts +51 -3
  132. package/dist/contracts/tm-bundle.js +177 -108
  133. package/dist/contracts/tm.d.ts +2 -3
  134. package/dist/contracts/tm.js +32 -37
  135. package/dist/contracts/tm1.js +4 -9
  136. package/dist/contracts/tm2.js +4 -9
  137. package/dist/dex/direct-router.d.ts +125 -3
  138. package/dist/dex/direct-router.js +666 -237
  139. package/dist/flows/create.d.ts +1 -2
  140. package/dist/flows/create.js +6 -6
  141. package/dist/index.d.ts +86 -20
  142. package/dist/index.js +216 -20
  143. package/dist/shared/abis/TaxToken.json +105 -0
  144. package/dist/shared/abis/TokenManager2.json +60 -0
  145. package/dist/shared/abis/common.d.ts +83 -2
  146. package/dist/shared/abis/common.js +253 -2
  147. package/dist/shared/abis/index.d.ts +6 -5
  148. package/dist/shared/abis/index.js +7 -5
  149. package/dist/shared/clients/blockrazor.js +25 -39
  150. package/dist/shared/clients/club48.d.ts +2 -2
  151. package/dist/shared/clients/club48.js +29 -34
  152. package/dist/shared/clients/emitservice.js +0 -2
  153. package/dist/shared/clients/four.d.ts +6 -21
  154. package/dist/shared/clients/four.js +24 -29
  155. package/dist/shared/clients/merkle.js +34 -27
  156. package/dist/shared/constants/addresses.d.ts +1 -1
  157. package/dist/shared/constants/addresses.js +2 -11
  158. package/dist/shared/constants/chains.d.ts +1 -1
  159. package/dist/shared/constants/chains.js +1 -1
  160. package/dist/shared/constants/gas.d.ts +1 -1
  161. package/dist/shared/constants/gas.js +6 -2
  162. package/dist/shared/constants/index.d.ts +0 -3
  163. package/dist/shared/constants/index.js +0 -1
  164. package/dist/shared/flap/abi.js +1 -1
  165. package/dist/shared/flap/constants.d.ts +2 -3
  166. package/dist/shared/flap/constants.js +4 -5
  167. package/dist/shared/flap/curve.js +0 -3
  168. package/dist/shared/flap/errors.d.ts +4 -1
  169. package/dist/shared/flap/errors.js +1 -20
  170. package/dist/shared/flap/index.d.ts +5 -5
  171. package/dist/shared/flap/index.js +5 -5
  172. package/dist/shared/flap/launch-v6.d.ts +117 -0
  173. package/dist/shared/flap/launch-v6.js +111 -0
  174. package/dist/shared/flap/meta.d.ts +18 -22
  175. package/dist/shared/flap/meta.js +17 -12
  176. package/dist/shared/flap/permit.js +2 -5
  177. package/dist/shared/flap/pinata.d.ts +6 -22
  178. package/dist/shared/flap/pinata.js +26 -21
  179. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +72 -3
  180. package/dist/shared/flap/portal-bundle-merkle/config.js +124 -4
  181. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +4 -0
  182. package/dist/shared/flap/portal-bundle-merkle/core.js +267 -161
  183. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +4 -17
  184. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +195 -104
  185. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +92 -100
  186. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +7 -11
  187. package/dist/shared/flap/portal-bundle-merkle/index.js +7 -4
  188. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +68 -71
  189. package/dist/shared/flap/portal-bundle-merkle/private.js +114 -61
  190. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +64 -1
  191. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +247 -66
  192. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +71 -2
  193. package/dist/shared/flap/portal-bundle-merkle/swap.js +410 -103
  194. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +12 -88
  195. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +80 -1
  196. package/dist/shared/flap/portal-bundle-merkle/utils.js +265 -145
  197. package/dist/shared/flap/portal-bundle.js +56 -55
  198. package/dist/shared/flap/portal.d.ts +3 -14
  199. package/dist/shared/flap/portal.js +26 -49
  200. package/dist/shared/flap/vanity.d.ts +5 -8
  201. package/dist/shared/flap/vanity.js +20 -21
  202. package/dist/shared/flap/vault.d.ts +93 -25
  203. package/dist/shared/flap/vault.js +126 -75
  204. package/dist/shared/four/tax-token.d.ts +1 -1
  205. package/dist/shared/four/tax-token.js +7 -27
  206. package/dist/shared/index.d.ts +0 -6
  207. package/dist/shared/index.js +0 -4
  208. package/dist/utils/airdrop-sweep.d.ts +76 -4
  209. package/dist/utils/airdrop-sweep.js +55 -42
  210. package/dist/utils/bundle-helpers.d.ts +243 -9
  211. package/dist/utils/bundle-helpers.js +584 -10
  212. package/dist/utils/constants.d.ts +61 -5
  213. package/dist/utils/constants.js +80 -5
  214. package/dist/utils/contract-factory.d.ts +4 -2
  215. package/dist/utils/contract-factory.js +18 -25
  216. package/dist/utils/erc20.d.ts +89 -7
  217. package/dist/utils/erc20.js +125 -94
  218. package/dist/utils/errors.d.ts +1 -12
  219. package/dist/utils/errors.js +1 -60
  220. package/dist/utils/holders-maker.d.ts +138 -2
  221. package/dist/utils/holders-maker.js +661 -26
  222. package/dist/utils/lp-inspect.d.ts +112 -2
  223. package/dist/utils/lp-inspect.js +223 -73
  224. package/dist/utils/mpcExclusive.d.ts +5 -2
  225. package/dist/utils/mpcExclusive.js +3 -4
  226. package/dist/utils/private-sale.d.ts +58 -2
  227. package/dist/utils/private-sale.js +15 -4
  228. package/dist/utils/provider-factory.d.ts +0 -4
  229. package/dist/utils/provider-factory.js +0 -10
  230. package/dist/utils/quote-helpers.d.ts +45 -4
  231. package/dist/utils/quote-helpers.js +74 -17
  232. package/dist/utils/stealth-transfer.d.ts +28 -2
  233. package/dist/utils/stealth-transfer.js +15 -31
  234. package/dist/utils/swap-helpers.d.ts +15 -2
  235. package/dist/utils/swap-helpers.js +11 -6
  236. package/dist/utils/wallet.d.ts +25 -2
  237. package/dist/utils/wallet.js +10 -13
  238. package/package.json +4 -160
  239. package/dist/__tests__/subpath-exports.test.d.ts +0 -1
  240. package/dist/__tests__/subpath-exports.test.js +0 -64
  241. package/dist/abis/common.d.ts +0 -85
  242. package/dist/abis/common.js +0 -264
  243. package/dist/abis/contracts/TaxToken.json +0 -969
  244. package/dist/abis/contracts/TokenManager2.json +0 -136
  245. package/dist/abis/contracts/index.d.ts +0 -5
  246. package/dist/abis/contracts/index.js +0 -5
  247. package/dist/abis/flap/index.d.ts +0 -3
  248. package/dist/abis/flap/index.js +0 -3
  249. package/dist/abis/flap/portal-events.d.ts +0 -6
  250. package/dist/abis/flap/portal-events.js +0 -17
  251. package/dist/abis/flap/portal.d.ts +0 -6
  252. package/dist/abis/flap/portal.js +0 -37
  253. package/dist/abis/flap/vault.d.ts +0 -171
  254. package/dist/abis/flap/vault.js +0 -91
  255. package/dist/abis/index.d.ts +0 -8
  256. package/dist/abis/index.js +0 -11
  257. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
  258. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  259. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
  260. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  261. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
  262. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  263. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  264. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  265. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  266. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  267. package/dist/bundle-core/config-helpers.d.ts +0 -36
  268. package/dist/bundle-core/config-helpers.js +0 -57
  269. package/dist/bundle-core/errors.d.ts +0 -50
  270. package/dist/bundle-core/errors.js +0 -35
  271. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
  272. package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
  273. package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
  274. package/dist/bundle-core/four-meme/core-helpers.js +0 -40
  275. package/dist/bundle-core/four-meme/core.d.ts +0 -4
  276. package/dist/bundle-core/four-meme/core.js +0 -515
  277. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
  278. package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
  279. package/dist/bundle-core/four-meme/private.d.ts +0 -27
  280. package/dist/bundle-core/four-meme/private.js +0 -465
  281. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
  282. package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
  283. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
  284. package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
  285. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
  286. package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
  287. package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
  288. package/dist/bundle-core/four-meme/swap-internal.js +0 -18
  289. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
  290. package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
  291. package/dist/bundle-core/four-meme/swap.d.ts +0 -17
  292. package/dist/bundle-core/four-meme/swap.js +0 -505
  293. package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
  294. package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
  295. package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
  296. package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
  297. package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
  298. package/dist/bundle-core/four-meme/types/index.js +0 -1
  299. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
  300. package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
  301. package/dist/bundle-core/four-meme/types.d.ts +0 -1
  302. package/dist/bundle-core/four-meme/types.js +0 -1
  303. package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
  304. package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
  305. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
  306. package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
  307. package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
  308. package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
  309. package/dist/bundle-core/index.d.ts +0 -8
  310. package/dist/bundle-core/index.js +0 -8
  311. package/dist/bundle-core/internal.d.ts +0 -21
  312. package/dist/bundle-core/internal.js +0 -182
  313. package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
  314. package/dist/bundle-core/sign-context-helpers.js +0 -67
  315. package/dist/bundle-core/submit.d.ts +0 -293
  316. package/dist/bundle-core/submit.js +0 -727
  317. package/dist/bundle-core/types/index.d.ts +0 -8
  318. package/dist/bundle-core/types/index.js +0 -1
  319. package/dist/bundle-core/types.d.ts +0 -1
  320. package/dist/bundle-core/types.js +0 -1
  321. package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
  322. package/dist/chains/bsc/four/utils-disperse.js +0 -1
  323. package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
  324. package/dist/chains/bsc/four/utils-pairwise.js +0 -1
  325. package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
  326. package/dist/chains/bsc/four/utils-sweep.js +0 -1
  327. package/dist/chains/bsc/iro.d.ts +0 -5
  328. package/dist/chains/bsc/iro.js +0 -4
  329. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
  330. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
  331. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
  332. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
  333. package/dist/chains/eni/flat-aliases.d.ts +0 -10
  334. package/dist/chains/eni/flat-aliases.js +0 -8
  335. package/dist/chains/eni/submit.d.ts +0 -43
  336. package/dist/chains/eni/submit.js +0 -286
  337. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
  338. package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
  339. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
  340. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
  341. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
  342. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
  343. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
  344. package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
  345. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
  346. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
  347. package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
  348. package/dist/contracts/tm-bundle-helpers.js +0 -72
  349. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  350. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  351. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  352. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  353. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  354. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  355. package/dist/dex/direct-router-helpers.d.ts +0 -264
  356. package/dist/dex/direct-router-helpers.js +0 -539
  357. package/dist/dex/types.d.ts +0 -81
  358. package/dist/dex/types.js +0 -1
  359. package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
  360. package/dist/exports/root-bundle-and-tooling.js +0 -30
  361. package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
  362. package/dist/exports/root-eni-and-bsc-iro.js +0 -66
  363. package/dist/exports/root-foundations.d.ts +0 -35
  364. package/dist/exports/root-foundations.js +0 -70
  365. package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
  366. package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
  367. package/dist/flap/index.d.ts +0 -10
  368. package/dist/flap/index.js +0 -8
  369. package/dist/flows/index.d.ts +0 -1
  370. package/dist/flows/index.js +0 -1
  371. package/dist/merkle/index.d.ts +0 -12
  372. package/dist/merkle/index.js +0 -11
  373. package/dist/shared/clients/index.d.ts +0 -8
  374. package/dist/shared/clients/index.js +0 -8
  375. package/dist/shared/constants/quote.d.ts +0 -30
  376. package/dist/shared/constants/quote.js +0 -37
  377. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
  378. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
  379. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
  380. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
  381. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
  382. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
  383. package/dist/shared/flap/portal-create-token.d.ts +0 -81
  384. package/dist/shared/flap/portal-create-token.js +0 -255
  385. package/dist/shared/foundation/dex/v3-path.d.ts +0 -6
  386. package/dist/shared/foundation/dex/v3-path.js +0 -35
  387. package/dist/shared/foundation/gas/bundle-gas.d.ts +0 -49
  388. package/dist/shared/foundation/gas/bundle-gas.js +0 -93
  389. package/dist/shared/foundation/gas/profit-hop.d.ts +0 -20
  390. package/dist/shared/foundation/gas/profit-hop.js +0 -72
  391. package/dist/shared/foundation/index.d.ts +0 -13
  392. package/dist/shared/foundation/index.js +0 -12
  393. package/dist/shared/foundation/nonce/nonce-manager.d.ts +0 -17
  394. package/dist/shared/foundation/nonce/nonce-manager.js +0 -183
  395. package/dist/shared/foundation/normalize-unknown.d.ts +0 -9
  396. package/dist/shared/foundation/normalize-unknown.js +0 -29
  397. package/dist/shared/foundation/sdk-logger.d.ts +0 -13
  398. package/dist/shared/foundation/sdk-logger.js +0 -12
  399. package/dist/shared/foundation/tx/build-request.d.ts +0 -17
  400. package/dist/shared/foundation/tx/build-request.js +0 -25
  401. package/dist/shared/foundation/tx/sign-batch.d.ts +0 -5
  402. package/dist/shared/foundation/tx/sign-batch.js +0 -26
  403. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +0 -1
  404. package/dist/shared/foundation/tx/wallet-sign-patch.js +0 -18
  405. package/dist/shared/foundation/types/airdrop-sweep.d.ts +0 -79
  406. package/dist/shared/foundation/types/airdrop-sweep.js +0 -1
  407. package/dist/shared/foundation/types/erc20.d.ts +0 -65
  408. package/dist/shared/foundation/types/erc20.js +0 -1
  409. package/dist/shared/foundation/types/holders-maker.d.ts +0 -64
  410. package/dist/shared/foundation/types/holders-maker.js +0 -1
  411. package/dist/shared/foundation/types/index.d.ts +0 -7
  412. package/dist/shared/foundation/types/index.js +0 -1
  413. package/dist/shared/foundation/types/lp-inspect.d.ts +0 -102
  414. package/dist/shared/foundation/types/lp-inspect.js +0 -1
  415. package/dist/shared/foundation/types/multicall.d.ts +0 -5
  416. package/dist/shared/foundation/types/multicall.js +0 -1
  417. package/dist/shared/foundation/types/private-sale.d.ts +0 -35
  418. package/dist/shared/foundation/types/private-sale.js +0 -1
  419. package/dist/shared/foundation/types/quote-helpers.d.ts +0 -17
  420. package/dist/shared/foundation/types/quote-helpers.js +0 -1
  421. package/dist/types/errors.d.ts +0 -27
  422. package/dist/types/errors.js +0 -34
  423. package/dist/utils/holders-maker/addresses.d.ts +0 -12
  424. package/dist/utils/holders-maker/addresses.js +0 -15
  425. package/dist/utils/holders-maker/buy-tx.d.ts +0 -44
  426. package/dist/utils/holders-maker/buy-tx.js +0 -278
  427. package/dist/utils/holders-maker/constants.d.ts +0 -6
  428. package/dist/utils/holders-maker/constants.js +0 -7
  429. package/dist/utils/holders-maker/disperse.d.ts +0 -18
  430. package/dist/utils/holders-maker/disperse.js +0 -90
  431. package/dist/utils/holders-maker/routing.d.ts +0 -4
  432. package/dist/utils/holders-maker/routing.js +0 -45
  433. package/dist/utils/holders-maker/transfer-tx.d.ts +0 -4
  434. package/dist/utils/holders-maker/transfer-tx.js +0 -67
  435. package/dist/utils/holders-maker-helpers.d.ts +0 -9
  436. package/dist/utils/holders-maker-helpers.js +0 -9
  437. package/dist/utils/hop-chains.d.ts +0 -35
  438. package/dist/utils/hop-chains.js +0 -215
  439. package/dist/utils/lp-inspect-helpers.d.ts +0 -9
  440. package/dist/utils/lp-inspect-helpers.js +0 -109
  441. package/dist/utils/types/airdrop-sweep.d.ts +0 -1
  442. package/dist/utils/types/airdrop-sweep.js +0 -1
  443. package/dist/utils/types/contract-factory.d.ts +0 -1
  444. package/dist/utils/types/contract-factory.js +0 -1
  445. package/dist/utils/types/erc20.d.ts +0 -1
  446. package/dist/utils/types/erc20.js +0 -1
  447. package/dist/utils/types/errors.d.ts +0 -1
  448. package/dist/utils/types/errors.js +0 -1
  449. package/dist/utils/types/holders-maker.d.ts +0 -1
  450. package/dist/utils/types/holders-maker.js +0 -1
  451. package/dist/utils/types/hop-chains.d.ts +0 -8
  452. package/dist/utils/types/hop-chains.js +0 -1
  453. package/dist/utils/types/index.d.ts +0 -13
  454. package/dist/utils/types/index.js +0 -1
  455. package/dist/utils/types/lp-inspect.d.ts +0 -1
  456. package/dist/utils/types/lp-inspect.js +0 -1
  457. package/dist/utils/types/mpc-exclusive.d.ts +0 -5
  458. package/dist/utils/types/mpc-exclusive.js +0 -1
  459. package/dist/utils/types/private-sale.d.ts +0 -1
  460. package/dist/utils/types/private-sale.js +0 -1
  461. package/dist/utils/types/quote-helpers.d.ts +0 -1
  462. package/dist/utils/types/quote-helpers.js +0 -1
  463. package/dist/utils/types/stealth-transfer.d.ts +0 -44
  464. package/dist/utils/types/stealth-transfer.js +0 -1
  465. package/dist/utils/types/wallet.d.ts +0 -25
  466. package/dist/utils/types/wallet.js +0 -1
  467. package/dist/vanity/index.d.ts +0 -5
  468. package/dist/vanity/index.js +0 -5
  469. package/src/abis/contracts/TaxToken.json +0 -969
  470. package/src/abis/contracts/TokenManager.json +0 -836
  471. package/src/abis/contracts/TokenManager2.json +0 -136
  472. package/src/abis/contracts/TokenManagerHelper3.json +0 -993
  473. /package/dist/{abis/contracts → shared/abis}/TokenManager.json +0 -0
  474. /package/dist/{abis/contracts → shared/abis}/TokenManagerHelper3.json +0 -0
@@ -1,259 +0,0 @@
1
- /**
2
- * Flap Protocol 内盘捆绑换手(Merkle Bundle)
3
- *
4
- * 功能:钱包A卖出代币 → 钱包B买入相同数量 → 原子执行
5
- */
6
- import { ethers, Contract, Wallet } from 'ethers';
7
- import { ADDRESSES } from '../../../shared/constants/index.js';
8
- import { V2_ROUTER_QUOTE_ABI, ERC20_BALANCE_ABI, ERC20_ABI } from '../../abis/common.js';
9
- import { generateWallets } from '../../../utils/wallet.js';
10
- import { GAS_LIMITS, CHAINS } from '../../constants/index.js';
11
- // ==================== 多跳转账常量(使用统一常量) ====================
12
- export const NATIVE_TRANSFER_GAS_LIMIT = GAS_LIMITS.NATIVE_TRANSFER;
13
- export const ERC20_TRANSFER_GAS_LIMIT_HOP = GAS_LIMITS.ERC20_TRANSFER;
14
- export const BRIBE_GAS_LIMIT = GAS_LIMITS.BRIBE;
15
- /**
16
- * 生成分发多跳路径
17
- */
18
- export function generateDisperseHopPaths(targetAddresses, hopCount, provider) {
19
- if (hopCount <= 0) {
20
- return targetAddresses.map((addr) => ({
21
- targetAddress: addr,
22
- hopWallets: [],
23
- hopWalletsInfo: [],
24
- }));
25
- }
26
- return targetAddresses.map((targetAddress) => {
27
- const hopWalletsInfo = generateWallets(hopCount);
28
- const hopWallets = hopWalletsInfo.map((w) => new Wallet(w.privateKey, provider));
29
- return { targetAddress, hopWallets, hopWalletsInfo };
30
- });
31
- }
32
- /**
33
- * 构建原生代币多跳转账链
34
- */
35
- export async function buildNativeHopChain(payer, path, finalAmount, gasPrice, chainId, txType, payerNonce) {
36
- const signedTxs = [];
37
- const hopCount = path.hopWallets.length;
38
- if (hopCount === 0) {
39
- signedTxs.push(await payer.signTransaction({
40
- to: path.targetAddress,
41
- value: finalAmount,
42
- nonce: payerNonce,
43
- gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
44
- gasPrice,
45
- chainId,
46
- type: txType,
47
- }));
48
- return signedTxs;
49
- }
50
- const hopGasCost = NATIVE_TRANSFER_GAS_LIMIT * gasPrice;
51
- // 计算每跳需要的金额
52
- const amountsPerHop = [];
53
- for (let i = 0; i < hopCount; i++) {
54
- const remainingHops = hopCount - i;
55
- amountsPerHop.push(finalAmount + hopGasCost * BigInt(remainingHops));
56
- }
57
- // payer → hop1
58
- signedTxs.push(await payer.signTransaction({
59
- to: path.hopWallets[0].address,
60
- value: amountsPerHop[0],
61
- nonce: payerNonce,
62
- gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
63
- gasPrice,
64
- chainId,
65
- type: txType,
66
- }));
67
- // hop1 → hop2 → ... → target
68
- for (let i = 0; i < hopCount; i++) {
69
- const fromWallet = path.hopWallets[i];
70
- const toAddress = i === hopCount - 1 ? path.targetAddress : path.hopWallets[i + 1].address;
71
- const amount = i === hopCount - 1 ? finalAmount : amountsPerHop[i + 1];
72
- signedTxs.push(await fromWallet.signTransaction({
73
- to: toAddress,
74
- value: amount,
75
- nonce: 0,
76
- gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
77
- gasPrice,
78
- chainId,
79
- type: txType,
80
- }));
81
- }
82
- return signedTxs;
83
- }
84
- /**
85
- * 构建 ERC20 多跳转账链
86
- */
87
- export async function buildERC20HopChain(payer, path, erc20Address, erc20Amount, gasPrice, chainId, txType, payerNonce) {
88
- const signedTxs = [];
89
- const hopCount = path.hopWallets.length;
90
- const erc20Interface = new ethers.Interface(ERC20_ABI);
91
- if (hopCount === 0) {
92
- const data = erc20Interface.encodeFunctionData('transfer', [path.targetAddress, erc20Amount]);
93
- signedTxs.push(await payer.signTransaction({
94
- to: erc20Address,
95
- data,
96
- value: 0n,
97
- nonce: payerNonce,
98
- gasLimit: ERC20_TRANSFER_GAS_LIMIT_HOP,
99
- gasPrice,
100
- chainId,
101
- type: txType,
102
- }));
103
- return signedTxs;
104
- }
105
- // payer → hop1
106
- const firstData = erc20Interface.encodeFunctionData('transfer', [path.hopWallets[0].address, erc20Amount]);
107
- signedTxs.push(await payer.signTransaction({
108
- to: erc20Address,
109
- data: firstData,
110
- value: 0n,
111
- nonce: payerNonce,
112
- gasLimit: ERC20_TRANSFER_GAS_LIMIT_HOP,
113
- gasPrice,
114
- chainId,
115
- type: txType,
116
- }));
117
- // hop1 → hop2 → ... → target (nonce=1,nonce=0 用于 BNB 转发)
118
- for (let i = 0; i < hopCount; i++) {
119
- const fromWallet = path.hopWallets[i];
120
- const toAddress = i === hopCount - 1 ? path.targetAddress : path.hopWallets[i + 1].address;
121
- const data = erc20Interface.encodeFunctionData('transfer', [toAddress, erc20Amount]);
122
- signedTxs.push(await fromWallet.signTransaction({
123
- to: erc20Address,
124
- data,
125
- value: 0n,
126
- nonce: 1, // nonce=0 已用于 BNB 转发
127
- gasLimit: ERC20_TRANSFER_GAS_LIMIT_HOP,
128
- gasPrice,
129
- chainId,
130
- type: txType,
131
- }));
132
- }
133
- return signedTxs;
134
- }
135
- /**
136
- * 构建 BNB 多跳转账链(为 ERC20 中间钱包预留 gas)
137
- */
138
- export async function buildBNBHopChainForERC20(payer, path, finalGasAmount, gasPrice, chainId, txType, payerNonce) {
139
- const signedTxs = [];
140
- const hopCount = path.hopWallets.length;
141
- if (hopCount === 0) {
142
- return signedTxs;
143
- }
144
- const hopGasCost = NATIVE_TRANSFER_GAS_LIMIT * gasPrice;
145
- const erc20GasCost = ERC20_TRANSFER_GAS_LIMIT_HOP * gasPrice;
146
- const gasPerHop = hopGasCost + erc20GasCost * 2n;
147
- const amountsPerHop = [];
148
- for (let i = 0; i < hopCount; i++) {
149
- const remainingHops = hopCount - i;
150
- amountsPerHop.push(finalGasAmount + gasPerHop * BigInt(remainingHops));
151
- }
152
- // payer → hop1
153
- signedTxs.push(await payer.signTransaction({
154
- to: path.hopWallets[0].address,
155
- value: amountsPerHop[0],
156
- nonce: payerNonce,
157
- gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
158
- gasPrice,
159
- chainId,
160
- type: txType,
161
- }));
162
- // hop1 → hop2 → ... → target (nonce=0)
163
- for (let i = 0; i < hopCount; i++) {
164
- const fromWallet = path.hopWallets[i];
165
- const toAddress = i === hopCount - 1 ? path.targetAddress : path.hopWallets[i + 1].address;
166
- const amount = i === hopCount - 1 ? finalGasAmount : amountsPerHop[i + 1];
167
- signedTxs.push(await fromWallet.signTransaction({
168
- to: toAddress,
169
- value: amount,
170
- nonce: 0,
171
- gasLimit: NATIVE_TRANSFER_GAS_LIMIT,
172
- gasPrice,
173
- chainId,
174
- type: txType,
175
- }));
176
- }
177
- return signedTxs;
178
- }
179
- /**
180
- * 获取 Gas Limit
181
- */
182
- export function getGasLimit(config, defaultGas = 500000) {
183
- if (config.gasLimit !== undefined) {
184
- return typeof config.gasLimit === 'bigint' ? config.gasLimit : BigInt(config.gasLimit);
185
- }
186
- const multiplier = config.gasLimitMultiplier ?? 1.0;
187
- return BigInt(Math.ceil(defaultGas * multiplier));
188
- }
189
- // ✅ ABI 别名
190
- export const ROUTER_ABI = V2_ROUTER_QUOTE_ABI;
191
- export const ERC20_BALANCE_OF_ABI = ERC20_BALANCE_ABI;
192
- export const APPROVE_INTERFACE = new ethers.Interface(['function approve(address,uint256) returns (bool)']);
193
- // ✅ 链常量
194
- export const BSC_PANCAKE_V2_ROUTER = ADDRESSES.BSC.PancakeV2Router;
195
- export const BSC_WBNB = ADDRESSES.BSC.WBNB;
196
- export const MONAD_PANCAKE_V2_ROUTER = '0xb1bc24c34e88f7d43d5923034e3a14b24daacff9';
197
- export const MONAD_WMON = ADDRESSES.MONAD.WMON;
198
- /**
199
- * 获取 ERC20 代币 → 原生代币的报价
200
- * @param provider - Provider 实例
201
- * @param tokenAddress - ERC20 代币地址
202
- * @param tokenAmount - 代币数量(wei)
203
- * @param chainId - 链 ID(56=BSC, 143=Monad)
204
- * @returns 等值的原生代币数量(wei),失败返回 0n
205
- */
206
- export async function getTokenToNativeQuote(provider, tokenAddress, tokenAmount, chainId) {
207
- if (tokenAmount <= 0n)
208
- return 0n;
209
- try {
210
- if (chainId === CHAINS.BSC.chainId) {
211
- // BSC: 使用 PancakeSwap V2 Router
212
- const router = new Contract(BSC_PANCAKE_V2_ROUTER, ROUTER_ABI, provider);
213
- const amounts = await router.getAmountsOut(tokenAmount, [tokenAddress, BSC_WBNB]);
214
- return amounts[1];
215
- }
216
- if (chainId === CHAINS.MONAD.chainId) {
217
- // ✅ Monad: 使用 PancakeSwap V2 Router
218
- const router = new Contract(MONAD_PANCAKE_V2_ROUTER, ROUTER_ABI, provider);
219
- const amounts = await router.getAmountsOut(tokenAmount, [tokenAddress, MONAD_WMON]);
220
- return amounts[1];
221
- }
222
- // ✅ Base (8453) / XLayer (196) 等链暂不支持 V2 报价,返回 0
223
- return 0n;
224
- }
225
- catch {
226
- // 报价失败返回 0(可能是流动性不足或路径不存在)
227
- return 0n;
228
- }
229
- }
230
- /**
231
- * 获取链ID
232
- */
233
- export function getChainId(chain) {
234
- switch (chain) {
235
- case 'bsc':
236
- return 56;
237
- case 'xlayer':
238
- return 196;
239
- case 'base':
240
- return 8453;
241
- }
242
- }
243
- /**
244
- * 获取原生代币名称
245
- */
246
- export function getNativeTokenName(chain) {
247
- switch (chain) {
248
- case 'bsc':
249
- return 'BNB';
250
- case 'xlayer':
251
- return 'OKB';
252
- case 'base':
253
- return 'ETH';
254
- }
255
- }
256
- /**
257
- * Flap内盘捆绑换手
258
- * ✅ 支持 quoteToken:传入 USDT 等地址时,卖出得到该代币,买入使用该代币
259
- */
@@ -1,81 +0,0 @@
1
- /**
2
- * Portal 发币交易构建(newTokenV6 / newTokenV7 / VaultPortal)
3
- *
4
- * 对齐 Flap 官方文档:
5
- * - newTokenV6:TOKEN_V2_PERMIT / TOKEN_TAXED_V3
6
- * - newTokenV7:TOKEN_V3_PERMIT(BSC 标准 V3 / PCS Infinity CL,与 Flap 官网一致)
7
- * - newTokenV4:已弃用(Portal 侧 FeatureDisabled,勿再使用)
8
- * - VaultPortal.newTaxTokenWithVault:带金库的税币(legacy 参数结构)
9
- */
10
- import { Contract, type Wallet } from 'ethers';
11
- import { type TaxVaultConfig } from './vault.js';
12
- /** 分红代币:将 launching token 本身作为分红代币 */
13
- export declare const MAGIC_DIVIDEND_SELF = "0xfEEDFEEDfeEDFEedFEEdFEEDFeEdfEEdFeEdFEEd";
14
- export type NormalizedTaxLaunchConfig = {
15
- taxDuration: number;
16
- antiFarmerDuration: number;
17
- mktBps: number;
18
- deflationBps: number;
19
- dividendBps: number;
20
- lpBps: number;
21
- minimumShareBalance?: number;
22
- buyTaxRate: number;
23
- sellTaxRate: number;
24
- dividendToken?: string;
25
- commissionReceiver?: string;
26
- vaultConfig?: TaxVaultConfig;
27
- };
28
- export type PopulateCreateTokenParams = {
29
- chain: string;
30
- devWallet: Wallet;
31
- originalPortal: Contract;
32
- tokenInfo: {
33
- name: string;
34
- symbol: string;
35
- meta: string;
36
- };
37
- quoteToken?: string;
38
- beneficiary: string;
39
- dexThresh?: number;
40
- salt?: string;
41
- migratorType?: number;
42
- /** legacy 单税率(bps),无 buy/sell 时作为对称税率 */
43
- taxRate?: number;
44
- dexId?: number;
45
- lpFeeProfile?: number;
46
- extensionID?: string;
47
- extensionData?: string;
48
- /** 标准 V3 / TOKEN_V3_PERMIT(newTokenV7 + PCS_INFINITY_CL_MIGRATOR,对齐 Flap Portal v5.8.6+) */
49
- useV7Portal?: boolean;
50
- /** @deprecated 使用 useV7Portal */
51
- useV4Portal?: boolean;
52
- /** @deprecated 已合并到 useV7Portal */
53
- useClInfinityLaunch?: boolean;
54
- /** 高级税币 / 税币 V3 配置 */
55
- taxConfig?: NormalizedTaxLaunchConfig;
56
- /** 创建时内嵌买入(Flap 文档方式 A:quoteAmt + msg.value) */
57
- initialQuoteAmt?: bigint;
58
- };
59
- /** 将 TaxV2Config(含 distribution 嵌套)或 flat 结构归一化 */
60
- export declare function normalizeTaxLaunchConfig(input?: {
61
- taxDuration: number;
62
- antiFarmerDuration: number;
63
- mktBps?: number;
64
- deflationBps?: number;
65
- dividendBps?: number;
66
- lpBps?: number;
67
- minimumShareBalance?: number;
68
- buyTaxRate?: number;
69
- sellTaxRate?: number;
70
- dividendToken?: string;
71
- commissionReceiver?: string;
72
- vaultConfig?: TaxVaultConfig;
73
- distribution?: {
74
- mktBps: number;
75
- deflationBps: number;
76
- dividendBps: number;
77
- lpBps: number;
78
- minimumShareBalance?: number;
79
- };
80
- }, fallbackTaxRate?: number): NormalizedTaxLaunchConfig | undefined;
81
- export declare function populateCreateTokenTransaction(params: PopulateCreateTokenParams): Promise<import("ethers").ContractTransaction>;
@@ -1,255 +0,0 @@
1
- /**
2
- * Portal 发币交易构建(newTokenV6 / newTokenV7 / VaultPortal)
3
- *
4
- * 对齐 Flap 官方文档:
5
- * - newTokenV6:TOKEN_V2_PERMIT / TOKEN_TAXED_V3
6
- * - newTokenV7:TOKEN_V3_PERMIT(BSC 标准 V3 / PCS Infinity CL,与 Flap 官网一致)
7
- * - newTokenV4:已弃用(Portal 侧 FeatureDisabled,勿再使用)
8
- * - VaultPortal.newTaxTokenWithVault:带金库的税币(legacy 参数结构)
9
- */
10
- import { Contract, ZeroAddress } from 'ethers';
11
- import { ZERO_ADDRESS } from '../constants/index.js';
12
- import { buildVaultParams, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI } from './vault.js';
13
- import { TokenVersion, MigratorType, FeeType } from './portal.js';
14
- /** 分红代币:将 launching token 本身作为分红代币 */
15
- export const MAGIC_DIVIDEND_SELF = '0xfEEDFEEDfeEDFEedFEEdFEEDFeEdfEEdFeEdFEEd';
16
- function zeroBytes32() {
17
- return '0x' + '00'.repeat(32);
18
- }
19
- function resolveTaxRates(taxConfig, taxRate) {
20
- const buy = taxConfig?.buyTaxRate ?? taxRate ?? 0;
21
- const sell = taxConfig?.sellTaxRate ?? taxRate ?? 0;
22
- return { buyTaxRate: buy & 0xffff, sellTaxRate: sell & 0xffff };
23
- }
24
- function validateTaxDistribution(mkt, def, div, lp) {
25
- const total = mkt + def + div + lp;
26
- if (total !== 10000) {
27
- throw new Error(`Tax distribution must sum to 10000 (100%), got ${total}`);
28
- }
29
- }
30
- function buildV6TaxParams(params, taxConfig, dist) {
31
- const { buyTaxRate, sellTaxRate } = resolveTaxRates(taxConfig, params.taxRate);
32
- validateTaxDistribution(dist.mktBps, dist.deflationBps, dist.dividendBps, dist.lpBps);
33
- return {
34
- name: params.tokenInfo.name,
35
- symbol: params.tokenInfo.symbol,
36
- meta: params.tokenInfo.meta,
37
- dexThresh: (params.dexThresh ?? 1) & 0xff,
38
- salt: params.salt ?? zeroBytes32(),
39
- migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
40
- quoteToken: params.quoteToken || ZERO_ADDRESS,
41
- quoteAmt: resolveCreateQuoteAmt(params),
42
- beneficiary: params.beneficiary,
43
- permitData: '0x',
44
- extensionID: params.extensionID ?? zeroBytes32(),
45
- extensionData: params.extensionData ?? '0x',
46
- dexId: (params.dexId ?? 0) & 0xff,
47
- lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
48
- buyTaxRate,
49
- sellTaxRate,
50
- taxDuration: BigInt(taxConfig.taxDuration),
51
- antiFarmerDuration: BigInt(taxConfig.antiFarmerDuration),
52
- mktBps: dist.mktBps,
53
- deflationBps: dist.deflationBps,
54
- dividendBps: dist.dividendBps,
55
- lpBps: dist.lpBps,
56
- minimumShareBalance: BigInt(taxConfig.minimumShareBalance ?? 10000) * 10n ** 18n,
57
- dividendToken: taxConfig.dividendToken || ZeroAddress,
58
- commissionReceiver: taxConfig.commissionReceiver || ZeroAddress,
59
- tokenVersion: TokenVersion.TOKEN_TAXED_V3,
60
- };
61
- }
62
- /** 将 TaxV2Config(含 distribution 嵌套)或 flat 结构归一化 */
63
- export function normalizeTaxLaunchConfig(input, fallbackTaxRate) {
64
- if (!input)
65
- return undefined;
66
- const dist = 'distribution' in input ? input.distribution : undefined;
67
- const mktBps = dist?.mktBps ?? input.mktBps ?? 10000;
68
- const deflationBps = dist?.deflationBps ?? input.deflationBps ?? 0;
69
- const dividendBps = dist?.dividendBps ?? input.dividendBps ?? 0;
70
- const lpBps = dist?.lpBps ?? input.lpBps ?? 0;
71
- const minimumShareBalance = dist?.minimumShareBalance ?? input.minimumShareBalance;
72
- const buyTaxRate = input.buyTaxRate ?? fallbackTaxRate ?? 0;
73
- const sellTaxRate = input.sellTaxRate ?? fallbackTaxRate ?? 0;
74
- if (buyTaxRate <= 0 && sellTaxRate <= 0)
75
- return undefined;
76
- return {
77
- taxDuration: input.taxDuration,
78
- antiFarmerDuration: input.antiFarmerDuration,
79
- mktBps,
80
- deflationBps,
81
- dividendBps,
82
- lpBps,
83
- minimumShareBalance,
84
- buyTaxRate,
85
- sellTaxRate,
86
- dividendToken: input.dividendToken,
87
- commissionReceiver: input.commissionReceiver,
88
- vaultConfig: input.vaultConfig,
89
- };
90
- }
91
- /**
92
- * 构建发币 populateTransaction(优先 V6/V7,Vault 走 VaultPortal)
93
- */
94
- function resolveCreateQuoteAmt(params) {
95
- return params.initialQuoteAmt ?? 0n;
96
- }
97
- function resolveUseV7Portal(params) {
98
- return !!(params.useV7Portal ?? params.useV4Portal ?? params.useClInfinityLaunch);
99
- }
100
- /** Flap 文档:TOKEN_V3_PERMIT 须 migratorType=3、feeConfigs 单槽 MARKETING_OR_VAULT 10000 bps */
101
- function buildNewTokenV7PermitParams(params) {
102
- const emptyFeeConfig = {
103
- feeType: FeeType.NONE,
104
- bps: 0,
105
- marketingAddress: ZeroAddress,
106
- dividendToken: ZeroAddress,
107
- minimumShareBalance: 0n,
108
- };
109
- const marketingFeeConfig = {
110
- feeType: FeeType.MARKETING_OR_VAULT,
111
- bps: 10000,
112
- marketingAddress: params.beneficiary,
113
- dividendToken: ZeroAddress,
114
- minimumShareBalance: 0n,
115
- };
116
- return {
117
- name: params.tokenInfo.name,
118
- symbol: params.tokenInfo.symbol,
119
- meta: params.tokenInfo.meta,
120
- dexThresh: (params.dexThresh ?? 1) & 0xff,
121
- salt: params.salt ?? zeroBytes32(),
122
- migratorType: MigratorType.PCS_INFINITY_CL_MIGRATOR,
123
- quoteToken: params.quoteToken || ZERO_ADDRESS,
124
- quoteAmt: resolveCreateQuoteAmt(params),
125
- permitData: '0x',
126
- extensionID: params.extensionID ?? zeroBytes32(),
127
- extensionData: params.extensionData ?? '0x',
128
- dexId: (params.dexId ?? 0) & 0xff,
129
- buyTaxRate: 0,
130
- sellTaxRate: 0,
131
- taxDuration: 0n,
132
- antiFarmerDuration: 0n,
133
- commissionReceiver: ZeroAddress,
134
- tokenVersion: TokenVersion.TOKEN_V3_PERMIT,
135
- feeConfigs: [marketingFeeConfig, emptyFeeConfig, emptyFeeConfig, emptyFeeConfig],
136
- };
137
- }
138
- export async function populateCreateTokenTransaction(params) {
139
- const taxConfig = params.taxConfig;
140
- const { buyTaxRate, sellTaxRate } = resolveTaxRates(taxConfig, params.taxRate);
141
- const isTaxLaunch = buyTaxRate > 0 || sellTaxRate > 0;
142
- const quoteAmt = resolveCreateQuoteAmt(params);
143
- // 1) Vault 金库税币
144
- if (taxConfig?.vaultConfig && taxConfig.vaultConfig.vaultType !== 'none') {
145
- validateTaxDistribution(taxConfig.mktBps, taxConfig.deflationBps, taxConfig.dividendBps, taxConfig.lpBps);
146
- const chainKey = params.chain.toUpperCase();
147
- const vaultPortalAddr = VAULT_PORTAL_ADDRESSES[chainKey];
148
- if (!vaultPortalAddr) {
149
- throw new Error(`链 "${params.chain}" 不支持 Tax Vault 金库功能`);
150
- }
151
- const vaultPortal = new Contract(vaultPortalAddr, VAULT_PORTAL_ABI, params.devWallet);
152
- const { vaultFactory, vaultData } = buildVaultParams(taxConfig.vaultConfig, chainKey);
153
- return vaultPortal.newTaxTokenWithVault.populateTransaction({
154
- name: params.tokenInfo.name,
155
- symbol: params.tokenInfo.symbol,
156
- meta: params.tokenInfo.meta,
157
- dexThresh: (params.dexThresh ?? 1) & 0xff,
158
- salt: params.salt ?? zeroBytes32(),
159
- taxRate: Math.max(buyTaxRate, sellTaxRate) & 0xffff,
160
- migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
161
- quoteToken: params.quoteToken || ZERO_ADDRESS,
162
- quoteAmt,
163
- permitData: '0x',
164
- extensionID: zeroBytes32(),
165
- extensionData: '0x',
166
- dexId: (params.dexId ?? 0) & 0xff,
167
- lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
168
- taxDuration: BigInt(taxConfig.taxDuration),
169
- antiFarmerDuration: BigInt(taxConfig.antiFarmerDuration),
170
- mktBps: taxConfig.mktBps,
171
- deflationBps: taxConfig.deflationBps,
172
- dividendBps: taxConfig.dividendBps,
173
- lpBps: taxConfig.lpBps,
174
- minimumShareBalance: BigInt(taxConfig.minimumShareBalance ?? 10000) * 10n ** 18n,
175
- vaultFactory,
176
- vaultData,
177
- });
178
- }
179
- // 2) 税币 V3(newTokenV6 + TOKEN_TAXED_V3)
180
- if (isTaxLaunch && taxConfig) {
181
- return params.originalPortal.newTokenV6.populateTransaction(buildV6TaxParams(params, taxConfig, {
182
- mktBps: taxConfig.mktBps,
183
- deflationBps: taxConfig.deflationBps,
184
- dividendBps: taxConfig.dividendBps,
185
- lpBps: taxConfig.lpBps,
186
- }));
187
- }
188
- if (isTaxLaunch) {
189
- return params.originalPortal.newTokenV6.populateTransaction(buildV6TaxParams(params, {
190
- taxDuration: 365 * 24 * 60 * 60,
191
- antiFarmerDuration: 3 * 24 * 60 * 60,
192
- mktBps: 10000,
193
- deflationBps: 0,
194
- dividendBps: 0,
195
- lpBps: 0,
196
- buyTaxRate,
197
- sellTaxRate,
198
- }, { mktBps: 10000, deflationBps: 0, dividendBps: 0, lpBps: 0 }));
199
- }
200
- // 3) 标准 V3 / TOKEN_V3_PERMIT(newTokenV7 — 与 Flap 官网 / Portal v5.8.6+ 一致;V4 已 FeatureDisabled)
201
- if (resolveUseV7Portal(params)) {
202
- return params.originalPortal.newTokenV7.populateTransaction(buildNewTokenV7PermitParams(params));
203
- }
204
- // 4) 仅 extension(newTokenV3)
205
- const hasExtension = !!params.extensionID &&
206
- params.extensionID !== zeroBytes32() &&
207
- params.lpFeeProfile === undefined &&
208
- params.dexId === undefined;
209
- if (hasExtension) {
210
- return params.originalPortal.newTokenV3.populateTransaction({
211
- name: params.tokenInfo.name,
212
- symbol: params.tokenInfo.symbol,
213
- meta: params.tokenInfo.meta,
214
- dexThresh: (params.dexThresh ?? 1) & 0xff,
215
- salt: params.salt ?? zeroBytes32(),
216
- taxRate: (params.taxRate ?? 0) & 0xffff,
217
- migratorType: (params.migratorType ?? MigratorType.V3_MIGRATOR) & 0xff,
218
- quoteToken: params.quoteToken || ZERO_ADDRESS,
219
- quoteAmt,
220
- beneficiary: params.beneficiary,
221
- permitData: '0x',
222
- extensionID: params.extensionID,
223
- extensionData: params.extensionData ?? '0x',
224
- });
225
- }
226
- // 5) 标准 V2(newTokenV6 + TOKEN_V2_PERMIT)
227
- return params.originalPortal.newTokenV6.populateTransaction({
228
- name: params.tokenInfo.name,
229
- symbol: params.tokenInfo.symbol,
230
- meta: params.tokenInfo.meta,
231
- dexThresh: (params.dexThresh ?? 1) & 0xff,
232
- salt: params.salt ?? zeroBytes32(),
233
- migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
234
- quoteToken: params.quoteToken || ZERO_ADDRESS,
235
- quoteAmt,
236
- beneficiary: params.beneficiary,
237
- permitData: '0x',
238
- extensionID: params.extensionID ?? zeroBytes32(),
239
- extensionData: params.extensionData ?? '0x',
240
- dexId: (params.dexId ?? 0) & 0xff,
241
- lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
242
- buyTaxRate: 0,
243
- sellTaxRate: 0,
244
- taxDuration: 0n,
245
- antiFarmerDuration: 0n,
246
- mktBps: 0,
247
- deflationBps: 0,
248
- dividendBps: 0,
249
- lpBps: 0,
250
- minimumShareBalance: 0n,
251
- dividendToken: ZeroAddress,
252
- commissionReceiver: ZeroAddress,
253
- tokenVersion: TokenVersion.TOKEN_V2_PERMIT,
254
- });
255
- }
@@ -1,6 +0,0 @@
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
- };
@@ -1,35 +0,0 @@
1
- import { GAS_CONFIG } from '../../constants/gas.js';
2
- export function getDeadline(minutes = GAS_CONFIG.DEFAULT_DEADLINE_MINUTES) {
3
- return Math.floor(Date.now() / 1000) + 60 * minutes;
4
- }
5
- export function encodeV3Path(tokens, fees) {
6
- if (tokens.length < 2) {
7
- throw new Error('V3 path 需要至少 2 个代币');
8
- }
9
- if (fees.length !== tokens.length - 1) {
10
- throw new Error(`费率数量 (${fees.length}) 必须等于代币数量 - 1 (${tokens.length - 1})`);
11
- }
12
- let path = '0x';
13
- for (let i = 0; i < tokens.length; i++) {
14
- path += tokens[i].slice(2).toLowerCase().padStart(40, '0');
15
- if (i < fees.length) {
16
- path += fees[i].toString(16).padStart(6, '0');
17
- }
18
- }
19
- return path;
20
- }
21
- export function decodeV3Path(path) {
22
- const cleanPath = path.startsWith('0x') ? path.slice(2) : path;
23
- const tokens = [];
24
- const fees = [];
25
- let offset = 0;
26
- while (offset < cleanPath.length) {
27
- tokens.push('0x' + cleanPath.slice(offset, offset + 40));
28
- offset += 40;
29
- if (offset < cleanPath.length) {
30
- fees.push(parseInt(cleanPath.slice(offset, offset + 6), 16));
31
- offset += 6;
32
- }
33
- }
34
- return { tokens, fees };
35
- }
@@ -1,49 +0,0 @@
1
- import { JsonRpcProvider, type TransactionRequest } from 'ethers';
2
- export interface GasPriceConfig {
3
- baseGasPrice?: bigint;
4
- multiplierPercent?: number;
5
- minGasPrice?: bigint;
6
- maxGasPrice?: bigint;
7
- }
8
- export declare function getOptimizedGasPrice(provider: JsonRpcProvider, config?: GasPriceConfig): Promise<bigint>;
9
- export interface GasEstimateConfig {
10
- multiplier?: number;
11
- fallbackGasLimit?: bigint;
12
- allowFailure?: boolean;
13
- }
14
- export declare function estimateGasWithSafety(provider: JsonRpcProvider, txRequest: TransactionRequest, config?: GasEstimateConfig): Promise<bigint>;
15
- export declare function estimateGasBatch(provider: JsonRpcProvider, txRequests: TransactionRequest[], config?: GasEstimateConfig): Promise<bigint[]>;
16
- export interface BuildTransactionOptions {
17
- from: string;
18
- to?: string;
19
- data?: string;
20
- value?: bigint;
21
- nonce: number;
22
- gasPrice: bigint;
23
- gasLimit: bigint;
24
- chainId: number;
25
- type?: 0 | 2;
26
- }
27
- export declare function buildTransaction(options: BuildTransactionOptions): TransactionRequest;
28
- export interface CommonBundleConfig {
29
- gasLimit?: number;
30
- gasLimitMultiplier?: number;
31
- minGasPriceGwei?: number;
32
- maxGasPriceGwei?: number;
33
- txType?: 0 | 2;
34
- chainId?: number;
35
- }
36
- export declare function getGasLimit(config: CommonBundleConfig, defaultGas?: number): bigint;
37
- export declare function getGasPriceConfig(config: CommonBundleConfig): GasPriceConfig;
38
- export declare function getTxType(config: CommonBundleConfig): 0 | 2;
39
- export type LegacyGasFields = {
40
- type: 0;
41
- gasPrice: bigint;
42
- };
43
- export type Eip1559GasFields = {
44
- type: 2;
45
- maxFeePerGas: bigint;
46
- maxPriorityFeePerGas: bigint;
47
- };
48
- export type TxGasFields = LegacyGasFields | Eip1559GasFields;
49
- export declare function buildGasFields(txType: number, gasPrice: bigint): TxGasFields;