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
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bundle 共享核心逻辑(Four / TM-Merkle / Flap Portal 共用)
|
|
3
|
-
*/
|
|
4
|
-
export { getErc20Decimals, getErc20DecimalsMerkle, generateHopWallets, normalizeAmounts, batchGetBalances, estimateErc20TransferGas, estimateMaxErc20TransferGas, calculateGasLimit, isNativeTokenAddress, type AmountLike, type BundleGasConfig, } from './internal.js';
|
|
5
|
-
export { resolveChainName, createSignProvider, createSignWallet, resolveSignContext, normalizeItemsOrRecipientsAmounts, resolveProvidedHops, resolveHopCountInput, signBribeTransaction, type SignConfigInput, type HopItem, } from './sign-context-helpers.js';
|
|
6
|
-
export { BUNDLE_ERRORS, ERRORS, getBundleErrorMessage, getErrorMessage } from './errors.js';
|
|
7
|
-
export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, type BundleGasConfigInput, type BundleMerkleConfigInput, } from './config-helpers.js';
|
|
8
|
-
export { submitBundleToMerkle, submitMultipleBundles, submitMultipleBundlesParallel, submitBundleToBlockRazor, submitMultipleBundlesToBlockRazor, submitMultipleBundlesToBlockRazorParallel, submitDirectToRpc, submitDirectToRpcSequential, submitDirectToRpcSequentialNoWait, submitDirectToRpcParallel, submitDirectToRpcSmart, type MerkleSubmitConfig, type SubmitBundleResult, type BlockRazorSubmitConfig, type BlockRazorSubmitResult, type DirectSubmitConfig, type DirectSubmitResult, type DirectTxResult, } from './submit.js';
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bundle 共享核心逻辑(Four / TM-Merkle / Flap Portal 共用)
|
|
3
|
-
*/
|
|
4
|
-
export { getErc20Decimals, getErc20DecimalsMerkle, generateHopWallets, normalizeAmounts, batchGetBalances, estimateErc20TransferGas, estimateMaxErc20TransferGas, calculateGasLimit, isNativeTokenAddress, } from './internal.js';
|
|
5
|
-
export { resolveChainName, createSignProvider, createSignWallet, resolveSignContext, normalizeItemsOrRecipientsAmounts, resolveProvidedHops, resolveHopCountInput, signBribeTransaction, } from './sign-context-helpers.js';
|
|
6
|
-
export { BUNDLE_ERRORS, ERRORS, getBundleErrorMessage, getErrorMessage } from './errors.js';
|
|
7
|
-
export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, } from './config-helpers.js';
|
|
8
|
-
export { submitBundleToMerkle, submitMultipleBundles, submitMultipleBundlesParallel, submitBundleToBlockRazor, submitMultipleBundlesToBlockRazor, submitMultipleBundlesToBlockRazorParallel, submitDirectToRpc, submitDirectToRpcSequential, submitDirectToRpcSequentialNoWait, submitDirectToRpcParallel, submitDirectToRpcSmart, } from './submit.js';
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { JsonRpcProvider } from 'ethers';
|
|
2
|
-
import type { GeneratedWallet } from '../utils/wallet.js';
|
|
3
|
-
import type { AmountLike, BundleGasConfig } from './types.js';
|
|
4
|
-
/**
|
|
5
|
-
* 获取 ERC20 代币精度(带缓存)
|
|
6
|
-
*/
|
|
7
|
-
export declare function getErc20Decimals(provider: JsonRpcProvider, token: string, chainId?: number): Promise<number>;
|
|
8
|
-
/** @deprecated 使用 getErc20Decimals */
|
|
9
|
-
export declare const getErc20DecimalsMerkle: typeof getErc20Decimals;
|
|
10
|
-
/** 生成多跳中间钱包(地址 + 私钥) */
|
|
11
|
-
export declare function generateHopWallets(recipientCount: number, hopCount: number | number[]): GeneratedWallet[][] | null;
|
|
12
|
-
export declare function normalizeAmounts(recipients: string[], amount?: AmountLike, amounts?: AmountLike[]): string[];
|
|
13
|
-
/**
|
|
14
|
-
* 批量获取余额(原生代币或 ERC20,优先 Multicall3)
|
|
15
|
-
*/
|
|
16
|
-
export declare function batchGetBalances(provider: JsonRpcProvider, addresses: string[], tokenAddress?: string, chainId?: number): Promise<bigint[]>;
|
|
17
|
-
export declare function estimateErc20TransferGas(provider: JsonRpcProvider, tokenAddress: string, from: string, to: string, amount: bigint, bufferPercent?: number): Promise<bigint>;
|
|
18
|
-
export declare function estimateMaxErc20TransferGas(provider: JsonRpcProvider, tokenAddress: string, from: string, recipients: string[], amounts: bigint[], bufferPercent?: number): Promise<bigint>;
|
|
19
|
-
export declare function calculateGasLimit(config: BundleGasConfig, isNative: boolean, hasHops: boolean, hopCount?: number): bigint;
|
|
20
|
-
export declare function isNativeTokenAddress(tokenAddress?: string): boolean;
|
|
21
|
-
export type { AmountLike, BundleGasConfig } from './types.js';
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import { ethers, Wallet } from 'ethers';
|
|
2
|
-
import { MULTICALL3_ABI, ERC20_BALANCE_ABI } from '../abis/common.js';
|
|
3
|
-
import { CHAINS, GAS_LIMITS, getMulticall3Address } from '../shared/constants/index.js';
|
|
4
|
-
const decimalsCache = new Map();
|
|
5
|
-
function mapAggregate3Results(results, decode, fallback) {
|
|
6
|
-
return results.map((result) => {
|
|
7
|
-
if (result.success && result.returnData && result.returnData !== '0x') {
|
|
8
|
-
try {
|
|
9
|
-
return decode(result.returnData);
|
|
10
|
-
}
|
|
11
|
-
catch {
|
|
12
|
-
return fallback;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return fallback;
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* 获取 ERC20 代币精度(带缓存)
|
|
20
|
-
*/
|
|
21
|
-
export async function getErc20Decimals(provider, token, chainId) {
|
|
22
|
-
const resolvedChainId = chainId ?? Number((await provider.getNetwork()).chainId);
|
|
23
|
-
const key = `${resolvedChainId}_${token.toLowerCase()}`;
|
|
24
|
-
if (decimalsCache.has(key))
|
|
25
|
-
return decimalsCache.get(key);
|
|
26
|
-
try {
|
|
27
|
-
const erc20 = new ethers.Contract(token, ['function decimals() view returns (uint8)'], provider);
|
|
28
|
-
const d = await erc20.decimals();
|
|
29
|
-
if (!Number.isFinite(d) || d < 0 || d > 36)
|
|
30
|
-
return 18;
|
|
31
|
-
decimalsCache.set(key, d);
|
|
32
|
-
return d;
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
return 18;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/** @deprecated 使用 getErc20Decimals */
|
|
39
|
-
export const getErc20DecimalsMerkle = getErc20Decimals;
|
|
40
|
-
/** 生成多跳中间钱包(地址 + 私钥) */
|
|
41
|
-
export function generateHopWallets(recipientCount, hopCount) {
|
|
42
|
-
const hopCounts = Array.isArray(hopCount) ? hopCount : new Array(recipientCount).fill(hopCount);
|
|
43
|
-
if (hopCounts.every((h) => h <= 0))
|
|
44
|
-
return null;
|
|
45
|
-
const result = [];
|
|
46
|
-
for (let i = 0; i < recipientCount; i++) {
|
|
47
|
-
const chain = [];
|
|
48
|
-
for (let j = 0; j < hopCounts[i]; j++) {
|
|
49
|
-
const wallet = Wallet.createRandom();
|
|
50
|
-
chain.push({
|
|
51
|
-
address: wallet.address,
|
|
52
|
-
privateKey: wallet.privateKey,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
result.push(chain);
|
|
56
|
-
}
|
|
57
|
-
return result;
|
|
58
|
-
}
|
|
59
|
-
export function normalizeAmounts(recipients, amount, amounts) {
|
|
60
|
-
if (amounts && amounts.length > 0) {
|
|
61
|
-
if (amounts.length !== recipients.length) {
|
|
62
|
-
throw new Error(`amounts length (${amounts.length}) must match recipients length (${recipients.length})`);
|
|
63
|
-
}
|
|
64
|
-
return amounts.map((a) => (typeof a === 'bigint' ? a.toString() : String(a)));
|
|
65
|
-
}
|
|
66
|
-
if (amount !== undefined && String(amount).trim().length > 0) {
|
|
67
|
-
return new Array(recipients.length).fill(typeof amount === 'bigint' ? amount.toString() : String(amount));
|
|
68
|
-
}
|
|
69
|
-
throw new Error('Either amount or amounts must be provided');
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* 批量获取余额(原生代币或 ERC20,优先 Multicall3)
|
|
73
|
-
*/
|
|
74
|
-
export async function batchGetBalances(provider, addresses, tokenAddress, chainId) {
|
|
75
|
-
if (addresses.length === 0)
|
|
76
|
-
return [];
|
|
77
|
-
const resolvedChainId = chainId ?? Number((await provider.getNetwork()).chainId);
|
|
78
|
-
const multicall3Address = getMulticall3Address(resolvedChainId);
|
|
79
|
-
const multicall = new ethers.Contract(multicall3Address, MULTICALL3_ABI, provider);
|
|
80
|
-
if (!tokenAddress) {
|
|
81
|
-
const multicallIface = new ethers.Interface(MULTICALL3_ABI);
|
|
82
|
-
const calls = addresses.map((addr) => ({
|
|
83
|
-
target: multicall3Address,
|
|
84
|
-
allowFailure: true,
|
|
85
|
-
callData: multicallIface.encodeFunctionData('getEthBalance', [addr]),
|
|
86
|
-
}));
|
|
87
|
-
try {
|
|
88
|
-
const results = await multicall.aggregate3(calls);
|
|
89
|
-
return mapAggregate3Results(results, (returnData) => {
|
|
90
|
-
const decoded = multicallIface.decodeFunctionResult('getEthBalance', returnData);
|
|
91
|
-
return decoded[0];
|
|
92
|
-
}, 0n);
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
return Promise.all(addresses.map((addr) => provider.getBalance(addr).catch(() => 0n)));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const iface = new ethers.Interface(ERC20_BALANCE_ABI);
|
|
99
|
-
const calls = addresses.map((addr) => ({
|
|
100
|
-
target: tokenAddress,
|
|
101
|
-
allowFailure: true,
|
|
102
|
-
callData: iface.encodeFunctionData('balanceOf', [addr]),
|
|
103
|
-
}));
|
|
104
|
-
try {
|
|
105
|
-
const results = await multicall.aggregate3(calls);
|
|
106
|
-
return mapAggregate3Results(results, (returnData) => {
|
|
107
|
-
return iface.decodeFunctionResult('balanceOf', returnData)[0];
|
|
108
|
-
}, 0n);
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
const fallbackCalls = addresses.map((addr) => provider
|
|
112
|
-
.call({ to: tokenAddress, data: iface.encodeFunctionData('balanceOf', [addr]) })
|
|
113
|
-
.then((raw) => iface.decodeFunctionResult('balanceOf', raw)[0])
|
|
114
|
-
.catch(() => 0n));
|
|
115
|
-
return Promise.all(fallbackCalls);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
export async function estimateErc20TransferGas(provider, tokenAddress, from, to, amount, bufferPercent = 5) {
|
|
119
|
-
try {
|
|
120
|
-
const iface = new ethers.Interface(['function transfer(address,uint256) returns (bool)']);
|
|
121
|
-
const data = iface.encodeFunctionData('transfer', [to, amount]);
|
|
122
|
-
const estimatedGas = await provider.estimateGas({
|
|
123
|
-
from,
|
|
124
|
-
to: tokenAddress,
|
|
125
|
-
data,
|
|
126
|
-
value: 0n,
|
|
127
|
-
});
|
|
128
|
-
const buffer = (estimatedGas * BigInt(bufferPercent)) / 100n;
|
|
129
|
-
return estimatedGas + buffer;
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
return 52000n;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
export async function estimateMaxErc20TransferGas(provider, tokenAddress, from, recipients, amounts, bufferPercent = 5) {
|
|
136
|
-
if (recipients.length === 0)
|
|
137
|
-
return 52000n;
|
|
138
|
-
const sampleIndices = [0];
|
|
139
|
-
if (recipients.length > 1)
|
|
140
|
-
sampleIndices.push(Math.min(1, recipients.length - 1));
|
|
141
|
-
if (recipients.length > 2)
|
|
142
|
-
sampleIndices.push(Math.min(2, recipients.length - 1));
|
|
143
|
-
if (recipients.length > 3)
|
|
144
|
-
sampleIndices.push(recipients.length - 1);
|
|
145
|
-
const uniqueIndices = [...new Set(sampleIndices)];
|
|
146
|
-
try {
|
|
147
|
-
const estimates = await Promise.all(uniqueIndices.map((i) => estimateErc20TransferGas(provider, tokenAddress, from, recipients[i], amounts[i], bufferPercent)));
|
|
148
|
-
return estimates.reduce((max, gas) => (gas > max ? gas : max), 0n);
|
|
149
|
-
}
|
|
150
|
-
catch {
|
|
151
|
-
return 52000n;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
export function calculateGasLimit(config, isNative, hasHops, hopCount = 0) {
|
|
155
|
-
if (config.gasLimit !== undefined) {
|
|
156
|
-
return BigInt(config.gasLimit);
|
|
157
|
-
}
|
|
158
|
-
const isXLayer = config.chainId === CHAINS.XLAYER.chainId;
|
|
159
|
-
const baseGas = isNative
|
|
160
|
-
? isXLayer
|
|
161
|
-
? Number(GAS_LIMITS.XLAYER_NATIVE_TRANSFER)
|
|
162
|
-
: Number(GAS_LIMITS.NATIVE_TRANSFER)
|
|
163
|
-
: 46815;
|
|
164
|
-
if (hasHops && hopCount > 0) {
|
|
165
|
-
const multiplier = config.gasLimitMultiplier ?? 1.1;
|
|
166
|
-
return BigInt(Math.ceil(baseGas * multiplier));
|
|
167
|
-
}
|
|
168
|
-
const multiplier = config.gasLimitMultiplier ?? 1.1;
|
|
169
|
-
return BigInt(Math.ceil(baseGas * multiplier));
|
|
170
|
-
}
|
|
171
|
-
export function isNativeTokenAddress(tokenAddress) {
|
|
172
|
-
if (!tokenAddress)
|
|
173
|
-
return true;
|
|
174
|
-
const v = tokenAddress.trim().toLowerCase();
|
|
175
|
-
if (!v)
|
|
176
|
-
return true;
|
|
177
|
-
if (v === 'native')
|
|
178
|
-
return true;
|
|
179
|
-
if (v === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee')
|
|
180
|
-
return true;
|
|
181
|
-
return false;
|
|
182
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ethers, Wallet } from 'ethers';
|
|
2
|
-
import { type BundleGasConfigInput } from './config-helpers.js';
|
|
3
|
-
export type SignConfigInput = BundleGasConfigInput & {
|
|
4
|
-
rpcUrl: string;
|
|
5
|
-
chainId?: number;
|
|
6
|
-
};
|
|
7
|
-
export type HopItem = {
|
|
8
|
-
hopPrivateKeys?: string[];
|
|
9
|
-
hopCount?: number;
|
|
10
|
-
};
|
|
11
|
-
export declare function resolveChainName(chainIdNum: number): string;
|
|
12
|
-
export declare function createSignProvider(rpcUrl: string, chainIdNum: number, chainName?: string): ethers.JsonRpcProvider;
|
|
13
|
-
export declare function createSignWallet(fromPrivateKey: string, provider: ethers.JsonRpcProvider): Wallet;
|
|
14
|
-
export declare function resolveSignContext(config: SignConfigInput, fromPrivateKey: string): {
|
|
15
|
-
chainIdNum: number;
|
|
16
|
-
provider: ethers.JsonRpcProvider;
|
|
17
|
-
mainWallet: ethers.Wallet;
|
|
18
|
-
txType: 0 | 2;
|
|
19
|
-
};
|
|
20
|
-
export declare function normalizeItemsOrRecipientsAmounts(recipients: string[], items: Array<{
|
|
21
|
-
amount: string | number | bigint;
|
|
22
|
-
}> | undefined, amount: string | number | bigint | undefined, amounts: Array<string | number | bigint> | undefined, normalize: (recipients: string[], amount?: string | number | bigint, amounts?: Array<string | number | bigint>) => string[]): string[];
|
|
23
|
-
export declare function resolveProvidedHops(recipientCount: number, hopPrivateKeys?: string[][], items?: HopItem[]): string[][] | null;
|
|
24
|
-
export declare function resolveHopCountInput(recipientCount: number, hopCount: number | number[], items?: HopItem[]): number | number[];
|
|
25
|
-
export declare function signBribeTransaction(wallet: Wallet, bribeAmount: bigint, nonce: number, gasPrice: bigint, chainIdNum: number, txType: 0 | 2): Promise<string>;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { ethers, Wallet } from 'ethers';
|
|
2
|
-
import { BLOCKRAZOR_BUILDER_EOA } from '../shared/constants/index.js';
|
|
3
|
-
import { getTxType } from './config-helpers.js';
|
|
4
|
-
export function resolveChainName(chainIdNum) {
|
|
5
|
-
if (chainIdNum === 143)
|
|
6
|
-
return 'Monad';
|
|
7
|
-
if (chainIdNum === 56)
|
|
8
|
-
return 'BSC';
|
|
9
|
-
return `Chain-${chainIdNum}`;
|
|
10
|
-
}
|
|
11
|
-
export function createSignProvider(rpcUrl, chainIdNum, chainName) {
|
|
12
|
-
return new ethers.JsonRpcProvider(rpcUrl, {
|
|
13
|
-
chainId: chainIdNum,
|
|
14
|
-
name: chainName ?? resolveChainName(chainIdNum),
|
|
15
|
-
ensAddress: undefined,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
export function createSignWallet(fromPrivateKey, provider) {
|
|
19
|
-
return new Wallet(fromPrivateKey, provider);
|
|
20
|
-
}
|
|
21
|
-
export function resolveSignContext(config, fromPrivateKey) {
|
|
22
|
-
const chainIdNum = config.chainId ?? 56;
|
|
23
|
-
const provider = createSignProvider(config.rpcUrl, chainIdNum);
|
|
24
|
-
return {
|
|
25
|
-
chainIdNum,
|
|
26
|
-
provider,
|
|
27
|
-
mainWallet: createSignWallet(fromPrivateKey, provider),
|
|
28
|
-
txType: getTxType(config),
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
export function normalizeItemsOrRecipientsAmounts(recipients, items, amount, amounts, normalize) {
|
|
32
|
-
if (items && items.length > 0) {
|
|
33
|
-
return items.map((it) => (typeof it.amount === 'bigint' ? it.amount.toString() : String(it.amount)));
|
|
34
|
-
}
|
|
35
|
-
return normalize(recipients, amount, amounts);
|
|
36
|
-
}
|
|
37
|
-
export function resolveProvidedHops(recipientCount, hopPrivateKeys, items) {
|
|
38
|
-
if (hopPrivateKeys && hopPrivateKeys.length > 0) {
|
|
39
|
-
if (hopPrivateKeys.length !== recipientCount) {
|
|
40
|
-
throw new Error(`hopPrivateKeys length (${hopPrivateKeys.length}) must match recipients length (${recipientCount})`);
|
|
41
|
-
}
|
|
42
|
-
return hopPrivateKeys.every((h) => h.length === 0) ? null : hopPrivateKeys;
|
|
43
|
-
}
|
|
44
|
-
if (items && items.length > 0) {
|
|
45
|
-
const hops = items.map((it) => it.hopPrivateKeys ?? []);
|
|
46
|
-
return hops.every((h) => h.length === 0) ? null : hops;
|
|
47
|
-
}
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
export function resolveHopCountInput(recipientCount, hopCount, items) {
|
|
51
|
-
if (items && items.length > 0) {
|
|
52
|
-
const baseArray = Array.isArray(hopCount) ? hopCount : new Array(recipientCount).fill(hopCount);
|
|
53
|
-
return items.map((it, i) => (typeof it.hopCount === 'number' ? it.hopCount : (baseArray[i] ?? 0)));
|
|
54
|
-
}
|
|
55
|
-
return hopCount;
|
|
56
|
-
}
|
|
57
|
-
export async function signBribeTransaction(wallet, bribeAmount, nonce, gasPrice, chainIdNum, txType) {
|
|
58
|
-
return wallet.signTransaction({
|
|
59
|
-
to: BLOCKRAZOR_BUILDER_EOA,
|
|
60
|
-
value: bribeAmount,
|
|
61
|
-
nonce,
|
|
62
|
-
gasPrice,
|
|
63
|
-
gasLimit: 21000n,
|
|
64
|
-
chainId: BigInt(chainIdNum),
|
|
65
|
-
type: txType,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 独立的Bundle提交方法
|
|
3
|
-
*
|
|
4
|
-
* 用于服务器端接收前端构建的签名交易后,提交到Merkle或BlockRazor
|
|
5
|
-
* 以及 Monad 等不支持 Bundle 的链的逐笔广播
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* 精简的Merkle提交配置(只包含提交需要的字段)
|
|
9
|
-
*/
|
|
10
|
-
export interface MerkleSubmitConfig {
|
|
11
|
-
/** Merkle API Key(必需) */
|
|
12
|
-
apiKey: string;
|
|
13
|
-
/** 自定义RPC URL(可选) */
|
|
14
|
-
customRpcUrl?: string;
|
|
15
|
-
/** 链ID(可选,默认56=BSC) */
|
|
16
|
-
chainId?: 56 | 1;
|
|
17
|
-
/** Bundle区块偏移量(可选,默认3) */
|
|
18
|
-
bundleBlockOffset?: number;
|
|
19
|
-
/** 最小区块偏移量(可选,默认3) */
|
|
20
|
-
minBlockOffset?: number;
|
|
21
|
-
/** 是否自动重试(可选,默认false) */
|
|
22
|
-
autoRetryBundle?: boolean;
|
|
23
|
-
/** 最大重试次数(可选,默认2) */
|
|
24
|
-
maxBundleRetries?: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Bundle提交结果
|
|
28
|
-
*/
|
|
29
|
-
export interface SubmitBundleResult {
|
|
30
|
-
/** 提交状态:true=成功,false=失败 */
|
|
31
|
-
code: boolean;
|
|
32
|
-
/** 交易总数(无论成功与否都会返回) */
|
|
33
|
-
totalTransactions: number;
|
|
34
|
-
/** Bundle哈希(成功时返回) */
|
|
35
|
-
bundleHash?: string;
|
|
36
|
-
/** 交易哈希列表(成功时返回) */
|
|
37
|
-
txHashes?: string[];
|
|
38
|
-
/** 目标区块号(成功时返回) */
|
|
39
|
-
targetBlock?: number;
|
|
40
|
-
/** 交易数量(成功时返回) */
|
|
41
|
-
txCount?: number;
|
|
42
|
-
/** 错误信息(失败时返回) */
|
|
43
|
-
error?: string;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* 提交已签名的交易到Merkle(服务器端使用)
|
|
47
|
-
*
|
|
48
|
-
* 这个方法接收前端构建和签名好的交易,直接提交到Merkle服务
|
|
49
|
-
*
|
|
50
|
-
* @param signedTransactions 签名后的交易数组
|
|
51
|
-
* @param config Merkle提交配置(精简版,只需要提交相关参数)
|
|
52
|
-
* @returns Bundle提交结果
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```typescript
|
|
56
|
-
* // 服务器端代码
|
|
57
|
-
* import { submitBundleToMerkle } from 'four-flap-meme-sdk';
|
|
58
|
-
*
|
|
59
|
-
* const result = await submitBundleToMerkle(signedTransactions, {
|
|
60
|
-
* apiKey: process.env.MERKLE_API_KEY,
|
|
61
|
-
* customRpcUrl: process.env.MERKLE_RPC_URL,
|
|
62
|
-
* bundleBlockOffset: 5
|
|
63
|
-
* });
|
|
64
|
-
*
|
|
65
|
-
* if (result.code) {
|
|
66
|
-
* } else {
|
|
67
|
-
* console.error('❌ Bundle提交失败:', result.error);
|
|
68
|
-
* }
|
|
69
|
-
* ```
|
|
70
|
-
*/
|
|
71
|
-
export declare function submitBundleToMerkle(signedTransactions: string[], config: MerkleSubmitConfig): Promise<SubmitBundleResult>;
|
|
72
|
-
/**
|
|
73
|
-
* 批量提交多个Bundle到Merkle(顺序执行)
|
|
74
|
-
*
|
|
75
|
-
* @param bundles 多个Bundle的签名交易数组
|
|
76
|
-
* @param config Merkle提交配置
|
|
77
|
-
* @returns Bundle提交结果数组
|
|
78
|
-
*/
|
|
79
|
-
export declare function submitMultipleBundles(bundles: string[][], config: MerkleSubmitConfig): Promise<SubmitBundleResult[]>;
|
|
80
|
-
/**
|
|
81
|
-
* 并行提交多个Bundle到Merkle(适用于独立的Bundle)
|
|
82
|
-
*
|
|
83
|
-
* @param bundles 多个Bundle的签名交易数组
|
|
84
|
-
* @param config Merkle提交配置
|
|
85
|
-
* @returns Bundle提交结果数组
|
|
86
|
-
*/
|
|
87
|
-
export declare function submitMultipleBundlesParallel(bundles: string[][], config: MerkleSubmitConfig): Promise<SubmitBundleResult[]>;
|
|
88
|
-
/**
|
|
89
|
-
* BlockRazor 提交配置
|
|
90
|
-
* 参考: https://blockrazor.gitbook.io/blockrazor/bsc/block-builder/send-bundle
|
|
91
|
-
*/
|
|
92
|
-
export interface BlockRazorSubmitConfig {
|
|
93
|
-
/** API Key(可选,根据 Tier 需要) */
|
|
94
|
-
apiKey?: string;
|
|
95
|
-
/** 自定义 RPC URL(用于查询区块号等,可选) */
|
|
96
|
-
customRpcUrl?: string;
|
|
97
|
-
/** Builder RPC URL(用于发送 Bundle,可选) */
|
|
98
|
-
builderRpcUrl?: string;
|
|
99
|
-
/** 区块偏移量(默认 10,最大有效区块 = 当前区块 + offset) */
|
|
100
|
-
blockOffset?: number;
|
|
101
|
-
/** 最大区块偏移量(默认 100) */
|
|
102
|
-
maxBlockOffset?: number;
|
|
103
|
-
/** 是否禁止 Bundle 合并(默认 false,允许合并可提高打包率) */
|
|
104
|
-
noMerge?: boolean;
|
|
105
|
-
/** 允许 revert 的交易哈希列表 */
|
|
106
|
-
revertingTxHashes?: string[];
|
|
107
|
-
/** 是否自动重试(默认 false) */
|
|
108
|
-
autoRetry?: boolean;
|
|
109
|
-
/** 最大重试次数(默认 3) */
|
|
110
|
-
maxRetries?: number;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* BlockRazor Bundle 提交结果
|
|
114
|
-
*/
|
|
115
|
-
export interface BlockRazorSubmitResult {
|
|
116
|
-
/** 提交状态:true=成功,false=失败 */
|
|
117
|
-
code: boolean;
|
|
118
|
-
/** 交易总数 */
|
|
119
|
-
totalTransactions: number;
|
|
120
|
-
/** Bundle 哈希(成功时返回) */
|
|
121
|
-
bundleHash?: string;
|
|
122
|
-
/** 交易哈希列表(成功时返回) */
|
|
123
|
-
txHashes?: string[];
|
|
124
|
-
/** 最大有效区块号(成功时返回) */
|
|
125
|
-
maxBlockNumber?: number;
|
|
126
|
-
/** 交易数量(成功时返回) */
|
|
127
|
-
txCount?: number;
|
|
128
|
-
/** 错误信息(失败时返回) */
|
|
129
|
-
error?: string;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* 提交已签名的交易到 BlockRazor(服务器端使用)
|
|
133
|
-
*
|
|
134
|
-
* BlockRazor 是 BSC 链的 Block Builder 服务,支持 Bundle 提交
|
|
135
|
-
*
|
|
136
|
-
* 特点:
|
|
137
|
-
* - 向 Builder EOA 转账 BNB 可提高优先级
|
|
138
|
-
* - 支持 Bundle 合并提高打包率
|
|
139
|
-
* - 最低 Gas Price 要求: 0.05 Gwei
|
|
140
|
-
*
|
|
141
|
-
* @param signedTransactions 签名后的交易数组
|
|
142
|
-
* @param config BlockRazor 提交配置
|
|
143
|
-
* @returns Bundle 提交结果
|
|
144
|
-
*
|
|
145
|
-
* @example
|
|
146
|
-
* ```typescript
|
|
147
|
-
* // 服务器端代码
|
|
148
|
-
* import { submitBundleToBlockRazor } from 'four-flap-meme-sdk';
|
|
149
|
-
*
|
|
150
|
-
* const result = await submitBundleToBlockRazor(signedTransactions, {
|
|
151
|
-
* blockOffset: 10,
|
|
152
|
-
* noMerge: false, // 允许合并
|
|
153
|
-
* autoRetry: true
|
|
154
|
-
* });
|
|
155
|
-
*
|
|
156
|
-
* if (result.code) {
|
|
157
|
-
* } else {
|
|
158
|
-
* console.error('❌ Bundle 提交失败:', result.error);
|
|
159
|
-
* }
|
|
160
|
-
* ```
|
|
161
|
-
*/
|
|
162
|
-
export declare function submitBundleToBlockRazor(signedTransactions: string[], config: BlockRazorSubmitConfig): Promise<BlockRazorSubmitResult>;
|
|
163
|
-
/**
|
|
164
|
-
* 批量提交多个 Bundle 到 BlockRazor(顺序执行)
|
|
165
|
-
*
|
|
166
|
-
* @param bundles 多个 Bundle 的签名交易数组
|
|
167
|
-
* @param config BlockRazor 提交配置
|
|
168
|
-
* @returns Bundle 提交结果数组
|
|
169
|
-
*/
|
|
170
|
-
export declare function submitMultipleBundlesToBlockRazor(bundles: string[][], config: BlockRazorSubmitConfig): Promise<BlockRazorSubmitResult[]>;
|
|
171
|
-
/**
|
|
172
|
-
* 并行提交多个 Bundle 到 BlockRazor(适用于独立的 Bundle)
|
|
173
|
-
*
|
|
174
|
-
* @param bundles 多个 Bundle 的签名交易数组
|
|
175
|
-
* @param config BlockRazor 提交配置
|
|
176
|
-
* @returns Bundle 提交结果数组
|
|
177
|
-
*/
|
|
178
|
-
export declare function submitMultipleBundlesToBlockRazorParallel(bundles: string[][], config: BlockRazorSubmitConfig): Promise<BlockRazorSubmitResult[]>;
|
|
179
|
-
/**
|
|
180
|
-
* 逐笔广播配置(用于不支持 Bundle 的链,如 Monad)
|
|
181
|
-
*/
|
|
182
|
-
export interface DirectSubmitConfig {
|
|
183
|
-
/** RPC URL(必需) */
|
|
184
|
-
rpcUrl: string;
|
|
185
|
-
/** 链ID(可选,默认143=Monad) */
|
|
186
|
-
chainId?: number;
|
|
187
|
-
/** 链名称(可选,用于日志) */
|
|
188
|
-
chainName?: string;
|
|
189
|
-
/** 是否等待交易确认(可选,默认false) */
|
|
190
|
-
waitForConfirmation?: boolean;
|
|
191
|
-
/** 确认超时时间ms(可选,默认30000) */
|
|
192
|
-
confirmationTimeout?: number;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* 单笔交易结果
|
|
196
|
-
*/
|
|
197
|
-
export interface DirectTxResult {
|
|
198
|
-
/** 交易索引 */
|
|
199
|
-
index: number;
|
|
200
|
-
/** 是否成功 */
|
|
201
|
-
success: boolean;
|
|
202
|
-
/** 交易哈希(成功时返回) */
|
|
203
|
-
txHash?: string;
|
|
204
|
-
/** 错误信息(失败时返回) */
|
|
205
|
-
error?: string;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* 逐笔广播提交结果
|
|
209
|
-
*/
|
|
210
|
-
export interface DirectSubmitResult {
|
|
211
|
-
/** 提交状态:至少有一笔成功则为true */
|
|
212
|
-
code: boolean;
|
|
213
|
-
/** 交易总数 */
|
|
214
|
-
totalTransactions: number;
|
|
215
|
-
/** 成功数量 */
|
|
216
|
-
successCount: number;
|
|
217
|
-
/** 失败数量 */
|
|
218
|
-
failedCount: number;
|
|
219
|
-
/** 交易哈希列表(成功的交易) */
|
|
220
|
-
txHashes: string[];
|
|
221
|
-
/** 每笔交易的详细结果 */
|
|
222
|
-
results: DirectTxResult[];
|
|
223
|
-
/** 错误摘要(如果有失败) */
|
|
224
|
-
errorSummary?: string;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* 并行广播到 RPC(用于不支持 Bundle 的链,如 Monad)
|
|
228
|
-
*
|
|
229
|
-
* ✅ 优化:默认使用并行广播,速度更快
|
|
230
|
-
*
|
|
231
|
-
* @param signedTransactions 签名后的交易数组
|
|
232
|
-
* @param config 直接广播配置
|
|
233
|
-
* @returns 广播结果
|
|
234
|
-
*
|
|
235
|
-
* @example
|
|
236
|
-
* ```typescript
|
|
237
|
-
* // 服务器端代码(Monad 链)
|
|
238
|
-
* import { submitDirectToRpc } from 'four-flap-meme-sdk';
|
|
239
|
-
*
|
|
240
|
-
* const result = await submitDirectToRpc(signedTransactions, {
|
|
241
|
-
* rpcUrl: 'https://rpc-mainnet.monadinfra.com',
|
|
242
|
-
* chainId: 143,
|
|
243
|
-
* chainName: 'MONAD'
|
|
244
|
-
* });
|
|
245
|
-
*
|
|
246
|
-
* if (result.code) {
|
|
247
|
-
* } else {
|
|
248
|
-
* console.error('❌ 全部广播失败:', result.errorSummary);
|
|
249
|
-
* }
|
|
250
|
-
* ```
|
|
251
|
-
*/
|
|
252
|
-
export declare function submitDirectToRpc(signedTransactions: string[], config: DirectSubmitConfig): Promise<DirectSubmitResult>;
|
|
253
|
-
/**
|
|
254
|
-
* ✅ 顺序广播并等待确认(用于多跳交易等需要顺序执行的场景)
|
|
255
|
-
*
|
|
256
|
-
* 每笔交易广播后会等待上链确认,确保后续交易能正确执行
|
|
257
|
-
*
|
|
258
|
-
* ⚠️ 多跳场景:如果某笔交易失败,会立即停止(因为后续交易肯定也会失败)
|
|
259
|
-
*
|
|
260
|
-
* @param signedTransactions 签名后的交易数组
|
|
261
|
-
* @param config 直接广播配置
|
|
262
|
-
* @returns 广播结果
|
|
263
|
-
*/
|
|
264
|
-
export declare function submitDirectToRpcSequential(signedTransactions: string[], config: DirectSubmitConfig): Promise<DirectSubmitResult>;
|
|
265
|
-
/**
|
|
266
|
-
* ✅ 顺序广播但不等待确认(用于 AA handleOps + tail 等 nonce 连续的场景)
|
|
267
|
-
*
|
|
268
|
-
* 按顺序逐笔发送交易,每笔只等待广播成功(RPC 返回 txHash),不等待链上确认。
|
|
269
|
-
* 这样可以保证交易按顺序进入 mempool,同时避免等待确认超时。
|
|
270
|
-
*
|
|
271
|
-
* @param signedTransactions 签名后的交易数组
|
|
272
|
-
* @param config 直接广播配置
|
|
273
|
-
* @returns 广播结果
|
|
274
|
-
*/
|
|
275
|
-
export declare function submitDirectToRpcSequentialNoWait(signedTransactions: string[], config: DirectSubmitConfig): Promise<DirectSubmitResult>;
|
|
276
|
-
/**
|
|
277
|
-
* 并行逐笔广播到 RPC(速度更快,但可能有 nonce 冲突)
|
|
278
|
-
*
|
|
279
|
-
* ⚠️ 注意:仅适用于不同钱包的交易,同一钱包的多笔交易应使用顺序广播
|
|
280
|
-
*
|
|
281
|
-
* @param signedTransactions 签名后的交易数组
|
|
282
|
-
* @param config 直接广播配置
|
|
283
|
-
* @returns 广播结果
|
|
284
|
-
*/
|
|
285
|
-
export declare function submitDirectToRpcParallel(signedTransactions: string[], config: DirectSubmitConfig): Promise<DirectSubmitResult>;
|
|
286
|
-
/**
|
|
287
|
-
* 智能广播到 RPC(自动选择并行或顺序)
|
|
288
|
-
*/
|
|
289
|
-
export declare function submitDirectToRpcSmart(signedTransactions: string[], config: DirectSubmitConfig, options?: {
|
|
290
|
-
waitConfirmation?: boolean;
|
|
291
|
-
}): Promise<DirectSubmitResult & {
|
|
292
|
-
mode: 'parallel' | 'sequential';
|
|
293
|
-
}>;
|