/** * Wallet Standard Discovery for Solana Wallets * * Simple implementation to get Solana wallets using the Wallet Standard API */ import { StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base'; import type { Transaction } from '@solana/web3.js'; import type { WalletMetadata } from '@meshconnect/uwc-types'; import { LegacyInjectedSolanaWalletAdapter } from './legacy-injected-solana-adapter'; /** * Telemetry sink for the legacy injected-Solana fallback. Fires only when a * wallet declares `solana.injectedId` and a global exists at that path but is * NOT a valid Solana provider (wrong method surface) — the actionable * "the wallet changed its injected provider" signal. An absent global is a * normal not-installed case and is intentionally not reported. */ export type LegacyInjectedSolanaDiscoveryFailure = (info: { injectedId: string; walletName: string; }) => void; export interface ExtendedStandardWalletAdapter extends StandardWalletAdapter { customFunctions: ('sendSerializedTransaction' | 'signSerializedTransaction' | 'signAllSerializedTransactions' | 'signSolanaTransactionBytes')[]; sendSerializedTransaction: (transaction: unknown, rpcUrl: string) => Promise; signSerializedTransaction: (transaction: unknown) => Promise; signAllSerializedTransactions: (transactions: unknown[]) => Promise; signSolanaTransactionBytes: (transaction: unknown, connectedAddress?: string) => Promise; } export type SolanaAdapter = ExtendedStandardWalletAdapter | StandardWalletAdapter | LegacyInjectedSolanaWalletAdapter; export interface WalletStandardInfo { uuid: string; name: string; chains: string[]; features: string[]; adapter: SolanaAdapter | undefined; /** * True only for entries produced by the legacy injected-Solana fallback (a * `window[injectedId]` global), false/absent for Wallet Standard registry * wallets. Lets detection report which discovery path matched (MFS-805). */ legacyInjected?: boolean; } /** * Gets all available Solana wallets using Wallet Standard */ export declare function getSolanaWallets(expectedWallets?: WalletMetadata[], usingIntegratedBrowser?: boolean, onLegacyDiscoveryFailure?: LegacyInjectedSolanaDiscoveryFailure): Promise; //# sourceMappingURL=wallet-standard-discovery.d.ts.map