four-flap-meme-sdk 2.2.0 → 2.2.2
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 +6 -41
- package/README.md +0 -31
- package/README.zh-CN.md +6 -41
- package/dist/chains/bsc/four/approve-tokenmanager.d.ts +26 -1
- package/dist/chains/bsc/four/approve-tokenmanager.js +113 -1
- package/dist/chains/bsc/four/config.d.ts +67 -5
- package/dist/chains/bsc/four/config.js +114 -2
- package/dist/chains/bsc/four/core.d.ts +4 -1
- package/dist/chains/bsc/four/core.js +592 -1
- 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 +46 -2
- package/dist/chains/bsc/four/internal.js +239 -2
- package/dist/chains/bsc/four/pancake-proxy.d.ts +28 -1
- package/dist/chains/bsc/four/pancake-proxy.js +687 -1
- package/dist/chains/bsc/four/private.d.ts +27 -1
- package/dist/chains/bsc/four/private.js +477 -1
- package/dist/chains/bsc/four/submit.d.ts +315 -2
- package/dist/chains/bsc/four/submit.js +752 -2
- package/dist/chains/bsc/four/swap-buy-first.d.ts +55 -2
- package/dist/chains/bsc/four/swap-buy-first.js +507 -2
- package/dist/chains/bsc/four/swap-internal.d.ts +3 -1
- package/dist/chains/bsc/four/swap-internal.js +18 -1
- package/dist/chains/bsc/four/swap.d.ts +144 -2
- package/dist/chains/bsc/four/swap.js +766 -2
- package/dist/chains/bsc/four/types.d.ts +476 -1
- package/dist/chains/bsc/four/utils.d.ts +18 -5
- package/dist/chains/bsc/four/utils.js +1552 -5
- package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +91 -1
- package/dist/chains/bsc/pancake/bundle-buy-first.js +212 -97
- package/dist/chains/bsc/pancake/bundle-swap.d.ts +79 -1
- package/dist/chains/bsc/pancake/bundle-swap.js +726 -114
- package/dist/chains/bsc/pancake/index.d.ts +2 -4
- package/dist/chains/bsc/pancake/index.js +3 -1
- package/dist/chains/bsc/platforms/iro/factory.js +1 -3
- 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 +10 -31
- package/dist/chains/bsc/platforms/iro/token.js +1 -4
- package/dist/chains/eni/batch-router/bundle-approve.js +3 -4
- package/dist/chains/eni/batch-router/transfer.js +25 -55
- package/dist/chains/eni/batch-router/utils.js +6 -32
- package/dist/chains/eni/bundler/sign.js +4 -4
- package/dist/chains/eni/bundler/submit.js +4 -1
- package/dist/chains/eni/constants.js +1 -1
- package/dist/chains/eni/index.d.ts +1 -2
- package/dist/chains/eni/index.js +0 -1
- 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 +4 -8
- package/dist/chains/eni/platforms/daoaas/portal-direct.js +44 -28
- package/dist/chains/eni/platforms/daoaas/portal.js +6 -10
- package/dist/chains/eni/platforms/dswap/liquidity.js +26 -58
- 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 +46 -87
- package/dist/chains/eni/platforms/fair-launch/pool.js +1 -4
- package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
- package/dist/chains/eni/platforms/iro/factory.js +1 -3
- 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 +26 -90
- package/dist/chains/eni/platforms/iro/token.js +31 -107
- package/dist/chains/eni/platforms/iro/whitelist.js +18 -6
- package/dist/chains/index.d.ts +0 -13
- package/dist/chains/index.js +0 -13
- package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +26 -2
- package/dist/chains/xlayer/eip7702/bundle-approve.js +21 -11
- package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +6 -2
- package/dist/chains/xlayer/eip7702/bundle-buy.js +51 -13
- package/dist/chains/xlayer/eip7702/bundle-create.js +59 -93
- package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +6 -2
- package/dist/chains/xlayer/eip7702/bundle-sell.js +97 -26
- package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +65 -3
- package/dist/chains/xlayer/eip7702/bundle-swap.js +245 -51
- package/dist/chains/xlayer/eip7702/constants.d.ts +16 -1
- package/dist/chains/xlayer/eip7702/constants.js +21 -3
- package/dist/chains/xlayer/eip7702/index.d.ts +46 -28
- package/dist/chains/xlayer/eip7702/index.js +81 -28
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +203 -2
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +301 -58
- package/dist/chains/xlayer/eip7702/types.d.ts +0 -88
- package/dist/chains/xlayer/eip7702/utils.d.ts +3 -0
- package/dist/chains/xlayer/eip7702/utils.js +28 -23
- package/dist/chains/xlayer/eip7702/volume.d.ts +184 -6
- package/dist/chains/xlayer/eip7702/volume.js +158 -83
- 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.d.ts +95 -1
- package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +299 -66
- package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
- package/dist/chains/xlayer/eoa/eoa-wash-volume.js +23 -18
- package/dist/chains/xlayer/eoa/index.d.ts +6 -10
- package/dist/chains/xlayer/eoa/index.js +23 -8
- package/dist/chains/xlayer/eoa/portal-ops.js +2 -7
- 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 +3 -1
- package/dist/chains/xlayer/index.d.ts +2 -3
- package/dist/chains/xlayer/index.js +7 -4
- package/dist/contracts/helper3.d.ts +5 -20
- package/dist/contracts/helper3.js +20 -56
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +26 -1
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +113 -1
- package/dist/contracts/tm-bundle-merkle/config.d.ts +67 -5
- package/dist/contracts/tm-bundle-merkle/config.js +114 -2
- package/dist/contracts/tm-bundle-merkle/core.d.ts +4 -1
- package/dist/contracts/tm-bundle-merkle/core.js +591 -1
- 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 +46 -2
- package/dist/contracts/tm-bundle-merkle/internal.js +238 -2
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +28 -1
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +686 -1
- package/dist/contracts/tm-bundle-merkle/private.d.ts +27 -1
- package/dist/contracts/tm-bundle-merkle/private.js +476 -1
- package/dist/contracts/tm-bundle-merkle/submit.d.ts +314 -3
- package/dist/contracts/tm-bundle-merkle/submit.js +928 -3
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +55 -2
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +506 -2
- package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +3 -1
- package/dist/contracts/tm-bundle-merkle/swap-internal.js +18 -1
- package/dist/contracts/tm-bundle-merkle/swap.d.ts +144 -2
- package/dist/contracts/tm-bundle-merkle/swap.js +764 -2
- package/dist/contracts/tm-bundle-merkle/types.d.ts +476 -1
- package/dist/contracts/tm-bundle-merkle/utils.d.ts +18 -6
- package/dist/contracts/tm-bundle-merkle/utils.js +1501 -6
- package/dist/contracts/tm-bundle.d.ts +51 -3
- package/dist/contracts/tm-bundle.js +177 -108
- package/dist/contracts/tm.d.ts +2 -3
- package/dist/contracts/tm.js +32 -37
- package/dist/contracts/tm1.js +4 -9
- package/dist/contracts/tm2.js +4 -9
- package/dist/dex/direct-router.d.ts +125 -3
- package/dist/dex/direct-router.js +666 -237
- package/dist/flows/create.d.ts +1 -2
- package/dist/flows/create.js +6 -6
- package/dist/index.d.ts +85 -20
- package/dist/index.js +215 -20
- package/dist/shared/abis/TaxToken.json +105 -0
- package/dist/shared/abis/TokenManager2.json +60 -0
- package/dist/shared/abis/common.d.ts +83 -2
- package/dist/shared/abis/common.js +252 -2
- package/dist/shared/abis/index.d.ts +6 -5
- package/dist/shared/abis/index.js +7 -5
- package/dist/shared/clients/blockrazor.js +25 -39
- package/dist/shared/clients/club48.d.ts +2 -2
- package/dist/shared/clients/club48.js +29 -34
- package/dist/shared/clients/emitservice.js +0 -2
- package/dist/shared/clients/four.d.ts +5 -5
- package/dist/shared/clients/four.js +17 -21
- package/dist/shared/clients/merkle.js +34 -27
- package/dist/shared/constants/addresses.d.ts +1 -1
- package/dist/shared/constants/addresses.js +2 -11
- 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 +6 -2
- package/dist/shared/constants/index.d.ts +0 -3
- package/dist/shared/constants/index.js +0 -1
- package/dist/shared/flap/abi.js +1 -1
- package/dist/shared/flap/constants.d.ts +2 -1
- package/dist/shared/flap/constants.js +3 -2
- package/dist/shared/flap/curve.js +0 -3
- package/dist/shared/flap/errors.d.ts +4 -1
- package/dist/shared/flap/errors.js +1 -20
- package/dist/shared/flap/index.d.ts +3 -3
- package/dist/shared/flap/index.js +3 -3
- package/dist/shared/flap/meta.d.ts +18 -16
- package/dist/shared/flap/meta.js +17 -12
- package/dist/shared/flap/permit.js +2 -5
- package/dist/shared/flap/pinata.d.ts +4 -11
- package/dist/shared/flap/pinata.js +16 -21
- package/dist/shared/flap/portal-bundle-merkle/config.d.ts +72 -3
- package/dist/shared/flap/portal-bundle-merkle/config.js +124 -4
- package/dist/shared/flap/portal-bundle-merkle/core.d.ts +4 -0
- package/dist/shared/flap/portal-bundle-merkle/core.js +172 -92
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +99 -106
- package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +92 -100
- package/dist/shared/flap/portal-bundle-merkle/index.d.ts +7 -11
- package/dist/shared/flap/portal-bundle-merkle/index.js +7 -4
- package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +68 -71
- package/dist/shared/flap/portal-bundle-merkle/private.js +114 -61
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +64 -1
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +247 -66
- package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +71 -2
- package/dist/shared/flap/portal-bundle-merkle/swap.js +410 -103
- package/dist/shared/flap/portal-bundle-merkle/types.d.ts +7 -73
- package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +80 -1
- package/dist/shared/flap/portal-bundle-merkle/utils.js +265 -145
- package/dist/shared/flap/portal-bundle.js +56 -55
- package/dist/shared/flap/portal.d.ts +3 -1
- package/dist/shared/flap/portal.js +25 -32
- package/dist/shared/flap/vanity.d.ts +5 -1
- package/dist/shared/flap/vanity.js +17 -6
- package/dist/shared/flap/vault.d.ts +124 -17
- package/dist/shared/flap/vault.js +148 -67
- package/dist/shared/four/tax-token.d.ts +1 -1
- package/dist/shared/four/tax-token.js +7 -27
- package/dist/shared/index.d.ts +0 -6
- package/dist/shared/index.js +0 -4
- package/dist/utils/airdrop-sweep.d.ts +76 -4
- package/dist/utils/airdrop-sweep.js +54 -40
- package/dist/utils/bundle-helpers.d.ts +243 -9
- package/dist/utils/bundle-helpers.js +584 -10
- package/dist/utils/constants.d.ts +61 -5
- package/dist/utils/constants.js +80 -5
- package/dist/utils/contract-factory.d.ts +4 -2
- package/dist/utils/contract-factory.js +18 -25
- package/dist/utils/erc20.d.ts +89 -7
- package/dist/utils/erc20.js +125 -94
- package/dist/utils/errors.d.ts +1 -12
- package/dist/utils/errors.js +1 -60
- package/dist/utils/holders-maker.d.ts +138 -2
- package/dist/utils/holders-maker.js +661 -26
- package/dist/utils/lp-inspect.d.ts +112 -2
- package/dist/utils/lp-inspect.js +223 -73
- package/dist/utils/mpcExclusive.d.ts +5 -2
- package/dist/utils/mpcExclusive.js +3 -4
- package/dist/utils/private-sale.d.ts +58 -2
- package/dist/utils/private-sale.js +15 -4
- package/dist/utils/provider-factory.d.ts +0 -4
- package/dist/utils/provider-factory.js +0 -10
- package/dist/utils/quote-helpers.d.ts +45 -4
- package/dist/utils/quote-helpers.js +74 -17
- package/dist/utils/stealth-transfer.d.ts +28 -2
- package/dist/utils/stealth-transfer.js +15 -31
- package/dist/utils/swap-helpers.d.ts +15 -2
- package/dist/utils/swap-helpers.js +10 -5
- package/dist/utils/wallet.d.ts +25 -2
- package/dist/utils/wallet.js +8 -9
- package/package.json +4 -159
- package/dist/__tests__/subpath-exports.test.d.ts +0 -1
- package/dist/__tests__/subpath-exports.test.js +0 -64
- package/dist/abis/common.d.ts +0 -85
- package/dist/abis/common.js +0 -260
- package/dist/abis/contracts/TaxToken.json +0 -969
- package/dist/abis/contracts/TokenManager2.json +0 -136
- package/dist/abis/contracts/index.d.ts +0 -5
- package/dist/abis/contracts/index.js +0 -5
- package/dist/abis/flap/index.d.ts +0 -3
- package/dist/abis/flap/index.js +0 -3
- package/dist/abis/flap/portal-events.d.ts +0 -6
- package/dist/abis/flap/portal-events.js +0 -17
- package/dist/abis/flap/portal.d.ts +0 -6
- package/dist/abis/flap/portal.js +0 -37
- package/dist/abis/flap/vault.d.ts +0 -171
- package/dist/abis/flap/vault.js +0 -91
- package/dist/abis/index.d.ts +0 -8
- package/dist/abis/index.js +0 -11
- package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
- package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
- package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
- package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
- package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
- package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
- package/dist/bundle-core/config-helpers.d.ts +0 -36
- package/dist/bundle-core/config-helpers.js +0 -57
- package/dist/bundle-core/errors.d.ts +0 -50
- package/dist/bundle-core/errors.js +0 -34
- package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
- package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
- package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
- package/dist/bundle-core/four-meme/core-helpers.js +0 -40
- package/dist/bundle-core/four-meme/core.d.ts +0 -4
- package/dist/bundle-core/four-meme/core.js +0 -515
- package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
- package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
- package/dist/bundle-core/four-meme/private.d.ts +0 -27
- package/dist/bundle-core/four-meme/private.js +0 -465
- package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
- package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
- package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
- package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
- package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
- package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
- package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
- package/dist/bundle-core/four-meme/swap-internal.js +0 -18
- package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
- package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
- package/dist/bundle-core/four-meme/swap.d.ts +0 -17
- package/dist/bundle-core/four-meme/swap.js +0 -505
- package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
- package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
- package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
- package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
- package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
- package/dist/bundle-core/four-meme/types/index.js +0 -1
- package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
- package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
- package/dist/bundle-core/four-meme/types.d.ts +0 -1
- package/dist/bundle-core/four-meme/types.js +0 -1
- package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
- package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
- package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
- package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
- package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
- package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
- package/dist/bundle-core/index.d.ts +0 -8
- package/dist/bundle-core/index.js +0 -8
- package/dist/bundle-core/internal.d.ts +0 -21
- package/dist/bundle-core/internal.js +0 -182
- package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
- package/dist/bundle-core/sign-context-helpers.js +0 -67
- package/dist/bundle-core/submit.d.ts +0 -293
- package/dist/bundle-core/submit.js +0 -727
- package/dist/bundle-core/types/index.d.ts +0 -8
- package/dist/bundle-core/types/index.js +0 -1
- package/dist/bundle-core/types.d.ts +0 -1
- package/dist/bundle-core/types.js +0 -1
- package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
- package/dist/chains/bsc/four/utils-disperse.js +0 -1
- package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
- package/dist/chains/bsc/four/utils-pairwise.js +0 -1
- package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
- package/dist/chains/bsc/four/utils-sweep.js +0 -1
- package/dist/chains/bsc/iro.d.ts +0 -5
- package/dist/chains/bsc/iro.js +0 -4
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
- package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
- package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
- package/dist/chains/eni/flat-aliases.d.ts +0 -10
- package/dist/chains/eni/flat-aliases.js +0 -8
- package/dist/chains/eni/submit.d.ts +0 -43
- package/dist/chains/eni/submit.js +0 -286
- package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
- package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
- package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
- package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
- package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
- package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
- package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
- package/dist/contracts/tm-bundle-helpers.js +0 -72
- package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
- package/dist/dex/direct-router-helpers.d.ts +0 -264
- package/dist/dex/direct-router-helpers.js +0 -539
- package/dist/dex/types.d.ts +0 -81
- package/dist/dex/types.js +0 -1
- package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
- package/dist/exports/root-bundle-and-tooling.js +0 -30
- package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
- package/dist/exports/root-eni-and-bsc-iro.js +0 -66
- package/dist/exports/root-foundations.d.ts +0 -35
- package/dist/exports/root-foundations.js +0 -70
- package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
- package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
- package/dist/flap/index.d.ts +0 -10
- package/dist/flap/index.js +0 -8
- package/dist/flows/index.d.ts +0 -1
- package/dist/flows/index.js +0 -1
- package/dist/merkle/index.d.ts +0 -12
- package/dist/merkle/index.js +0 -11
- package/dist/shared/clients/index.d.ts +0 -8
- package/dist/shared/clients/index.js +0 -8
- package/dist/shared/constants/quote.d.ts +0 -30
- package/dist/shared/constants/quote.js +0 -37
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
- package/dist/shared/foundation/dex/v3-path.d.ts +0 -6
- package/dist/shared/foundation/dex/v3-path.js +0 -35
- package/dist/shared/foundation/gas/bundle-gas.d.ts +0 -39
- package/dist/shared/foundation/gas/bundle-gas.js +0 -93
- package/dist/shared/foundation/gas/profit-hop.d.ts +0 -20
- package/dist/shared/foundation/gas/profit-hop.js +0 -72
- package/dist/shared/foundation/index.d.ts +0 -13
- package/dist/shared/foundation/index.js +0 -12
- package/dist/shared/foundation/nonce/nonce-manager.d.ts +0 -17
- package/dist/shared/foundation/nonce/nonce-manager.js +0 -180
- package/dist/shared/foundation/normalize-unknown.d.ts +0 -9
- package/dist/shared/foundation/normalize-unknown.js +0 -29
- package/dist/shared/foundation/sdk-logger.d.ts +0 -13
- package/dist/shared/foundation/sdk-logger.js +0 -12
- package/dist/shared/foundation/tx/build-request.d.ts +0 -17
- package/dist/shared/foundation/tx/build-request.js +0 -25
- package/dist/shared/foundation/tx/sign-batch.d.ts +0 -5
- package/dist/shared/foundation/tx/sign-batch.js +0 -26
- package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +0 -1
- package/dist/shared/foundation/tx/wallet-sign-patch.js +0 -18
- package/dist/shared/foundation/types/airdrop-sweep.d.ts +0 -79
- package/dist/shared/foundation/types/airdrop-sweep.js +0 -1
- package/dist/shared/foundation/types/erc20.d.ts +0 -65
- package/dist/shared/foundation/types/erc20.js +0 -1
- package/dist/shared/foundation/types/holders-maker.d.ts +0 -64
- package/dist/shared/foundation/types/holders-maker.js +0 -1
- package/dist/shared/foundation/types/index.d.ts +0 -7
- package/dist/shared/foundation/types/index.js +0 -1
- package/dist/shared/foundation/types/lp-inspect.d.ts +0 -102
- package/dist/shared/foundation/types/lp-inspect.js +0 -1
- package/dist/shared/foundation/types/multicall.d.ts +0 -5
- package/dist/shared/foundation/types/multicall.js +0 -1
- package/dist/shared/foundation/types/private-sale.d.ts +0 -35
- package/dist/shared/foundation/types/private-sale.js +0 -1
- package/dist/shared/foundation/types/quote-helpers.d.ts +0 -17
- package/dist/shared/foundation/types/quote-helpers.js +0 -1
- package/dist/types/errors.d.ts +0 -27
- package/dist/types/errors.js +0 -34
- package/dist/utils/holders-maker/addresses.d.ts +0 -12
- package/dist/utils/holders-maker/addresses.js +0 -15
- package/dist/utils/holders-maker/buy-tx.d.ts +0 -44
- package/dist/utils/holders-maker/buy-tx.js +0 -278
- package/dist/utils/holders-maker/constants.d.ts +0 -6
- package/dist/utils/holders-maker/constants.js +0 -7
- package/dist/utils/holders-maker/disperse.d.ts +0 -18
- package/dist/utils/holders-maker/disperse.js +0 -90
- package/dist/utils/holders-maker/routing.d.ts +0 -4
- package/dist/utils/holders-maker/routing.js +0 -45
- package/dist/utils/holders-maker/transfer-tx.d.ts +0 -4
- package/dist/utils/holders-maker/transfer-tx.js +0 -67
- package/dist/utils/holders-maker-helpers.d.ts +0 -9
- package/dist/utils/holders-maker-helpers.js +0 -9
- package/dist/utils/hop-chains.d.ts +0 -35
- package/dist/utils/hop-chains.js +0 -215
- package/dist/utils/lp-inspect-helpers.d.ts +0 -9
- package/dist/utils/lp-inspect-helpers.js +0 -109
- package/dist/utils/types/airdrop-sweep.d.ts +0 -1
- package/dist/utils/types/airdrop-sweep.js +0 -1
- package/dist/utils/types/contract-factory.d.ts +0 -1
- package/dist/utils/types/contract-factory.js +0 -1
- package/dist/utils/types/erc20.d.ts +0 -1
- package/dist/utils/types/erc20.js +0 -1
- package/dist/utils/types/errors.d.ts +0 -1
- package/dist/utils/types/errors.js +0 -1
- package/dist/utils/types/holders-maker.d.ts +0 -1
- package/dist/utils/types/holders-maker.js +0 -1
- package/dist/utils/types/hop-chains.d.ts +0 -8
- package/dist/utils/types/hop-chains.js +0 -1
- package/dist/utils/types/index.d.ts +0 -13
- package/dist/utils/types/index.js +0 -1
- package/dist/utils/types/lp-inspect.d.ts +0 -1
- package/dist/utils/types/lp-inspect.js +0 -1
- package/dist/utils/types/mpc-exclusive.d.ts +0 -5
- package/dist/utils/types/mpc-exclusive.js +0 -1
- package/dist/utils/types/private-sale.d.ts +0 -1
- package/dist/utils/types/private-sale.js +0 -1
- package/dist/utils/types/quote-helpers.d.ts +0 -1
- package/dist/utils/types/quote-helpers.js +0 -1
- package/dist/utils/types/stealth-transfer.d.ts +0 -44
- package/dist/utils/types/stealth-transfer.js +0 -1
- package/dist/utils/types/wallet.d.ts +0 -25
- package/dist/utils/types/wallet.js +0 -1
- package/dist/vanity/index.d.ts +0 -5
- package/dist/vanity/index.js +0 -5
- package/src/abis/contracts/TaxToken.json +0 -969
- package/src/abis/contracts/TokenManager.json +0 -836
- package/src/abis/contracts/TokenManager2.json +0 -136
- package/src/abis/contracts/TokenManagerHelper3.json +0 -993
- /package/dist/{abis/contracts → shared/abis}/TokenManager.json +0 -0
- /package/dist/{abis/contracts → shared/abis}/TokenManagerHelper3.json +0 -0
|
@@ -4,16 +4,19 @@
|
|
|
4
4
|
* ⚠️ 重要:基于 flap.sh/launch 实际源码分析,金库模式架构如下:
|
|
5
5
|
*
|
|
6
6
|
* 1. 金库代币通过 VaultPortal 合约创建(不是普通 Portal)
|
|
7
|
-
* 2. 调用函数:VaultPortal.
|
|
7
|
+
* 2. 调用函数:VaultPortal.newTokenV6WithVault(params) + tokenVersion = TOKEN_TAXED_V3
|
|
8
8
|
* 3. 参数中 extensionID/extensionData 始终为零值
|
|
9
9
|
* 4. 真正的金库配置通过 vaultFactory(工厂地址)和 vaultData(ABI 编码数据)传递
|
|
10
10
|
* 5. 每种金库类型对应一个具体的 VaultFactory 合约地址
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* ⚠️ newTaxTokenWithVault 已在链上废弃并始终 revert,请勿再使用。
|
|
13
|
+
*
|
|
14
|
+
* VaultPortal.newTokenV6WithVault 参数结构:
|
|
15
|
+
* - 基础参数(与 Portal.newTokenV6 相同,无 beneficiary):name, symbol, meta, dexThresh, salt,
|
|
14
16
|
* migratorType, quoteToken, quoteAmt, permitData, extensionID(全零), extensionData("0x"),
|
|
15
|
-
* dexId, lpFeeProfile,
|
|
16
|
-
* lpBps, minimumShareBalance
|
|
17
|
+
* dexId, lpFeeProfile, buyTaxRate, sellTaxRate, taxDuration, antiFarmerDuration,
|
|
18
|
+
* mktBps, deflationBps, dividendBps, lpBps, minimumShareBalance, dividendToken,
|
|
19
|
+
* commissionReceiver, tokenVersion(=TOKEN_TAXED_V3)
|
|
17
20
|
* - 金库专属参数:vaultFactory(address), vaultData(bytes)
|
|
18
21
|
*
|
|
19
22
|
* 金库分类(来自 flap.sh 源码):
|
|
@@ -28,6 +31,7 @@
|
|
|
28
31
|
* @module vault
|
|
29
32
|
*/
|
|
30
33
|
import { type JsonRpcProvider } from 'ethers';
|
|
34
|
+
import { TokenVersion } from './portal.js';
|
|
31
35
|
/**
|
|
32
36
|
* FieldDescriptor — 字段描述符
|
|
33
37
|
* 对应 Solidity 结构体 IVaultSchemasV1.FieldDescriptor
|
|
@@ -117,19 +121,21 @@ export declare const VAULT_EXTRA_CONFIG: Record<string, Record<string, Record<st
|
|
|
117
121
|
export declare const FLAP_GUARDIAN_ADDRESSES: {
|
|
118
122
|
readonly BSC: "0x9e27098dcD8844bcc6287a557E0b4D09C86B8a4b";
|
|
119
123
|
};
|
|
124
|
+
/** VaultPortal 金库发射必须使用 TOKEN_TAXED_V3(enum = 6) */
|
|
125
|
+
export declare const TOKEN_TAXED_V3_VERSION = TokenVersion.TOKEN_TAXED_V3;
|
|
120
126
|
/**
|
|
121
|
-
* VaultPortal ABI —
|
|
127
|
+
* VaultPortal ABI — newTokenV6WithVault(当前唯一支持的金库发射入口)
|
|
122
128
|
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
129
|
+
* 来源:Flap 官方 VaultPortal 文档
|
|
130
|
+
* https://docs.flap.sh/flap/developers/token-launcher-developers/launch-token-through-vaultportal
|
|
125
131
|
*/
|
|
126
132
|
export declare const VAULT_PORTAL_ABI: readonly [{
|
|
127
133
|
readonly type: "function";
|
|
128
|
-
readonly name: "
|
|
134
|
+
readonly name: "newTokenV6WithVault";
|
|
129
135
|
readonly inputs: readonly [{
|
|
130
136
|
readonly name: "params";
|
|
131
137
|
readonly type: "tuple";
|
|
132
|
-
readonly internalType: "struct IVaultPortalTypes.
|
|
138
|
+
readonly internalType: "struct IVaultPortalTypes.NewTokenV6WithVaultParams";
|
|
133
139
|
readonly components: readonly [{
|
|
134
140
|
readonly name: "name";
|
|
135
141
|
readonly type: "string";
|
|
@@ -145,15 +151,11 @@ export declare const VAULT_PORTAL_ABI: readonly [{
|
|
|
145
151
|
}, {
|
|
146
152
|
readonly name: "dexThresh";
|
|
147
153
|
readonly type: "uint8";
|
|
148
|
-
readonly internalType: "enum
|
|
154
|
+
readonly internalType: "enum IPortalTypes.DexThreshType";
|
|
149
155
|
}, {
|
|
150
156
|
readonly name: "salt";
|
|
151
157
|
readonly type: "bytes32";
|
|
152
158
|
readonly internalType: "bytes32";
|
|
153
|
-
}, {
|
|
154
|
-
readonly name: "taxRate";
|
|
155
|
-
readonly type: "uint16";
|
|
156
|
-
readonly internalType: "uint16";
|
|
157
159
|
}, {
|
|
158
160
|
readonly name: "migratorType";
|
|
159
161
|
readonly type: "uint8";
|
|
@@ -186,6 +188,14 @@ export declare const VAULT_PORTAL_ABI: readonly [{
|
|
|
186
188
|
readonly name: "lpFeeProfile";
|
|
187
189
|
readonly type: "uint8";
|
|
188
190
|
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";
|
|
189
199
|
}, {
|
|
190
200
|
readonly name: "taxDuration";
|
|
191
201
|
readonly type: "uint64";
|
|
@@ -214,6 +224,18 @@ export declare const VAULT_PORTAL_ABI: readonly [{
|
|
|
214
224
|
readonly name: "minimumShareBalance";
|
|
215
225
|
readonly type: "uint256";
|
|
216
226
|
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";
|
|
217
239
|
}, {
|
|
218
240
|
readonly name: "vaultFactory";
|
|
219
241
|
readonly type: "address";
|
|
@@ -343,7 +365,7 @@ export declare function getVaultFactoryAddress(chain: string, vaultType: VaultTy
|
|
|
343
365
|
*/
|
|
344
366
|
export declare function getVaultPortalAddress(chain: string): string | null;
|
|
345
367
|
/**
|
|
346
|
-
* 构建金库参数(用于 VaultPortal.
|
|
368
|
+
* 构建金库参数(用于 VaultPortal.newTokenV6WithVault)
|
|
347
369
|
*
|
|
348
370
|
* ⚠️ 重要:返回的是 vaultFactory 和 vaultData,不是 extensionID/extensionData
|
|
349
371
|
* extensionID/extensionData 在金库模式下始终为零值
|
|
@@ -354,6 +376,91 @@ export declare function buildVaultParams(config?: TaxVaultConfig, chain?: string
|
|
|
354
376
|
vaultFactory: string;
|
|
355
377
|
vaultData: string;
|
|
356
378
|
};
|
|
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
|
+
};
|
|
357
464
|
/**
|
|
358
465
|
* 旧版兼容:将 TaxVaultConfig 转换为 extensionID 和 extensionData
|
|
359
466
|
*
|
|
@@ -361,7 +468,7 @@ export declare function buildVaultParams(config?: TaxVaultConfig, chain?: string
|
|
|
361
468
|
* 金库参数通过 VaultPortal 的 vaultFactory/vaultData 传递
|
|
362
469
|
* 此函数仅用于向后兼容
|
|
363
470
|
*/
|
|
364
|
-
export declare function buildVaultExtensionParams(): {
|
|
471
|
+
export declare function buildVaultExtensionParams(config?: TaxVaultConfig): {
|
|
365
472
|
extensionID: string;
|
|
366
473
|
extensionData: string;
|
|
367
474
|
};
|
|
@@ -4,16 +4,19 @@
|
|
|
4
4
|
* ⚠️ 重要:基于 flap.sh/launch 实际源码分析,金库模式架构如下:
|
|
5
5
|
*
|
|
6
6
|
* 1. 金库代币通过 VaultPortal 合约创建(不是普通 Portal)
|
|
7
|
-
* 2. 调用函数:VaultPortal.
|
|
7
|
+
* 2. 调用函数:VaultPortal.newTokenV6WithVault(params) + tokenVersion = TOKEN_TAXED_V3
|
|
8
8
|
* 3. 参数中 extensionID/extensionData 始终为零值
|
|
9
9
|
* 4. 真正的金库配置通过 vaultFactory(工厂地址)和 vaultData(ABI 编码数据)传递
|
|
10
10
|
* 5. 每种金库类型对应一个具体的 VaultFactory 合约地址
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* ⚠️ newTaxTokenWithVault 已在链上废弃并始终 revert,请勿再使用。
|
|
13
|
+
*
|
|
14
|
+
* VaultPortal.newTokenV6WithVault 参数结构:
|
|
15
|
+
* - 基础参数(与 Portal.newTokenV6 相同,无 beneficiary):name, symbol, meta, dexThresh, salt,
|
|
14
16
|
* migratorType, quoteToken, quoteAmt, permitData, extensionID(全零), extensionData("0x"),
|
|
15
|
-
* dexId, lpFeeProfile,
|
|
16
|
-
* lpBps, minimumShareBalance
|
|
17
|
+
* dexId, lpFeeProfile, buyTaxRate, sellTaxRate, taxDuration, antiFarmerDuration,
|
|
18
|
+
* mktBps, deflationBps, dividendBps, lpBps, minimumShareBalance, dividendToken,
|
|
19
|
+
* commissionReceiver, tokenVersion(=TOKEN_TAXED_V3)
|
|
17
20
|
* - 金库专属参数:vaultFactory(address), vaultData(bytes)
|
|
18
21
|
*
|
|
19
22
|
* 金库分类(来自 flap.sh 源码):
|
|
@@ -28,32 +31,8 @@
|
|
|
28
31
|
* @module vault
|
|
29
32
|
*/
|
|
30
33
|
import { Contract, AbiCoder, ZeroAddress } from 'ethers';
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
name: f.name,
|
|
34
|
-
fieldType: f.fieldType,
|
|
35
|
-
description: f.description,
|
|
36
|
-
decimals: Number(f.decimals),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function mapApproveAction(a) {
|
|
40
|
-
return {
|
|
41
|
-
tokenType: a.tokenType,
|
|
42
|
-
amountFieldName: a.amountFieldName,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function mapVaultMethodSchema(m) {
|
|
46
|
-
return {
|
|
47
|
-
name: m.name,
|
|
48
|
-
description: m.description,
|
|
49
|
-
inputs: m.inputs.map(mapFieldDescriptor),
|
|
50
|
-
outputs: m.outputs.map(mapFieldDescriptor),
|
|
51
|
-
approvals: m.approvals.map(mapApproveAction),
|
|
52
|
-
isInputArray: m.isInputArray,
|
|
53
|
-
isOutputArray: m.isOutputArray,
|
|
54
|
-
isWriteMethod: m.isWriteMethod,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
34
|
+
import { TokenVersion } from './portal.js';
|
|
35
|
+
import { getVanitySuffix } from './constants.js';
|
|
57
36
|
/**
|
|
58
37
|
* 金库类型显示标签
|
|
59
38
|
*/
|
|
@@ -131,28 +110,28 @@ export const FLAP_GUARDIAN_ADDRESSES = {
|
|
|
131
110
|
// ============================================================================
|
|
132
111
|
// ABI 定义
|
|
133
112
|
// ============================================================================
|
|
113
|
+
/** VaultPortal 金库发射必须使用 TOKEN_TAXED_V3(enum = 6) */
|
|
114
|
+
export const TOKEN_TAXED_V3_VERSION = TokenVersion.TOKEN_TAXED_V3;
|
|
134
115
|
/**
|
|
135
|
-
* VaultPortal ABI —
|
|
116
|
+
* VaultPortal ABI — newTokenV6WithVault(当前唯一支持的金库发射入口)
|
|
136
117
|
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
118
|
+
* 来源:Flap 官方 VaultPortal 文档
|
|
119
|
+
* https://docs.flap.sh/flap/developers/token-launcher-developers/launch-token-through-vaultportal
|
|
139
120
|
*/
|
|
140
121
|
export const VAULT_PORTAL_ABI = [
|
|
141
122
|
{
|
|
142
123
|
type: 'function',
|
|
143
|
-
name: '
|
|
144
|
-
inputs: [
|
|
145
|
-
{
|
|
124
|
+
name: 'newTokenV6WithVault',
|
|
125
|
+
inputs: [{
|
|
146
126
|
name: 'params',
|
|
147
127
|
type: 'tuple',
|
|
148
|
-
internalType: 'struct IVaultPortalTypes.
|
|
128
|
+
internalType: 'struct IVaultPortalTypes.NewTokenV6WithVaultParams',
|
|
149
129
|
components: [
|
|
150
130
|
{ name: 'name', type: 'string', internalType: 'string' },
|
|
151
131
|
{ name: 'symbol', type: 'string', internalType: 'string' },
|
|
152
132
|
{ name: 'meta', type: 'string', internalType: 'string' },
|
|
153
|
-
{ name: 'dexThresh', type: 'uint8', internalType: 'enum
|
|
133
|
+
{ name: 'dexThresh', type: 'uint8', internalType: 'enum IPortalTypes.DexThreshType' },
|
|
154
134
|
{ name: 'salt', type: 'bytes32', internalType: 'bytes32' },
|
|
155
|
-
{ name: 'taxRate', type: 'uint16', internalType: 'uint16' },
|
|
156
135
|
{ name: 'migratorType', type: 'uint8', internalType: 'enum IPortalTypes.MigratorType' },
|
|
157
136
|
{ name: 'quoteToken', type: 'address', internalType: 'address' },
|
|
158
137
|
{ name: 'quoteAmt', type: 'uint256', internalType: 'uint256' },
|
|
@@ -161,6 +140,8 @@ export const VAULT_PORTAL_ABI = [
|
|
|
161
140
|
{ name: 'extensionData', type: 'bytes', internalType: 'bytes' },
|
|
162
141
|
{ name: 'dexId', type: 'uint8', internalType: 'enum IPortalTypes.DEXId' },
|
|
163
142
|
{ name: 'lpFeeProfile', type: 'uint8', internalType: 'enum IPortalTypes.V3LPFeeProfile' },
|
|
143
|
+
{ name: 'buyTaxRate', type: 'uint16', internalType: 'uint16' },
|
|
144
|
+
{ name: 'sellTaxRate', type: 'uint16', internalType: 'uint16' },
|
|
164
145
|
{ name: 'taxDuration', type: 'uint64', internalType: 'uint64' },
|
|
165
146
|
{ name: 'antiFarmerDuration', type: 'uint64', internalType: 'uint64' },
|
|
166
147
|
{ name: 'mktBps', type: 'uint16', internalType: 'uint16' },
|
|
@@ -168,11 +149,13 @@ export const VAULT_PORTAL_ABI = [
|
|
|
168
149
|
{ name: 'dividendBps', type: 'uint16', internalType: 'uint16' },
|
|
169
150
|
{ name: 'lpBps', type: 'uint16', internalType: 'uint16' },
|
|
170
151
|
{ name: 'minimumShareBalance', type: 'uint256', internalType: 'uint256' },
|
|
152
|
+
{ name: 'dividendToken', type: 'address', internalType: 'address' },
|
|
153
|
+
{ name: 'commissionReceiver', type: 'address', internalType: 'address' },
|
|
154
|
+
{ name: 'tokenVersion', type: 'uint8', internalType: 'enum IPortalTypes.TokenVersion' },
|
|
171
155
|
{ name: 'vaultFactory', type: 'address', internalType: 'address' },
|
|
172
156
|
{ name: 'vaultData', type: 'bytes', internalType: 'bytes' },
|
|
173
|
-
]
|
|
174
|
-
},
|
|
175
|
-
],
|
|
157
|
+
]
|
|
158
|
+
}],
|
|
176
159
|
outputs: [{ name: 'token', type: 'address', internalType: 'address' }],
|
|
177
160
|
stateMutability: 'payable',
|
|
178
161
|
},
|
|
@@ -180,8 +163,7 @@ export const VAULT_PORTAL_ABI = [
|
|
|
180
163
|
type: 'function',
|
|
181
164
|
name: 'getVault',
|
|
182
165
|
inputs: [{ name: 'taxToken', type: 'address', internalType: 'address' }],
|
|
183
|
-
outputs: [
|
|
184
|
-
{
|
|
166
|
+
outputs: [{
|
|
185
167
|
name: 'info',
|
|
186
168
|
type: 'tuple',
|
|
187
169
|
internalType: 'struct IVaultPortalTypes.VaultInfo',
|
|
@@ -191,9 +173,8 @@ export const VAULT_PORTAL_ABI = [
|
|
|
191
173
|
{ name: 'description', type: 'string', internalType: 'string' },
|
|
192
174
|
{ name: 'isOfficial', type: 'bool', internalType: 'bool' },
|
|
193
175
|
{ name: 'riskLevel', type: 'uint8', internalType: 'enum IVaultPortalTypes.RiskLevel' },
|
|
194
|
-
]
|
|
195
|
-
},
|
|
196
|
-
],
|
|
176
|
+
]
|
|
177
|
+
}],
|
|
197
178
|
stateMutability: 'view',
|
|
198
179
|
},
|
|
199
180
|
{
|
|
@@ -220,7 +201,9 @@ export const VAULT_FACTORY_V2_ABI = [
|
|
|
220
201
|
/**
|
|
221
202
|
* VaultBase ABI(V1)
|
|
222
203
|
*/
|
|
223
|
-
export const VAULT_BASE_ABI = [
|
|
204
|
+
export const VAULT_BASE_ABI = [
|
|
205
|
+
'function description() public view returns (string)',
|
|
206
|
+
];
|
|
224
207
|
/**
|
|
225
208
|
* VaultBaseV2 ABI
|
|
226
209
|
*/
|
|
@@ -269,21 +252,16 @@ function mapFieldTypeToAbiType(fieldType) {
|
|
|
269
252
|
function processFieldValue(field, rawValue) {
|
|
270
253
|
if (rawValue === undefined || rawValue === null) {
|
|
271
254
|
switch (field.fieldType) {
|
|
272
|
-
case 'address':
|
|
273
|
-
|
|
274
|
-
case '
|
|
275
|
-
return false;
|
|
276
|
-
case 'string':
|
|
277
|
-
return '';
|
|
255
|
+
case 'address': return ZeroAddress;
|
|
256
|
+
case 'bool': return false;
|
|
257
|
+
case 'string': return '';
|
|
278
258
|
case 'bytes':
|
|
279
|
-
case 'bytes32':
|
|
280
|
-
|
|
281
|
-
default:
|
|
282
|
-
return 0;
|
|
259
|
+
case 'bytes32': return '0x' + '00'.repeat(32);
|
|
260
|
+
default: return 0;
|
|
283
261
|
}
|
|
284
262
|
}
|
|
285
263
|
if (field.decimals > 0 && typeof rawValue === 'number') {
|
|
286
|
-
return BigInt(Math.round(rawValue * 10 ** field.decimals));
|
|
264
|
+
return BigInt(Math.round(rawValue * (10 ** field.decimals)));
|
|
287
265
|
}
|
|
288
266
|
if (field.fieldType === 'bool') {
|
|
289
267
|
return Boolean(rawValue);
|
|
@@ -308,7 +286,7 @@ export function getVaultPortalAddress(chain) {
|
|
|
308
286
|
return VAULT_PORTAL_ADDRESSES[chainKey] || null;
|
|
309
287
|
}
|
|
310
288
|
/**
|
|
311
|
-
* 构建金库参数(用于 VaultPortal.
|
|
289
|
+
* 构建金库参数(用于 VaultPortal.newTokenV6WithVault)
|
|
312
290
|
*
|
|
313
291
|
* ⚠️ 重要:返回的是 vaultFactory 和 vaultData,不是 extensionID/extensionData
|
|
314
292
|
* extensionID/extensionData 在金库模式下始终为零值
|
|
@@ -354,6 +332,82 @@ export function buildVaultParams(config, chain) {
|
|
|
354
332
|
}
|
|
355
333
|
return { vaultFactory, vaultData };
|
|
356
334
|
}
|
|
335
|
+
function normalizeTaxV2Fields(taxV2) {
|
|
336
|
+
if ('distribution' in taxV2) {
|
|
337
|
+
return {
|
|
338
|
+
taxDuration: taxV2.taxDuration,
|
|
339
|
+
antiFarmerDuration: taxV2.antiFarmerDuration,
|
|
340
|
+
mktBps: taxV2.distribution.mktBps,
|
|
341
|
+
deflationBps: taxV2.distribution.deflationBps,
|
|
342
|
+
dividendBps: taxV2.distribution.dividendBps,
|
|
343
|
+
lpBps: taxV2.distribution.lpBps,
|
|
344
|
+
minimumShareBalance: taxV2.distribution.minimumShareBalance,
|
|
345
|
+
vaultConfig: taxV2.vaultConfig,
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
return taxV2;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* 构建 VaultPortal.newTokenV6WithVault 参数
|
|
352
|
+
*
|
|
353
|
+
* ⚠️ tokenVersion 固定为 TOKEN_TAXED_V3;buyTaxRate/sellTaxRate 必须 > 0
|
|
354
|
+
*/
|
|
355
|
+
export function buildNewTokenV6WithVaultParams(input) {
|
|
356
|
+
const tv2 = normalizeTaxV2Fields(input.taxV2);
|
|
357
|
+
const total = tv2.mktBps + tv2.deflationBps + tv2.dividendBps + tv2.lpBps;
|
|
358
|
+
if (total !== 10000) {
|
|
359
|
+
throw new Error(`Tax distribution must sum to 10000 (100%), got ${total}`);
|
|
360
|
+
}
|
|
361
|
+
if (tv2.mktBps <= 0) {
|
|
362
|
+
throw new Error('Vault launch requires mktBps > 0');
|
|
363
|
+
}
|
|
364
|
+
const buyTaxRate = (input.buyTaxRate ?? input.taxRate) & 0xffff;
|
|
365
|
+
const sellTaxRate = (input.sellTaxRate ?? input.taxRate) & 0xffff;
|
|
366
|
+
if (buyTaxRate <= 0 || sellTaxRate <= 0) {
|
|
367
|
+
throw new Error('Vault launch requires buyTaxRate and sellTaxRate > 0');
|
|
368
|
+
}
|
|
369
|
+
const { vaultFactory, vaultData } = buildVaultParams(tv2.vaultConfig, input.chain);
|
|
370
|
+
return {
|
|
371
|
+
name: input.tokenInfo.name,
|
|
372
|
+
symbol: input.tokenInfo.symbol,
|
|
373
|
+
meta: input.tokenInfo.meta,
|
|
374
|
+
dexThresh: (input.dexThresh ?? 1) & 0xff,
|
|
375
|
+
salt: input.salt ?? ('0x' + '00'.repeat(32)),
|
|
376
|
+
migratorType: (input.migratorType ?? 0) & 0xff,
|
|
377
|
+
quoteToken: input.quoteToken || ZeroAddress,
|
|
378
|
+
quoteAmt: input.quoteAmt ?? 0n,
|
|
379
|
+
permitData: '0x',
|
|
380
|
+
extensionID: NONE_EXTENSION_ID,
|
|
381
|
+
extensionData: '0x',
|
|
382
|
+
dexId: (input.dexId ?? 0) & 0xff,
|
|
383
|
+
lpFeeProfile: (input.lpFeeProfile ?? 0) & 0xff,
|
|
384
|
+
buyTaxRate,
|
|
385
|
+
sellTaxRate,
|
|
386
|
+
taxDuration: BigInt(tv2.taxDuration),
|
|
387
|
+
antiFarmerDuration: BigInt(tv2.antiFarmerDuration),
|
|
388
|
+
mktBps: tv2.mktBps & 0xffff,
|
|
389
|
+
deflationBps: tv2.deflationBps & 0xffff,
|
|
390
|
+
dividendBps: tv2.dividendBps & 0xffff,
|
|
391
|
+
lpBps: tv2.lpBps & 0xffff,
|
|
392
|
+
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
|
|
393
|
+
dividendToken: ZeroAddress,
|
|
394
|
+
commissionReceiver: ZeroAddress,
|
|
395
|
+
tokenVersion: TOKEN_TAXED_V3_VERSION,
|
|
396
|
+
vaultFactory,
|
|
397
|
+
vaultData,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* 金库发射 Vanity 地址搜索参数
|
|
402
|
+
* TOKEN_TAXED_V3 使用 tokenImplTaxedV3 + 后缀 7777
|
|
403
|
+
*/
|
|
404
|
+
export function getVaultLaunchVanityOptions(chain) {
|
|
405
|
+
return {
|
|
406
|
+
taxed: true,
|
|
407
|
+
taxedV3: true,
|
|
408
|
+
suffix: getVanitySuffix(chain, true),
|
|
409
|
+
};
|
|
410
|
+
}
|
|
357
411
|
/**
|
|
358
412
|
* 旧版兼容:将 TaxVaultConfig 转换为 extensionID 和 extensionData
|
|
359
413
|
*
|
|
@@ -361,7 +415,7 @@ export function buildVaultParams(config, chain) {
|
|
|
361
415
|
* 金库参数通过 VaultPortal 的 vaultFactory/vaultData 传递
|
|
362
416
|
* 此函数仅用于向后兼容
|
|
363
417
|
*/
|
|
364
|
-
export function buildVaultExtensionParams() {
|
|
418
|
+
export function buildVaultExtensionParams(config) {
|
|
365
419
|
// 金库模式下 extensionID/extensionData 始终为零值
|
|
366
420
|
return {
|
|
367
421
|
extensionID: NONE_EXTENSION_ID,
|
|
@@ -377,10 +431,15 @@ export function buildVaultExtensionParams() {
|
|
|
377
431
|
export async function queryVaultDataSchema(provider, factoryAddress) {
|
|
378
432
|
try {
|
|
379
433
|
const factory = new Contract(factoryAddress, VAULT_FACTORY_V2_ABI, provider);
|
|
380
|
-
const raw =
|
|
434
|
+
const raw = await factory.vaultDataSchema();
|
|
381
435
|
return {
|
|
382
436
|
description: raw.description,
|
|
383
|
-
fields: raw.fields.map(
|
|
437
|
+
fields: raw.fields.map((f) => ({
|
|
438
|
+
name: f.name,
|
|
439
|
+
fieldType: f.fieldType,
|
|
440
|
+
description: f.description,
|
|
441
|
+
decimals: Number(f.decimals),
|
|
442
|
+
})),
|
|
384
443
|
isArray: raw.isArray,
|
|
385
444
|
};
|
|
386
445
|
}
|
|
@@ -394,11 +453,33 @@ export async function queryVaultDataSchema(provider, factoryAddress) {
|
|
|
394
453
|
export async function queryVaultUISchema(provider, vaultAddress) {
|
|
395
454
|
try {
|
|
396
455
|
const vault = new Contract(vaultAddress, VAULT_BASE_V2_ABI, provider);
|
|
397
|
-
const raw =
|
|
456
|
+
const raw = await vault.vaultUISchema();
|
|
398
457
|
return {
|
|
399
458
|
vaultType: raw.vaultType,
|
|
400
459
|
description: raw.description,
|
|
401
|
-
methods: raw.methods.map(
|
|
460
|
+
methods: raw.methods.map((m) => ({
|
|
461
|
+
name: m.name,
|
|
462
|
+
description: m.description,
|
|
463
|
+
inputs: m.inputs.map((f) => ({
|
|
464
|
+
name: f.name,
|
|
465
|
+
fieldType: f.fieldType,
|
|
466
|
+
description: f.description,
|
|
467
|
+
decimals: Number(f.decimals),
|
|
468
|
+
})),
|
|
469
|
+
outputs: m.outputs.map((f) => ({
|
|
470
|
+
name: f.name,
|
|
471
|
+
fieldType: f.fieldType,
|
|
472
|
+
description: f.description,
|
|
473
|
+
decimals: Number(f.decimals),
|
|
474
|
+
})),
|
|
475
|
+
approvals: m.approvals.map((a) => ({
|
|
476
|
+
tokenType: a.tokenType,
|
|
477
|
+
amountFieldName: a.amountFieldName,
|
|
478
|
+
})),
|
|
479
|
+
isInputArray: m.isInputArray,
|
|
480
|
+
isOutputArray: m.isOutputArray,
|
|
481
|
+
isWriteMethod: m.isWriteMethod,
|
|
482
|
+
})),
|
|
402
483
|
};
|
|
403
484
|
}
|
|
404
485
|
catch {
|
|
@@ -443,7 +524,7 @@ export async function validateVaultFactory(provider, factoryAddress) {
|
|
|
443
524
|
export async function getVaultInfo(provider, vaultPortalAddress, taxTokenAddress) {
|
|
444
525
|
try {
|
|
445
526
|
const portal = new Contract(vaultPortalAddress, VAULT_PORTAL_ABI, provider);
|
|
446
|
-
const info =
|
|
527
|
+
const info = await portal.getVault(taxTokenAddress);
|
|
447
528
|
return {
|
|
448
529
|
vault: info.vault,
|
|
449
530
|
vaultFactory: info.vaultFactory,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 基于 Four.meme 官方文档: API-Contract-TaxToken.md
|
|
6
6
|
*/
|
|
7
7
|
import { ethers, Contract, Wallet, JsonRpcProvider } from 'ethers';
|
|
8
|
-
import TaxTokenAbi from '
|
|
8
|
+
import TaxTokenAbi from '../abis/TaxToken.json' with { type: 'json' };
|
|
9
9
|
// ============================================================================
|
|
10
10
|
// 常量
|
|
11
11
|
// ============================================================================
|
|
@@ -123,28 +123,11 @@ export async function getTaxTokenInfo(tokenAddress, rpcUrl) {
|
|
|
123
123
|
const token = new Contract(tokenAddress, TAX_TOKEN_READ_ABI, provider);
|
|
124
124
|
// 批量查询所有状态(利用 Promise.all 减少 RPC 调用轮次)
|
|
125
125
|
const [feeRate, rateFounder, rateHolder, rateBurn, rateLiquidity, founder, quote, pair, mode, minDispatch, minShare, totalShares, feePerShare, feeAccumulated, feeDispatched, feeFounderVal, feeHolderVal, feeBurnVal, feeLiquidityVal, quoteFounderVal, quoteHolderVal, quoteClaimed,] = await Promise.all([
|
|
126
|
-
token.feeRate(),
|
|
127
|
-
token.
|
|
128
|
-
token.
|
|
129
|
-
token.
|
|
130
|
-
token.
|
|
131
|
-
token.founder(),
|
|
132
|
-
token.quote(),
|
|
133
|
-
token.pair(),
|
|
134
|
-
token._mode(),
|
|
135
|
-
token.minDispatch(),
|
|
136
|
-
token.minShare(),
|
|
137
|
-
token.totalShares(),
|
|
138
|
-
token.feePerShare(),
|
|
139
|
-
token.feeAccumulated(),
|
|
140
|
-
token.feeDispatched(),
|
|
141
|
-
token.feeFounder(),
|
|
142
|
-
token.feeHolder(),
|
|
143
|
-
token.feeBurn(),
|
|
144
|
-
token.feeLiquidity(),
|
|
145
|
-
token.quoteFounder(),
|
|
146
|
-
token.quoteHolder(),
|
|
147
|
-
token.quoteClaimed(),
|
|
126
|
+
token.feeRate(), token.rateFounder(), token.rateHolder(), token.rateBurn(), token.rateLiquidity(),
|
|
127
|
+
token.founder(), token.quote(), token.pair(), token._mode(), token.minDispatch(), token.minShare(),
|
|
128
|
+
token.totalShares(), token.feePerShare(), token.feeAccumulated(), token.feeDispatched(),
|
|
129
|
+
token.feeFounder(), token.feeHolder(), token.feeBurn(), token.feeLiquidity(),
|
|
130
|
+
token.quoteFounder(), token.quoteHolder(), token.quoteClaimed(),
|
|
148
131
|
]);
|
|
149
132
|
return {
|
|
150
133
|
config: {
|
|
@@ -298,10 +281,7 @@ export function validateFourTokenTaxInfo(info) {
|
|
|
298
281
|
// 四项比例之和必须为 100
|
|
299
282
|
const rateSum = info.burnRate + info.divideRate + info.liquidityRate + info.recipientRate;
|
|
300
283
|
if (rateSum !== 100) {
|
|
301
|
-
return {
|
|
302
|
-
valid: false,
|
|
303
|
-
error: `burnRate + divideRate + liquidityRate + recipientRate 必须等于 100,当前: ${rateSum}`,
|
|
304
|
-
};
|
|
284
|
+
return { valid: false, error: `burnRate + divideRate + liquidityRate + recipientRate 必须等于 100,当前: ${rateSum}` };
|
|
305
285
|
}
|
|
306
286
|
// 每项比例 >= 0
|
|
307
287
|
if (info.burnRate < 0 || info.divideRate < 0 || info.liquidityRate < 0 || info.recipientRate < 0) {
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -7,10 +7,4 @@
|
|
|
7
7
|
* - four: Four.meme 工具(TaxToken 等)
|
|
8
8
|
*/
|
|
9
9
|
export * from './constants/index.js';
|
|
10
|
-
/** 错误规范化、可选 Logger(与根 `index` 导出同源) */
|
|
11
|
-
export * as foundation from './foundation/index.js';
|
|
12
|
-
/** HTTP / Bundle / BlockRazor 等(亦支持子路径 `four-flap-meme-sdk/clients`) */
|
|
13
|
-
export * as clients from './clients/index.js';
|
|
14
10
|
export * as FourUtils from './four/index.js';
|
|
15
|
-
/** Flap 链标识(与 `./constants` 同源) */
|
|
16
|
-
export type { FlapChain } from './flap/portal.js';
|
package/dist/shared/index.js
CHANGED
|
@@ -7,8 +7,4 @@
|
|
|
7
7
|
* - four: Four.meme 工具(TaxToken 等)
|
|
8
8
|
*/
|
|
9
9
|
export * from './constants/index.js';
|
|
10
|
-
/** 错误规范化、可选 Logger(与根 `index` 导出同源) */
|
|
11
|
-
export * as foundation from './foundation/index.js';
|
|
12
|
-
/** HTTP / Bundle / BlockRazor 等(亦支持子路径 `four-flap-meme-sdk/clients`) */
|
|
13
|
-
export * as clients from './clients/index.js';
|
|
14
10
|
export * as FourUtils from './four/index.js';
|