four-flap-meme-sdk 2.2.2 → 2.2.4
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 +41 -6
- package/README.md +31 -0
- package/README.zh-CN.md +41 -6
- package/dist/__tests__/subpath-exports.test.d.ts +1 -0
- package/dist/__tests__/subpath-exports.test.js +64 -0
- package/dist/abis/common.d.ts +85 -0
- package/dist/abis/common.js +264 -0
- package/dist/abis/contracts/TaxToken.json +969 -0
- package/dist/abis/contracts/TokenManager2.json +136 -0
- package/dist/abis/contracts/index.d.ts +5 -0
- package/dist/abis/contracts/index.js +5 -0
- package/dist/abis/flap/index.d.ts +3 -0
- package/dist/abis/flap/index.js +3 -0
- package/dist/abis/flap/portal-events.d.ts +6 -0
- package/dist/abis/flap/portal-events.js +17 -0
- package/dist/abis/flap/portal.d.ts +6 -0
- package/dist/abis/flap/portal.js +37 -0
- package/dist/abis/flap/vault.d.ts +171 -0
- package/dist/abis/flap/vault.js +91 -0
- package/dist/abis/index.d.ts +8 -0
- package/dist/abis/index.js +11 -0
- package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
- package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
- package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
- package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
- package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
- package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
- package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
- package/dist/bundle-core/config-helpers.d.ts +36 -0
- package/dist/bundle-core/config-helpers.js +57 -0
- package/dist/bundle-core/errors.d.ts +50 -0
- package/dist/bundle-core/errors.js +35 -0
- package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
- package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
- package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
- package/dist/bundle-core/four-meme/core-helpers.js +40 -0
- package/dist/bundle-core/four-meme/core.d.ts +4 -0
- package/dist/bundle-core/four-meme/core.js +515 -0
- package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
- package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
- package/dist/bundle-core/four-meme/private.d.ts +27 -0
- package/dist/bundle-core/four-meme/private.js +465 -0
- package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
- package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
- package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
- package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
- package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
- package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
- package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
- package/dist/bundle-core/four-meme/swap-internal.js +18 -0
- package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
- package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
- package/dist/bundle-core/four-meme/swap.d.ts +17 -0
- package/dist/bundle-core/four-meme/swap.js +505 -0
- package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
- package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
- package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
- package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
- package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
- package/dist/bundle-core/four-meme/types/index.js +1 -0
- package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
- package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
- package/dist/bundle-core/four-meme/types.d.ts +1 -0
- package/dist/bundle-core/four-meme/types.js +1 -0
- package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
- package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
- package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
- package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
- package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
- package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
- package/dist/bundle-core/index.d.ts +8 -0
- package/dist/bundle-core/index.js +8 -0
- package/dist/bundle-core/internal.d.ts +21 -0
- package/dist/bundle-core/internal.js +182 -0
- package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
- package/dist/bundle-core/sign-context-helpers.js +67 -0
- package/dist/bundle-core/submit.d.ts +293 -0
- package/dist/bundle-core/submit.js +727 -0
- package/dist/bundle-core/types/index.d.ts +8 -0
- package/dist/bundle-core/types/index.js +1 -0
- package/dist/bundle-core/types.d.ts +1 -0
- package/dist/bundle-core/types.js +1 -0
- package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
- package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
- package/dist/chains/bsc/four/config.d.ts +5 -67
- package/dist/chains/bsc/four/config.js +2 -114
- package/dist/chains/bsc/four/core.d.ts +1 -4
- package/dist/chains/bsc/four/core.js +1 -592
- 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 +2 -46
- package/dist/chains/bsc/four/internal.js +2 -239
- package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
- package/dist/chains/bsc/four/pancake-proxy.js +1 -687
- package/dist/chains/bsc/four/private.d.ts +1 -27
- package/dist/chains/bsc/four/private.js +1 -477
- package/dist/chains/bsc/four/submit.d.ts +2 -315
- package/dist/chains/bsc/four/submit.js +2 -752
- package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
- package/dist/chains/bsc/four/swap-buy-first.js +2 -507
- package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
- package/dist/chains/bsc/four/swap-internal.js +1 -18
- package/dist/chains/bsc/four/swap.d.ts +2 -144
- package/dist/chains/bsc/four/swap.js +2 -766
- package/dist/chains/bsc/four/types.d.ts +1 -476
- package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
- package/dist/chains/bsc/four/utils-disperse.js +1 -0
- package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
- package/dist/chains/bsc/four/utils-pairwise.js +1 -0
- package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
- package/dist/chains/bsc/four/utils-sweep.js +1 -0
- package/dist/chains/bsc/four/utils.d.ts +5 -18
- package/dist/chains/bsc/four/utils.js +5 -1552
- package/dist/chains/bsc/iro.d.ts +5 -0
- package/dist/chains/bsc/iro.js +4 -0
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
- package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
- package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -212
- package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
- package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
- package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
- package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
- package/dist/chains/bsc/pancake/index.d.ts +4 -2
- package/dist/chains/bsc/pancake/index.js +1 -3
- package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
- package/dist/chains/bsc/platforms/iro/factory.js +3 -1
- 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 +31 -10
- package/dist/chains/bsc/platforms/iro/token.js +4 -1
- package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
- package/dist/chains/eni/batch-router/transfer.js +55 -25
- package/dist/chains/eni/batch-router/utils.js +32 -6
- package/dist/chains/eni/bundler/sign.js +5 -6
- package/dist/chains/eni/bundler/submit.js +1 -4
- package/dist/chains/eni/constants.js +1 -1
- package/dist/chains/eni/flat-aliases.d.ts +10 -0
- package/dist/chains/eni/flat-aliases.js +8 -0
- package/dist/chains/eni/index.d.ts +2 -1
- package/dist/chains/eni/index.js +1 -0
- 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 +9 -6
- package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
- package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
- package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
- 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 +87 -46
- package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
- 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 +3 -1
- 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 +90 -26
- package/dist/chains/eni/platforms/iro/token.js +107 -31
- package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
- package/dist/chains/eni/submit.d.ts +43 -0
- package/dist/chains/eni/submit.js +286 -0
- package/dist/chains/index.d.ts +13 -0
- package/dist/chains/index.js +13 -0
- package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
- package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
- package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
- package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
- package/dist/chains/xlayer/eip7702/bundle-create.js +93 -59
- package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
- package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
- package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
- package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
- package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
- package/dist/chains/xlayer/eip7702/constants.js +3 -21
- package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
- package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
- package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
- package/dist/chains/xlayer/eip7702/index.js +28 -81
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
- package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
- package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
- package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
- package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
- package/dist/chains/xlayer/eip7702/utils.js +23 -28
- package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
- package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
- package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
- package/dist/chains/xlayer/eip7702/volume.js +89 -164
- 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-helpers.d.ts +126 -0
- package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
- package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
- package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
- package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
- package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
- package/dist/chains/xlayer/eoa/index.d.ts +10 -6
- package/dist/chains/xlayer/eoa/index.js +8 -23
- package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
- 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 +1 -3
- package/dist/chains/xlayer/index.d.ts +3 -2
- package/dist/chains/xlayer/index.js +4 -7
- package/dist/contracts/helper3.d.ts +20 -5
- package/dist/contracts/helper3.js +56 -20
- package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
- package/dist/contracts/tm-bundle-helpers.js +72 -0
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
- package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
- package/dist/contracts/tm-bundle-merkle/config.js +2 -114
- package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
- package/dist/contracts/tm-bundle-merkle/core.js +1 -591
- 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 +2 -46
- package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
- package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
- package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
- package/dist/contracts/tm-bundle-merkle/private.js +1 -476
- package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
- package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
- package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
- package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
- package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
- package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
- package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
- package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
- package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
- package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
- package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
- package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
- package/dist/contracts/tm-bundle.d.ts +3 -51
- package/dist/contracts/tm-bundle.js +108 -177
- package/dist/contracts/tm.d.ts +3 -2
- package/dist/contracts/tm.js +37 -32
- package/dist/contracts/tm1.js +9 -4
- package/dist/contracts/tm2.js +9 -4
- package/dist/dex/direct-router-helpers.d.ts +264 -0
- package/dist/dex/direct-router-helpers.js +539 -0
- package/dist/dex/direct-router.d.ts +3 -125
- package/dist/dex/direct-router.js +237 -666
- package/dist/dex/types.d.ts +81 -0
- package/dist/dex/types.js +1 -0
- package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
- package/dist/exports/root-bundle-and-tooling.js +30 -0
- package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
- package/dist/exports/root-eni-and-bsc-iro.js +66 -0
- package/dist/exports/root-foundations.d.ts +35 -0
- package/dist/exports/root-foundations.js +70 -0
- package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
- package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
- package/dist/flap/index.d.ts +10 -0
- package/dist/flap/index.js +8 -0
- package/dist/flows/create.d.ts +2 -1
- package/dist/flows/create.js +6 -6
- package/dist/flows/index.d.ts +1 -0
- package/dist/flows/index.js +1 -0
- package/dist/index.d.ts +20 -85
- package/dist/index.js +20 -215
- package/dist/merkle/index.d.ts +12 -0
- package/dist/merkle/index.js +11 -0
- package/dist/shared/abis/common.d.ts +2 -83
- package/dist/shared/abis/common.js +2 -252
- package/dist/shared/abis/index.d.ts +5 -6
- package/dist/shared/abis/index.js +5 -7
- package/dist/shared/clients/blockrazor.js +39 -25
- package/dist/shared/clients/club48.d.ts +2 -2
- package/dist/shared/clients/club48.js +34 -29
- package/dist/shared/clients/emitservice.js +2 -0
- package/dist/shared/clients/four.d.ts +21 -6
- package/dist/shared/clients/four.js +29 -24
- package/dist/shared/clients/index.d.ts +8 -0
- package/dist/shared/clients/index.js +8 -0
- package/dist/shared/clients/merkle.js +27 -34
- package/dist/shared/constants/addresses.d.ts +1 -1
- package/dist/shared/constants/addresses.js +11 -2
- 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 +2 -6
- package/dist/shared/constants/index.d.ts +3 -0
- package/dist/shared/constants/index.js +1 -0
- package/dist/shared/constants/quote.d.ts +30 -0
- package/dist/shared/constants/quote.js +37 -0
- package/dist/shared/flap/abi.js +1 -1
- package/dist/shared/flap/constants.d.ts +1 -2
- package/dist/shared/flap/constants.js +2 -3
- package/dist/shared/flap/curve.js +3 -0
- package/dist/shared/flap/errors.d.ts +1 -4
- package/dist/shared/flap/errors.js +20 -1
- package/dist/shared/flap/index.d.ts +5 -4
- package/dist/shared/flap/index.js +5 -4
- package/dist/shared/flap/meta.d.ts +22 -18
- package/dist/shared/flap/meta.js +12 -17
- package/dist/shared/flap/permit.js +5 -2
- package/dist/shared/flap/pinata.d.ts +22 -6
- package/dist/shared/flap/pinata.js +21 -26
- package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
- package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
- package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
- package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
- package/dist/shared/flap/portal-bundle-merkle/core.js +96 -277
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +7 -2
- package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +107 -206
- package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
- package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
- package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
- package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
- package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
- package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
- package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
- package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
- package/dist/shared/flap/portal-bundle-merkle/types.d.ts +88 -9
- package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
- package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
- package/dist/shared/flap/portal-bundle.js +55 -56
- package/dist/shared/flap/portal-create-token.d.ts +80 -0
- package/dist/shared/flap/portal-create-token.js +257 -0
- package/dist/shared/flap/portal.d.ts +14 -3
- package/dist/shared/flap/portal.js +50 -25
- package/dist/shared/flap/vanity.d.ts +1 -5
- package/dist/shared/flap/vanity.js +6 -17
- package/dist/shared/flap/vault.d.ts +17 -124
- package/dist/shared/flap/vault.js +67 -148
- package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
- package/dist/shared/foundation/dex/v3-path.js +35 -0
- package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
- package/dist/shared/foundation/gas/bundle-gas.js +93 -0
- package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
- package/dist/shared/foundation/gas/profit-hop.js +72 -0
- package/dist/shared/foundation/index.d.ts +13 -0
- package/dist/shared/foundation/index.js +12 -0
- package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
- package/dist/shared/foundation/nonce/nonce-manager.js +183 -0
- package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
- package/dist/shared/foundation/normalize-unknown.js +29 -0
- package/dist/shared/foundation/sdk-logger.d.ts +13 -0
- package/dist/shared/foundation/sdk-logger.js +12 -0
- package/dist/shared/foundation/tx/build-request.d.ts +17 -0
- package/dist/shared/foundation/tx/build-request.js +25 -0
- package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
- package/dist/shared/foundation/tx/sign-batch.js +26 -0
- package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
- package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
- package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
- package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
- package/dist/shared/foundation/types/erc20.d.ts +65 -0
- package/dist/shared/foundation/types/erc20.js +1 -0
- package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
- package/dist/shared/foundation/types/holders-maker.js +1 -0
- package/dist/shared/foundation/types/index.d.ts +7 -0
- package/dist/shared/foundation/types/index.js +1 -0
- package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
- package/dist/shared/foundation/types/lp-inspect.js +1 -0
- package/dist/shared/foundation/types/multicall.d.ts +5 -0
- package/dist/shared/foundation/types/multicall.js +1 -0
- package/dist/shared/foundation/types/private-sale.d.ts +35 -0
- package/dist/shared/foundation/types/private-sale.js +1 -0
- package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
- package/dist/shared/foundation/types/quote-helpers.js +1 -0
- package/dist/shared/four/tax-token.d.ts +1 -1
- package/dist/shared/four/tax-token.js +27 -7
- package/dist/shared/index.d.ts +6 -0
- package/dist/shared/index.js +4 -0
- package/dist/types/errors.d.ts +27 -0
- package/dist/types/errors.js +34 -0
- package/dist/utils/airdrop-sweep.d.ts +4 -76
- package/dist/utils/airdrop-sweep.js +42 -55
- package/dist/utils/bundle-helpers.d.ts +9 -243
- package/dist/utils/bundle-helpers.js +10 -584
- package/dist/utils/constants.d.ts +5 -61
- package/dist/utils/constants.js +5 -80
- package/dist/utils/contract-factory.d.ts +2 -4
- package/dist/utils/contract-factory.js +25 -18
- package/dist/utils/erc20.d.ts +7 -89
- package/dist/utils/erc20.js +94 -125
- package/dist/utils/errors.d.ts +12 -1
- package/dist/utils/errors.js +60 -1
- package/dist/utils/holders-maker/addresses.d.ts +12 -0
- package/dist/utils/holders-maker/addresses.js +15 -0
- package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
- package/dist/utils/holders-maker/buy-tx.js +278 -0
- package/dist/utils/holders-maker/constants.d.ts +6 -0
- package/dist/utils/holders-maker/constants.js +7 -0
- package/dist/utils/holders-maker/disperse.d.ts +18 -0
- package/dist/utils/holders-maker/disperse.js +90 -0
- package/dist/utils/holders-maker/routing.d.ts +4 -0
- package/dist/utils/holders-maker/routing.js +45 -0
- package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
- package/dist/utils/holders-maker/transfer-tx.js +67 -0
- package/dist/utils/holders-maker-helpers.d.ts +9 -0
- package/dist/utils/holders-maker-helpers.js +9 -0
- package/dist/utils/holders-maker.d.ts +2 -138
- package/dist/utils/holders-maker.js +26 -661
- package/dist/utils/hop-chains.d.ts +35 -0
- package/dist/utils/hop-chains.js +215 -0
- package/dist/utils/lp-inspect-helpers.d.ts +9 -0
- package/dist/utils/lp-inspect-helpers.js +109 -0
- package/dist/utils/lp-inspect.d.ts +2 -112
- package/dist/utils/lp-inspect.js +73 -223
- package/dist/utils/mpcExclusive.d.ts +2 -5
- package/dist/utils/mpcExclusive.js +4 -3
- package/dist/utils/private-sale.d.ts +2 -58
- package/dist/utils/private-sale.js +4 -15
- package/dist/utils/provider-factory.d.ts +4 -0
- package/dist/utils/provider-factory.js +10 -0
- package/dist/utils/quote-helpers.d.ts +4 -45
- package/dist/utils/quote-helpers.js +17 -74
- package/dist/utils/stealth-transfer.d.ts +2 -28
- package/dist/utils/stealth-transfer.js +31 -15
- package/dist/utils/swap-helpers.d.ts +2 -15
- package/dist/utils/swap-helpers.js +6 -11
- package/dist/utils/types/airdrop-sweep.d.ts +1 -0
- package/dist/utils/types/airdrop-sweep.js +1 -0
- package/dist/utils/types/contract-factory.d.ts +1 -0
- package/dist/utils/types/contract-factory.js +1 -0
- package/dist/utils/types/erc20.d.ts +1 -0
- package/dist/utils/types/erc20.js +1 -0
- package/dist/utils/types/errors.d.ts +1 -0
- package/dist/utils/types/errors.js +1 -0
- package/dist/utils/types/holders-maker.d.ts +1 -0
- package/dist/utils/types/holders-maker.js +1 -0
- package/dist/utils/types/hop-chains.d.ts +8 -0
- package/dist/utils/types/hop-chains.js +1 -0
- package/dist/utils/types/index.d.ts +13 -0
- package/dist/utils/types/index.js +1 -0
- package/dist/utils/types/lp-inspect.d.ts +1 -0
- package/dist/utils/types/lp-inspect.js +1 -0
- package/dist/utils/types/mpc-exclusive.d.ts +5 -0
- package/dist/utils/types/mpc-exclusive.js +1 -0
- package/dist/utils/types/private-sale.d.ts +1 -0
- package/dist/utils/types/private-sale.js +1 -0
- package/dist/utils/types/quote-helpers.d.ts +1 -0
- package/dist/utils/types/quote-helpers.js +1 -0
- package/dist/utils/types/stealth-transfer.d.ts +44 -0
- package/dist/utils/types/stealth-transfer.js +1 -0
- package/dist/utils/types/wallet.d.ts +25 -0
- package/dist/utils/types/wallet.js +1 -0
- package/dist/utils/wallet.d.ts +2 -25
- package/dist/utils/wallet.js +13 -10
- package/dist/vanity/index.d.ts +5 -0
- package/dist/vanity/index.js +5 -0
- package/package.json +160 -4
- package/src/abis/contracts/TaxToken.json +969 -0
- package/src/abis/contracts/TokenManager.json +836 -0
- package/src/abis/contracts/TokenManager2.json +136 -0
- package/src/abis/contracts/TokenManagerHelper3.json +993 -0
- package/dist/shared/abis/TaxToken.json +0 -105
- package/dist/shared/abis/TokenManager2.json +0 -60
- /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
- /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
package/README.en.md
CHANGED
|
@@ -29,6 +29,41 @@ Optional (use Pinata for IPFS uploads)
|
|
|
29
29
|
npm i pinata
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
## Package entry points (subpath imports)
|
|
33
|
+
|
|
34
|
+
The library is published as **ESM** (`dist` is produced by `npm run build`). The root import remains the default for full API access. For smaller dependency graphs, Node and bundlers that honor `package.json` **`exports`** may import:
|
|
35
|
+
|
|
36
|
+
**When to use which**
|
|
37
|
+
|
|
38
|
+
- **Root**: default for apps and examples that touch more than one SDK area.
|
|
39
|
+
- **Subpaths**: for scripts or libraries that intentionally depend on only one slice (constants, ABIs, error utilities, Merkle clients, etc.).
|
|
40
|
+
|
|
41
|
+
| Subpath | Purpose |
|
|
42
|
+
|---------|---------|
|
|
43
|
+
| `four-flap-meme-sdk` | Main entry — full surface |
|
|
44
|
+
| `four-flap-meme-sdk/chains` | Chain namespaces and helpers |
|
|
45
|
+
| `four-flap-meme-sdk/shared` | Cross-cutting modules: constants, `foundation`, `clients`, `FourUtils` |
|
|
46
|
+
| `four-flap-meme-sdk/clients` | HTTP / Merkle-related clients |
|
|
47
|
+
| `four-flap-meme-sdk/dex` | DEX helpers |
|
|
48
|
+
| `four-flap-meme-sdk/constants` | Chain config, gas, addresses, profit settings |
|
|
49
|
+
| `four-flap-meme-sdk/abis` | TokenManager JSON ABIs, common fragments, Flap ABIs (same as `src/abis` barrel) |
|
|
50
|
+
| `four-flap-meme-sdk/foundation` | Unknown-error normalization and optional loggers |
|
|
51
|
+
| `four-flap-meme-sdk/bundle-core` | Shared bundle core: `internal`, `submit`, `config-helpers` |
|
|
52
|
+
| `four-flap-meme-sdk/flows` | High-level flows (e.g. `createTokenFlow`) |
|
|
53
|
+
|
|
54
|
+
> **v2.0.0**: ambiguous root exports removed — see [docs/MIGRATION_EXPORTS.zh-CN.md](./docs/MIGRATION_EXPORTS.zh-CN.md).
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { CHAINS, GAS_LIMITS } from 'four-flap-meme-sdk/constants';
|
|
58
|
+
import { TokenManager } from 'four-flap-meme-sdk/abis';
|
|
59
|
+
import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Documentation: alignment & backends
|
|
63
|
+
|
|
64
|
+
- **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — audit-style checklist (language: Chinese).
|
|
65
|
+
- **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — choosing Merkle, BlockRazor, direct RPC, ENI, 48.club, etc.
|
|
66
|
+
|
|
32
67
|
---
|
|
33
68
|
|
|
34
69
|
## Table of Contents
|
|
@@ -3503,7 +3538,7 @@ const permitData = await buildPermitPiggybackAuto(
|
|
|
3503
3538
|
The SDK provides pre-configured addresses for all supported networks:
|
|
3504
3539
|
|
|
3505
3540
|
```typescript
|
|
3506
|
-
import {
|
|
3541
|
+
import { CHAINS } from 'four-flap-meme-sdk';
|
|
3507
3542
|
|
|
3508
3543
|
// Use chain enum when calling SDK methods (addresses are handled internally)
|
|
3509
3544
|
// Example:
|
|
@@ -3512,11 +3547,11 @@ import { CHAIN } from 'four-flap-meme-sdk';
|
|
|
3512
3547
|
// await tryBuy('BSC', rpcUrl, token, amount, funds);
|
|
3513
3548
|
|
|
3514
3549
|
// Chain information
|
|
3515
|
-
console.log(
|
|
3516
|
-
console.log(
|
|
3517
|
-
console.log(
|
|
3518
|
-
console.log(
|
|
3519
|
-
console.log(
|
|
3550
|
+
console.log(CHAINS.BSC.chainId); // 56
|
|
3551
|
+
console.log(CHAINS.BASE.chainId); // 8453
|
|
3552
|
+
console.log(CHAINS.XLAYER.chainId); // 196
|
|
3553
|
+
console.log(CHAINS.MORPH.chainId); // 2818
|
|
3554
|
+
console.log(CHAINS.ARBITRUM_ONE.chainId); // 42161
|
|
3520
3555
|
```
|
|
3521
3556
|
|
|
3522
3557
|
---
|
package/README.md
CHANGED
|
@@ -20,6 +20,37 @@ npm i four-flap-meme-sdk ethers
|
|
|
20
20
|
|
|
21
21
|
**要求**:Node.js >= 18, ESM, ethers v6
|
|
22
22
|
|
|
23
|
+
### Package entry points (subpath imports)
|
|
24
|
+
|
|
25
|
+
The package ships **ESM** with `exports` in `package.json`. Use the default root import for full API coverage; use subpaths to narrow what your resolver loads (requires tooling that respects `exports`).
|
|
26
|
+
|
|
27
|
+
**When to use which**
|
|
28
|
+
|
|
29
|
+
- **Root import**: matches the docs; use when you need multiple surfaces (four.meme, Flap, bundles, several chains).
|
|
30
|
+
- **Subpaths**: use in scripts, internal packages, or constrained runtimes when you only need one vertical slice (constants, ABIs, error helpers, HTTP clients, etc.).
|
|
31
|
+
|
|
32
|
+
| Subpath | Purpose |
|
|
33
|
+
|---------|---------|
|
|
34
|
+
| `four-flap-meme-sdk` | Main entry — full surface (recommended default) |
|
|
35
|
+
| `four-flap-meme-sdk/chains` | Per-chain namespaces and chain helpers |
|
|
36
|
+
| `four-flap-meme-sdk/shared` | Shared layer: constants, `foundation`, `clients`, `FourUtils`, etc. |
|
|
37
|
+
| `four-flap-meme-sdk/clients` | HTTP / bundle / infra clients |
|
|
38
|
+
| `four-flap-meme-sdk/dex` | DEX helpers and types |
|
|
39
|
+
| `four-flap-meme-sdk/constants` | Chain IDs, gas limits, addresses, profit helpers — smallest config-only slice |
|
|
40
|
+
| `four-flap-meme-sdk/abis` | Compiled contract JSON ABIs, shared fragment ABIs, Flap-specific ABIs (`src/abis` entry) |
|
|
41
|
+
| `four-flap-meme-sdk/foundation` | `normalizeUnknownError`, `getErrorMessageFromUnknown`, injectable `SdkLogger` — no domain logic |
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
import { CHAINS, ADDRESSES } from 'four-flap-meme-sdk/constants';
|
|
45
|
+
import { TokenManager } from 'four-flap-meme-sdk/abis';
|
|
46
|
+
import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Docs: architecture & submission paths
|
|
50
|
+
|
|
51
|
+
- **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — audit-style checklist (what is done vs backlog).
|
|
52
|
+
- **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — when to use Merkle vs BlockRazor vs direct RPC vs ENI / 48.club, etc.
|
|
53
|
+
|
|
23
54
|
## 获取 Merkle API Key
|
|
24
55
|
|
|
25
56
|
从 [Merkle.io](https://merkle.io) 获取免费 API Key,用于 Bundle 服务。
|
package/README.zh-CN.md
CHANGED
|
@@ -29,6 +29,41 @@ npm i four-flap-meme-sdk ethers
|
|
|
29
29
|
npm i pinata
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
## 包入口与子路径(按需引用)
|
|
33
|
+
|
|
34
|
+
发布后包内为 **ESM**,`dist` 由 `npm run build` 生成。多数场景继续使用主入口即可;若希望缩小解析范围或只做配置层依赖,可选用 `package.json` 的 **`exports`** 子路径(需 Node/打包工具识别 `exports`)。
|
|
35
|
+
|
|
36
|
+
**如何选择**
|
|
37
|
+
|
|
38
|
+
- **主入口**:与文档示例一致;需要 four / Flap、Bundle、多链等组合能力时优先用它。
|
|
39
|
+
- **子路径**:在脚本、内部库或边缘运行时**只要某一竖切**(仅常量、仅 ABI、仅错误与日志、仅 HTTP 客户端等)时使用,以收敛依赖与解析面。
|
|
40
|
+
|
|
41
|
+
| 子路径 | 说明 |
|
|
42
|
+
|--------|------|
|
|
43
|
+
| `four-flap-meme-sdk` | 主入口,全量导出(默认推荐) |
|
|
44
|
+
| `four-flap-meme-sdk/chains` | 各链命名空间与链相关工具 |
|
|
45
|
+
| `four-flap-meme-sdk/shared` | 横向能力:常量、`foundation`、`clients`、`FourUtils` 等 |
|
|
46
|
+
| `four-flap-meme-sdk/clients` | Merkle / HTTP 等与 I/O 相关的客户端封装 |
|
|
47
|
+
| `four-flap-meme-sdk/dex` | DEX 路由与相关类型/辅助函数 |
|
|
48
|
+
| `four-flap-meme-sdk/constants` | 链 ID、Gas、常用地址、利润配置等常量(等价于深入 `shared` 中的常量模块,但更轻依赖面) |
|
|
49
|
+
| `four-flap-meme-sdk/abis` | 合约 JSON ABI(TokenManager 等)、公共片段 ABI、Flap 相关 ABI(与 `src/abis` 入口一致) |
|
|
50
|
+
| `four-flap-meme-sdk/foundation` | 错误规范化(`normalizeUnknownError` 等)与可选 `SdkLogger`,无业务逻辑 |
|
|
51
|
+
| `four-flap-meme-sdk/bundle-core` | Bundle 共享核心:`internal`、`submit`、`config-helpers` |
|
|
52
|
+
| `four-flap-meme-sdk/flows` | 高层流程(如 `createTokenFlow`) |
|
|
53
|
+
|
|
54
|
+
> **v2.0.0**:包根已移除 `TradeType` / `PROFIT_CONFIG` / `CHAIN` 等歧义导出,见 [docs/MIGRATION_EXPORTS.zh-CN.md](./docs/MIGRATION_EXPORTS.zh-CN.md)。
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { CHAINS, GAS_LIMITS } from 'four-flap-meme-sdk/constants';
|
|
58
|
+
import { TokenManager } from 'four-flap-meme-sdk/abis';
|
|
59
|
+
import { normalizeUnknownError } from 'four-flap-meme-sdk/foundation';
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 文档:架构对齐与提交路径
|
|
63
|
+
|
|
64
|
+
- **[docs/ALIGNMENT_STATUS.zh-CN.md](./docs/ALIGNMENT_STATUS.zh-CN.md)** — 与审计文档对照的总表(已完成 / 待办)。
|
|
65
|
+
- **[docs/SUBMIT_BACKENDS.zh-CN.md](./docs/SUBMIT_BACKENDS.zh-CN.md)** — 何时用 Merkle / BlockRazor / 直连 RPC / ENI / 48.club 等。
|
|
66
|
+
|
|
32
67
|
## 浏览器环境支持
|
|
33
68
|
|
|
34
69
|
SDK 已内置 Cloudflare Workers 代理,**浏览器环境可直接使用,无需额外配置 CORS**:
|
|
@@ -4587,7 +4622,7 @@ const permitData = await buildPermitPiggybackAuto(
|
|
|
4587
4622
|
SDK 提供所有支持网络的预配置地址:
|
|
4588
4623
|
|
|
4589
4624
|
```typescript
|
|
4590
|
-
import {
|
|
4625
|
+
import { CHAINS } from 'four-flap-meme-sdk';
|
|
4591
4626
|
|
|
4592
4627
|
// 使用链枚举调用 SDK 方法(地址由 SDK 内部处理)
|
|
4593
4628
|
// 示例:
|
|
@@ -4596,11 +4631,11 @@ import { CHAIN } from 'four-flap-meme-sdk';
|
|
|
4596
4631
|
// await tryBuy('BSC', rpcUrl, token, amount, funds);
|
|
4597
4632
|
|
|
4598
4633
|
// 链信息
|
|
4599
|
-
console.log(
|
|
4600
|
-
console.log(
|
|
4601
|
-
console.log(
|
|
4602
|
-
console.log(
|
|
4603
|
-
console.log(
|
|
4634
|
+
console.log(CHAINS.BSC.chainId); // 56
|
|
4635
|
+
console.log(CHAINS.BASE.chainId); // 8453
|
|
4636
|
+
console.log(CHAINS.XLAYER.chainId); // 196
|
|
4637
|
+
console.log(CHAINS.MORPH.chainId); // 2818
|
|
4638
|
+
console.log(CHAINS.ARBITRUM_ONE.chainId); // 42161
|
|
4604
4639
|
```
|
|
4605
4640
|
|
|
4606
4641
|
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
describe('subpath exports (package.json exports map)', () => {
|
|
3
|
+
it('chains subpath exposes chains namespace', async () => {
|
|
4
|
+
const mod = await import('../chains/index.js');
|
|
5
|
+
expect(mod.chains).toBeDefined();
|
|
6
|
+
expect(mod.chains.bsc).toBeDefined();
|
|
7
|
+
expect(mod.chains.xlayer).toBeDefined();
|
|
8
|
+
expect(mod.chains.eni).toBeDefined();
|
|
9
|
+
expect(mod.bsc).toBe(mod.chains.bsc);
|
|
10
|
+
});
|
|
11
|
+
it('flap subpath exposes Merkle swap entrypoints', async () => {
|
|
12
|
+
const mod = await import('../flap/index.js');
|
|
13
|
+
expect(typeof mod.flapBundleSwapMerkle).toBe('function');
|
|
14
|
+
expect(typeof mod.flapBatchSwapMerkle).toBe('function');
|
|
15
|
+
expect(typeof mod.flapQuickBatchSwapMerkle).toBe('function');
|
|
16
|
+
expect(typeof mod.flapCrossSwapMerkle).toBe('function');
|
|
17
|
+
});
|
|
18
|
+
it('utils/wallet subpath exports GeneratedWallet type surface', async () => {
|
|
19
|
+
const mod = await import('../utils/wallet.js');
|
|
20
|
+
expect(typeof mod.generateWallets).toBe('function');
|
|
21
|
+
expect(typeof mod.validatePrivateKeys).toBe('function');
|
|
22
|
+
expect(typeof mod.getTokenBalancesWithMulticall).toBe('function');
|
|
23
|
+
});
|
|
24
|
+
it('constants subpath exports FlapChain type re-export', async () => {
|
|
25
|
+
const mod = await import('../shared/constants/index.js');
|
|
26
|
+
expect(mod.CHAINS).toBeDefined();
|
|
27
|
+
expect(mod.PROFIT_CONFIG).toBeDefined();
|
|
28
|
+
});
|
|
29
|
+
it('quote subpath exports quoteV2/quoteV3', async () => {
|
|
30
|
+
const mod = await import('../utils/quote-helpers.js');
|
|
31
|
+
expect(typeof mod.quoteV2).toBe('function');
|
|
32
|
+
expect(typeof mod.quoteV3).toBe('function');
|
|
33
|
+
});
|
|
34
|
+
it('merkle subpath exports Four Merkle swap and disperse', async () => {
|
|
35
|
+
const mod = await import('../merkle/index.js');
|
|
36
|
+
expect(typeof mod.disperseWithBundleMerkle).toBe('function');
|
|
37
|
+
expect(typeof mod.fourBundleSwapMerkle).toBe('function');
|
|
38
|
+
expect(typeof mod.submitBundleToMerkle).toBe('function');
|
|
39
|
+
});
|
|
40
|
+
it('vanity subpath exports findSaltEndingByChain', async () => {
|
|
41
|
+
const mod = await import('../vanity/index.js');
|
|
42
|
+
expect(typeof mod.findSaltEndingByChain).toBe('function');
|
|
43
|
+
expect(typeof mod.getVanitySuffix).toBe('function');
|
|
44
|
+
});
|
|
45
|
+
it('chains/bsc/iro subpath exports bscIroCreateProject', async () => {
|
|
46
|
+
const mod = await import('../chains/bsc/iro.js');
|
|
47
|
+
expect(typeof mod.bscIroCreateProject).toBe('function');
|
|
48
|
+
});
|
|
49
|
+
it('chains/eni flat aliases on eni subpath', async () => {
|
|
50
|
+
const mod = await import('../chains/eni/index.js');
|
|
51
|
+
expect(typeof mod.eniCreatePortalQuery).toBe('function');
|
|
52
|
+
expect(typeof mod.eniDisperseForSubmit).toBe('function');
|
|
53
|
+
});
|
|
54
|
+
it('chains/xlayer/eip7702 flat aliases', async () => {
|
|
55
|
+
const mod = await import('../chains/xlayer/eip7702/index.js');
|
|
56
|
+
expect(typeof mod.xlayerEip7702BundleSwap).toBe('function');
|
|
57
|
+
expect(typeof mod.xlayerEip7702CheckApprovalStatus).toBe('function');
|
|
58
|
+
});
|
|
59
|
+
it('chains/xlayer re-exports eip7702 flat aliases', async () => {
|
|
60
|
+
const mod = await import('../chains/xlayer/index.js');
|
|
61
|
+
expect(typeof mod.xlayerEip7702Disperse).toBe('function');
|
|
62
|
+
expect(mod.XLayer).toBeDefined();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 公共 ABI 定义
|
|
3
|
+
*
|
|
4
|
+
* 将重复的 ABI 提取到这里,统一管理
|
|
5
|
+
*/
|
|
6
|
+
/** 完整 ERC20 ABI */
|
|
7
|
+
export declare const ERC20_ABI: string[];
|
|
8
|
+
/** 精简 ERC20 ABI(余额查询 + decimals) */
|
|
9
|
+
export declare const ERC20_BALANCE_ABI: string[];
|
|
10
|
+
/** ERC20 授权相关 ABI */
|
|
11
|
+
export declare const ERC20_ALLOWANCE_ABI: string[];
|
|
12
|
+
export declare const MULTICALL3_ABI: string[];
|
|
13
|
+
/** V2 Router 完整 ABI */
|
|
14
|
+
export declare const V2_ROUTER_ABI: string[];
|
|
15
|
+
/** V2 Router 精简 ABI(只用于报价) */
|
|
16
|
+
export declare const V2_ROUTER_QUOTE_ABI: string[];
|
|
17
|
+
/** V3 SwapRouter02 ABI(新版,deadline 在 multicall 中传递) */
|
|
18
|
+
export declare const V3_ROUTER02_ABI: (string | {
|
|
19
|
+
inputs: {
|
|
20
|
+
components: {
|
|
21
|
+
name: string;
|
|
22
|
+
type: string;
|
|
23
|
+
}[];
|
|
24
|
+
name: string;
|
|
25
|
+
type: string;
|
|
26
|
+
}[];
|
|
27
|
+
name: string;
|
|
28
|
+
outputs: {
|
|
29
|
+
name: string;
|
|
30
|
+
type: string;
|
|
31
|
+
}[];
|
|
32
|
+
stateMutability: string;
|
|
33
|
+
type: string;
|
|
34
|
+
})[];
|
|
35
|
+
/** V3 SwapRouter 旧版 ABI(deadline 在 struct 内部) */
|
|
36
|
+
export declare const V3_ROUTER_LEGACY_ABI: (string | {
|
|
37
|
+
inputs: {
|
|
38
|
+
components: {
|
|
39
|
+
name: string;
|
|
40
|
+
type: string;
|
|
41
|
+
}[];
|
|
42
|
+
name: string;
|
|
43
|
+
type: string;
|
|
44
|
+
}[];
|
|
45
|
+
name: string;
|
|
46
|
+
outputs: {
|
|
47
|
+
name: string;
|
|
48
|
+
type: string;
|
|
49
|
+
}[];
|
|
50
|
+
stateMutability: string;
|
|
51
|
+
type: string;
|
|
52
|
+
})[];
|
|
53
|
+
/**
|
|
54
|
+
* SwapRouter02 的 V2 方法 ABI
|
|
55
|
+
*
|
|
56
|
+
* 注意:SwapRouter02 的 V2 方法只有 token-to-token 交换
|
|
57
|
+
* 没有 swapExactETHForTokens / swapExactTokensForETH
|
|
58
|
+
* 必须通过 multicall 组合 wrapETH/unwrapWETH9 来处理原生代币
|
|
59
|
+
*/
|
|
60
|
+
export declare const SWAP_ROUTER02_V2_ABI: string[];
|
|
61
|
+
/** V3 QuoterV2 ABI */
|
|
62
|
+
export declare const V3_QUOTER_ABI: {
|
|
63
|
+
inputs: {
|
|
64
|
+
components: {
|
|
65
|
+
name: string;
|
|
66
|
+
type: string;
|
|
67
|
+
}[];
|
|
68
|
+
name: string;
|
|
69
|
+
type: string;
|
|
70
|
+
}[];
|
|
71
|
+
name: string;
|
|
72
|
+
outputs: {
|
|
73
|
+
name: string;
|
|
74
|
+
type: string;
|
|
75
|
+
}[];
|
|
76
|
+
stateMutability: string;
|
|
77
|
+
type: string;
|
|
78
|
+
}[];
|
|
79
|
+
export declare const V2_FACTORY_ABI: string[];
|
|
80
|
+
export declare const V2_PAIR_ABI: string[];
|
|
81
|
+
export declare const V3_FACTORY_ABI: string[];
|
|
82
|
+
export declare const V3_POOL_ABI: string[];
|
|
83
|
+
export declare const FLAP_PORTAL_ABI: string[];
|
|
84
|
+
export declare const TM2_ABI: string[];
|
|
85
|
+
export declare const HELPER3_ABI: string[];
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 公共 ABI 定义
|
|
3
|
+
*
|
|
4
|
+
* 将重复的 ABI 提取到这里,统一管理
|
|
5
|
+
*/
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// ERC20 ABI
|
|
8
|
+
// ============================================================================
|
|
9
|
+
/** 完整 ERC20 ABI */
|
|
10
|
+
export const ERC20_ABI = [
|
|
11
|
+
'function approve(address spender, uint256 amount) external returns (bool)',
|
|
12
|
+
'function allowance(address owner, address spender) external view returns (uint256)',
|
|
13
|
+
'function balanceOf(address account) external view returns (uint256)',
|
|
14
|
+
'function decimals() external view returns (uint8)',
|
|
15
|
+
'function name() external view returns (string)',
|
|
16
|
+
'function symbol() external view returns (string)',
|
|
17
|
+
'function totalSupply() external view returns (uint256)',
|
|
18
|
+
'function transfer(address to, uint256 amount) external returns (bool)',
|
|
19
|
+
'function transferFrom(address from, address to, uint256 amount) external returns (bool)',
|
|
20
|
+
];
|
|
21
|
+
/** 精简 ERC20 ABI(余额查询 + decimals) */
|
|
22
|
+
export const ERC20_BALANCE_ABI = [
|
|
23
|
+
'function balanceOf(address account) external view returns (uint256)',
|
|
24
|
+
'function decimals() external view returns (uint8)',
|
|
25
|
+
];
|
|
26
|
+
/** ERC20 授权相关 ABI */
|
|
27
|
+
export const ERC20_ALLOWANCE_ABI = [
|
|
28
|
+
'function allowance(address owner, address spender) external view returns (uint256)',
|
|
29
|
+
'function approve(address spender, uint256 amount) external returns (bool)',
|
|
30
|
+
'function decimals() external view returns (uint8)',
|
|
31
|
+
];
|
|
32
|
+
// ============================================================================
|
|
33
|
+
// Multicall3 ABI
|
|
34
|
+
// ============================================================================
|
|
35
|
+
export const MULTICALL3_ABI = [
|
|
36
|
+
// ✅ 标记为 view,确保 ethers.js v6 使用 call 而不是 sendTransaction
|
|
37
|
+
'function aggregate3(tuple(address target, bool allowFailure, bytes callData)[] calls) view returns (tuple(bool success, bytes returnData)[])',
|
|
38
|
+
'function aggregate(tuple(address target, bytes callData)[] calls) view returns (uint256 blockNumber, bytes[] returnData)',
|
|
39
|
+
'function getEthBalance(address addr) view returns (uint256 balance)',
|
|
40
|
+
];
|
|
41
|
+
// ============================================================================
|
|
42
|
+
// PancakeSwap / Uniswap V2 Router ABI
|
|
43
|
+
// ============================================================================
|
|
44
|
+
/** V2 Router 完整 ABI */
|
|
45
|
+
export const V2_ROUTER_ABI = [
|
|
46
|
+
// BNB/ETH → Token (买入)
|
|
47
|
+
'function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)',
|
|
48
|
+
'function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable',
|
|
49
|
+
// Token → BNB/ETH (卖出)
|
|
50
|
+
'function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)',
|
|
51
|
+
'function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external',
|
|
52
|
+
// Token → Token
|
|
53
|
+
'function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)',
|
|
54
|
+
'function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external',
|
|
55
|
+
// 报价
|
|
56
|
+
'function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts)',
|
|
57
|
+
'function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts)',
|
|
58
|
+
// Factory
|
|
59
|
+
'function factory() external view returns (address)',
|
|
60
|
+
];
|
|
61
|
+
/** V2 Router 精简 ABI(只用于报价) */
|
|
62
|
+
export const V2_ROUTER_QUOTE_ABI = [
|
|
63
|
+
'function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts)',
|
|
64
|
+
];
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// PancakeSwap / Uniswap V3 Router ABI (SwapRouter02)
|
|
67
|
+
// ============================================================================
|
|
68
|
+
/** V3 SwapRouter02 ABI(新版,deadline 在 multicall 中传递) */
|
|
69
|
+
export const V3_ROUTER02_ABI = [
|
|
70
|
+
// exactInputSingle - 单跳,不含 deadline
|
|
71
|
+
{
|
|
72
|
+
inputs: [
|
|
73
|
+
{
|
|
74
|
+
components: [
|
|
75
|
+
{ name: 'tokenIn', type: 'address' },
|
|
76
|
+
{ name: 'tokenOut', type: 'address' },
|
|
77
|
+
{ name: 'fee', type: 'uint24' },
|
|
78
|
+
{ name: 'recipient', type: 'address' },
|
|
79
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
80
|
+
{ name: 'amountOutMinimum', type: 'uint256' },
|
|
81
|
+
{ name: 'sqrtPriceLimitX96', type: 'uint160' },
|
|
82
|
+
],
|
|
83
|
+
name: 'params',
|
|
84
|
+
type: 'tuple',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
name: 'exactInputSingle',
|
|
88
|
+
outputs: [{ name: 'amountOut', type: 'uint256' }],
|
|
89
|
+
stateMutability: 'payable',
|
|
90
|
+
type: 'function',
|
|
91
|
+
},
|
|
92
|
+
// exactInput - 多跳,不含 deadline
|
|
93
|
+
{
|
|
94
|
+
inputs: [
|
|
95
|
+
{
|
|
96
|
+
components: [
|
|
97
|
+
{ name: 'path', type: 'bytes' },
|
|
98
|
+
{ name: 'recipient', type: 'address' },
|
|
99
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
100
|
+
{ name: 'amountOutMinimum', type: 'uint256' },
|
|
101
|
+
],
|
|
102
|
+
name: 'params',
|
|
103
|
+
type: 'tuple',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
name: 'exactInput',
|
|
107
|
+
outputs: [{ name: 'amountOut', type: 'uint256' }],
|
|
108
|
+
stateMutability: 'payable',
|
|
109
|
+
type: 'function',
|
|
110
|
+
},
|
|
111
|
+
// multicall - 带 deadline 版本
|
|
112
|
+
'function multicall(uint256 deadline, bytes[] calldata data) external payable returns (bytes[] memory results)',
|
|
113
|
+
'function refundETH() external payable',
|
|
114
|
+
'function unwrapWETH9(uint256 amountMinimum, address recipient) external payable',
|
|
115
|
+
];
|
|
116
|
+
/** V3 SwapRouter 旧版 ABI(deadline 在 struct 内部) */
|
|
117
|
+
export const V3_ROUTER_LEGACY_ABI = [
|
|
118
|
+
// exactInputSingle - 包含 deadline
|
|
119
|
+
{
|
|
120
|
+
inputs: [
|
|
121
|
+
{
|
|
122
|
+
components: [
|
|
123
|
+
{ name: 'tokenIn', type: 'address' },
|
|
124
|
+
{ name: 'tokenOut', type: 'address' },
|
|
125
|
+
{ name: 'fee', type: 'uint24' },
|
|
126
|
+
{ name: 'recipient', type: 'address' },
|
|
127
|
+
{ name: 'deadline', type: 'uint256' },
|
|
128
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
129
|
+
{ name: 'amountOutMinimum', type: 'uint256' },
|
|
130
|
+
{ name: 'sqrtPriceLimitX96', type: 'uint160' },
|
|
131
|
+
],
|
|
132
|
+
name: 'params',
|
|
133
|
+
type: 'tuple',
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
name: 'exactInputSingle',
|
|
137
|
+
outputs: [{ name: 'amountOut', type: 'uint256' }],
|
|
138
|
+
stateMutability: 'payable',
|
|
139
|
+
type: 'function',
|
|
140
|
+
},
|
|
141
|
+
// multicall - 不带 deadline 版本
|
|
142
|
+
'function multicall(bytes[] calldata data) external payable returns (bytes[] memory results)',
|
|
143
|
+
'function refundETH() external payable',
|
|
144
|
+
'function unwrapWETH9(uint256 amountMinimum, address recipient) external payable',
|
|
145
|
+
];
|
|
146
|
+
// ============================================================================
|
|
147
|
+
// SwapRouter02 V2 方法 ABI (PotatoSwap/DYORSwap 等)
|
|
148
|
+
// ============================================================================
|
|
149
|
+
/**
|
|
150
|
+
* SwapRouter02 的 V2 方法 ABI
|
|
151
|
+
*
|
|
152
|
+
* 注意:SwapRouter02 的 V2 方法只有 token-to-token 交换
|
|
153
|
+
* 没有 swapExactETHForTokens / swapExactTokensForETH
|
|
154
|
+
* 必须通过 multicall 组合 wrapETH/unwrapWETH9 来处理原生代币
|
|
155
|
+
*/
|
|
156
|
+
export const SWAP_ROUTER02_V2_ABI = [
|
|
157
|
+
// V2 交换方法(只有 token-to-token)
|
|
158
|
+
'function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to) external payable returns (uint256 amountOut)',
|
|
159
|
+
'function swapTokensForExactTokens(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to) external payable returns (uint256 amountIn)',
|
|
160
|
+
// Multicall - 多种重载
|
|
161
|
+
'function multicall(uint256 deadline, bytes[] calldata data) external payable returns (bytes[] memory results)',
|
|
162
|
+
'function multicall(bytes32 previousBlockhash, bytes[] calldata data) external payable returns (bytes[] memory results)',
|
|
163
|
+
'function multicall(bytes[] calldata data) external payable returns (bytes[] memory results)',
|
|
164
|
+
// 辅助方法 - ETH/WETH 转换
|
|
165
|
+
'function wrapETH(uint256 value) external payable',
|
|
166
|
+
'function unwrapWETH9(uint256 amountMinimum, address recipient) external payable',
|
|
167
|
+
'function unwrapWETH9(uint256 amountMinimum) external payable',
|
|
168
|
+
'function refundETH() external payable',
|
|
169
|
+
// 代币操作
|
|
170
|
+
'function pull(address token, uint256 value) external payable',
|
|
171
|
+
'function sweepToken(address token, uint256 amountMinimum, address recipient) external payable',
|
|
172
|
+
'function sweepToken(address token, uint256 amountMinimum) external payable',
|
|
173
|
+
];
|
|
174
|
+
// ============================================================================
|
|
175
|
+
// V3 Quoter ABI
|
|
176
|
+
// ============================================================================
|
|
177
|
+
/** V3 QuoterV2 ABI */
|
|
178
|
+
export const V3_QUOTER_ABI = [
|
|
179
|
+
{
|
|
180
|
+
inputs: [
|
|
181
|
+
{
|
|
182
|
+
components: [
|
|
183
|
+
{ name: 'tokenIn', type: 'address' },
|
|
184
|
+
{ name: 'tokenOut', type: 'address' },
|
|
185
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
186
|
+
{ name: 'fee', type: 'uint24' },
|
|
187
|
+
{ name: 'sqrtPriceLimitX96', type: 'uint160' },
|
|
188
|
+
],
|
|
189
|
+
name: 'params',
|
|
190
|
+
type: 'tuple',
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
name: 'quoteExactInputSingle',
|
|
194
|
+
outputs: [
|
|
195
|
+
{ name: 'amountOut', type: 'uint256' },
|
|
196
|
+
{ name: 'sqrtPriceX96After', type: 'uint160' },
|
|
197
|
+
{ name: 'initializedTicksCrossed', type: 'uint32' },
|
|
198
|
+
{ name: 'gasEstimate', type: 'uint256' },
|
|
199
|
+
],
|
|
200
|
+
stateMutability: 'nonpayable',
|
|
201
|
+
type: 'function',
|
|
202
|
+
},
|
|
203
|
+
];
|
|
204
|
+
// ============================================================================
|
|
205
|
+
// Uniswap V2 Factory & Pair ABI
|
|
206
|
+
// ============================================================================
|
|
207
|
+
export const V2_FACTORY_ABI = ['function getPair(address tokenA, address tokenB) external view returns (address pair)'];
|
|
208
|
+
export const V2_PAIR_ABI = [
|
|
209
|
+
'function token0() external view returns (address)',
|
|
210
|
+
'function token1() external view returns (address)',
|
|
211
|
+
'function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)',
|
|
212
|
+
];
|
|
213
|
+
// ============================================================================
|
|
214
|
+
// Uniswap V3 Factory & Pool ABI
|
|
215
|
+
// ============================================================================
|
|
216
|
+
export const V3_FACTORY_ABI = [
|
|
217
|
+
'function getPool(address tokenA, address tokenB, uint24 fee) external view returns (address pool)',
|
|
218
|
+
];
|
|
219
|
+
export const V3_POOL_ABI = [
|
|
220
|
+
'function token0() external view returns (address)',
|
|
221
|
+
'function token1() external view returns (address)',
|
|
222
|
+
'function fee() external view returns (uint24)',
|
|
223
|
+
'function slot0() external view returns (uint160 sqrtPriceX96, int24 tick, uint16 observationIndex, uint16 observationCardinality, uint16 observationCardinalityNext, uint8 feeProtocol, bool unlocked)',
|
|
224
|
+
];
|
|
225
|
+
// ============================================================================
|
|
226
|
+
// Flap Portal ABI
|
|
227
|
+
// ============================================================================
|
|
228
|
+
export const FLAP_PORTAL_ABI = [
|
|
229
|
+
// 创建代币
|
|
230
|
+
'function newToken(string name, string symbol, string meta) external payable returns (address)',
|
|
231
|
+
'function newTokenV2((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData)) external payable returns (address)',
|
|
232
|
+
'function newTokenV3((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData)) external payable returns (address)',
|
|
233
|
+
// ✅ V4:支持 dexId / lpFeeProfile(与 portal-bundle-merkle/core.ts 的 newTokenV4.populateTransaction 对齐)
|
|
234
|
+
'function newTokenV4((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile)) external payable returns (address)',
|
|
235
|
+
// ✅ V5:Tax Token V2 高级税收分配(legacy)
|
|
236
|
+
'function newTokenV5((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint16 taxRate,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile,uint64 taxDuration,uint64 antiFarmerDuration,uint16 mktBps,uint16 deflationBps,uint16 dividendBps,uint16 lpBps,uint256 minimumShareBalance)) external payable returns (address)',
|
|
237
|
+
// ✅ V6:统一发币入口(TOKEN_V2_PERMIT / TOKEN_TAXED_V3)
|
|
238
|
+
'function newTokenV6((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint8 migratorType,address quoteToken,uint256 quoteAmt,address beneficiary,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint8 lpFeeProfile,uint16 buyTaxRate,uint16 sellTaxRate,uint64 taxDuration,uint64 antiFarmerDuration,uint16 mktBps,uint16 deflationBps,uint16 dividendBps,uint16 lpBps,uint256 minimumShareBalance,address dividendToken,address commissionReceiver,uint8 tokenVersion)) external payable returns (address)',
|
|
239
|
+
// ✅ V7:TOKEN_V3_PERMIT + CL 迁移
|
|
240
|
+
'function newTokenV7((string name,string symbol,string meta,uint8 dexThresh,bytes32 salt,uint8 migratorType,address quoteToken,uint256 quoteAmt,bytes permitData,bytes32 extensionID,bytes extensionData,uint8 dexId,uint16 buyTaxRate,uint16 sellTaxRate,uint64 taxDuration,uint64 antiFarmerDuration,address commissionReceiver,uint8 tokenVersion,(uint8 feeType,uint16 bps,address marketingAddress,address dividendToken,uint256 minimumShareBalance)[4] feeConfigs)) external payable returns (address)',
|
|
241
|
+
// 交易
|
|
242
|
+
'function swapExactInput((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData)) external payable returns (uint256)',
|
|
243
|
+
// ✅ V3:支持 extensionData(注意:这里的 V3 指“扩展交易接口版本”,不是“外盘 V3 池子”)
|
|
244
|
+
'function swapExactInputV3((address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,bytes permitData,bytes extensionData)) external payable returns (uint256)',
|
|
245
|
+
'function quoteExactInput((address inputToken,address outputToken,uint256 inputAmount)) external view returns (uint256)',
|
|
246
|
+
// 旧版兼容
|
|
247
|
+
'function buy(address token, uint256 minReceived) external payable returns (uint256)',
|
|
248
|
+
'function sell(address token, uint256 sellAmount, uint256 minReceived) external returns (uint256)',
|
|
249
|
+
];
|
|
250
|
+
// ============================================================================
|
|
251
|
+
// Four TokenManager ABI
|
|
252
|
+
// ============================================================================
|
|
253
|
+
export const TM2_ABI = [
|
|
254
|
+
// 新版方法(Four.meme TokenManager2)
|
|
255
|
+
'function buyTokenAMAP(uint256 origin, address token, address to, uint256 funds, uint256 minAmount) external payable',
|
|
256
|
+
'function sellToken(uint256 origin, address token, uint256 amount, uint256 minFunds) external',
|
|
257
|
+
// 旧版兼容方法
|
|
258
|
+
'function buy(address token, uint256 minReceived) external payable returns (uint256)',
|
|
259
|
+
'function sell(address token, uint256 sellAmount, uint256 minReceived) external returns (uint256)',
|
|
260
|
+
'function trySell(address token, uint256 sellAmount) external view returns (uint256)',
|
|
261
|
+
];
|
|
262
|
+
export const HELPER3_ABI = [
|
|
263
|
+
'function getTokenInfo(address token) external view returns (tuple(address addr, string name, string symbol, uint8 decimals, uint256 totalSupply, uint256 balance, uint256 price, uint256 marketCap))',
|
|
264
|
+
];
|