four-flap-meme-sdk 2.2.8 → 2.2.11
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 +87 -20
- package/dist/index.js +217 -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 +254 -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 -4
- package/dist/shared/flap/index.js +5 -4
- package/dist/shared/flap/launch-v6.d.ts +127 -0
- package/dist/shared/flap/launch-v6.js +123 -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 +151 -142
- 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 +86 -86
- 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-create-token.d.ts +19 -37
- package/dist/shared/flap/portal-create-token.js +124 -121
- package/dist/shared/flap/portal.d.ts +2 -1
- package/dist/shared/flap/portal.js +28 -36
- package/dist/shared/flap/vanity.d.ts +6 -6
- package/dist/shared/flap/vanity.js +21 -15
- 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/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,68 +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 {
|
|
15
|
-
import { ZERO_ADDRESS } from '../../../shared/constants/index.js';
|
|
13
|
+
import { populateCreateTokenTransaction, resolveCreateTokenLaunchFlags, } from '../portal-create-token.js';
|
|
14
|
+
import { PROFIT_CONFIG, ZERO_ADDRESS } from '../../../utils/constants.js';
|
|
16
15
|
import { GAS_LIMITS } from '../../constants/index.js';
|
|
17
|
-
import { getGasPriceConfig, getTxType, getProfitRecipient,
|
|
16
|
+
import { getGasPriceConfig, getTxType, getProfitRecipient, getBribeAmount, BLOCKRAZOR_BUILDER_EOA, PORTAL_ABI } from './config.js';
|
|
18
17
|
// ==================== ERC20 ABI ====================
|
|
19
18
|
const ERC20_ABI = [
|
|
20
19
|
{
|
|
21
|
-
type:
|
|
22
|
-
name:
|
|
20
|
+
type: "function",
|
|
21
|
+
name: "approve",
|
|
23
22
|
inputs: [
|
|
24
|
-
{ name:
|
|
25
|
-
{ name:
|
|
23
|
+
{ name: "spender", type: "address" },
|
|
24
|
+
{ name: "amount", type: "uint256" }
|
|
26
25
|
],
|
|
27
|
-
outputs: [{ name:
|
|
28
|
-
stateMutability:
|
|
29
|
-
}
|
|
26
|
+
outputs: [{ name: "", type: "bool" }],
|
|
27
|
+
stateMutability: "nonpayable"
|
|
28
|
+
}
|
|
30
29
|
];
|
|
31
30
|
// ==================== PancakeSwap Router ABI ====================
|
|
32
31
|
const PANCAKE_ROUTER_ABI = [
|
|
33
32
|
{
|
|
34
|
-
type:
|
|
35
|
-
name:
|
|
33
|
+
type: "function",
|
|
34
|
+
name: "exactInputSingle",
|
|
36
35
|
inputs: [
|
|
37
36
|
{
|
|
38
|
-
name:
|
|
39
|
-
type:
|
|
37
|
+
name: "params",
|
|
38
|
+
type: "tuple",
|
|
40
39
|
components: [
|
|
41
|
-
{ name:
|
|
42
|
-
{ name:
|
|
43
|
-
{ name:
|
|
44
|
-
{ name:
|
|
45
|
-
{ name:
|
|
46
|
-
{ name:
|
|
47
|
-
{ name:
|
|
48
|
-
]
|
|
49
|
-
}
|
|
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
|
+
}
|
|
50
49
|
],
|
|
51
|
-
outputs: [{ name:
|
|
52
|
-
stateMutability:
|
|
50
|
+
outputs: [{ name: "amountOut", type: "uint256" }],
|
|
51
|
+
stateMutability: "payable"
|
|
53
52
|
},
|
|
54
53
|
{
|
|
55
|
-
type:
|
|
56
|
-
name:
|
|
57
|
-
inputs: [{ name:
|
|
58
|
-
outputs: [{ name:
|
|
59
|
-
stateMutability:
|
|
54
|
+
type: "function",
|
|
55
|
+
name: "multicall",
|
|
56
|
+
inputs: [{ name: "data", type: "bytes[]" }],
|
|
57
|
+
outputs: [{ name: "results", type: "bytes[]" }],
|
|
58
|
+
stateMutability: "payable"
|
|
60
59
|
},
|
|
61
60
|
{
|
|
62
|
-
type:
|
|
63
|
-
name:
|
|
61
|
+
type: "function",
|
|
62
|
+
name: "swapExactTokensForTokens",
|
|
64
63
|
inputs: [
|
|
65
|
-
{ name:
|
|
66
|
-
{ name:
|
|
67
|
-
{ name:
|
|
68
|
-
{ name:
|
|
64
|
+
{ name: "amountIn", type: "uint256" },
|
|
65
|
+
{ name: "amountOutMin", type: "uint256" },
|
|
66
|
+
{ name: "path", type: "address[]" },
|
|
67
|
+
{ name: "to", type: "address" }
|
|
69
68
|
],
|
|
70
|
-
outputs: [{ name:
|
|
71
|
-
stateMutability:
|
|
72
|
-
}
|
|
69
|
+
outputs: [{ name: "amountOut", type: "uint256" }],
|
|
70
|
+
stateMutability: "payable"
|
|
71
|
+
}
|
|
73
72
|
];
|
|
74
73
|
// ==================== DEX 地址常量 ====================
|
|
75
74
|
const DEX_ADDRESSES = {
|
|
@@ -86,7 +85,7 @@ const DEX_ADDRESSES = {
|
|
|
86
85
|
// ✅ Base 使用 Uniswap V3 SwapRouter02
|
|
87
86
|
UNISWAP_SMART_ROUTER: '0x2626664c2603336E57B271c5C0b26F421741e481',
|
|
88
87
|
WETH: '0x4200000000000000000000000000000000000006',
|
|
89
|
-
}
|
|
88
|
+
}
|
|
90
89
|
};
|
|
91
90
|
// ==================== 链常量 ====================
|
|
92
91
|
// 获取链配置
|
|
@@ -103,7 +102,8 @@ function getChainConfig(chain) {
|
|
|
103
102
|
}
|
|
104
103
|
// ==================== 工具函数 ====================
|
|
105
104
|
/** 构建 ERC20 approve 交易 */
|
|
106
|
-
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
|
+
) {
|
|
107
107
|
const erc20Interface = new ethers.Interface(ERC20_ABI);
|
|
108
108
|
const data = erc20Interface.encodeFunctionData('approve', [spenderAddress, amount]);
|
|
109
109
|
const tx = {
|
|
@@ -111,9 +111,9 @@ async function buildApproveTransaction(wallet, tokenAddress, spenderAddress, amo
|
|
|
111
111
|
data,
|
|
112
112
|
from: wallet.address,
|
|
113
113
|
nonce,
|
|
114
|
-
gasLimit: BigInt(
|
|
114
|
+
gasLimit: BigInt(100000), // approve 交易 gas 较低
|
|
115
115
|
chainId,
|
|
116
|
-
type: txType
|
|
116
|
+
type: txType
|
|
117
117
|
};
|
|
118
118
|
if (txType === 2) {
|
|
119
119
|
const priorityFee = gasPrice / 10n === 0n ? 1n : gasPrice / 10n;
|
|
@@ -167,11 +167,11 @@ function parseQuoteAmount(amount, useNativeToken, quoteTokenDecimals) {
|
|
|
167
167
|
* 若 SDK 这里再次 splitAmount,会导致实际 buyAmount 与 UI/预期不一致,并引发余额不足(insufficient funds)。
|
|
168
168
|
*/
|
|
169
169
|
function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenDecimals) {
|
|
170
|
-
const provided = buyers.map(
|
|
170
|
+
const provided = buyers.map(b => b?.buyAmount).filter(v => v != null && String(v).trim() !== '');
|
|
171
171
|
const allProvided = provided.length === buyers.length;
|
|
172
172
|
if (allProvided) {
|
|
173
173
|
// ✅ 所有买家都显式提供了 buyAmount:按传入金额构建,但要修正“浮点/四舍五入导致总和偏差”
|
|
174
|
-
const amounts = buyers.map(
|
|
174
|
+
const amounts = buyers.map(b => parseQuoteAmount(String(b.buyAmount), useNativeToken, quoteTokenDecimals));
|
|
175
175
|
const totalWei = parseQuoteAmount(totalAmountStr, useNativeToken, quoteTokenDecimals);
|
|
176
176
|
const sum = amounts.reduce((a, b) => a + b, 0n);
|
|
177
177
|
const delta = totalWei - sum;
|
|
@@ -201,7 +201,7 @@ function resolveBuyerAmounts(buyers, totalAmountStr, useNativeToken, quoteTokenD
|
|
|
201
201
|
* 5. 利润多跳转账
|
|
202
202
|
*/
|
|
203
203
|
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
|
|
204
|
+
const { chain, devPrivateKey, tokenInfo, tokenAddress, quoteToken, quoteTokenDecimals = 18, curveBuyers, curveTotalBuyAmount, enableDexBuy = false, dexBuyers = [], dexTotalBuyAmount, dexPoolType = 'v3', v3Fee = 2500, config } = params;
|
|
205
205
|
// 验证参数
|
|
206
206
|
if (curveBuyers.length === 0) {
|
|
207
207
|
throw new Error('至少需要一个内盘买入钱包');
|
|
@@ -235,30 +235,34 @@ export async function flapBundleCreateToDex(params) {
|
|
|
235
235
|
// 创建 Provider
|
|
236
236
|
const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
|
|
237
237
|
chainId,
|
|
238
|
-
name: chain.toUpperCase()
|
|
238
|
+
name: chain.toUpperCase()
|
|
239
239
|
});
|
|
240
240
|
const portalAddress = FLAP_PORTAL_ADDRESSES[chain.toUpperCase()];
|
|
241
241
|
const originalPortalAddress = FLAP_ORIGINAL_PORTAL_ADDRESSES[chain.toUpperCase()];
|
|
242
242
|
const nonceManager = new NonceManager(provider);
|
|
243
243
|
// 创建钱包实例
|
|
244
244
|
const devWallet = new Wallet(devPrivateKey, provider);
|
|
245
|
-
const curveWallets = curveBuyers.map(
|
|
245
|
+
const curveWallets = curveBuyers.map(b => ({
|
|
246
246
|
wallet: new Wallet(b.privateKey, provider),
|
|
247
|
-
buyAmount: b.buyAmount
|
|
247
|
+
buyAmount: b.buyAmount
|
|
248
248
|
}));
|
|
249
|
-
const dexWallets = (enableDexBuy ? dexBuyers : []).map(
|
|
249
|
+
const dexWallets = (enableDexBuy ? dexBuyers : []).map(b => ({
|
|
250
250
|
wallet: new Wallet(b.privateKey, provider),
|
|
251
|
-
buyAmount: b.buyAmount
|
|
251
|
+
buyAmount: b.buyAmount
|
|
252
252
|
}));
|
|
253
253
|
// ✅ 并行获取 gasPrice + 所有钱包 nonces
|
|
254
|
-
const allWallets = [
|
|
254
|
+
const allWallets = [
|
|
255
|
+
devWallet,
|
|
256
|
+
...curveWallets.map(c => c.wallet),
|
|
257
|
+
...dexWallets.map(d => d.wallet)
|
|
258
|
+
];
|
|
255
259
|
const uniqueWallets = allWallets.filter((w, i) => {
|
|
256
260
|
const addr = w.address.toLowerCase();
|
|
257
|
-
return allWallets.findIndex(
|
|
261
|
+
return allWallets.findIndex(x => x.address.toLowerCase() === addr) === i;
|
|
258
262
|
});
|
|
259
263
|
const [gasPrice, noncesArray] = await Promise.all([
|
|
260
264
|
getOptimizedGasPrice(provider, getGasPriceConfig(config)),
|
|
261
|
-
nonceManager.getNextNoncesForWallets(uniqueWallets)
|
|
265
|
+
nonceManager.getNextNoncesForWallets(uniqueWallets)
|
|
262
266
|
]);
|
|
263
267
|
// 构建 nonces Map
|
|
264
268
|
const noncesMap = new Map();
|
|
@@ -278,8 +282,9 @@ export async function flapBundleCreateToDex(params) {
|
|
|
278
282
|
dexBuyAmounts = resolveBuyerAmounts(dexBuyers, dexTotalBuyAmount, useNativeToken, quoteTokenDecimals);
|
|
279
283
|
}
|
|
280
284
|
// ✅ 计算利润
|
|
281
|
-
const totalBuyAmount = curveBuyAmounts.reduce((a, b) => a + b, 0n)
|
|
282
|
-
|
|
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;
|
|
283
288
|
// ==================== 构建交易 ====================
|
|
284
289
|
const allTransactions = [];
|
|
285
290
|
// 使用第一个内盘买家作为贿赂支付者(提高 bundle 打包优先级)
|
|
@@ -296,7 +301,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
296
301
|
gasPrice,
|
|
297
302
|
gasLimit: GAS_LIMITS.BRIBE,
|
|
298
303
|
chainId,
|
|
299
|
-
type: txType
|
|
304
|
+
type: txType
|
|
300
305
|
});
|
|
301
306
|
allTransactions.push(bribeTx);
|
|
302
307
|
}
|
|
@@ -306,14 +311,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
306
311
|
const devNonce = noncesMap.get(devAddr);
|
|
307
312
|
noncesMap.set(devAddr, devNonce + 1);
|
|
308
313
|
const originalPortal = new Contract(originalPortalAddress, PORTAL_ABI, devWallet);
|
|
309
|
-
const normalizedTax =
|
|
310
|
-
const isTaxLaunch = !!normalizedTax || (params.taxRate ?? 0) > 0;
|
|
311
|
-
const hasVault = !!normalizedTax?.vaultConfig && normalizedTax.vaultConfig.vaultType !== 'none';
|
|
312
|
-
const useV7Portal = !isTaxLaunch &&
|
|
313
|
-
!hasVault &&
|
|
314
|
-
(params.lpFeeProfile !== undefined ||
|
|
315
|
-
params.dexId !== undefined ||
|
|
316
|
-
params.migratorType === MigratorType.PCS_INFINITY_CL_MIGRATOR);
|
|
314
|
+
const { normalizedTax, useV7Portal } = resolveCreateTokenLaunchFlags(params);
|
|
317
315
|
const createUnsigned = await populateCreateTokenTransaction({
|
|
318
316
|
chain,
|
|
319
317
|
devWallet,
|
|
@@ -325,12 +323,15 @@ export async function flapBundleCreateToDex(params) {
|
|
|
325
323
|
salt: params.salt,
|
|
326
324
|
migratorType: params.migratorType,
|
|
327
325
|
taxRate: params.taxRate,
|
|
326
|
+
buyTaxRate: params.buyTaxRate,
|
|
327
|
+
sellTaxRate: params.sellTaxRate,
|
|
328
328
|
dexId: params.dexId,
|
|
329
329
|
lpFeeProfile: params.lpFeeProfile,
|
|
330
330
|
extensionID: params.extensionID,
|
|
331
331
|
extensionData: params.extensionData,
|
|
332
332
|
useV7Portal,
|
|
333
333
|
taxConfig: normalizedTax,
|
|
334
|
+
initialQuoteAmt: 0n,
|
|
334
335
|
});
|
|
335
336
|
const createTx = {
|
|
336
337
|
...createUnsigned,
|
|
@@ -338,7 +339,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
338
339
|
nonce: devNonce,
|
|
339
340
|
gasLimit: finalGasLimit,
|
|
340
341
|
chainId,
|
|
341
|
-
type: txType
|
|
342
|
+
type: txType
|
|
342
343
|
};
|
|
343
344
|
if (txType === 2) {
|
|
344
345
|
createTx.maxFeePerGas = gasPrice;
|
|
@@ -360,7 +361,8 @@ export async function flapBundleCreateToDex(params) {
|
|
|
360
361
|
if (!useNativeToken) {
|
|
361
362
|
const approveNonce = noncesMap.get(addr);
|
|
362
363
|
noncesMap.set(addr, approveNonce + 1);
|
|
363
|
-
const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId
|
|
364
|
+
const approveTx = await buildApproveTransaction(wallet, quoteToken, portalAddress, curveBuyAmounts[i], approveNonce, gasPrice, txType, chainId // ✅ 传递 chainId
|
|
365
|
+
);
|
|
364
366
|
signedTxs.push(approveTx);
|
|
365
367
|
}
|
|
366
368
|
// 构建买入交易
|
|
@@ -376,18 +378,16 @@ export async function flapBundleCreateToDex(params) {
|
|
|
376
378
|
inputAmount: curveBuyAmounts[i],
|
|
377
379
|
minOutputAmount: 0n,
|
|
378
380
|
permitData: '0x', // 不使用 permit,使用链上 approve
|
|
379
|
-
extensionData
|
|
381
|
+
extensionData
|
|
380
382
|
}, useNativeToken ? { value: curveBuyAmounts[i] } : {});
|
|
381
383
|
// 最后一个买家触发毕业,需要更多 gas
|
|
382
384
|
const isLastBuyer = i === curveWallets.length - 1;
|
|
383
385
|
// ⚠️ 触发毕业(创建 Pancake V3 池 + Mint 初始流动性)会非常耗 gas。
|
|
384
386
|
// 链上成功样例 0x29b173... 的 gasLimit=8,000,000,gasUsed≈6,647,149。
|
|
385
387
|
// Flap 官方示例脚本也使用 last_buy=8_000_000。
|
|
386
|
-
const LAST_BUY_GAS_LIMIT = BigInt(
|
|
388
|
+
const LAST_BUY_GAS_LIMIT = BigInt(8000000);
|
|
387
389
|
const buyGasLimit = isLastBuyer
|
|
388
|
-
? finalGasLimit > LAST_BUY_GAS_LIMIT
|
|
389
|
-
? finalGasLimit
|
|
390
|
-
: LAST_BUY_GAS_LIMIT
|
|
390
|
+
? (finalGasLimit > LAST_BUY_GAS_LIMIT ? finalGasLimit : LAST_BUY_GAS_LIMIT)
|
|
391
391
|
: finalGasLimit;
|
|
392
392
|
const tx = {
|
|
393
393
|
...unsigned,
|
|
@@ -396,7 +396,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
396
396
|
gasLimit: buyGasLimit,
|
|
397
397
|
chainId,
|
|
398
398
|
type: txType,
|
|
399
|
-
value: useNativeToken ? curveBuyAmounts[i] : 0n
|
|
399
|
+
value: useNativeToken ? curveBuyAmounts[i] : 0n
|
|
400
400
|
};
|
|
401
401
|
if (txType === 2) {
|
|
402
402
|
tx.maxFeePerGas = gasPrice;
|
|
@@ -411,11 +411,11 @@ export async function flapBundleCreateToDex(params) {
|
|
|
411
411
|
});
|
|
412
412
|
const curveBuyResults = await Promise.all(curveBuyTxPromises);
|
|
413
413
|
// 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
|
|
414
|
-
curveBuyResults.forEach(
|
|
414
|
+
curveBuyResults.forEach(txs => allTransactions.push(...txs));
|
|
415
415
|
// 4. 外盘买入交易(直接调用 PancakeSwap Router)
|
|
416
416
|
// ✅ 重要修改:直接调用 PancakeSwap SmartRouter
|
|
417
417
|
// 参考官方代码: flap-bundle-release/app/v2/pvp/001_launch_buy.ts
|
|
418
|
-
//
|
|
418
|
+
//
|
|
419
419
|
// ⚠️ 关键:税代币(migratorType=1)毕业到 V2 池,必须用 swapExactTokensForTokens
|
|
420
420
|
// 普通代币(migratorType=0)毕业到 V3 池,使用 exactInputSingle
|
|
421
421
|
if (enableDexBuy && dexWallets.length > 0) {
|
|
@@ -438,7 +438,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
438
438
|
// migratorType === 1 (V2_MIGRATOR) → 毕业到 V2 池 → 必须使用 V2 买入
|
|
439
439
|
// migratorType === 0 (V3_MIGRATOR) → 毕业到 V3 池 → 使用 V3 买入
|
|
440
440
|
// 参考: flap-bundle-release 中税代币使用 PoolType.V2,普通代币使用 PoolType.V3
|
|
441
|
-
const effectiveDexPoolType = params.migratorType === 1 ? 'v2' : dexPoolType || 'v3';
|
|
441
|
+
const effectiveDexPoolType = (params.migratorType === 1) ? 'v2' : (dexPoolType || 'v3');
|
|
442
442
|
// 获取 V3 费率(仅 V3 池使用)
|
|
443
443
|
const dexV3Fee = actualV3Fee;
|
|
444
444
|
const dexBuyTxPromises = dexWallets.map(async ({ wallet }, i) => {
|
|
@@ -467,7 +467,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
467
467
|
buyAmount,
|
|
468
468
|
0n, // amountOutMin: 不设置滑点保护(Bundle 中可以接受)
|
|
469
469
|
[tokenIn, tokenAddress], // path: WBNB/QuoteToken → Token
|
|
470
|
-
wallet.address
|
|
470
|
+
wallet.address // recipient
|
|
471
471
|
]);
|
|
472
472
|
multicallData = routerInterface.encodeFunctionData('multicall', [[swapData]]);
|
|
473
473
|
}
|
|
@@ -480,14 +480,14 @@ export async function flapBundleCreateToDex(params) {
|
|
|
480
480
|
recipient: wallet.address,
|
|
481
481
|
amountIn: buyAmount,
|
|
482
482
|
amountOutMinimum: 0n, // 不设置滑点保护(Bundle 中可以接受)
|
|
483
|
-
sqrtPriceLimitX96: 0n
|
|
483
|
+
sqrtPriceLimitX96: 0n
|
|
484
484
|
};
|
|
485
485
|
const exactInputSingleData = routerInterface.encodeFunctionData('exactInputSingle', [exactInputSingleParams]);
|
|
486
486
|
multicallData = routerInterface.encodeFunctionData('multicall', [[exactInputSingleData]]);
|
|
487
487
|
}
|
|
488
488
|
// ⚠️ Pancake SmartRouter 外盘买的 gas 不能太小,否则 bundle 预执行会直接失败。
|
|
489
489
|
// Flap 官方示例配置 dex_buy=5_000_000(flap-bundle-release/app/configs/global.ts)。
|
|
490
|
-
const DEX_BUY_GAS_LIMIT = BigInt(
|
|
490
|
+
const DEX_BUY_GAS_LIMIT = BigInt(8000000);
|
|
491
491
|
const tx = {
|
|
492
492
|
to: smartRouterAddress,
|
|
493
493
|
data: multicallData,
|
|
@@ -495,7 +495,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
495
495
|
gasLimit: DEX_BUY_GAS_LIMIT,
|
|
496
496
|
chainId,
|
|
497
497
|
type: txType,
|
|
498
|
-
value: useNativeToken ? buyAmount : 0n
|
|
498
|
+
value: useNativeToken ? buyAmount : 0n
|
|
499
499
|
};
|
|
500
500
|
if (txType === 2) {
|
|
501
501
|
tx.maxFeePerGas = gasPrice;
|
|
@@ -510,7 +510,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
510
510
|
});
|
|
511
511
|
const dexBuyResults = await Promise.all(dexBuyTxPromises);
|
|
512
512
|
// 展平数组:每个钱包可能有 [approve, buy] 或只有 [buy]
|
|
513
|
-
dexBuyResults.forEach(
|
|
513
|
+
dexBuyResults.forEach(txs => allTransactions.push(...txs));
|
|
514
514
|
}
|
|
515
515
|
// 5. 利润多跳转账
|
|
516
516
|
let profitHopWallets;
|
|
@@ -528,7 +528,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
528
528
|
gasPrice,
|
|
529
529
|
chainId,
|
|
530
530
|
txType,
|
|
531
|
-
startNonce: profitNonce
|
|
531
|
+
startNonce: profitNonce
|
|
532
532
|
});
|
|
533
533
|
allTransactions.push(...profitResult.signedTransactions);
|
|
534
534
|
profitHopWallets = profitResult.hopWallets;
|
|
@@ -545,7 +545,7 @@ export async function flapBundleCreateToDex(params) {
|
|
|
545
545
|
enableDexBuy,
|
|
546
546
|
dexBuyerCount: dexBuyers.length,
|
|
547
547
|
dexTotalBuy: dexBuyAmounts.length > 0 ? ethers.formatEther(dexBuyAmounts.reduce((a, b) => a + b, 0n)) : '0',
|
|
548
|
-
profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined
|
|
549
|
-
}
|
|
548
|
+
profitAmount: profitAmount > 0n ? ethers.formatEther(profitAmount) : undefined
|
|
549
|
+
}
|
|
550
550
|
};
|
|
551
551
|
}
|