UNPKG

@keccak256-evg/passport-sdk

Version:

T-REX Passport SDK for interacting with Passport and Registry contracts

93 lines (92 loc) 2.63 kB
import { UnifiedPassportSDKConfig } from './types/provider'; import { Address, WalletPassportResult, PassportInfo, PendingBindRequest, PassportRequest } from './types'; /** * 统一的 Passport SDK - 支持任何 EIP-1193 兼容的 provider * * 兼容的 provider 包括: * - MetaMask (window.ethereum) * - WalletConnect * - Coinbase Wallet * - Trust Wallet * - 任何实现 EIP-1193 标准的钱包 */ export declare class UnifiedPassportSDK { private config; private publicClient; private walletClient; private registryAddress; constructor(config: UnifiedPassportSDKConfig); /** * 获取当前使用的 provider 信息 */ getProviderInfo(): { isMetaMask: boolean; isCoinbaseWallet: boolean; chainId: string | undefined; selectedAddress: string | undefined; }; /** * 请求连接钱包 */ connectWallet(): Promise<string[]>; /** * 获取当前账户 */ getAccounts(): Promise<string[]>; /** * 切换网络 */ switchChain(): Promise<void>; /** * 添加网络到钱包 */ addChain(): Promise<void>; /** * 创建 Passport */ createPassport(request: PassportRequest, signature: `0x${string}`): Promise<string>; /** * 检查钱包是否有 Passport */ checkWalletHasPassport(walletAddress: Address): Promise<WalletPassportResult>; /** * 获取 Passport 信息 */ getPassportInfo(passportAddress: Address): Promise<PassportInfo>; /** * 请求绑定钱包 */ requestBindWallet(passportAddress: Address, walletAddress: Address): Promise<string>; /** * 接受绑定请求 */ acceptBindRequest(passportAddress: Address): Promise<string>; /** * 拒绝绑定请求 */ rejectBindRequest(passportAddress: Address): Promise<string>; /** * 解绑钱包 */ unbindWallet(passportAddress: Address): Promise<string>; /** * 取消绑定请求 */ cancelBindRequest(passportAddress: Address, walletAddress: Address): Promise<string>; /** * 获取待处理绑定请求信息 */ getPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<PendingBindRequest>; /** * 监听 provider 事件 */ onAccountsChanged(callback: (accounts: string[]) => void): void; /** * 监听链切换事件 */ onChainChanged(callback: (chainId: string) => void): void; /** * 移除事件监听器 */ removeListener(eventName: string, callback: (...args: any[]) => void): void; }