UNPKG

quasvel

Version:

Access and interact with Aragon Organizations and their apps.

46 lines (37 loc) 1.35 kB
import { SubscriptionCallback, SubscriptionResult } from '@aragon/connect-types' import { subscription } from '@aragon/connect-core' import { SignerData, IAgreementConnector } from '../types' import Signature from '../models/Signature' export default class Signer { #connector: IAgreementConnector readonly id: string readonly address: string readonly agreementId: string constructor(data: SignerData, connector: IAgreementConnector) { this.#connector = connector this.id = data.id this.address = data.address this.agreementId = data.agreementId } async disconnect() { await this.#connector.disconnect() } async hasSigned(versionNumber: string): Promise<boolean> { const versionId = `${this.agreementId}-version-${versionNumber}` const signatures = await this.signatures() return signatures.some( (signature: Signature) => signature.versionId === versionId ) } async signatures({ first = 1000, skip = 0 } = {}): Promise<Signature[]> { return this.#connector.signatures(this.id, first, skip) } onSignatures( { first = 1000, skip = 0 } = {}, callback?: SubscriptionCallback<Signature[]> ): SubscriptionResult<Signature[]> { return subscription<Signature[]>(callback, (callback) => this.#connector.onSignatures(this.id, first, skip, callback) ) } }