@sphereon/ssi-sdk-web3.headless-provider
Version:
90 lines • 2.86 kB
TypeScript
import { TransactionRequest } from '@ethersproject/abstract-provider';
import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
import { IAgentContext, IKeyManager } from '@veramo/core';
export type rpcMethods = 'eth_call' | 'eth_getBalance';
export interface IWeb3Provider {
isMetaMask?: boolean;
request(args: {
method: 'eth_call';
params: any[];
}): Promise<any>;
request(args: {
method: 'eth_getBalance';
params: string[];
}): Promise<string>;
request(args: {
method: 'eth_accounts';
params: [];
}): Promise<string[]>;
request(args: {
method: 'eth_requestAccounts';
params: [];
}): Promise<string[]>;
request(args: {
method: 'net_version';
params: [];
}): Promise<number>;
request(args: {
method: 'eth_chainId';
params: [];
}): Promise<string>;
request(args: {
method: 'personal_sign';
params: string[];
}): Promise<string>;
request(args: {
method: 'eth_signTypedData' | 'eth_signTypedData_v1';
params: [object[], string];
}): Promise<string>;
request(args: {
method: 'eth_signTypedData_v3' | 'eth_signTypedData_v4';
params: string[];
}): Promise<string>;
request(args: {
method: 'eth_sendTransaction';
params: TransactionRequest[];
}): Promise<string>;
request(args: {
method: rpcMethods | string;
params?: any[];
}): Promise<any>;
emit(eventName: string, ...args: any[]): void;
on(eventName: string, listener: (eventName: string) => void): void;
}
export type IRequiredContext = IAgentContext<IKeyManager>;
export interface PendingRequest {
requestInfo: {
method: string;
params: any[];
};
reject: (err: {
message?: string;
code?: number;
}) => void;
authorize: () => Promise<void>;
}
export interface ChainConnection {
chainId: number;
rpcUrl: string;
}
export interface Web3ProviderConfig {
debug?: boolean;
logger: typeof console.log;
}
export interface TypedDataSigner {
_signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): Promise<string>;
}
export declare enum Web3Method {
RequestAccounts = "eth_requestAccounts",
Accounts = "eth_accounts",
SendTransaction = "eth_sendTransaction",
SwitchEthereumChain = "wallet_switchEthereumChain",
AddEthereumChain = "wallet_addEthereumChain",
SignMessage = "personal_sign",
SignTypedData = "eth_signTypedData",
SignTypedDataV1 = "eth_signTypedData_v1",
SignTypedDataV3 = "eth_signTypedData_v3",
SignTypedDataV4 = "eth_signTypedData_v4"
}
export declare function without<T>(list: T[], item: T): T[];
//# sourceMappingURL=types.d.ts.map