four-flap-meme-sdk 2.2.7 → 2.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.d.ts +2 -2
- 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 +6 -5
- 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 +6 -9
- 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.d.ts +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 +111 -29
- 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 +307 -63
- 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 +164 -89
- 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 +86 -20
- package/dist/index.js +216 -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 +253 -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 +6 -21
- package/dist/shared/clients/four.js +24 -29
- 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 +4 -3
- 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 +5 -5
- package/dist/shared/flap/index.js +5 -5
- package/dist/shared/flap/launch-v6.d.ts +117 -0
- package/dist/shared/flap/launch-v6.js +111 -0
- package/dist/shared/flap/meta.d.ts +18 -22
- package/dist/shared/flap/meta.js +17 -12
- package/dist/shared/flap/permit.js +2 -5
- package/dist/shared/flap/pinata.d.ts +6 -22
- package/dist/shared/flap/pinata.js +26 -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 +267 -164
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +4 -17
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +195 -107
- 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 +12 -88
- 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 -14
- package/dist/shared/flap/portal.js +26 -49
- package/dist/shared/flap/vanity.d.ts +5 -4
- package/dist/shared/flap/vanity.js +20 -13
- package/dist/shared/flap/vault.d.ts +93 -25
- package/dist/shared/flap/vault.js +126 -75
- 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 +55 -42
- 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 +11 -6
- package/dist/utils/wallet.d.ts +25 -2
- package/dist/utils/wallet.js +10 -13
- package/package.json +4 -160
- 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 -264
- 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 -35
- 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/flap/portal-create-token.d.ts +0 -79
- package/dist/shared/flap/portal-create-token.js +0 -261
- 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 -49
- 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 -183
- 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
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* 3. 买到毕业(代币上 DEX)
|
|
8
8
|
* 4. 多个钱包在 PancakeSwap(外盘)继续买入
|
|
9
9
|
*/
|
|
10
|
-
import type { TaxVaultConfig } from '../vault.js';
|
|
11
10
|
import { type FlapSignConfig } from './config.js';
|
|
12
11
|
import type { MerkleSignedResult } from './types.js';
|
|
13
12
|
export type CreateToDexChain = 'bsc' | 'xlayer' | 'base';
|
|
@@ -76,22 +75,10 @@ export interface FlapCreateToDexParams {
|
|
|
76
75
|
dexId?: number;
|
|
77
76
|
/** V4 参数:LP 费率档位(0=STANDARD 0.25%, 1=LOW 0.01%, 2=HIGH 1%) */
|
|
78
77
|
lpFeeProfile?: number;
|
|
79
|
-
/**
|
|
80
|
-
taxV2Config?:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
buyTaxRate?: number;
|
|
84
|
-
sellTaxRate?: number;
|
|
85
|
-
dividendToken?: string;
|
|
86
|
-
commissionReceiver?: string;
|
|
87
|
-
mktBps: number;
|
|
88
|
-
deflationBps: number;
|
|
89
|
-
dividendBps: number;
|
|
90
|
-
lpBps: number;
|
|
91
|
-
minimumShareBalance?: number;
|
|
92
|
-
/** ✅ Tax Vault 金库配置(可选) */
|
|
93
|
-
vaultConfig?: TaxVaultConfig;
|
|
94
|
-
};
|
|
78
|
+
/** 高级税收配置(newTokenV6 / newTokenV6WithVault) */
|
|
79
|
+
taxV2Config?: import('./types.js').TaxV2Config;
|
|
80
|
+
buyTaxRate?: number;
|
|
81
|
+
sellTaxRate?: number;
|
|
95
82
|
/** V3 扩展 ID */
|
|
96
83
|
extensionID?: string;
|
|
97
84
|
/** V3 扩展数据 */
|
|
@@ -8,68 +8,68 @@
|
|
|
8
8
|
* 4. 多个钱包在 PancakeSwap(外盘)继续买入
|
|
9
9
|
*/
|
|
10
10
|
import { ethers, Contract, Wallet } from 'ethers';
|
|
11
|
-
import { NonceManager, getOptimizedGasPrice, buildProfitHopTransactions, PROFIT_HOP_COUNT
|
|
11
|
+
import { NonceManager, getOptimizedGasPrice, buildProfitHopTransactions, PROFIT_HOP_COUNT } from '../../../utils/bundle-helpers.js';
|
|
12
12
|
import { FLAP_PORTAL_ADDRESSES, FLAP_ORIGINAL_PORTAL_ADDRESSES } from '../constants.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { ZERO_ADDRESS } from '../../../
|
|
13
|
+
import { buildNewTokenV6WithVaultParams, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI } from '../vault.js';
|
|
14
|
+
import { buildNewTokenV6Params } from '../launch-v6.js';
|
|
15
|
+
import { PROFIT_CONFIG, ZERO_ADDRESS } from '../../../utils/constants.js';
|
|
16
16
|
import { GAS_LIMITS } from '../../constants/index.js';
|
|
17
|
-
import { getGasPriceConfig, getTxType, getProfitRecipient,
|
|
17
|
+
import { getGasPriceConfig, getTxType, getProfitRecipient, getBribeAmount, BLOCKRAZOR_BUILDER_EOA, PORTAL_ABI } from './config.js';
|
|
18
18
|
// ==================== ERC20 ABI ====================
|
|
19
19
|
const ERC20_ABI = [
|
|
20
20
|
{
|
|
21
|
-
type:
|
|
22
|
-
name:
|
|
21
|
+
type: "function",
|
|
22
|
+
name: "approve",
|
|
23
23
|
inputs: [
|
|
24
|
-
{ name:
|
|
25
|
-
{ name:
|
|
24
|
+
{ name: "spender", type: "address" },
|
|
25
|
+
{ name: "amount", type: "uint256" }
|
|
26
26
|
],
|
|
27
|
-
outputs: [{ name:
|
|
28
|
-
stateMutability:
|
|
29
|
-
}
|
|
27
|
+
outputs: [{ name: "", type: "bool" }],
|
|
28
|
+
stateMutability: "nonpayable"
|
|
29
|
+
}
|
|
30
30
|
];
|
|
31
31
|
// ==================== PancakeSwap Router ABI ====================
|
|
32
32
|
const PANCAKE_ROUTER_ABI = [
|
|
33
33
|
{
|
|
34
|
-
type:
|
|
35
|
-
name:
|
|
34
|
+
type: "function",
|
|
35
|
+
name: "exactInputSingle",
|
|
36
36
|
inputs: [
|
|
37
37
|
{
|
|
38
|
-
name:
|
|
39
|
-
type:
|
|
38
|
+
name: "params",
|
|
39
|
+
type: "tuple",
|
|
40
40
|
components: [
|
|
41
|
-
{ name:
|
|
42
|
-
{ name:
|
|
43
|
-
{ name:
|
|
44
|
-
{ name:
|
|
45
|
-
{ name:
|
|
46
|
-
{ name:
|
|
47
|
-
{ name:
|
|
48
|
-
]
|
|
49
|
-
}
|
|
41
|
+
{ name: "tokenIn", type: "address" },
|
|
42
|
+
{ name: "tokenOut", type: "address" },
|
|
43
|
+
{ name: "fee", type: "uint24" },
|
|
44
|
+
{ name: "recipient", type: "address" },
|
|
45
|
+
{ name: "amountIn", type: "uint256" },
|
|
46
|
+
{ name: "amountOutMinimum", type: "uint256" },
|
|
47
|
+
{ name: "sqrtPriceLimitX96", type: "uint160" }
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
50
|
],
|
|
51
|
-
outputs: [{ name:
|
|
52
|
-
stateMutability:
|
|
51
|
+
outputs: [{ name: "amountOut", type: "uint256" }],
|
|
52
|
+
stateMutability: "payable"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
type:
|
|
56
|
-
name:
|
|
57
|
-
inputs: [{ name:
|
|
58
|
-
outputs: [{ name:
|
|
59
|
-
stateMutability:
|
|
55
|
+
type: "function",
|
|
56
|
+
name: "multicall",
|
|
57
|
+
inputs: [{ name: "data", type: "bytes[]" }],
|
|
58
|
+
outputs: [{ name: "results", type: "bytes[]" }],
|
|
59
|
+
stateMutability: "payable"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
|
-
type:
|
|
63
|
-
name:
|
|
62
|
+
type: "function",
|
|
63
|
+
name: "swapExactTokensForTokens",
|
|
64
64
|
inputs: [
|
|
65
|
-
{ name:
|
|
66
|
-
{ name:
|
|
67
|
-
{ name:
|
|
68
|
-
{ name:
|
|
65
|
+
{ name: "amountIn", type: "uint256" },
|
|
66
|
+
{ name: "amountOutMin", type: "uint256" },
|
|
67
|
+
{ name: "path", type: "address[]" },
|
|
68
|
+
{ name: "to", type: "address" }
|
|
69
69
|
],
|
|
70
|
-
outputs: [{ name:
|
|
71
|
-
stateMutability:
|
|
72
|
-
}
|
|
70
|
+
outputs: [{ name: "amountOut", type: "uint256" }],
|
|
71
|
+
stateMutability: "payable"
|
|
72
|
+
}
|
|
73
73
|
];
|
|
74
74
|
// ==================== DEX 地址常量 ====================
|
|
75
75
|
const DEX_ADDRESSES = {
|
|
@@ -86,7 +86,7 @@ const DEX_ADDRESSES = {
|
|
|
86
86
|
// ✅ Base 使用 Uniswap V3 SwapRouter02
|
|
87
87
|
UNISWAP_SMART_ROUTER: '0x2626664c2603336E57B271c5C0b26F421741e481',
|
|
88
88
|
WETH: '0x4200000000000000000000000000000000000006',
|
|
89
|
-
}
|
|
89
|
+
}
|
|
90
90
|
};
|
|
91
91
|
// ==================== 链常量 ====================
|
|
92
92
|
// 获取链配置
|
|
@@ -103,7 +103,8 @@ function getChainConfig(chain) {
|
|
|
103
103
|
}
|
|
104
104
|
// ==================== 工具函数 ====================
|
|
105
105
|
/** 构建 ERC20 approve 交易 */
|
|
106
|
-
async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amount, nonce, gasPrice, txType, chainId = 56
|
|
106
|
+
async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amount, nonce, gasPrice, txType, chainId = 56 // ✅ 添加 chainId 参数
|
|
107
|
+
) {
|
|
107
108
|
const erc20Interface = new ethers.Interface(ERC20_ABI);
|
|
108
109
|
const data = erc20Interface.encodeFunctionData('approve', [spenderAddress, amount]);
|
|
109
110
|
const tx = {
|
|
@@ -111,9 +112,9 @@ async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amo
|
|
|
111
112
|
data,
|
|
112
113
|
from: wallet.address,
|
|
113
114
|
nonce,
|
|
114
|
-
gasLimit: BigInt(
|
|
115
|
+
gasLimit: BigInt(100000), // approve 交易 gas 较低
|
|
115
116
|
chainId,
|
|
116
|
-
type: txType
|
|
117
|
+
type: txType
|
|
117
118
|
};
|
|
118
119
|
if (txType === 2) {
|
|
119
120
|
const priorityFee = gasPrice / 10n === 0n ? 1n : gasPrice / 10n;
|
|
@@ -167,11 +168,11 @@ function parseQuoteAmount(amount, useNativeToken, quoteTokenDecimals) {
|
|
|
167
168
|
* 若 SDK 这里再次 splitAmount,会导致实际 buyAmount 与 UI/预期不一致,并引发余额不足(insufficient funds)。
|
|
168
169
|
*/
|
|
169
170
|
function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenDecimals) {
|
|
170
|
-
const provided = buyers.map(
|
|
171
|
+
const provided = buyers.map(b => b?.buyAmount).filter(v => v != null && String(v).trim() !== '');
|
|
171
172
|
const allProvided = provided.length === buyers.length;
|
|
172
173
|
if (allProvided) {
|
|
173
174
|
// ✅ 所有买家都显式提供了 buyAmount:按传入金额构建,但要修正“浮点/四舍五入导致总和偏差”
|
|
174
|
-
const amounts = buyers.map(
|
|
175
|
+
const amounts = buyers.map(b => parseQuoteAmount(String(b.buyAmount), useNativeToken, quoteTokenDecimals));
|
|
175
176
|
const totalWei = parseQuoteAmount(totalAmountStr, useNativeToken, quoteTokenDecimals);
|
|
176
177
|
const sum = amounts.reduce((a, b) => a + b, 0n);
|
|
177
178
|
const delta = totalWei - sum;
|
|
@@ -201,7 +202,7 @@ function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenD
|
|
|
201
202
|
* 5. 利润多跳转账
|
|
202
203
|
*/
|
|
203
204
|
export async function flapBundleCreateToDex(params) {
|
|
204
|
-
const { chain, devPrivateKey, tokenInfo, tokenAddress, quoteToken, quoteTokenDecimals = 18, curveBuyers, curveTotalBuyAmount, enableDexBuy = false, dexBuyers = [], dexTotalBuyAmount, dexPoolType = 'v3', v3Fee = 2500, config
|
|
205
|
+
const { chain, devPrivateKey, tokenInfo, tokenAddress, quoteToken, quoteTokenDecimals = 18, curveBuyers, curveTotalBuyAmount, enableDexBuy = false, dexBuyers = [], dexTotalBuyAmount, dexPoolType = 'v3', v3Fee = 2500, config } = params;
|
|
205
206
|
// 验证参数
|
|
206
207
|
if (curveBuyers.length === 0) {
|
|
207
208
|
throw new Error('至少需要一个内盘买入钱包');
|
|
@@ -235,30 +236,34 @@ export async function flapBundleCreateToDex(params) {
|
|
|
235
236
|
// 创建 Provider
|
|
236
237
|
const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
|
|
237
238
|
chainId,
|
|
238
|
-
name: chain.toUpperCase()
|
|
239
|
+
name: chain.toUpperCase()
|
|
239
240
|
});
|
|
240
241
|
const portalAddress = FLAP_PORTAL_ADDRESSES[chain.toUpperCase()];
|
|
241
242
|
const originalPortalAddress = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain.toUpperCase()];
|
|
242
243
|
const nonceManager = new NonceManager(provider);
|
|
243
244
|
// 创建钱包实例
|
|
244
245
|
const devWallet = new Wallet(devPrivateKey, provider);
|
|
245
|
-
const curveWallets = curveBuyers.map(
|
|
246
|
+
const curveWallets = curveBuyers.map(b => ({
|
|
246
247
|
wallet: new Wallet(b.privateKey, provider),
|
|
247
|
-
buyAmount: b.buyAmount
|
|
248
|
+
buyAmount: b.buyAmount
|
|
248
249
|
}));
|
|
249
|
-
const dexWallets = (enableDexBuy ? dexBuyers : []).map(
|
|
250
|
+
const dexWallets = (enableDexBuy ? dexBuyers : []).map(b => ({
|
|
250
251
|
wallet: new Wallet(b.privateKey, provider),
|
|
251
|
-
buyAmount: b.buyAmount
|
|
252
|
+
buyAmount: b.buyAmount
|
|
252
253
|
}));
|
|
253
254
|
// ✅ 并行获取 gasPrice + 所有钱包 nonces
|
|
254
|
-
const allWallets = [
|
|
255
|
+
const allWallets = [
|
|
256
|
+
devWallet,
|
|
257
|
+
...curveWallets.map(c => c.wallet),
|
|
258
|
+
...dexWallets.map(d => d.wallet)
|
|
259
|
+
];
|
|
255
260
|
const uniqueWallets = allWallets.filter((w, i) => {
|
|
256
261
|
const addr = w.address.toLowerCase();
|
|
257
|
-
return allWallets.findIndex(
|
|
262
|
+
return allWallets.findIndex(x => x.address.toLowerCase() === addr) === i;
|
|
258
263
|
});
|
|
259
264
|
const [gasPrice, noncesArray] = await Promise.all([
|
|
260
265
|
getOptimizedGasPrice(provider, getGasPriceConfig(config)),
|
|
261
|
-
nonceManager.getNextNoncesForWallets(uniqueWallets)
|
|
266
|
+
nonceManager.getNextNoncesForWallets(uniqueWallets)
|
|
262
267
|
]);
|
|
263
268
|
// 构建 nonces Map
|
|
264
269
|
const noncesMap = new Map();
|
|
@@ -278,8 +283,9 @@ export async function flapBundleCreateToDex(params) {
|
|
|
278
283
|
dexBuyAmounts = resolveBuyerAmounts(dexBuyers, dexTotalBuyAmount, useNativeToken, quoteTokenDecimals);
|
|
279
284
|
}
|
|
280
285
|
// ✅ 计算利润
|
|
281
|
-
const totalBuyAmount = curveBuyAmounts.reduce((a, b) => a + b, 0n)
|
|
282
|
-
|
|
286
|
+
const totalBuyAmount = curveBuyAmounts.reduce((a, b) => a + b, 0n)
|
|
287
|
+
+ dexBuyAmounts.reduce((a, b) => a + b, 0n);
|
|
288
|
+
const profitAmount = (totalBuyAmount * BigInt(PROFIT_CONFIG.RATE_BPS)) / 10000n;
|
|
283
289
|
// ==================== 构建交易 ====================
|
|
284
290
|
const allTransactions = [];
|
|
285
291
|
// 使用第一个内盘买家作为贿赂支付者(提高 bundle 打包优先级)
|
|
@@ -296,7 +302,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
296
302
|
gasPrice,
|
|
297
303
|
gasLimit: GAS_LIMITS.BRIBE,
|
|
298
304
|
chainId,
|
|
299
|
-
type: txType
|
|
305
|
+
type: txType
|
|
300
306
|
});
|
|
301
307
|
allTransactions.push(bribeTx);
|
|
302
308
|
}
|
|
@@ -306,42 +312,125 @@ export async function flapBundleCreateToDex(params) {
|
|
|
306
312
|
const devNonce = noncesMap.get(devAddr);
|
|
307
313
|
noncesMap.set(devAddr, devNonce + 1);
|
|
308
314
|
const originalPortal = new Contract(originalPortalAddress, PORTAL_ABI, devWallet);
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
315
|
+
// ✅ 判断使用哪个版本的 newToken
|
|
316
|
+
// V5: 提供了 taxV2Config(Tax Token V2 高级税收分配)
|
|
317
|
+
// V4: 提供了 dexId 或 lpFeeProfile(支持 DEX 选择和 LP 费率配置)
|
|
318
|
+
// V3: 提供了 extensionID(支持扩展数据)
|
|
319
|
+
// V2: 默认
|
|
320
|
+
const useV5 = params.taxV2Config !== undefined && (params.taxRate ?? 0) > 0;
|
|
321
|
+
const useV4 = !useV5 && (params.dexId !== undefined || params.lpFeeProfile !== undefined);
|
|
322
|
+
const useV3 = !useV5 && !useV4 && !!params.extensionID;
|
|
323
|
+
let createUnsigned;
|
|
324
|
+
if (useV5) {
|
|
325
|
+
// V5: Tax Token V2 高级税收分配
|
|
326
|
+
const tv2 = params.taxV2Config;
|
|
327
|
+
const hasVault = tv2.vaultConfig && tv2.vaultConfig.vaultType !== 'none';
|
|
328
|
+
if (hasVault) {
|
|
329
|
+
const chainKey = chain.toUpperCase();
|
|
330
|
+
const vaultPortalAddr = VAULT_PORTAL_ADDRESSES[chainKey];
|
|
331
|
+
if (!vaultPortalAddr) {
|
|
332
|
+
throw new Error(`链 "${chain}" 不支持 Tax Vault 金库功能`);
|
|
333
|
+
}
|
|
334
|
+
const vaultPortal = new Contract(vaultPortalAddr, VAULT_PORTAL_ABI, devWallet);
|
|
335
|
+
const v6VaultParams = buildNewTokenV6WithVaultParams({
|
|
336
|
+
tokenInfo,
|
|
337
|
+
taxV2: tv2,
|
|
338
|
+
chain: chainKey,
|
|
339
|
+
salt: params.salt,
|
|
340
|
+
taxRate: params.taxRate,
|
|
341
|
+
buyTaxRate: params.buyTaxRate,
|
|
342
|
+
sellTaxRate: params.sellTaxRate,
|
|
343
|
+
dexThresh: params.dexThresh,
|
|
344
|
+
migratorType: params.migratorType,
|
|
345
|
+
quoteToken: inputToken,
|
|
346
|
+
quoteAmt: 0n,
|
|
347
|
+
dexId: params.dexId,
|
|
348
|
+
lpFeeProfile: params.lpFeeProfile,
|
|
349
|
+
});
|
|
350
|
+
createUnsigned = await vaultPortal.newTokenV6WithVault.populateTransaction(v6VaultParams);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
const v6Params = buildNewTokenV6Params({
|
|
354
|
+
tokenInfo,
|
|
355
|
+
taxV2: tv2,
|
|
356
|
+
beneficiary: devWallet.address,
|
|
357
|
+
salt: params.salt,
|
|
358
|
+
taxRate: params.taxRate,
|
|
359
|
+
buyTaxRate: params.buyTaxRate,
|
|
360
|
+
sellTaxRate: params.sellTaxRate,
|
|
361
|
+
dexThresh: params.dexThresh,
|
|
362
|
+
migratorType: params.migratorType,
|
|
363
|
+
quoteToken: inputToken,
|
|
364
|
+
quoteAmt: 0n,
|
|
365
|
+
dexId: params.dexId,
|
|
366
|
+
lpFeeProfile: params.lpFeeProfile,
|
|
367
|
+
extensionID: params.extensionID,
|
|
368
|
+
extensionData: params.extensionData,
|
|
369
|
+
});
|
|
370
|
+
createUnsigned = await originalPortal.newTokenV6.populateTransaction(v6Params);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
else if (useV4) {
|
|
374
|
+
// V4: 支持 DEX ID 和 LP 费率配置(用于选择池子费率)
|
|
375
|
+
createUnsigned = await originalPortal.newTokenV4.populateTransaction({
|
|
376
|
+
name: tokenInfo.name,
|
|
377
|
+
symbol: tokenInfo.symbol,
|
|
378
|
+
meta: tokenInfo.meta,
|
|
379
|
+
dexThresh: (params.dexThresh ?? 1) & 0xff,
|
|
380
|
+
salt: params.salt ?? '0x' + '00'.repeat(32),
|
|
381
|
+
taxRate: (params.taxRate ?? 0) & 0xffff,
|
|
382
|
+
migratorType: (params.migratorType ?? 0) & 0xff,
|
|
383
|
+
quoteToken: inputToken,
|
|
384
|
+
quoteAmt: 0n,
|
|
385
|
+
beneficiary: devWallet.address,
|
|
386
|
+
permitData: '0x',
|
|
387
|
+
extensionID: params.extensionID ?? '0x' + '00'.repeat(32),
|
|
388
|
+
extensionData: params.extensionData ?? '0x',
|
|
389
|
+
dexId: (params.dexId ?? 0) & 0xff,
|
|
390
|
+
lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
else if (useV3) {
|
|
394
|
+
// V3: 支持扩展数据
|
|
395
|
+
createUnsigned = await originalPortal.newTokenV3.populateTransaction({
|
|
396
|
+
name: tokenInfo.name,
|
|
397
|
+
symbol: tokenInfo.symbol,
|
|
398
|
+
meta: tokenInfo.meta,
|
|
399
|
+
dexThresh: (params.dexThresh ?? 1) & 0xff,
|
|
400
|
+
salt: params.salt ?? '0x' + '00'.repeat(32),
|
|
401
|
+
taxRate: (params.taxRate ?? 0) & 0xffff,
|
|
402
|
+
migratorType: (params.migratorType ?? 0) & 0xff,
|
|
403
|
+
quoteToken: inputToken,
|
|
404
|
+
quoteAmt: 0n,
|
|
405
|
+
beneficiary: devWallet.address,
|
|
406
|
+
permitData: '0x',
|
|
407
|
+
extensionID: params.extensionID,
|
|
408
|
+
extensionData: params.extensionData ?? '0x'
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
// V2: 基础版本
|
|
413
|
+
createUnsigned = await originalPortal.newTokenV2.populateTransaction({
|
|
414
|
+
name: tokenInfo.name,
|
|
415
|
+
symbol: tokenInfo.symbol,
|
|
416
|
+
meta: tokenInfo.meta,
|
|
417
|
+
dexThresh: (params.dexThresh ?? 1) & 0xff,
|
|
418
|
+
salt: params.salt ?? '0x' + '00'.repeat(32),
|
|
419
|
+
taxRate: (params.taxRate ?? 0) & 0xffff,
|
|
420
|
+
migratorType: (params.migratorType ?? 0) & 0xff,
|
|
421
|
+
quoteToken: inputToken,
|
|
422
|
+
quoteAmt: 0n,
|
|
423
|
+
beneficiary: devWallet.address,
|
|
424
|
+
permitData: '0x'
|
|
425
|
+
});
|
|
426
|
+
}
|
|
338
427
|
const createTx = {
|
|
339
428
|
...createUnsigned,
|
|
340
429
|
from: devWallet.address,
|
|
341
430
|
nonce: devNonce,
|
|
342
431
|
gasLimit: finalGasLimit,
|
|
343
432
|
chainId,
|
|
344
|
-
type: txType
|
|
433
|
+
type: txType
|
|
345
434
|
};
|
|
346
435
|
if (txType === 2) {
|
|
347
436
|
createTx.maxFeePerGas = gasPrice;
|
|
@@ -363,7 +452,8 @@ export async function flapBundleCreateToDex(params) {
|
|
|
363
452
|
if (!useNativeToken) {
|
|
364
453
|
const approveNonce = noncesMap.get(addr);
|
|
365
454
|
noncesMap.set(addr, approveNonce + 1);
|
|
366
|
-
const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId
|
|
455
|
+
const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId // ✅ 传递 chainId
|
|
456
|
+
);
|
|
367
457
|
signedTxs.push(approveTx);
|
|
368
458
|
}
|
|
369
459
|
// 构建买入交易
|
|
@@ -379,18 +469,16 @@ export async function flapBundleCreateToDex(params) {
|
|
|
379
469
|
inputAmount: curveBuyAmounts[i],
|
|
380
470
|
minOutputAmount: 0n,
|
|
381
471
|
permitData: '0x', // 不使用 permit,使用链上 approve
|
|
382
|
-
extensionData
|
|
472
|
+
extensionData
|
|
383
473
|
}, useNativeToken ? { value: curveBuyAmounts[i] } : {});
|
|
384
474
|
// 最后一个买家触发毕业,需要更多 gas
|
|
385
475
|
const isLastBuyer = i === curveWallets.length - 1;
|
|
386
476
|
// ⚠️ 触发毕业(创建 Pancake V3 池 + Mint 初始流动性)会非常耗 gas。
|
|
387
477
|
// 链上成功样例 0x29b173... 的 gasLimit=8,000,000,gasUsed≈6,647,149。
|
|
388
478
|
// Flap 官方示例脚本也使用 last_buy=8_000_000。
|
|
389
|
-
const LAST_BUY_GAS_LIMIT = BigInt(
|
|
479
|
+
const LAST_BUY_GAS_LIMIT = BigInt(8000000);
|
|
390
480
|
const buyGasLimit = isLastBuyer
|
|
391
|
-
? finalGasLimit > LAST_BUY_GAS_LIMIT
|
|
392
|
-
? finalGasLimit
|
|
393
|
-
: LAST_BUY_GAS_LIMIT
|
|
481
|
+
? (finalGasLimit > LAST_BUY_GAS_LIMIT ? finalGasLimit : LAST_BUY_GAS_LIMIT)
|
|
394
482
|
: finalGasLimit;
|
|
395
483
|
const tx = {
|
|
396
484
|
...unsigned,
|
|
@@ -399,7 +487,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
399
487
|
gasLimit: buyGasLimit,
|
|
400
488
|
chainId,
|
|
401
489
|
type: txType,
|
|
402
|
-
value: useNativeToken ? curveBuyAmounts[i] : 0n
|
|
490
|
+
value: useNativeToken ? curveBuyAmounts[i] : 0n
|
|
403
491
|
};
|
|
404
492
|
if (txType === 2) {
|
|
405
493
|
tx.maxFeePerGas = gasPrice;
|
|
@@ -414,11 +502,11 @@ export async function flapBundleCreateToDex(params) {
|
|
|
414
502
|
});
|
|
415
503
|
const curveBuyResults = await Promise.all(curveBuyTxPromises);
|
|
416
504
|
// 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
|
|
417
|
-
curveBuyResults.forEach(
|
|
505
|
+
curveBuyResults.forEach(txs => allTransactions.push(...txs));
|
|
418
506
|
// 4. 外盘买入交易(直接调用 PancakeSwap Router)
|
|
419
507
|
// ✅ 重要修改:直接调用 PancakeSwap SmartRouter
|
|
420
508
|
// 参考官方代码: flap-bundle-release/app/v2/pvp/001_launch_buy.ts
|
|
421
|
-
//
|
|
509
|
+
//
|
|
422
510
|
// ⚠️ 关键:税代币(migratorType=1)毕业到 V2 池,必须用 swapExactTokensForTokens
|
|
423
511
|
// 普通代币(migratorType=0)毕业到 V3 池,使用 exactInputSingle
|
|
424
512
|
if (enableDexBuy && dexWallets.length > 0) {
|
|
@@ -441,7 +529,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
441
529
|
// migratorType === 1 (V2_MIGRATOR) → 毕业到 V2 池 → 必须使用 V2 买入
|
|
442
530
|
// migratorType === 0 (V3_MIGRATOR) → 毕业到 V3 池 → 使用 V3 买入
|
|
443
531
|
// 参考: flap-bundle-release 中税代币使用 PoolType.V2,普通代币使用 PoolType.V3
|
|
444
|
-
const effectiveDexPoolType = params.migratorType === 1 ? 'v2' : dexPoolType || 'v3';
|
|
532
|
+
const effectiveDexPoolType = (params.migratorType === 1) ? 'v2' : (dexPoolType || 'v3');
|
|
445
533
|
// 获取 V3 费率(仅 V3 池使用)
|
|
446
534
|
const dexV3Fee = actualV3Fee;
|
|
447
535
|
const dexBuyTxPromises = dexWallets.map(async ({ wallet }, i) => {
|
|
@@ -470,7 +558,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
470
558
|
buyAmount,
|
|
471
559
|
0n, // amountOutMin: 不设置滑点保护(Bundle 中可以接受)
|
|
472
560
|
[tokenIn, tokenAddress], // path: WBNB/QuoteToken → Token
|
|
473
|
-
wallet.address
|
|
561
|
+
wallet.address // recipient
|
|
474
562
|
]);
|
|
475
563
|
multicallData = routerInterface.encodeFunctionData('multicall', [[swapData]]);
|
|
476
564
|
}
|
|
@@ -483,14 +571,14 @@ export async function flapBundleCreateToDex(params) {
|
|
|
483
571
|
recipient: wallet.address,
|
|
484
572
|
amountIn: buyAmount,
|
|
485
573
|
amountOutMinimum: 0n, // 不设置滑点保护(Bundle 中可以接受)
|
|
486
|
-
sqrtPriceLimitX96: 0n
|
|
574
|
+
sqrtPriceLimitX96: 0n
|
|
487
575
|
};
|
|
488
576
|
const exactInputSingleData = routerInterface.encodeFunctionData('exactInputSingle', [exactInputSingleParams]);
|
|
489
577
|
multicallData = routerInterface.encodeFunctionData('multicall', [[exactInputSingleData]]);
|
|
490
578
|
}
|
|
491
579
|
// ⚠️ Pancake SmartRouter 外盘买的 gas 不能太小,否则 bundle 预执行会直接失败。
|
|
492
580
|
// Flap 官方示例配置 dex_buy=5_000_000(flap-bundle-release/app/configs/global.ts)。
|
|
493
|
-
const DEX_BUY_GAS_LIMIT = BigInt(
|
|
581
|
+
const DEX_BUY_GAS_LIMIT = BigInt(8000000);
|
|
494
582
|
const tx = {
|
|
495
583
|
to: smartRouterAddress,
|
|
496
584
|
data: multicallData,
|
|
@@ -498,7 +586,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
498
586
|
gasLimit: DEX_BUY_GAS_LIMIT,
|
|
499
587
|
chainId,
|
|
500
588
|
type: txType,
|
|
501
|
-
value: useNativeToken ? buyAmount : 0n
|
|
589
|
+
value: useNativeToken ? buyAmount : 0n
|
|
502
590
|
};
|
|
503
591
|
if (txType === 2) {
|
|
504
592
|
tx.maxFeePerGas = gasPrice;
|
|
@@ -513,7 +601,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
513
601
|
});
|
|
514
602
|
const dexBuyResults = await Promise.all(dexBuyTxPromises);
|
|
515
603
|
// 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
|
|
516
|
-
dexBuyResults.forEach(
|
|
604
|
+
dexBuyResults.forEach(txs => allTransactions.push(...txs));
|
|
517
605
|
}
|
|
518
606
|
// 5. 利润多跳转账
|
|
519
607
|
let profitHopWallets;
|
|
@@ -531,7 +619,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
531
619
|
gasPrice,
|
|
532
620
|
chainId,
|
|
533
621
|
txType,
|
|
534
|
-
startNonce: profitNonce
|
|
622
|
+
startNonce: profitNonce
|
|
535
623
|
});
|
|
536
624
|
allTransactions.push(...profitResult.signedTransactions);
|
|
537
625
|
profitHopWallets = profitResult.hopWallets;
|
|
@@ -548,7 +636,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
548
636
|
enableDexBuy,
|
|
549
637
|
dexBuyerCount: dexBuyers.length,
|
|
550
638
|
dexTotalBuy: dexBuyAmounts.length > 0 ? ethers.formatEther(dexBuyAmounts.reduce((a, b) => a + b, 0n)) : '0',
|
|
551
|
-
profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined
|
|
552
|
-
}
|
|
639
|
+
profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined
|
|
640
|
+
}
|
|
553
641
|
};
|
|
554
642
|
}
|