@dgpub/prime-sdk
Version:
Etherspot Prime (Account Abstraction) SDK
48 lines (47 loc) • 2.07 kB
TypeScript
import { BytesLike, TypedDataField, Wallet } from 'ethers';
import type UniversalProvider from '@walletconnect/universal-provider';
import { UniqueSubject } from '../../common';
import { NetworkNames } from '../../network';
export interface WalletProvider {
readonly type?: string;
readonly wallet?: Wallet;
readonly address: string;
readonly address$?: UniqueSubject<string>;
readonly networkName?: NetworkNames;
readonly networkName$?: UniqueSubject<NetworkNames>;
signMessage(message: BytesLike): Promise<string>;
signTypedData(typedData: TypedDataField[], message: any, accountAddress: string): Promise<string>;
}
export interface Web3Provider {
send(payload: any, callback: (err: any, response?: any) => any): any;
}
export interface RequestArguments {
method: string;
params?: unknown[] | object;
}
export interface Web3eip1193Provider {
request(args: RequestArguments): any;
}
export interface WalletConnectConnector {
accounts: string[];
chainId: number;
signPersonalMessage(params: any[]): Promise<any>;
on(event: string, callback: (error: Error | null, payload: any | null) => void): void;
}
export interface WalletLike {
privateKey: string;
}
export declare class EthereumProvider {
accounts: string[];
signer: InstanceType<typeof UniversalProvider>;
chainId: number;
request<T = unknown>(args: RequestArguments): Promise<T>;
sendAsync(args: RequestArguments, callback: (error: Error | null, response: any) => void): void;
disconnect(): Promise<void>;
on(event: string, callback: (error: Error | null, payload: any | null) => void): void;
once(event: string, callback: (error: Error | null, payload: any | null) => void): void;
removeListener(event: string, callback: (error: Error | null, payload: any | null) => void): void;
off(event: string, callback: (error: Error | null, payload: any | null) => void): void;
readonly isWalletConnect?: boolean;
}
export type WalletProviderLike = string | WalletLike | WalletProvider | EthereumProvider;