four-flap-meme-sdk 2.2.2 → 2.2.3
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.
- package/README.en.md +41 -6
- package/README.md +31 -0
- package/README.zh-CN.md +41 -6
- package/dist/__tests__/subpath-exports.test.d.ts +1 -0
- package/dist/__tests__/subpath-exports.test.js +64 -0
- package/dist/abis/common.d.ts +85 -0
- package/dist/abis/common.js +264 -0
- package/dist/abis/contracts/TaxToken.json +969 -0
- package/dist/abis/contracts/TokenManager2.json +136 -0
- package/dist/abis/contracts/index.d.ts +5 -0
- package/dist/abis/contracts/index.js +5 -0
- package/dist/abis/flap/index.d.ts +3 -0
- package/dist/abis/flap/index.js +3 -0
- package/dist/abis/flap/portal-events.d.ts +6 -0
- package/dist/abis/flap/portal-events.js +17 -0
- package/dist/abis/flap/portal.d.ts +6 -0
- package/dist/abis/flap/portal.js +37 -0
- package/dist/abis/flap/vault.d.ts +171 -0
- package/dist/abis/flap/vault.js +91 -0
- package/dist/abis/index.d.ts +8 -0
- package/dist/abis/index.js +11 -0
- package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
- package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
- package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
- package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
- package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
- package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
- package/dist/bundle-core/config-helpers.d.ts +36 -0
- package/dist/bundle-core/config-helpers.js +57 -0
- package/dist/bundle-core/errors.d.ts +50 -0
- package/dist/bundle-core/errors.js +35 -0
- package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
- package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
- package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
- package/dist/bundle-core/four-meme/core-helpers.js +40 -0
- package/dist/bundle-core/four-meme/core.d.ts +4 -0
- package/dist/bundle-core/four-meme/core.js +515 -0
- package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
- package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
- package/dist/bundle-core/four-meme/private.d.ts +27 -0
- package/dist/bundle-core/four-meme/private.js +465 -0
- package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
- package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
- package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
- package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
- package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
- package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
- package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
- package/dist/bundle-core/four-meme/swap-internal.js +18 -0
- package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
- package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
- package/dist/bundle-core/four-meme/swap.d.ts +17 -0
- package/dist/bundle-core/four-meme/swap.js +505 -0
- package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
- package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
- package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
- package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
- package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
- package/dist/bundle-core/four-meme/types/index.js +1 -0
- package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
- package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
- package/dist/bundle-core/four-meme/types.d.ts +1 -0
- package/dist/bundle-core/four-meme/types.js +1 -0
- package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
- package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
- package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
- package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
- package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
- package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
- package/dist/bundle-core/index.d.ts +8 -0
- package/dist/bundle-core/index.js +8 -0
- package/dist/bundle-core/internal.d.ts +21 -0
- package/dist/bundle-core/internal.js +182 -0
- package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
- package/dist/bundle-core/sign-context-helpers.js +67 -0
- package/dist/bundle-core/submit.d.ts +293 -0
- package/dist/bundle-core/submit.js +727 -0
- package/dist/bundle-core/types/index.d.ts +8 -0
- package/dist/bundle-core/types/index.js +1 -0
- package/dist/bundle-core/types.d.ts +1 -0
- package/dist/bundle-core/types.js +1 -0
- package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
- package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
- package/dist/chains/bsc/four/config.d.ts +5 -67
- package/dist/chains/bsc/four/config.js +2 -114
- package/dist/chains/bsc/four/core.d.ts +1 -4
- package/dist/chains/bsc/four/core.js +1 -592
- package/dist/chains/bsc/four/index.d.ts +6 -6
- package/dist/chains/bsc/four/index.js +6 -6
- package/dist/chains/bsc/four/internal.d.ts +2 -46
- package/dist/chains/bsc/four/internal.js +2 -239
- package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
- package/dist/chains/bsc/four/pancake-proxy.js +1 -687
- package/dist/chains/bsc/four/private.d.ts +1 -27
- package/dist/chains/bsc/four/private.js +1 -477
- package/dist/chains/bsc/four/submit.d.ts +2 -315
- package/dist/chains/bsc/four/submit.js +2 -752
- package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
- package/dist/chains/bsc/four/swap-buy-first.js +2 -507
- package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
- package/dist/chains/bsc/four/swap-internal.js +1 -18
- package/dist/chains/bsc/four/swap.d.ts +2 -144
- package/dist/chains/bsc/four/swap.js +2 -766
- package/dist/chains/bsc/four/types.d.ts +1 -476
- package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
- package/dist/chains/bsc/four/utils-disperse.js +1 -0
- package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
- package/dist/chains/bsc/four/utils-pairwise.js +1 -0
- package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
- package/dist/chains/bsc/four/utils-sweep.js +1 -0
- package/dist/chains/bsc/four/utils.d.ts +5 -18
- package/dist/chains/bsc/four/utils.js +5 -1552
- package/dist/chains/bsc/iro.d.ts +5 -0
- package/dist/chains/bsc/iro.js +4 -0
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
- package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
- package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -212
- package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
- package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
- package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
- package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
- package/dist/chains/bsc/pancake/index.d.ts +4 -2
- package/dist/chains/bsc/pancake/index.js +1 -3
- package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
- package/dist/chains/bsc/platforms/iro/factory.js +3 -1
- package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
- package/dist/chains/bsc/platforms/iro/index.js +3 -3
- package/dist/chains/bsc/platforms/iro/pool.js +31 -10
- package/dist/chains/bsc/platforms/iro/token.js +4 -1
- package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
- package/dist/chains/eni/batch-router/transfer.js +55 -25
- package/dist/chains/eni/batch-router/utils.js +32 -6
- package/dist/chains/eni/bundler/sign.js +5 -6
- package/dist/chains/eni/bundler/submit.js +1 -4
- package/dist/chains/eni/constants.js +1 -1
- package/dist/chains/eni/flat-aliases.d.ts +10 -0
- package/dist/chains/eni/flat-aliases.js +8 -0
- package/dist/chains/eni/index.d.ts +2 -1
- package/dist/chains/eni/index.js +1 -0
- package/dist/chains/eni/platforms/daoaas/create.js +2 -2
- package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
- package/dist/chains/eni/platforms/daoaas/index.js +3 -3
- package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
- package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
- package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
- package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
- package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
- package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
- package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
- package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
- package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
- package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
- package/dist/chains/eni/platforms/iro/factory.js +3 -1
- package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
- package/dist/chains/eni/platforms/iro/index.js +4 -4
- package/dist/chains/eni/platforms/iro/pool.js +90 -26
- package/dist/chains/eni/platforms/iro/token.js +107 -31
- package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
- package/dist/chains/eni/submit.d.ts +43 -0
- package/dist/chains/eni/submit.js +286 -0
- package/dist/chains/index.d.ts +13 -0
- package/dist/chains/index.js +13 -0
- package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
- package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
- package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
- package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
- package/dist/chains/xlayer/eip7702/bundle-create.js +93 -59
- package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
- package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
- package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
- package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
- package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
- package/dist/chains/xlayer/eip7702/constants.js +3 -21
- package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
- package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
- package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
- package/dist/chains/xlayer/eip7702/index.js +28 -81
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
- package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
- package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
- package/dist/chains/xlayer/eip7702/utils.js +23 -28
- package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
- package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
- package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
- package/dist/chains/xlayer/eip7702/volume.js +89 -164
- package/dist/chains/xlayer/eoa/constants.js +1 -1
- package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
- package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
- package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
- package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
- package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
- package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
- package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
- package/dist/chains/xlayer/eoa/index.d.ts +10 -6
- package/dist/chains/xlayer/eoa/index.js +8 -23
- package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
- package/dist/chains/xlayer/eoa/router-manager.js +3 -3
- package/dist/chains/xlayer/eoa/types.d.ts +2 -2
- package/dist/chains/xlayer/eoa/types.js +1 -3
- package/dist/chains/xlayer/index.d.ts +3 -2
- package/dist/chains/xlayer/index.js +4 -7
- package/dist/contracts/helper3.d.ts +20 -5
- package/dist/contracts/helper3.js +56 -20
- package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
- package/dist/contracts/tm-bundle-helpers.js +72 -0
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
- package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
- package/dist/contracts/tm-bundle-merkle/config.js +2 -114
- package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
- package/dist/contracts/tm-bundle-merkle/core.js +1 -591
- package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
- package/dist/contracts/tm-bundle-merkle/index.js +5 -5
- package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
- package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
- package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
- package/dist/contracts/tm-bundle-merkle/private.js +1 -476
- package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
- package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
- package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
- package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
- package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
- package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
- package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
- package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
- package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
- package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
- package/dist/contracts/tm-bundle.d.ts +3 -51
- package/dist/contracts/tm-bundle.js +108 -177
- package/dist/contracts/tm.d.ts +3 -2
- package/dist/contracts/tm.js +37 -32
- package/dist/contracts/tm1.js +9 -4
- package/dist/contracts/tm2.js +9 -4
- package/dist/dex/direct-router-helpers.d.ts +264 -0
- package/dist/dex/direct-router-helpers.js +539 -0
- package/dist/dex/direct-router.d.ts +3 -125
- package/dist/dex/direct-router.js +237 -666
- package/dist/dex/types.d.ts +81 -0
- package/dist/dex/types.js +1 -0
- package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
- package/dist/exports/root-bundle-and-tooling.js +30 -0
- package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
- package/dist/exports/root-eni-and-bsc-iro.js +66 -0
- package/dist/exports/root-foundations.d.ts +35 -0
- package/dist/exports/root-foundations.js +70 -0
- package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
- package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
- package/dist/flap/index.d.ts +10 -0
- package/dist/flap/index.js +8 -0
- package/dist/flows/create.d.ts +2 -1
- package/dist/flows/create.js +6 -6
- package/dist/flows/index.d.ts +1 -0
- package/dist/flows/index.js +1 -0
- package/dist/index.d.ts +20 -85
- package/dist/index.js +20 -215
- package/dist/merkle/index.d.ts +12 -0
- package/dist/merkle/index.js +11 -0
- package/dist/shared/abis/common.d.ts +2 -83
- package/dist/shared/abis/common.js +2 -252
- package/dist/shared/abis/index.d.ts +5 -6
- package/dist/shared/abis/index.js +5 -7
- package/dist/shared/clients/blockrazor.js +39 -25
- package/dist/shared/clients/club48.d.ts +2 -2
- package/dist/shared/clients/club48.js +34 -29
- package/dist/shared/clients/emitservice.js +2 -0
- package/dist/shared/clients/four.d.ts +21 -6
- package/dist/shared/clients/four.js +29 -24
- package/dist/shared/clients/index.d.ts +8 -0
- package/dist/shared/clients/index.js +8 -0
- package/dist/shared/clients/merkle.js +27 -34
- package/dist/shared/constants/addresses.d.ts +1 -1
- package/dist/shared/constants/addresses.js +11 -2
- package/dist/shared/constants/chains.d.ts +1 -1
- package/dist/shared/constants/chains.js +1 -1
- package/dist/shared/constants/gas.d.ts +1 -1
- package/dist/shared/constants/gas.js +2 -6
- package/dist/shared/constants/index.d.ts +3 -0
- package/dist/shared/constants/index.js +1 -0
- package/dist/shared/constants/quote.d.ts +30 -0
- package/dist/shared/constants/quote.js +37 -0
- package/dist/shared/flap/abi.js +1 -1
- package/dist/shared/flap/constants.d.ts +1 -2
- package/dist/shared/flap/constants.js +2 -3
- package/dist/shared/flap/curve.js +3 -0
- package/dist/shared/flap/errors.d.ts +1 -4
- package/dist/shared/flap/errors.js +20 -1
- package/dist/shared/flap/index.d.ts +5 -4
- package/dist/shared/flap/index.js +5 -4
- package/dist/shared/flap/meta.d.ts +22 -18
- package/dist/shared/flap/meta.js +12 -17
- package/dist/shared/flap/permit.js +5 -2
- package/dist/shared/flap/pinata.d.ts +22 -6
- package/dist/shared/flap/pinata.js +21 -26
- package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
- package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
- package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
- package/dist/shared/flap/portal-bundle-merkle/core.js +86 -278
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +7 -2
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +101 -206
- package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
- package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
- package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
- package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
- package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
- package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
- package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
- package/dist/shared/flap/portal-bundle-merkle/types.d.ts +83 -9
- package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
- package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
- package/dist/shared/flap/portal-bundle.js +55 -56
- package/dist/shared/flap/portal-create-token.d.ts +77 -0
- package/dist/shared/flap/portal-create-token.js +214 -0
- package/dist/shared/flap/portal.d.ts +14 -3
- package/dist/shared/flap/portal.js +50 -25
- package/dist/shared/flap/vanity.d.ts +1 -5
- package/dist/shared/flap/vanity.js +6 -17
- package/dist/shared/flap/vault.d.ts +17 -124
- package/dist/shared/flap/vault.js +67 -148
- package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
- package/dist/shared/foundation/dex/v3-path.js +35 -0
- package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
- package/dist/shared/foundation/gas/bundle-gas.js +93 -0
- package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
- package/dist/shared/foundation/gas/profit-hop.js +72 -0
- package/dist/shared/foundation/index.d.ts +13 -0
- package/dist/shared/foundation/index.js +12 -0
- package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
- package/dist/shared/foundation/nonce/nonce-manager.js +183 -0
- package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
- package/dist/shared/foundation/normalize-unknown.js +29 -0
- package/dist/shared/foundation/sdk-logger.d.ts +13 -0
- package/dist/shared/foundation/sdk-logger.js +12 -0
- package/dist/shared/foundation/tx/build-request.d.ts +17 -0
- package/dist/shared/foundation/tx/build-request.js +25 -0
- package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
- package/dist/shared/foundation/tx/sign-batch.js +26 -0
- package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
- package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
- package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
- package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
- package/dist/shared/foundation/types/erc20.d.ts +65 -0
- package/dist/shared/foundation/types/erc20.js +1 -0
- package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
- package/dist/shared/foundation/types/holders-maker.js +1 -0
- package/dist/shared/foundation/types/index.d.ts +7 -0
- package/dist/shared/foundation/types/index.js +1 -0
- package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
- package/dist/shared/foundation/types/lp-inspect.js +1 -0
- package/dist/shared/foundation/types/multicall.d.ts +5 -0
- package/dist/shared/foundation/types/multicall.js +1 -0
- package/dist/shared/foundation/types/private-sale.d.ts +35 -0
- package/dist/shared/foundation/types/private-sale.js +1 -0
- package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
- package/dist/shared/foundation/types/quote-helpers.js +1 -0
- package/dist/shared/four/tax-token.d.ts +1 -1
- package/dist/shared/four/tax-token.js +27 -7
- package/dist/shared/index.d.ts +6 -0
- package/dist/shared/index.js +4 -0
- package/dist/types/errors.d.ts +27 -0
- package/dist/types/errors.js +34 -0
- package/dist/utils/airdrop-sweep.d.ts +4 -76
- package/dist/utils/airdrop-sweep.js +42 -55
- package/dist/utils/bundle-helpers.d.ts +9 -243
- package/dist/utils/bundle-helpers.js +10 -584
- package/dist/utils/constants.d.ts +5 -61
- package/dist/utils/constants.js +5 -80
- package/dist/utils/contract-factory.d.ts +2 -4
- package/dist/utils/contract-factory.js +25 -18
- package/dist/utils/erc20.d.ts +7 -89
- package/dist/utils/erc20.js +94 -125
- package/dist/utils/errors.d.ts +12 -1
- package/dist/utils/errors.js +60 -1
- package/dist/utils/holders-maker/addresses.d.ts +12 -0
- package/dist/utils/holders-maker/addresses.js +15 -0
- package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
- package/dist/utils/holders-maker/buy-tx.js +278 -0
- package/dist/utils/holders-maker/constants.d.ts +6 -0
- package/dist/utils/holders-maker/constants.js +7 -0
- package/dist/utils/holders-maker/disperse.d.ts +18 -0
- package/dist/utils/holders-maker/disperse.js +90 -0
- package/dist/utils/holders-maker/routing.d.ts +4 -0
- package/dist/utils/holders-maker/routing.js +45 -0
- package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
- package/dist/utils/holders-maker/transfer-tx.js +67 -0
- package/dist/utils/holders-maker-helpers.d.ts +9 -0
- package/dist/utils/holders-maker-helpers.js +9 -0
- package/dist/utils/holders-maker.d.ts +2 -138
- package/dist/utils/holders-maker.js +26 -661
- package/dist/utils/hop-chains.d.ts +35 -0
- package/dist/utils/hop-chains.js +215 -0
- package/dist/utils/lp-inspect-helpers.d.ts +9 -0
- package/dist/utils/lp-inspect-helpers.js +109 -0
- package/dist/utils/lp-inspect.d.ts +2 -112
- package/dist/utils/lp-inspect.js +73 -223
- package/dist/utils/mpcExclusive.d.ts +2 -5
- package/dist/utils/mpcExclusive.js +4 -3
- package/dist/utils/private-sale.d.ts +2 -58
- package/dist/utils/private-sale.js +4 -15
- package/dist/utils/provider-factory.d.ts +4 -0
- package/dist/utils/provider-factory.js +10 -0
- package/dist/utils/quote-helpers.d.ts +4 -45
- package/dist/utils/quote-helpers.js +17 -74
- package/dist/utils/stealth-transfer.d.ts +2 -28
- package/dist/utils/stealth-transfer.js +31 -15
- package/dist/utils/swap-helpers.d.ts +2 -15
- package/dist/utils/swap-helpers.js +6 -11
- package/dist/utils/types/airdrop-sweep.d.ts +1 -0
- package/dist/utils/types/airdrop-sweep.js +1 -0
- package/dist/utils/types/contract-factory.d.ts +1 -0
- package/dist/utils/types/contract-factory.js +1 -0
- package/dist/utils/types/erc20.d.ts +1 -0
- package/dist/utils/types/erc20.js +1 -0
- package/dist/utils/types/errors.d.ts +1 -0
- package/dist/utils/types/errors.js +1 -0
- package/dist/utils/types/holders-maker.d.ts +1 -0
- package/dist/utils/types/holders-maker.js +1 -0
- package/dist/utils/types/hop-chains.d.ts +8 -0
- package/dist/utils/types/hop-chains.js +1 -0
- package/dist/utils/types/index.d.ts +13 -0
- package/dist/utils/types/index.js +1 -0
- package/dist/utils/types/lp-inspect.d.ts +1 -0
- package/dist/utils/types/lp-inspect.js +1 -0
- package/dist/utils/types/mpc-exclusive.d.ts +5 -0
- package/dist/utils/types/mpc-exclusive.js +1 -0
- package/dist/utils/types/private-sale.d.ts +1 -0
- package/dist/utils/types/private-sale.js +1 -0
- package/dist/utils/types/quote-helpers.d.ts +1 -0
- package/dist/utils/types/quote-helpers.js +1 -0
- package/dist/utils/types/stealth-transfer.d.ts +44 -0
- package/dist/utils/types/stealth-transfer.js +1 -0
- package/dist/utils/types/wallet.d.ts +25 -0
- package/dist/utils/types/wallet.js +1 -0
- package/dist/utils/wallet.d.ts +2 -25
- package/dist/utils/wallet.js +13 -10
- package/dist/vanity/index.d.ts +5 -0
- package/dist/vanity/index.js +5 -0
- package/package.json +160 -4
- package/src/abis/contracts/TaxToken.json +969 -0
- package/src/abis/contracts/TokenManager.json +836 -0
- package/src/abis/contracts/TokenManager2.json +136 -0
- package/src/abis/contracts/TokenManagerHelper3.json +993 -0
- package/dist/shared/abis/TaxToken.json +0 -105
- package/dist/shared/abis/TokenManager2.json +0 -60
- /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
- /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +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) {
|
|
@@ -56,28 +56,11 @@ async function estimateGasWithMultiplier(provider, txRequest, multiplier) {
|
|
|
56
56
|
function getTxType(config) {
|
|
57
57
|
return config.txType ?? 0; // 默认 Legacy (type 0),适用于 48.club/BSC
|
|
58
58
|
}
|
|
59
|
-
/**
|
|
60
|
-
* 构建完整的交易请求(包含 gas 估算和交易类型)
|
|
61
|
-
*/
|
|
62
|
-
async function buildTxRequest(provider, unsigned, from, nonce, gasPrice, config, value) {
|
|
63
|
-
const gasLimit = await estimateGasWithMultiplier(provider, { ...unsigned, from, value }, config.gasLimitMultiplier);
|
|
64
|
-
return {
|
|
65
|
-
...unsigned,
|
|
66
|
-
from,
|
|
67
|
-
nonce,
|
|
68
|
-
gasLimit,
|
|
69
|
-
gasPrice,
|
|
70
|
-
chainId: 56,
|
|
71
|
-
type: getTxType(config)
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
59
|
/**
|
|
75
60
|
* Flap Protocol: 创建代币 + 捆绑购买
|
|
76
61
|
*/
|
|
77
62
|
export async function createTokenWithBundleBuy(params) {
|
|
78
|
-
const { chain, privateKeys, buyAmounts, tokenInfo,
|
|
79
|
-
// 默认使用 BNB (0地址)
|
|
80
|
-
const quoteTokenAddress = quoteToken || '0x0000000000000000000000000000000000000000';
|
|
63
|
+
const { chain, privateKeys, buyAmounts, tokenInfo, tokenAddress, config } = params;
|
|
81
64
|
if (privateKeys.length === 0) {
|
|
82
65
|
throw new Error(getErrorMessage('NO_PRIVATE_KEY'));
|
|
83
66
|
}
|
|
@@ -88,7 +71,7 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
88
71
|
const devWallet = new Wallet(privateKeys[0], provider);
|
|
89
72
|
const club48 = new Club48Client({
|
|
90
73
|
endpoint: config.club48Endpoint,
|
|
91
|
-
explorerEndpoint: config.club48ExplorerEndpoint
|
|
74
|
+
explorerEndpoint: config.club48ExplorerEndpoint,
|
|
92
75
|
});
|
|
93
76
|
const blockOffset = config.bundleBlockOffset ?? 100;
|
|
94
77
|
// 1. 构建交易(为重复地址分配顺序 nonce)
|
|
@@ -122,7 +105,7 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
122
105
|
quoteToken: params.quoteToken || '0x0000000000000000000000000000000000000000',
|
|
123
106
|
quoteAmt: 0n,
|
|
124
107
|
beneficiary: new Wallet(privateKeys[0]).address,
|
|
125
|
-
permitData: '0x'
|
|
108
|
+
permitData: '0x',
|
|
126
109
|
});
|
|
127
110
|
// 估算 gas 并应用用户配置的安全余量
|
|
128
111
|
const createGasLimit = await estimateGasWithMultiplier(provider, { ...createTxUnsigned, from: devWallet.address }, config.gasLimitMultiplier);
|
|
@@ -133,7 +116,7 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
133
116
|
gasLimit: createGasLimit,
|
|
134
117
|
gasPrice: gasPrice,
|
|
135
118
|
chainId: 56, // BSC
|
|
136
|
-
type: getTxType(config) // 用户可配置:0=Legacy(默认),2=EIP-1559
|
|
119
|
+
type: getTxType(config), // 用户可配置:0=Legacy(默认),2=EIP-1559
|
|
137
120
|
};
|
|
138
121
|
const signedCreateTx = await devWallet.signTransaction(createTxRequest);
|
|
139
122
|
signedTxs.push(signedCreateTx);
|
|
@@ -146,7 +129,7 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
146
129
|
gasLimit: GAS_LIMITS.BRIBE,
|
|
147
130
|
chainId: 56,
|
|
148
131
|
type: 0, // Legacy transaction
|
|
149
|
-
nonce: await getNextNonce(devWallet)
|
|
132
|
+
nonce: await getNextNonce(devWallet),
|
|
150
133
|
});
|
|
151
134
|
signedTxs.push(tipTx);
|
|
152
135
|
}
|
|
@@ -163,7 +146,7 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
163
146
|
const exactOut = await quote.quoteExactInput.staticCall({
|
|
164
147
|
inputToken: '0x0000000000000000000000000000000000000000',
|
|
165
148
|
outputToken: tokenAddress,
|
|
166
|
-
inputAmount: amountIn
|
|
149
|
+
inputAmount: amountIn,
|
|
167
150
|
});
|
|
168
151
|
const keep = BigInt(10000 - slippageBps);
|
|
169
152
|
minAmountOut = (exactOut * keep) / 10000n;
|
|
@@ -193,7 +176,7 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
193
176
|
gasLimit: buyGasLimit,
|
|
194
177
|
gasPrice: gasPrice,
|
|
195
178
|
chainId: 56, // BSC
|
|
196
|
-
type: getTxType(config) // 用户可配置
|
|
179
|
+
type: getTxType(config), // 用户可配置
|
|
197
180
|
};
|
|
198
181
|
const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
|
|
199
182
|
signedTxs.push(signedBuyTx);
|
|
@@ -203,11 +186,11 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
203
186
|
const bundleUuid = await club48.sendBundle({
|
|
204
187
|
txs: signedTxs,
|
|
205
188
|
maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
|
|
206
|
-
noMerge: config.noMerge
|
|
189
|
+
noMerge: config.noMerge,
|
|
207
190
|
}, {
|
|
208
191
|
spMode: params.config.spMode ?? 'timestampPersonalSign',
|
|
209
192
|
spPrivateKey: params.config.spPrivateKey || privateKeys[0],
|
|
210
|
-
spVMode: params.config.spVMode
|
|
193
|
+
spVMode: params.config.spVMode,
|
|
211
194
|
});
|
|
212
195
|
// 3. 等待完成
|
|
213
196
|
const status = await club48.waitForBundle(bundleUuid, params.config.waitTimeoutMs ?? 60000);
|
|
@@ -216,7 +199,7 @@ export async function createTokenWithBundleBuy(params) {
|
|
|
216
199
|
tokenAddress,
|
|
217
200
|
status,
|
|
218
201
|
createTx: signedCreateTx,
|
|
219
|
-
buyTxs
|
|
202
|
+
buyTxs,
|
|
220
203
|
};
|
|
221
204
|
}
|
|
222
205
|
/**
|
|
@@ -230,7 +213,7 @@ export async function batchBuyWithBundle(params) {
|
|
|
230
213
|
const provider = new JsonRpcProvider(config.rpcUrl);
|
|
231
214
|
const club48 = new Club48Client({
|
|
232
215
|
endpoint: config.club48Endpoint,
|
|
233
|
-
explorerEndpoint: config.club48ExplorerEndpoint
|
|
216
|
+
explorerEndpoint: config.club48ExplorerEndpoint,
|
|
234
217
|
});
|
|
235
218
|
const blockOffset = config.bundleBlockOffset ?? 100;
|
|
236
219
|
const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
|
|
@@ -259,7 +242,7 @@ export async function batchBuyWithBundle(params) {
|
|
|
259
242
|
gasLimit: GAS_LIMITS.BRIBE,
|
|
260
243
|
chainId: 56,
|
|
261
244
|
type: 0, // Legacy transaction
|
|
262
|
-
nonce: await getNextNonce(tipWallet)
|
|
245
|
+
nonce: await getNextNonce(tipWallet),
|
|
263
246
|
});
|
|
264
247
|
signedTxs.unshift(tipTx);
|
|
265
248
|
}
|
|
@@ -274,7 +257,7 @@ export async function batchBuyWithBundle(params) {
|
|
|
274
257
|
const exactOut = await quote.quoteExactInput.staticCall({
|
|
275
258
|
inputToken: '0x0000000000000000000000000000000000000000',
|
|
276
259
|
outputToken: tokenAddress,
|
|
277
|
-
inputAmount: amountIn
|
|
260
|
+
inputAmount: amountIn,
|
|
278
261
|
});
|
|
279
262
|
const keep = BigInt(10000 - slippageBps);
|
|
280
263
|
minAmountOut = (exactOut * keep) / 10000n;
|
|
@@ -292,7 +275,7 @@ export async function batchBuyWithBundle(params) {
|
|
|
292
275
|
const estimatedGas = await provider.estimateGas({
|
|
293
276
|
...buyTxUnsigned,
|
|
294
277
|
from: buyerWallet.address,
|
|
295
|
-
value: amountIn
|
|
278
|
+
value: amountIn,
|
|
296
279
|
});
|
|
297
280
|
const gasLimit = (estimatedGas * 120n) / 100n;
|
|
298
281
|
const buyTxRequest = {
|
|
@@ -302,7 +285,7 @@ export async function batchBuyWithBundle(params) {
|
|
|
302
285
|
gasLimit: gasLimit,
|
|
303
286
|
gasPrice: gasPrice,
|
|
304
287
|
chainId: 56, // BSC
|
|
305
|
-
type: 0 // Legacy transaction
|
|
288
|
+
type: 0, // Legacy transaction
|
|
306
289
|
};
|
|
307
290
|
const signedBuyTx = await buyerWallet.signTransaction(buyTxRequest);
|
|
308
291
|
signedTxs.push(signedBuyTx);
|
|
@@ -310,11 +293,11 @@ export async function batchBuyWithBundle(params) {
|
|
|
310
293
|
const bundleUuid = await club48.sendBundle({
|
|
311
294
|
txs: signedTxs,
|
|
312
295
|
maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
|
|
313
|
-
noMerge: config.noMerge
|
|
296
|
+
noMerge: config.noMerge,
|
|
314
297
|
}, {
|
|
315
298
|
spMode: params.config.spMode ?? 'timestampPersonalSign',
|
|
316
299
|
spPrivateKey: params.config.spPrivateKey || privateKeys[0],
|
|
317
|
-
spVMode: params.config.spVMode
|
|
300
|
+
spVMode: params.config.spVMode,
|
|
318
301
|
});
|
|
319
302
|
const status = await club48.waitForBundle(bundleUuid);
|
|
320
303
|
return { bundleUuid, status, buyTxs: signedTxs };
|
|
@@ -330,7 +313,7 @@ export async function batchSellWithBundle(params) {
|
|
|
330
313
|
const provider = new JsonRpcProvider(config.rpcUrl);
|
|
331
314
|
const club48 = new Club48Client({
|
|
332
315
|
endpoint: config.club48Endpoint,
|
|
333
|
-
explorerEndpoint: config.club48ExplorerEndpoint
|
|
316
|
+
explorerEndpoint: config.club48ExplorerEndpoint,
|
|
334
317
|
});
|
|
335
318
|
const blockOffset = config.bundleBlockOffset ?? 100;
|
|
336
319
|
const portalAddr = FLAP_PORTAL_ADDRESSES[chain];
|
|
@@ -359,7 +342,7 @@ export async function batchSellWithBundle(params) {
|
|
|
359
342
|
gasLimit: GAS_LIMITS.BRIBE,
|
|
360
343
|
chainId: 56,
|
|
361
344
|
type: 0, // Legacy transaction
|
|
362
|
-
nonce: await getNextNonce(tipWallet)
|
|
345
|
+
nonce: await getNextNonce(tipWallet),
|
|
363
346
|
});
|
|
364
347
|
signedTxs.unshift(tipTx);
|
|
365
348
|
}
|
|
@@ -378,7 +361,7 @@ export async function batchSellWithBundle(params) {
|
|
|
378
361
|
// 估算 gas 并添加 20% 安全余量
|
|
379
362
|
const estimatedGas = await provider.estimateGas({
|
|
380
363
|
...sellTxUnsigned,
|
|
381
|
-
from: sellerWallet.address
|
|
364
|
+
from: sellerWallet.address,
|
|
382
365
|
});
|
|
383
366
|
const gasLimit = (estimatedGas * 120n) / 100n;
|
|
384
367
|
const sellTxRequest = {
|
|
@@ -388,7 +371,7 @@ export async function batchSellWithBundle(params) {
|
|
|
388
371
|
gasLimit: gasLimit,
|
|
389
372
|
gasPrice: gasPrice,
|
|
390
373
|
chainId: 56, // BSC
|
|
391
|
-
type: 0 // Legacy transaction
|
|
374
|
+
type: 0, // Legacy transaction
|
|
392
375
|
};
|
|
393
376
|
const signedSellTx = await sellerWallet.signTransaction(sellTxRequest);
|
|
394
377
|
signedTxs.push(signedSellTx);
|
|
@@ -396,17 +379,17 @@ export async function batchSellWithBundle(params) {
|
|
|
396
379
|
const bundleUuid = await club48.sendBundle({
|
|
397
380
|
txs: signedTxs,
|
|
398
381
|
maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
|
|
399
|
-
noMerge: config.noMerge
|
|
382
|
+
noMerge: config.noMerge,
|
|
400
383
|
}, {
|
|
401
384
|
spMode: params.config.spMode ?? 'timestampPersonalSign',
|
|
402
385
|
spPrivateKey: params.config.spPrivateKey || privateKeys[0],
|
|
403
|
-
spVMode: params.config.spVMode
|
|
386
|
+
spVMode: params.config.spVMode,
|
|
404
387
|
});
|
|
405
388
|
const status = await club48.waitForBundle(bundleUuid);
|
|
406
389
|
return { bundleUuid, status, sellTxs: signedTxs };
|
|
407
390
|
}
|
|
408
391
|
export async function flapPrivateBuy(params) {
|
|
409
|
-
const { chain, privateKey, tokenAddress, amountIn,
|
|
392
|
+
const { chain, privateKey, tokenAddress, amountIn, config, spPrivateKey } = params;
|
|
410
393
|
const provider = new JsonRpcProvider(config.rpcUrl);
|
|
411
394
|
const wallet = new Wallet(privateKey, provider);
|
|
412
395
|
const club48 = new Club48Client({ endpoint: config.club48Endpoint, explorerEndpoint: config.club48ExplorerEndpoint });
|
|
@@ -426,7 +409,7 @@ export async function flapPrivateBuy(params) {
|
|
|
426
409
|
const estimatedGas = await provider.estimateGas({
|
|
427
410
|
...unsigned,
|
|
428
411
|
from: wallet.address,
|
|
429
|
-
value: amountWei
|
|
412
|
+
value: amountWei,
|
|
430
413
|
});
|
|
431
414
|
const gasLimit = (estimatedGas * 120n) / 100n;
|
|
432
415
|
const req = {
|
|
@@ -436,7 +419,7 @@ export async function flapPrivateBuy(params) {
|
|
|
436
419
|
gasLimit: gasLimit,
|
|
437
420
|
gasPrice,
|
|
438
421
|
chainId: 56,
|
|
439
|
-
type: 0 // Legacy transaction
|
|
422
|
+
type: 0, // Legacy transaction
|
|
440
423
|
};
|
|
441
424
|
const signed = await wallet.signTransaction(req);
|
|
442
425
|
if (spPrivateKey)
|
|
@@ -463,7 +446,7 @@ export async function flapPrivateSell(params) {
|
|
|
463
446
|
// 估算 gas 并添加 20% 安全余量
|
|
464
447
|
const estimatedGas = await provider.estimateGas({
|
|
465
448
|
...unsigned,
|
|
466
|
-
from: wallet.address
|
|
449
|
+
from: wallet.address,
|
|
467
450
|
});
|
|
468
451
|
const gasLimit = (estimatedGas * 120n) / 100n;
|
|
469
452
|
const req = {
|
|
@@ -473,7 +456,7 @@ export async function flapPrivateSell(params) {
|
|
|
473
456
|
gasLimit: gasLimit,
|
|
474
457
|
gasPrice,
|
|
475
458
|
chainId: 56,
|
|
476
|
-
type: 0 // Legacy transaction
|
|
459
|
+
type: 0, // Legacy transaction
|
|
477
460
|
};
|
|
478
461
|
const signed = await wallet.signTransaction(req);
|
|
479
462
|
if (spPrivateKey)
|
|
@@ -516,13 +499,21 @@ export async function flapBatchPrivateBuy(params) {
|
|
|
516
499
|
// 估算 gas 并添加 20% 安全余量
|
|
517
500
|
const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address, value: amountWei });
|
|
518
501
|
const gasLimit = (estimatedGas * 120n) / 100n;
|
|
519
|
-
const req = {
|
|
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
|
+
};
|
|
520
511
|
signedTxs.push(await w.signTransaction(req));
|
|
521
512
|
}
|
|
522
513
|
return await sendBatchPrivateTransactions(signedTxs, spPrivateKey, config.club48Endpoint || 'https://puissant-bsc.48.club');
|
|
523
514
|
}
|
|
524
515
|
export async function flapBatchPrivateSell(params) {
|
|
525
|
-
const { chain, privateKeys, amounts, tokenAddress, config,
|
|
516
|
+
const { chain, privateKeys, amounts, tokenAddress, config, minEthEach } = params;
|
|
526
517
|
if (privateKeys.length !== amounts.length)
|
|
527
518
|
throw new Error('privateKeys and amounts length mismatch');
|
|
528
519
|
const provider = new JsonRpcProvider(config.rpcUrl);
|
|
@@ -558,7 +549,15 @@ export async function flapBatchPrivateSell(params) {
|
|
|
558
549
|
// 估算 gas 并添加 20% 安全余量
|
|
559
550
|
const estimatedGas = await provider.estimateGas({ ...unsigned, from: w.address });
|
|
560
551
|
const gasLimit = (estimatedGas * 120n) / 100n;
|
|
561
|
-
const req = {
|
|
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
|
+
};
|
|
562
561
|
signedTxs.push(await w.signTransaction(req));
|
|
563
562
|
}
|
|
564
563
|
// 使用 bundle 通道提交(统一与捆绑买保持一致)
|
|
@@ -566,12 +565,12 @@ export async function flapBatchPrivateSell(params) {
|
|
|
566
565
|
const bundleUuid = await club48.sendBundle({
|
|
567
566
|
txs: signedTxs,
|
|
568
567
|
maxBlockNumber: (await provider.getBlockNumber()) + blockOffset,
|
|
569
|
-
noMerge: config.noMerge
|
|
568
|
+
noMerge: config.noMerge,
|
|
570
569
|
}, {
|
|
571
570
|
// 若传入 sp 配置,则用于生成 48SP 签名提升打包优先级(与批量买一致)
|
|
572
571
|
spMode: params.config.spMode ?? 'timestampPersonalSign',
|
|
573
572
|
spPrivateKey: params.config.spPrivateKey || 'https://puissant-bsc.48.club',
|
|
574
|
-
spVMode: params.config.spVMode
|
|
573
|
+
spVMode: params.config.spVMode,
|
|
575
574
|
});
|
|
576
575
|
try {
|
|
577
576
|
const status = await club48.waitForBundle(bundleUuid);
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal 发币交易构建(newTokenV6 / newTokenV7 / VaultPortal)
|
|
3
|
+
*
|
|
4
|
+
* 对齐 Flap 官方文档:
|
|
5
|
+
* - newTokenV6:TOKEN_V2_PERMIT / TOKEN_TAXED_V3
|
|
6
|
+
* - newTokenV7:TOKEN_V3_PERMIT(CL 迁移)
|
|
7
|
+
* - VaultPortal.newTaxTokenWithVault:带金库的税币(legacy 参数结构)
|
|
8
|
+
*/
|
|
9
|
+
import { Contract, type Wallet } from 'ethers';
|
|
10
|
+
import { type TaxVaultConfig } from './vault.js';
|
|
11
|
+
/** 分红代币:将 launching token 本身作为分红代币 */
|
|
12
|
+
export declare const MAGIC_DIVIDEND_SELF = "0xfEEDFEEDfeEDFEedFEEdFEEDFeEdfEEdFeEdFEEd";
|
|
13
|
+
export type NormalizedTaxLaunchConfig = {
|
|
14
|
+
taxDuration: number;
|
|
15
|
+
antiFarmerDuration: number;
|
|
16
|
+
mktBps: number;
|
|
17
|
+
deflationBps: number;
|
|
18
|
+
dividendBps: number;
|
|
19
|
+
lpBps: number;
|
|
20
|
+
minimumShareBalance?: number;
|
|
21
|
+
buyTaxRate: number;
|
|
22
|
+
sellTaxRate: number;
|
|
23
|
+
dividendToken?: string;
|
|
24
|
+
commissionReceiver?: string;
|
|
25
|
+
vaultConfig?: TaxVaultConfig;
|
|
26
|
+
};
|
|
27
|
+
export type PopulateCreateTokenParams = {
|
|
28
|
+
chain: string;
|
|
29
|
+
devWallet: Wallet;
|
|
30
|
+
originalPortal: Contract;
|
|
31
|
+
tokenInfo: {
|
|
32
|
+
name: string;
|
|
33
|
+
symbol: string;
|
|
34
|
+
meta: string;
|
|
35
|
+
};
|
|
36
|
+
quoteToken?: string;
|
|
37
|
+
beneficiary: string;
|
|
38
|
+
dexThresh?: number;
|
|
39
|
+
salt?: string;
|
|
40
|
+
migratorType?: number;
|
|
41
|
+
/** legacy 单税率(bps),无 buy/sell 时作为对称税率 */
|
|
42
|
+
taxRate?: number;
|
|
43
|
+
dexId?: number;
|
|
44
|
+
lpFeeProfile?: number;
|
|
45
|
+
extensionID?: string;
|
|
46
|
+
extensionData?: string;
|
|
47
|
+
/** 标准 V3 代币(newTokenV7 + TOKEN_V3_PERMIT) */
|
|
48
|
+
useV3Standard?: boolean;
|
|
49
|
+
/** 高级税币 / 税币 V3 配置 */
|
|
50
|
+
taxConfig?: NormalizedTaxLaunchConfig;
|
|
51
|
+
};
|
|
52
|
+
/** 将 TaxV2Config(含 distribution 嵌套)或 flat 结构归一化 */
|
|
53
|
+
export declare function normalizeTaxLaunchConfig(input?: {
|
|
54
|
+
taxDuration: number;
|
|
55
|
+
antiFarmerDuration: number;
|
|
56
|
+
mktBps?: number;
|
|
57
|
+
deflationBps?: number;
|
|
58
|
+
dividendBps?: number;
|
|
59
|
+
lpBps?: number;
|
|
60
|
+
minimumShareBalance?: number;
|
|
61
|
+
buyTaxRate?: number;
|
|
62
|
+
sellTaxRate?: number;
|
|
63
|
+
dividendToken?: string;
|
|
64
|
+
commissionReceiver?: string;
|
|
65
|
+
vaultConfig?: TaxVaultConfig;
|
|
66
|
+
distribution?: {
|
|
67
|
+
mktBps: number;
|
|
68
|
+
deflationBps: number;
|
|
69
|
+
dividendBps: number;
|
|
70
|
+
lpBps: number;
|
|
71
|
+
minimumShareBalance?: number;
|
|
72
|
+
};
|
|
73
|
+
}, fallbackTaxRate?: number): NormalizedTaxLaunchConfig | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* 构建发币 populateTransaction(优先 V6/V7,Vault 走 VaultPortal)
|
|
76
|
+
*/
|
|
77
|
+
export declare function populateCreateTokenTransaction(params: PopulateCreateTokenParams): Promise<import("ethers").ContractTransaction>;
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal 发币交易构建(newTokenV6 / newTokenV7 / VaultPortal)
|
|
3
|
+
*
|
|
4
|
+
* 对齐 Flap 官方文档:
|
|
5
|
+
* - newTokenV6:TOKEN_V2_PERMIT / TOKEN_TAXED_V3
|
|
6
|
+
* - newTokenV7:TOKEN_V3_PERMIT(CL 迁移)
|
|
7
|
+
* - VaultPortal.newTaxTokenWithVault:带金库的税币(legacy 参数结构)
|
|
8
|
+
*/
|
|
9
|
+
import { Contract, ZeroAddress } from 'ethers';
|
|
10
|
+
import { ZERO_ADDRESS } from '../constants/index.js';
|
|
11
|
+
import { buildVaultParams, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI } from './vault.js';
|
|
12
|
+
import { TokenVersion, MigratorType, FeeType } from './portal.js';
|
|
13
|
+
/** 分红代币:将 launching token 本身作为分红代币 */
|
|
14
|
+
export const MAGIC_DIVIDEND_SELF = '0xfEEDFEEDfeEDFEedFEEdFEEDFeEdfEEdFeEdFEEd';
|
|
15
|
+
function zeroBytes32() {
|
|
16
|
+
return '0x' + '00'.repeat(32);
|
|
17
|
+
}
|
|
18
|
+
function resolveTaxRates(taxConfig, taxRate) {
|
|
19
|
+
const buy = taxConfig?.buyTaxRate ?? taxRate ?? 0;
|
|
20
|
+
const sell = taxConfig?.sellTaxRate ?? taxRate ?? 0;
|
|
21
|
+
return { buyTaxRate: buy & 0xffff, sellTaxRate: sell & 0xffff };
|
|
22
|
+
}
|
|
23
|
+
function validateTaxDistribution(mkt, def, div, lp) {
|
|
24
|
+
const total = mkt + def + div + lp;
|
|
25
|
+
if (total !== 10000) {
|
|
26
|
+
throw new Error(`Tax distribution must sum to 10000 (100%), got ${total}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function buildV6TaxParams(params, taxConfig, dist) {
|
|
30
|
+
const { buyTaxRate, sellTaxRate } = resolveTaxRates(taxConfig, params.taxRate);
|
|
31
|
+
validateTaxDistribution(dist.mktBps, dist.deflationBps, dist.dividendBps, dist.lpBps);
|
|
32
|
+
return {
|
|
33
|
+
name: params.tokenInfo.name,
|
|
34
|
+
symbol: params.tokenInfo.symbol,
|
|
35
|
+
meta: params.tokenInfo.meta,
|
|
36
|
+
dexThresh: (params.dexThresh ?? 1) & 0xff,
|
|
37
|
+
salt: params.salt ?? zeroBytes32(),
|
|
38
|
+
migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
|
|
39
|
+
quoteToken: params.quoteToken || ZERO_ADDRESS,
|
|
40
|
+
quoteAmt: 0n,
|
|
41
|
+
beneficiary: params.beneficiary,
|
|
42
|
+
permitData: '0x',
|
|
43
|
+
extensionID: params.extensionID ?? zeroBytes32(),
|
|
44
|
+
extensionData: params.extensionData ?? '0x',
|
|
45
|
+
dexId: (params.dexId ?? 0) & 0xff,
|
|
46
|
+
lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
|
|
47
|
+
buyTaxRate,
|
|
48
|
+
sellTaxRate,
|
|
49
|
+
taxDuration: BigInt(taxConfig.taxDuration),
|
|
50
|
+
antiFarmerDuration: BigInt(taxConfig.antiFarmerDuration),
|
|
51
|
+
mktBps: dist.mktBps,
|
|
52
|
+
deflationBps: dist.deflationBps,
|
|
53
|
+
dividendBps: dist.dividendBps,
|
|
54
|
+
lpBps: dist.lpBps,
|
|
55
|
+
minimumShareBalance: BigInt(taxConfig.minimumShareBalance ?? 10000) * 10n ** 18n,
|
|
56
|
+
dividendToken: taxConfig.dividendToken || ZeroAddress,
|
|
57
|
+
commissionReceiver: taxConfig.commissionReceiver || ZeroAddress,
|
|
58
|
+
tokenVersion: TokenVersion.TOKEN_TAXED_V3,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** 将 TaxV2Config(含 distribution 嵌套)或 flat 结构归一化 */
|
|
62
|
+
export function normalizeTaxLaunchConfig(input, fallbackTaxRate) {
|
|
63
|
+
if (!input)
|
|
64
|
+
return undefined;
|
|
65
|
+
const dist = 'distribution' in input ? input.distribution : undefined;
|
|
66
|
+
const mktBps = dist?.mktBps ?? input.mktBps ?? 10000;
|
|
67
|
+
const deflationBps = dist?.deflationBps ?? input.deflationBps ?? 0;
|
|
68
|
+
const dividendBps = dist?.dividendBps ?? input.dividendBps ?? 0;
|
|
69
|
+
const lpBps = dist?.lpBps ?? input.lpBps ?? 0;
|
|
70
|
+
const minimumShareBalance = dist?.minimumShareBalance ?? input.minimumShareBalance;
|
|
71
|
+
const buyTaxRate = input.buyTaxRate ?? fallbackTaxRate ?? 0;
|
|
72
|
+
const sellTaxRate = input.sellTaxRate ?? fallbackTaxRate ?? 0;
|
|
73
|
+
if (buyTaxRate <= 0 && sellTaxRate <= 0)
|
|
74
|
+
return undefined;
|
|
75
|
+
return {
|
|
76
|
+
taxDuration: input.taxDuration,
|
|
77
|
+
antiFarmerDuration: input.antiFarmerDuration,
|
|
78
|
+
mktBps,
|
|
79
|
+
deflationBps,
|
|
80
|
+
dividendBps,
|
|
81
|
+
lpBps,
|
|
82
|
+
minimumShareBalance,
|
|
83
|
+
buyTaxRate,
|
|
84
|
+
sellTaxRate,
|
|
85
|
+
dividendToken: input.dividendToken,
|
|
86
|
+
commissionReceiver: input.commissionReceiver,
|
|
87
|
+
vaultConfig: input.vaultConfig,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 构建发币 populateTransaction(优先 V6/V7,Vault 走 VaultPortal)
|
|
92
|
+
*/
|
|
93
|
+
export async function populateCreateTokenTransaction(params) {
|
|
94
|
+
const taxConfig = params.taxConfig;
|
|
95
|
+
const { buyTaxRate, sellTaxRate } = resolveTaxRates(taxConfig, params.taxRate);
|
|
96
|
+
const isTaxLaunch = buyTaxRate > 0 || sellTaxRate > 0;
|
|
97
|
+
// 1) Vault 金库税币
|
|
98
|
+
if (taxConfig?.vaultConfig && taxConfig.vaultConfig.vaultType !== 'none') {
|
|
99
|
+
validateTaxDistribution(taxConfig.mktBps, taxConfig.deflationBps, taxConfig.dividendBps, taxConfig.lpBps);
|
|
100
|
+
const chainKey = params.chain.toUpperCase();
|
|
101
|
+
const vaultPortalAddr = VAULT_PORTAL_ADDRESSES[chainKey];
|
|
102
|
+
if (!vaultPortalAddr) {
|
|
103
|
+
throw new Error(`链 "${params.chain}" 不支持 Tax Vault 金库功能`);
|
|
104
|
+
}
|
|
105
|
+
const vaultPortal = new Contract(vaultPortalAddr, VAULT_PORTAL_ABI, params.devWallet);
|
|
106
|
+
const { vaultFactory, vaultData } = buildVaultParams(taxConfig.vaultConfig, chainKey);
|
|
107
|
+
return vaultPortal.newTaxTokenWithVault.populateTransaction({
|
|
108
|
+
name: params.tokenInfo.name,
|
|
109
|
+
symbol: params.tokenInfo.symbol,
|
|
110
|
+
meta: params.tokenInfo.meta,
|
|
111
|
+
dexThresh: (params.dexThresh ?? 1) & 0xff,
|
|
112
|
+
salt: params.salt ?? zeroBytes32(),
|
|
113
|
+
taxRate: Math.max(buyTaxRate, sellTaxRate) & 0xffff,
|
|
114
|
+
migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
|
|
115
|
+
quoteToken: params.quoteToken || ZERO_ADDRESS,
|
|
116
|
+
quoteAmt: 0n,
|
|
117
|
+
permitData: '0x',
|
|
118
|
+
extensionID: zeroBytes32(),
|
|
119
|
+
extensionData: '0x',
|
|
120
|
+
dexId: (params.dexId ?? 0) & 0xff,
|
|
121
|
+
lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
|
|
122
|
+
taxDuration: BigInt(taxConfig.taxDuration),
|
|
123
|
+
antiFarmerDuration: BigInt(taxConfig.antiFarmerDuration),
|
|
124
|
+
mktBps: taxConfig.mktBps,
|
|
125
|
+
deflationBps: taxConfig.deflationBps,
|
|
126
|
+
dividendBps: taxConfig.dividendBps,
|
|
127
|
+
lpBps: taxConfig.lpBps,
|
|
128
|
+
minimumShareBalance: BigInt(taxConfig.minimumShareBalance ?? 10000) * 10n ** 18n,
|
|
129
|
+
vaultFactory,
|
|
130
|
+
vaultData,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
// 2) 税币 V3(newTokenV6 + TOKEN_TAXED_V3)
|
|
134
|
+
if (isTaxLaunch && taxConfig) {
|
|
135
|
+
return params.originalPortal.newTokenV6.populateTransaction(buildV6TaxParams(params, taxConfig, {
|
|
136
|
+
mktBps: taxConfig.mktBps,
|
|
137
|
+
deflationBps: taxConfig.deflationBps,
|
|
138
|
+
dividendBps: taxConfig.dividendBps,
|
|
139
|
+
lpBps: taxConfig.lpBps,
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
if (isTaxLaunch) {
|
|
143
|
+
return params.originalPortal.newTokenV6.populateTransaction(buildV6TaxParams(params, {
|
|
144
|
+
taxDuration: 365 * 24 * 60 * 60,
|
|
145
|
+
antiFarmerDuration: 3 * 24 * 60 * 60,
|
|
146
|
+
mktBps: 10000,
|
|
147
|
+
deflationBps: 0,
|
|
148
|
+
dividendBps: 0,
|
|
149
|
+
lpBps: 0,
|
|
150
|
+
buyTaxRate,
|
|
151
|
+
sellTaxRate,
|
|
152
|
+
}, { mktBps: 10000, deflationBps: 0, dividendBps: 0, lpBps: 0 }));
|
|
153
|
+
}
|
|
154
|
+
// 3) 标准 V3(newTokenV7 + TOKEN_V3_PERMIT)
|
|
155
|
+
if (params.useV3Standard) {
|
|
156
|
+
const emptyFeeConfig = {
|
|
157
|
+
feeType: FeeType.NONE,
|
|
158
|
+
bps: 0,
|
|
159
|
+
marketingAddress: ZeroAddress,
|
|
160
|
+
dividendToken: ZeroAddress,
|
|
161
|
+
minimumShareBalance: 0n,
|
|
162
|
+
};
|
|
163
|
+
return params.originalPortal.newTokenV7.populateTransaction({
|
|
164
|
+
name: params.tokenInfo.name,
|
|
165
|
+
symbol: params.tokenInfo.symbol,
|
|
166
|
+
meta: params.tokenInfo.meta,
|
|
167
|
+
dexThresh: (params.dexThresh ?? 1) & 0xff,
|
|
168
|
+
salt: params.salt ?? zeroBytes32(),
|
|
169
|
+
migratorType: MigratorType.PCS_INFINITY_CL_MIGRATOR,
|
|
170
|
+
quoteToken: params.quoteToken || ZERO_ADDRESS,
|
|
171
|
+
quoteAmt: 0n,
|
|
172
|
+
permitData: '0x',
|
|
173
|
+
extensionID: params.extensionID ?? zeroBytes32(),
|
|
174
|
+
extensionData: params.extensionData ?? '0x',
|
|
175
|
+
dexId: (params.dexId ?? 0) & 0xff,
|
|
176
|
+
buyTaxRate: 0,
|
|
177
|
+
sellTaxRate: 0,
|
|
178
|
+
taxDuration: 0n,
|
|
179
|
+
antiFarmerDuration: 0n,
|
|
180
|
+
commissionReceiver: ZeroAddress,
|
|
181
|
+
tokenVersion: TokenVersion.TOKEN_V3_PERMIT,
|
|
182
|
+
feeConfigs: [emptyFeeConfig, emptyFeeConfig, emptyFeeConfig, emptyFeeConfig],
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// 4) 标准 V2(newTokenV6 + TOKEN_V2_PERMIT)
|
|
186
|
+
return params.originalPortal.newTokenV6.populateTransaction({
|
|
187
|
+
name: params.tokenInfo.name,
|
|
188
|
+
symbol: params.tokenInfo.symbol,
|
|
189
|
+
meta: params.tokenInfo.meta,
|
|
190
|
+
dexThresh: (params.dexThresh ?? 1) & 0xff,
|
|
191
|
+
salt: params.salt ?? zeroBytes32(),
|
|
192
|
+
migratorType: (params.migratorType ?? MigratorType.V2_MIGRATOR) & 0xff,
|
|
193
|
+
quoteToken: params.quoteToken || ZERO_ADDRESS,
|
|
194
|
+
quoteAmt: 0n,
|
|
195
|
+
beneficiary: params.beneficiary,
|
|
196
|
+
permitData: '0x',
|
|
197
|
+
extensionID: params.extensionID ?? zeroBytes32(),
|
|
198
|
+
extensionData: params.extensionData ?? '0x',
|
|
199
|
+
dexId: (params.dexId ?? 0) & 0xff,
|
|
200
|
+
lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
|
|
201
|
+
buyTaxRate: 0,
|
|
202
|
+
sellTaxRate: 0,
|
|
203
|
+
taxDuration: 0n,
|
|
204
|
+
antiFarmerDuration: 0n,
|
|
205
|
+
mktBps: 0,
|
|
206
|
+
deflationBps: 0,
|
|
207
|
+
dividendBps: 0,
|
|
208
|
+
lpBps: 0,
|
|
209
|
+
minimumShareBalance: 0n,
|
|
210
|
+
dividendToken: ZeroAddress,
|
|
211
|
+
commissionReceiver: ZeroAddress,
|
|
212
|
+
tokenVersion: TokenVersion.TOKEN_V2_PERMIT,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
@@ -12,8 +12,17 @@ export declare enum TokenVersion {
|
|
|
12
12
|
TOKEN_V2_PERMIT = 2,
|
|
13
13
|
TOKEN_GOPLUS = 3,
|
|
14
14
|
TOKEN_TAXED = 4,
|
|
15
|
-
|
|
16
|
-
TOKEN_TAXED_V3 = 6
|
|
15
|
+
TOKEN_TAXED_V2 = 5,
|
|
16
|
+
TOKEN_TAXED_V3 = 6,
|
|
17
|
+
TOKEN_V3_PERMIT = 7
|
|
18
|
+
}
|
|
19
|
+
/** newTokenV7 feeConfigs 槽位类型 */
|
|
20
|
+
export declare enum FeeType {
|
|
21
|
+
NONE = 0,
|
|
22
|
+
MARKETING_OR_VAULT = 1,
|
|
23
|
+
DIVIDEND = 2,
|
|
24
|
+
DEFLATION = 3,
|
|
25
|
+
LP_BPS = 4
|
|
17
26
|
}
|
|
18
27
|
export declare enum DexThreshType {
|
|
19
28
|
TWO_THIRDS = 0,
|
|
@@ -25,7 +34,9 @@ export declare enum DexThreshType {
|
|
|
25
34
|
}
|
|
26
35
|
export declare enum MigratorType {
|
|
27
36
|
V3_MIGRATOR = 0,
|
|
28
|
-
V2_MIGRATOR = 1
|
|
37
|
+
V2_MIGRATOR = 1,
|
|
38
|
+
/** PCS Infinity CL 迁移(newTokenV7 / TOKEN_V3_PERMIT) */
|
|
39
|
+
PCS_INFINITY_CL_MIGRATOR = 3
|
|
29
40
|
}
|
|
30
41
|
/**
|
|
31
42
|
* V3 LP 费率档位
|