/** * 定义钱包 SDK 的统一接口,用于封装不同平台的钱包接入逻辑(例如 Luffa、MetaMask、Phantom)。 * */ import { ISDK } from "./ISDK"; export interface IWalletSDK extends ISDK { /** * 连接钱包 * * 触发钱包连接流程(如唤起 Luffa 钱包授权、MetaMask 插件弹窗)。 * 成功后返回钱包地址和可选的公钥。 * * @param cb 回调函数 * - address: 钱包地址(字符串) * - publicKey?: 钱包公钥(部分钱包可能返回,用于后续签名验证) */ connect(cb: (address: string, publicKey?: string) => void): void; /** * 断开钱包连接 * * 清理当前钱包的会话信息(如地址、公钥、缓存的 session)。 * 调用后 getWalletAddress() 应返回 null。 */ disconnect(): void; /** * 获取当前钱包地址 * * 如果用户已连接钱包,则返回钱包地址。 * 如果尚未连接,则返回 null。 */ getWalletAddress(): string | null; // signMessage(message: string, nonce: number, options?: any): Promise; // buildTransaction(payload: any): Promise; // signTransaction(rawData: any): Promise; // sendTransaction(signedData: any): Promise<{ hash: string }>; }