four-flap-meme-sdk 2.2.2 → 2.2.4
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 +96 -277
- 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 +107 -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 +88 -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 +80 -0
- package/dist/shared/flap/portal-create-token.js +257 -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
|
@@ -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 费率档位
|
|
@@ -16,9 +16,19 @@ export var TokenVersion;
|
|
|
16
16
|
TokenVersion[TokenVersion["TOKEN_V2_PERMIT"] = 2] = "TOKEN_V2_PERMIT";
|
|
17
17
|
TokenVersion[TokenVersion["TOKEN_GOPLUS"] = 3] = "TOKEN_GOPLUS";
|
|
18
18
|
TokenVersion[TokenVersion["TOKEN_TAXED"] = 4] = "TOKEN_TAXED";
|
|
19
|
-
|
|
19
|
+
TokenVersion[TokenVersion["TOKEN_TAXED_V2"] = 5] = "TOKEN_TAXED_V2";
|
|
20
20
|
TokenVersion[TokenVersion["TOKEN_TAXED_V3"] = 6] = "TOKEN_TAXED_V3";
|
|
21
|
+
TokenVersion[TokenVersion["TOKEN_V3_PERMIT"] = 7] = "TOKEN_V3_PERMIT";
|
|
21
22
|
})(TokenVersion || (TokenVersion = {}));
|
|
23
|
+
/** newTokenV7 feeConfigs 槽位类型 */
|
|
24
|
+
export var FeeType;
|
|
25
|
+
(function (FeeType) {
|
|
26
|
+
FeeType[FeeType["NONE"] = 0] = "NONE";
|
|
27
|
+
FeeType[FeeType["MARKETING_OR_VAULT"] = 1] = "MARKETING_OR_VAULT";
|
|
28
|
+
FeeType[FeeType["DIVIDEND"] = 2] = "DIVIDEND";
|
|
29
|
+
FeeType[FeeType["DEFLATION"] = 3] = "DEFLATION";
|
|
30
|
+
FeeType[FeeType["LP_BPS"] = 4] = "LP_BPS";
|
|
31
|
+
})(FeeType || (FeeType = {}));
|
|
22
32
|
export var DexThreshType;
|
|
23
33
|
(function (DexThreshType) {
|
|
24
34
|
DexThreshType[DexThreshType["TWO_THIRDS"] = 0] = "TWO_THIRDS";
|
|
@@ -32,6 +42,8 @@ export var MigratorType;
|
|
|
32
42
|
(function (MigratorType) {
|
|
33
43
|
MigratorType[MigratorType["V3_MIGRATOR"] = 0] = "V3_MIGRATOR";
|
|
34
44
|
MigratorType[MigratorType["V2_MIGRATOR"] = 1] = "V2_MIGRATOR";
|
|
45
|
+
/** PCS Infinity CL 迁移(newTokenV7 / TOKEN_V3_PERMIT) */
|
|
46
|
+
MigratorType[MigratorType["PCS_INFINITY_CL_MIGRATOR"] = 3] = "PCS_INFINITY_CL_MIGRATOR";
|
|
35
47
|
})(MigratorType || (MigratorType = {}));
|
|
36
48
|
/**
|
|
37
49
|
* V3 LP 费率档位
|
|
@@ -83,8 +95,12 @@ const PORTAL_ABI = [
|
|
|
83
95
|
'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)',
|
|
84
96
|
'function newTokenV3((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData)) external payable returns (address)',
|
|
85
97
|
'function newTokenV4((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile)) external payable returns (address)',
|
|
86
|
-
// newTokenV5: 支持 Tax Token V2 高级税收分配(
|
|
98
|
+
// newTokenV5: 支持 Tax Token V2 高级税收分配(legacy,推荐 newTokenV6)
|
|
87
99
|
'function newTokenV5((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile,uint64 taxDuration,uint64 antiFarmerDuration,uint16 mktBps,uint16 deflationBps,uint16 dividendBps,uint16 lpBps,uint256 minimumShareBalance)) external payable returns (address)',
|
|
100
|
+
// newTokenV6: 统一入口(TOKEN_V2_PERMIT / TOKEN_TAXED_V3)
|
|
101
|
+
'function newTokenV6((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile,uint16 buyTaxRate,uint16 sellTaxRate,uint64 taxDuration,uint64 antiFarmerDuration,uint16 mktBps,uint16 deflationBps,uint16 dividendBps,uint16 lpBps,uint256 minimumShareBalance,address dividendToken,address commissionReceiver,uint8 tokenVersion)) external payable returns (address)',
|
|
102
|
+
// newTokenV7: TOKEN_V3_PERMIT + CL 迁移
|
|
103
|
+
'function newTokenV7((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint8 migratorType,address quoteToken,uint256 quoteAmt,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint16 buyTaxRate,uint16 sellTaxRate,uint64 taxDuration,uint64 antiFarmerDuration,address commissionReceiver,uint8 tokenVersion,(uint8 feeType,uint16 bps,address marketingAddress,address dividendToken,uint256 minimumShareBalance)[4] feeConfigs)) external payable returns (address)',
|
|
88
104
|
// 受益人领取
|
|
89
105
|
'function claim(address token) external returns (uint256,uint256)',
|
|
90
106
|
'function delegateClaim(address token) external returns (uint256,uint256)',
|
|
@@ -92,17 +108,21 @@ const PORTAL_ABI = [
|
|
|
92
108
|
'function getFeeRate() external view returns (uint256,uint256)',
|
|
93
109
|
'function nonce() external view returns (uint256)',
|
|
94
110
|
'function version() external pure returns (string)',
|
|
95
|
-
'function getLocks(address token) external view returns (uint256[])'
|
|
111
|
+
'function getLocks(address token) external view returns (uint256[])',
|
|
96
112
|
];
|
|
97
113
|
/**
|
|
98
114
|
* 将 lpFeeProfile 转换为 V3 fee 值
|
|
99
115
|
*/
|
|
100
116
|
export function lpFeeProfileToV3Fee(profile) {
|
|
101
117
|
switch (profile) {
|
|
102
|
-
case V3LPFeeProfile.LP_FEE_PROFILE_STANDARD:
|
|
103
|
-
|
|
104
|
-
case V3LPFeeProfile.
|
|
105
|
-
|
|
118
|
+
case V3LPFeeProfile.LP_FEE_PROFILE_STANDARD:
|
|
119
|
+
return 2500;
|
|
120
|
+
case V3LPFeeProfile.LP_FEE_PROFILE_LOW:
|
|
121
|
+
return 100;
|
|
122
|
+
case V3LPFeeProfile.LP_FEE_PROFILE_HIGH:
|
|
123
|
+
return 10000;
|
|
124
|
+
default:
|
|
125
|
+
return 2500; // 默认 STANDARD
|
|
106
126
|
}
|
|
107
127
|
}
|
|
108
128
|
/**
|
|
@@ -119,6 +139,11 @@ export function validateTaxDistribution(config) {
|
|
|
119
139
|
return { valid: true };
|
|
120
140
|
}
|
|
121
141
|
export class FlapPortal {
|
|
142
|
+
rpcUrl;
|
|
143
|
+
portal;
|
|
144
|
+
contract;
|
|
145
|
+
buyFeeRate;
|
|
146
|
+
sellFeeRate;
|
|
122
147
|
constructor(cfg) {
|
|
123
148
|
this.rpcUrl = cfg.rpcUrl;
|
|
124
149
|
this.portal = cfg.addressOverride ?? FLAP_PORTAL_ADDRESSES[cfg.chain];
|
|
@@ -133,13 +158,27 @@ export class FlapPortal {
|
|
|
133
158
|
async getTokenV2(token) {
|
|
134
159
|
const r = await this.contract.getTokenV2(token);
|
|
135
160
|
return {
|
|
136
|
-
status: r[0],
|
|
161
|
+
status: r[0],
|
|
162
|
+
reserve: r[1],
|
|
163
|
+
circulatingSupply: r[2],
|
|
164
|
+
price: r[3],
|
|
165
|
+
tokenVersion: r[4],
|
|
166
|
+
r: r[5],
|
|
167
|
+
dexSupplyThresh: r[6],
|
|
137
168
|
};
|
|
138
169
|
}
|
|
139
170
|
async getTokenV3(token) {
|
|
140
171
|
const r = await this.contract.getTokenV3(token);
|
|
141
172
|
return {
|
|
142
|
-
status: r[0],
|
|
173
|
+
status: r[0],
|
|
174
|
+
reserve: r[1],
|
|
175
|
+
circulatingSupply: r[2],
|
|
176
|
+
price: r[3],
|
|
177
|
+
tokenVersion: r[4],
|
|
178
|
+
r: r[5],
|
|
179
|
+
dexSupplyThresh: r[6],
|
|
180
|
+
quoteTokenAddress: r[7],
|
|
181
|
+
nativeToQuoteSwapEnabled: r[8],
|
|
143
182
|
};
|
|
144
183
|
}
|
|
145
184
|
async getTokenV4(token) {
|
|
@@ -211,7 +250,6 @@ export class FlapPortal {
|
|
|
211
250
|
const curve = new CDPV2(r, h, k);
|
|
212
251
|
const currentReserve = formatEther(state.reserve);
|
|
213
252
|
const dexSupplyThresh = formatEther(state.dexSupplyThresh);
|
|
214
|
-
const circulatingSupply = formatEther(state.circulatingSupply);
|
|
215
253
|
// 计算毕业时的储备
|
|
216
254
|
const graduationReserve = curve.estimateReserve(dexSupplyThresh);
|
|
217
255
|
const graduationReserveNum = parseFloat(graduationReserve.toString());
|
|
@@ -223,9 +261,7 @@ export class FlapPortal {
|
|
|
223
261
|
// 含手续费(1% buy fee)
|
|
224
262
|
const remainingWithFee = remainingNet / (1 - this.buyFeeRate);
|
|
225
263
|
// 计算进度
|
|
226
|
-
const progressPercent = isGraduated
|
|
227
|
-
? '100.00'
|
|
228
|
-
: (currentReserveNum / graduationReserveNum * 100).toFixed(2);
|
|
264
|
+
const progressPercent = isGraduated ? '100.00' : ((currentReserveNum / graduationReserveNum) * 100).toFixed(2);
|
|
229
265
|
return {
|
|
230
266
|
remainingOkb: remainingWithFee.toFixed(6),
|
|
231
267
|
graduationReserve: graduationReserveNum.toFixed(6),
|
|
@@ -333,6 +369,7 @@ export class FlapPortal {
|
|
|
333
369
|
}
|
|
334
370
|
}
|
|
335
371
|
export class FlapPortalWriter extends FlapPortal {
|
|
372
|
+
wallet;
|
|
336
373
|
constructor(cfg, privateKey) {
|
|
337
374
|
super(cfg);
|
|
338
375
|
// 使用 ethers v6 创建钱包
|
|
@@ -581,15 +618,3 @@ export class FlapPortalWriter extends FlapPortal {
|
|
|
581
618
|
return this.portal;
|
|
582
619
|
}
|
|
583
620
|
}
|
|
584
|
-
/**
|
|
585
|
-
* 获取 Flap Portal 合约地址(内部使用)
|
|
586
|
-
* 注意:此方法不对外导出,用户应使用 FlapPortal 实例而非直接获取地址
|
|
587
|
-
* @internal
|
|
588
|
-
*/
|
|
589
|
-
function getFlapPortalAddress(chain) {
|
|
590
|
-
const address = FLAP_PORTAL_ADDRESSES[chain];
|
|
591
|
-
if (!address) {
|
|
592
|
-
throw new Error(`Flap Portal not deployed on ${chain}`);
|
|
593
|
-
}
|
|
594
|
-
return address;
|
|
595
|
-
}
|
|
@@ -9,10 +9,8 @@ export declare function predictVanityTokenAddress(salt: string, portal: string,
|
|
|
9
9
|
* 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
|
|
10
10
|
* BSC/MONAD 默认使用 NORMAL 实现(非税版)
|
|
11
11
|
* @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
|
|
12
|
-
* @param taxedV3 - 是否使用 V3 金库税代币实现 (VaultPortal.newTokenV6WithVault)
|
|
13
12
|
*/
|
|
14
|
-
export declare function predictVanityTokenAddressByChain(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', salt: string, taxed?: boolean, taxedV5?: boolean
|
|
15
|
-
taxedV3?: boolean): string;
|
|
13
|
+
export declare function predictVanityTokenAddressByChain(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', salt: string, taxed?: boolean, taxedV5?: boolean): string;
|
|
16
14
|
/**
|
|
17
15
|
* 寻找满足后缀的 salt(默认 8888)
|
|
18
16
|
* 注意:该方法为同步 CPU 搜索,谨慎设置迭代限制
|
|
@@ -35,7 +33,6 @@ export declare function findSaltEnding(opts: {
|
|
|
35
33
|
* BSC/MONAD 默认使用 NORMAL 实现(非税版)
|
|
36
34
|
* XLayer 只有标准版,后缀是 1111
|
|
37
35
|
* @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
|
|
38
|
-
* @param taxedV3 - 是否使用 V3 金库税代币实现 (VaultPortal.newTokenV6WithVault)
|
|
39
36
|
*/
|
|
40
37
|
export declare function findSaltEndingByChain(opts: {
|
|
41
38
|
chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD';
|
|
@@ -44,7 +41,6 @@ export declare function findSaltEndingByChain(opts: {
|
|
|
44
41
|
seed?: string;
|
|
45
42
|
taxed?: boolean;
|
|
46
43
|
taxedV5?: boolean;
|
|
47
|
-
taxedV3?: boolean;
|
|
48
44
|
}): Promise<{
|
|
49
45
|
salt: string;
|
|
50
46
|
address: string;
|
|
@@ -6,9 +6,7 @@ import { FLAP_ORIGINAL_PORTAL_ADDRESSES, FLAP_TOKEN_IMPL_ADDRESSES, getVanitySuf
|
|
|
6
6
|
*/
|
|
7
7
|
export function predictVanityTokenAddress(salt, portal, tokenImpl) {
|
|
8
8
|
// 规范化 salt 到 bytes32(避免前端传入的短字符串导致不可预期行为)
|
|
9
|
-
const normalizedSalt = /^0x[0-9a-fA-F]{64}$/.test(salt)
|
|
10
|
-
? salt.toLowerCase()
|
|
11
|
-
: keccak256(salt);
|
|
9
|
+
const normalizedSalt = /^0x[0-9a-fA-F]{64}$/.test(salt) ? salt.toLowerCase() : keccak256(salt);
|
|
12
10
|
// 构建 EIP-1167 minimal proxy bytecode
|
|
13
11
|
const bytecode = '0x3d602d80600a3d3981f3363d3d373d3d3d363d73' + tokenImpl.slice(2).toLowerCase() + '5af43d82803e903d91602b57fd5bf3';
|
|
14
12
|
const bytecodeHash = keccak256(bytecode);
|
|
@@ -20,18 +18,13 @@ export function predictVanityTokenAddress(salt, portal, tokenImpl) {
|
|
|
20
18
|
* 注意:使用 Flap 平台的原始 Portal 地址进行 CREATE2 计算
|
|
21
19
|
* BSC/MONAD 默认使用 NORMAL 实现(非税版)
|
|
22
20
|
* @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
|
|
23
|
-
* @param taxedV3 - 是否使用 V3 金库税代币实现 (VaultPortal.newTokenV6WithVault)
|
|
24
21
|
*/
|
|
25
|
-
export function predictVanityTokenAddressByChain(chain, salt, taxed = false, taxedV5 = false
|
|
26
|
-
taxedV3 = false) {
|
|
22
|
+
export function predictVanityTokenAddressByChain(chain, salt, taxed = false, taxedV5 = false) {
|
|
27
23
|
// 使用 Flap 平台的原始 Portal 地址(用于 CREATE2)
|
|
28
24
|
const portal = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain];
|
|
29
25
|
let tokenImpl;
|
|
30
26
|
if (chain === 'BSC') {
|
|
31
|
-
if (
|
|
32
|
-
tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V3;
|
|
33
|
-
}
|
|
34
|
-
else if (taxedV5) {
|
|
27
|
+
if (taxedV5) {
|
|
35
28
|
// ✅ V5 高级税代币使用新的实现地址
|
|
36
29
|
tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
|
|
37
30
|
}
|
|
@@ -60,7 +53,7 @@ export async function findSaltEnding(opts) {
|
|
|
60
53
|
// 若未提供 seed,默认使用随机种子,避免每次结果都相同
|
|
61
54
|
let salt = opts.seed ?? keccak256(randomBytes(32));
|
|
62
55
|
let iterations = 0;
|
|
63
|
-
const limit = opts.maxIterations ??
|
|
56
|
+
const limit = opts.maxIterations ?? 1_000_000;
|
|
64
57
|
while (iterations < limit) {
|
|
65
58
|
const addr = predictVanityTokenAddress(salt, opts.portal, opts.tokenImpl);
|
|
66
59
|
if (addr.toLowerCase().endsWith(suffix)) {
|
|
@@ -78,17 +71,13 @@ export async function findSaltEnding(opts) {
|
|
|
78
71
|
* BSC/MONAD 默认使用 NORMAL 实现(非税版)
|
|
79
72
|
* XLayer 只有标准版,后缀是 1111
|
|
80
73
|
* @param taxedV5 - 是否使用 V5 高级税代币实现 (mkt/deflation/dividend/lp)
|
|
81
|
-
* @param taxedV3 - 是否使用 V3 金库税代币实现 (VaultPortal.newTokenV6WithVault)
|
|
82
74
|
*/
|
|
83
75
|
export async function findSaltEndingByChain(opts) {
|
|
84
76
|
// 使用 Flap 平台的原始 Portal 地址(用于 CREATE2)
|
|
85
77
|
const portal = FLAP_ORIGINAL_PORTAL_ADDRESSES[opts.chain];
|
|
86
78
|
let tokenImpl;
|
|
87
79
|
if (opts.chain === 'BSC') {
|
|
88
|
-
if (opts.
|
|
89
|
-
tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V3;
|
|
90
|
-
}
|
|
91
|
-
else if (opts.taxedV5) {
|
|
80
|
+
if (opts.taxedV5) {
|
|
92
81
|
// ✅ V5 高级税代币使用新的实现地址
|
|
93
82
|
tokenImpl = FLAP_TOKEN_IMPL_ADDRESSES.BSC_TAXED_V5;
|
|
94
83
|
}
|
|
@@ -113,6 +102,6 @@ export async function findSaltEndingByChain(opts) {
|
|
|
113
102
|
tokenImpl,
|
|
114
103
|
suffix,
|
|
115
104
|
maxIterations: opts.maxIterations,
|
|
116
|
-
seed: opts.seed
|
|
105
|
+
seed: opts.seed,
|
|
117
106
|
});
|
|
118
107
|
}
|
|
@@ -4,19 +4,16 @@
|
|
|
4
4
|
* ⚠️ 重要:基于 flap.sh/launch 实际源码分析,金库模式架构如下:
|
|
5
5
|
*
|
|
6
6
|
* 1. 金库代币通过 VaultPortal 合约创建(不是普通 Portal)
|
|
7
|
-
* 2. 调用函数:VaultPortal.
|
|
7
|
+
* 2. 调用函数:VaultPortal.newTaxTokenWithVault(params)
|
|
8
8
|
* 3. 参数中 extensionID/extensionData 始终为零值
|
|
9
9
|
* 4. 真正的金库配置通过 vaultFactory(工厂地址)和 vaultData(ABI 编码数据)传递
|
|
10
10
|
* 5. 每种金库类型对应一个具体的 VaultFactory 合约地址
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* VaultPortal.newTokenV6WithVault 参数结构:
|
|
15
|
-
* - 基础参数(与 Portal.newTokenV6 相同,无 beneficiary):name, symbol, meta, dexThresh, salt,
|
|
12
|
+
* VaultPortal.newTaxTokenWithVault 参数结构:
|
|
13
|
+
* - 基础参数(与 Portal.newTokenV5 相同):name, symbol, meta, dexThresh, salt, taxRate,
|
|
16
14
|
* migratorType, quoteToken, quoteAmt, permitData, extensionID(全零), extensionData("0x"),
|
|
17
|
-
* dexId, lpFeeProfile,
|
|
18
|
-
*
|
|
19
|
-
* commissionReceiver, tokenVersion(=TOKEN_TAXED_V3)
|
|
15
|
+
* dexId, lpFeeProfile, taxDuration, antiFarmerDuration, mktBps, deflationBps, dividendBps,
|
|
16
|
+
* lpBps, minimumShareBalance
|
|
20
17
|
* - 金库专属参数:vaultFactory(address), vaultData(bytes)
|
|
21
18
|
*
|
|
22
19
|
* 金库分类(来自 flap.sh 源码):
|
|
@@ -31,7 +28,6 @@
|
|
|
31
28
|
* @module vault
|
|
32
29
|
*/
|
|
33
30
|
import { type JsonRpcProvider } from 'ethers';
|
|
34
|
-
import { TokenVersion } from './portal.js';
|
|
35
31
|
/**
|
|
36
32
|
* FieldDescriptor — 字段描述符
|
|
37
33
|
* 对应 Solidity 结构体 IVaultSchemasV1.FieldDescriptor
|
|
@@ -121,21 +117,19 @@ export declare const VAULT_EXTRA_CONFIG: Record<string, Record<string, Record<st
|
|
|
121
117
|
export declare const FLAP_GUARDIAN_ADDRESSES: {
|
|
122
118
|
readonly BSC: "0x9e27098dcD8844bcc6287a557E0b4D09C86B8a4b";
|
|
123
119
|
};
|
|
124
|
-
/** VaultPortal 金库发射必须使用 TOKEN_TAXED_V3(enum = 6) */
|
|
125
|
-
export declare const TOKEN_TAXED_V3_VERSION = TokenVersion.TOKEN_TAXED_V3;
|
|
126
120
|
/**
|
|
127
|
-
* VaultPortal ABI —
|
|
121
|
+
* VaultPortal ABI — newTaxTokenWithVault
|
|
128
122
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
123
|
+
* ⚠️ 从 flap.sh 前端 JS 源码提取的真实 ABI
|
|
124
|
+
* 来源:flap.sh/_next/static/chunks/6288-*.js(VaultPortal 合约 ABI)
|
|
131
125
|
*/
|
|
132
126
|
export declare const VAULT_PORTAL_ABI: readonly [{
|
|
133
127
|
readonly type: "function";
|
|
134
|
-
readonly name: "
|
|
128
|
+
readonly name: "newTaxTokenWithVault";
|
|
135
129
|
readonly inputs: readonly [{
|
|
136
130
|
readonly name: "params";
|
|
137
131
|
readonly type: "tuple";
|
|
138
|
-
readonly internalType: "struct IVaultPortalTypes.
|
|
132
|
+
readonly internalType: "struct IVaultPortalTypes.NewTaxTokenWithVaultParams";
|
|
139
133
|
readonly components: readonly [{
|
|
140
134
|
readonly name: "name";
|
|
141
135
|
readonly type: "string";
|
|
@@ -151,11 +145,15 @@ export declare const VAULT_PORTAL_ABI: readonly [{
|
|
|
151
145
|
}, {
|
|
152
146
|
readonly name: "dexThresh";
|
|
153
147
|
readonly type: "uint8";
|
|
154
|
-
readonly internalType: "enum
|
|
148
|
+
readonly internalType: "enum IPortalCommonTypes.DexThreshType";
|
|
155
149
|
}, {
|
|
156
150
|
readonly name: "salt";
|
|
157
151
|
readonly type: "bytes32";
|
|
158
152
|
readonly internalType: "bytes32";
|
|
153
|
+
}, {
|
|
154
|
+
readonly name: "taxRate";
|
|
155
|
+
readonly type: "uint16";
|
|
156
|
+
readonly internalType: "uint16";
|
|
159
157
|
}, {
|
|
160
158
|
readonly name: "migratorType";
|
|
161
159
|
readonly type: "uint8";
|
|
@@ -188,14 +186,6 @@ export declare const VAULT_PORTAL_ABI: readonly [{
|
|
|
188
186
|
readonly name: "lpFeeProfile";
|
|
189
187
|
readonly type: "uint8";
|
|
190
188
|
readonly internalType: "enum IPortalTypes.V3LPFeeProfile";
|
|
191
|
-
}, {
|
|
192
|
-
readonly name: "buyTaxRate";
|
|
193
|
-
readonly type: "uint16";
|
|
194
|
-
readonly internalType: "uint16";
|
|
195
|
-
}, {
|
|
196
|
-
readonly name: "sellTaxRate";
|
|
197
|
-
readonly type: "uint16";
|
|
198
|
-
readonly internalType: "uint16";
|
|
199
189
|
}, {
|
|
200
190
|
readonly name: "taxDuration";
|
|
201
191
|
readonly type: "uint64";
|
|
@@ -224,18 +214,6 @@ export declare const VAULT_PORTAL_ABI: readonly [{
|
|
|
224
214
|
readonly name: "minimumShareBalance";
|
|
225
215
|
readonly type: "uint256";
|
|
226
216
|
readonly internalType: "uint256";
|
|
227
|
-
}, {
|
|
228
|
-
readonly name: "dividendToken";
|
|
229
|
-
readonly type: "address";
|
|
230
|
-
readonly internalType: "address";
|
|
231
|
-
}, {
|
|
232
|
-
readonly name: "commissionReceiver";
|
|
233
|
-
readonly type: "address";
|
|
234
|
-
readonly internalType: "address";
|
|
235
|
-
}, {
|
|
236
|
-
readonly name: "tokenVersion";
|
|
237
|
-
readonly type: "uint8";
|
|
238
|
-
readonly internalType: "enum IPortalTypes.TokenVersion";
|
|
239
217
|
}, {
|
|
240
218
|
readonly name: "vaultFactory";
|
|
241
219
|
readonly type: "address";
|
|
@@ -365,7 +343,7 @@ export declare function getVaultFactoryAddress(chain: string, vaultType: VaultTy
|
|
|
365
343
|
*/
|
|
366
344
|
export declare function getVaultPortalAddress(chain: string): string | null;
|
|
367
345
|
/**
|
|
368
|
-
* 构建金库参数(用于 VaultPortal.
|
|
346
|
+
* 构建金库参数(用于 VaultPortal.newTaxTokenWithVault)
|
|
369
347
|
*
|
|
370
348
|
* ⚠️ 重要:返回的是 vaultFactory 和 vaultData,不是 extensionID/extensionData
|
|
371
349
|
* extensionID/extensionData 在金库模式下始终为零值
|
|
@@ -376,91 +354,6 @@ export declare function buildVaultParams(config?: TaxVaultConfig, chain?: string
|
|
|
376
354
|
vaultFactory: string;
|
|
377
355
|
vaultData: string;
|
|
378
356
|
};
|
|
379
|
-
/** 税收分配字段(支持嵌套 distribution 或扁平结构) */
|
|
380
|
-
export type TaxV2DistributionFields = {
|
|
381
|
-
taxDuration: number;
|
|
382
|
-
antiFarmerDuration: number;
|
|
383
|
-
mktBps: number;
|
|
384
|
-
deflationBps: number;
|
|
385
|
-
dividendBps: number;
|
|
386
|
-
lpBps: number;
|
|
387
|
-
minimumShareBalance?: number;
|
|
388
|
-
vaultConfig?: TaxVaultConfig;
|
|
389
|
-
};
|
|
390
|
-
/** 构建 newTokenV6WithVault 的通用输入 */
|
|
391
|
-
export type BuildNewTokenV6WithVaultParamsInput = {
|
|
392
|
-
tokenInfo: {
|
|
393
|
-
name: string;
|
|
394
|
-
symbol: string;
|
|
395
|
-
meta: string;
|
|
396
|
-
};
|
|
397
|
-
taxV2: TaxV2DistributionFields | {
|
|
398
|
-
taxDuration: number;
|
|
399
|
-
antiFarmerDuration: number;
|
|
400
|
-
distribution: {
|
|
401
|
-
mktBps: number;
|
|
402
|
-
deflationBps: number;
|
|
403
|
-
dividendBps: number;
|
|
404
|
-
lpBps: number;
|
|
405
|
-
minimumShareBalance?: number;
|
|
406
|
-
};
|
|
407
|
-
vaultConfig?: TaxVaultConfig;
|
|
408
|
-
};
|
|
409
|
-
chain: string;
|
|
410
|
-
salt: string;
|
|
411
|
-
taxRate: number;
|
|
412
|
-
buyTaxRate?: number;
|
|
413
|
-
sellTaxRate?: number;
|
|
414
|
-
dexThresh?: number;
|
|
415
|
-
migratorType?: number;
|
|
416
|
-
quoteToken?: string;
|
|
417
|
-
quoteAmt?: bigint;
|
|
418
|
-
dexId?: number;
|
|
419
|
-
lpFeeProfile?: number;
|
|
420
|
-
};
|
|
421
|
-
/**
|
|
422
|
-
* 构建 VaultPortal.newTokenV6WithVault 参数
|
|
423
|
-
*
|
|
424
|
-
* ⚠️ tokenVersion 固定为 TOKEN_TAXED_V3;buyTaxRate/sellTaxRate 必须 > 0
|
|
425
|
-
*/
|
|
426
|
-
export declare function buildNewTokenV6WithVaultParams(input: BuildNewTokenV6WithVaultParamsInput): {
|
|
427
|
-
name: string;
|
|
428
|
-
symbol: string;
|
|
429
|
-
meta: string;
|
|
430
|
-
dexThresh: number;
|
|
431
|
-
salt: string;
|
|
432
|
-
migratorType: number;
|
|
433
|
-
quoteToken: string;
|
|
434
|
-
quoteAmt: bigint;
|
|
435
|
-
permitData: string;
|
|
436
|
-
extensionID: string;
|
|
437
|
-
extensionData: string;
|
|
438
|
-
dexId: number;
|
|
439
|
-
lpFeeProfile: number;
|
|
440
|
-
buyTaxRate: number;
|
|
441
|
-
sellTaxRate: number;
|
|
442
|
-
taxDuration: bigint;
|
|
443
|
-
antiFarmerDuration: bigint;
|
|
444
|
-
mktBps: number;
|
|
445
|
-
deflationBps: number;
|
|
446
|
-
dividendBps: number;
|
|
447
|
-
lpBps: number;
|
|
448
|
-
minimumShareBalance: bigint;
|
|
449
|
-
dividendToken: string;
|
|
450
|
-
commissionReceiver: string;
|
|
451
|
-
tokenVersion: TokenVersion;
|
|
452
|
-
vaultFactory: string;
|
|
453
|
-
vaultData: string;
|
|
454
|
-
};
|
|
455
|
-
/**
|
|
456
|
-
* 金库发射 Vanity 地址搜索参数
|
|
457
|
-
* TOKEN_TAXED_V3 使用 tokenImplTaxedV3 + 后缀 7777
|
|
458
|
-
*/
|
|
459
|
-
export declare function getVaultLaunchVanityOptions(chain: string): {
|
|
460
|
-
readonly taxed: true;
|
|
461
|
-
readonly taxedV3: true;
|
|
462
|
-
readonly suffix: string;
|
|
463
|
-
};
|
|
464
357
|
/**
|
|
465
358
|
* 旧版兼容:将 TaxVaultConfig 转换为 extensionID 和 extensionData
|
|
466
359
|
*
|
|
@@ -468,7 +361,7 @@ export declare function getVaultLaunchVanityOptions(chain: string): {
|
|
|
468
361
|
* 金库参数通过 VaultPortal 的 vaultFactory/vaultData 传递
|
|
469
362
|
* 此函数仅用于向后兼容
|
|
470
363
|
*/
|
|
471
|
-
export declare function buildVaultExtensionParams(
|
|
364
|
+
export declare function buildVaultExtensionParams(): {
|
|
472
365
|
extensionID: string;
|
|
473
366
|
extensionData: string;
|
|
474
367
|
};
|