@sphereon/ssi-sdk-web3.headless-provider
Version:
73 lines • 2.72 kB
TypeScript
import { TransactionRequest } from '@ethersproject/abstract-provider';
import { ethers, Signer } from 'ethers';
import { ErrorWithCode } from './errors';
import { EventEmitter } from './event-emitter';
import { ChainConnection, IWeb3Provider, PendingRequest, Web3Method, Web3ProviderConfig } from './types';
export declare class EthersHeadlessProvider extends EventEmitter implements IWeb3Provider {
private readonly chains;
private _pendingRequests;
private _signers;
private _activeChainId;
private _rpc;
private _config;
private _authorizedRequests;
constructor(signers: Signer[], chains: ChainConnection[], config?: Web3ProviderConfig);
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: string[];
}): 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>;
getCurrentWallet(): Signer;
waitAuthorization<T>(requestInfo: PendingRequest['requestInfo'], task: () => Promise<T>, permanentPermission?: boolean, methodOverride?: string): Promise<unknown>;
private consumeRequest;
private consumeAllRequests;
getPendingRequests(): PendingRequest['requestInfo'][];
getPendingRequestCount(requestKind?: Web3Method): number;
authorize(requestKind: Web3Method): Promise<void>;
reject(requestKind: Web3Method, reason?: ErrorWithCode): Promise<void>;
authorizeAll(): void;
rejectAll(reason?: ErrorWithCode): void;
changeAccounts(signers: Signer[]): Promise<void>;
private getCurrentChain;
getRpc(): ethers.providers.JsonRpcProvider;
getNetwork(): ChainConnection;
getNetworks(): ChainConnection[];
addNetwork(chainId: number, rpcUrl: string): void;
switchNetwork(chainId: number): void;
}
//# sourceMappingURL=ethers-headless-provider.d.ts.map