import { AddChainParameter, ERC1193Events, ERC1193Param, ERC1193Provider, WalletProfile, WatchAssetParams } from './types'; import { Observable } from 'rxjs'; import { JsonRpcSigner, Web3Provider } from '@ethersproject/providers'; export declare abstract class ERC1193 { #private; private zone; walletChanges: Observable; protected provider?: ERC1193Provider; abstract account?: string; abstract chainId?: number; abstract wallets: Wallet[]; /** Method used to ask the user which wallet to select if multiple wallet available */ protected abstract getWallet(): Promise; /** Observe if current account is connected */ connected$: Observable; /** * First account connected to the dapp, if any * @note This might not be the selected account in Metamask */ account$: Observable; /** * Current account. Doesn't emit until therer is a connected account * @note ⚠️ Only use if you're sure there is an account (inside a guard for example) */ currentAccount$: Observable; chainId$: Observable; message$: Observable; get ethersProvider(): Web3Provider | undefined; get ethersSigner(): JsonRpcSigner | undefined; /** Listen on event from MetaMask Provider */ protected fromEvent(wallet: Wallet, event: K, initial?: ERC1193Param): Observable>; /** Select a wallet to setup the provider & signer */ selectWallet(wallet?: Wallet): Promise; /** Select a wallet and connect to it */ enable(wallet?: Wallet): Promise; /** * Request user to change chain * @note If the error code (error.code) is 4902, then the requested chain has not been added by MetaMask, and you have to request to add it via addChain * @param id The 0x-non zero chainId or decimal number */ switchChain(id: string | number): Promise | undefined; addChain(chain: AddChainParameter | string): Promise; watchAsset(params: WatchAssetParams['options']): Promise | undefined; }