@soundsright/connector
Version:
soundsright wallet connector
55 lines (54 loc) • 1.7 kB
TypeScript
/// <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;
};