UNPKG

@keccak256-evg/passport-sdk

Version:

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

142 lines (141 loc) 4.56 kB
import { PublicClient, WalletClient, Chain } from 'viem'; import { ViemPassportSDKConfig, Address, PassportInfo, WalletPassportResult, PendingBindRequest, PassportRequest, RegistryMethods, PassportMethods } from './types'; import { Environment } from './constants'; export declare class ViemPassportSDK implements RegistryMethods, PassportMethods { readonly config: ViemPassportSDKConfig; readonly publicClient: PublicClient; walletClient?: WalletClient; readonly registryAddress: Address; constructor(config: ViemPassportSDKConfig); /** * 设置 Wallet Client */ setWalletClient(walletClient: WalletClient): ViemPassportSDK; /** * 获取 Registry 合约实例 */ private getRegistryContract; /** * 获取 Passport 合约实例 */ private getPassportContract; /** * 创建 Passport */ createPassport(request: PassportRequest, signature: `0x${string}`): Promise<any>; /** * 检查钱包是否有 Passport */ checkWalletHasPassport(walletAddress: Address): Promise<WalletPassportResult>; /** * 获取 Passport 信息 */ getPassportInfo(passportAddress: Address): Promise<PassportInfo>; /** * 预测 Passport 地址 */ predictPassportAddress(walletAddress: Address): Promise<Address>; /** * 升级我的 Passport */ upgradeMyPassport(): Promise<any>; /** * 获取 Passport 实现地址 */ getPassportImplementation(): Promise<Address>; /** * 获取 Passport ID 计数器 */ getPassportIdCounter(): Promise<number>; /** * 通过 Passport ID 获取合约地址 */ getPassportAddressById(passportId: number): Promise<Address>; /** * 检查钱包是否被废除 */ isWalletAbolished(walletAddress: Address): Promise<boolean>; /** * 检查钱包是否从特定 Passport 解绑 */ isWalletUnboundFromPassport(passportId: number, walletAddress: Address): Promise<boolean>; /** * 检查钱包是否有特定 Passport */ hasPassport(walletAddress: Address, passportContractAddress: Address): Promise<boolean>; /** * 解绑钱包 */ unbindWallet(passportAddress: Address): Promise<any>; /** * 请求绑定钱包 */ requestBindWallet(passportAddress: Address, walletAddress: Address): Promise<any>; /** * 获取待处理绑定请求信息 */ getPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<PendingBindRequest>; /** * 取消绑定请求 */ cancelBindRequest(passportAddress: Address, walletAddress: Address): Promise<any>; /** * 接受绑定请求 */ acceptBindRequest(passportAddress: Address): Promise<any>; /** * 拒绝绑定请求 */ rejectBindRequest(passportAddress: Address): Promise<any>; /** * 获取待处理绑定钱包列表 */ getPendingBindWallets(passportAddress: Address, account: Address): Promise<readonly Address[]>; /** * 检查 Passport 是否需要升级 */ checkPassportUpgrade(passportAddress: Address): Promise<boolean>; /** * 获取 Passport 当前实现地址 */ getPassportImplementationAddress(passportAddress: Address): Promise<Address>; /** * 获取 Passport ID */ getPassportId(passportAddress: Address): Promise<number>; /** * 获取 PassportRegistry 合约地址 */ getRegistryAddress(passportAddress: Address): Promise<Address>; /** * 检查钱包是否绑定到 Passport */ isWalletBound(passportAddress: Address, walletAddress: Address): Promise<boolean>; /** * 获取所有绑定钱包 */ getBoundWallets(passportAddress: Address): Promise<readonly Address[]>; /** * 获取钱包数量 */ getWalletCount(passportAddress: Address): Promise<number>; /** * 通过索引获取绑定钱包 */ getBoundWalletByIndex(passportAddress: Address, index: number): Promise<Address>; /** * 检查是否有待处理绑定请求 */ hasPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<boolean>; /** * 取消过期的绑定请求 */ cancelExpiredBindRequest(passportAddress: Address, walletAddress: Address): Promise<any>; } export declare function createViemPassportSDK(config: { rpcUrl: string; chain?: Chain; env?: Environment; registryAddress?: Address; account?: any; }): ViemPassportSDK;