UNPKG

reiciendisenim

Version:

A simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps

39 lines (32 loc) 1.19 kB
import { EventEmitter } from 'events' import { AbstractConnectorArguments, ConnectorUpdate, ConnectorEvent } from '@web3-vue3/types' export abstract class AbstractConnector extends EventEmitter { public readonly supportedChainIds?: number[] constructor({ supportedChainIds }: AbstractConnectorArguments = {}) { super() this.supportedChainIds = supportedChainIds } public abstract async activate(): Promise<ConnectorUpdate> public abstract async getProvider(): Promise<any> public abstract async getChainId(): Promise<number | string> public abstract async getAccount(): Promise<null | string> public abstract deactivate(): void protected emitUpdate(update: ConnectorUpdate): void { if (__DEV__) { console.log(`Emit '${ConnectorEvent.Update}'`, update) } this.emit(ConnectorEvent.Update, update) } protected emitError(error: Error): void { if (__DEV__) { console.log(`Emit '${ConnectorEvent.Error}'`, error) } this.emit(ConnectorEvent.Error, error) } protected emitDeactivate(): void { if (__DEV__) { console.log(`Emit '${ConnectorEvent.Deactivate}'`) } this.emit(ConnectorEvent.Deactivate) } }