UNPKG

@soundsright/connector

Version:

soundsright wallet connector

55 lines (54 loc) 1.7 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { ethers } from 'ethers'; import { NetworkConfig } from '@soundsright/config'; export declare enum ConnectType { MetaMask = "MetaMask", WalletConnect = "WalletConnect" } export declare type ConnectionState = { provider?: ethers.providers.BaseProvider; signer?: ethers.Signer; account?: string; chainId?: number; connected?: boolean; }; export declare abstract class Connection extends EventEmitter { readonly state: ConnectionState; protected constructor(); protected emitChange(event: string, error?: Error): void; abstract connect(): Promise<any>; abstract switchChain(chainId: number): Promise<void>; abstract addToken(options: AddTokenOptions): Promise<void>; abstract disconnect(): Promise<void>; } export declare class NoEthereumProviderError extends Error { constructor(); } export declare class AddressAccessFailedError extends Error { constructor(); } export declare class WalletNotConnectedError extends Error { constructor(); } export declare class WalletNetworkError extends Error { network: NetworkConfig; constructor(network: NetworkConfig); } export declare type UriHandler = (uri: string, disconnect: () => void) => () => void; export declare type ConnectOptions = { uriHandler?: UriHandler; }; export declare type WalletConfig = { name: string; shortName: string; color: string; logo: string; universalLink?: string; deepLink?: string; }; export declare type AddTokenOptions = { address: string; symbol: string; decimals: number; };