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
|
@@ -25,7 +25,7 @@ export async function getTokenWhiteList(params) {
|
|
|
25
25
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
26
26
|
const contract = new Contract(params.iroOwnerAddress, IRO_OWNER_WHITELIST_ABI, provider);
|
|
27
27
|
const addresses = await contract.getTokenWhiteList(params.tokenAddress);
|
|
28
|
-
return addresses.map(
|
|
28
|
+
return addresses.map(a => ethers.getAddress(a));
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* 添加单个白名单地址 (返回签名交易)
|
|
@@ -34,7 +34,11 @@ export async function addTokenWhiteListForSubmit(params) {
|
|
|
34
34
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
35
35
|
const wallet = new Wallet(params.privateKey, provider);
|
|
36
36
|
const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
|
|
37
|
-
const data = iface.encodeFunctionData('addTokenWhiteList', [
|
|
37
|
+
const data = iface.encodeFunctionData('addTokenWhiteList', [
|
|
38
|
+
params.tokenAddress,
|
|
39
|
+
params.addr,
|
|
40
|
+
params.quota,
|
|
41
|
+
]);
|
|
38
42
|
const feeData = await provider.getFeeData();
|
|
39
43
|
const nonce = await provider.getTransactionCount(wallet.address, 'pending');
|
|
40
44
|
const tx = await wallet.signTransaction({
|
|
@@ -55,12 +59,17 @@ export async function addTokenWhiteListForSubmit(params) {
|
|
|
55
59
|
export async function batchAddTokenWhiteListForSubmit(params) {
|
|
56
60
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
57
61
|
const wallet = new Wallet(params.privateKey, provider);
|
|
58
|
-
const tuples = params.entries.map(
|
|
62
|
+
const tuples = params.entries.map(e => ({ account: e.addr, quota: e.quota }));
|
|
59
63
|
const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
|
|
60
|
-
const data = iface.encodeFunctionData('batchAddTokenWhiteList', [
|
|
64
|
+
const data = iface.encodeFunctionData('batchAddTokenWhiteList', [
|
|
65
|
+
params.tokenAddress,
|
|
66
|
+
tuples,
|
|
67
|
+
]);
|
|
61
68
|
const feeData = await provider.getFeeData();
|
|
62
69
|
const nonce = await provider.getTransactionCount(wallet.address, 'pending');
|
|
63
|
-
const gasLimit = params.entries.length > 5
|
|
70
|
+
const gasLimit = params.entries.length > 5
|
|
71
|
+
? BATCH_WHITELIST_GAS_LIMIT * 2n
|
|
72
|
+
: BATCH_WHITELIST_GAS_LIMIT;
|
|
64
73
|
const tx = await wallet.signTransaction({
|
|
65
74
|
to: params.iroOwnerAddress,
|
|
66
75
|
data,
|
|
@@ -80,7 +89,10 @@ export async function removeTokenWhiteListForSubmit(params) {
|
|
|
80
89
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
81
90
|
const wallet = new Wallet(params.privateKey, provider);
|
|
82
91
|
const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
|
|
83
|
-
const data = iface.encodeFunctionData('removeTokenWhiteList', [
|
|
92
|
+
const data = iface.encodeFunctionData('removeTokenWhiteList', [
|
|
93
|
+
params.tokenAddress,
|
|
94
|
+
params.addr,
|
|
95
|
+
]);
|
|
84
96
|
const feeData = await provider.getFeeData();
|
|
85
97
|
const nonce = await provider.getTransactionCount(wallet.address, 'pending');
|
|
86
98
|
const tx = await wallet.signTransaction({
|
package/dist/chains/index.d.ts
CHANGED
|
@@ -7,16 +7,3 @@ export * as bsc from './bsc/index.js';
|
|
|
7
7
|
export * as xlayer from './xlayer/index.js';
|
|
8
8
|
export * as monad from './monad/index.js';
|
|
9
9
|
export * as eni from './eni/index.js';
|
|
10
|
-
/**
|
|
11
|
-
* 与包根 `export * as chains` 一致的命名空间(`chains.bsc` / `chains.eni` …)
|
|
12
|
-
*/
|
|
13
|
-
import * as bscNs from './bsc/index.js';
|
|
14
|
-
import * as xlayerNs from './xlayer/index.js';
|
|
15
|
-
import * as monadNs from './monad/index.js';
|
|
16
|
-
import * as eniNs from './eni/index.js';
|
|
17
|
-
export declare const chains: {
|
|
18
|
-
readonly bsc: typeof bscNs;
|
|
19
|
-
readonly xlayer: typeof xlayerNs;
|
|
20
|
-
readonly monad: typeof monadNs;
|
|
21
|
-
readonly eni: typeof eniNs;
|
|
22
|
-
};
|
package/dist/chains/index.js
CHANGED
|
@@ -11,16 +11,3 @@ export * as xlayer from './xlayer/index.js';
|
|
|
11
11
|
export * as monad from './monad/index.js';
|
|
12
12
|
// ENI 链
|
|
13
13
|
export * as eni from './eni/index.js';
|
|
14
|
-
/**
|
|
15
|
-
* 与包根 `export * as chains` 一致的命名空间(`chains.bsc` / `chains.eni` …)
|
|
16
|
-
*/
|
|
17
|
-
import * as bscNs from './bsc/index.js';
|
|
18
|
-
import * as xlayerNs from './xlayer/index.js';
|
|
19
|
-
import * as monadNs from './monad/index.js';
|
|
20
|
-
import * as eniNs from './eni/index.js';
|
|
21
|
-
export const chains = {
|
|
22
|
-
bsc: bscNs,
|
|
23
|
-
xlayer: xlayerNs,
|
|
24
|
-
monad: monadNs,
|
|
25
|
-
eni: eniNs,
|
|
26
|
-
};
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* 在 EIP-7702 中,通过 delegate 调用时 msg.sender 是 EOA 本身
|
|
8
8
|
* 需要使用 executeApprove 函数
|
|
9
9
|
*/
|
|
10
|
-
import type { BundleApproveParams, BundleApproveResult,
|
|
10
|
+
import type { BundleApproveParams, BundleApproveResult, EIP7702Config } from './types.js';
|
|
11
11
|
/**
|
|
12
12
|
* 批量授权 - 生成签名后的交易
|
|
13
13
|
*
|
|
@@ -15,7 +15,31 @@ import type { BundleApproveParams, BundleApproveResult, BundleApproveMultiSpende
|
|
|
15
15
|
* @returns 签名后的交易和元数据
|
|
16
16
|
*/
|
|
17
17
|
export declare function bundleApprove(params: BundleApproveParams): Promise<BundleApproveResult>;
|
|
18
|
-
export
|
|
18
|
+
export interface BundleApproveMultiSpendersParams {
|
|
19
|
+
/** 主钱包(发起交易,支付 gas) */
|
|
20
|
+
mainPrivateKey: string;
|
|
21
|
+
/** 需要授权的钱包私钥列表 */
|
|
22
|
+
privateKeys: string[];
|
|
23
|
+
/** 代币地址 */
|
|
24
|
+
tokenAddress: string;
|
|
25
|
+
/** 授权给的地址列表(多个 spender) */
|
|
26
|
+
spenderAddresses: string[];
|
|
27
|
+
/** 授权金额(可选,默认 MaxUint256) */
|
|
28
|
+
amount?: bigint;
|
|
29
|
+
/** 配置 */
|
|
30
|
+
config?: EIP7702Config;
|
|
31
|
+
}
|
|
32
|
+
export interface BundleApproveMultiSpendersResult {
|
|
33
|
+
/** 签名后的交易 */
|
|
34
|
+
signedTransaction: string;
|
|
35
|
+
/** 元数据 */
|
|
36
|
+
metadata: {
|
|
37
|
+
walletCount: number;
|
|
38
|
+
tokenAddress: string;
|
|
39
|
+
spenderAddresses: string[];
|
|
40
|
+
totalApproveCalls: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
19
43
|
/**
|
|
20
44
|
* 多 spender 批量授权 - 生成签名后的交易
|
|
21
45
|
*
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* 需要使用 executeApprove 函数
|
|
9
9
|
*/
|
|
10
10
|
import { ethers, Contract } from 'ethers';
|
|
11
|
-
import { getCachedProvider, createWallet, signAuthorizationsBatch, buildEIP7702Transaction } from './utils.js';
|
|
12
|
-
import { UNIFIED_DELEGATE_ADDRESS, UNIFIED_DELEGATE_ABI, ERC20_ABI } from './constants.js';
|
|
11
|
+
import { getCachedProvider, createWallet, signAuthorizationsBatch, buildEIP7702Transaction, } from './utils.js';
|
|
12
|
+
import { UNIFIED_DELEGATE_ADDRESS, UNIFIED_DELEGATE_ABI, ERC20_ABI, } from './constants.js';
|
|
13
13
|
// 扩展 ABI 包含 executeApprove
|
|
14
14
|
const EXTENDED_DELEGATE_ABI = [
|
|
15
15
|
...UNIFIED_DELEGATE_ABI,
|
|
@@ -22,7 +22,11 @@ function buildApproveCalls(wallets, tokenAddress, spenderAddress, amount) {
|
|
|
22
22
|
const delegateInterface = new ethers.Interface(EXTENDED_DELEGATE_ABI);
|
|
23
23
|
const calls = [];
|
|
24
24
|
for (const wallet of wallets) {
|
|
25
|
-
const callData = delegateInterface.encodeFunctionData('executeApprove', [
|
|
25
|
+
const callData = delegateInterface.encodeFunctionData('executeApprove', [
|
|
26
|
+
tokenAddress,
|
|
27
|
+
spenderAddress,
|
|
28
|
+
amount,
|
|
29
|
+
]);
|
|
26
30
|
calls.push({
|
|
27
31
|
target: wallet.address,
|
|
28
32
|
allowFailure: false,
|
|
@@ -39,19 +43,20 @@ function buildApproveCalls(wallets, tokenAddress, spenderAddress, amount) {
|
|
|
39
43
|
* @returns 签名后的交易和元数据
|
|
40
44
|
*/
|
|
41
45
|
export async function bundleApprove(params) {
|
|
42
|
-
const { mainPrivateKey, privateKeys, tokenAddress, spenderAddress, amount = ethers.MaxUint256, config } = params;
|
|
46
|
+
const { mainPrivateKey, privateKeys, tokenAddress, spenderAddress, amount = ethers.MaxUint256, config, } = params;
|
|
43
47
|
if (privateKeys.length === 0) {
|
|
44
48
|
throw new Error('privateKeys 不能为空');
|
|
45
49
|
}
|
|
46
50
|
const provider = getCachedProvider(config?.rpcUrl);
|
|
47
51
|
const delegateAddress = (config?.delegateAddress && config.delegateAddress.trim()) || UNIFIED_DELEGATE_ADDRESS;
|
|
48
52
|
const mainWallet = createWallet(mainPrivateKey, provider);
|
|
49
|
-
const wallets = privateKeys.map(
|
|
53
|
+
const wallets = privateKeys.map(pk => createWallet(pk, provider));
|
|
50
54
|
// 检查 mainWallet 是否在 wallets 中
|
|
51
|
-
const mainWalletIndex = wallets.findIndex(
|
|
55
|
+
const mainWalletIndex = wallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
|
|
52
56
|
// 只为需要执行授权操作的钱包生成 authorization
|
|
53
57
|
// mainWallet 如果不在 privateKeys 中,只是支付 gas,不需要 authorization
|
|
54
|
-
const authorizations = await signAuthorizationsBatch(wallets, delegateAddress, provider, mainWalletIndex
|
|
58
|
+
const authorizations = await signAuthorizationsBatch(wallets, delegateAddress, provider, mainWalletIndex // 如果 mainWallet 在 wallets 中,传其索引;否则传 -1(无主钱包)
|
|
59
|
+
);
|
|
55
60
|
const calls = buildApproveCalls(wallets, tokenAddress, spenderAddress, amount);
|
|
56
61
|
const signedTransaction = await buildEIP7702Transaction(mainWallet, authorizations, calls, 0n, config);
|
|
57
62
|
return {
|
|
@@ -73,7 +78,11 @@ function buildApproveCallsMultiSpenders(wallets, tokenAddress, spenderAddresses,
|
|
|
73
78
|
// 对每个钱包,授权所有 spender
|
|
74
79
|
for (const wallet of wallets) {
|
|
75
80
|
for (const spender of spenderAddresses) {
|
|
76
|
-
const callData = delegateInterface.encodeFunctionData('executeApprove', [
|
|
81
|
+
const callData = delegateInterface.encodeFunctionData('executeApprove', [
|
|
82
|
+
tokenAddress,
|
|
83
|
+
spender,
|
|
84
|
+
amount,
|
|
85
|
+
]);
|
|
77
86
|
calls.push({
|
|
78
87
|
target: wallet.address,
|
|
79
88
|
allowFailure: false,
|
|
@@ -94,7 +103,7 @@ function buildApproveCallsMultiSpenders(wallets, tokenAddress, spenderAddresses,
|
|
|
94
103
|
* @returns 签名后的交易和元数据
|
|
95
104
|
*/
|
|
96
105
|
export async function bundleApproveMultiSpenders(params) {
|
|
97
|
-
const { mainPrivateKey, privateKeys, tokenAddress, spenderAddresses, amount = ethers.MaxUint256, config } = params;
|
|
106
|
+
const { mainPrivateKey, privateKeys, tokenAddress, spenderAddresses, amount = ethers.MaxUint256, config, } = params;
|
|
98
107
|
if (privateKeys.length === 0) {
|
|
99
108
|
throw new Error('privateKeys 不能为空');
|
|
100
109
|
}
|
|
@@ -104,13 +113,14 @@ export async function bundleApproveMultiSpenders(params) {
|
|
|
104
113
|
const provider = getCachedProvider(config?.rpcUrl);
|
|
105
114
|
const delegateAddress = (config?.delegateAddress && config.delegateAddress.trim()) || UNIFIED_DELEGATE_ADDRESS;
|
|
106
115
|
const mainWallet = createWallet(mainPrivateKey, provider);
|
|
107
|
-
const wallets = privateKeys.map(
|
|
116
|
+
const wallets = privateKeys.map(pk => createWallet(pk, provider));
|
|
108
117
|
// 检查 mainWallet 是否在 wallets 中
|
|
109
|
-
const mainWalletIndex = wallets.findIndex(
|
|
118
|
+
const mainWalletIndex = wallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
|
|
110
119
|
// 只为需要执行授权操作的钱包生成 authorization
|
|
111
120
|
const authorizations = await signAuthorizationsBatch(wallets, delegateAddress, provider, mainWalletIndex);
|
|
112
121
|
// ✅ 关键:一次性构建所有 approve 调用
|
|
113
122
|
const calls = buildApproveCallsMultiSpenders(wallets, tokenAddress, spenderAddresses, amount);
|
|
123
|
+
console.log(`[bundleApproveMultiSpenders] 钱包数: ${wallets.length}, spender数: ${spenderAddresses.length}, 总调用数: ${calls.length}`);
|
|
114
124
|
const signedTransaction = await buildEIP7702Transaction(mainWallet, authorizations, calls, 0n, config);
|
|
115
125
|
return {
|
|
116
126
|
signedTransaction,
|
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
*
|
|
7
7
|
* 只生成签名,由调用方决定如何提交
|
|
8
8
|
*/
|
|
9
|
-
import type { BundleBuyParams, BundleBuyResult } from './types.js';
|
|
9
|
+
import type { BundleBuyParams as BaseBundleBuyParams, BundleBuyResult } from './types.js';
|
|
10
|
+
import { type UserType } from './utils.js';
|
|
11
|
+
export interface BundleBuyParams extends BaseBundleBuyParams {
|
|
12
|
+
/** 用户类型(影响利润率) */
|
|
13
|
+
userType?: UserType;
|
|
14
|
+
}
|
|
10
15
|
/**
|
|
11
16
|
* 批量买入 - 生成签名后的交易
|
|
12
17
|
*
|
|
@@ -44,5 +49,4 @@ import type { BundleBuyParams, BundleBuyResult } from './types.js';
|
|
|
44
49
|
* fee: 2500, // 0.25%
|
|
45
50
|
* });
|
|
46
51
|
*/
|
|
47
|
-
export type { BundleBuyParams } from './types.js';
|
|
48
52
|
export declare function bundleBuy(params: BundleBuyParams): Promise<BundleBuyResult>;
|
|
@@ -36,22 +36,18 @@ function buildFlapBuyCalls(wallets, buyAmounts, tokenAddress) {
|
|
|
36
36
|
continue;
|
|
37
37
|
// ✅ 修复:使用 swapExactInput 代替 buy 函数,与 bundle-create.ts 保持一致
|
|
38
38
|
// buy(token) 是旧 API,swapExactInput 是新的标准 API
|
|
39
|
-
const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [
|
|
40
|
-
{
|
|
39
|
+
const portalCallData = portalInterface.encodeFunctionData('swapExactInput', [{
|
|
41
40
|
inputToken: ethers.ZeroAddress, // 0x0 = OKB (原生代币)
|
|
42
41
|
outputToken: tokenAddress,
|
|
43
42
|
inputAmount: amount,
|
|
44
43
|
minOutputAmount: 0n, // 无滑点保护
|
|
45
44
|
permitData: '0x',
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const batchCalls = [
|
|
49
|
-
{
|
|
45
|
+
}]);
|
|
46
|
+
const batchCalls = [{
|
|
50
47
|
target: FLAP_PORTAL_ADDRESS,
|
|
51
48
|
value: amount,
|
|
52
49
|
data: portalCallData,
|
|
53
|
-
}
|
|
54
|
-
];
|
|
50
|
+
}];
|
|
55
51
|
const callData = delegateInterface.encodeFunctionData('executeBatch', [batchCalls]);
|
|
56
52
|
calls.push({
|
|
57
53
|
target: wallet.address, // 以钱包身份调用,代币会到钱包
|
|
@@ -146,6 +142,46 @@ function buildProfitCall(mainWallet, profitAmount, profitRecipient) {
|
|
|
146
142
|
callData,
|
|
147
143
|
};
|
|
148
144
|
}
|
|
145
|
+
// ========================================
|
|
146
|
+
// 批量买入主函数
|
|
147
|
+
// ========================================
|
|
148
|
+
/**
|
|
149
|
+
* 批量买入 - 生成签名后的交易
|
|
150
|
+
*
|
|
151
|
+
* @param params 买入参数
|
|
152
|
+
* @returns 签名后的交易和元数据
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* // FLAP 内盘买入
|
|
156
|
+
* const result = await bundleBuy({
|
|
157
|
+
* mainPrivateKey: '0x...',
|
|
158
|
+
* privateKeys: ['0x...', '0x...'],
|
|
159
|
+
* buyAmounts: ['0.01', '0.02'],
|
|
160
|
+
* tokenAddress: '0x...',
|
|
161
|
+
* tradeType: 'FLAP',
|
|
162
|
+
* });
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* // V2 买入
|
|
166
|
+
* const result = await bundleBuy({
|
|
167
|
+
* mainPrivateKey: '0x...',
|
|
168
|
+
* privateKeys: ['0x...', '0x...'],
|
|
169
|
+
* buyAmounts: ['0.01', '0.02'],
|
|
170
|
+
* tokenAddress: '0x...',
|
|
171
|
+
* tradeType: 'V2',
|
|
172
|
+
* });
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* // V3 买入(默认)
|
|
176
|
+
* const result = await bundleBuy({
|
|
177
|
+
* mainPrivateKey: '0x...',
|
|
178
|
+
* privateKeys: ['0x...', '0x...'],
|
|
179
|
+
* buyAmounts: ['0.01', '0.02'],
|
|
180
|
+
* tokenAddress: '0x...',
|
|
181
|
+
* tradeType: 'V3',
|
|
182
|
+
* fee: 2500, // 0.25%
|
|
183
|
+
* });
|
|
184
|
+
*/
|
|
149
185
|
export async function bundleBuy(params) {
|
|
150
186
|
const { mainPrivateKey, privateKeys, buyAmounts, tokenAddress, tradeType = 'V3', routerAddress, fee = V3_FEE_TIERS.MEDIUM, userType = 'v0', // ✅ 用户类型(影响利润率)
|
|
151
187
|
config, } = params;
|
|
@@ -159,20 +195,22 @@ export async function bundleBuy(params) {
|
|
|
159
195
|
// 同步操作 - 批量创建钱包和解析金额
|
|
160
196
|
// ========================================
|
|
161
197
|
const mainWallet = createWallet(mainPrivateKey, provider);
|
|
162
|
-
const wallets = privateKeys.map(
|
|
198
|
+
const wallets = privateKeys.map(pk => createWallet(pk, provider));
|
|
163
199
|
// 批量解析金额(同步)
|
|
164
|
-
const buyAmountsWei = buyAmounts.map(
|
|
200
|
+
const buyAmountsWei = buyAmounts.map(amt => ethers.parseEther(amt));
|
|
165
201
|
const totalBuyAmount = buyAmountsWei.reduce((sum, amt) => sum + amt, 0n);
|
|
166
202
|
// ✅ 使用 userType 计算利润
|
|
167
203
|
const profitAmount = calculateProfitAmountByTxCount(totalBuyAmount, wallets.length, userType);
|
|
168
204
|
const profitRecipient = getProfitRecipient(config);
|
|
169
205
|
// 确定需要授权的钱包
|
|
170
|
-
const mainWalletIndex = wallets.findIndex(
|
|
171
|
-
const allWallets = mainWalletIndex === -1
|
|
206
|
+
const mainWalletIndex = wallets.findIndex(w => w.address.toLowerCase() === mainWallet.address.toLowerCase());
|
|
207
|
+
const allWallets = mainWalletIndex === -1
|
|
208
|
+
? [mainWallet, ...wallets]
|
|
209
|
+
: wallets;
|
|
172
210
|
// ========================================
|
|
173
211
|
// 并行获取所有异步数据
|
|
174
212
|
// ========================================
|
|
175
|
-
const allAddresses = allWallets.map(
|
|
213
|
+
const allAddresses = allWallets.map(w => w.address);
|
|
176
214
|
const [walletNonces, mainNonce, feeData] = await Promise.all([
|
|
177
215
|
// 1. 批量获取授权钱包的 nonce
|
|
178
216
|
batchGetNonces(allAddresses, provider),
|