📄 src/web3/wallet/registry.ts
D-OPEN SOVEREIGN
1import type { WalletConnector, WalletType } from '../client/types';
2
3// Module-level connector registry keyed by WalletType. Populated by
4// bootstrapWebSDK() (vue/bootstrap.ts) at init time; consumed by
5// session/mutations.ts and session/writeClient.ts, which only have a
6// WalletType string (not a connector instance) at the point a mutation fires.
7const connectors = new Map<WalletType, WalletConnector>();
8
9export function registerConnector(connector: WalletConnector): void {
10 connectors.set(connector.type, connector);
11}
12
13export function getConnector(type: WalletType): WalletConnector | undefined {
14 return connectors.get(type);
15}
16
17export function getRegisteredConnectors(): WalletConnector[] {
18 return Array.from(connectors.values());
19}
20