From 9f2a12ed430756050579f18425175db3a5cbc617 Mon Sep 17 00:00:00 2001 From: Gaubee Date: Sun, 25 Jan 2026 17:53:07 +0800 Subject: [PATCH] feat: complete implementation --- src/components/wallet/chain-icon.tsx | 2 +- src/hooks/use-send.bioforest.ts | 2 +- src/services/bioforest-sdk/index.ts | 2 +- src/services/chain-adapter/bioforest/chain-service.ts | 2 +- src/services/chain-adapter/bioforest/identity-mixin.ts | 2 +- src/services/chain-adapter/bioforest/transaction-mixin.ts | 2 +- src/services/chain-adapter/bitcoin/chain-service.ts | 2 +- src/services/chain-adapter/bitcoin/transaction-mixin.ts | 2 +- src/services/chain-adapter/evm/chain-service.ts | 2 +- src/services/chain-adapter/evm/transaction-mixin.ts | 2 +- .../chain-adapter/providers/biowallet-provider.effect.ts | 2 +- .../chain-adapter/providers/bscwallet-provider.effect.ts | 2 +- .../chain-adapter/providers/btcwallet-provider.effect.ts | 2 +- src/services/chain-adapter/providers/chain-provider.ts | 2 +- .../chain-adapter/providers/etherscan-v1-provider.effect.ts | 2 +- .../chain-adapter/providers/etherscan-v2-provider.effect.ts | 2 +- .../chain-adapter/providers/ethwallet-provider.effect.ts | 2 +- .../chain-adapter/providers/evm-rpc-provider.effect.ts | 2 +- src/services/chain-adapter/providers/index.ts | 2 +- .../chain-adapter/providers/mempool-provider.effect.ts | 2 +- .../chain-adapter/providers/moralis-provider.effect.ts | 2 +- .../chain-adapter/providers/tron-rpc-provider.effect.ts | 2 +- .../chain-adapter/providers/tronwallet-provider.effect.ts | 2 +- src/services/chain-adapter/tron/chain-service.ts | 2 +- src/services/chain-adapter/tron/transaction-mixin.ts | 2 +- src/services/chain-config/index.ts | 1 - src/services/transaction/pending-tx.ts | 3 ++- src/stackflow/activities/sheets/ChainSwitchConfirmJob.tsx | 2 +- src/stackflow/activities/sheets/WalletPickerJob.tsx | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/components/wallet/chain-icon.tsx b/src/components/wallet/chain-icon.tsx index cfedc8960..17fd1fdb5 100644 --- a/src/components/wallet/chain-icon.tsx +++ b/src/components/wallet/chain-icon.tsx @@ -1,6 +1,6 @@ import { useState } from 'react'; import { cn } from '@/lib/utils'; -import { chainConfigService } from '@/services/chain-config'; +import { chainConfigService } from '@/services/chain-config/service' export type ChainType = string; diff --git a/src/hooks/use-send.bioforest.ts b/src/hooks/use-send.bioforest.ts index 73e3bb5de..ffd5e54b4 100644 --- a/src/hooks/use-send.bioforest.ts +++ b/src/hooks/use-send.bioforest.ts @@ -1,6 +1,6 @@ import type { AssetInfo } from '@/types/asset'; import type { ChainConfig } from '@/services/chain-config'; -import { chainConfigService } from '@/services/chain-config'; +import { chainConfigService } from '@/services/chain-config/service'; import { Amount } from '@/types/amount'; import { walletStorageService, WalletStorageError, WalletStorageErrorCode } from '@/services/wallet-storage'; import { getChainProvider } from '@/services/chain-adapter/providers'; diff --git a/src/services/bioforest-sdk/index.ts b/src/services/bioforest-sdk/index.ts index 904cef41e..5b350ab48 100644 --- a/src/services/bioforest-sdk/index.ts +++ b/src/services/bioforest-sdk/index.ts @@ -219,7 +219,7 @@ async function loadBundle(): Promise { */ export async function getBioforestCore(chainId: string): Promise { // 使用 chain-config 作为唯一可信源获取 genesisBlock 路径 - const { chainConfigService } = await import('@/services/chain-config') + const { chainConfigService } = await import('@/services/chain-config/service') const genesisBlockPath = chainConfigService.getBiowalletGenesisBlock(chainId) if (!genesisBlockPath) { diff --git a/src/services/chain-adapter/bioforest/chain-service.ts b/src/services/chain-adapter/bioforest/chain-service.ts index dea611660..a6277a216 100644 --- a/src/services/chain-adapter/bioforest/chain-service.ts +++ b/src/services/chain-adapter/bioforest/chain-service.ts @@ -4,7 +4,7 @@ import { Effect } from 'effect' import type { ChainConfig } from '@/services/chain-config' -import { chainConfigService } from '@/services/chain-config' +import { chainConfigService } from '@/services/chain-config/service'; import { httpFetch } from '@biochain/chain-effect' import { Amount } from '@/types/amount' import type { IChainService, ChainInfo, GasPrice, HealthStatus } from '../types' diff --git a/src/services/chain-adapter/bioforest/identity-mixin.ts b/src/services/chain-adapter/bioforest/identity-mixin.ts index c53fd9834..d58e5c3f6 100644 --- a/src/services/chain-adapter/bioforest/identity-mixin.ts +++ b/src/services/chain-adapter/bioforest/identity-mixin.ts @@ -10,7 +10,7 @@ import { isValidBioforestAddress, signMessage as bioforestSign, } from '@/lib/crypto' -import { chainConfigService } from '@/services/chain-config' +import { chainConfigService } from '@/services/chain-config/service'; import type { IIdentityService, Address, Signature } from '../types' function bytesToHex(bytes: Uint8Array): string { diff --git a/src/services/chain-adapter/bioforest/transaction-mixin.ts b/src/services/chain-adapter/bioforest/transaction-mixin.ts index 090100b4a..354025d41 100644 --- a/src/services/chain-adapter/bioforest/transaction-mixin.ts +++ b/src/services/chain-adapter/bioforest/transaction-mixin.ts @@ -1,4 +1,4 @@ -import { chainConfigService } from '@/services/chain-config' +import { chainConfigService } from '@/services/chain-config/service'; import { Amount } from '@/types/amount' import type { ITransactionService, diff --git a/src/services/chain-adapter/bitcoin/chain-service.ts b/src/services/chain-adapter/bitcoin/chain-service.ts index ac72f8009..c6031cdd2 100644 --- a/src/services/chain-adapter/bitcoin/chain-service.ts +++ b/src/services/chain-adapter/bitcoin/chain-service.ts @@ -5,7 +5,7 @@ */ import type { ChainConfig } from '@/services/chain-config' -import { chainConfigService } from '@/services/chain-config' +import { chainConfigService } from '@/services/chain-config/service'; import type { IChainService, ChainInfo, GasPrice, HealthStatus } from '../types' import { Amount } from '@/types/amount' import { ChainServiceError, ChainErrorCodes } from '../types' diff --git a/src/services/chain-adapter/bitcoin/transaction-mixin.ts b/src/services/chain-adapter/bitcoin/transaction-mixin.ts index 099c8b1d2..f5b377ea9 100644 --- a/src/services/chain-adapter/bitcoin/transaction-mixin.ts +++ b/src/services/chain-adapter/bitcoin/transaction-mixin.ts @@ -8,7 +8,7 @@ * - 其他类型抛出不支持错误 */ -import { chainConfigService } from '@/services/chain-config' +import { chainConfigService } from '@/services/chain-config/service'; import type { ITransactionService, TransactionIntent, diff --git a/src/services/chain-adapter/evm/chain-service.ts b/src/services/chain-adapter/evm/chain-service.ts index e6c139f21..2ee320fa4 100644 --- a/src/services/chain-adapter/evm/chain-service.ts +++ b/src/services/chain-adapter/evm/chain-service.ts @@ -4,7 +4,7 @@ * Provides chain info and gas price queries via public JSON-RPC endpoints. */ -import { chainConfigService } from '@/services/chain-config/service' +import { chainConfigService } from '@/services/chain-config/service'; import type { IChainService, ChainInfo, GasPrice, HealthStatus } from '../types' import { Amount } from '@/types/amount' import { ChainServiceError, ChainErrorCodes } from '../types' diff --git a/src/services/chain-adapter/evm/transaction-mixin.ts b/src/services/chain-adapter/evm/transaction-mixin.ts index afda68828..f860fcc01 100644 --- a/src/services/chain-adapter/evm/transaction-mixin.ts +++ b/src/services/chain-adapter/evm/transaction-mixin.ts @@ -8,7 +8,7 @@ * - 其他类型抛出不支持错误 */ -import { chainConfigService } from '@/services/chain-config/service' +import { chainConfigService } from '@/services/chain-config/service'; import type { ITransactionService, TransactionIntent, diff --git a/src/services/chain-adapter/providers/biowallet-provider.effect.ts b/src/services/chain-adapter/providers/biowallet-provider.effect.ts index 8aa9f6816..9fb2945ef 100644 --- a/src/services/chain-adapter/providers/biowallet-provider.effect.ts +++ b/src/services/chain-adapter/providers/biowallet-provider.effect.ts @@ -38,7 +38,7 @@ import type { } from './types'; import { setForgeInterval } from '../bioforest/fetch'; import type { ParsedApiEntry } from '@/services/chain-config'; -import { chainConfigService } from '@/services/chain-config'; +import { chainConfigService } from '@/services/chain-config/service'; import { Amount } from '@/types/amount'; import { BioforestIdentityMixin } from '../bioforest/identity-mixin'; import { BioforestTransactionMixin } from '../bioforest/transaction-mixin'; diff --git a/src/services/chain-adapter/providers/bscwallet-provider.effect.ts b/src/services/chain-adapter/providers/bscwallet-provider.effect.ts index c2db0c9b8..68eb1674d 100644 --- a/src/services/chain-adapter/providers/bscwallet-provider.effect.ts +++ b/src/services/chain-adapter/providers/bscwallet-provider.effect.ts @@ -33,7 +33,7 @@ import type { TokenBalance, } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { EvmIdentityMixin } from "../evm/identity-mixin" import { EvmTransactionMixin } from "../evm/transaction-mixin" diff --git a/src/services/chain-adapter/providers/btcwallet-provider.effect.ts b/src/services/chain-adapter/providers/btcwallet-provider.effect.ts index 0b77ded8e..3def275cb 100644 --- a/src/services/chain-adapter/providers/btcwallet-provider.effect.ts +++ b/src/services/chain-adapter/providers/btcwallet-provider.effect.ts @@ -43,7 +43,7 @@ import type { TransferIntent, } from "../types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { BitcoinIdentityMixin } from "../bitcoin/identity-mixin" import { BitcoinTransactionMixin } from "../bitcoin/transaction-mixin" diff --git a/src/services/chain-adapter/providers/chain-provider.ts b/src/services/chain-adapter/providers/chain-provider.ts index e158a78b4..c71a3b5e0 100644 --- a/src/services/chain-adapter/providers/chain-provider.ts +++ b/src/services/chain-adapter/providers/chain-provider.ts @@ -9,7 +9,7 @@ import { Effect, Stream } from "effect" import { useState, useEffect, useMemo, useRef, useCallback, useSyncExternalStore } from "react" import { createStreamInstance, type StreamInstance, type FetchError } from "@biochain/chain-effect" import { isChainDebugEnabled } from "@/services/chain-adapter/debug" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import type { ApiProvider, ApiProviderMethod, diff --git a/src/services/chain-adapter/providers/etherscan-v1-provider.effect.ts b/src/services/chain-adapter/providers/etherscan-v1-provider.effect.ts index 13c1c016c..ac84c4c01 100644 --- a/src/services/chain-adapter/providers/etherscan-v1-provider.effect.ts +++ b/src/services/chain-adapter/providers/etherscan-v1-provider.effect.ts @@ -21,7 +21,7 @@ import { import type { StreamInstance } from "@biochain/chain-effect" import type { ApiProvider, Direction, BalanceOutput, TransactionsOutput, AddressParams, TxHistoryParams, Transaction } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { EvmIdentityMixin } from "../evm/identity-mixin" import { EvmTransactionMixin } from "../evm/transaction-mixin" diff --git a/src/services/chain-adapter/providers/etherscan-v2-provider.effect.ts b/src/services/chain-adapter/providers/etherscan-v2-provider.effect.ts index 188461e02..a805ae4ab 100644 --- a/src/services/chain-adapter/providers/etherscan-v2-provider.effect.ts +++ b/src/services/chain-adapter/providers/etherscan-v2-provider.effect.ts @@ -21,7 +21,7 @@ import { import type { StreamInstance } from "@biochain/chain-effect" import type { ApiProvider, Direction, BalanceOutput, TransactionsOutput, AddressParams, TxHistoryParams, Transaction } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { EvmIdentityMixin } from "../evm/identity-mixin" import { EvmTransactionMixin } from "../evm/transaction-mixin" diff --git a/src/services/chain-adapter/providers/ethwallet-provider.effect.ts b/src/services/chain-adapter/providers/ethwallet-provider.effect.ts index 0423f7c7b..ccefa60da 100644 --- a/src/services/chain-adapter/providers/ethwallet-provider.effect.ts +++ b/src/services/chain-adapter/providers/ethwallet-provider.effect.ts @@ -36,7 +36,7 @@ import type { TokenBalance, } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { EvmIdentityMixin } from "../evm/identity-mixin" import { EvmTransactionMixin } from "../evm/transaction-mixin" diff --git a/src/services/chain-adapter/providers/evm-rpc-provider.effect.ts b/src/services/chain-adapter/providers/evm-rpc-provider.effect.ts index f75167727..472442698 100644 --- a/src/services/chain-adapter/providers/evm-rpc-provider.effect.ts +++ b/src/services/chain-adapter/providers/evm-rpc-provider.effect.ts @@ -22,7 +22,7 @@ import { import type { StreamInstance } from "@biochain/chain-effect" import type { ApiProvider, BalanceOutput, BlockHeightOutput, TransactionOutput, AddressParams, TransactionParams, Action, Transaction } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { EvmIdentityMixin } from "../evm/identity-mixin" import { EvmTransactionMixin } from "../evm/transaction-mixin" diff --git a/src/services/chain-adapter/providers/index.ts b/src/services/chain-adapter/providers/index.ts index aaf94acbe..cf11eb51f 100644 --- a/src/services/chain-adapter/providers/index.ts +++ b/src/services/chain-adapter/providers/index.ts @@ -29,7 +29,7 @@ export { MoralisProviderEffect, createMoralisProviderEffect } from './moralis-pr // 工厂函数 import type { ApiProvider, ApiProviderFactory } from './types'; import type { ParsedApiEntry } from '@/services/chain-config'; -import { chainConfigService } from '@/services/chain-config'; +import { chainConfigService } from '@/services/chain-config/service'; import { ChainProvider } from './chain-provider'; import { createEtherscanV1ProviderEffect } from './etherscan-v1-provider.effect'; diff --git a/src/services/chain-adapter/providers/mempool-provider.effect.ts b/src/services/chain-adapter/providers/mempool-provider.effect.ts index c8ebfcc95..858d11e29 100644 --- a/src/services/chain-adapter/providers/mempool-provider.effect.ts +++ b/src/services/chain-adapter/providers/mempool-provider.effect.ts @@ -23,7 +23,7 @@ import { import type { StreamInstance } from "@biochain/chain-effect" import type { ApiProvider, Direction, BalanceOutput, BlockHeightOutput, TransactionsOutput, AddressParams, TxHistoryParams } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { BitcoinIdentityMixin } from "../bitcoin/identity-mixin" import { BitcoinTransactionMixin } from "../bitcoin/transaction-mixin" diff --git a/src/services/chain-adapter/providers/moralis-provider.effect.ts b/src/services/chain-adapter/providers/moralis-provider.effect.ts index c42245c2e..02d174fd8 100644 --- a/src/services/chain-adapter/providers/moralis-provider.effect.ts +++ b/src/services/chain-adapter/providers/moralis-provider.effect.ts @@ -34,7 +34,7 @@ import type { TransactionStatusParams, } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { EvmIdentityMixin } from "../evm/identity-mixin" import { EvmTransactionMixin } from "../evm/transaction-mixin" diff --git a/src/services/chain-adapter/providers/tron-rpc-provider.effect.ts b/src/services/chain-adapter/providers/tron-rpc-provider.effect.ts index 15550dd62..94a7e8af4 100644 --- a/src/services/chain-adapter/providers/tron-rpc-provider.effect.ts +++ b/src/services/chain-adapter/providers/tron-rpc-provider.effect.ts @@ -33,7 +33,7 @@ import type { Transaction, } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { TronIdentityMixin } from "../tron/identity-mixin" import { TronTransactionMixin } from "../tron/transaction-mixin" diff --git a/src/services/chain-adapter/providers/tronwallet-provider.effect.ts b/src/services/chain-adapter/providers/tronwallet-provider.effect.ts index 21647e4b1..c9a59b7b7 100644 --- a/src/services/chain-adapter/providers/tronwallet-provider.effect.ts +++ b/src/services/chain-adapter/providers/tronwallet-provider.effect.ts @@ -39,7 +39,7 @@ import type { TokenBalance, } from "./types" import type { ParsedApiEntry } from "@/services/chain-config" -import { chainConfigService } from "@/services/chain-config" +import { chainConfigService } from "@/services/chain-config/service"; import { Amount } from "@/types/amount" import { ChainServiceError, ChainErrorCodes } from "../types" import { TronIdentityMixin } from "../tron/identity-mixin" diff --git a/src/services/chain-adapter/tron/chain-service.ts b/src/services/chain-adapter/tron/chain-service.ts index 338559e9b..f95945e0a 100644 --- a/src/services/chain-adapter/tron/chain-service.ts +++ b/src/services/chain-adapter/tron/chain-service.ts @@ -3,7 +3,7 @@ */ import type { ChainConfig } from '@/services/chain-config' -import { chainConfigService } from '@/services/chain-config' +import { chainConfigService } from '@/services/chain-config/service'; import type { IChainService, ChainInfo, GasPrice, HealthStatus } from '../types' import { Amount } from '@/types/amount' import { ChainServiceError, ChainErrorCodes } from '../types' diff --git a/src/services/chain-adapter/tron/transaction-mixin.ts b/src/services/chain-adapter/tron/transaction-mixin.ts index 9c7a0bdc0..3133630d4 100644 --- a/src/services/chain-adapter/tron/transaction-mixin.ts +++ b/src/services/chain-adapter/tron/transaction-mixin.ts @@ -9,7 +9,7 @@ */ import type { ChainConfig } from '@/services/chain-config' -import { chainConfigService } from '@/services/chain-config' +import { chainConfigService } from '@/services/chain-config/service'; import type { ITransactionService, TransactionIntent, diff --git a/src/services/chain-config/index.ts b/src/services/chain-config/index.ts index a5637328f..5e80acc5e 100644 --- a/src/services/chain-config/index.ts +++ b/src/services/chain-config/index.ts @@ -1,5 +1,4 @@ export type { ChainConfig, ChainConfigSource, ChainConfigSubscription, ChainKind, ParsedApiEntry, ApiProviderEntry, ApiProviders } from './types' -export { chainConfigService } from './service' import { z } from 'zod' import { ChainConfigListSchema, ChainConfigSchema, ChainConfigSubscriptionSchema, VersionedChainConfigFileSchema } from './schema' diff --git a/src/services/transaction/pending-tx.ts b/src/services/transaction/pending-tx.ts index 539293420..520609cef 100644 --- a/src/services/transaction/pending-tx.ts +++ b/src/services/transaction/pending-tx.ts @@ -13,7 +13,8 @@ import { getChainProvider } from '@/services/chain-adapter/providers'; import { getWalletEventBus } from '@/services/chain-adapter/wallet-event-bus'; import { defineServiceMeta } from '@/lib/service-meta'; import { SignedTransactionSchema } from '@/services/chain-adapter/types'; -import { chainConfigService, type ChainConfig, type ChainKind } from '@/services/chain-config'; +import { chainConfigService } from '@/services/chain-config/service'; +import type { ChainConfig, ChainKind } from '@/services/chain-config'; import { getForgeInterval } from '@/services/chain-adapter/bioforest/fetch'; import { isChainDebugEnabled } from '@/services/chain-adapter/debug'; diff --git a/src/stackflow/activities/sheets/ChainSwitchConfirmJob.tsx b/src/stackflow/activities/sheets/ChainSwitchConfirmJob.tsx index a746b7858..fa569350e 100644 --- a/src/stackflow/activities/sheets/ChainSwitchConfirmJob.tsx +++ b/src/stackflow/activities/sheets/ChainSwitchConfirmJob.tsx @@ -12,7 +12,7 @@ import { MiniappSheetHeader } from '@/components/ecosystem'; import { useFlow } from '../../stackflow'; import { ActivityParamsProvider, useActivityParams } from '../../hooks'; import { parseHexChainId, getKeyAppChainId } from '@biochain/bio-sdk'; -import { chainConfigService } from '@/services/chain-config'; +import { chainConfigService } from '@/services/chain-config/service'; import type { ChainType } from '@/stores'; type ChainSwitchConfirmJobParams = { diff --git a/src/stackflow/activities/sheets/WalletPickerJob.tsx b/src/stackflow/activities/sheets/WalletPickerJob.tsx index 27a3cb4e9..4e9c2d3a9 100644 --- a/src/stackflow/activities/sheets/WalletPickerJob.tsx +++ b/src/stackflow/activities/sheets/WalletPickerJob.tsx @@ -15,7 +15,7 @@ import { WalletList, type WalletListItem } from '@/components/wallet/wallet-list import { MiniappSheetHeader } from '@/components/ecosystem'; import { getKeyAppChainId, normalizeChainId } from '@biochain/bio-sdk'; import { useChainConfigs } from '@/stores/chain-config'; -import { chainConfigService } from '@/services/chain-config'; +import { chainConfigService } from '@/services/chain-config/service' type WalletPickerJobParams = { /** 限定链类型 (支持: KeyApp 内部 ID, EVM hex chainId, API 名称如 BSC) */