four-flap-meme-sdk 2.2.1 → 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.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 +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 +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 +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 -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 +172 -92
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +1 -2
- 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 +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 -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 -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/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
|
@@ -8,67 +8,67 @@
|
|
|
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 { ZERO_ADDRESS } from '../../../
|
|
13
|
+
import { buildNewTokenV6WithVaultParams, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI } from '../vault.js';
|
|
14
|
+
import { PROFIT_CONFIG, ZERO_ADDRESS } from '../../../utils/constants.js';
|
|
15
15
|
import { GAS_LIMITS } from '../../constants/index.js';
|
|
16
|
-
import { getGasPriceConfig, getTxType, getProfitRecipient,
|
|
16
|
+
import { getGasPriceConfig, getTxType, getProfitRecipient, getBribeAmount, BLOCKRAZOR_BUILDER_EOA, PORTAL_ABI } from './config.js';
|
|
17
17
|
// ==================== ERC20 ABI ====================
|
|
18
18
|
const ERC20_ABI = [
|
|
19
19
|
{
|
|
20
|
-
type:
|
|
21
|
-
name:
|
|
20
|
+
type: "function",
|
|
21
|
+
name: "approve",
|
|
22
22
|
inputs: [
|
|
23
|
-
{ name:
|
|
24
|
-
{ name:
|
|
23
|
+
{ name: "spender", type: "address" },
|
|
24
|
+
{ name: "amount", type: "uint256" }
|
|
25
25
|
],
|
|
26
|
-
outputs: [{ name:
|
|
27
|
-
stateMutability:
|
|
28
|
-
}
|
|
26
|
+
outputs: [{ name: "", type: "bool" }],
|
|
27
|
+
stateMutability: "nonpayable"
|
|
28
|
+
}
|
|
29
29
|
];
|
|
30
30
|
// ==================== PancakeSwap Router ABI ====================
|
|
31
31
|
const PANCAKE_ROUTER_ABI = [
|
|
32
32
|
{
|
|
33
|
-
type:
|
|
34
|
-
name:
|
|
33
|
+
type: "function",
|
|
34
|
+
name: "exactInputSingle",
|
|
35
35
|
inputs: [
|
|
36
36
|
{
|
|
37
|
-
name:
|
|
38
|
-
type:
|
|
37
|
+
name: "params",
|
|
38
|
+
type: "tuple",
|
|
39
39
|
components: [
|
|
40
|
-
{ name:
|
|
41
|
-
{ name:
|
|
42
|
-
{ name:
|
|
43
|
-
{ name:
|
|
44
|
-
{ name:
|
|
45
|
-
{ name:
|
|
46
|
-
{ name:
|
|
47
|
-
]
|
|
48
|
-
}
|
|
40
|
+
{ name: "tokenIn", type: "address" },
|
|
41
|
+
{ name: "tokenOut", type: "address" },
|
|
42
|
+
{ name: "fee", type: "uint24" },
|
|
43
|
+
{ name: "recipient", type: "address" },
|
|
44
|
+
{ name: "amountIn", type: "uint256" },
|
|
45
|
+
{ name: "amountOutMinimum", type: "uint256" },
|
|
46
|
+
{ name: "sqrtPriceLimitX96", type: "uint160" }
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
49
|
],
|
|
50
|
-
outputs: [{ name:
|
|
51
|
-
stateMutability:
|
|
50
|
+
outputs: [{ name: "amountOut", type: "uint256" }],
|
|
51
|
+
stateMutability: "payable"
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
|
-
type:
|
|
55
|
-
name:
|
|
56
|
-
inputs: [{ name:
|
|
57
|
-
outputs: [{ name:
|
|
58
|
-
stateMutability:
|
|
54
|
+
type: "function",
|
|
55
|
+
name: "multicall",
|
|
56
|
+
inputs: [{ name: "data", type: "bytes[]" }],
|
|
57
|
+
outputs: [{ name: "results", type: "bytes[]" }],
|
|
58
|
+
stateMutability: "payable"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
type:
|
|
62
|
-
name:
|
|
61
|
+
type: "function",
|
|
62
|
+
name: "swapExactTokensForTokens",
|
|
63
63
|
inputs: [
|
|
64
|
-
{ name:
|
|
65
|
-
{ name:
|
|
66
|
-
{ name:
|
|
67
|
-
{ name:
|
|
64
|
+
{ name: "amountIn", type: "uint256" },
|
|
65
|
+
{ name: "amountOutMin", type: "uint256" },
|
|
66
|
+
{ name: "path", type: "address[]" },
|
|
67
|
+
{ name: "to", type: "address" }
|
|
68
68
|
],
|
|
69
|
-
outputs: [{ name:
|
|
70
|
-
stateMutability:
|
|
71
|
-
}
|
|
69
|
+
outputs: [{ name: "amountOut", type: "uint256" }],
|
|
70
|
+
stateMutability: "payable"
|
|
71
|
+
}
|
|
72
72
|
];
|
|
73
73
|
// ==================== DEX 地址常量 ====================
|
|
74
74
|
const DEX_ADDRESSES = {
|
|
@@ -85,7 +85,7 @@ const DEX_ADDRESSES = {
|
|
|
85
85
|
// ✅ Base 使用 Uniswap V3 SwapRouter02
|
|
86
86
|
UNISWAP_SMART_ROUTER: '0x2626664c2603336E57B271c5C0b26F421741e481',
|
|
87
87
|
WETH: '0x4200000000000000000000000000000000000006',
|
|
88
|
-
}
|
|
88
|
+
}
|
|
89
89
|
};
|
|
90
90
|
// ==================== 链常量 ====================
|
|
91
91
|
// 获取链配置
|
|
@@ -102,7 +102,8 @@ function getChainConfig(chain) {
|
|
|
102
102
|
}
|
|
103
103
|
// ==================== 工具函数 ====================
|
|
104
104
|
/** 构建 ERC20 approve 交易 */
|
|
105
|
-
async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amount, nonce, gasPrice, txType, chainId = 56
|
|
105
|
+
async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amount, nonce, gasPrice, txType, chainId = 56 // ✅ 添加 chainId 参数
|
|
106
|
+
) {
|
|
106
107
|
const erc20Interface = new ethers.Interface(ERC20_ABI);
|
|
107
108
|
const data = erc20Interface.encodeFunctionData('approve', [spenderAddress, amount]);
|
|
108
109
|
const tx = {
|
|
@@ -110,9 +111,9 @@ async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amo
|
|
|
110
111
|
data,
|
|
111
112
|
from: wallet.address,
|
|
112
113
|
nonce,
|
|
113
|
-
gasLimit: BigInt(
|
|
114
|
+
gasLimit: BigInt(100000), // approve 交易 gas 较低
|
|
114
115
|
chainId,
|
|
115
|
-
type: txType
|
|
116
|
+
type: txType
|
|
116
117
|
};
|
|
117
118
|
if (txType === 2) {
|
|
118
119
|
const priorityFee = gasPrice / 10n === 0n ? 1n : gasPrice / 10n;
|
|
@@ -166,11 +167,11 @@ function parseQuoteAmount(amount, useNativeToken, quoteTokenDecimals) {
|
|
|
166
167
|
* 若 SDK 这里再次 splitAmount,会导致实际 buyAmount 与 UI/预期不一致,并引发余额不足(insufficient funds)。
|
|
167
168
|
*/
|
|
168
169
|
function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenDecimals) {
|
|
169
|
-
const provided = buyers.map(
|
|
170
|
+
const provided = buyers.map(b => b?.buyAmount).filter(v => v != null && String(v).trim() !== '');
|
|
170
171
|
const allProvided = provided.length === buyers.length;
|
|
171
172
|
if (allProvided) {
|
|
172
173
|
// ✅ 所有买家都显式提供了 buyAmount:按传入金额构建,但要修正“浮点/四舍五入导致总和偏差”
|
|
173
|
-
const amounts = buyers.map(
|
|
174
|
+
const amounts = buyers.map(b => parseQuoteAmount(String(b.buyAmount), useNativeToken, quoteTokenDecimals));
|
|
174
175
|
const totalWei = parseQuoteAmount(totalAmountStr, useNativeToken, quoteTokenDecimals);
|
|
175
176
|
const sum = amounts.reduce((a, b) => a + b, 0n);
|
|
176
177
|
const delta = totalWei - sum;
|
|
@@ -200,7 +201,7 @@ function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenD
|
|
|
200
201
|
* 5. 利润多跳转账
|
|
201
202
|
*/
|
|
202
203
|
export async function flapBundleCreateToDex(params) {
|
|
203
|
-
const { chain, devPrivateKey, tokenInfo, tokenAddress, quoteToken, quoteTokenDecimals = 18, curveBuyers, curveTotalBuyAmount, enableDexBuy = false, dexBuyers = [], dexTotalBuyAmount, dexPoolType = 'v3', v3Fee = 2500, config
|
|
204
|
+
const { chain, devPrivateKey, tokenInfo, tokenAddress, quoteToken, quoteTokenDecimals = 18, curveBuyers, curveTotalBuyAmount, enableDexBuy = false, dexBuyers = [], dexTotalBuyAmount, dexPoolType = 'v3', v3Fee = 2500, config } = params;
|
|
204
205
|
// 验证参数
|
|
205
206
|
if (curveBuyers.length === 0) {
|
|
206
207
|
throw new Error('至少需要一个内盘买入钱包');
|
|
@@ -234,30 +235,34 @@ export async function flapBundleCreateToDex(params) {
|
|
|
234
235
|
// 创建 Provider
|
|
235
236
|
const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
|
|
236
237
|
chainId,
|
|
237
|
-
name: chain.toUpperCase()
|
|
238
|
+
name: chain.toUpperCase()
|
|
238
239
|
});
|
|
239
240
|
const portalAddress = FLAP_PORTAL_ADDRESSES[chain.toUpperCase()];
|
|
240
241
|
const originalPortalAddress = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain.toUpperCase()];
|
|
241
242
|
const nonceManager = new NonceManager(provider);
|
|
242
243
|
// 创建钱包实例
|
|
243
244
|
const devWallet = new Wallet(devPrivateKey, provider);
|
|
244
|
-
const curveWallets = curveBuyers.map(
|
|
245
|
+
const curveWallets = curveBuyers.map(b => ({
|
|
245
246
|
wallet: new Wallet(b.privateKey, provider),
|
|
246
|
-
buyAmount: b.buyAmount
|
|
247
|
+
buyAmount: b.buyAmount
|
|
247
248
|
}));
|
|
248
|
-
const dexWallets = (enableDexBuy ? dexBuyers : []).map(
|
|
249
|
+
const dexWallets = (enableDexBuy ? dexBuyers : []).map(b => ({
|
|
249
250
|
wallet: new Wallet(b.privateKey, provider),
|
|
250
|
-
buyAmount: b.buyAmount
|
|
251
|
+
buyAmount: b.buyAmount
|
|
251
252
|
}));
|
|
252
253
|
// ✅ 并行获取 gasPrice + 所有钱包 nonces
|
|
253
|
-
const allWallets = [
|
|
254
|
+
const allWallets = [
|
|
255
|
+
devWallet,
|
|
256
|
+
...curveWallets.map(c => c.wallet),
|
|
257
|
+
...dexWallets.map(d => d.wallet)
|
|
258
|
+
];
|
|
254
259
|
const uniqueWallets = allWallets.filter((w, i) => {
|
|
255
260
|
const addr = w.address.toLowerCase();
|
|
256
|
-
return allWallets.findIndex(
|
|
261
|
+
return allWallets.findIndex(x => x.address.toLowerCase() === addr) === i;
|
|
257
262
|
});
|
|
258
263
|
const [gasPrice, noncesArray] = await Promise.all([
|
|
259
264
|
getOptimizedGasPrice(provider, getGasPriceConfig(config)),
|
|
260
|
-
nonceManager.getNextNoncesForWallets(uniqueWallets)
|
|
265
|
+
nonceManager.getNextNoncesForWallets(uniqueWallets)
|
|
261
266
|
]);
|
|
262
267
|
// 构建 nonces Map
|
|
263
268
|
const noncesMap = new Map();
|
|
@@ -277,8 +282,9 @@ export async function flapBundleCreateToDex(params) {
|
|
|
277
282
|
dexBuyAmounts = resolveBuyerAmounts(dexBuyers, dexTotalBuyAmount, useNativeToken, quoteTokenDecimals);
|
|
278
283
|
}
|
|
279
284
|
// ✅ 计算利润
|
|
280
|
-
const totalBuyAmount = curveBuyAmounts.reduce((a, b) => a + b, 0n)
|
|
281
|
-
|
|
285
|
+
const totalBuyAmount = curveBuyAmounts.reduce((a, b) => a + b, 0n)
|
|
286
|
+
+ dexBuyAmounts.reduce((a, b) => a + b, 0n);
|
|
287
|
+
const profitAmount = (totalBuyAmount * BigInt(PROFIT_CONFIG.RATE_BPS)) / 10000n;
|
|
282
288
|
// ==================== 构建交易 ====================
|
|
283
289
|
const allTransactions = [];
|
|
284
290
|
// 使用第一个内盘买家作为贿赂支付者(提高 bundle 打包优先级)
|
|
@@ -295,7 +301,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
295
301
|
gasPrice,
|
|
296
302
|
gasLimit: GAS_LIMITS.BRIBE,
|
|
297
303
|
chainId,
|
|
298
|
-
type: txType
|
|
304
|
+
type: txType
|
|
299
305
|
});
|
|
300
306
|
allTransactions.push(bribeTx);
|
|
301
307
|
}
|
|
@@ -322,42 +328,30 @@ export async function flapBundleCreateToDex(params) {
|
|
|
322
328
|
if (total !== 10000) {
|
|
323
329
|
throw new Error(`Tax distribution must sum to 10000 (100%), got ${total}`);
|
|
324
330
|
}
|
|
325
|
-
// ✅ 判断是否使用金库模式(VaultPortal.
|
|
331
|
+
// ✅ 判断是否使用金库模式(VaultPortal.newTokenV6WithVault + TOKEN_TAXED_V3)
|
|
326
332
|
const hasVault = tv2.vaultConfig && tv2.vaultConfig.vaultType !== 'none';
|
|
327
333
|
if (hasVault) {
|
|
328
|
-
// ✅ 金库模式:通过 VaultPortal.
|
|
334
|
+
// ✅ 金库模式:通过 VaultPortal.newTokenV6WithVault 创建代币
|
|
329
335
|
const chainKey = chain.toUpperCase();
|
|
330
336
|
const vaultPortalAddr = VAULT_PORTAL_ADDRESSES[chainKey];
|
|
331
337
|
if (!vaultPortalAddr) {
|
|
332
338
|
throw new Error(`链 "${chain}" 不支持 Tax Vault 金库功能`);
|
|
333
339
|
}
|
|
334
340
|
const vaultPortal = new Contract(vaultPortalAddr, VAULT_PORTAL_ABI, devWallet);
|
|
335
|
-
const
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
migratorType: (params.migratorType ?? 0) & 0xff,
|
|
341
|
+
const v6Params = buildNewTokenV6WithVaultParams({
|
|
342
|
+
tokenInfo,
|
|
343
|
+
taxV2: tv2,
|
|
344
|
+
chain: chainKey,
|
|
345
|
+
salt: params.salt ?? ('0x' + '00'.repeat(32)),
|
|
346
|
+
taxRate: params.taxRate ?? 0,
|
|
347
|
+
dexThresh: params.dexThresh,
|
|
348
|
+
migratorType: params.migratorType,
|
|
344
349
|
quoteToken: inputToken,
|
|
345
350
|
quoteAmt: 0n,
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
extensionData: '0x',
|
|
349
|
-
dexId: (params.dexId ?? 0) & 0xff,
|
|
350
|
-
lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff,
|
|
351
|
-
taxDuration: BigInt(tv2.taxDuration),
|
|
352
|
-
antiFarmerDuration: BigInt(tv2.antiFarmerDuration),
|
|
353
|
-
mktBps: tv2.mktBps & 0xffff,
|
|
354
|
-
deflationBps: tv2.deflationBps & 0xffff,
|
|
355
|
-
dividendBps: tv2.dividendBps & 0xffff,
|
|
356
|
-
lpBps: tv2.lpBps & 0xffff,
|
|
357
|
-
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
|
|
358
|
-
vaultFactory,
|
|
359
|
-
vaultData,
|
|
351
|
+
dexId: params.dexId,
|
|
352
|
+
lpFeeProfile: params.lpFeeProfile,
|
|
360
353
|
});
|
|
354
|
+
createUnsigned = await vaultPortal.newTokenV6WithVault.populateTransaction(v6Params);
|
|
361
355
|
}
|
|
362
356
|
else {
|
|
363
357
|
// 标准 V5: Portal.newTokenV5(无金库)
|
|
@@ -383,7 +377,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
383
377
|
deflationBps: tv2.deflationBps & 0xffff,
|
|
384
378
|
dividendBps: tv2.dividendBps & 0xffff,
|
|
385
379
|
lpBps: tv2.lpBps & 0xffff,
|
|
386
|
-
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
|
|
380
|
+
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
|
|
387
381
|
});
|
|
388
382
|
}
|
|
389
383
|
}
|
|
@@ -404,7 +398,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
404
398
|
extensionID: params.extensionID ?? '0x' + '00'.repeat(32),
|
|
405
399
|
extensionData: params.extensionData ?? '0x',
|
|
406
400
|
dexId: (params.dexId ?? 0) & 0xff,
|
|
407
|
-
lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff
|
|
401
|
+
lpFeeProfile: (params.lpFeeProfile ?? 0) & 0xff
|
|
408
402
|
});
|
|
409
403
|
}
|
|
410
404
|
else if (useV3) {
|
|
@@ -422,7 +416,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
422
416
|
beneficiary: devWallet.address,
|
|
423
417
|
permitData: '0x',
|
|
424
418
|
extensionID: params.extensionID,
|
|
425
|
-
extensionData: params.extensionData ?? '0x'
|
|
419
|
+
extensionData: params.extensionData ?? '0x'
|
|
426
420
|
});
|
|
427
421
|
}
|
|
428
422
|
else {
|
|
@@ -438,7 +432,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
438
432
|
quoteToken: inputToken,
|
|
439
433
|
quoteAmt: 0n,
|
|
440
434
|
beneficiary: devWallet.address,
|
|
441
|
-
permitData: '0x'
|
|
435
|
+
permitData: '0x'
|
|
442
436
|
});
|
|
443
437
|
}
|
|
444
438
|
const createTx = {
|
|
@@ -447,7 +441,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
447
441
|
nonce: devNonce,
|
|
448
442
|
gasLimit: finalGasLimit,
|
|
449
443
|
chainId,
|
|
450
|
-
type: txType
|
|
444
|
+
type: txType
|
|
451
445
|
};
|
|
452
446
|
if (txType === 2) {
|
|
453
447
|
createTx.maxFeePerGas = gasPrice;
|
|
@@ -469,7 +463,8 @@ export async function flapBundleCreateToDex(params) {
|
|
|
469
463
|
if (!useNativeToken) {
|
|
470
464
|
const approveNonce = noncesMap.get(addr);
|
|
471
465
|
noncesMap.set(addr, approveNonce + 1);
|
|
472
|
-
const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId
|
|
466
|
+
const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId // ✅ 传递 chainId
|
|
467
|
+
);
|
|
473
468
|
signedTxs.push(approveTx);
|
|
474
469
|
}
|
|
475
470
|
// 构建买入交易
|
|
@@ -485,18 +480,16 @@ export async function flapBundleCreateToDex(params) {
|
|
|
485
480
|
inputAmount: curveBuyAmounts[i],
|
|
486
481
|
minOutputAmount: 0n,
|
|
487
482
|
permitData: '0x', // 不使用 permit,使用链上 approve
|
|
488
|
-
extensionData
|
|
483
|
+
extensionData
|
|
489
484
|
}, useNativeToken ? { value: curveBuyAmounts[i] } : {});
|
|
490
485
|
// 最后一个买家触发毕业,需要更多 gas
|
|
491
486
|
const isLastBuyer = i === curveWallets.length - 1;
|
|
492
487
|
// ⚠️ 触发毕业(创建 Pancake V3 池 + Mint 初始流动性)会非常耗 gas。
|
|
493
488
|
// 链上成功样例 0x29b173... 的 gasLimit=8,000,000,gasUsed≈6,647,149。
|
|
494
489
|
// Flap 官方示例脚本也使用 last_buy=8_000_000。
|
|
495
|
-
const LAST_BUY_GAS_LIMIT = BigInt(
|
|
490
|
+
const LAST_BUY_GAS_LIMIT = BigInt(8000000);
|
|
496
491
|
const buyGasLimit = isLastBuyer
|
|
497
|
-
? finalGasLimit > LAST_BUY_GAS_LIMIT
|
|
498
|
-
? finalGasLimit
|
|
499
|
-
: LAST_BUY_GAS_LIMIT
|
|
492
|
+
? (finalGasLimit > LAST_BUY_GAS_LIMIT ? finalGasLimit : LAST_BUY_GAS_LIMIT)
|
|
500
493
|
: finalGasLimit;
|
|
501
494
|
const tx = {
|
|
502
495
|
...unsigned,
|
|
@@ -505,7 +498,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
505
498
|
gasLimit: buyGasLimit,
|
|
506
499
|
chainId,
|
|
507
500
|
type: txType,
|
|
508
|
-
value: useNativeToken ? curveBuyAmounts[i] : 0n
|
|
501
|
+
value: useNativeToken ? curveBuyAmounts[i] : 0n
|
|
509
502
|
};
|
|
510
503
|
if (txType === 2) {
|
|
511
504
|
tx.maxFeePerGas = gasPrice;
|
|
@@ -520,11 +513,11 @@ export async function flapBundleCreateToDex(params) {
|
|
|
520
513
|
});
|
|
521
514
|
const curveBuyResults = await Promise.all(curveBuyTxPromises);
|
|
522
515
|
// 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
|
|
523
|
-
curveBuyResults.forEach(
|
|
516
|
+
curveBuyResults.forEach(txs => allTransactions.push(...txs));
|
|
524
517
|
// 4. 外盘买入交易(直接调用 PancakeSwap Router)
|
|
525
518
|
// ✅ 重要修改:直接调用 PancakeSwap SmartRouter
|
|
526
519
|
// 参考官方代码: flap-bundle-release/app/v2/pvp/001_launch_buy.ts
|
|
527
|
-
//
|
|
520
|
+
//
|
|
528
521
|
// ⚠️ 关键:税代币(migratorType=1)毕业到 V2 池,必须用 swapExactTokensForTokens
|
|
529
522
|
// 普通代币(migratorType=0)毕业到 V3 池,使用 exactInputSingle
|
|
530
523
|
if (enableDexBuy && dexWallets.length > 0) {
|
|
@@ -547,7 +540,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
547
540
|
// migratorType === 1 (V2_MIGRATOR) → 毕业到 V2 池 → 必须使用 V2 买入
|
|
548
541
|
// migratorType === 0 (V3_MIGRATOR) → 毕业到 V3 池 → 使用 V3 买入
|
|
549
542
|
// 参考: flap-bundle-release 中税代币使用 PoolType.V2,普通代币使用 PoolType.V3
|
|
550
|
-
const effectiveDexPoolType = params.migratorType === 1 ? 'v2' : dexPoolType || 'v3';
|
|
543
|
+
const effectiveDexPoolType = (params.migratorType === 1) ? 'v2' : (dexPoolType || 'v3');
|
|
551
544
|
// 获取 V3 费率(仅 V3 池使用)
|
|
552
545
|
const dexV3Fee = actualV3Fee;
|
|
553
546
|
const dexBuyTxPromises = dexWallets.map(async ({ wallet }, i) => {
|
|
@@ -576,7 +569,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
576
569
|
buyAmount,
|
|
577
570
|
0n, // amountOutMin: 不设置滑点保护(Bundle 中可以接受)
|
|
578
571
|
[tokenIn, tokenAddress], // path: WBNB/QuoteToken → Token
|
|
579
|
-
wallet.address
|
|
572
|
+
wallet.address // recipient
|
|
580
573
|
]);
|
|
581
574
|
multicallData = routerInterface.encodeFunctionData('multicall', [[swapData]]);
|
|
582
575
|
}
|
|
@@ -589,14 +582,14 @@ export async function flapBundleCreateToDex(params) {
|
|
|
589
582
|
recipient: wallet.address,
|
|
590
583
|
amountIn: buyAmount,
|
|
591
584
|
amountOutMinimum: 0n, // 不设置滑点保护(Bundle 中可以接受)
|
|
592
|
-
sqrtPriceLimitX96: 0n
|
|
585
|
+
sqrtPriceLimitX96: 0n
|
|
593
586
|
};
|
|
594
587
|
const exactInputSingleData = routerInterface.encodeFunctionData('exactInputSingle', [exactInputSingleParams]);
|
|
595
588
|
multicallData = routerInterface.encodeFunctionData('multicall', [[exactInputSingleData]]);
|
|
596
589
|
}
|
|
597
590
|
// ⚠️ Pancake SmartRouter 外盘买的 gas 不能太小,否则 bundle 预执行会直接失败。
|
|
598
591
|
// Flap 官方示例配置 dex_buy=5_000_000(flap-bundle-release/app/configs/global.ts)。
|
|
599
|
-
const DEX_BUY_GAS_LIMIT = BigInt(
|
|
592
|
+
const DEX_BUY_GAS_LIMIT = BigInt(8000000);
|
|
600
593
|
const tx = {
|
|
601
594
|
to: smartRouterAddress,
|
|
602
595
|
data: multicallData,
|
|
@@ -604,7 +597,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
604
597
|
gasLimit: DEX_BUY_GAS_LIMIT,
|
|
605
598
|
chainId,
|
|
606
599
|
type: txType,
|
|
607
|
-
value: useNativeToken ? buyAmount : 0n
|
|
600
|
+
value: useNativeToken ? buyAmount : 0n
|
|
608
601
|
};
|
|
609
602
|
if (txType === 2) {
|
|
610
603
|
tx.maxFeePerGas = gasPrice;
|
|
@@ -619,7 +612,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
619
612
|
});
|
|
620
613
|
const dexBuyResults = await Promise.all(dexBuyTxPromises);
|
|
621
614
|
// 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
|
|
622
|
-
dexBuyResults.forEach(
|
|
615
|
+
dexBuyResults.forEach(txs => allTransactions.push(...txs));
|
|
623
616
|
}
|
|
624
617
|
// 5. 利润多跳转账
|
|
625
618
|
let profitHopWallets;
|
|
@@ -637,7 +630,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
637
630
|
gasPrice,
|
|
638
631
|
chainId,
|
|
639
632
|
txType,
|
|
640
|
-
startNonce: profitNonce
|
|
633
|
+
startNonce: profitNonce
|
|
641
634
|
});
|
|
642
635
|
allTransactions.push(...profitResult.signedTransactions);
|
|
643
636
|
profitHopWallets = profitResult.hopWallets;
|
|
@@ -654,7 +647,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
654
647
|
enableDexBuy,
|
|
655
648
|
dexBuyerCount: dexBuyers.length,
|
|
656
649
|
dexTotalBuy: dexBuyAmounts.length > 0 ? ethers.formatEther(dexBuyAmounts.reduce((a, b) => a + b, 0n)) : '0',
|
|
657
|
-
profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined
|
|
658
|
-
}
|
|
650
|
+
profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined
|
|
651
|
+
}
|
|
659
652
|
};
|
|
660
653
|
}
|