four-flap-meme-sdk 2.2.2 → 2.2.3
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 +86 -278
- 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 +101 -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 +83 -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 +77 -0
- package/dist/shared/flap/portal-create-token.js +214 -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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BSC - PancakeSwap 平台模块
|
|
3
3
|
*/
|
|
4
|
-
export { pancakeBundleSwapMerkle, pancakeBatchSwapMerkle, pancakeQuickBatchSwapMerkle, pancakeCrossSwapMerkle, type
|
|
5
|
-
export {
|
|
4
|
+
export { pancakeBundleSwapMerkle, pancakeBatchSwapMerkle, pancakeQuickBatchSwapMerkle, pancakeCrossSwapMerkle, type PancakeBatchSwapSignParams, type PancakeBatchSwapResult, type PancakeQuickBatchSwapParams, type PancakeQuickBatchSwapResult, type PancakeCrossSwapParams, type PancakeCrossSwapResult, } from './bundle-swap.js';
|
|
5
|
+
export type { PancakeSwapSignConfig, PancakeSwapConfig, PancakeBundleSwapSignParams, PancakeBundleSwapParams, PancakeSwapResult, SwapRouteType, RouteParams, V2RouteParams, V3SingleRouteParams, V3MultiRouteParams, UserType, } from './bundle-swap-helpers.js';
|
|
6
|
+
export { pancakeBundleBuyFirstMerkle } from './bundle-buy-first.js';
|
|
7
|
+
export type { PancakeBuyFirstSignConfig, PancakeBuyFirstConfig, PancakeBundleBuyFirstSignParams, PancakeBundleBuyFirstParams, PancakeBuyFirstResult, } from './bundle-buy-first-helpers.js';
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BSC - PancakeSwap 平台模块
|
|
3
3
|
*/
|
|
4
|
-
// Bundle Swap
|
|
5
4
|
export { pancakeBundleSwapMerkle, pancakeBatchSwapMerkle, pancakeQuickBatchSwapMerkle, pancakeCrossSwapMerkle, } from './bundle-swap.js';
|
|
6
|
-
|
|
7
|
-
export { pancakeBundleBuyFirstMerkle, } from './bundle-buy-first.js';
|
|
5
|
+
export { pancakeBundleBuyFirstMerkle } from './bundle-buy-first.js';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - 查询: 通过 projectId / token 地址获取信息
|
|
7
7
|
*/
|
|
8
8
|
import { JsonRpcProvider } from 'ethers';
|
|
9
|
-
import type { IroCreateParams, IroCreateProjectResult, IroQueryConfig, IroFactoryTokenInfo } from './types.js';
|
|
9
|
+
import type { IroCreateParams, IroCreateProjectResult, IroQueryConfig, IroFactoryTokenInfo, IroCreateProjectParams } from './types.js';
|
|
10
10
|
export declare class IroFactoryQuery {
|
|
11
11
|
private provider;
|
|
12
12
|
private factory;
|
|
@@ -31,7 +31,7 @@ export declare class IroFactoryQuery {
|
|
|
31
31
|
/**
|
|
32
32
|
* 编码 createProject calldata
|
|
33
33
|
*/
|
|
34
|
-
export declare function encodeCreateProjectCall(params:
|
|
34
|
+
export declare function encodeCreateProjectCall(params: IroCreateProjectParams): string;
|
|
35
35
|
/**
|
|
36
36
|
* 创建 IRO 项目 — 签名交易
|
|
37
37
|
*
|
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
|
|
9
9
|
import { BSC_CHAIN_ID, BSC_RPC_URL } from '../../constants.js';
|
|
10
|
-
import { IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, CREATE_PROJECT_GAS_LIMIT
|
|
10
|
+
import { IRO_FACTORY_ADDRESS, IRO_FACTORY_ABI, CREATE_PROJECT_GAS_LIMIT } from './constants.js';
|
|
11
11
|
const factoryIface = new Interface(IRO_FACTORY_ABI);
|
|
12
12
|
// ============================================================================
|
|
13
13
|
// 只读查询
|
|
14
14
|
// ============================================================================
|
|
15
15
|
export class IroFactoryQuery {
|
|
16
|
+
provider;
|
|
17
|
+
factory;
|
|
16
18
|
constructor(config = {}) {
|
|
17
19
|
const rpcUrl = config.rpcUrl ?? BSC_RPC_URL;
|
|
18
20
|
const chainId = config.chainId ?? BSC_CHAIN_ID;
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export type { WhiteListQuota, IroCreateProjectParams, IroFactoryTokenInfo, IroSubscribeParams, IroPledgeParams, IroTokenPrice, IroPoolRemovePledgeParams, IroPoolExtractParams, IroPoolTransferAwardsParams, IroTokenInfo, IroTxResult, IroCreateProjectResult, IroQueryConfig, IroCreateParams, } from './types.js';
|
|
10
10
|
export { IRO_FACTORY_ADDRESS, IROSWAP_V2_ROUTER, IROSWAP_V2_FACTORY, USDT_BSC, IRO_FACTORY_ABI, IRO_TOKEN_ABI, IRO_POOL_ABI, CREATE_PROJECT_GAS_LIMIT, SUBSCRIBE_GAS_LIMIT, POOL_OPERATION_GAS_LIMIT, } from './constants.js';
|
|
11
|
-
export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent
|
|
12
|
-
export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit
|
|
13
|
-
export type { IroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult
|
|
14
|
-
export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract
|
|
11
|
+
export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent } from './factory.js';
|
|
12
|
+
export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit } from './token.js';
|
|
13
|
+
export type { IroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult } from './token.js';
|
|
14
|
+
export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract } from './pool.js';
|
|
15
15
|
export { IRO_PLATFORM_URL, IRO_TESTNET_PLATFORM_URL, setIroApiBase, setIroTestApiBase, iroApiCreateProject, iroApiUploadImage, } from './api.js';
|
|
16
|
-
export type { IroApiCreateProjectRequest, IroApiCreateProjectResponse, IroApiUploadImageResponse
|
|
16
|
+
export type { IroApiCreateProjectRequest, IroApiCreateProjectResponse, IroApiUploadImageResponse } from './api.js';
|
|
@@ -13,15 +13,15 @@ export { IRO_FACTORY_ADDRESS, IROSWAP_V2_ROUTER, IROSWAP_V2_FACTORY, USDT_BSC, I
|
|
|
13
13
|
// ============================================================================
|
|
14
14
|
// Factory (工厂合约)
|
|
15
15
|
// ============================================================================
|
|
16
|
-
export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent
|
|
16
|
+
export { IroFactoryQuery, encodeCreateProjectCall, createProject, parseCreateProjectEvent } from './factory.js';
|
|
17
17
|
// ============================================================================
|
|
18
18
|
// Token (代币合约 — 认购)
|
|
19
19
|
// ============================================================================
|
|
20
|
-
export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit
|
|
20
|
+
export { IroTokenQuery, subscribe, pledge, batchSubscribe, batchSubscribeForSubmit } from './token.js';
|
|
21
21
|
// ============================================================================
|
|
22
22
|
// Pool (资金池 — 质押/挖矿)
|
|
23
23
|
// ============================================================================
|
|
24
|
-
export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract
|
|
24
|
+
export { IroPoolQuery, poolRemovePledge, poolExtract, poolTransferAwards, batchExtract } from './pool.js';
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// API (IRO 平台后端)
|
|
27
27
|
// ============================================================================
|
|
@@ -16,6 +16,9 @@ const poolIface = new Interface(IRO_POOL_ABI);
|
|
|
16
16
|
// 查询
|
|
17
17
|
// ============================================================================
|
|
18
18
|
export class IroPoolQuery {
|
|
19
|
+
provider;
|
|
20
|
+
pool;
|
|
21
|
+
poolAddress;
|
|
19
22
|
constructor(poolAddress, rpcUrl, chainId) {
|
|
20
23
|
this.poolAddress = poolAddress;
|
|
21
24
|
this.provider = new JsonRpcProvider(rpcUrl ?? BSC_RPC_URL, chainId ?? BSC_CHAIN_ID, { staticNetwork: true });
|
|
@@ -62,19 +65,37 @@ export class IroPoolQuery {
|
|
|
62
65
|
const raw = await this.pool.increaseRateMap(index);
|
|
63
66
|
return { status: raw[0], rate: BigInt(raw[1]) };
|
|
64
67
|
}
|
|
65
|
-
async totalSupply() {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
+
async totalSupply() {
|
|
69
|
+
return this.pool.totalSupply();
|
|
70
|
+
}
|
|
71
|
+
async balanceOf(account) {
|
|
72
|
+
return this.pool.balanceOf(account);
|
|
73
|
+
}
|
|
74
|
+
async lastPrice() {
|
|
75
|
+
return this.pool.lastPrice();
|
|
76
|
+
}
|
|
68
77
|
async userAward(account) {
|
|
69
78
|
const raw = await this.pool.userAward(account);
|
|
70
79
|
return {
|
|
71
|
-
deposit: BigInt(raw[0]),
|
|
72
|
-
|
|
80
|
+
deposit: BigInt(raw[0]),
|
|
81
|
+
debt: BigInt(raw[1]),
|
|
82
|
+
share: BigInt(raw[2]),
|
|
83
|
+
lastTimestamp: BigInt(raw[3]),
|
|
84
|
+
totalDeposit: BigInt(raw[4]),
|
|
85
|
+
totalInviteReward: BigInt(raw[5]),
|
|
86
|
+
lastInviteReward: BigInt(raw[6]),
|
|
87
|
+
pledgeNum: BigInt(raw[7]),
|
|
73
88
|
};
|
|
74
89
|
}
|
|
75
|
-
async getUserStake(account) {
|
|
76
|
-
|
|
77
|
-
|
|
90
|
+
async getUserStake(account) {
|
|
91
|
+
return this.pool.getUserStake(account);
|
|
92
|
+
}
|
|
93
|
+
async ownerAddr() {
|
|
94
|
+
return this.pool.ownerAddr();
|
|
95
|
+
}
|
|
96
|
+
async isInitialized() {
|
|
97
|
+
return this.pool.isInitialized();
|
|
98
|
+
}
|
|
78
99
|
get providerInstance() {
|
|
79
100
|
return this.provider;
|
|
80
101
|
}
|
|
@@ -87,7 +108,7 @@ export class IroPoolQuery {
|
|
|
87
108
|
* removePledge() — 用户直接调用
|
|
88
109
|
*/
|
|
89
110
|
export async function poolRemovePledge(params) {
|
|
90
|
-
const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, gasPrice
|
|
111
|
+
const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, gasPrice } = params;
|
|
91
112
|
const provider = new JsonRpcProvider(rpcUrl, chainId, { staticNetwork: true });
|
|
92
113
|
const wallet = new Wallet(privateKey, provider);
|
|
93
114
|
const calldata = poolIface.encodeFunctionData('removePledge', []);
|
|
@@ -109,7 +130,7 @@ export async function poolRemovePledge(params) {
|
|
|
109
130
|
* extract(uint256 amount) — 用户直接调用
|
|
110
131
|
*/
|
|
111
132
|
export async function poolExtract(params) {
|
|
112
|
-
const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, amount, gasPrice
|
|
133
|
+
const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, privateKey, poolAddress, amount, gasPrice } = params;
|
|
113
134
|
const provider = new JsonRpcProvider(rpcUrl, chainId, { staticNetwork: true });
|
|
114
135
|
const wallet = new Wallet(privateKey, provider);
|
|
115
136
|
const calldata = poolIface.encodeFunctionData('extract', [amount]);
|
|
@@ -16,6 +16,9 @@ const tokenIface = new Interface(IRO_TOKEN_ABI);
|
|
|
16
16
|
// 查询
|
|
17
17
|
// ============================================================================
|
|
18
18
|
export class IroTokenQuery {
|
|
19
|
+
provider;
|
|
20
|
+
token;
|
|
21
|
+
tokenAddress;
|
|
19
22
|
constructor(tokenAddress, rpcUrl, chainId) {
|
|
20
23
|
this.tokenAddress = tokenAddress;
|
|
21
24
|
this.provider = new JsonRpcProvider(rpcUrl ?? BSC_RPC_URL, chainId ?? BSC_CHAIN_ID, { staticNetwork: true });
|
|
@@ -217,7 +220,7 @@ export async function batchSubscribe(params) {
|
|
|
217
220
|
* 后端 submit_blockrazor 会验证最后 3 笔是利润交易,然后去掉后广播业务交易
|
|
218
221
|
*/
|
|
219
222
|
export async function batchSubscribeForSubmit(params) {
|
|
220
|
-
const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit } = params;
|
|
223
|
+
const { rpcUrl = BSC_RPC_URL, chainId = BSC_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit, } = params;
|
|
221
224
|
if (subscribers.length === 0) {
|
|
222
225
|
return { signedTransactions: [...approvalTxs], subscribeResults: [], profitAmount: 0n };
|
|
223
226
|
}
|
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* ENI 不支持 EIP-7702,所以无法在一笔 tx 中完成多钱包 approve
|
|
6
6
|
* 采用并行广播策略
|
|
7
7
|
*/
|
|
8
|
-
import { Wallet,
|
|
8
|
+
import { Wallet, Interface } from 'ethers';
|
|
9
9
|
import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
|
|
10
|
-
import {
|
|
10
|
+
import { createEniProvider } from '../../../utils/provider-factory.js';
|
|
11
|
+
import { ERC20_ABI } from '../../../abis/common.js';
|
|
11
12
|
const MAX_UINT256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
|
|
12
13
|
const erc20Iface = new Interface(ERC20_ABI);
|
|
13
14
|
/**
|
|
@@ -16,7 +17,7 @@ const erc20Iface = new Interface(ERC20_ABI);
|
|
|
16
17
|
*/
|
|
17
18
|
export async function batchApprove(params) {
|
|
18
19
|
const { rpcUrl = ENI_RPC_URL, token, privateKeys, spender, gasPrice } = params;
|
|
19
|
-
const provider =
|
|
20
|
+
const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
|
|
20
21
|
const feeData = await provider.getFeeData();
|
|
21
22
|
const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
22
23
|
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
|
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
* - eniDisperseForSubmit: 前端统一入口 (EGAS / ERC20 分发)
|
|
9
9
|
* - eniSweepForSubmit: 前端统一入口 (EGAS / ERC20 归集)
|
|
10
10
|
*/
|
|
11
|
-
import { Wallet,
|
|
11
|
+
import { Wallet, Interface, Contract, ethers } from 'ethers';
|
|
12
12
|
import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
|
|
13
|
+
import { createEniProvider } from '../../../utils/provider-factory.js';
|
|
13
14
|
import { BATCH_ROUTER_ADDRESS, estimateGas } from './constants.js';
|
|
14
15
|
import { validateBatchParams, encodeBatchTransfer, encodeBatchTransferToken, buildBatchRouterTx } from './utils.js';
|
|
15
|
-
import { ERC20_ABI } from '../../../
|
|
16
|
+
import { ERC20_ABI } from '../../../abis/common.js';
|
|
16
17
|
import { getProfitRecipient, calculateTransferFee } from '../../../shared/constants/profit.js';
|
|
17
18
|
import { GAS_LIMITS } from '../../../shared/constants/gas.js';
|
|
18
19
|
const erc20Iface = new Interface(ERC20_ABI);
|
|
@@ -60,7 +61,7 @@ export async function batchSweepToken(params) {
|
|
|
60
61
|
if (privateKeys.length !== amounts.length) {
|
|
61
62
|
throw new Error(`privateKeys.length (${privateKeys.length}) !== amounts.length (${amounts.length})`);
|
|
62
63
|
}
|
|
63
|
-
const provider =
|
|
64
|
+
const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
|
|
64
65
|
const feeData = await provider.getFeeData();
|
|
65
66
|
const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
66
67
|
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
|
|
@@ -87,7 +88,7 @@ export async function batchSweepEgas(params) {
|
|
|
87
88
|
if (privateKeys.length !== amounts.length) {
|
|
88
89
|
throw new Error(`privateKeys.length (${privateKeys.length}) !== amounts.length (${amounts.length})`);
|
|
89
90
|
}
|
|
90
|
-
const provider =
|
|
91
|
+
const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
|
|
91
92
|
const feeData = await provider.getFeeData();
|
|
92
93
|
const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
93
94
|
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
|
|
@@ -112,8 +113,8 @@ export async function eniDisperseForSubmit(params) {
|
|
|
112
113
|
const { rpcUrl = ENI_RPC_URL, fromPrivateKey, recipients, tokenAddress, hopCount = 0 } = params;
|
|
113
114
|
const decimals = params.tokenDecimals ?? 18;
|
|
114
115
|
const isNative = !tokenAddress || tokenAddress === ethers.ZeroAddress;
|
|
115
|
-
const amountsWei = params.amounts.map(a => ethers.parseUnits(a, decimals));
|
|
116
|
-
const provider =
|
|
116
|
+
const amountsWei = params.amounts.map((a) => ethers.parseUnits(a, decimals));
|
|
117
|
+
const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
|
|
117
118
|
const mainWallet = new Wallet(fromPrivateKey, provider);
|
|
118
119
|
const feeData = await provider.getFeeData();
|
|
119
120
|
const maxFeePerGas = feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
@@ -123,8 +124,17 @@ export async function eniDisperseForSubmit(params) {
|
|
|
123
124
|
const erc20GasLimit = params.gasLimit ? BigInt(params.gasLimit) : DEFAULT_GAS_PER_SWEEP;
|
|
124
125
|
if (hopCount > 0) {
|
|
125
126
|
return eniDisperseWithHops({
|
|
126
|
-
provider,
|
|
127
|
-
|
|
127
|
+
provider,
|
|
128
|
+
mainWallet,
|
|
129
|
+
recipients,
|
|
130
|
+
amountsWei,
|
|
131
|
+
isNative,
|
|
132
|
+
tokenAddress,
|
|
133
|
+
hopCount,
|
|
134
|
+
profitAmount,
|
|
135
|
+
maxFeePerGas,
|
|
136
|
+
maxPriorityFeePerGas,
|
|
137
|
+
erc20GasLimit,
|
|
128
138
|
});
|
|
129
139
|
}
|
|
130
140
|
// ===== 无多跳:使用 BatchRouter 合约批量分发 =====
|
|
@@ -216,8 +226,8 @@ async function eniDisperseWithHops(params) {
|
|
|
216
226
|
const finalRecipient = recipients[i];
|
|
217
227
|
const amountWei = amountsWei[i];
|
|
218
228
|
const hops = hopWallets[i];
|
|
219
|
-
const fullChain = [mainWallet, ...hops.map(h => new Wallet(h.privateKey, provider))];
|
|
220
|
-
const addresses = [...fullChain.map(w => w.address), finalRecipient];
|
|
229
|
+
const fullChain = [mainWallet, ...hops.map((h) => new Wallet(h.privateKey, provider))];
|
|
230
|
+
const addresses = [...fullChain.map((w) => w.address), finalRecipient];
|
|
221
231
|
if (isNative) {
|
|
222
232
|
for (let j = 0; j < addresses.length - 1; j++) {
|
|
223
233
|
const fromWallet = fullChain[j];
|
|
@@ -353,7 +363,7 @@ export async function eniSweepForSubmit(params) {
|
|
|
353
363
|
const isNative = !tokenAddress || tokenAddress === ethers.ZeroAddress;
|
|
354
364
|
const ratioPct = params.ratioPct ?? 100;
|
|
355
365
|
const erc20GasLimit = params.gasLimit ? BigInt(params.gasLimit) : DEFAULT_GAS_PER_SWEEP;
|
|
356
|
-
const provider =
|
|
366
|
+
const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
|
|
357
367
|
const feeData = await provider.getFeeData();
|
|
358
368
|
const maxFeePerGas = feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
359
369
|
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
|
|
@@ -381,12 +391,19 @@ export async function eniSweepForSubmit(params) {
|
|
|
381
391
|
return { signedTransactions: [] };
|
|
382
392
|
if (hopCount > 0) {
|
|
383
393
|
return eniSweepWithHops({
|
|
384
|
-
provider,
|
|
385
|
-
|
|
394
|
+
provider,
|
|
395
|
+
validKeys,
|
|
396
|
+
validAmounts,
|
|
397
|
+
target,
|
|
398
|
+
targetPrivateKey,
|
|
399
|
+
isNative: true,
|
|
400
|
+
hopCount,
|
|
401
|
+
maxFeePerGas,
|
|
402
|
+
maxPriorityFeePerGas,
|
|
386
403
|
});
|
|
387
404
|
}
|
|
388
405
|
const result = await batchSweepEgas({ rpcUrl, privateKeys: validKeys, amounts: validAmounts, target });
|
|
389
|
-
const signedTxs = result.transactions.map(tx => tx.signedTx);
|
|
406
|
+
const signedTxs = result.transactions.map((tx) => tx.signedTx);
|
|
390
407
|
if (targetPrivateKey) {
|
|
391
408
|
const profitTxGasCost = GAS_LIMITS.NATIVE_TRANSFER * maxFeePerGas;
|
|
392
409
|
const profitAmount = calculateTransferFee(ENI_CHAIN_ID, validKeys.length) + profitTxGasCost;
|
|
@@ -409,9 +426,7 @@ export async function eniSweepForSubmit(params) {
|
|
|
409
426
|
// ===== ERC20 归集 =====
|
|
410
427
|
const erc20 = new Contract(tokenAddress, ERC20_ABI, provider);
|
|
411
428
|
const erc20TransferGasCost = erc20GasLimit * maxFeePerGas;
|
|
412
|
-
const hopGasCostPerWallet = hopCount > 0
|
|
413
|
-
? gasForTransfer * BigInt(hopCount) + erc20GasLimit * maxFeePerGas * BigInt(hopCount)
|
|
414
|
-
: 0n;
|
|
429
|
+
const hopGasCostPerWallet = hopCount > 0 ? gasForTransfer * BigInt(hopCount) + erc20GasLimit * maxFeePerGas * BigInt(hopCount) : 0n;
|
|
415
430
|
const minNativeRequired = erc20TransferGasCost + hopGasCostPerWallet;
|
|
416
431
|
const walletsData = await Promise.all(sourcePrivateKeys.map(async (key) => {
|
|
417
432
|
const wallet = new Wallet(key, provider);
|
|
@@ -428,7 +443,6 @@ export async function eniSweepForSubmit(params) {
|
|
|
428
443
|
if (tokenBal <= 0n)
|
|
429
444
|
continue;
|
|
430
445
|
if (nativeBal < minNativeRequired) {
|
|
431
|
-
console.log(`[eniSweep] 跳过钱包 ${i}: EGAS 余额 ${ethers.formatEther(nativeBal)} 不足以支付 gas (需要 ${ethers.formatEther(minNativeRequired)})`);
|
|
432
446
|
continue;
|
|
433
447
|
}
|
|
434
448
|
const amount = ratioPct >= 100 ? tokenBal : (tokenBal * BigInt(ratioPct)) / 100n;
|
|
@@ -441,12 +455,28 @@ export async function eniSweepForSubmit(params) {
|
|
|
441
455
|
return { signedTransactions: [] };
|
|
442
456
|
if (hopCount > 0) {
|
|
443
457
|
return eniSweepWithHops({
|
|
444
|
-
provider,
|
|
445
|
-
|
|
458
|
+
provider,
|
|
459
|
+
validKeys,
|
|
460
|
+
validAmounts,
|
|
461
|
+
target,
|
|
462
|
+
targetPrivateKey,
|
|
463
|
+
isNative: false,
|
|
464
|
+
tokenAddress,
|
|
465
|
+
hopCount,
|
|
466
|
+
maxFeePerGas,
|
|
467
|
+
maxPriorityFeePerGas,
|
|
468
|
+
erc20GasLimit,
|
|
446
469
|
});
|
|
447
470
|
}
|
|
448
|
-
const result = await batchSweepToken({
|
|
449
|
-
|
|
471
|
+
const result = await batchSweepToken({
|
|
472
|
+
rpcUrl,
|
|
473
|
+
token: tokenAddress,
|
|
474
|
+
privateKeys: validKeys,
|
|
475
|
+
amounts: validAmounts,
|
|
476
|
+
target,
|
|
477
|
+
gasLimit: erc20GasLimit,
|
|
478
|
+
});
|
|
479
|
+
const signedTxs = result.transactions.map((tx) => tx.signedTx);
|
|
450
480
|
if (targetPrivateKey) {
|
|
451
481
|
const profitTxGasCost = GAS_LIMITS.NATIVE_TRANSFER * maxFeePerGas;
|
|
452
482
|
const profitAmount = calculateTransferFee(ENI_CHAIN_ID, validKeys.length) + profitTxGasCost;
|
|
@@ -485,8 +515,8 @@ async function eniSweepWithHops(params) {
|
|
|
485
515
|
const sourceWallet = new Wallet(validKeys[i], provider);
|
|
486
516
|
const amountWei = validAmounts[i];
|
|
487
517
|
const hops = hopWallets[i];
|
|
488
|
-
const fullChain = [sourceWallet, ...hops.map(h => new Wallet(h.privateKey, provider))];
|
|
489
|
-
const addresses = [...fullChain.map(w => w.address), target];
|
|
518
|
+
const fullChain = [sourceWallet, ...hops.map((h) => new Wallet(h.privateKey, provider))];
|
|
519
|
+
const addresses = [...fullChain.map((w) => w.address), target];
|
|
490
520
|
const sourceNonce = await sourceWallet.getNonce();
|
|
491
521
|
if (isNative) {
|
|
492
522
|
for (let j = 0; j < addresses.length - 1; j++) {
|
|
@@ -543,7 +573,7 @@ async function eniSweepWithHops(params) {
|
|
|
543
573
|
to: tokenAddress,
|
|
544
574
|
data: srcToFirstHopData,
|
|
545
575
|
value: 0n,
|
|
546
|
-
nonce: srcNonce
|
|
576
|
+
nonce: srcNonce,
|
|
547
577
|
chainId: BigInt(ENI_CHAIN_ID),
|
|
548
578
|
type: 2,
|
|
549
579
|
maxFeePerGas,
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 对标 BSC 全部 Bundle 操作的 calldata 编码
|
|
5
5
|
*/
|
|
6
|
-
import { Interface, Wallet
|
|
6
|
+
import { Interface, Wallet } from 'ethers';
|
|
7
7
|
import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
|
|
8
|
+
import { createEniProvider } from '../../../utils/provider-factory.js';
|
|
8
9
|
import { BATCH_ROUTER_ABI, MAX_BATCH_SIZE } from './constants.js';
|
|
9
10
|
const routerIface = new Interface(BATCH_ROUTER_ABI);
|
|
10
11
|
// ============================================================================
|
|
@@ -65,7 +66,14 @@ export function encodeBuyFirstSwapV2(router, token, buyers, buyAmounts, sellers,
|
|
|
65
66
|
// ============================================================================
|
|
66
67
|
export function encodeCreateAndBatchBuy(portal, name, symbol, salt, createValue, token, buyers, buyAmounts) {
|
|
67
68
|
return routerIface.encodeFunctionData('createAndBatchBuy', [
|
|
68
|
-
portal,
|
|
69
|
+
portal,
|
|
70
|
+
name,
|
|
71
|
+
symbol,
|
|
72
|
+
salt,
|
|
73
|
+
createValue,
|
|
74
|
+
token,
|
|
75
|
+
buyers,
|
|
76
|
+
buyAmounts,
|
|
69
77
|
]);
|
|
70
78
|
}
|
|
71
79
|
export function encodeFairLaunchAndBatchBuyV2(launcher, launchParams, launchValue, router, token, buyers, buyAmounts) {
|
|
@@ -103,7 +111,13 @@ export function encodeFairLaunchAndBatchBuyV2(launcher, launchParams, launchValu
|
|
|
103
111
|
launchParams.inviteCodes,
|
|
104
112
|
];
|
|
105
113
|
return routerIface.encodeFunctionData('fairLaunchAndBatchBuyV2', [
|
|
106
|
-
launcher,
|
|
114
|
+
launcher,
|
|
115
|
+
paramsTuple,
|
|
116
|
+
launchValue,
|
|
117
|
+
router,
|
|
118
|
+
token,
|
|
119
|
+
buyers,
|
|
120
|
+
buyAmounts,
|
|
107
121
|
]);
|
|
108
122
|
}
|
|
109
123
|
// ============================================================================
|
|
@@ -111,12 +125,24 @@ export function encodeFairLaunchAndBatchBuyV2(launcher, launchParams, launchValu
|
|
|
111
125
|
// ============================================================================
|
|
112
126
|
export function encodeCrossSwapPortalToV2(portal, router, token, sellers, sellAmounts, buyers, buyAmounts) {
|
|
113
127
|
return routerIface.encodeFunctionData('crossSwapPortalToV2', [
|
|
114
|
-
portal,
|
|
128
|
+
portal,
|
|
129
|
+
router,
|
|
130
|
+
token,
|
|
131
|
+
sellers,
|
|
132
|
+
sellAmounts,
|
|
133
|
+
buyers,
|
|
134
|
+
buyAmounts,
|
|
115
135
|
]);
|
|
116
136
|
}
|
|
117
137
|
export function encodeCrossSwapV2ToPortal(portal, router, token, sellers, sellAmounts, buyers, buyAmounts) {
|
|
118
138
|
return routerIface.encodeFunctionData('crossSwapV2ToPortal', [
|
|
119
|
-
portal,
|
|
139
|
+
portal,
|
|
140
|
+
router,
|
|
141
|
+
token,
|
|
142
|
+
sellers,
|
|
143
|
+
sellAmounts,
|
|
144
|
+
buyers,
|
|
145
|
+
buyAmounts,
|
|
120
146
|
]);
|
|
121
147
|
}
|
|
122
148
|
// ============================================================================
|
|
@@ -136,7 +162,7 @@ export function encodeBatchSweepToken(token, sources, target) {
|
|
|
136
162
|
// ============================================================================
|
|
137
163
|
export async function buildBatchRouterTx(params) {
|
|
138
164
|
const { rpcUrl = ENI_RPC_URL, mainPrivateKey, batchRouterAddress, calldata, value = 0n, gasLimit, gasPrice } = params;
|
|
139
|
-
const provider =
|
|
165
|
+
const provider = createEniProvider(rpcUrl, ENI_CHAIN_ID);
|
|
140
166
|
const wallet = new Wallet(mainPrivateKey, provider);
|
|
141
167
|
const nonce = await wallet.getNonce();
|
|
142
168
|
const feeData = await provider.getFeeData();
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 各钱包离线签署操作意图,主钱包收集后统一提交。
|
|
5
5
|
*/
|
|
6
|
-
import { Wallet, JsonRpcProvider } from 'ethers';
|
|
6
|
+
import { Wallet, JsonRpcProvider, Interface } from 'ethers';
|
|
7
7
|
import { ENI_CHAIN_ID, ENI_RPC_URL } from '../constants.js';
|
|
8
8
|
import { ENI_BUNDLER_ABI, EIP712_DOMAIN, SIGNED_OP_TYPE, TOKEN_PULL_TYPE } from './constants.js';
|
|
9
9
|
const DEFAULT_DEADLINE_SEC = 300;
|
|
@@ -19,7 +19,6 @@ function buildDomain(bundlerAddress, chainId = Number(ENI_CHAIN_ID)) {
|
|
|
19
19
|
*/
|
|
20
20
|
export async function getBundlerNonce(params) {
|
|
21
21
|
const provider = new JsonRpcProvider(params.rpcUrl ?? ENI_RPC_URL, ENI_CHAIN_ID, { staticNetwork: true });
|
|
22
|
-
const { Interface } = await import('ethers');
|
|
23
22
|
const iface = new Interface(ENI_BUNDLER_ABI);
|
|
24
23
|
const data = iface.encodeFunctionData('nonces', [params.signer]);
|
|
25
24
|
const result = await provider.call({ to: params.bundlerAddress, data });
|
|
@@ -32,7 +31,7 @@ export async function signOperation(params) {
|
|
|
32
31
|
const { privateKey, bundlerAddress, op, rpcUrl } = params;
|
|
33
32
|
const wallet = new Wallet(privateKey);
|
|
34
33
|
const signer = wallet.address;
|
|
35
|
-
const nonce = params.nonce ?? await getBundlerNonce({ rpcUrl, bundlerAddress, signer });
|
|
34
|
+
const nonce = params.nonce ?? (await getBundlerNonce({ rpcUrl, bundlerAddress, signer }));
|
|
36
35
|
const deadline = BigInt(Math.floor(Date.now() / 1000) + DEFAULT_DEADLINE_SEC);
|
|
37
36
|
const domain = buildDomain(bundlerAddress);
|
|
38
37
|
const value = {
|
|
@@ -61,7 +60,7 @@ export async function signTokenPull(params) {
|
|
|
61
60
|
const { privateKey, bundlerAddress, token, spender, amount, rpcUrl } = params;
|
|
62
61
|
const wallet = new Wallet(privateKey);
|
|
63
62
|
const signer = wallet.address;
|
|
64
|
-
const nonce = params.nonce ?? await getBundlerNonce({ rpcUrl, bundlerAddress, signer });
|
|
63
|
+
const nonce = params.nonce ?? (await getBundlerNonce({ rpcUrl, bundlerAddress, signer }));
|
|
65
64
|
const deadline = BigInt(Math.floor(Date.now() / 1000) + DEFAULT_DEADLINE_SEC);
|
|
66
65
|
const domain = buildDomain(bundlerAddress);
|
|
67
66
|
const value = {
|
|
@@ -91,8 +90,8 @@ export async function signOperationsBatch(params) {
|
|
|
91
90
|
if (privateKeys.length !== ops.length) {
|
|
92
91
|
throw new Error(`privateKeys.length (${privateKeys.length}) !== ops.length (${ops.length})`);
|
|
93
92
|
}
|
|
94
|
-
const signers = privateKeys.map(k => new Wallet(k).address);
|
|
95
|
-
const nonces = await Promise.all(signers.map(signer => getBundlerNonce({ rpcUrl, bundlerAddress, signer })));
|
|
93
|
+
const signers = privateKeys.map((k) => new Wallet(k).address);
|
|
94
|
+
const nonces = await Promise.all(signers.map((signer) => getBundlerNonce({ rpcUrl, bundlerAddress, signer })));
|
|
96
95
|
return Promise.all(privateKeys.map((pk, i) => signOperation({
|
|
97
96
|
privateKey: pk,
|
|
98
97
|
bundlerAddress,
|
|
@@ -46,10 +46,7 @@ export async function buildExecuteBatch(params) {
|
|
|
46
46
|
export async function buildPullAndExecute(params) {
|
|
47
47
|
const { rpcUrl = ENI_RPC_URL, mainPrivateKey, bundlerAddress, pulls, ops, gasPrice } = params;
|
|
48
48
|
const totalValue = ops.reduce((sum, op) => sum + op.value, 0n);
|
|
49
|
-
const calldata = bundlerIface.encodeFunctionData('pullAndExecute', [
|
|
50
|
-
pulls.map(toPullTuple),
|
|
51
|
-
ops.map(toOpTuple),
|
|
52
|
-
]);
|
|
49
|
+
const calldata = bundlerIface.encodeFunctionData('pullAndExecute', [pulls.map(toPullTuple), ops.map(toOpTuple)]);
|
|
53
50
|
const provider = new JsonRpcProvider(rpcUrl, ENI_CHAIN_ID, { staticNetwork: true });
|
|
54
51
|
const wallet = new Wallet(mainPrivateKey, provider);
|
|
55
52
|
const nonce = await wallet.getNonce();
|
|
@@ -45,7 +45,7 @@ export const DAOAAS_BUY_FEE_RATE = 0.015;
|
|
|
45
45
|
/** DAOaaS Portal 卖出手续费率 (1.5%) */
|
|
46
46
|
export const DAOAAS_SELL_FEE_RATE = 0.015;
|
|
47
47
|
/** LPFairLauncher RATE_BASE */
|
|
48
|
-
export const RATE_BASE =
|
|
48
|
+
export const RATE_BASE = 1_000_000;
|
|
49
49
|
/** 最大 BatchRouter 钱包数(受 10M gas 限制, ~35-45 钱包) */
|
|
50
50
|
export const MAX_BATCH_WALLETS = 35;
|
|
51
51
|
// ============================================================================
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENI 包根扁平别名(子路径 `four-flap-meme-sdk/chains/eni` 可直接 import)
|
|
3
|
+
*
|
|
4
|
+
* 与 `root-eni-and-bsc-iro.ts` 中 `eni*` / `Eni*` 命名对齐,避免为 ENI 拉包根。
|
|
5
|
+
*/
|
|
6
|
+
export { DaoaasPortalQuery as EniPortalQuery, createPortalQuery as eniCreatePortalQuery, encodeBuyCall as eniEncodeBuyCall, encodeSellCall as eniEncodeSellCall, encodeCreateCall as eniEncodeCreateCall, applySlippage as eniApplySlippage, formatEgas as eniFormatEgas, parseEgas as eniParseEgas, directBuy as eniDirectBuy, directSell as eniDirectSell, directBatchBuy as eniDirectBatchBuy, directBatchSell as eniDirectBatchSell, directBuyForSubmit as eniDirectBuyForSubmit, directSellForSubmit as eniDirectSellForSubmit, directBatchBuyForSubmit as eniDirectBatchBuyForSubmit, directBatchSellForSubmit as eniDirectBatchSellForSubmit, directQuickSwap as eniDirectQuickSwap, directQuickSwapForSubmit as eniDirectQuickSwapForSubmit, buildProfitTransfer as eniBuildProfitTransfer, createToken as eniCreateToken, createTokenForSubmit as eniCreateTokenForSubmit, getGraduationInfo as eniGetGraduationInfo, batchGetGraduationInfo as eniBatchGetGraduationInfo, getTokenMeta as eniGetTokenMeta, getFairLaunchTokenMeta as eniGetFairLaunchTokenMeta, getTokenMetasBatch as eniGetTokenMetasBatch, DaoaasTokenStatus as EniDaoaasTokenStatus, } from './platforms/daoaas/index.js';
|
|
7
|
+
export type { DaoaasTokenState as EniDaoaasTokenState, DaoaasBuyParams as EniDaoaasBuyParams, DaoaasSellParams as EniDaoaasSellParams, DaoaasCreateParams as EniDaoaasCreateParams, PortalQueryConfig as EniPortalQueryConfig, GraduationInfo as EniGraduationInfo, DaoaasTokenMeta as EniDaoaasTokenMeta, } from './platforms/daoaas/index.js';
|
|
8
|
+
export { eniDisperseForSubmit, eniSweepForSubmit, batchTransferEgas, batchSweepEgas, batchSweepToken, } from './batch-router/index.js';
|
|
9
|
+
export type { EniDisperseParams, EniDisperseResult, EniSweepParams, EniSweepResult } from './batch-router/index.js';
|
|
10
|
+
export * as EniBatchRouter from './batch-router/index.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENI 包根扁平别名(子路径 `four-flap-meme-sdk/chains/eni` 可直接 import)
|
|
3
|
+
*
|
|
4
|
+
* 与 `root-eni-and-bsc-iro.ts` 中 `eni*` / `Eni*` 命名对齐,避免为 ENI 拉包根。
|
|
5
|
+
*/
|
|
6
|
+
export { DaoaasPortalQuery as EniPortalQuery, createPortalQuery as eniCreatePortalQuery, encodeBuyCall as eniEncodeBuyCall, encodeSellCall as eniEncodeSellCall, encodeCreateCall as eniEncodeCreateCall, applySlippage as eniApplySlippage, formatEgas as eniFormatEgas, parseEgas as eniParseEgas, directBuy as eniDirectBuy, directSell as eniDirectSell, directBatchBuy as eniDirectBatchBuy, directBatchSell as eniDirectBatchSell, directBuyForSubmit as eniDirectBuyForSubmit, directSellForSubmit as eniDirectSellForSubmit, directBatchBuyForSubmit as eniDirectBatchBuyForSubmit, directBatchSellForSubmit as eniDirectBatchSellForSubmit, directQuickSwap as eniDirectQuickSwap, directQuickSwapForSubmit as eniDirectQuickSwapForSubmit, buildProfitTransfer as eniBuildProfitTransfer, createToken as eniCreateToken, createTokenForSubmit as eniCreateTokenForSubmit, getGraduationInfo as eniGetGraduationInfo, batchGetGraduationInfo as eniBatchGetGraduationInfo, getTokenMeta as eniGetTokenMeta, getFairLaunchTokenMeta as eniGetFairLaunchTokenMeta, getTokenMetasBatch as eniGetTokenMetasBatch, DaoaasTokenStatus as EniDaoaasTokenStatus, } from './platforms/daoaas/index.js';
|
|
7
|
+
export { eniDisperseForSubmit, eniSweepForSubmit, batchTransferEgas, batchSweepEgas, batchSweepToken, } from './batch-router/index.js';
|
|
8
|
+
export * as EniBatchRouter from './batch-router/index.js';
|
|
@@ -15,8 +15,9 @@ export type { DaoaasTokenState, DaoaasBuyParams, DaoaasSellParams, DaoaasCreateP
|
|
|
15
15
|
export { TokenLaunchType, FairLauncherQuery, launchToken, launchTokenForSubmit, setTokenTradeStartTime, setTokenTradeStartTimeForSubmit, encodeLaunchTokenCall, standardPreset, liquidityProvidingPreset, dividendPreset, dividendBuybackPreset, deflationaryPreset, validateLaunchParams, detectLaunchType, RATE_BASE, QUOTE_TOKENS, LP_FAIR_LAUNCHER_ADDRESS, } from './platforms/fair-launch/index.js';
|
|
16
16
|
export type { LaunchParams, FairLaunchTokenInfo, FairLaunchQueryConfig, FairLaunchCreateParams, FairLaunchCreateResult, } from './platforms/fair-launch/index.js';
|
|
17
17
|
export { FairPoolQuery, claimFromPool, claimFromPoolForSubmit, batchClaimForSubmit, } from './platforms/fair-launch/index.js';
|
|
18
|
-
export type { PoolOverview, PoolClaimParams, PoolClaimResult
|
|
18
|
+
export type { PoolOverview, PoolClaimParams, PoolClaimResult } from './platforms/fair-launch/index.js';
|
|
19
19
|
export { getLPPairInfo, batchGetLPPairInfo, getPairAddress, addLiquidityETHForSubmit, removeLiquidityETHForSubmit, addLiquidityForSubmit, removeLiquidityForSubmit, } from './platforms/dswap/index.js';
|
|
20
20
|
export type { LPPairInfo, GetLPInfoParams, BatchGetLPInfoParams, AddLiquidityETHParams, RemoveLiquidityETHParams, AddLiquidityParams, RemoveLiquidityParams, LiquidityTxResult, LiquidityForSubmitResult, } from './platforms/dswap/index.js';
|
|
21
21
|
export { IroFactoryQuery as EniIroFactoryQuery, encodeCreateProjectCall as eniIroEncodeCreateProjectCall, createProject as eniIroCreateProject, parseCreateProjectEvent as eniIroParseCreateProjectEvent, IroTokenQuery as EniIroTokenQuery, subscribe as eniIroSubscribe, pledge as eniIroPledge, batchSubscribe as eniIroBatchSubscribe, batchSubscribeForSubmit as eniIroBatchSubscribeForSubmit, IroPoolQuery as EniIroPoolQuery, poolRemovePledge as eniIroPoolRemovePledge, poolExtract as eniIroPoolExtract, poolTransferAwards as eniIroPoolTransferAwards, batchExtract as eniIroBatchExtract, ENI_IRO_FACTORY_ADDRESS, ENI_IRO_OWNER_ADDRESS, ENI_IRO_SELL_FEE_CONTRACT, ENI_IROSWAP_V2_ROUTER, ENI_IROSWAP_V2_FACTORY, IRO_FACTORY_ABI as ENI_IRO_FACTORY_ABI, IRO_TOKEN_ABI as ENI_IRO_TOKEN_ABI, IRO_POOL_ABI as ENI_IRO_POOL_ABI, CREATE_PROJECT_GAS_LIMIT as ENI_CREATE_PROJECT_GAS_LIMIT, ENI_IRO_PLATFORM_URL, setIroApiBase as setEniIroApiBase, iroApiCreateProject as eniIroApiCreateProject, iroApiUploadImage as eniIroApiUploadImage, getTokenWhiteList as eniIroGetTokenWhiteList, addTokenWhiteListForSubmit as eniIroAddTokenWhiteListForSubmit, batchAddTokenWhiteListForSubmit as eniIroBatchAddTokenWhiteListForSubmit, removeTokenWhiteListForSubmit as eniIroRemoveTokenWhiteListForSubmit, IRO_OWNER_WHITELIST_ABI as ENI_IRO_OWNER_WHITELIST_ABI, } from './platforms/iro/index.js';
|
|
22
22
|
export type { WhiteListQuota as EniWhiteListQuota, IroCreateProjectParams as EniIroCreateProjectParams, IroSubscribeParams as EniIroSubscribeParams, IroPledgeParams as EniIroPledgeParams, IroTokenInfo as EniIroTokenInfo, IroTxResult as EniIroTxResult, IroCreateProjectResult as EniIroCreateProjectResult, IroQueryConfig as EniIroQueryConfig, IroCreateParams as EniIroCreateParams, IroBatchSubscribeForSubmitParams as EniIroBatchSubscribeForSubmitParams, IroBatchSubscribeForSubmitResult as EniIroBatchSubscribeForSubmitResult, WhitelistManageConfig as EniWhitelistManageConfig, AddWhitelistParams as EniAddWhitelistParams, BatchAddWhitelistParams as EniBatchAddWhitelistParams, RemoveWhitelistParams as EniRemoveWhitelistParams, GetWhitelistParams as EniGetWhitelistParams, } from './platforms/iro/index.js';
|
|
23
|
+
export * from './flat-aliases.js';
|
package/dist/chains/eni/index.js
CHANGED
|
@@ -31,3 +31,4 @@ export { getLPPairInfo, batchGetLPPairInfo, getPairAddress, addLiquidityETHForSu
|
|
|
31
31
|
// 快捷导出 - IRO (Initial Rights Offering)
|
|
32
32
|
// ============================================================================
|
|
33
33
|
export { IroFactoryQuery as EniIroFactoryQuery, encodeCreateProjectCall as eniIroEncodeCreateProjectCall, createProject as eniIroCreateProject, parseCreateProjectEvent as eniIroParseCreateProjectEvent, IroTokenQuery as EniIroTokenQuery, subscribe as eniIroSubscribe, pledge as eniIroPledge, batchSubscribe as eniIroBatchSubscribe, batchSubscribeForSubmit as eniIroBatchSubscribeForSubmit, IroPoolQuery as EniIroPoolQuery, poolRemovePledge as eniIroPoolRemovePledge, poolExtract as eniIroPoolExtract, poolTransferAwards as eniIroPoolTransferAwards, batchExtract as eniIroBatchExtract, ENI_IRO_FACTORY_ADDRESS, ENI_IRO_OWNER_ADDRESS, ENI_IRO_SELL_FEE_CONTRACT, ENI_IROSWAP_V2_ROUTER, ENI_IROSWAP_V2_FACTORY, IRO_FACTORY_ABI as ENI_IRO_FACTORY_ABI, IRO_TOKEN_ABI as ENI_IRO_TOKEN_ABI, IRO_POOL_ABI as ENI_IRO_POOL_ABI, CREATE_PROJECT_GAS_LIMIT as ENI_CREATE_PROJECT_GAS_LIMIT, ENI_IRO_PLATFORM_URL, setIroApiBase as setEniIroApiBase, iroApiCreateProject as eniIroApiCreateProject, iroApiUploadImage as eniIroApiUploadImage, getTokenWhiteList as eniIroGetTokenWhiteList, addTokenWhiteListForSubmit as eniIroAddTokenWhiteListForSubmit, batchAddTokenWhiteListForSubmit as eniIroBatchAddTokenWhiteListForSubmit, removeTokenWhiteListForSubmit as eniIroRemoveTokenWhiteListForSubmit, IRO_OWNER_WHITELIST_ABI as ENI_IRO_OWNER_WHITELIST_ABI, } from './platforms/iro/index.js';
|
|
34
|
+
export * from './flat-aliases.js';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* 支持 createAndInitPurchase — 创建代币并可选首次买入
|
|
5
5
|
*/
|
|
6
6
|
import { Wallet, JsonRpcProvider } from 'ethers';
|
|
7
|
-
import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL, NATIVE_TRANSFER_GAS_LIMIT
|
|
7
|
+
import { ENI_CHAIN_ID, ENI_RPC_URL, DAOAAS_PORTAL, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
|
|
8
8
|
import { encodeCreateCall } from './portal.js';
|
|
9
9
|
import { buildProfitTransfer } from './portal-direct.js';
|
|
10
10
|
import { calculateProfitAmount, getProfitRateBps, getProfitRecipient } from '../../../../shared/constants/profit.js';
|
|
@@ -15,7 +15,7 @@ const NORMAL_PROFIT_BPS = getProfitRateBps('normal');
|
|
|
15
15
|
*/
|
|
16
16
|
export function generateSalt(_deployer, _name, _symbol) {
|
|
17
17
|
const timestamp = BigInt(Date.now());
|
|
18
|
-
const random = BigInt(Math.floor(Math.random() *
|
|
18
|
+
const random = BigInt(Math.floor(Math.random() * 1_000_000));
|
|
19
19
|
return timestamp * 1000000n + random;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
@@ -8,6 +8,6 @@ export type { DaoaasTokenState, DaoaasBuyParams, DaoaasSellParams, DaoaasCreateP
|
|
|
8
8
|
export { DaoaasTokenStatus } from './types.js';
|
|
9
9
|
export { DaoaasPortalQuery, createPortalQuery, encodeBuyCall, encodeSellCall, encodeCreateCall, encodeApproveCall, encodeTransferCall, applySlippage, formatEgas, parseEgas, type PortalQueryConfig, } from './portal.js';
|
|
10
10
|
export { directBuy, directSell, directBatchBuy, directBatchSell, directQuickSwap, directBuyForSubmit, directSellForSubmit, directBatchBuyForSubmit, directBatchSellForSubmit, directQuickSwapForSubmit, buildProfitTransfer, } from './portal-direct.js';
|
|
11
|
-
export { createToken, createTokenForSubmit, generateSalt
|
|
12
|
-
export { getGraduationInfo, batchGetGraduationInfo, type GraduationInfo
|
|
13
|
-
export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch, type DaoaasTokenMeta
|
|
11
|
+
export { createToken, createTokenForSubmit, generateSalt } from './create.js';
|
|
12
|
+
export { getGraduationInfo, batchGetGraduationInfo, type GraduationInfo } from './graduation.js';
|
|
13
|
+
export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch, type DaoaasTokenMeta } from './meta.js';
|
|
@@ -16,12 +16,12 @@ export { directBuy, directSell, directBatchBuy, directBatchSell, directQuickSwap
|
|
|
16
16
|
// ============================================================================
|
|
17
17
|
// 代币创建
|
|
18
18
|
// ============================================================================
|
|
19
|
-
export { createToken, createTokenForSubmit, generateSalt
|
|
19
|
+
export { createToken, createTokenForSubmit, generateSalt } from './create.js';
|
|
20
20
|
// ============================================================================
|
|
21
21
|
// 毕业状态
|
|
22
22
|
// ============================================================================
|
|
23
|
-
export { getGraduationInfo, batchGetGraduationInfo
|
|
23
|
+
export { getGraduationInfo, batchGetGraduationInfo } from './graduation.js';
|
|
24
24
|
// ============================================================================
|
|
25
25
|
// 代币元数据
|
|
26
26
|
// ============================================================================
|
|
27
|
-
export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch
|
|
27
|
+
export { getTokenMeta, getFairLaunchTokenMeta, getTokenMetasBatch } from './meta.js';
|