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
|
@@ -24,14 +24,10 @@ const ZERO_HASH = '0x00000000000000000000000000000000000000000000000000000000000
|
|
|
24
24
|
*/
|
|
25
25
|
function lpFeeProfileToV3Fee(lpFeeProfile) {
|
|
26
26
|
switch (lpFeeProfile) {
|
|
27
|
-
case 0:
|
|
28
|
-
|
|
29
|
-
case 1
|
|
30
|
-
|
|
31
|
-
case 2:
|
|
32
|
-
return V3_FEE_TIERS.HIGH; // 1%
|
|
33
|
-
default:
|
|
34
|
-
return V3_FEE_TIERS.MEDIUM;
|
|
27
|
+
case 0: return V3_FEE_TIERS.MEDIUM; // 0.25%
|
|
28
|
+
case 1: return V3_FEE_TIERS.LOWEST; // 0.01%
|
|
29
|
+
case 2: return V3_FEE_TIERS.HIGH; // 1%
|
|
30
|
+
default: return V3_FEE_TIERS.MEDIUM;
|
|
35
31
|
}
|
|
36
32
|
}
|
|
37
33
|
/**
|
|
@@ -73,28 +69,24 @@ function encodeFlapBuyCall(tokenAddress, inputAmount, useV3OrV4 = false, extensi
|
|
|
73
69
|
const portalIface = new Interface(FLAP_PORTAL_ABI);
|
|
74
70
|
if (useV3OrV4) {
|
|
75
71
|
// V3/V4 代币使用 swapExactInputV3(支持 extensionData)
|
|
76
|
-
return portalIface.encodeFunctionData('swapExactInputV3', [
|
|
77
|
-
{
|
|
72
|
+
return portalIface.encodeFunctionData('swapExactInputV3', [{
|
|
78
73
|
inputToken: ZERO_ADDRESS,
|
|
79
74
|
outputToken: tokenAddress,
|
|
80
75
|
inputAmount,
|
|
81
76
|
minOutputAmount: 0n,
|
|
82
77
|
permitData: '0x',
|
|
83
78
|
extensionData,
|
|
84
|
-
}
|
|
85
|
-
]);
|
|
79
|
+
}]);
|
|
86
80
|
}
|
|
87
81
|
else {
|
|
88
82
|
// V2 代币使用 swapExactInput
|
|
89
|
-
return portalIface.encodeFunctionData('swapExactInput', [
|
|
90
|
-
{
|
|
83
|
+
return portalIface.encodeFunctionData('swapExactInput', [{
|
|
91
84
|
inputToken: ZERO_ADDRESS,
|
|
92
85
|
outputToken: tokenAddress,
|
|
93
86
|
inputAmount,
|
|
94
87
|
minOutputAmount: 0n,
|
|
95
88
|
permitData: '0x',
|
|
96
|
-
}
|
|
97
|
-
]);
|
|
89
|
+
}]);
|
|
98
90
|
}
|
|
99
91
|
}
|
|
100
92
|
/**
|
|
@@ -106,8 +98,7 @@ function encodeV3BuyCall(tokenAddress, fee, recipient, deadline, amountIn) {
|
|
|
106
98
|
'function multicall(uint256 deadline, bytes[] data) external payable returns (bytes[])',
|
|
107
99
|
'function refundETH() external payable',
|
|
108
100
|
]);
|
|
109
|
-
const exactInputData = routerIface.encodeFunctionData('exactInputSingle', [
|
|
110
|
-
{
|
|
101
|
+
const exactInputData = routerIface.encodeFunctionData('exactInputSingle', [{
|
|
111
102
|
tokenIn: WOKB_ADDRESS,
|
|
112
103
|
tokenOut: tokenAddress,
|
|
113
104
|
fee,
|
|
@@ -115,8 +106,7 @@ function encodeV3BuyCall(tokenAddress, fee, recipient, deadline, amountIn) {
|
|
|
115
106
|
amountIn,
|
|
116
107
|
amountOutMinimum: 0n,
|
|
117
108
|
sqrtPriceLimitX96: 0n,
|
|
118
|
-
}
|
|
119
|
-
]);
|
|
109
|
+
}]);
|
|
120
110
|
const refundEthData = routerIface.encodeFunctionData('refundETH', []);
|
|
121
111
|
return routerIface.encodeFunctionData('multicall', [deadline, [exactInputData, refundEthData]]);
|
|
122
112
|
}
|
|
@@ -170,21 +160,22 @@ export async function bundleCreateBuy(params) {
|
|
|
170
160
|
const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
|
|
171
161
|
// 创建钱包
|
|
172
162
|
const devWallet = createWallet(devPrivateKey, provider);
|
|
173
|
-
const buyerWallets = buyerPrivateKeys.map(
|
|
163
|
+
const buyerWallets = buyerPrivateKeys.map(pk => createWallet(pk, provider));
|
|
174
164
|
const allWallets = [devWallet, ...buyerWallets];
|
|
175
165
|
const mainWallet = devWallet;
|
|
176
166
|
// 计算买入金额和利润(单边模式:只有买入)
|
|
177
|
-
const buyAmountsWei = buyAmounts.map(
|
|
167
|
+
const buyAmountsWei = buyAmounts.map(amt => ethers.parseEther(amt));
|
|
178
168
|
const totalBuyAmount = buyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
|
|
179
169
|
const profitAmount = calculateProfitAmountByUserType(totalBuyAmount, userType, false); // ✅ 支持 userType
|
|
180
170
|
const profitRecipient = getProfitRecipient(config);
|
|
181
171
|
// 并行获取 nonce 和 fee data
|
|
182
172
|
const [nonces, feeData] = await Promise.all([
|
|
183
|
-
batchGetNonces(allWallets.map(
|
|
173
|
+
batchGetNonces(allWallets.map(w => w.address), provider),
|
|
184
174
|
provider.getFeeData(),
|
|
185
175
|
]);
|
|
186
176
|
// 签名授权
|
|
187
|
-
const authorizations = signAuthorizationsWithNonces(allWallets, nonces, delegateAddress, 0
|
|
177
|
+
const authorizations = signAuthorizationsWithNonces(allWallets, nonces, delegateAddress, 0 // devWallet 是主钱包,索引 0
|
|
178
|
+
);
|
|
188
179
|
// 构建调用
|
|
189
180
|
const calls = [];
|
|
190
181
|
// 1. 利润转账(从开发者钱包)
|
|
@@ -225,7 +216,7 @@ export async function bundleCreateBuy(params) {
|
|
|
225
216
|
deflationBps: tv2.deflationBps,
|
|
226
217
|
dividendBps: tv2.dividendBps,
|
|
227
218
|
lpBps: tv2.lpBps,
|
|
228
|
-
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
|
|
219
|
+
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
|
|
229
220
|
});
|
|
230
221
|
}
|
|
231
222
|
else if (useV4) {
|
|
@@ -280,15 +271,11 @@ export async function bundleCreateBuy(params) {
|
|
|
280
271
|
});
|
|
281
272
|
}
|
|
282
273
|
// 使用 executeBatch 从 devWallet 调用 Portal.newToken
|
|
283
|
-
const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
|
|
284
|
-
[
|
|
285
|
-
{
|
|
274
|
+
const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
|
|
286
275
|
target: FLAP_PORTAL_ADDRESS,
|
|
287
276
|
value: params.quoteAmt ?? 0n,
|
|
288
277
|
data: createData,
|
|
289
|
-
}
|
|
290
|
-
],
|
|
291
|
-
]);
|
|
278
|
+
}]]);
|
|
292
279
|
calls.push({
|
|
293
280
|
target: devWallet.address,
|
|
294
281
|
allowFailure: false,
|
|
@@ -303,15 +290,11 @@ export async function bundleCreateBuy(params) {
|
|
|
303
290
|
const buyAmount = buyAmountsWei[i];
|
|
304
291
|
// 使用 executeBatch 从 buyerWallet 调用 Portal
|
|
305
292
|
const buyData = encodeFlapBuyCall(tokenAddress, buyAmount, useV3OrV4, extensionData);
|
|
306
|
-
const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
|
|
307
|
-
[
|
|
308
|
-
{
|
|
293
|
+
const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
|
|
309
294
|
target: FLAP_PORTAL_ADDRESS,
|
|
310
295
|
value: buyAmount,
|
|
311
296
|
data: buyData,
|
|
312
|
-
}
|
|
313
|
-
],
|
|
314
|
-
]);
|
|
297
|
+
}]]);
|
|
315
298
|
// ✅ 修复:value 设为 0n,让钱包使用自己余额买入
|
|
316
299
|
calls.push({
|
|
317
300
|
target: buyerWallet.address,
|
|
@@ -363,19 +346,19 @@ export async function bundleCreateToDex(params) {
|
|
|
363
346
|
const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
|
|
364
347
|
// 创建钱包
|
|
365
348
|
const payerWallet = createWallet(payerPrivateKey, provider);
|
|
366
|
-
const curveBuyerWallets = curveBuyerPrivateKeys.map(
|
|
367
|
-
const dexBuyerWallets = dexBuyerPrivateKeys.map(
|
|
349
|
+
const curveBuyerWallets = curveBuyerPrivateKeys.map(pk => createWallet(pk, provider));
|
|
350
|
+
const dexBuyerWallets = dexBuyerPrivateKeys.map(pk => createWallet(pk, provider));
|
|
368
351
|
// 合并所有钱包(去重)
|
|
369
352
|
const allWalletsMap = new Map();
|
|
370
353
|
allWalletsMap.set(payerWallet.address.toLowerCase(), payerWallet);
|
|
371
|
-
curveBuyerWallets.forEach(
|
|
372
|
-
dexBuyerWallets.forEach(
|
|
354
|
+
curveBuyerWallets.forEach(w => allWalletsMap.set(w.address.toLowerCase(), w));
|
|
355
|
+
dexBuyerWallets.forEach(w => allWalletsMap.set(w.address.toLowerCase(), w));
|
|
373
356
|
const allWallets = Array.from(allWalletsMap.values());
|
|
374
357
|
const mainWallet = payerWallet;
|
|
375
|
-
const mainWalletIndex = allWallets.findIndex(
|
|
358
|
+
const mainWalletIndex = allWallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
|
|
376
359
|
// 计算金额和利润(单边模式:只有买入)
|
|
377
|
-
const curveBuyAmountsWei = curveBuyAmounts.map(
|
|
378
|
-
const dexBuyAmountsWei = dexBuyAmounts.map(
|
|
360
|
+
const curveBuyAmountsWei = curveBuyAmounts.map(amt => ethers.parseEther(amt));
|
|
361
|
+
const dexBuyAmountsWei = dexBuyAmounts.map(amt => ethers.parseEther(amt));
|
|
379
362
|
const totalCurveBuyAmount = curveBuyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
|
|
380
363
|
const totalDexBuyAmount = dexBuyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
|
|
381
364
|
const totalBuyAmount = totalCurveBuyAmount + totalDexBuyAmount;
|
|
@@ -383,7 +366,7 @@ export async function bundleCreateToDex(params) {
|
|
|
383
366
|
const profitRecipient = getProfitRecipient(config);
|
|
384
367
|
// 并行获取 nonce 和 fee data
|
|
385
368
|
const [nonces, feeData] = await Promise.all([
|
|
386
|
-
batchGetNonces(allWallets.map(
|
|
369
|
+
batchGetNonces(allWallets.map(w => w.address), provider),
|
|
387
370
|
provider.getFeeData(),
|
|
388
371
|
]);
|
|
389
372
|
// 签名授权
|
|
@@ -427,7 +410,7 @@ export async function bundleCreateToDex(params) {
|
|
|
427
410
|
deflationBps: tv2.deflationBps,
|
|
428
411
|
dividendBps: tv2.dividendBps,
|
|
429
412
|
lpBps: tv2.lpBps,
|
|
430
|
-
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * 10n ** 18n,
|
|
413
|
+
minimumShareBalance: BigInt(tv2.minimumShareBalance ?? 10000) * (10n ** 18n),
|
|
431
414
|
});
|
|
432
415
|
}
|
|
433
416
|
else {
|
|
@@ -449,15 +432,11 @@ export async function bundleCreateToDex(params) {
|
|
|
449
432
|
lpFeeProfile: params.lpFeeProfile ?? 0,
|
|
450
433
|
});
|
|
451
434
|
}
|
|
452
|
-
const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
|
|
453
|
-
[
|
|
454
|
-
{
|
|
435
|
+
const createBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
|
|
455
436
|
target: FLAP_PORTAL_ADDRESS,
|
|
456
437
|
value: params.quoteAmt ?? 0n,
|
|
457
438
|
data: createData,
|
|
458
|
-
}
|
|
459
|
-
],
|
|
460
|
-
]);
|
|
439
|
+
}]]);
|
|
461
440
|
calls.push({
|
|
462
441
|
target: payerWallet.address,
|
|
463
442
|
allowFailure: false,
|
|
@@ -470,15 +449,11 @@ export async function bundleCreateToDex(params) {
|
|
|
470
449
|
const buyerWallet = curveBuyerWallets[i];
|
|
471
450
|
const buyAmount = curveBuyAmountsWei[i];
|
|
472
451
|
const buyData = encodeFlapBuyCall(tokenAddress, buyAmount, true, extensionData);
|
|
473
|
-
const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
|
|
474
|
-
[
|
|
475
|
-
{
|
|
452
|
+
const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
|
|
476
453
|
target: FLAP_PORTAL_ADDRESS,
|
|
477
454
|
value: buyAmount,
|
|
478
455
|
data: buyData,
|
|
479
|
-
}
|
|
480
|
-
],
|
|
481
|
-
]);
|
|
456
|
+
}]]);
|
|
482
457
|
// ✅ 修复:value 设为 0n,让钱包使用自己余额买入
|
|
483
458
|
calls.push({
|
|
484
459
|
target: buyerWallet.address,
|
|
@@ -489,7 +464,7 @@ export async function bundleCreateToDex(params) {
|
|
|
489
464
|
}
|
|
490
465
|
// 4. 外盘买入(如果启用)
|
|
491
466
|
if (enableDexBuy && dexBuyerWallets.length > 0) {
|
|
492
|
-
const dexType = params.lpFeeProfile !== undefined && params.lpFeeProfile >= 0 ? 'V3' : 'V2';
|
|
467
|
+
const dexType = (params.lpFeeProfile !== undefined && params.lpFeeProfile >= 0) ? 'V3' : 'V2';
|
|
493
468
|
const v3Fee = lpFeeProfileToV3Fee(params.lpFeeProfile);
|
|
494
469
|
for (let i = 0; i < dexBuyerWallets.length; i++) {
|
|
495
470
|
const buyerWallet = dexBuyerWallets[i];
|
|
@@ -505,15 +480,11 @@ export async function bundleCreateToDex(params) {
|
|
|
505
480
|
swapData = encodeV2BuyCall(tokenAddress, buyerWallet.address, deadline);
|
|
506
481
|
}
|
|
507
482
|
// 使用 executeBatch 调用 DEX Router
|
|
508
|
-
const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
|
|
509
|
-
[
|
|
510
|
-
{
|
|
483
|
+
const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
|
|
511
484
|
target: routerAddress,
|
|
512
485
|
value: buyAmount,
|
|
513
486
|
data: swapData,
|
|
514
|
-
}
|
|
515
|
-
],
|
|
516
|
-
]);
|
|
487
|
+
}]]);
|
|
517
488
|
// ✅ 修复:value 设为 0n,让钱包使用自己余额买入
|
|
518
489
|
calls.push({
|
|
519
490
|
target: buyerWallet.address,
|
|
@@ -527,15 +498,16 @@ export async function bundleCreateToDex(params) {
|
|
|
527
498
|
const totalValue = params.quoteAmt ?? 0n;
|
|
528
499
|
// ✅ 动态计算 Gas Limit:基础操作 + 毕业额外 gas
|
|
529
500
|
// 毕业操作需要约 800 万 gas,加上其他操作的 gas
|
|
530
|
-
const baseGas = GAS_ESTIMATE.BASE
|
|
531
|
-
BigInt(allWallets.length) * GAS_ESTIMATE.PER_AUTHORIZATION
|
|
532
|
-
BigInt(calls.length) * GAS_ESTIMATE.PER_CALL_BASE
|
|
533
|
-
BigInt(curveBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA
|
|
534
|
-
BigInt(dexBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA
|
|
535
|
-
GAS_ESTIMATE.CREATE_TOKEN
|
|
536
|
-
GAS_ESTIMATE.GRADUATE; // 毕业操作 (800万)
|
|
501
|
+
const baseGas = GAS_ESTIMATE.BASE
|
|
502
|
+
+ BigInt(allWallets.length) * GAS_ESTIMATE.PER_AUTHORIZATION
|
|
503
|
+
+ BigInt(calls.length) * GAS_ESTIMATE.PER_CALL_BASE
|
|
504
|
+
+ BigInt(curveBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA // 内盘买入
|
|
505
|
+
+ BigInt(dexBuyerWallets.length) * GAS_ESTIMATE.BUY_EXTRA // 外盘买入
|
|
506
|
+
+ GAS_ESTIMATE.CREATE_TOKEN // 创建代币
|
|
507
|
+
+ GAS_ESTIMATE.GRADUATE; // 毕业操作 (800万)
|
|
537
508
|
const dynamicGasLimit = BigInt(Math.ceil(Number(baseGas) * GAS_ESTIMATE.SAFETY_MULTIPLIER));
|
|
538
509
|
const finalGasLimit = dynamicGasLimit > GAS_ESTIMATE.MAX ? GAS_ESTIMATE.MAX : dynamicGasLimit;
|
|
510
|
+
console.log(`[bundleCreateToDex] 动态 Gas 计算: 授权=${allWallets.length}, 调用=${calls.length}, 内盘=${curveBuyerWallets.length}, 外盘=${dexBuyerWallets.length}, Gas=${finalGasLimit.toString()}`);
|
|
539
511
|
const toDexConfig = {
|
|
540
512
|
...config,
|
|
541
513
|
gasLimit: finalGasLimit, // ✅ 动态计算的 Gas Limit
|
|
@@ -576,7 +548,7 @@ export async function bundleGraduateBuy(params) {
|
|
|
576
548
|
const delegateInterface = new Interface(UNIFIED_DELEGATE_ABI);
|
|
577
549
|
// 创建钱包
|
|
578
550
|
const payerWallet = createWallet(payerPrivateKey, provider);
|
|
579
|
-
const wallets = privateKeys.map(
|
|
551
|
+
const wallets = privateKeys.map(pk => createWallet(pk, provider));
|
|
580
552
|
// 获取代币状态
|
|
581
553
|
const portalContract = new Contract(FLAP_PORTAL_ADDRESS, FLAP_PORTAL_ABI, provider);
|
|
582
554
|
const tokenState = await portalContract.getTokenV7(tokenAddress);
|
|
@@ -585,11 +557,12 @@ export async function bundleGraduateBuy(params) {
|
|
|
585
557
|
const k = tokenState[6];
|
|
586
558
|
const lpFeeProfile = Number(tokenState[15]);
|
|
587
559
|
// 计算毕业容量
|
|
588
|
-
const graduationReserveWei = (h * k) / 10n ** 18n;
|
|
560
|
+
const graduationReserveWei = (h * k) / (10n ** 18n);
|
|
589
561
|
const poolReserveOkb = Number(ethers.formatEther(reserve));
|
|
590
562
|
const graduateCapacity = graduationAmount ?? Number(ethers.formatEther(graduationReserveWei));
|
|
591
563
|
const remainingToGraduate = Math.max(0, graduateCapacity - poolReserveOkb);
|
|
592
564
|
const remainingToGraduateWei = ethers.parseEther(remainingToGraduate.toFixed(18));
|
|
565
|
+
console.log(`[GraduateBuy] Pool Reserve: ${poolReserveOkb.toFixed(4)} OKB, Graduation: ${graduateCapacity.toFixed(4)} OKB, Remaining: ${remainingToGraduate.toFixed(4)} OKB`);
|
|
593
566
|
// 计算每个钱包的金额
|
|
594
567
|
const normalizedWalletAmounts = {};
|
|
595
568
|
if (walletAmounts) {
|
|
@@ -617,8 +590,8 @@ export async function bundleGraduateBuy(params) {
|
|
|
617
590
|
const dexBuyers = [];
|
|
618
591
|
const hasFrontendGrouping = curveAddresses && curveAddresses.length > 0;
|
|
619
592
|
if (hasFrontendGrouping) {
|
|
620
|
-
const curveSet = new Set(curveAddresses.map(
|
|
621
|
-
const dexSet = dexAddresses ? new Set(dexAddresses.map(
|
|
593
|
+
const curveSet = new Set(curveAddresses.map(a => a.toLowerCase()));
|
|
594
|
+
const dexSet = dexAddresses ? new Set(dexAddresses.map(a => a.toLowerCase())) : new Set();
|
|
622
595
|
for (let i = 0; i < wallets.length; i++) {
|
|
623
596
|
const wallet = wallets[i];
|
|
624
597
|
const ownerAddr = wallet.address.toLowerCase();
|
|
@@ -653,14 +626,15 @@ export async function bundleGraduateBuy(params) {
|
|
|
653
626
|
}
|
|
654
627
|
}
|
|
655
628
|
}
|
|
629
|
+
console.log(`[GraduateBuy] Curve buyers: ${curveBuyers.length}, DEX buyers: ${dexBuyers.length}`);
|
|
656
630
|
// 合并所有参与的钱包
|
|
657
631
|
const allWalletsMap = new Map();
|
|
658
632
|
allWalletsMap.set(payerWallet.address.toLowerCase(), payerWallet);
|
|
659
|
-
curveBuyers.forEach(
|
|
660
|
-
dexBuyers.forEach(
|
|
633
|
+
curveBuyers.forEach(b => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
|
|
634
|
+
dexBuyers.forEach(b => allWalletsMap.set(b.wallet.address.toLowerCase(), b.wallet));
|
|
661
635
|
const allWallets = Array.from(allWalletsMap.values());
|
|
662
636
|
const mainWallet = payerWallet;
|
|
663
|
-
const mainWalletIndex = allWallets.findIndex(
|
|
637
|
+
const mainWalletIndex = allWallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
|
|
664
638
|
// 计算金额和利润(单边模式:只有买入)
|
|
665
639
|
const curveTotalWei = curveBuyers.reduce((sum, b) => sum + b.amount, 0n);
|
|
666
640
|
const dexTotalWei = dexBuyers.reduce((sum, b) => sum + b.amount, 0n);
|
|
@@ -669,7 +643,7 @@ export async function bundleGraduateBuy(params) {
|
|
|
669
643
|
const profitRecipient = getProfitRecipient(config);
|
|
670
644
|
// 并行获取 nonce 和 fee data
|
|
671
645
|
const [nonces, feeData] = await Promise.all([
|
|
672
|
-
batchGetNonces(allWallets.map(
|
|
646
|
+
batchGetNonces(allWallets.map(w => w.address), provider),
|
|
673
647
|
provider.getFeeData(),
|
|
674
648
|
]);
|
|
675
649
|
// 签名授权
|
|
@@ -687,15 +661,11 @@ export async function bundleGraduateBuy(params) {
|
|
|
687
661
|
for (let i = 0; i < curveBuyers.length; i++) {
|
|
688
662
|
const { wallet, amount } = curveBuyers[i];
|
|
689
663
|
const buyData = encodeFlapBuyCall(tokenAddress, amount, useV3OrV4, extensionData);
|
|
690
|
-
const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
|
|
691
|
-
[
|
|
692
|
-
{
|
|
664
|
+
const buyBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
|
|
693
665
|
target: FLAP_PORTAL_ADDRESS,
|
|
694
666
|
value: amount,
|
|
695
667
|
data: buyData,
|
|
696
|
-
}
|
|
697
|
-
],
|
|
698
|
-
]);
|
|
668
|
+
}]]);
|
|
699
669
|
// ✅ 修复:value 设为 0n,让钱包使用自己余额买入
|
|
700
670
|
calls.push({
|
|
701
671
|
target: wallet.address,
|
|
@@ -706,7 +676,7 @@ export async function bundleGraduateBuy(params) {
|
|
|
706
676
|
}
|
|
707
677
|
// 3. 外盘买入
|
|
708
678
|
if (enableDexBuy && dexBuyers.length > 0) {
|
|
709
|
-
const dexType = lpFeeProfile >= 0 ? 'V3' : 'V2';
|
|
679
|
+
const dexType = (lpFeeProfile >= 0) ? 'V3' : 'V2';
|
|
710
680
|
const v3Fee = lpFeeProfileToV3Fee(lpFeeProfile);
|
|
711
681
|
for (let i = 0; i < dexBuyers.length; i++) {
|
|
712
682
|
const { wallet, amount } = dexBuyers[i];
|
|
@@ -720,15 +690,11 @@ export async function bundleGraduateBuy(params) {
|
|
|
720
690
|
routerAddress = POTATOSWAP_V2_ROUTER;
|
|
721
691
|
swapData = encodeV2BuyCall(tokenAddress, wallet.address, deadline);
|
|
722
692
|
}
|
|
723
|
-
const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [
|
|
724
|
-
[
|
|
725
|
-
{
|
|
693
|
+
const dexBatchCall = delegateInterface.encodeFunctionData('executeBatch', [[{
|
|
726
694
|
target: routerAddress,
|
|
727
695
|
value: amount,
|
|
728
696
|
data: swapData,
|
|
729
|
-
}
|
|
730
|
-
],
|
|
731
|
-
]);
|
|
697
|
+
}]]);
|
|
732
698
|
// ✅ 修复:value 设为 0n,让钱包使用自己余额买入
|
|
733
699
|
calls.push({
|
|
734
700
|
target: wallet.address,
|
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
*
|
|
7
7
|
* 只生成签名,由调用方决定如何提交
|
|
8
8
|
*/
|
|
9
|
-
import type { BundleSellParams, BundleSellResult } from './types.js';
|
|
9
|
+
import type { BundleSellParams as BaseBundleSellParams, BundleSellResult } from './types.js';
|
|
10
|
+
import { type UserType } from './utils.js';
|
|
11
|
+
export interface BundleSellParams extends BaseBundleSellParams {
|
|
12
|
+
/** 用户类型(影响利润率) */
|
|
13
|
+
userType?: UserType;
|
|
14
|
+
}
|
|
10
15
|
/**
|
|
11
16
|
* 批量卖出 - 生成签名后的交易
|
|
12
17
|
*
|
|
@@ -44,5 +49,4 @@ import type { BundleSellParams, BundleSellResult } from './types.js';
|
|
|
44
49
|
* fee: 2500,
|
|
45
50
|
* });
|
|
46
51
|
*/
|
|
47
|
-
export type { BundleSellParams } from './types.js';
|
|
48
52
|
export declare function bundleSell(params: BundleSellParams): Promise<BundleSellResult>;
|