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
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { GeneratedWallet } from '../../utils/wallet.js';
|
|
2
|
+
export interface DirectRouterSignConfig {
|
|
3
|
+
rpcUrl: string;
|
|
4
|
+
chainId?: number;
|
|
5
|
+
gasLimit?: number | bigint;
|
|
6
|
+
gasLimitMultiplier?: number;
|
|
7
|
+
gasPrice?: bigint;
|
|
8
|
+
minGasPriceGwei?: number;
|
|
9
|
+
maxGasPriceGwei?: number;
|
|
10
|
+
txType?: 0 | 2;
|
|
11
|
+
/** 是否跳过授权检查 */
|
|
12
|
+
skipApprovalCheck?: boolean;
|
|
13
|
+
/** 滑点(基点),默认 100 = 1% */
|
|
14
|
+
slippageBps?: number;
|
|
15
|
+
/** BlockRazor 贿赂金额(BNB),仅 BSC 链有效,用于提高 bundle 打包优先级 */
|
|
16
|
+
bribeAmount?: number;
|
|
17
|
+
/** ✅ 利润模式:'single'(默认,从最大钱包统一扣)或 'distributed'(每个钱包独立扣) */
|
|
18
|
+
profitMode?: 'single' | 'distributed';
|
|
19
|
+
/** ✅ 是否跳过利润扣除(EOA 普通模式使用) */
|
|
20
|
+
skipProfit?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface DirectV2BuyParams {
|
|
23
|
+
chain: 'BSC' | 'MONAD' | 'XLAYER' | 'ENI';
|
|
24
|
+
privateKeys: string[];
|
|
25
|
+
buyAmounts: string[];
|
|
26
|
+
tokenAddress: string;
|
|
27
|
+
routerAddress: string;
|
|
28
|
+
quoteToken?: string;
|
|
29
|
+
quoteTokenDecimals?: number;
|
|
30
|
+
startNonces?: number[];
|
|
31
|
+
config: DirectRouterSignConfig;
|
|
32
|
+
}
|
|
33
|
+
export interface DirectV2SellParams {
|
|
34
|
+
chain: 'BSC' | 'MONAD' | 'XLAYER' | 'ENI';
|
|
35
|
+
privateKeys: string[];
|
|
36
|
+
sellPercentages?: number[];
|
|
37
|
+
sellAmounts?: string[];
|
|
38
|
+
startNonces?: number[];
|
|
39
|
+
tokenAddress: string;
|
|
40
|
+
tokenDecimals?: number;
|
|
41
|
+
routerAddress: string;
|
|
42
|
+
quoteToken?: string;
|
|
43
|
+
config: DirectRouterSignConfig;
|
|
44
|
+
}
|
|
45
|
+
export interface DirectV3BuyParams {
|
|
46
|
+
chain: 'BSC' | 'MONAD' | 'XLAYER' | 'ENI';
|
|
47
|
+
privateKeys: string[];
|
|
48
|
+
buyAmounts: string[];
|
|
49
|
+
tokenAddress: string;
|
|
50
|
+
routerAddress: string;
|
|
51
|
+
fee: number;
|
|
52
|
+
quoteToken?: string;
|
|
53
|
+
quoteTokenDecimals?: number;
|
|
54
|
+
startNonces?: number[];
|
|
55
|
+
config: DirectRouterSignConfig;
|
|
56
|
+
}
|
|
57
|
+
export interface DirectV3SellParams {
|
|
58
|
+
chain: 'BSC' | 'MONAD' | 'XLAYER' | 'ENI';
|
|
59
|
+
privateKeys: string[];
|
|
60
|
+
sellPercentages?: number[];
|
|
61
|
+
sellAmounts?: string[];
|
|
62
|
+
tokenAddress: string;
|
|
63
|
+
tokenDecimals?: number;
|
|
64
|
+
routerAddress: string;
|
|
65
|
+
fee: number;
|
|
66
|
+
quoteToken?: string;
|
|
67
|
+
startNonces?: number[];
|
|
68
|
+
config: DirectRouterSignConfig;
|
|
69
|
+
}
|
|
70
|
+
export interface DirectRouterResult {
|
|
71
|
+
signedTransactions: string[];
|
|
72
|
+
profitHopWallets?: GeneratedWallet[];
|
|
73
|
+
metadata?: {
|
|
74
|
+
profitMode?: 'single' | 'distributed';
|
|
75
|
+
profitAmount: string;
|
|
76
|
+
profitRecipient: string;
|
|
77
|
+
totalFlow: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export type DexKey = 'PANCAKESWAP' | 'UNISWAP' | 'POTATOSWAP' | 'DYORSWAP' | 'IROSWAP';
|
|
81
|
+
export type RouterVersion = 'v2' | 'v3';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -9,5 +9,5 @@ export const PORTAL_EVENTS_ABI = [
|
|
|
9
9
|
'event FlapTokenTaxSet(address token, uint256 tax)',
|
|
10
10
|
'event FlapTokenCirculatingSupplyChanged(address token, uint256 newSupply)',
|
|
11
11
|
'event LaunchedToDEX(address token, address pool, uint256 amount, uint256 eth)',
|
|
12
|
-
'event TokenExtensionEnabled(address token, bytes32 extensionID, address extensionAddress, uint8 version)'
|
|
12
|
+
'event TokenExtensionEnabled(address token, bytes32 extensionID, address extensionAddress, uint8 version)',
|
|
13
13
|
];
|
|
@@ -31,7 +31,6 @@ export declare const FLAP_TOKEN_IMPL_ADDRESSES: {
|
|
|
31
31
|
readonly BSC_V3_PERMIT: "0x88881b6f03090462a969eC7f48385744Eeb63333";
|
|
32
32
|
readonly BSC_TAXED: "0x29e6383F0ce68507b5A72a53c2B118a118332aA8";
|
|
33
33
|
readonly BSC_TAXED_V5: "0xae562c6A05b798499507c6276C6Ed796027807BA";
|
|
34
|
-
readonly BSC_TAXED_V3: "0x024f18294970B5c76c0691b87f138A0317156422";
|
|
35
34
|
readonly BASE: "0xF3c514E04f83166E80718f29f0d34F206be40A0A";
|
|
36
35
|
readonly XLAYER: "0x12Dc83157Bf1cfCB8Db5952b3ba5bb56Cc38f8C9";
|
|
37
36
|
readonly MORPH: "0x8b4329947e34b6d56d71a3385cac122bade7d78d";
|
|
@@ -128,4 +127,4 @@ export declare const FLAP_TOTAL_SUPPLY: bigint;
|
|
|
128
127
|
* 零地址(用于表示原生代币)
|
|
129
128
|
* ✅ 从公共模块重新导出
|
|
130
129
|
*/
|
|
131
|
-
export { ZERO_ADDRESS } from '../../
|
|
130
|
+
export { ZERO_ADDRESS } from '../../core/constants/index.js';
|
|
@@ -32,8 +32,7 @@ export const FLAP_TOKEN_IMPL_ADDRESSES = {
|
|
|
32
32
|
/** TOKEN_V3_PERMIT / newTokenV7(Flap Portal v5.8.6+,vanity 后缀仍为 8888) */
|
|
33
33
|
BSC_V3_PERMIT: '0x88881b6f03090462a969eC7f48385744Eeb63333',
|
|
34
34
|
BSC_TAXED: '0x29e6383F0ce68507b5A72a53c2B118a118332aA8', // V2: 只有运营钱包的税代币
|
|
35
|
-
BSC_TAXED_V5: '0xae562c6A05b798499507c6276C6Ed796027807BA', //
|
|
36
|
-
BSC_TAXED_V3: '0x024f18294970B5c76c0691b87f138A0317156422', // V3: VaultPortal.newTokenV6WithVault / Portal.newTokenV6 税币
|
|
35
|
+
BSC_TAXED_V5: '0xae562c6A05b798499507c6276C6Ed796027807BA', // V5: 高级税代币 (mkt/deflation/dividend/lp)
|
|
37
36
|
BASE: '0xF3c514E04f83166E80718f29f0d34F206be40A0A',
|
|
38
37
|
XLAYER: '0x12Dc83157Bf1cfCB8Db5952b3ba5bb56Cc38f8C9',
|
|
39
38
|
MORPH: '0x8b4329947e34b6d56d71a3385cac122bade7d78d', // 暂时使用 BSC NORMAL 地址
|
|
@@ -138,9 +137,9 @@ export const FLAP_DEX_THRESHOLDS = {
|
|
|
138
137
|
/**
|
|
139
138
|
* 代币总供应量(固定为 10 亿)
|
|
140
139
|
*/
|
|
141
|
-
export const FLAP_TOTAL_SUPPLY = BigInt(
|
|
140
|
+
export const FLAP_TOTAL_SUPPLY = BigInt(1_000_000_000) * BigInt(10 ** 18);
|
|
142
141
|
/**
|
|
143
142
|
* 零地址(用于表示原生代币)
|
|
144
143
|
* ✅ 从公共模块重新导出
|
|
145
144
|
*/
|
|
146
|
-
export { ZERO_ADDRESS } from '../../
|
|
145
|
+
export { ZERO_ADDRESS } from '../../core/constants/index.js';
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flap Protocol 错误代码
|
|
3
|
-
*/
|
|
4
1
|
export type FlapErrorCode = 'TOKEN_ALREADY_EXISTS' | 'TOKEN_NOT_FOUND' | 'TOKEN_NOT_TRADABLE' | 'ALREADY_ON_DEX' | 'INSUFFICIENT_BALANCE' | 'SLIPPAGE_EXCEEDED' | 'INVALID_TOKEN' | 'INVALID_QUOTE_TOKEN' | 'INVALID_AMOUNT' | 'TAX_RATE_TOO_HIGH' | 'PERMIT_EXPIRED' | 'PERMIT_INVALID' | 'UNKNOWN_ERROR';
|
|
5
2
|
/**
|
|
6
3
|
* 解析 Flap Protocol 错误信息
|
|
@@ -20,7 +17,7 @@ export type FlapErrorCode = 'TOKEN_ALREADY_EXISTS' | 'TOKEN_NOT_FOUND' | 'TOKEN_
|
|
|
20
17
|
* }
|
|
21
18
|
* ```
|
|
22
19
|
*/
|
|
23
|
-
export declare function parseFlapError(error:
|
|
20
|
+
export declare function parseFlapError(error: unknown): FlapErrorCode | null;
|
|
24
21
|
/**
|
|
25
22
|
* 获取错误的友好提示信息(中文)
|
|
26
23
|
*
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flap Protocol 错误代码
|
|
3
|
+
*/
|
|
4
|
+
import { getErrorMessageFromUnknown } from '../../core/normalize-unknown.js';
|
|
1
5
|
/**
|
|
2
6
|
* 解析 Flap Protocol 错误信息
|
|
3
7
|
*
|
|
@@ -17,7 +21,7 @@
|
|
|
17
21
|
* ```
|
|
18
22
|
*/
|
|
19
23
|
export function parseFlapError(error) {
|
|
20
|
-
const msg =
|
|
24
|
+
const msg = getFlapErrorText(error);
|
|
21
25
|
const msgLower = msg.toLowerCase();
|
|
22
26
|
// Token 状态相关错误
|
|
23
27
|
if (msgLower.includes('token already exists') || msgLower.includes('already created')) {
|
|
@@ -60,6 +64,21 @@ export function parseFlapError(error) {
|
|
|
60
64
|
// 无法识别的错误
|
|
61
65
|
return null;
|
|
62
66
|
}
|
|
67
|
+
function getFlapErrorText(error) {
|
|
68
|
+
if (error !== null && typeof error === 'object') {
|
|
69
|
+
const record = error;
|
|
70
|
+
const topLevel = record.message;
|
|
71
|
+
if (typeof topLevel === 'string' && topLevel)
|
|
72
|
+
return topLevel;
|
|
73
|
+
const data = record.data;
|
|
74
|
+
if (data !== null && typeof data === 'object') {
|
|
75
|
+
const nestedMessage = data.message;
|
|
76
|
+
if (typeof nestedMessage === 'string' && nestedMessage)
|
|
77
|
+
return nestedMessage;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return getErrorMessageFromUnknown(error);
|
|
81
|
+
}
|
|
63
82
|
/**
|
|
64
83
|
* 获取错误的友好提示信息(中文)
|
|
65
84
|
*
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flap domain public facade
|
|
3
|
+
*/
|
|
4
|
+
export { FlapPortal, FlapPortalWriter, type TokenStateV7, V3LPFeeProfile, lpFeeProfileToV3Fee, FLAP_TOTAL_SUPPLY, } from './module.js';
|
|
5
|
+
export { flapBundleSwapMerkle, flapBatchSwapMerkle, flapQuickBatchSwapMerkle, flapCrossSwapMerkle, flapBundleBuyFirstMerkle, flapDisperseWithBundleMerkle, flapSweepWithBundleMerkle, createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle, flapBundleCreateToDex, } from './portal-bundle-merkle/index.js';
|
|
6
|
+
export type { FlapSwapSignConfig, FlapSwapConfig, FlapBundleSwapSignParams, FlapBundleSwapParams, FlapSwapResult, FlapBatchSwapSignParams, FlapBatchSwapResult, FlapQuickBatchSwapSignParams, FlapQuickBatchSwapResult, FlapCrossSwapParams, FlapCrossSwapResult, UserType as FlapSwapUserType, FlapBuyFirstSignConfig, FlapBuyFirstConfig, FlapBundleBuyFirstSignParams, FlapBundleBuyFirstParams, FlapBuyFirstResult, FlapDisperseSignParams, FlapDisperseMerkleResult, FlapSweepSignParams, FlapSweepMerkleResult, } from './portal-bundle-merkle/index.js';
|
|
7
|
+
export type { FlapChain } from './portal.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flap domain public facade
|
|
3
|
+
*/
|
|
4
|
+
export { FlapPortal, FlapPortalWriter, V3LPFeeProfile, lpFeeProfileToV3Fee, FLAP_TOTAL_SUPPLY, } from './module.js';
|
|
5
|
+
export { flapBundleSwapMerkle, flapBatchSwapMerkle, flapQuickBatchSwapMerkle, flapCrossSwapMerkle, flapBundleBuyFirstMerkle, flapDisperseWithBundleMerkle, flapSweepWithBundleMerkle, createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle, flapBundleCreateToDex, } from './portal-bundle-merkle/index.js';
|
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
import { JsonRpcProvider } from 'ethers';
|
|
2
2
|
export type FlapChain = 'BSC' | 'BASE' | 'XLAYER' | 'MORPH';
|
|
3
|
+
/** JSON 可序列化值(递归) */
|
|
4
|
+
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
5
|
+
[key: string]: JsonValue;
|
|
6
|
+
};
|
|
7
|
+
/** IPFS 元数据 JSON(字段因项目而异) */
|
|
8
|
+
export type FlapTokenMetaJson = {
|
|
9
|
+
[key: string]: JsonValue;
|
|
10
|
+
};
|
|
11
|
+
export type FlapMetaByAddressResult = {
|
|
12
|
+
cid: string;
|
|
13
|
+
data?: FlapTokenMetaJson;
|
|
14
|
+
};
|
|
15
|
+
export type FlapMetaByTokenResult = {
|
|
16
|
+
token: string;
|
|
17
|
+
cid?: string;
|
|
18
|
+
data?: FlapTokenMetaJson;
|
|
19
|
+
imageUrl?: string;
|
|
20
|
+
error?: string;
|
|
21
|
+
};
|
|
3
22
|
export type FetchMetaOptions = {
|
|
4
23
|
ipfsGateway?: string;
|
|
5
24
|
multicall3?: string;
|
|
@@ -7,24 +26,9 @@ export type FetchMetaOptions = {
|
|
|
7
26
|
/**
|
|
8
27
|
* 根据代币地址直接读取合约 metaURI()/meta()(IPFS CID),并拉取元数据 JSON。
|
|
9
28
|
*/
|
|
10
|
-
export declare function getFlapMetaByAddress(chain: FlapChain, rpcUrl: string, tokenAddress: string, opts?: FetchMetaOptions): Promise<
|
|
11
|
-
|
|
12
|
-
data?: any;
|
|
13
|
-
} | undefined>;
|
|
14
|
-
export declare function getFlapMetasByAddresses(chain: FlapChain, rpcUrl: string, tokenAddresses: string[], opts?: FetchMetaOptions): Promise<Array<{
|
|
15
|
-
token: string;
|
|
16
|
-
cid?: string;
|
|
17
|
-
data?: any;
|
|
18
|
-
imageUrl?: string;
|
|
19
|
-
error?: string;
|
|
20
|
-
}>>;
|
|
29
|
+
export declare function getFlapMetaByAddress(chain: FlapChain, rpcUrl: string, tokenAddress: string, opts?: FetchMetaOptions): Promise<FlapMetaByAddressResult | undefined>;
|
|
30
|
+
export declare function getFlapMetasByAddresses(chain: FlapChain, rpcUrl: string, tokenAddresses: string[], opts?: FetchMetaOptions): Promise<FlapMetaByTokenResult[]>;
|
|
21
31
|
/**
|
|
22
32
|
* 使用 Multicall3 批量读取 metaURI()/meta(),metaURI 优先、meta 兜底。
|
|
23
33
|
*/
|
|
24
|
-
export declare function getFlapMetaUrisWithMulticall(provider: JsonRpcProvider, chain: FlapChain, tokenAddresses: string[], multicall3?: string, ipfsGateway?: string): Promise<
|
|
25
|
-
token: string;
|
|
26
|
-
cid?: string;
|
|
27
|
-
data?: any;
|
|
28
|
-
imageUrl?: string;
|
|
29
|
-
error?: string;
|
|
30
|
-
}>>;
|
|
34
|
+
export declare function getFlapMetaUrisWithMulticall(provider: JsonRpcProvider, chain: FlapChain, tokenAddresses: string[], multicall3?: string, ipfsGateway?: string): Promise<FlapMetaByTokenResult[]>;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { JsonRpcProvider, Contract, Interface } from 'ethers';
|
|
2
|
-
import { ADDRESSES } from '../../
|
|
2
|
+
import { ADDRESSES } from '../../core/constants/index.js';
|
|
3
|
+
import { getErrorMessageFromUnknown, consoleSdkLogger } from '../../core/index.js';
|
|
4
|
+
const sdkLogger = consoleSdkLogger;
|
|
3
5
|
const DEFAULT_GATEWAYS = {
|
|
4
6
|
BSC: 'https://ipfs.io/ipfs/',
|
|
5
7
|
BASE: 'https://ipfs.io/ipfs/',
|
|
6
8
|
XLAYER: 'https://ipfs.io/ipfs/',
|
|
7
|
-
MORPH: 'https://ipfs.io/ipfs/'
|
|
9
|
+
MORPH: 'https://ipfs.io/ipfs/',
|
|
8
10
|
};
|
|
9
11
|
function normalizeCid(cidOrUrl) {
|
|
10
12
|
if (!cidOrUrl)
|
|
@@ -18,26 +20,27 @@ async function fetchIpfsJson(cid, gateway) {
|
|
|
18
20
|
const resp = await fetch(url);
|
|
19
21
|
if (!resp.ok)
|
|
20
22
|
throw new Error(`IPFS fetch failed: ${resp.status} ${await resp.text()}`);
|
|
21
|
-
return await resp.json();
|
|
23
|
+
return (await resp.json());
|
|
22
24
|
}
|
|
23
25
|
async function readCidFromToken(provider, tokenAddress) {
|
|
24
|
-
const abi = [
|
|
25
|
-
'function metaURI() view returns (string)',
|
|
26
|
-
'function meta() view returns (string)'
|
|
27
|
-
];
|
|
26
|
+
const abi = ['function metaURI() view returns (string)', 'function meta() view returns (string)'];
|
|
28
27
|
const c = new Contract(tokenAddress, abi, provider);
|
|
29
28
|
try {
|
|
30
29
|
const v = await c.metaURI();
|
|
31
30
|
if (typeof v === 'string' && v.length > 0)
|
|
32
31
|
return v;
|
|
33
32
|
}
|
|
34
|
-
catch {
|
|
33
|
+
catch (error) {
|
|
34
|
+
sdkLogger.debug?.('[Flap meta] metaURI() 读取失败,尝试 fallback 到 meta()', getErrorMessageFromUnknown(error));
|
|
35
|
+
}
|
|
35
36
|
try {
|
|
36
37
|
const v = await c.meta();
|
|
37
38
|
if (typeof v === 'string' && v.length > 0)
|
|
38
39
|
return v;
|
|
39
40
|
}
|
|
40
|
-
catch {
|
|
41
|
+
catch (error) {
|
|
42
|
+
sdkLogger.debug?.('[Flap meta] meta() 读取失败', getErrorMessageFromUnknown(error));
|
|
43
|
+
}
|
|
41
44
|
return undefined;
|
|
42
45
|
}
|
|
43
46
|
/**
|
|
@@ -54,12 +57,15 @@ export async function getFlapMetaByAddress(chain, rpcUrl, tokenAddress, opts = {
|
|
|
54
57
|
const data = await fetchIpfsJson(onChainCid, gateway);
|
|
55
58
|
return { cid: onChainCid, data };
|
|
56
59
|
}
|
|
57
|
-
catch {
|
|
60
|
+
catch (error) {
|
|
61
|
+
sdkLogger.debug?.('[Flap meta] 获取 on-chain CID 对应 IPFS JSON 失败,回退仅返回 CID', getErrorMessageFromUnknown(error));
|
|
58
62
|
return { cid: onChainCid };
|
|
59
63
|
}
|
|
60
64
|
}
|
|
61
65
|
}
|
|
62
|
-
catch {
|
|
66
|
+
catch (error) {
|
|
67
|
+
sdkLogger.debug?.('[Flap meta] 直接读取 on-chain CID 失败', getErrorMessageFromUnknown(error));
|
|
68
|
+
}
|
|
63
69
|
return undefined;
|
|
64
70
|
}
|
|
65
71
|
export async function getFlapMetasByAddresses(chain, rpcUrl, tokenAddresses, opts = {}) {
|
|
@@ -78,7 +84,8 @@ export async function getFlapMetasByAddresses(chain, rpcUrl, tokenAddresses, opt
|
|
|
78
84
|
const data = await fetchIpfsJson(u.cid, gateway);
|
|
79
85
|
return { token: u.token, cid: u.cid, data };
|
|
80
86
|
}
|
|
81
|
-
catch {
|
|
87
|
+
catch (error) {
|
|
88
|
+
sdkLogger.debug?.('[Flap meta] 批量拉取 IPFS JSON 失败,回退 imageUrl', getErrorMessageFromUnknown(error));
|
|
82
89
|
return { token: u.token, cid: u.cid, imageUrl: `${gateway}${normalizeCid(u.cid)}` };
|
|
83
90
|
}
|
|
84
91
|
}));
|
|
@@ -93,17 +100,14 @@ export async function getFlapMetaUrisWithMulticall(provider, chain, tokenAddress
|
|
|
93
100
|
BSC: ADDRESSES.BSC.Multicall3,
|
|
94
101
|
BASE: ADDRESSES.BSC.Multicall3, // 所有链使用相同地址
|
|
95
102
|
XLAYER: ADDRESSES.BSC.Multicall3,
|
|
96
|
-
MORPH: ADDRESSES.BSC.Multicall3
|
|
103
|
+
MORPH: ADDRESSES.BSC.Multicall3,
|
|
97
104
|
};
|
|
98
105
|
const mcAddress = multicall3 || DEFAULT_MULTICALL3[chain];
|
|
99
106
|
const mcAbi = [
|
|
100
|
-
'function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) public returns (tuple(bool success, bytes returnData)[])'
|
|
107
|
+
'function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) public returns (tuple(bool success, bytes returnData)[])',
|
|
101
108
|
];
|
|
102
109
|
const mc = new Contract(mcAddress, mcAbi, provider);
|
|
103
|
-
const iface = new Interface([
|
|
104
|
-
'function metaURI() view returns (string)',
|
|
105
|
-
'function meta() view returns (string)'
|
|
106
|
-
]);
|
|
110
|
+
const iface = new Interface(['function metaURI() view returns (string)', 'function meta() view returns (string)']);
|
|
107
111
|
// 第一轮:metaURI()
|
|
108
112
|
const callDataMetaURI = iface.encodeFunctionData('metaURI', []);
|
|
109
113
|
const calls1 = tokenAddresses.map((t) => ({ target: t, callData: callDataMetaURI }));
|
|
@@ -111,7 +115,8 @@ export async function getFlapMetaUrisWithMulticall(provider, chain, tokenAddress
|
|
|
111
115
|
try {
|
|
112
116
|
res1 = await mc.tryAggregate(false, calls1);
|
|
113
117
|
}
|
|
114
|
-
catch (
|
|
118
|
+
catch (error) {
|
|
119
|
+
sdkLogger.debug?.('[Flap meta] multicall metaURI() 失败,降级逐个查询', getErrorMessageFromUnknown(error));
|
|
115
120
|
// 如果 multicall 不可用,降级为逐个查询
|
|
116
121
|
const fallbacks = await Promise.all(tokenAddresses.map(async (t) => {
|
|
117
122
|
try {
|
|
@@ -119,7 +124,7 @@ export async function getFlapMetaUrisWithMulticall(provider, chain, tokenAddress
|
|
|
119
124
|
return { token: t, cid };
|
|
120
125
|
}
|
|
121
126
|
catch (err) {
|
|
122
|
-
return { token: t, error:
|
|
127
|
+
return { token: t, error: getErrorMessageFromUnknown(err) };
|
|
123
128
|
}
|
|
124
129
|
}));
|
|
125
130
|
return fallbacks;
|
|
@@ -132,7 +137,8 @@ export async function getFlapMetaUrisWithMulticall(provider, chain, tokenAddress
|
|
|
132
137
|
const [uri] = iface.decodeFunctionResult('metaURI', r.returnData);
|
|
133
138
|
return { token: t, cid: String(uri) };
|
|
134
139
|
}
|
|
135
|
-
catch (
|
|
140
|
+
catch (error) {
|
|
141
|
+
sdkLogger.debug?.('[Flap meta] decode metaURI() 失败,回退到 meta()', getErrorMessageFromUnknown(error));
|
|
136
142
|
needMeta.push(t);
|
|
137
143
|
return { token: t };
|
|
138
144
|
}
|
|
@@ -150,7 +156,8 @@ export async function getFlapMetaUrisWithMulticall(provider, chain, tokenAddress
|
|
|
150
156
|
const data = await fetchIpfsJson(x.cid, gateway);
|
|
151
157
|
return { ...x, data };
|
|
152
158
|
}
|
|
153
|
-
catch {
|
|
159
|
+
catch (error) {
|
|
160
|
+
sdkLogger.debug?.('[Flap meta] enrich metaURI 数据失败,回退 imageUrl', getErrorMessageFromUnknown(error));
|
|
154
161
|
return { ...x, imageUrl: `${gateway}${normalizeCid(x.cid)}` };
|
|
155
162
|
}
|
|
156
163
|
}));
|
|
@@ -171,7 +178,7 @@ export async function getFlapMetaUrisWithMulticall(provider, chain, tokenAddress
|
|
|
171
178
|
interim[i].cid = String(uri);
|
|
172
179
|
}
|
|
173
180
|
catch (e) {
|
|
174
|
-
interim[i].error =
|
|
181
|
+
interim[i].error = getErrorMessageFromUnknown(e);
|
|
175
182
|
}
|
|
176
183
|
}
|
|
177
184
|
else {
|
|
@@ -187,7 +194,8 @@ export async function getFlapMetaUrisWithMulticall(provider, chain, tokenAddress
|
|
|
187
194
|
const data = await fetchIpfsJson(x.cid, gateway);
|
|
188
195
|
return { ...x, data };
|
|
189
196
|
}
|
|
190
|
-
catch {
|
|
197
|
+
catch (error) {
|
|
198
|
+
sdkLogger.debug?.('[Flap meta] enrich meta 数据失败,回退 imageUrl', getErrorMessageFromUnknown(error));
|
|
191
199
|
return { ...x, imageUrl: `${gateway}${normalizeCid(x.cid)}` };
|
|
192
200
|
}
|
|
193
201
|
}));
|
|
@@ -11,14 +11,13 @@ type PortalConfig, type TokenStateV2, type TokenStateV3, type TokenStateV4, type
|
|
|
11
11
|
export { CDPV2 } from './curve.js';
|
|
12
12
|
export { buildPermitPiggybackAuto } from './permit.js';
|
|
13
13
|
export { uploadTokenMeta, type TokenMetaInput } from './ipfs.js';
|
|
14
|
-
export { PinataClient, type PinataConfig, pinFileToIPFSWithJWT, pinImageByPath, pinFileToIPFSWithJWTWeb, pinDataURLWithJWTWeb, dataURLToBlob, type PinataPinResp } from './pinata.js';
|
|
14
|
+
export { PinataClient, type PinataConfig, pinFileToIPFSWithJWT, pinImageByPath, pinFileToIPFSWithJWTWeb, pinDataURLWithJWTWeb, dataURLToBlob, type PinataPinResp, } from './pinata.js';
|
|
15
15
|
export { predictVanityTokenAddressByChain, findSaltEndingByChain } from './vanity.js';
|
|
16
|
-
export {
|
|
17
|
-
export { populateCreateTokenTransaction, normalizeTaxLaunchConfig, resolveCreateTokenLaunchFlags, MAGIC_DIVIDEND_SELF, type PopulateCreateTokenParams, type NormalizedTaxLaunchConfig, } from './portal-create-token.js';
|
|
16
|
+
export { MAGIC_DIVIDEND_SELF, normalizeTaxLaunchConfig, populateCreateTokenTransaction, type NormalizedTaxLaunchConfig, } from './portal-create-token.js';
|
|
18
17
|
export { getFlapMetaByAddress, getFlapMetasByAddresses } from './meta.js';
|
|
19
18
|
export { parseFlapError, getFlapErrorMessage, getFlapErrorMessageEn, type FlapErrorCode } from './errors.js';
|
|
20
|
-
export { FLAP_DEFAULT_FEE_RATES, FLAP_IPFS_API_URL, FLAP_VANITY_SUFFIX, FLAP_DEX_THRESHOLDS, FLAP_TOTAL_SUPPLY, ZERO_ADDRESS, CHAIN_TAX_SUPPORT, getVanitySuffix, isChainSupportTax, FLAP_PORTAL_ADDRESSES } from './constants.js';
|
|
19
|
+
export { FLAP_DEFAULT_FEE_RATES, FLAP_IPFS_API_URL, FLAP_VANITY_SUFFIX, FLAP_DEX_THRESHOLDS, FLAP_TOTAL_SUPPLY, ZERO_ADDRESS, CHAIN_TAX_SUPPORT, getVanitySuffix, isChainSupportTax, FLAP_PORTAL_ADDRESSES, } from './constants.js';
|
|
21
20
|
export * from './abi.js';
|
|
22
21
|
export { createTokenWithBundleBuy, batchBuyWithBundle, batchSellWithBundle, type FlapBundleConfig, type FlapChainForBundle, type FlapCreateWithBundleBuyParams, type FlapCreateWithBundleBuyResult, type FlapBatchBuyParams, type FlapBatchBuyResult, type FlapBatchSellParams, type FlapBatchSellResult, flapPrivateBuy, flapPrivateSell, flapBatchPrivateBuy, flapBatchPrivateSell, type FlapPrivateBuyParams, type FlapPrivateSellParams, type FlapBatchPrivateBuyParams, type FlapBatchPrivateSellParams, type FlapBatchPrivateSellResult, } from './portal-bundle.js';
|
|
23
22
|
export * from './portal-bundle-merkle/index.js';
|
|
24
|
-
export { NONE_EXTENSION_ID, VAULT_TYPE_LABELS, VAULT_TYPE_CATEGORIES, VAULT_FACTORY_ADDRESSES, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI, VAULT_EXTRA_CONFIG, FLAP_GUARDIAN_ADDRESSES, VAULT_FACTORY_ABI, VAULT_FACTORY_V2_ABI, VAULT_BASE_ABI, VAULT_BASE_V2_ABI, type VaultType, type TaxVaultConfig, type VaultInfo, type FieldDescriptor, type VaultDataSchema, type ApproveAction, type VaultMethodSchema, type VaultUISchema, encodeVaultData, buildVaultParams, buildVaultExtensionParams,
|
|
23
|
+
export { NONE_EXTENSION_ID, VAULT_TYPE_LABELS, VAULT_TYPE_CATEGORIES, VAULT_FACTORY_ADDRESSES, VAULT_PORTAL_ADDRESSES, VAULT_PORTAL_ABI, VAULT_EXTRA_CONFIG, FLAP_GUARDIAN_ADDRESSES, VAULT_FACTORY_ABI, VAULT_FACTORY_V2_ABI, VAULT_BASE_ABI, VAULT_BASE_V2_ABI, type VaultType, type TaxVaultConfig, type VaultInfo, type FieldDescriptor, type VaultDataSchema, type ApproveAction, type VaultMethodSchema, type VaultUISchema, encodeVaultData, buildVaultParams, buildVaultExtensionParams, getVaultFactoryAddress, getVaultPortalAddress, queryVaultDataSchema, queryVaultUISchema, queryVaultDescription, validateVaultFactory, getVaultInfo, isValidContract, } from './vault.js';
|
|
@@ -11,13 +11,12 @@ export { FlapPortal, FlapPortalWriter, validateTaxDistribution, TokenStatus, Tok
|
|
|
11
11
|
export { CDPV2 } from './curve.js';
|
|
12
12
|
export { buildPermitPiggybackAuto } from './permit.js';
|
|
13
13
|
export { uploadTokenMeta } from './ipfs.js';
|
|
14
|
-
export { PinataClient, pinFileToIPFSWithJWT, pinImageByPath, pinFileToIPFSWithJWTWeb, pinDataURLWithJWTWeb, dataURLToBlob } from './pinata.js';
|
|
14
|
+
export { PinataClient, pinFileToIPFSWithJWT, pinImageByPath, pinFileToIPFSWithJWTWeb, pinDataURLWithJWTWeb, dataURLToBlob, } from './pinata.js';
|
|
15
15
|
export { predictVanityTokenAddressByChain, findSaltEndingByChain } from './vanity.js';
|
|
16
|
-
export {
|
|
17
|
-
export { populateCreateTokenTransaction, normalizeTaxLaunchConfig, resolveCreateTokenLaunchFlags, MAGIC_DIVIDEND_SELF, } from './portal-create-token.js';
|
|
16
|
+
export { MAGIC_DIVIDEND_SELF, normalizeTaxLaunchConfig, populateCreateTokenTransaction, } from './portal-create-token.js';
|
|
18
17
|
export { getFlapMetaByAddress, getFlapMetasByAddresses } from './meta.js';
|
|
19
18
|
export { parseFlapError, getFlapErrorMessage, getFlapErrorMessageEn } from './errors.js';
|
|
20
|
-
export { FLAP_DEFAULT_FEE_RATES, FLAP_IPFS_API_URL, FLAP_VANITY_SUFFIX, FLAP_DEX_THRESHOLDS, FLAP_TOTAL_SUPPLY, ZERO_ADDRESS, CHAIN_TAX_SUPPORT, getVanitySuffix, isChainSupportTax, FLAP_PORTAL_ADDRESSES } from './constants.js';
|
|
19
|
+
export { FLAP_DEFAULT_FEE_RATES, FLAP_IPFS_API_URL, FLAP_VANITY_SUFFIX, FLAP_DEX_THRESHOLDS, FLAP_TOTAL_SUPPLY, ZERO_ADDRESS, CHAIN_TAX_SUPPORT, getVanitySuffix, isChainSupportTax, FLAP_PORTAL_ADDRESSES, } from './constants.js';
|
|
21
20
|
export * from './abi.js';
|
|
22
21
|
// Bundle 功能
|
|
23
22
|
export { createTokenWithBundleBuy, batchBuyWithBundle, batchSellWithBundle, flapPrivateBuy, flapPrivateSell, flapBatchPrivateBuy, flapBatchPrivateSell, } from './portal-bundle.js';
|
|
@@ -30,6 +29,6 @@ NONE_EXTENSION_ID, VAULT_TYPE_LABELS, VAULT_TYPE_CATEGORIES, VAULT_FACTORY_ADDRE
|
|
|
30
29
|
// ABI
|
|
31
30
|
VAULT_FACTORY_ABI, VAULT_FACTORY_V2_ABI, VAULT_BASE_ABI, VAULT_BASE_V2_ABI,
|
|
32
31
|
// 工具函数
|
|
33
|
-
encodeVaultData, buildVaultParams, buildVaultExtensionParams,
|
|
32
|
+
encodeVaultData, buildVaultParams, buildVaultExtensionParams, getVaultFactoryAddress, getVaultPortalAddress,
|
|
34
33
|
// 链上查询
|
|
35
34
|
queryVaultDataSchema, queryVaultUISchema, queryVaultDescription, validateVaultFactory, getVaultInfo, isValidContract, } from './vault.js';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Wallet, AbiCoder, Contract, JsonRpcProvider } from 'ethers';
|
|
2
2
|
import { FLAP_PORTAL_ADDRESSES } from './constants.js';
|
|
3
|
-
import {
|
|
3
|
+
import { CHAIN_ID_MAP } from '../../core/constants/index.js';
|
|
4
|
+
import { consoleSdkLogger } from '../../core/index.js';
|
|
5
|
+
const sdkLogger = consoleSdkLogger;
|
|
4
6
|
/**
|
|
5
7
|
* 构建 Permit Piggyback 数据
|
|
6
8
|
* 自动签名并使用正确的 Portal 代理地址
|
|
@@ -22,7 +24,10 @@ export async function buildPermitPiggybackAuto(chain, privateKey, tokenAddress,
|
|
|
22
24
|
const wallet = new Wallet(privateKey);
|
|
23
25
|
const owner = wallet.address;
|
|
24
26
|
// 获取 chainId
|
|
25
|
-
const chainId =
|
|
27
|
+
const chainId = CHAIN_ID_MAP[chain];
|
|
28
|
+
if (chainId === undefined) {
|
|
29
|
+
throw new Error(`Unknown chain: ${chain}`);
|
|
30
|
+
}
|
|
26
31
|
// 读取代币 name(优先 override,其次链上查询,不可用时回退为空字符串)
|
|
27
32
|
let tokenName = opts?.tokenNameOverride ?? '';
|
|
28
33
|
if (!tokenName && opts?.rpcUrl) {
|
|
@@ -30,7 +35,9 @@ export async function buildPermitPiggybackAuto(chain, privateKey, tokenAddress,
|
|
|
30
35
|
const erc20 = new Contract(tokenAddress, ['function name() view returns (string)'], new JsonRpcProvider(opts.rpcUrl));
|
|
31
36
|
tokenName = await erc20.name();
|
|
32
37
|
}
|
|
33
|
-
catch {
|
|
38
|
+
catch (error) {
|
|
39
|
+
sdkLogger.debug?.('[Flap permit] 读取 token name 失败,回退为空字符串签名域', error);
|
|
40
|
+
}
|
|
34
41
|
}
|
|
35
42
|
// 构建 EIP-2612 Permit 消息(name 可能为空字符串,符合部分实现)
|
|
36
43
|
const domain = {
|
|
@@ -2,26 +2,41 @@ export type PinataConfig = {
|
|
|
2
2
|
jwt: string;
|
|
3
3
|
gateway?: string;
|
|
4
4
|
};
|
|
5
|
+
type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
6
|
+
[key: string]: JsonValue;
|
|
7
|
+
};
|
|
8
|
+
/** Pinata gateway JSON 响应(结构因 CID 内容而异) */
|
|
9
|
+
export type PinataGatewayJson = {
|
|
10
|
+
[key: string]: JsonValue;
|
|
11
|
+
};
|
|
12
|
+
type PinataPinApiResponse = {
|
|
13
|
+
IpfsHash?: string;
|
|
14
|
+
cid?: string;
|
|
15
|
+
PinSize?: number;
|
|
16
|
+
Timestamp?: string;
|
|
17
|
+
};
|
|
18
|
+
export type PinataJsonUpload = {
|
|
19
|
+
[key: string]: JsonValue;
|
|
20
|
+
};
|
|
5
21
|
export declare class PinataClient {
|
|
6
22
|
private client;
|
|
7
|
-
private ready;
|
|
8
23
|
constructor(cfg: PinataConfig);
|
|
9
24
|
uploadFile(file: File): Promise<{
|
|
10
25
|
cid: string;
|
|
11
26
|
id: string;
|
|
12
27
|
}>;
|
|
13
|
-
uploadJSON(obj:
|
|
28
|
+
uploadJSON(obj: PinataJsonUpload, name?: string): Promise<{
|
|
14
29
|
cid: string;
|
|
15
30
|
id: string;
|
|
16
31
|
}>;
|
|
17
|
-
get(cid: string): Promise<
|
|
18
|
-
url(cid: string): Promise<
|
|
32
|
+
get(cid: string): Promise<PinataGatewayJson>;
|
|
33
|
+
url(cid: string): Promise<string>;
|
|
19
34
|
}
|
|
20
35
|
export type PinataPinResp = {
|
|
21
36
|
cid: string;
|
|
22
37
|
size?: number;
|
|
23
38
|
timestamp?: string;
|
|
24
|
-
raw?:
|
|
39
|
+
raw?: PinataPinApiResponse;
|
|
25
40
|
};
|
|
26
41
|
/**
|
|
27
42
|
* 使用 Pinata JWT 直接上传文件(Node 环境)
|
|
@@ -30,7 +45,7 @@ export type PinataPinResp = {
|
|
|
30
45
|
* @param data 可选:内存 Buffer(当未提供 filePath 时使用)
|
|
31
46
|
* @param fileName 可选:内存数据的文件名
|
|
32
47
|
*/
|
|
33
|
-
export declare function pinFileToIPFSWithJWT(jwt: string, filePath?: string, data?:
|
|
48
|
+
export declare function pinFileToIPFSWithJWT(jwt: string, filePath?: string, data?: Buffer | Uint8Array, fileName?: string): Promise<PinataPinResp>;
|
|
34
49
|
/**
|
|
35
50
|
* 便捷方法:上传本地图片路径(返回 CID)
|
|
36
51
|
*/
|
|
@@ -38,3 +53,4 @@ export declare function pinImageByPath(jwt: string, filePath: string): Promise<s
|
|
|
38
53
|
export declare function pinFileToIPFSWithJWTWeb(jwt: string, file: Blob, fileName?: string): Promise<PinataPinResp>;
|
|
39
54
|
export declare function dataURLToBlob(dataUrl: string): Blob;
|
|
40
55
|
export declare function pinDataURLWithJWTWeb(jwt: string, dataUrl: string, fileName?: string): Promise<PinataPinResp>;
|
|
56
|
+
export {};
|