UNPKG

quiamet

Version:

The web3 inject of bearby walet to access massa blockchain

50 lines (42 loc) 1.08 kB
import { CALLBACK_ERROR } from "lib/errors"; import { MTypeTab } from "../../config/stream-keys"; import { Subject } from "../../lib/subject"; export class Account { #subject: Subject; base58?: string; accounts: string[]; constructor(subject: Subject) { this.#subject = subject; this.accounts = []; } subscribe(cb: (base58?: string) => void) { if (!cb) { throw new Error(CALLBACK_ERROR); } if (this.base58) { cb(this.base58); } const obs = this.#subject.on((msg) => { switch (msg.type) { case MTypeTab.DISCONNECT_APP_RESULT: this.base58 = undefined; break; case MTypeTab.ACCOUNT_CHANGED: this.base58 = msg.payload.base58; break; case MTypeTab.RESPONSE_CONNECT_APP: this.base58 = msg.payload.base58; break; case MTypeTab.GET_DATA: this.base58 = msg.payload.base58; break; default: return; } cb(this.base58); }); return { unsubscribe: () => obs() }; } }