four-flap-meme-sdk 2.2.7 → 2.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +6 -41
- package/README.md +0 -31
- package/README.zh-CN.md +6 -41
- package/dist/chains/bsc/four/approve-tokenmanager.d.ts +26 -1
- package/dist/chains/bsc/four/approve-tokenmanager.js +113 -1
- package/dist/chains/bsc/four/config.d.ts +67 -5
- package/dist/chains/bsc/four/config.js +114 -2
- package/dist/chains/bsc/four/core.d.ts +4 -1
- package/dist/chains/bsc/four/core.js +592 -1
- package/dist/chains/bsc/four/index.d.ts +6 -6
- package/dist/chains/bsc/four/index.js +6 -6
- package/dist/chains/bsc/four/internal.d.ts +46 -2
- package/dist/chains/bsc/four/internal.js +239 -2
- package/dist/chains/bsc/four/pancake-proxy.d.ts +28 -1
- package/dist/chains/bsc/four/pancake-proxy.js +687 -1
- package/dist/chains/bsc/four/private.d.ts +27 -1
- package/dist/chains/bsc/four/private.js +477 -1
- package/dist/chains/bsc/four/submit.d.ts +315 -2
- package/dist/chains/bsc/four/submit.js +752 -2
- package/dist/chains/bsc/four/swap-buy-first.d.ts +55 -2
- package/dist/chains/bsc/four/swap-buy-first.js +507 -2
- package/dist/chains/bsc/four/swap-internal.d.ts +3 -1
- package/dist/chains/bsc/four/swap-internal.js +18 -1
- package/dist/chains/bsc/four/swap.d.ts +144 -2
- package/dist/chains/bsc/four/swap.js +766 -2
- package/dist/chains/bsc/four/types.d.ts +476 -1
- package/dist/chains/bsc/four/utils.d.ts +18 -5
- package/dist/chains/bsc/four/utils.js +1552 -5
- package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +91 -1
- package/dist/chains/bsc/pancake/bundle-buy-first.js +212 -97
- package/dist/chains/bsc/pancake/bundle-swap.d.ts +79 -1
- package/dist/chains/bsc/pancake/bundle-swap.js +726 -114
- package/dist/chains/bsc/pancake/index.d.ts +2 -4
- package/dist/chains/bsc/pancake/index.js +3 -1
- package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
- package/dist/chains/bsc/platforms/iro/factory.js +1 -3
- package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
- package/dist/chains/bsc/platforms/iro/index.js +3 -3
- package/dist/chains/bsc/platforms/iro/pool.js +10 -31
- package/dist/chains/bsc/platforms/iro/token.js +1 -4
- package/dist/chains/eni/batch-router/bundle-approve.js +3 -4
- package/dist/chains/eni/batch-router/transfer.js +25 -55
- package/dist/chains/eni/batch-router/utils.js +6 -32
- package/dist/chains/eni/bundler/sign.js +6 -5
- package/dist/chains/eni/bundler/submit.js +4 -1
- package/dist/chains/eni/constants.js +1 -1
- package/dist/chains/eni/index.d.ts +1 -2
- package/dist/chains/eni/index.js +0 -1
- package/dist/chains/eni/platforms/daoaas/create.js +2 -2
- package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
- package/dist/chains/eni/platforms/daoaas/index.js +3 -3
- package/dist/chains/eni/platforms/daoaas/meta.js +6 -9
- package/dist/chains/eni/platforms/daoaas/portal-direct.js +44 -28
- package/dist/chains/eni/platforms/daoaas/portal.js +6 -10
- package/dist/chains/eni/platforms/dswap/liquidity.js +26 -58
- package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
- package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
- package/dist/chains/eni/platforms/fair-launch/launcher.js +46 -87
- package/dist/chains/eni/platforms/fair-launch/pool.js +1 -4
- package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
- package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
- package/dist/chains/eni/platforms/iro/factory.js +1 -3
- package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
- package/dist/chains/eni/platforms/iro/index.js +4 -4
- package/dist/chains/eni/platforms/iro/pool.js +26 -90
- package/dist/chains/eni/platforms/iro/token.js +31 -107
- package/dist/chains/eni/platforms/iro/whitelist.js +18 -6
- package/dist/chains/index.d.ts +0 -13
- package/dist/chains/index.js +0 -13
- package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +26 -2
- package/dist/chains/xlayer/eip7702/bundle-approve.js +21 -11
- package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +6 -2
- package/dist/chains/xlayer/eip7702/bundle-buy.js +51 -13
- package/dist/chains/xlayer/eip7702/bundle-create.js +59 -93
- package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +6 -2
- package/dist/chains/xlayer/eip7702/bundle-sell.js +111 -29
- package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +65 -3
- package/dist/chains/xlayer/eip7702/bundle-swap.js +245 -51
- package/dist/chains/xlayer/eip7702/constants.d.ts +16 -1
- package/dist/chains/xlayer/eip7702/constants.js +21 -3
- package/dist/chains/xlayer/eip7702/index.d.ts +46 -28
- package/dist/chains/xlayer/eip7702/index.js +81 -28
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +203 -2
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +307 -63
- package/dist/chains/xlayer/eip7702/types.d.ts +0 -88
- package/dist/chains/xlayer/eip7702/utils.d.ts +3 -0
- package/dist/chains/xlayer/eip7702/utils.js +28 -23
- package/dist/chains/xlayer/eip7702/volume.d.ts +184 -6
- package/dist/chains/xlayer/eip7702/volume.js +164 -89
- package/dist/chains/xlayer/eoa/constants.js +1 -1
- package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
- package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +95 -1
- package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +299 -66
- package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
- package/dist/chains/xlayer/eoa/eoa-wash-volume.js +23 -18
- package/dist/chains/xlayer/eoa/index.d.ts +6 -10
- package/dist/chains/xlayer/eoa/index.js +23 -8
- package/dist/chains/xlayer/eoa/portal-ops.js +2 -7
- package/dist/chains/xlayer/eoa/router-manager.js +3 -3
- package/dist/chains/xlayer/eoa/types.d.ts +2 -2
- package/dist/chains/xlayer/eoa/types.js +3 -1
- package/dist/chains/xlayer/index.d.ts +2 -3
- package/dist/chains/xlayer/index.js +7 -4
- package/dist/contracts/helper3.d.ts +5 -20
- package/dist/contracts/helper3.js +20 -56
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +26 -1
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +113 -1
- package/dist/contracts/tm-bundle-merkle/config.d.ts +67 -5
- package/dist/contracts/tm-bundle-merkle/config.js +114 -2
- package/dist/contracts/tm-bundle-merkle/core.d.ts +4 -1
- package/dist/contracts/tm-bundle-merkle/core.js +591 -1
- package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
- package/dist/contracts/tm-bundle-merkle/index.js +5 -5
- package/dist/contracts/tm-bundle-merkle/internal.d.ts +46 -2
- package/dist/contracts/tm-bundle-merkle/internal.js +238 -2
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +28 -1
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +686 -1
- package/dist/contracts/tm-bundle-merkle/private.d.ts +27 -1
- package/dist/contracts/tm-bundle-merkle/private.js +476 -1
- package/dist/contracts/tm-bundle-merkle/submit.d.ts +314 -3
- package/dist/contracts/tm-bundle-merkle/submit.js +928 -3
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +55 -2
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +506 -2
- package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +3 -1
- package/dist/contracts/tm-bundle-merkle/swap-internal.js +18 -1
- package/dist/contracts/tm-bundle-merkle/swap.d.ts +144 -2
- package/dist/contracts/tm-bundle-merkle/swap.js +764 -2
- package/dist/contracts/tm-bundle-merkle/types.d.ts +476 -1
- package/dist/contracts/tm-bundle-merkle/utils.d.ts +18 -6
- package/dist/contracts/tm-bundle-merkle/utils.js +1501 -6
- package/dist/contracts/tm-bundle.d.ts +51 -3
- package/dist/contracts/tm-bundle.js +177 -108
- package/dist/contracts/tm.d.ts +2 -3
- package/dist/contracts/tm.js +32 -37
- package/dist/contracts/tm1.js +4 -9
- package/dist/contracts/tm2.js +4 -9
- package/dist/dex/direct-router.d.ts +125 -3
- package/dist/dex/direct-router.js +666 -237
- package/dist/flows/create.d.ts +1 -2
- package/dist/flows/create.js +6 -6
- package/dist/index.d.ts +86 -20
- package/dist/index.js +216 -20
- package/dist/shared/abis/TaxToken.json +105 -0
- package/dist/shared/abis/TokenManager2.json +60 -0
- package/dist/shared/abis/common.d.ts +83 -2
- package/dist/shared/abis/common.js +253 -2
- package/dist/shared/abis/index.d.ts +6 -5
- package/dist/shared/abis/index.js +7 -5
- package/dist/shared/clients/blockrazor.js +25 -39
- package/dist/shared/clients/club48.d.ts +2 -2
- package/dist/shared/clients/club48.js +29 -34
- package/dist/shared/clients/emitservice.js +0 -2
- package/dist/shared/clients/four.d.ts +6 -21
- package/dist/shared/clients/four.js +24 -29
- package/dist/shared/clients/merkle.js +34 -27
- package/dist/shared/constants/addresses.d.ts +1 -1
- package/dist/shared/constants/addresses.js +2 -11
- package/dist/shared/constants/chains.d.ts +1 -1
- package/dist/shared/constants/chains.js +1 -1
- package/dist/shared/constants/gas.d.ts +1 -1
- package/dist/shared/constants/gas.js +6 -2
- package/dist/shared/constants/index.d.ts +0 -3
- package/dist/shared/constants/index.js +0 -1
- package/dist/shared/flap/abi.js +1 -1
- package/dist/shared/flap/constants.d.ts +2 -1
- package/dist/shared/flap/constants.js +4 -3
- package/dist/shared/flap/curve.js +0 -3
- package/dist/shared/flap/errors.d.ts +4 -1
- package/dist/shared/flap/errors.js +1 -20
- package/dist/shared/flap/index.d.ts +5 -5
- package/dist/shared/flap/index.js +5 -5
- package/dist/shared/flap/launch-v6.d.ts +117 -0
- package/dist/shared/flap/launch-v6.js +111 -0
- package/dist/shared/flap/meta.d.ts +18 -22
- package/dist/shared/flap/meta.js +17 -12
- package/dist/shared/flap/permit.js +2 -5
- package/dist/shared/flap/pinata.d.ts +6 -22
- package/dist/shared/flap/pinata.js +26 -21
- package/dist/shared/flap/portal-bundle-merkle/config.d.ts +72 -3
- package/dist/shared/flap/portal-bundle-merkle/config.js +124 -4
- package/dist/shared/flap/portal-bundle-merkle/core.d.ts +4 -0
- package/dist/shared/flap/portal-bundle-merkle/core.js +267 -164
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +4 -17
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +195 -107
- package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +92 -100
- package/dist/shared/flap/portal-bundle-merkle/index.d.ts +7 -11
- package/dist/shared/flap/portal-bundle-merkle/index.js +7 -4
- package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +68 -71
- package/dist/shared/flap/portal-bundle-merkle/private.js +114 -61
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +64 -1
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +247 -66
- package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +71 -2
- package/dist/shared/flap/portal-bundle-merkle/swap.js +410 -103
- package/dist/shared/flap/portal-bundle-merkle/types.d.ts +12 -88
- package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +80 -1
- package/dist/shared/flap/portal-bundle-merkle/utils.js +265 -145
- package/dist/shared/flap/portal-bundle.js +56 -55
- package/dist/shared/flap/portal.d.ts +3 -14
- package/dist/shared/flap/portal.js +26 -49
- package/dist/shared/flap/vanity.d.ts +5 -4
- package/dist/shared/flap/vanity.js +20 -13
- package/dist/shared/flap/vault.d.ts +93 -25
- package/dist/shared/flap/vault.js +126 -75
- package/dist/shared/four/tax-token.d.ts +1 -1
- package/dist/shared/four/tax-token.js +7 -27
- package/dist/shared/index.d.ts +0 -6
- package/dist/shared/index.js +0 -4
- package/dist/utils/airdrop-sweep.d.ts +76 -4
- package/dist/utils/airdrop-sweep.js +55 -42
- package/dist/utils/bundle-helpers.d.ts +243 -9
- package/dist/utils/bundle-helpers.js +584 -10
- package/dist/utils/constants.d.ts +61 -5
- package/dist/utils/constants.js +80 -5
- package/dist/utils/contract-factory.d.ts +4 -2
- package/dist/utils/contract-factory.js +18 -25
- package/dist/utils/erc20.d.ts +89 -7
- package/dist/utils/erc20.js +125 -94
- package/dist/utils/errors.d.ts +1 -12
- package/dist/utils/errors.js +1 -60
- package/dist/utils/holders-maker.d.ts +138 -2
- package/dist/utils/holders-maker.js +661 -26
- package/dist/utils/lp-inspect.d.ts +112 -2
- package/dist/utils/lp-inspect.js +223 -73
- package/dist/utils/mpcExclusive.d.ts +5 -2
- package/dist/utils/mpcExclusive.js +3 -4
- package/dist/utils/private-sale.d.ts +58 -2
- package/dist/utils/private-sale.js +15 -4
- package/dist/utils/provider-factory.d.ts +0 -4
- package/dist/utils/provider-factory.js +0 -10
- package/dist/utils/quote-helpers.d.ts +45 -4
- package/dist/utils/quote-helpers.js +74 -17
- package/dist/utils/stealth-transfer.d.ts +28 -2
- package/dist/utils/stealth-transfer.js +15 -31
- package/dist/utils/swap-helpers.d.ts +15 -2
- package/dist/utils/swap-helpers.js +11 -6
- package/dist/utils/wallet.d.ts +25 -2
- package/dist/utils/wallet.js +10 -13
- package/package.json +4 -160
- package/dist/__tests__/subpath-exports.test.d.ts +0 -1
- package/dist/__tests__/subpath-exports.test.js +0 -64
- package/dist/abis/common.d.ts +0 -85
- package/dist/abis/common.js +0 -264
- package/dist/abis/contracts/TaxToken.json +0 -969
- package/dist/abis/contracts/TokenManager2.json +0 -136
- package/dist/abis/contracts/index.d.ts +0 -5
- package/dist/abis/contracts/index.js +0 -5
- package/dist/abis/flap/index.d.ts +0 -3
- package/dist/abis/flap/index.js +0 -3
- package/dist/abis/flap/portal-events.d.ts +0 -6
- package/dist/abis/flap/portal-events.js +0 -17
- package/dist/abis/flap/portal.d.ts +0 -6
- package/dist/abis/flap/portal.js +0 -37
- package/dist/abis/flap/vault.d.ts +0 -171
- package/dist/abis/flap/vault.js +0 -91
- package/dist/abis/index.d.ts +0 -8
- package/dist/abis/index.js +0 -11
- package/dist/bundle-core/__tests__/config-helpers.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
- package/dist/bundle-core/__tests__/facade-parity.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
- package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
- package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
- package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
- package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
- package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
- package/dist/bundle-core/config-helpers.d.ts +0 -36
- package/dist/bundle-core/config-helpers.js +0 -57
- package/dist/bundle-core/errors.d.ts +0 -50
- package/dist/bundle-core/errors.js +0 -35
- package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +0 -7
- package/dist/bundle-core/four-meme/approve-tokenmanager.js +0 -99
- package/dist/bundle-core/four-meme/core-helpers.d.ts +0 -8
- package/dist/bundle-core/four-meme/core-helpers.js +0 -40
- package/dist/bundle-core/four-meme/core.d.ts +0 -4
- package/dist/bundle-core/four-meme/core.js +0 -515
- package/dist/bundle-core/four-meme/pancake-proxy.d.ts +0 -28
- package/dist/bundle-core/four-meme/pancake-proxy.js +0 -679
- package/dist/bundle-core/four-meme/private.d.ts +0 -27
- package/dist/bundle-core/four-meme/private.js +0 -465
- package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +0 -2
- package/dist/bundle-core/four-meme/sign-context-helpers.js +0 -2
- package/dist/bundle-core/four-meme/swap-buy-first.d.ts +0 -8
- package/dist/bundle-core/four-meme/swap-buy-first.js +0 -493
- package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +0 -6
- package/dist/bundle-core/four-meme/swap-hop-helpers.js +0 -63
- package/dist/bundle-core/four-meme/swap-internal.d.ts +0 -3
- package/dist/bundle-core/four-meme/swap-internal.js +0 -18
- package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +0 -27
- package/dist/bundle-core/four-meme/swap-sign-helpers.js +0 -105
- package/dist/bundle-core/four-meme/swap.d.ts +0 -17
- package/dist/bundle-core/four-meme/swap.js +0 -505
- package/dist/bundle-core/four-meme/types/buy-first.d.ts +0 -50
- package/dist/bundle-core/four-meme/types/buy-first.js +0 -1
- package/dist/bundle-core/four-meme/types/core-flow.d.ts +0 -63
- package/dist/bundle-core/four-meme/types/core-flow.js +0 -1
- package/dist/bundle-core/four-meme/types/index.d.ts +0 -600
- package/dist/bundle-core/four-meme/types/index.js +0 -1
- package/dist/bundle-core/four-meme/types/swap-internal.d.ts +0 -19
- package/dist/bundle-core/four-meme/types/swap-internal.js +0 -1
- package/dist/bundle-core/four-meme/types.d.ts +0 -1
- package/dist/bundle-core/four-meme/types.js +0 -1
- package/dist/bundle-core/four-meme/utils-disperse.d.ts +0 -7
- package/dist/bundle-core/four-meme/utils-disperse.js +0 -396
- package/dist/bundle-core/four-meme/utils-pairwise.d.ts +0 -8
- package/dist/bundle-core/four-meme/utils-pairwise.js +0 -328
- package/dist/bundle-core/four-meme/utils-sweep.d.ts +0 -8
- package/dist/bundle-core/four-meme/utils-sweep.js +0 -744
- package/dist/bundle-core/index.d.ts +0 -8
- package/dist/bundle-core/index.js +0 -8
- package/dist/bundle-core/internal.d.ts +0 -21
- package/dist/bundle-core/internal.js +0 -182
- package/dist/bundle-core/sign-context-helpers.d.ts +0 -25
- package/dist/bundle-core/sign-context-helpers.js +0 -67
- package/dist/bundle-core/submit.d.ts +0 -293
- package/dist/bundle-core/submit.js +0 -727
- package/dist/bundle-core/types/index.d.ts +0 -8
- package/dist/bundle-core/types/index.js +0 -1
- package/dist/bundle-core/types.d.ts +0 -1
- package/dist/bundle-core/types.js +0 -1
- package/dist/chains/bsc/four/utils-disperse.d.ts +0 -1
- package/dist/chains/bsc/four/utils-disperse.js +0 -1
- package/dist/chains/bsc/four/utils-pairwise.d.ts +0 -1
- package/dist/chains/bsc/four/utils-pairwise.js +0 -1
- package/dist/chains/bsc/four/utils-sweep.d.ts +0 -1
- package/dist/chains/bsc/four/utils-sweep.js +0 -1
- package/dist/chains/bsc/iro.d.ts +0 -5
- package/dist/chains/bsc/iro.js +0 -4
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +0 -159
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +0 -117
- package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +0 -241
- package/dist/chains/bsc/pancake/bundle-swap-helpers.js +0 -565
- package/dist/chains/eni/flat-aliases.d.ts +0 -10
- package/dist/chains/eni/flat-aliases.js +0 -8
- package/dist/chains/eni/submit.d.ts +0 -43
- package/dist/chains/eni/submit.js +0 -286
- package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +0 -13
- package/dist/chains/xlayer/eip7702/flat-aliases.js +0 -10
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +0 -79
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +0 -1
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +0 -26
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +0 -57
- package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +0 -148
- package/dist/chains/xlayer/eip7702/volume-helpers.js +0 -48
- package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +0 -126
- package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +0 -228
- package/dist/contracts/tm-bundle-helpers.d.ts +0 -88
- package/dist/contracts/tm-bundle-helpers.js +0 -72
- package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
- package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
- package/dist/dex/direct-router-helpers.d.ts +0 -264
- package/dist/dex/direct-router-helpers.js +0 -539
- package/dist/dex/types.d.ts +0 -81
- package/dist/dex/types.js +0 -1
- package/dist/exports/root-bundle-and-tooling.d.ts +0 -27
- package/dist/exports/root-bundle-and-tooling.js +0 -30
- package/dist/exports/root-eni-and-bsc-iro.d.ts +0 -26
- package/dist/exports/root-eni-and-bsc-iro.js +0 -66
- package/dist/exports/root-foundations.d.ts +0 -35
- package/dist/exports/root-foundations.js +0 -70
- package/dist/exports/root-swap-dex-and-xlayer.d.ts +0 -30
- package/dist/exports/root-swap-dex-and-xlayer.js +0 -78
- package/dist/flap/index.d.ts +0 -10
- package/dist/flap/index.js +0 -8
- package/dist/flows/index.d.ts +0 -1
- package/dist/flows/index.js +0 -1
- package/dist/merkle/index.d.ts +0 -12
- package/dist/merkle/index.js +0 -11
- package/dist/shared/clients/index.d.ts +0 -8
- package/dist/shared/clients/index.js +0 -8
- package/dist/shared/constants/quote.d.ts +0 -30
- package/dist/shared/constants/quote.js +0 -37
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +0 -32
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +0 -83
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -125
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +0 -113
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -149
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +0 -259
- package/dist/shared/flap/portal-create-token.d.ts +0 -79
- package/dist/shared/flap/portal-create-token.js +0 -261
- package/dist/shared/foundation/dex/v3-path.d.ts +0 -6
- package/dist/shared/foundation/dex/v3-path.js +0 -35
- package/dist/shared/foundation/gas/bundle-gas.d.ts +0 -49
- package/dist/shared/foundation/gas/bundle-gas.js +0 -93
- package/dist/shared/foundation/gas/profit-hop.d.ts +0 -20
- package/dist/shared/foundation/gas/profit-hop.js +0 -72
- package/dist/shared/foundation/index.d.ts +0 -13
- package/dist/shared/foundation/index.js +0 -12
- package/dist/shared/foundation/nonce/nonce-manager.d.ts +0 -17
- package/dist/shared/foundation/nonce/nonce-manager.js +0 -183
- package/dist/shared/foundation/normalize-unknown.d.ts +0 -9
- package/dist/shared/foundation/normalize-unknown.js +0 -29
- package/dist/shared/foundation/sdk-logger.d.ts +0 -13
- package/dist/shared/foundation/sdk-logger.js +0 -12
- package/dist/shared/foundation/tx/build-request.d.ts +0 -17
- package/dist/shared/foundation/tx/build-request.js +0 -25
- package/dist/shared/foundation/tx/sign-batch.d.ts +0 -5
- package/dist/shared/foundation/tx/sign-batch.js +0 -26
- package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +0 -1
- package/dist/shared/foundation/tx/wallet-sign-patch.js +0 -18
- package/dist/shared/foundation/types/airdrop-sweep.d.ts +0 -79
- package/dist/shared/foundation/types/airdrop-sweep.js +0 -1
- package/dist/shared/foundation/types/erc20.d.ts +0 -65
- package/dist/shared/foundation/types/erc20.js +0 -1
- package/dist/shared/foundation/types/holders-maker.d.ts +0 -64
- package/dist/shared/foundation/types/holders-maker.js +0 -1
- package/dist/shared/foundation/types/index.d.ts +0 -7
- package/dist/shared/foundation/types/index.js +0 -1
- package/dist/shared/foundation/types/lp-inspect.d.ts +0 -102
- package/dist/shared/foundation/types/lp-inspect.js +0 -1
- package/dist/shared/foundation/types/multicall.d.ts +0 -5
- package/dist/shared/foundation/types/multicall.js +0 -1
- package/dist/shared/foundation/types/private-sale.d.ts +0 -35
- package/dist/shared/foundation/types/private-sale.js +0 -1
- package/dist/shared/foundation/types/quote-helpers.d.ts +0 -17
- package/dist/shared/foundation/types/quote-helpers.js +0 -1
- package/dist/types/errors.d.ts +0 -27
- package/dist/types/errors.js +0 -34
- package/dist/utils/holders-maker/addresses.d.ts +0 -12
- package/dist/utils/holders-maker/addresses.js +0 -15
- package/dist/utils/holders-maker/buy-tx.d.ts +0 -44
- package/dist/utils/holders-maker/buy-tx.js +0 -278
- package/dist/utils/holders-maker/constants.d.ts +0 -6
- package/dist/utils/holders-maker/constants.js +0 -7
- package/dist/utils/holders-maker/disperse.d.ts +0 -18
- package/dist/utils/holders-maker/disperse.js +0 -90
- package/dist/utils/holders-maker/routing.d.ts +0 -4
- package/dist/utils/holders-maker/routing.js +0 -45
- package/dist/utils/holders-maker/transfer-tx.d.ts +0 -4
- package/dist/utils/holders-maker/transfer-tx.js +0 -67
- package/dist/utils/holders-maker-helpers.d.ts +0 -9
- package/dist/utils/holders-maker-helpers.js +0 -9
- package/dist/utils/hop-chains.d.ts +0 -35
- package/dist/utils/hop-chains.js +0 -215
- package/dist/utils/lp-inspect-helpers.d.ts +0 -9
- package/dist/utils/lp-inspect-helpers.js +0 -109
- package/dist/utils/types/airdrop-sweep.d.ts +0 -1
- package/dist/utils/types/airdrop-sweep.js +0 -1
- package/dist/utils/types/contract-factory.d.ts +0 -1
- package/dist/utils/types/contract-factory.js +0 -1
- package/dist/utils/types/erc20.d.ts +0 -1
- package/dist/utils/types/erc20.js +0 -1
- package/dist/utils/types/errors.d.ts +0 -1
- package/dist/utils/types/errors.js +0 -1
- package/dist/utils/types/holders-maker.d.ts +0 -1
- package/dist/utils/types/holders-maker.js +0 -1
- package/dist/utils/types/hop-chains.d.ts +0 -8
- package/dist/utils/types/hop-chains.js +0 -1
- package/dist/utils/types/index.d.ts +0 -13
- package/dist/utils/types/index.js +0 -1
- package/dist/utils/types/lp-inspect.d.ts +0 -1
- package/dist/utils/types/lp-inspect.js +0 -1
- package/dist/utils/types/mpc-exclusive.d.ts +0 -5
- package/dist/utils/types/mpc-exclusive.js +0 -1
- package/dist/utils/types/private-sale.d.ts +0 -1
- package/dist/utils/types/private-sale.js +0 -1
- package/dist/utils/types/quote-helpers.d.ts +0 -1
- package/dist/utils/types/quote-helpers.js +0 -1
- package/dist/utils/types/stealth-transfer.d.ts +0 -44
- package/dist/utils/types/stealth-transfer.js +0 -1
- package/dist/utils/types/wallet.d.ts +0 -25
- package/dist/utils/types/wallet.js +0 -1
- package/dist/vanity/index.d.ts +0 -5
- package/dist/vanity/index.js +0 -5
- package/src/abis/contracts/TaxToken.json +0 -969
- package/src/abis/contracts/TokenManager.json +0 -836
- package/src/abis/contracts/TokenManager2.json +0 -136
- package/src/abis/contracts/TokenManagerHelper3.json +0 -993
- /package/dist/{abis/contracts → shared/abis}/TokenManager.json +0 -0
- /package/dist/{abis/contracts → shared/abis}/TokenManagerHelper3.json +0 -0
package/README.en.md
CHANGED
|
@@ -29,41 +29,6 @@ Optional (use Pinata for IPFS uploads)
|
|
|
29
29
|
npm i pinata
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
## Package entry points (subpath imports)
|
|
33
|
-
|
|
34
|
-
The library is published as **ESM** (`dist` is produced by `npm run build`). The root import remains the default for full API access. For smaller dependency graphs, Node and bundlers that honor `package.json` **`exports`** may import:
|
|
35
|
-
|
|
36
|
-
**When to use which**
|
|
37
|
-
|
|
38
|
-
- **Root**: default for apps and examples that touch more than one SDK area.
|
|
39
|
-
- **Subpaths**: for scripts or libraries that intentionally depend on only one slice (constants, ABIs, error utilities, Merkle clients, etc.).
|
|
40
|
-
|
|
41
|
-
| Subpath | Purpose |
|
|
42
|
-
|---------|---------|
|
|
43
|
-
| `four-flap-meme-sdk` | Main entry — full surface |
|
|
44
|
-
| `four-flap-meme-sdk/chains` | Chain namespaces and helpers |
|
|
45
|
-
| `four-flap-meme-sdk/shared` | Cross-cutting modules: constants, `foundation`, `clients`, `FourUtils` |
|
|
46
|
-
| `four-flap-meme-sdk/clients` | HTTP / Merkle-related clients |
|
|
47
|
-
| `four-flap-meme-sdk/dex` | DEX helpers |
|
|
48
|
-
| `four-flap-meme-sdk/constants` | Chain config, gas, addresses, profit settings |
|
|
49
|
-
| `four-flap-meme-sdk/abis` | TokenManager JSON ABIs, common fragments, Flap ABIs (same as `src/abis` barrel) |
|
|
50
|
-
| `four-flap-meme-sdk/foundation` | Unknown-error normalization and optional loggers |
|
|
51
|
-
| `four-flap-meme-sdk/bundle-core` | Shared bundle core: `internal`, `submit`, `config-helpers` |
|
|
52
|
-
| `four-flap-meme-sdk/flows` | High-level flows (e.g. `createTokenFlow`) |
|
|
53
|
-
|
|
54
|
-
> **v2.0.0**: ambiguous root exports removed — see [docs/MIGRATION_EXPORTS.zh-CN.md](./docs/MIGRATION_EXPORTS.zh-CN.md).
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
import { CHAINS, GAS_LIMITS } from 'four-flap-meme-sdk/constants';
|
|
58
|
-
import { TokenManager } from 'four-flap-meme-sdk/abis';
|
|
59
|
-
import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Documentation: alignment & backends
|
|
63
|
-
|
|
64
|
-
- **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — audit-style checklist (language: Chinese).
|
|
65
|
-
- **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — choosing Merkle, BlockRazor, direct RPC, ENI, 48.club, etc.
|
|
66
|
-
|
|
67
32
|
---
|
|
68
33
|
|
|
69
34
|
## Table of Contents
|
|
@@ -3538,7 +3503,7 @@ const permitData = await buildPermitPiggybackAuto(
|
|
|
3538
3503
|
The SDK provides pre-configured addresses for all supported networks:
|
|
3539
3504
|
|
|
3540
3505
|
```typescript
|
|
3541
|
-
import {
|
|
3506
|
+
import { CHAIN } from 'four-flap-meme-sdk';
|
|
3542
3507
|
|
|
3543
3508
|
// Use chain enum when calling SDK methods (addresses are handled internally)
|
|
3544
3509
|
// Example:
|
|
@@ -3547,11 +3512,11 @@ import { CHAINS } from 'four-flap-meme-sdk';
|
|
|
3547
3512
|
// await tryBuy('BSC', rpcUrl, token, amount, funds);
|
|
3548
3513
|
|
|
3549
3514
|
// Chain information
|
|
3550
|
-
console.log(
|
|
3551
|
-
console.log(
|
|
3552
|
-
console.log(
|
|
3553
|
-
console.log(
|
|
3554
|
-
console.log(
|
|
3515
|
+
console.log(CHAIN.BSC.chainId); // 56
|
|
3516
|
+
console.log(CHAIN.BASE.chainId); // 8453
|
|
3517
|
+
console.log(CHAIN.XLAYER.chainId); // 196
|
|
3518
|
+
console.log(CHAIN.MORPH.chainId); // 2818
|
|
3519
|
+
console.log(CHAIN.ARBITRUM_ONE.chainId); // 42161
|
|
3555
3520
|
```
|
|
3556
3521
|
|
|
3557
3522
|
---
|
package/README.md
CHANGED
|
@@ -20,37 +20,6 @@ npm i four-flap-meme-sdk ethers
|
|
|
20
20
|
|
|
21
21
|
**要求**:Node.js >= 18, ESM, ethers v6
|
|
22
22
|
|
|
23
|
-
### Package entry points (subpath imports)
|
|
24
|
-
|
|
25
|
-
The package ships **ESM** with `exports` in `package.json`. Use the default root import for full API coverage; use subpaths to narrow what your resolver loads (requires tooling that respects `exports`).
|
|
26
|
-
|
|
27
|
-
**When to use which**
|
|
28
|
-
|
|
29
|
-
- **Root import**: matches the docs; use when you need multiple surfaces (four.meme, Flap, bundles, several chains).
|
|
30
|
-
- **Subpaths**: use in scripts, internal packages, or constrained runtimes when you only need one vertical slice (constants, ABIs, error helpers, HTTP clients, etc.).
|
|
31
|
-
|
|
32
|
-
| Subpath | Purpose |
|
|
33
|
-
|---------|---------|
|
|
34
|
-
| `four-flap-meme-sdk` | Main entry — full surface (recommended default) |
|
|
35
|
-
| `four-flap-meme-sdk/chains` | Per-chain namespaces and chain helpers |
|
|
36
|
-
| `four-flap-meme-sdk/shared` | Shared layer: constants, `foundation`, `clients`, `FourUtils`, etc. |
|
|
37
|
-
| `four-flap-meme-sdk/clients` | HTTP / bundle / infra clients |
|
|
38
|
-
| `four-flap-meme-sdk/dex` | DEX helpers and types |
|
|
39
|
-
| `four-flap-meme-sdk/constants` | Chain IDs, gas limits, addresses, profit helpers — smallest config-only slice |
|
|
40
|
-
| `four-flap-meme-sdk/abis` | Compiled contract JSON ABIs, shared fragment ABIs, Flap-specific ABIs (`src/abis` entry) |
|
|
41
|
-
| `four-flap-meme-sdk/foundation` | `normalizeUnknownError`, `getErrorMessageFromUnknown`, injectable `SdkLogger` — no domain logic |
|
|
42
|
-
|
|
43
|
-
```typescript
|
|
44
|
-
import { CHAINS, ADDRESSES } from 'four-flap-meme-sdk/constants';
|
|
45
|
-
import { TokenManager } from 'four-flap-meme-sdk/abis';
|
|
46
|
-
import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Docs: architecture & submission paths
|
|
50
|
-
|
|
51
|
-
- **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — audit-style checklist (what is done vs backlog).
|
|
52
|
-
- **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — when to use Merkle vs BlockRazor vs direct RPC vs ENI / 48.club, etc.
|
|
53
|
-
|
|
54
23
|
## 获取 Merkle API Key
|
|
55
24
|
|
|
56
25
|
从 [Merkle.io](https://merkle.io) 获取免费 API Key,用于 Bundle 服务。
|
package/README.zh-CN.md
CHANGED
|
@@ -29,41 +29,6 @@ npm i four-flap-meme-sdk ethers
|
|
|
29
29
|
npm i pinata
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
## 包入口与子路径(按需引用)
|
|
33
|
-
|
|
34
|
-
发布后包内为 **ESM**,`dist` 由 `npm run build` 生成。多数场景继续使用主入口即可;若希望缩小解析范围或只做配置层依赖,可选用 `package.json` 的 **`exports`** 子路径(需 Node/打包工具识别 `exports`)。
|
|
35
|
-
|
|
36
|
-
**如何选择**
|
|
37
|
-
|
|
38
|
-
- **主入口**:与文档示例一致;需要 four / Flap、Bundle、多链等组合能力时优先用它。
|
|
39
|
-
- **子路径**:在脚本、内部库或边缘运行时**只要某一竖切**(仅常量、仅 ABI、仅错误与日志、仅 HTTP 客户端等)时使用,以收敛依赖与解析面。
|
|
40
|
-
|
|
41
|
-
| 子路径 | 说明 |
|
|
42
|
-
|--------|------|
|
|
43
|
-
| `four-flap-meme-sdk` | 主入口,全量导出(默认推荐) |
|
|
44
|
-
| `four-flap-meme-sdk/chains` | 各链命名空间与链相关工具 |
|
|
45
|
-
| `four-flap-meme-sdk/shared` | 横向能力:常量、`foundation`、`clients`、`FourUtils` 等 |
|
|
46
|
-
| `four-flap-meme-sdk/clients` | Merkle / HTTP 等与 I/O 相关的客户端封装 |
|
|
47
|
-
| `four-flap-meme-sdk/dex` | DEX 路由与相关类型/辅助函数 |
|
|
48
|
-
| `four-flap-meme-sdk/constants` | 链 ID、Gas、常用地址、利润配置等常量(等价于深入 `shared` 中的常量模块,但更轻依赖面) |
|
|
49
|
-
| `four-flap-meme-sdk/abis` | 合约 JSON ABI(TokenManager 等)、公共片段 ABI、Flap 相关 ABI(与 `src/abis` 入口一致) |
|
|
50
|
-
| `four-flap-meme-sdk/foundation` | 错误规范化(`normalizeUnknownError` 等)与可选 `SdkLogger`,无业务逻辑 |
|
|
51
|
-
| `four-flap-meme-sdk/bundle-core` | Bundle 共享核心:`internal`、`submit`、`config-helpers` |
|
|
52
|
-
| `four-flap-meme-sdk/flows` | 高层流程(如 `createTokenFlow`) |
|
|
53
|
-
|
|
54
|
-
> **v2.0.0**:包根已移除 `TradeType` / `PROFIT_CONFIG` / `CHAIN` 等歧义导出,见 [docs/MIGRATION_EXPORTS.zh-CN.md](./docs/MIGRATION_EXPORTS.zh-CN.md)。
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
import { CHAINS, GAS_LIMITS } from 'four-flap-meme-sdk/constants';
|
|
58
|
-
import { TokenManager } from 'four-flap-meme-sdk/abis';
|
|
59
|
-
import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 文档:架构对齐与提交路径
|
|
63
|
-
|
|
64
|
-
- **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — 与审计文档对照的总表(已完成 / 待办)。
|
|
65
|
-
- **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — 何时用 Merkle / BlockRazor / 直连 RPC / ENI / 48.club 等。
|
|
66
|
-
|
|
67
32
|
## 浏览器环境支持
|
|
68
33
|
|
|
69
34
|
SDK 已内置 Cloudflare Workers 代理,**浏览器环境可直接使用,无需额外配置 CORS**:
|
|
@@ -4622,7 +4587,7 @@ const permitData = await buildPermitPiggybackAuto(
|
|
|
4622
4587
|
SDK 提供所有支持网络的预配置地址:
|
|
4623
4588
|
|
|
4624
4589
|
```typescript
|
|
4625
|
-
import {
|
|
4590
|
+
import { CHAIN } from 'four-flap-meme-sdk';
|
|
4626
4591
|
|
|
4627
4592
|
// 使用链枚举调用 SDK 方法(地址由 SDK 内部处理)
|
|
4628
4593
|
// 示例:
|
|
@@ -4631,11 +4596,11 @@ import { CHAINS } from 'four-flap-meme-sdk';
|
|
|
4631
4596
|
// await tryBuy('BSC', rpcUrl, token, amount, funds);
|
|
4632
4597
|
|
|
4633
4598
|
// 链信息
|
|
4634
|
-
console.log(
|
|
4635
|
-
console.log(
|
|
4636
|
-
console.log(
|
|
4637
|
-
console.log(
|
|
4638
|
-
console.log(
|
|
4599
|
+
console.log(CHAIN.BSC.chainId); // 56
|
|
4600
|
+
console.log(CHAIN.BASE.chainId); // 8453
|
|
4601
|
+
console.log(CHAIN.XLAYER.chainId); // 196
|
|
4602
|
+
console.log(CHAIN.MORPH.chainId); // 2818
|
|
4603
|
+
console.log(CHAIN.ARBITRUM_ONE.chainId); // 42161
|
|
4639
4604
|
```
|
|
4640
4605
|
|
|
4641
4606
|
---
|
|
@@ -1 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
import type { FourSignConfig } from './types.js';
|
|
2
|
+
/** ✅ 批量授权参数(直接提交到链上) */
|
|
3
|
+
export type ApproveFourTokenManagerBatchParams = {
|
|
4
|
+
privateKeys: string[];
|
|
5
|
+
tokenAddress: string;
|
|
6
|
+
amounts: string[];
|
|
7
|
+
config: FourSignConfig;
|
|
8
|
+
};
|
|
9
|
+
/** ✅ 批量授权结果(包含提交状态) */
|
|
10
|
+
export type ApproveFourTokenManagerBatchResult = {
|
|
11
|
+
success: boolean;
|
|
12
|
+
signedTransactions: string[];
|
|
13
|
+
approvedCount: number;
|
|
14
|
+
skippedCount: number;
|
|
15
|
+
txHashes?: string[];
|
|
16
|
+
message: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* 批量授权代币给 TokenManager(用于 Private Buy/Sell)
|
|
20
|
+
* ✅ 直接通过 RPC 提交到链上并等待确认
|
|
21
|
+
* ✅ 不需要 Merkle API Key,使用普通 RPC 即可
|
|
22
|
+
* ✅ 专门用于授权给 TokenManagerOriginal 合约
|
|
23
|
+
* ✅ 用于 fourBatchPrivateSell 和 fourBatchSellWithBundleMerkle
|
|
24
|
+
* ✅ 优化:并行获取 gasPrice、decimals、allowances
|
|
25
|
+
*/
|
|
26
|
+
export declare function approveFourTokenManagerBatch(params: ApproveFourTokenManagerBatchParams): Promise<ApproveFourTokenManagerBatchResult>;
|
|
@@ -1 +1,113 @@
|
|
|
1
|
-
|
|
1
|
+
import { ethers, Wallet } from 'ethers';
|
|
2
|
+
import { NonceManager, getOptimizedGasPrice } from '../../../utils/bundle-helpers.js';
|
|
3
|
+
import { ADDRESSES } from '../../../utils/constants.js';
|
|
4
|
+
import { ERC20_ABI } from '../../../shared/abis/common.js';
|
|
5
|
+
import { getTxType, getGasPriceConfig } from './config.js';
|
|
6
|
+
import { batchCheckAllowances } from '../../../utils/erc20.js';
|
|
7
|
+
/**
|
|
8
|
+
* 批量授权代币给 TokenManager(用于 Private Buy/Sell)
|
|
9
|
+
* ✅ 直接通过 RPC 提交到链上并等待确认
|
|
10
|
+
* ✅ 不需要 Merkle API Key,使用普通 RPC 即可
|
|
11
|
+
* ✅ 专门用于授权给 TokenManagerOriginal 合约
|
|
12
|
+
* ✅ 用于 fourBatchPrivateSell 和 fourBatchSellWithBundleMerkle
|
|
13
|
+
* ✅ 优化:并行获取 gasPrice、decimals、allowances
|
|
14
|
+
*/
|
|
15
|
+
export async function approveFourTokenManagerBatch(params) {
|
|
16
|
+
const { privateKeys, tokenAddress, amounts, config } = params;
|
|
17
|
+
if (privateKeys.length === 0 || amounts.length !== privateKeys.length) {
|
|
18
|
+
throw new Error('Private key count and amount count must match');
|
|
19
|
+
}
|
|
20
|
+
const tmAddr = ADDRESSES.BSC.TokenManagerOriginal;
|
|
21
|
+
const chainId = config.chainId ?? 56;
|
|
22
|
+
// ✅ 直接使用传入的 RPC URL 创建 provider(不依赖 Merkle)
|
|
23
|
+
const provider = new ethers.JsonRpcProvider(config.rpcUrl, {
|
|
24
|
+
chainId: chainId,
|
|
25
|
+
name: 'BSC'
|
|
26
|
+
});
|
|
27
|
+
const wallets = privateKeys.map(k => new Wallet(k, provider));
|
|
28
|
+
const allMax = amounts.every(a => a === 'max');
|
|
29
|
+
// ✅ 优化:并行获取 gasPrice、decimals(如果需要)、allowances
|
|
30
|
+
const [gasPrice, decimals, allowances] = await Promise.all([
|
|
31
|
+
getOptimizedGasPrice(provider, getGasPriceConfig(config)),
|
|
32
|
+
allMax
|
|
33
|
+
? Promise.resolve(18) // 如果都是 'max',不需要查询 decimals
|
|
34
|
+
: (async () => {
|
|
35
|
+
try {
|
|
36
|
+
const tokenContract = new ethers.Contract(tokenAddress, ERC20_ABI, provider);
|
|
37
|
+
return await tokenContract.decimals();
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new Error(`查询代币 decimals 失败: ${error.message}`);
|
|
41
|
+
}
|
|
42
|
+
})(),
|
|
43
|
+
batchCheckAllowances(provider, tokenAddress, wallets.map(w => w.address), tmAddr)
|
|
44
|
+
]);
|
|
45
|
+
const amountsBigInt = amounts.map(a => a === 'max' ? ethers.MaxUint256 : ethers.parseUnits(a, decimals));
|
|
46
|
+
// 只授权不足的
|
|
47
|
+
// ✅ 策略:如果授权额度 < MaxUint256 / 2n,就重新授权(确保授权足够大)
|
|
48
|
+
const APPROVAL_THRESHOLD = ethers.MaxUint256 / 2n;
|
|
49
|
+
const needApproval = wallets.filter((_, i) => allowances[i] < APPROVAL_THRESHOLD);
|
|
50
|
+
const needApprovalAmounts = amountsBigInt.filter((_, i) => allowances[i] < APPROVAL_THRESHOLD);
|
|
51
|
+
const skippedCount = wallets.length - needApproval.length;
|
|
52
|
+
if (needApproval.length === 0) {
|
|
53
|
+
return {
|
|
54
|
+
success: true,
|
|
55
|
+
signedTransactions: [],
|
|
56
|
+
approvedCount: 0,
|
|
57
|
+
skippedCount: skippedCount,
|
|
58
|
+
message: '所有钱包已授权,无需重复授权'
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// ✅ 优化:计算 gasLimit(不需要 RPC)
|
|
62
|
+
const getGasLimit = (cfg) => {
|
|
63
|
+
if (cfg.gasLimit)
|
|
64
|
+
return BigInt(cfg.gasLimit);
|
|
65
|
+
if (cfg.gasLimitMultiplier)
|
|
66
|
+
return BigInt(Math.ceil(60000 * cfg.gasLimitMultiplier));
|
|
67
|
+
return 60000n; // 默认授权 gas limit
|
|
68
|
+
};
|
|
69
|
+
const finalGasLimit = getGasLimit(config);
|
|
70
|
+
const txType = getTxType(config);
|
|
71
|
+
// ✅ 优化:并行获取 nonces 和构建未签名交易
|
|
72
|
+
const nonceManager = new NonceManager(provider);
|
|
73
|
+
const needApprovalTokens = needApproval.map(w => new ethers.Contract(tokenAddress, ERC20_ABI, w));
|
|
74
|
+
const [nonces, unsignedApprovals] = await Promise.all([
|
|
75
|
+
nonceManager.getNextNoncesForWallets(needApproval), // ✅ 批量获取 nonces(JSON-RPC 批量请求)
|
|
76
|
+
Promise.all(needApprovalTokens.map((token, i) => token.approve.populateTransaction(tmAddr, needApprovalAmounts[i])))
|
|
77
|
+
]);
|
|
78
|
+
// ✅ 并行签名所有授权交易
|
|
79
|
+
const signedTxs = await Promise.all(unsignedApprovals.map((unsigned, i) => needApproval[i].signTransaction({
|
|
80
|
+
...unsigned,
|
|
81
|
+
from: needApproval[i].address,
|
|
82
|
+
nonce: nonces[i],
|
|
83
|
+
gasLimit: finalGasLimit,
|
|
84
|
+
gasPrice,
|
|
85
|
+
chainId,
|
|
86
|
+
type: txType
|
|
87
|
+
})));
|
|
88
|
+
nonceManager.clearTemp();
|
|
89
|
+
try {
|
|
90
|
+
// ✅ 并行广播所有授权交易
|
|
91
|
+
const txResponses = await Promise.all(signedTxs.map(tx => provider.broadcastTransaction(tx)));
|
|
92
|
+
const txHashes = txResponses.map(r => r.hash);
|
|
93
|
+
// ✅ 并行等待所有授权交易确认(至少1个确认)
|
|
94
|
+
await Promise.all(txResponses.map(tx => tx.wait(1)));
|
|
95
|
+
return {
|
|
96
|
+
success: true,
|
|
97
|
+
signedTransactions: signedTxs,
|
|
98
|
+
approvedCount: signedTxs.length,
|
|
99
|
+
skippedCount: skippedCount,
|
|
100
|
+
txHashes: txHashes,
|
|
101
|
+
message: `授权成功!共 ${signedTxs.length} 个钱包已授权,跳过 ${skippedCount} 个已授权钱包`
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
return {
|
|
106
|
+
success: false,
|
|
107
|
+
signedTransactions: signedTxs,
|
|
108
|
+
approvedCount: 0,
|
|
109
|
+
skippedCount: skippedCount,
|
|
110
|
+
message: `授权提交失败: ${error.message}`
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -1,8 +1,70 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Four.meme bundle 配置 helper(实现见 bundle-core/)
|
|
3
|
-
*/
|
|
4
1
|
import type { FourBundleMerkleConfig, FourSignConfig } from './types.js';
|
|
5
2
|
export type { FourBundleMerkleConfig, FourSignConfig };
|
|
6
3
|
export type FourAnyConfig = FourBundleMerkleConfig | FourSignConfig;
|
|
7
|
-
export
|
|
8
|
-
|
|
4
|
+
export declare const ERRORS: {
|
|
5
|
+
NO_PRIVATE_KEY: {
|
|
6
|
+
en: string;
|
|
7
|
+
zh: string;
|
|
8
|
+
};
|
|
9
|
+
AMOUNT_MISMATCH: {
|
|
10
|
+
en: (buyCount: number, buyerCount: number) => string;
|
|
11
|
+
zh: (buyCount: number, buyerCount: number) => string;
|
|
12
|
+
};
|
|
13
|
+
IMAGE_REQUIRED: {
|
|
14
|
+
en: string;
|
|
15
|
+
zh: string;
|
|
16
|
+
};
|
|
17
|
+
KEY_AMOUNT_MISMATCH: {
|
|
18
|
+
en: string;
|
|
19
|
+
zh: string;
|
|
20
|
+
};
|
|
21
|
+
SELL_KEY_AMOUNT_MISMATCH: {
|
|
22
|
+
en: string;
|
|
23
|
+
zh: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare function getErrorMessage(key: keyof typeof ERRORS, ...args: any[]): string;
|
|
27
|
+
export declare function getTxType(config: FourAnyConfig): 0 | 2;
|
|
28
|
+
export declare function getGasPriceMultiplier(config: FourAnyConfig): number;
|
|
29
|
+
export declare function getBundleOptions(config: FourBundleMerkleConfig, blockOffset?: number): {
|
|
30
|
+
blockOffset: number;
|
|
31
|
+
minBlockOffset: number;
|
|
32
|
+
autoRetry: boolean;
|
|
33
|
+
maxRetries: number;
|
|
34
|
+
};
|
|
35
|
+
export declare function getGasPriceConfig(config: FourAnyConfig): any;
|
|
36
|
+
/**
|
|
37
|
+
* 判断是否需要提取利润
|
|
38
|
+
* ✅ 强制开启,始终返回 true
|
|
39
|
+
*/
|
|
40
|
+
export declare function shouldExtractProfit(config?: FourAnyConfig): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* 获取利润比例(基点)
|
|
43
|
+
* ✅ 硬编码:30 bps = 0.3% = 千分之3
|
|
44
|
+
*/
|
|
45
|
+
export declare function getProfitRateBps(config?: FourAnyConfig): number;
|
|
46
|
+
/**
|
|
47
|
+
* 获取利润接收地址
|
|
48
|
+
*/
|
|
49
|
+
export declare function getProfitRecipient(config?: FourAnyConfig): string;
|
|
50
|
+
/**
|
|
51
|
+
* 计算利润金额
|
|
52
|
+
* ✅ 强制提取利润:使用硬编码的利润率
|
|
53
|
+
*/
|
|
54
|
+
export declare function calculateProfit(amount: bigint, config?: FourAnyConfig): {
|
|
55
|
+
profit: bigint;
|
|
56
|
+
remaining: bigint;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* 批量计算利润
|
|
60
|
+
* ✅ 强制提取利润:使用硬编码的利润率
|
|
61
|
+
*/
|
|
62
|
+
export declare function calculateBatchProfit(amounts: bigint[], config?: FourAnyConfig): {
|
|
63
|
+
totalProfit: bigint;
|
|
64
|
+
remainingAmounts: bigint[];
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* 获取贿赂金额(Wei)
|
|
68
|
+
* ✅ 从配置中读取贿赂金额,转换为 Wei
|
|
69
|
+
*/
|
|
70
|
+
export declare function getBribeAmount(config?: FourAnyConfig): bigint;
|
|
@@ -1,2 +1,114 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { PROFIT_CONFIG } from '../../../utils/constants.js';
|
|
3
|
+
// 错误信息国际化
|
|
4
|
+
export const ERRORS = {
|
|
5
|
+
NO_PRIVATE_KEY: {
|
|
6
|
+
en: 'At least 1 private key (creator) is required',
|
|
7
|
+
zh: '至少需要 1 个私钥(创建者)'
|
|
8
|
+
},
|
|
9
|
+
AMOUNT_MISMATCH: {
|
|
10
|
+
en: (buyCount, buyerCount) => `Buy amount count (${buyCount}) must equal buyer count (${buyerCount})`,
|
|
11
|
+
zh: (buyCount, buyerCount) => `购买金额数量(${buyCount})必须等于买家数量(${buyerCount})`
|
|
12
|
+
},
|
|
13
|
+
IMAGE_REQUIRED: {
|
|
14
|
+
en: 'Either imageUrl or imageFile must be provided',
|
|
15
|
+
zh: '必须提供 imageUrl 或 imageFile'
|
|
16
|
+
},
|
|
17
|
+
KEY_AMOUNT_MISMATCH: {
|
|
18
|
+
en: 'Private key count and amount count must match',
|
|
19
|
+
zh: '私钥和购买金额数量必须一致'
|
|
20
|
+
},
|
|
21
|
+
SELL_KEY_AMOUNT_MISMATCH: {
|
|
22
|
+
en: 'Private key count and sell amount count must match',
|
|
23
|
+
zh: '私钥和卖出数量必须一致'
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export function getErrorMessage(key, ...args) {
|
|
27
|
+
const lang = (process.env.LANG || process.env.LANGUAGE || 'en').toLowerCase().includes('zh') ? 'zh' : 'en';
|
|
28
|
+
const message = ERRORS[key][lang];
|
|
29
|
+
return typeof message === 'function' ? message(...args) : message;
|
|
30
|
+
}
|
|
31
|
+
export function getTxType(config) {
|
|
32
|
+
return config.txType ?? 0;
|
|
33
|
+
}
|
|
34
|
+
export function getGasPriceMultiplier(config) {
|
|
35
|
+
return config.gasPriceMultiplierPercent ?? 50;
|
|
36
|
+
}
|
|
37
|
+
export function getBundleOptions(config, blockOffset) {
|
|
38
|
+
return {
|
|
39
|
+
blockOffset: blockOffset ?? config.bundleBlockOffset ?? 3,
|
|
40
|
+
minBlockOffset: config.minBlockOffset ?? 3,
|
|
41
|
+
autoRetry: config.autoRetryBundle ?? false,
|
|
42
|
+
maxRetries: config.maxBundleRetries ?? 2
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export function getGasPriceConfig(config) {
|
|
46
|
+
const gasPriceConfig = {};
|
|
47
|
+
// ✅ 如果用户明确设置了 minGasPriceGwei,就直接使用它作为 baseGasPrice(不增幅)
|
|
48
|
+
if (config.minGasPriceGwei !== undefined) {
|
|
49
|
+
gasPriceConfig.baseGasPrice = ethers.parseUnits(String(config.minGasPriceGwei), 'gwei');
|
|
50
|
+
gasPriceConfig.multiplierPercent = 0; // 不增幅
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// 否则使用默认增幅策略
|
|
54
|
+
gasPriceConfig.multiplierPercent = getGasPriceMultiplier(config);
|
|
55
|
+
}
|
|
56
|
+
return gasPriceConfig;
|
|
57
|
+
}
|
|
58
|
+
// ========================================
|
|
59
|
+
// 利润提取相关辅助函数
|
|
60
|
+
// ========================================
|
|
61
|
+
/**
|
|
62
|
+
* 判断是否需要提取利润
|
|
63
|
+
* ✅ 强制开启,始终返回 true
|
|
64
|
+
*/
|
|
65
|
+
export function shouldExtractProfit(config) {
|
|
66
|
+
return true; // 强制提取利润
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 获取利润比例(基点)
|
|
70
|
+
* ✅ 硬编码:30 bps = 0.3% = 千分之3
|
|
71
|
+
*/
|
|
72
|
+
export function getProfitRateBps(config) {
|
|
73
|
+
return PROFIT_CONFIG.RATE_BPS;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 获取利润接收地址
|
|
77
|
+
*/
|
|
78
|
+
export function getProfitRecipient(config) {
|
|
79
|
+
return PROFIT_CONFIG.RECIPIENT;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 计算利润金额
|
|
83
|
+
* ✅ 强制提取利润:使用硬编码的利润率
|
|
84
|
+
*/
|
|
85
|
+
export function calculateProfit(amount, config) {
|
|
86
|
+
// ✅ 强制提取利润
|
|
87
|
+
const profit = (amount * BigInt(PROFIT_CONFIG.RATE_BPS)) / 10000n;
|
|
88
|
+
const remaining = amount - profit;
|
|
89
|
+
return { profit, remaining };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 批量计算利润
|
|
93
|
+
* ✅ 强制提取利润:使用硬编码的利润率
|
|
94
|
+
*/
|
|
95
|
+
export function calculateBatchProfit(amounts, config) {
|
|
96
|
+
let totalProfit = 0n;
|
|
97
|
+
const remainingAmounts = [];
|
|
98
|
+
for (const amount of amounts) {
|
|
99
|
+
const { profit, remaining } = calculateProfit(amount, config);
|
|
100
|
+
totalProfit += profit;
|
|
101
|
+
remainingAmounts.push(remaining);
|
|
102
|
+
}
|
|
103
|
+
return { totalProfit, remainingAmounts };
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 获取贿赂金额(Wei)
|
|
107
|
+
* ✅ 从配置中读取贿赂金额,转换为 Wei
|
|
108
|
+
*/
|
|
109
|
+
export function getBribeAmount(config) {
|
|
110
|
+
if (!config || !config.bribeAmount || config.bribeAmount <= 0) {
|
|
111
|
+
return 0n;
|
|
112
|
+
}
|
|
113
|
+
return ethers.parseEther(String(config.bribeAmount));
|
|
114
|
+
}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { FourCreateWithBundleBuySignParams, FourCreateWithBundleBuyMerkleResult, FourBatchBuySignParams, FourBatchBuyMerkleResult, FourBatchSellSignParams, FourBatchSellMerkleResult } from './types.js';
|
|
2
|
+
export declare function createTokenWithBundleBuyMerkle(params: FourCreateWithBundleBuySignParams): Promise<FourCreateWithBundleBuyMerkleResult>;
|
|
3
|
+
export declare function batchBuyWithBundleMerkle(params: FourBatchBuySignParams): Promise<FourBatchBuyMerkleResult>;
|
|
4
|
+
export declare function batchSellWithBundleMerkle(params: FourBatchSellSignParams): Promise<FourBatchSellMerkleResult>;
|