four-flap-meme-sdk 2.2.19 → 3.0.0
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/dist/{shared/abis → abis}/common.d.ts +1 -1
- package/dist/{shared/abis → abis}/common.js +75 -91
- package/dist/abis/contracts/TaxToken.json +969 -0
- package/dist/abis/contracts/TokenManager2.json +136 -0
- package/dist/{shared/abis → abis/contracts}/index.d.ts +0 -1
- package/dist/{shared/abis → abis/contracts}/index.js +0 -2
- package/dist/abis/flap/index.d.ts +5 -0
- package/dist/abis/flap/index.js +5 -0
- package/dist/abis/flap/portal-eip7702.d.ts +4 -0
- package/dist/abis/flap/portal-eip7702.js +39 -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-merkle.d.ts +4 -0
- package/dist/abis/flap/portal-merkle.js +25 -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 +6 -0
- package/dist/abis/index.js +9 -0
- package/dist/bundle/config-helpers.d.ts +37 -0
- package/dist/bundle/config-helpers.js +58 -0
- package/dist/bundle/errors.d.ts +50 -0
- package/dist/bundle/errors.js +38 -0
- package/dist/bundle/four-meme/approve-tokenmanager.d.ts +7 -0
- package/dist/bundle/four-meme/approve-tokenmanager.js +99 -0
- package/dist/bundle/four-meme/core-helpers.d.ts +8 -0
- package/dist/bundle/four-meme/core-helpers.js +41 -0
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.d.ts +1 -1
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/core.js +74 -150
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.d.ts +1 -1
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/pancake-proxy.js +85 -92
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.d.ts +1 -1
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/private.js +48 -59
- package/dist/bundle/four-meme/sign-context-helpers.d.ts +2 -0
- package/dist/bundle/four-meme/sign-context-helpers.js +2 -0
- package/dist/bundle/four-meme/swap-buy-first.d.ts +8 -0
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-buy-first.js +56 -108
- package/dist/bundle/four-meme/swap-hop-helpers.d.ts +6 -0
- package/dist/bundle/four-meme/swap-hop-helpers.js +63 -0
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.js +4 -4
- package/dist/bundle/four-meme/swap-sign-helpers.d.ts +28 -0
- package/dist/bundle/four-meme/swap-sign-helpers.js +105 -0
- package/dist/bundle/four-meme/swap.d.ts +17 -0
- package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap.js +84 -345
- package/dist/{contracts/tm-bundle-merkle/swap-buy-first.d.ts → bundle/four-meme/types/buy-first.d.ts} +11 -18
- package/dist/bundle/four-meme/types/core-flow.d.ts +63 -0
- package/dist/bundle/four-meme/types/core-flow.js +1 -0
- package/dist/{contracts/tm-bundle-merkle/types.d.ts → bundle/four-meme/types/index.d.ts} +130 -6
- package/dist/bundle/four-meme/types/index.js +1 -0
- package/dist/bundle/four-meme/types/swap-internal.d.ts +19 -0
- package/dist/bundle/four-meme/types/swap-internal.js +1 -0
- package/dist/bundle/four-meme/types.d.ts +1 -0
- package/dist/bundle/four-meme/utils-disperse.d.ts +7 -0
- package/dist/bundle/four-meme/utils-disperse.js +396 -0
- package/dist/bundle/four-meme/utils-pairwise.d.ts +8 -0
- package/dist/bundle/four-meme/utils-pairwise.js +328 -0
- package/dist/bundle/four-meme/utils-sweep.d.ts +8 -0
- package/dist/bundle/four-meme/utils-sweep.js +744 -0
- package/dist/bundle/index.d.ts +8 -0
- package/dist/bundle/index.js +8 -0
- package/dist/bundle/internal.d.ts +16 -0
- package/dist/bundle/internal.js +160 -0
- package/dist/bundle/sign-context-helpers.d.ts +26 -0
- package/dist/bundle/sign-context-helpers.js +63 -0
- package/dist/{contracts/tm-bundle-merkle → bundle}/submit.d.ts +6 -27
- package/dist/{contracts/tm-bundle-merkle → bundle}/submit.js +116 -313
- package/dist/bundle/types/index.d.ts +8 -0
- package/dist/bundle/types/index.js +1 -0
- package/dist/bundle/types.d.ts +1 -0
- package/dist/bundle/types.js +1 -0
- package/dist/chains/bsc/constants.js +1 -1
- 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 +155 -0
- package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +80 -0
- package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
- package/dist/chains/bsc/pancake/bundle-buy-first.js +99 -214
- 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/constants.js +1 -1
- 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 +5 -2
- package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
- package/dist/chains/eni/batch-router/transfer.js +57 -27
- 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 +2 -2
- 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 +3 -3
- 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 +29 -45
- package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
- package/dist/chains/eni/platforms/dswap/liquidity.js +59 -27
- package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
- 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 +88 -47
- package/dist/chains/eni/platforms/fair-launch/pool.js +5 -2
- package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
- package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
- package/dist/chains/eni/platforms/iro/constants.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 +108 -32
- 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 +287 -0
- package/dist/chains/index.d.ts +13 -0
- package/dist/chains/index.js +13 -0
- package/dist/chains/monad/constants.js +1 -1
- package/dist/chains/xlayer/constants.d.ts +5 -0
- package/dist/chains/xlayer/constants.js +1 -1
- 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 +104 -74
- package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
- package/dist/chains/xlayer/eip7702/bundle-sell.js +30 -112
- package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
- package/dist/chains/xlayer/eip7702/bundle-swap.js +52 -246
- package/dist/chains/xlayer/eip7702/constants.d.ts +11 -26
- package/dist/chains/xlayer/eip7702/constants.js +15 -68
- 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 +64 -308
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
- package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +58 -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.d.ts +1 -1
- package/dist/chains/xlayer/eoa/constants.js +2 -16
- package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
- package/dist/chains/xlayer/eoa/dex-helpers.js +7 -37
- 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 +5 -4
- 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/core/amount/split-by-weight.d.ts +5 -0
- package/dist/core/amount/split-by-weight.js +35 -0
- package/dist/{shared → core}/clients/blockrazor.d.ts +4 -8
- package/dist/{shared → core}/clients/blockrazor.js +43 -35
- package/dist/{shared → core}/clients/club48.d.ts +2 -2
- package/dist/{shared → core}/clients/club48.js +36 -30
- package/dist/{shared → core}/clients/emitservice.js +2 -0
- package/dist/{shared → core}/clients/four.d.ts +21 -6
- package/dist/{shared → core}/clients/four.js +29 -24
- package/dist/core/clients/index.d.ts +8 -0
- package/dist/core/clients/index.js +8 -0
- package/dist/{shared → core}/clients/merkle.d.ts +4 -3
- package/dist/{shared → core}/clients/merkle.js +30 -47
- package/dist/{shared → core}/constants/addresses.d.ts +27 -1
- package/dist/{shared → core}/constants/addresses.js +39 -2
- package/dist/{shared → core}/constants/chains.d.ts +1 -1
- package/dist/{shared → core}/constants/chains.js +1 -1
- package/dist/{shared → core}/constants/gas.d.ts +1 -1
- package/dist/{shared → core}/constants/gas.js +2 -6
- package/dist/{shared → core}/constants/index.d.ts +5 -2
- package/dist/{shared → core}/constants/index.js +3 -2
- package/dist/core/constants/quote.d.ts +30 -0
- package/dist/core/constants/quote.js +37 -0
- package/dist/core/dex/v3-path.d.ts +6 -0
- package/dist/core/dex/v3-path.js +35 -0
- package/dist/core/erc20/decimals.d.ts +7 -0
- package/dist/core/erc20/decimals.js +24 -0
- package/dist/{utils → core}/erc20.d.ts +7 -89
- package/dist/{utils → core}/erc20.js +99 -130
- package/dist/core/foundation.d.ts +15 -0
- package/dist/core/foundation.js +14 -0
- package/dist/core/gas/bundle-gas.d.ts +49 -0
- package/dist/core/gas/bundle-gas.js +93 -0
- package/dist/core/gas/profit-hop.d.ts +20 -0
- package/dist/core/gas/profit-hop.js +72 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.js +5 -0
- package/dist/core/legacy-types/errors.d.ts +27 -0
- package/dist/core/legacy-types/errors.js +34 -0
- package/dist/core/nonce/nonce-manager.d.ts +19 -0
- package/dist/core/nonce/nonce-manager.js +217 -0
- package/dist/core/normalize-unknown.d.ts +9 -0
- package/dist/core/normalize-unknown.js +29 -0
- package/dist/core/sdk-logger.d.ts +13 -0
- package/dist/core/sdk-logger.js +12 -0
- package/dist/core/shared-abis/common.d.ts +4 -0
- package/dist/core/shared-abis/common.js +4 -0
- package/dist/core/shared-abis/index.d.ts +5 -0
- package/dist/core/shared-abis/index.js +5 -0
- package/dist/core/tx/build-request.d.ts +17 -0
- package/dist/core/tx/build-request.js +25 -0
- package/dist/core/tx/sign-batch.d.ts +5 -0
- package/dist/core/tx/sign-batch.js +26 -0
- package/dist/core/tx/wallet-sign-patch.d.ts +1 -0
- package/dist/core/tx/wallet-sign-patch.js +18 -0
- package/dist/core/types/airdrop-sweep.d.ts +79 -0
- package/dist/core/types/airdrop-sweep.js +1 -0
- package/dist/core/types/erc20.d.ts +65 -0
- package/dist/core/types/erc20.js +1 -0
- package/dist/core/types/holders-maker.d.ts +64 -0
- package/dist/core/types/holders-maker.js +1 -0
- package/dist/core/types/index.d.ts +7 -0
- package/dist/core/types/index.js +1 -0
- package/dist/{utils → core/types}/lp-inspect.d.ts +4 -52
- package/dist/core/types/lp-inspect.js +1 -0
- package/dist/core/types/multicall.d.ts +5 -0
- package/dist/core/types/multicall.js +1 -0
- package/dist/core/types/private-sale.d.ts +35 -0
- package/dist/core/types/private-sale.js +1 -0
- package/dist/core/types/quote-helpers.d.ts +17 -0
- package/dist/core/types/quote-helpers.js +1 -0
- package/dist/core/types-erc20.d.ts +1 -0
- package/dist/core/types-erc20.js +1 -0
- package/dist/core/wallet/generate.d.ts +5 -0
- package/dist/core/wallet/generate.js +8 -0
- package/dist/domains/dex/direct-router-helpers.d.ts +269 -0
- package/dist/domains/dex/direct-router-helpers.js +536 -0
- package/dist/domains/dex/direct-router.d.ts +28 -0
- package/dist/{dex → domains/dex}/direct-router.js +246 -674
- package/dist/domains/dex/types.d.ts +81 -0
- package/dist/domains/dex/types.js +1 -0
- package/dist/{shared → domains}/flap/abi.js +1 -1
- package/dist/{shared → domains}/flap/constants.d.ts +1 -2
- package/dist/{shared → domains}/flap/constants.js +3 -4
- package/dist/{shared → domains}/flap/curve.js +3 -0
- package/dist/{shared → domains}/flap/errors.d.ts +1 -4
- package/dist/{shared → domains}/flap/errors.js +20 -1
- package/dist/domains/flap/index.d.ts +7 -0
- package/dist/domains/flap/index.js +5 -0
- package/dist/{shared → domains}/flap/meta.d.ts +22 -18
- package/dist/{shared → domains}/flap/meta.js +32 -24
- package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +4 -5
- package/dist/{shared/flap/index.js → domains/flap/module.js} +4 -5
- package/dist/{shared → domains}/flap/permit.js +10 -3
- package/dist/{shared → domains}/flap/pinata.d.ts +22 -6
- package/dist/{shared → domains}/flap/pinata.js +21 -26
- package/dist/domains/flap/portal-bundle-merkle/config.d.ts +10 -0
- package/dist/domains/flap/portal-bundle-merkle/config.js +13 -0
- package/dist/domains/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
- package/dist/domains/flap/portal-bundle-merkle/core-helpers.js +83 -0
- package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -4
- package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +168 -175
- package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +17 -4
- package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +97 -118
- package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +105 -123
- package/dist/domains/flap/portal-bundle-merkle/index.d.ts +18 -0
- package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +4 -7
- package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +73 -70
- package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +63 -116
- package/dist/domains/flap/portal-bundle-merkle/swap-batch.d.ts +8 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-batch.js +227 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-buy-first.d.ts +2 -0
- package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +69 -288
- package/dist/domains/flap/portal-bundle-merkle/swap-cross.d.ts +9 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-cross.js +139 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-helpers.js +259 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-planning.d.ts +70 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-planning.js +182 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.d.ts +16 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-quick-batch.js +327 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-single.d.ts +2 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-single.js +184 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-types.d.ts +101 -0
- package/dist/domains/flap/portal-bundle-merkle/swap-types.js +1 -0
- package/dist/domains/flap/portal-bundle-merkle/swap.d.ts +8 -0
- package/dist/domains/flap/portal-bundle-merkle/swap.js +7 -0
- package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +88 -12
- package/dist/domains/flap/portal-bundle-merkle/types.js +1 -0
- package/dist/domains/flap/portal-bundle-merkle/utils.d.ts +10 -0
- package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +145 -265
- package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
- package/dist/{shared → domains}/flap/portal-bundle.js +84 -79
- package/dist/domains/flap/portal-create-token.d.ts +81 -0
- package/dist/domains/flap/portal-create-token.js +255 -0
- package/dist/{shared → domains}/flap/portal.d.ts +1 -2
- package/dist/{shared → domains}/flap/portal.js +36 -28
- package/dist/{shared → domains}/flap/vanity.d.ts +6 -6
- package/dist/{shared → domains}/flap/vanity.js +15 -21
- package/dist/{shared → domains}/flap/vault.d.ts +25 -93
- package/dist/{shared → domains}/flap/vault.js +77 -127
- package/dist/{flows → domains/flows}/create.d.ts +2 -1
- package/dist/{flows → domains/flows}/create.js +8 -8
- package/dist/domains/flows/index.d.ts +9 -0
- package/dist/domains/flows/index.js +9 -0
- package/dist/{contracts → domains/four/contracts}/helper3.d.ts +20 -5
- package/dist/{contracts → domains/four/contracts}/helper3.js +56 -20
- package/dist/domains/four/contracts/tm-bundle-helpers.d.ts +88 -0
- package/dist/domains/four/contracts/tm-bundle-helpers.js +73 -0
- package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +4 -52
- package/dist/{contracts → domains/four/contracts}/tm-bundle.js +122 -189
- package/dist/{contracts → domains/four/contracts}/tm.d.ts +10 -8
- package/dist/{contracts → domains/four/contracts}/tm.js +39 -35
- package/dist/{contracts → domains/four/contracts}/tm1.js +9 -4
- package/dist/{contracts → domains/four/contracts}/tm2.js +10 -5
- package/dist/domains/four/index.d.ts +7 -0
- package/dist/domains/four/index.js +7 -0
- package/dist/{shared → domains}/four/tax-token.d.ts +1 -1
- package/dist/{shared → domains}/four/tax-token.js +31 -10
- package/dist/domains/holders/holders-maker-helpers.d.ts +9 -0
- package/dist/domains/holders/holders-maker-helpers.js +9 -0
- package/dist/domains/holders/holders-maker.d.ts +18 -0
- package/dist/domains/holders/holders-maker.js +324 -0
- package/dist/domains/holders/index.d.ts +1 -0
- package/dist/domains/holders/index.js +1 -0
- package/dist/domains/holders/internal/addresses.d.ts +12 -0
- package/dist/domains/holders/internal/addresses.js +15 -0
- package/dist/domains/holders/internal/buy-tx.d.ts +44 -0
- package/dist/domains/holders/internal/buy-tx.js +278 -0
- package/dist/domains/holders/internal/constants.d.ts +6 -0
- package/dist/domains/holders/internal/constants.js +7 -0
- package/dist/domains/holders/internal/disperse.d.ts +18 -0
- package/dist/domains/holders/internal/disperse.js +90 -0
- package/dist/domains/holders/internal/routing.d.ts +4 -0
- package/dist/domains/holders/internal/routing.js +45 -0
- package/dist/domains/holders/internal/transfer-tx.d.ts +4 -0
- package/dist/domains/holders/internal/transfer-tx.js +67 -0
- package/dist/domains/holders/types.d.ts +1 -0
- package/dist/domains/holders/types.js +1 -0
- package/dist/domains/lp-inspect/index.d.ts +1 -0
- package/dist/domains/lp-inspect/index.js +1 -0
- package/dist/domains/lp-inspect/lp-inspect-helpers.d.ts +9 -0
- package/dist/domains/lp-inspect/lp-inspect-helpers.js +109 -0
- package/dist/domains/lp-inspect/lp-inspect.d.ts +40 -0
- package/dist/{utils → domains/lp-inspect}/lp-inspect.js +78 -293
- package/dist/domains/lp-inspect/types.d.ts +1 -0
- package/dist/domains/lp-inspect/types.js +1 -0
- package/dist/domains/merkle/index.d.ts +12 -0
- package/dist/domains/merkle/index.js +11 -0
- package/dist/domains/private-sale/index.d.ts +1 -0
- package/dist/domains/private-sale/index.js +1 -0
- package/dist/domains/private-sale/private-sale.d.ts +34 -0
- package/dist/{utils → domains/private-sale}/private-sale.js +5 -16
- package/dist/domains/private-sale/types.d.ts +1 -0
- package/dist/domains/private-sale/types.js +1 -0
- package/dist/domains/quote/index.d.ts +1 -0
- package/dist/domains/quote/index.js +1 -0
- package/dist/{utils → domains/quote}/quote-helpers.d.ts +4 -45
- package/dist/{utils → domains/quote}/quote-helpers.js +17 -74
- package/dist/domains/quote/types.d.ts +1 -0
- package/dist/domains/quote/types.js +1 -0
- package/dist/domains/vanity/index.d.ts +5 -0
- package/dist/domains/vanity/index.js +5 -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/index.d.ts +17 -88
- package/dist/index.js +17 -218
- 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/errors.d.ts +12 -1
- package/dist/utils/errors.js +60 -1
- package/dist/utils/hop-chains.d.ts +35 -0
- package/dist/utils/hop-chains.js +215 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/mpcExclusive.d.ts +2 -5
- package/dist/utils/mpcExclusive.js +4 -3
- package/dist/utils/provider-factory.d.ts +4 -0
- package/dist/utils/provider-factory.js +10 -0
- package/dist/utils/stealth-transfer.d.ts +2 -28
- package/dist/utils/stealth-transfer.js +41 -21
- package/dist/utils/swap-helpers.d.ts +2 -15
- package/dist/utils/swap-helpers.js +7 -12
- 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/errors.d.ts +1 -0
- package/dist/utils/types/errors.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/mpc-exclusive.d.ts +5 -0
- package/dist/utils/types/mpc-exclusive.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 +4 -25
- package/dist/utils/wallet.js +27 -22
- package/package.json +96 -2
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -26
- package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -113
- package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -70
- package/dist/contracts/tm-bundle-merkle/config.js +0 -114
- package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
- package/dist/contracts/tm-bundle-merkle/index.js +0 -29
- package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -48
- package/dist/contracts/tm-bundle-merkle/internal.js +0 -240
- package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -146
- package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -20
- package/dist/contracts/tm-bundle-merkle/utils.js +0 -1503
- package/dist/dex/direct-router.d.ts +0 -150
- package/dist/shared/abis/TaxToken.json +0 -105
- package/dist/shared/abis/TokenManager2.json +0 -60
- package/dist/shared/flap/graduated-dex.d.ts +0 -1
- package/dist/shared/flap/graduated-dex.js +0 -1
- package/dist/shared/flap/launch-v6.d.ts +0 -132
- package/dist/shared/flap/launch-v6.js +0 -137
- package/dist/shared/flap/portal-bundle-merkle/config.d.ts +0 -79
- package/dist/shared/flap/portal-bundle-merkle/config.js +0 -133
- package/dist/shared/flap/portal-bundle-merkle/index.d.ts +0 -14
- package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -65
- package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +0 -201
- package/dist/shared/flap/portal-bundle-merkle/swap.js +0 -1359
- package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +0 -89
- package/dist/shared/flap/portal-create-token.d.ts +0 -63
- package/dist/shared/flap/portal-create-token.js +0 -258
- package/dist/shared/four/index.d.ts +0 -7
- package/dist/shared/four/index.js +0 -22
- package/dist/shared/index.d.ts +0 -10
- package/dist/shared/index.js +0 -10
- package/dist/utils/holders-maker.d.ts +0 -154
- package/dist/utils/holders-maker.js +0 -945
- package/dist/utils/pcs-infinity-cl.d.ts +0 -65
- package/dist/utils/pcs-infinity-cl.js +0 -426
- package/dist/utils/private-sale.d.ts +0 -90
- /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
- /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
- /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/swap-internal.d.ts +0 -0
- /package/dist/{shared/flap/portal-bundle-merkle/types.js → bundle/four-meme/types/buy-first.js} +0 -0
- /package/dist/{contracts/tm-bundle-merkle → bundle/four-meme}/types.js +0 -0
- /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
- /package/dist/{shared → core}/constants/profit.d.ts +0 -0
- /package/dist/{shared → core}/constants/profit.js +0 -0
- /package/dist/{dex → domains/dex}/index.d.ts +0 -0
- /package/dist/{dex → domains/dex}/index.js +0 -0
- /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
- /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
- /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
- /package/dist/{shared → domains}/flap/ipfs.js +0 -0
- /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
- /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
- /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
- /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
- /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
- /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
|
@@ -7,32 +7,65 @@
|
|
|
7
7
|
import { Contract, Interface, Wallet, JsonRpcProvider } from 'ethers';
|
|
8
8
|
import { ENI_CHAIN_ID, ENI_RPC_URL, NATIVE_TRANSFER_GAS_LIMIT } from '../../constants.js';
|
|
9
9
|
import { IRO_TOKEN_ABI, SUBSCRIBE_GAS_LIMIT } from './constants.js';
|
|
10
|
-
import { getProfitRecipient } from '../../../../
|
|
10
|
+
import { getProfitRecipient } from '../../../../core/constants/profit.js';
|
|
11
11
|
const tokenIface = new Interface(IRO_TOKEN_ABI);
|
|
12
12
|
// ============================================================================
|
|
13
13
|
// 查询
|
|
14
14
|
// ============================================================================
|
|
15
15
|
export class IroTokenQuery {
|
|
16
|
+
provider;
|
|
17
|
+
token;
|
|
18
|
+
tokenAddress;
|
|
16
19
|
constructor(tokenAddress, rpcUrl, chainId) {
|
|
17
20
|
this.tokenAddress = tokenAddress;
|
|
18
21
|
this.provider = new JsonRpcProvider(rpcUrl ?? ENI_RPC_URL, chainId ?? ENI_CHAIN_ID, { staticNetwork: true });
|
|
19
22
|
this.token = new Contract(tokenAddress, IRO_TOKEN_ABI, this.provider);
|
|
20
23
|
}
|
|
21
|
-
async name() {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
async
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
async
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
async
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
async
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
async name() {
|
|
25
|
+
return this.token.name();
|
|
26
|
+
}
|
|
27
|
+
async symbol() {
|
|
28
|
+
return this.token.symbol();
|
|
29
|
+
}
|
|
30
|
+
async decimals() {
|
|
31
|
+
return Number(await this.token.decimals());
|
|
32
|
+
}
|
|
33
|
+
async totalSupply() {
|
|
34
|
+
return this.token.totalSupply();
|
|
35
|
+
}
|
|
36
|
+
async balanceOf(account) {
|
|
37
|
+
return this.token.balanceOf(account);
|
|
38
|
+
}
|
|
39
|
+
async allowance(owner, spender) {
|
|
40
|
+
return this.token.allowance(owner, spender);
|
|
41
|
+
}
|
|
42
|
+
async price() {
|
|
43
|
+
return this.token.price();
|
|
44
|
+
}
|
|
45
|
+
async creator() {
|
|
46
|
+
return this.token.creator();
|
|
47
|
+
}
|
|
48
|
+
async isOpen() {
|
|
49
|
+
return this.token.isOpen();
|
|
50
|
+
}
|
|
51
|
+
async isWhitelisted() {
|
|
52
|
+
return this.token.isWhitelisted();
|
|
53
|
+
}
|
|
54
|
+
async isWXOC() {
|
|
55
|
+
return this.token.isWXOC();
|
|
56
|
+
}
|
|
57
|
+
async tradingLimit() {
|
|
58
|
+
return this.token.tradingLimit();
|
|
59
|
+
}
|
|
60
|
+
async totalCreatorFee() {
|
|
61
|
+
return this.token.totalCreatorFee();
|
|
62
|
+
}
|
|
63
|
+
async pool() {
|
|
64
|
+
return this.token.POOL();
|
|
65
|
+
}
|
|
66
|
+
async tka() {
|
|
67
|
+
return this.token.TKA();
|
|
68
|
+
}
|
|
36
69
|
async getTokenPrice() {
|
|
37
70
|
const raw = await this.token.getTokenPrice();
|
|
38
71
|
return {
|
|
@@ -46,16 +79,32 @@ export class IroTokenQuery {
|
|
|
46
79
|
}
|
|
47
80
|
async getTokenInfo() {
|
|
48
81
|
const [name, symbol, decimals, totalSupply, poolAddress, isOpen, priceVal, creatorAddr, tkaAddr] = await Promise.all([
|
|
49
|
-
this.name(),
|
|
50
|
-
this.
|
|
82
|
+
this.name(),
|
|
83
|
+
this.symbol(),
|
|
84
|
+
this.decimals(),
|
|
85
|
+
this.totalSupply(),
|
|
86
|
+
this.pool(),
|
|
87
|
+
this.isOpen(),
|
|
88
|
+
this.price(),
|
|
89
|
+
this.creator(),
|
|
90
|
+
this.tka(),
|
|
51
91
|
]);
|
|
52
92
|
return {
|
|
53
|
-
name,
|
|
93
|
+
name,
|
|
94
|
+
symbol,
|
|
95
|
+
decimals,
|
|
96
|
+
totalSupply,
|
|
54
97
|
tokenAddress: this.tokenAddress,
|
|
55
|
-
poolAddress,
|
|
98
|
+
poolAddress,
|
|
99
|
+
isOpen,
|
|
100
|
+
price: priceVal,
|
|
101
|
+
creator: creatorAddr,
|
|
102
|
+
tka: tkaAddr,
|
|
56
103
|
};
|
|
57
104
|
}
|
|
58
|
-
get providerInstance() {
|
|
105
|
+
get providerInstance() {
|
|
106
|
+
return this.provider;
|
|
107
|
+
}
|
|
59
108
|
}
|
|
60
109
|
// ============================================================================
|
|
61
110
|
// 写入操作 — EIP-1559
|
|
@@ -70,8 +119,15 @@ export async function subscribe(params) {
|
|
|
70
119
|
const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
71
120
|
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
|
|
72
121
|
const signedTx = await wallet.signTransaction({
|
|
73
|
-
to: tokenAddress,
|
|
74
|
-
|
|
122
|
+
to: tokenAddress,
|
|
123
|
+
data: calldata,
|
|
124
|
+
value: value ?? 0n,
|
|
125
|
+
nonce,
|
|
126
|
+
chainId,
|
|
127
|
+
type: 2,
|
|
128
|
+
maxFeePerGas,
|
|
129
|
+
maxPriorityFeePerGas,
|
|
130
|
+
gasLimit: subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT,
|
|
75
131
|
});
|
|
76
132
|
return { signedTx, from: wallet.address, nonce };
|
|
77
133
|
}
|
|
@@ -85,8 +141,15 @@ export async function pledge(params) {
|
|
|
85
141
|
const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
86
142
|
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
|
|
87
143
|
const signedTx = await wallet.signTransaction({
|
|
88
|
-
to: tokenAddress,
|
|
89
|
-
|
|
144
|
+
to: tokenAddress,
|
|
145
|
+
data: calldata,
|
|
146
|
+
value: value ?? 0n,
|
|
147
|
+
nonce,
|
|
148
|
+
chainId,
|
|
149
|
+
type: 2,
|
|
150
|
+
maxFeePerGas,
|
|
151
|
+
maxPriorityFeePerGas,
|
|
152
|
+
gasLimit: subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT,
|
|
90
153
|
});
|
|
91
154
|
return { signedTx, from: wallet.address, nonce };
|
|
92
155
|
}
|
|
@@ -99,8 +162,14 @@ export async function batchSubscribe(params) {
|
|
|
99
162
|
const results = [];
|
|
100
163
|
for (const sub of subscribers) {
|
|
101
164
|
const result = await subscribe({
|
|
102
|
-
rpcUrl,
|
|
103
|
-
|
|
165
|
+
rpcUrl,
|
|
166
|
+
chainId,
|
|
167
|
+
privateKey: sub.privateKey,
|
|
168
|
+
tokenAddress,
|
|
169
|
+
user: sub.user,
|
|
170
|
+
amount: sub.amount,
|
|
171
|
+
value: sub.value,
|
|
172
|
+
gasPrice: resolvedGasPrice,
|
|
104
173
|
});
|
|
105
174
|
signedTransactions.push(result.signedTx);
|
|
106
175
|
results.push(result);
|
|
@@ -108,7 +177,7 @@ export async function batchSubscribe(params) {
|
|
|
108
177
|
return { signedTransactions, results };
|
|
109
178
|
}
|
|
110
179
|
export async function batchSubscribeForSubmit(params) {
|
|
111
|
-
const { rpcUrl = ENI_RPC_URL, chainId = ENI_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit } = params;
|
|
180
|
+
const { rpcUrl = ENI_RPC_URL, chainId = ENI_CHAIN_ID, tokenAddress, subscribers, approvalTxs = [], gasPrice, subscribeGasLimit, } = params;
|
|
112
181
|
if (subscribers.length === 0) {
|
|
113
182
|
return { signedTransactions: [...approvalTxs], subscribeResults: [], profitAmount: 0n };
|
|
114
183
|
}
|
|
@@ -117,16 +186,23 @@ export async function batchSubscribeForSubmit(params) {
|
|
|
117
186
|
const maxFeePerGas = gasPrice ?? feeData.maxFeePerGas ?? feeData.gasPrice ?? 1000000000n;
|
|
118
187
|
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? 0n;
|
|
119
188
|
const resolvedGasLimit = subscribeGasLimit ?? SUBSCRIBE_GAS_LIMIT;
|
|
120
|
-
const wallets = subscribers.map(sub => new Wallet(sub.privateKey, provider));
|
|
121
|
-
const nonces = await Promise.all(wallets.map(w => w.getNonce()));
|
|
189
|
+
const wallets = subscribers.map((sub) => new Wallet(sub.privateKey, provider));
|
|
190
|
+
const nonces = await Promise.all(wallets.map((w) => w.getNonce()));
|
|
122
191
|
const subscribeTxs = [];
|
|
123
192
|
const subscribeResults = [];
|
|
124
193
|
for (let i = 0; i < subscribers.length; i++) {
|
|
125
194
|
const sub = subscribers[i];
|
|
126
195
|
const calldata = tokenIface.encodeFunctionData('subscribe', [sub.user, sub.amount]);
|
|
127
196
|
const signedTx = await wallets[i].signTransaction({
|
|
128
|
-
to: tokenAddress,
|
|
129
|
-
|
|
197
|
+
to: tokenAddress,
|
|
198
|
+
data: calldata,
|
|
199
|
+
value: sub.value ?? 0n,
|
|
200
|
+
nonce: nonces[i],
|
|
201
|
+
chainId,
|
|
202
|
+
type: 2,
|
|
203
|
+
maxFeePerGas,
|
|
204
|
+
maxPriorityFeePerGas,
|
|
205
|
+
gasLimit: resolvedGasLimit,
|
|
130
206
|
});
|
|
131
207
|
subscribeTxs.push(signedTx);
|
|
132
208
|
subscribeResults.push({ signedTx, from: wallets[i].address, nonce: nonces[i] });
|
|
@@ -25,7 +25,7 @@ export async function getTokenWhiteList(params) {
|
|
|
25
25
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
26
26
|
const contract = new Contract(params.iroOwnerAddress, IRO_OWNER_WHITELIST_ABI, provider);
|
|
27
27
|
const addresses = await contract.getTokenWhiteList(params.tokenAddress);
|
|
28
|
-
return addresses.map(a => ethers.getAddress(a));
|
|
28
|
+
return addresses.map((a) => ethers.getAddress(a));
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* 添加单个白名单地址 (返回签名交易)
|
|
@@ -34,11 +34,7 @@ export async function addTokenWhiteListForSubmit(params) {
|
|
|
34
34
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
35
35
|
const wallet = new Wallet(params.privateKey, provider);
|
|
36
36
|
const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
|
|
37
|
-
const data = iface.encodeFunctionData('addTokenWhiteList', [
|
|
38
|
-
params.tokenAddress,
|
|
39
|
-
params.addr,
|
|
40
|
-
params.quota,
|
|
41
|
-
]);
|
|
37
|
+
const data = iface.encodeFunctionData('addTokenWhiteList', [params.tokenAddress, params.addr, params.quota]);
|
|
42
38
|
const feeData = await provider.getFeeData();
|
|
43
39
|
const nonce = await provider.getTransactionCount(wallet.address, 'pending');
|
|
44
40
|
const tx = await wallet.signTransaction({
|
|
@@ -59,17 +55,12 @@ export async function addTokenWhiteListForSubmit(params) {
|
|
|
59
55
|
export async function batchAddTokenWhiteListForSubmit(params) {
|
|
60
56
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
61
57
|
const wallet = new Wallet(params.privateKey, provider);
|
|
62
|
-
const tuples = params.entries.map(e => ({ account: e.addr, quota: e.quota }));
|
|
58
|
+
const tuples = params.entries.map((e) => ({ account: e.addr, quota: e.quota }));
|
|
63
59
|
const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
|
|
64
|
-
const data = iface.encodeFunctionData('batchAddTokenWhiteList', [
|
|
65
|
-
params.tokenAddress,
|
|
66
|
-
tuples,
|
|
67
|
-
]);
|
|
60
|
+
const data = iface.encodeFunctionData('batchAddTokenWhiteList', [params.tokenAddress, tuples]);
|
|
68
61
|
const feeData = await provider.getFeeData();
|
|
69
62
|
const nonce = await provider.getTransactionCount(wallet.address, 'pending');
|
|
70
|
-
const gasLimit = params.entries.length > 5
|
|
71
|
-
? BATCH_WHITELIST_GAS_LIMIT * 2n
|
|
72
|
-
: BATCH_WHITELIST_GAS_LIMIT;
|
|
63
|
+
const gasLimit = params.entries.length > 5 ? BATCH_WHITELIST_GAS_LIMIT * 2n : BATCH_WHITELIST_GAS_LIMIT;
|
|
73
64
|
const tx = await wallet.signTransaction({
|
|
74
65
|
to: params.iroOwnerAddress,
|
|
75
66
|
data,
|
|
@@ -89,10 +80,7 @@ export async function removeTokenWhiteListForSubmit(params) {
|
|
|
89
80
|
const provider = new JsonRpcProvider(params.rpcUrl || ENI_RPC, params.chainId || ENI_CHAIN_ID);
|
|
90
81
|
const wallet = new Wallet(params.privateKey, provider);
|
|
91
82
|
const iface = new ethers.Interface(IRO_OWNER_WHITELIST_ABI);
|
|
92
|
-
const data = iface.encodeFunctionData('removeTokenWhiteList', [
|
|
93
|
-
params.tokenAddress,
|
|
94
|
-
params.addr,
|
|
95
|
-
]);
|
|
83
|
+
const data = iface.encodeFunctionData('removeTokenWhiteList', [params.tokenAddress, params.addr]);
|
|
96
84
|
const feeData = await provider.getFeeData();
|
|
97
85
|
const nonce = await provider.getTransactionCount(wallet.address, 'pending');
|
|
98
86
|
const tx = await wallet.signTransaction({
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENI 链交易提交方法
|
|
3
|
+
*
|
|
4
|
+
* 包括快速顺序广播、同块确认等提交策略。
|
|
5
|
+
*/
|
|
6
|
+
export interface EniBundleSubmitConfig {
|
|
7
|
+
rpcUrl: string;
|
|
8
|
+
chainId?: number;
|
|
9
|
+
chainName?: string;
|
|
10
|
+
simulationTimeout?: number;
|
|
11
|
+
blockConfirmTimeout?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface EniTxResult {
|
|
14
|
+
index: number;
|
|
15
|
+
success: boolean;
|
|
16
|
+
txHash?: string;
|
|
17
|
+
error?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface EniBundleSubmitResult {
|
|
20
|
+
code: boolean;
|
|
21
|
+
totalTransactions: number;
|
|
22
|
+
successCount: number;
|
|
23
|
+
failedCount: number;
|
|
24
|
+
txHashes: string[];
|
|
25
|
+
results: EniTxResult[];
|
|
26
|
+
sameBlock: boolean;
|
|
27
|
+
blockNumber?: number;
|
|
28
|
+
blockNumbers?: number[];
|
|
29
|
+
simulationDurationMs?: number;
|
|
30
|
+
broadcastDurationMs?: number;
|
|
31
|
+
errorSummary?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* ENI 快速并行广播:业务交易并行 + 利润交易顺序跟随
|
|
35
|
+
*/
|
|
36
|
+
export declare function submitEniParallelThenProfit(signedTransactions: string[], config: EniBundleSubmitConfig): Promise<EniBundleSubmitResult>;
|
|
37
|
+
/**
|
|
38
|
+
* ENI Bundle 提交:模拟验证 → 快速顺序广播 → 同块确认
|
|
39
|
+
*
|
|
40
|
+
* 复用同一 Provider 快速顺序广播,最小化延迟、最大化同块概率。
|
|
41
|
+
* ENI 出块 ~1.08s,连续 nonce 快速提交同块率极高。
|
|
42
|
+
*/
|
|
43
|
+
export declare function submitBundleToEni(signedTransactions: string[], config: EniBundleSubmitConfig): Promise<EniBundleSubmitResult>;
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENI 链交易提交方法
|
|
3
|
+
*
|
|
4
|
+
* 包括快速顺序广播、同块确认等提交策略。
|
|
5
|
+
*/
|
|
6
|
+
import { ethers } from 'ethers';
|
|
7
|
+
import { getErrorMessageFromUnknown } from '../../core/index.js';
|
|
8
|
+
import { createSignProvider } from '../../bundle/sign-context-helpers.js';
|
|
9
|
+
// ==================== 内部辅助 ====================
|
|
10
|
+
function shouldTreatBroadcastErrorAsMaybeSent(m) {
|
|
11
|
+
return (m.includes('nonce too low') || m.includes('already known') || m.includes('replacement transaction underpriced'));
|
|
12
|
+
}
|
|
13
|
+
async function recoverTxHashIfAlreadySeen(provider, signedTx, errorMessage) {
|
|
14
|
+
if (!shouldTreatBroadcastErrorAsMaybeSent(errorMessage))
|
|
15
|
+
return undefined;
|
|
16
|
+
try {
|
|
17
|
+
const hash = ethers.keccak256(signedTx);
|
|
18
|
+
if (!hash)
|
|
19
|
+
return undefined;
|
|
20
|
+
const tx = await provider.getTransaction(hash);
|
|
21
|
+
return tx ? hash : undefined;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// ==================== 提交方法 ====================
|
|
28
|
+
/**
|
|
29
|
+
* ENI 快速并行广播:业务交易并行 + 利润交易顺序跟随
|
|
30
|
+
*/
|
|
31
|
+
export async function submitEniParallelThenProfit(signedTransactions, config) {
|
|
32
|
+
const totalTransactions = signedTransactions?.length ?? 0;
|
|
33
|
+
const emptyFail = (msg) => ({
|
|
34
|
+
code: false,
|
|
35
|
+
totalTransactions,
|
|
36
|
+
successCount: 0,
|
|
37
|
+
failedCount: totalTransactions,
|
|
38
|
+
txHashes: [],
|
|
39
|
+
results: [],
|
|
40
|
+
sameBlock: false,
|
|
41
|
+
errorSummary: msg,
|
|
42
|
+
});
|
|
43
|
+
if (!signedTransactions || signedTransactions.length === 0)
|
|
44
|
+
return emptyFail('signedTransactions cannot be empty');
|
|
45
|
+
if (!config.rpcUrl)
|
|
46
|
+
return emptyFail('rpcUrl is required');
|
|
47
|
+
const chainId = config.chainId ?? 173;
|
|
48
|
+
const chainName = config.chainName ?? 'ENI';
|
|
49
|
+
const provider = createSignProvider(config.rpcUrl, chainId, chainName);
|
|
50
|
+
// Step 1: 按 from 地址分组,识别独立交易和依赖交易
|
|
51
|
+
const fromCounts = new Map();
|
|
52
|
+
const txMeta = [];
|
|
53
|
+
for (let i = 0; i < signedTransactions.length; i++) {
|
|
54
|
+
const tx = ethers.Transaction.from(signedTransactions[i]);
|
|
55
|
+
const from = tx.from;
|
|
56
|
+
const count = fromCounts.get(from) ?? 0;
|
|
57
|
+
fromCounts.set(from, count + 1);
|
|
58
|
+
txMeta.push({ from, index: i, seqInFrom: count });
|
|
59
|
+
}
|
|
60
|
+
const independentTxs = txMeta.filter((t) => t.seqInFrom === 0);
|
|
61
|
+
const allResults = [];
|
|
62
|
+
const txHashes = [];
|
|
63
|
+
const errors = [];
|
|
64
|
+
// Step 2: 并行广播独立交易
|
|
65
|
+
await Promise.all(independentTxs.map(async ({ index }) => {
|
|
66
|
+
try {
|
|
67
|
+
const txResponse = await provider.broadcastTransaction(signedTransactions[index]);
|
|
68
|
+
allResults[index] = {
|
|
69
|
+
index,
|
|
70
|
+
success: true,
|
|
71
|
+
txHash: txResponse.hash,
|
|
72
|
+
};
|
|
73
|
+
txHashes.push(txResponse.hash);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const errorMessage = getErrorMessageFromUnknown(error);
|
|
77
|
+
const recovered = await recoverTxHashIfAlreadySeen(provider, signedTransactions[index], errorMessage);
|
|
78
|
+
if (recovered) {
|
|
79
|
+
allResults[index] = {
|
|
80
|
+
index,
|
|
81
|
+
success: true,
|
|
82
|
+
txHash: recovered,
|
|
83
|
+
error: errorMessage,
|
|
84
|
+
};
|
|
85
|
+
txHashes.push(recovered);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
allResults[index] = { index, success: false, error: errorMessage };
|
|
89
|
+
errors.push(`独立交易 ${index + 1}: ${errorMessage}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}));
|
|
93
|
+
// Step 3: 逐 from 处理依赖交易(利润尾随)
|
|
94
|
+
const independentFroms = independentTxs.map((t) => t.from);
|
|
95
|
+
const fromDependents = new Map();
|
|
96
|
+
for (const meta of txMeta) {
|
|
97
|
+
if (meta.seqInFrom > 0) {
|
|
98
|
+
const deps = fromDependents.get(meta.from) ?? [];
|
|
99
|
+
deps.push(meta);
|
|
100
|
+
fromDependents.set(meta.from, deps);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
for (const from of independentFroms) {
|
|
104
|
+
const deps = fromDependents.get(from);
|
|
105
|
+
if (!deps || deps.length === 0)
|
|
106
|
+
continue;
|
|
107
|
+
for (const dep of deps) {
|
|
108
|
+
try {
|
|
109
|
+
const txResponse = await provider.broadcastTransaction(signedTransactions[dep.index]);
|
|
110
|
+
allResults[dep.index] = {
|
|
111
|
+
index: dep.index,
|
|
112
|
+
success: true,
|
|
113
|
+
txHash: txResponse.hash,
|
|
114
|
+
};
|
|
115
|
+
txHashes.push(txResponse.hash);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
const errorMessage = getErrorMessageFromUnknown(error);
|
|
119
|
+
const recovered = await recoverTxHashIfAlreadySeen(provider, signedTransactions[dep.index], errorMessage);
|
|
120
|
+
if (recovered) {
|
|
121
|
+
allResults[dep.index] = {
|
|
122
|
+
index: dep.index,
|
|
123
|
+
success: true,
|
|
124
|
+
txHash: recovered,
|
|
125
|
+
error: errorMessage,
|
|
126
|
+
};
|
|
127
|
+
txHashes.push(recovered);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
allResults[dep.index] = {
|
|
131
|
+
index: dep.index,
|
|
132
|
+
success: false,
|
|
133
|
+
error: errorMessage,
|
|
134
|
+
};
|
|
135
|
+
errors.push(`依赖交易 ${dep.index + 1}(${from}): ${errorMessage}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
code: errors.length === 0,
|
|
142
|
+
totalTransactions,
|
|
143
|
+
successCount: txHashes.length,
|
|
144
|
+
failedCount: totalTransactions - txHashes.length,
|
|
145
|
+
txHashes,
|
|
146
|
+
results: allResults.filter(Boolean),
|
|
147
|
+
sameBlock: false,
|
|
148
|
+
errorSummary: errors.length > 0 ? errors.join('; ') : undefined,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* ENI Bundle 提交:模拟验证 → 快速顺序广播 → 同块确认
|
|
153
|
+
*
|
|
154
|
+
* 复用同一 Provider 快速顺序广播,最小化延迟、最大化同块概率。
|
|
155
|
+
* ENI 出块 ~1.08s,连续 nonce 快速提交同块率极高。
|
|
156
|
+
*/
|
|
157
|
+
export async function submitBundleToEni(signedTransactions, config) {
|
|
158
|
+
const totalTransactions = signedTransactions?.length ?? 0;
|
|
159
|
+
const emptyFail = (msg) => ({
|
|
160
|
+
code: false,
|
|
161
|
+
totalTransactions,
|
|
162
|
+
successCount: 0,
|
|
163
|
+
failedCount: totalTransactions,
|
|
164
|
+
txHashes: [],
|
|
165
|
+
results: [],
|
|
166
|
+
sameBlock: false,
|
|
167
|
+
errorSummary: msg,
|
|
168
|
+
});
|
|
169
|
+
if (!signedTransactions || signedTransactions.length === 0)
|
|
170
|
+
return emptyFail('signedTransactions cannot be empty');
|
|
171
|
+
if (!config.rpcUrl)
|
|
172
|
+
return emptyFail('rpcUrl is required');
|
|
173
|
+
const chainId = config.chainId ?? 173;
|
|
174
|
+
const chainName = config.chainName ?? 'ENI';
|
|
175
|
+
const simulationTimeout = config.simulationTimeout ?? 10000;
|
|
176
|
+
const blockConfirmTimeout = config.blockConfirmTimeout ?? 15000;
|
|
177
|
+
const provider = createSignProvider(config.rpcUrl, chainId, chainName);
|
|
178
|
+
// Phase 1: 模拟验证
|
|
179
|
+
const simStart = Date.now();
|
|
180
|
+
const simErrors = [];
|
|
181
|
+
for (let i = 0; i < signedTransactions.length; i++) {
|
|
182
|
+
try {
|
|
183
|
+
const tx = ethers.Transaction.from(signedTransactions[i]);
|
|
184
|
+
await Promise.race([
|
|
185
|
+
provider.call({
|
|
186
|
+
to: tx.to,
|
|
187
|
+
data: tx.data,
|
|
188
|
+
value: tx.value,
|
|
189
|
+
from: tx.from,
|
|
190
|
+
}),
|
|
191
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('simulation timeout')), simulationTimeout)),
|
|
192
|
+
]);
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
const msg = getErrorMessageFromUnknown(e);
|
|
196
|
+
if (msg.includes('simulation timeout')) {
|
|
197
|
+
console.warn(`⚠️ [${chainName}] 交易 ${i + 1} 模拟超时,跳过验证`);
|
|
198
|
+
}
|
|
199
|
+
else if (msg.includes('execution reverted') || msg.includes('CALL_EXCEPTION')) {
|
|
200
|
+
simErrors.push(`交易 ${i + 1} 模拟失败: ${msg.slice(0, 200)}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const simulationDurationMs = Date.now() - simStart;
|
|
205
|
+
if (simErrors.length > 0) {
|
|
206
|
+
return { ...emptyFail(simErrors.join('; ')), simulationDurationMs };
|
|
207
|
+
}
|
|
208
|
+
// Phase 2: 快速顺序广播
|
|
209
|
+
const broadStart = Date.now();
|
|
210
|
+
const results = [];
|
|
211
|
+
const txHashes = [];
|
|
212
|
+
for (let i = 0; i < signedTransactions.length; i++) {
|
|
213
|
+
try {
|
|
214
|
+
const txResponse = await provider.broadcastTransaction(signedTransactions[i]);
|
|
215
|
+
results.push({ index: i, success: true, txHash: txResponse.hash });
|
|
216
|
+
txHashes.push(txResponse.hash);
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
const errorMessage = getErrorMessageFromUnknown(error);
|
|
220
|
+
const recovered = await recoverTxHashIfAlreadySeen(provider, signedTransactions[i], errorMessage);
|
|
221
|
+
if (recovered) {
|
|
222
|
+
results.push({ index: i, success: true, txHash: recovered, error: errorMessage });
|
|
223
|
+
txHashes.push(recovered);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
results.push({ index: i, success: false, error: errorMessage });
|
|
227
|
+
console.error(`❌ [${chainName}] Bundle tx ${i + 1}/${totalTransactions} 失败: ${errorMessage}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const broadcastDurationMs = Date.now() - broadStart;
|
|
232
|
+
const successCount = txHashes.length;
|
|
233
|
+
const failedCount = totalTransactions - successCount;
|
|
234
|
+
if (successCount === 0) {
|
|
235
|
+
return {
|
|
236
|
+
code: false,
|
|
237
|
+
totalTransactions,
|
|
238
|
+
successCount,
|
|
239
|
+
failedCount,
|
|
240
|
+
txHashes,
|
|
241
|
+
results,
|
|
242
|
+
sameBlock: false,
|
|
243
|
+
simulationDurationMs,
|
|
244
|
+
broadcastDurationMs,
|
|
245
|
+
errorSummary: results
|
|
246
|
+
.filter((r) => !r.success)
|
|
247
|
+
.map((r) => r.error)
|
|
248
|
+
.join('; '),
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
// Phase 3: 同块确认
|
|
252
|
+
let sameBlock = false;
|
|
253
|
+
let blockNumber;
|
|
254
|
+
const blockNumbers = [];
|
|
255
|
+
try {
|
|
256
|
+
const receipts = await Promise.all(txHashes.map((hash) => Promise.race([
|
|
257
|
+
provider.waitForTransaction(hash, 1, blockConfirmTimeout),
|
|
258
|
+
new Promise((resolve) => setTimeout(() => resolve(null), blockConfirmTimeout)),
|
|
259
|
+
])));
|
|
260
|
+
for (const receipt of receipts) {
|
|
261
|
+
if (receipt && receipt.blockNumber) {
|
|
262
|
+
blockNumbers.push(receipt.blockNumber);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (blockNumbers.length === txHashes.length && blockNumbers.length > 0) {
|
|
266
|
+
const uniqueBlocks = new Set(blockNumbers);
|
|
267
|
+
sameBlock = uniqueBlocks.size === 1;
|
|
268
|
+
blockNumber = sameBlock ? blockNumbers[0] : undefined;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
console.warn(`⚠️ [${chainName}] Bundle 区块确认超时`);
|
|
273
|
+
}
|
|
274
|
+
return {
|
|
275
|
+
code: true,
|
|
276
|
+
totalTransactions,
|
|
277
|
+
successCount,
|
|
278
|
+
failedCount,
|
|
279
|
+
txHashes,
|
|
280
|
+
results,
|
|
281
|
+
sameBlock,
|
|
282
|
+
blockNumber,
|
|
283
|
+
blockNumbers: blockNumbers.length > 0 ? blockNumbers : undefined,
|
|
284
|
+
simulationDurationMs,
|
|
285
|
+
broadcastDurationMs,
|
|
286
|
+
};
|
|
287
|
+
}
|
package/dist/chains/index.d.ts
CHANGED
|
@@ -7,3 +7,16 @@ export * as bsc from './bsc/index.js';
|
|
|
7
7
|
export * as xlayer from './xlayer/index.js';
|
|
8
8
|
export * as monad from './monad/index.js';
|
|
9
9
|
export * as eni from './eni/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* 与包根 `export * as chains` 一致的命名空间(`chains.bsc` / `chains.eni` …)
|
|
12
|
+
*/
|
|
13
|
+
import * as bscNs from './bsc/index.js';
|
|
14
|
+
import * as xlayerNs from './xlayer/index.js';
|
|
15
|
+
import * as monadNs from './monad/index.js';
|
|
16
|
+
import * as eniNs from './eni/index.js';
|
|
17
|
+
export declare const chains: {
|
|
18
|
+
readonly bsc: typeof bscNs;
|
|
19
|
+
readonly xlayer: typeof xlayerNs;
|
|
20
|
+
readonly monad: typeof monadNs;
|
|
21
|
+
readonly eni: typeof eniNs;
|
|
22
|
+
};
|
package/dist/chains/index.js
CHANGED
|
@@ -11,3 +11,16 @@ export * as xlayer from './xlayer/index.js';
|
|
|
11
11
|
export * as monad from './monad/index.js';
|
|
12
12
|
// ENI 链
|
|
13
13
|
export * as eni from './eni/index.js';
|
|
14
|
+
/**
|
|
15
|
+
* 与包根 `export * as chains` 一致的命名空间(`chains.bsc` / `chains.eni` …)
|
|
16
|
+
*/
|
|
17
|
+
import * as bscNs from './bsc/index.js';
|
|
18
|
+
import * as xlayerNs from './xlayer/index.js';
|
|
19
|
+
import * as monadNs from './monad/index.js';
|
|
20
|
+
import * as eniNs from './eni/index.js';
|
|
21
|
+
export const chains = {
|
|
22
|
+
bsc: bscNs,
|
|
23
|
+
xlayer: xlayerNs,
|
|
24
|
+
monad: monadNs,
|
|
25
|
+
eni: eniNs,
|
|
26
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Monad 链特有常量
|
|
3
3
|
*/
|
|
4
|
-
import { CHAINS, GAS_LIMITS } from '../../
|
|
4
|
+
import { CHAINS, GAS_LIMITS } from '../../core/constants/index.js';
|
|
5
5
|
// ============================================================================
|
|
6
6
|
// 链配置
|
|
7
7
|
// ============================================================================
|
|
@@ -16,9 +16,14 @@ export declare const XLAYER_ADDRESSES: {
|
|
|
16
16
|
readonly FlapPortal: "0xb30D8c4216E1f21F27444D2FfAee3ad577808678";
|
|
17
17
|
readonly FlapTokenImpl: "0x12Dc83157Bf1cfCB8Db5952b3ba5bb56Cc38f8C9";
|
|
18
18
|
readonly PotatoSwapV2Router: "0x881fb2f98c13d521009464e7d1cbf16e1b394e8e";
|
|
19
|
+
readonly PotatoSwapV2Factory: "0x630DB8E822805c82Ca40a54daE02dd5aC31f7fcF";
|
|
19
20
|
readonly PotatoSwapSwapRouter02: "0xB45D0149249488333E3F3f9F359807F4b810C1FC";
|
|
20
21
|
readonly PotatoSwapV3Router: "0xBB069e9465BcabC4F488d21e793BDEf0F2d41D41";
|
|
21
22
|
readonly PotatoSwapV3Factory: "0xa1415fAe79c4B196d087F02b8aD5a622B8A827E5";
|
|
23
|
+
readonly PotatoSwapQuoterV2: "0x5A6f3723346aF54a4D0693bfC1718D64d4915C3e";
|
|
24
|
+
readonly DyorSwapV2Factory: "0x2CcaDb1e437AA9cDc741574bDa154686B1F04C09";
|
|
25
|
+
readonly DyorSwapRouter: "0xfb001fbbace32f09cb6d3c449b935183de53ee96";
|
|
26
|
+
readonly DyorSwapEthBackDividend: "0x2e61b0b4410f6fb941d47205191cbb8963d44bcc";
|
|
22
27
|
readonly EntryPointV06: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789";
|
|
23
28
|
readonly SimpleAccountFactory: "0x9406Cc6185a346906296840746125a0E44976454";
|
|
24
29
|
readonly Multicall3: "0xca11bde05977b3631167028862be2a173976ca11";
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* 通用常量请使用 shared/constants
|
|
5
5
|
* ABI 定义在 xlayer/constants.ts(旧文件,后续迁移)
|
|
6
6
|
*/
|
|
7
|
-
import { CHAINS, ADDRESSES, GAS_LIMITS, GAS_CONFIG } from '../../
|
|
7
|
+
import { CHAINS, ADDRESSES, GAS_LIMITS, GAS_CONFIG } from '../../core/constants/index.js';
|
|
8
8
|
// ============================================================================
|
|
9
9
|
// 链配置(从 shared 导出)
|
|
10
10
|
// ============================================================================
|