zklogin-plus
Version:
A powerful zkLogin plugin for Sui blockchain - inspired by @mysten/enoki
88 lines • 2.27 kB
TypeScript
import { SuiClient } from '@onelabs/sui/client';
import type { ZkLoginConfig, ZkLoginState, ZkLoginEvents, EphemeralKeyPairState, JwtState, UserSaltState, ZkLoginAddressState, ZkProofData, ZkLoginProvider, TransactionOptions } from '../types';
/**
* 事件发射器
*/
declare class EventEmitter<T extends Record<string, (...args: unknown[]) => void>> {
private listeners;
on<K extends keyof T>(event: K, listener: T[K]): void;
off<K extends keyof T>(event: K, listener: T[K]): void;
emit<K extends keyof T>(event: K, ...args: Parameters<T[K]>): void;
}
/**
* ZkLogin客户端
*/
export declare class ZkLoginClient extends EventEmitter<ZkLoginEvents> {
private config;
private suiClient;
private storage;
private sessionStorage;
private state;
constructor(config: ZkLoginConfig);
/**
* 获取当前状态
*/
getState(): ZkLoginState;
/**
* 获取配置
*/
getConfig(): Required<ZkLoginConfig>;
/**
* 获取Sui客户端
*/
getSuiClient(): SuiClient;
/**
* 步骤1: 生成临时密钥对
*/
generateEphemeralKeyPair(): Promise<EphemeralKeyPairState>;
/**
* 步骤2: 重定向到OAuth提供商
*/
redirectToOAuth(provider?: ZkLoginProvider, state?: string): void;
/**
* 步骤3: 处理OAuth回调并解码JWT
*/
handleOAuthCallback(url?: string): JwtState;
/**
* 步骤4: 生成用户Salt
*/
generateSalt(): Promise<UserSaltState>;
/**
* 步骤5: 生成ZkLogin地址
*/
generateAddress(): Promise<ZkLoginAddressState>;
/**
* 步骤6: 获取ZK证明
*/
getZkProof(): Promise<ZkProofData>;
/**
* 步骤7: 执行交易
*/
executeTransaction(options?: TransactionOptions): Promise<string>;
/**
* 请求测试代币
*/
requestTestTokens(): Promise<void>;
/**
* 刷新地址余额
*/
refreshBalance(): Promise<string>;
/**
* 重置所有状态
*/
reset(): void;
/**
* 从存储中恢复状态
*/
private restoreState;
/**
* 错误处理
*/
private handleError;
/**
* 调试日志
*/
private debug;
}
export {};
//# sourceMappingURL=index.d.ts.map