UNPKG

opnet

Version:

The perfect library for building Bitcoin-based applications.

38 lines (33 loc) 1.3 kB
import { stringToBuffer } from '../utils/StringToBuffer.js'; import { Epoch, EpochMiner } from './Epoch.js'; import { IEpochSubmission, IEpochWithSubmissions, RawEpochSubmission, RawEpochWithSubmissions, } from './interfaces/IEpoch.js'; export class EpochSubmission implements IEpochSubmission { public readonly submissionTxId: Buffer; public readonly submissionTxHash: Buffer; public readonly submissionHash: Buffer; public readonly confirmedAt: string; public readonly epochProposed: EpochMiner; constructor(data: RawEpochSubmission) { this.submissionTxId = stringToBuffer(data.submissionTxId); this.submissionTxHash = stringToBuffer(data.submissionTxHash); this.submissionHash = stringToBuffer(data.submissionHash); this.confirmedAt = data.confirmedAt; this.epochProposed = new EpochMiner(data.epochProposed); } } export class EpochWithSubmissions extends Epoch implements IEpochWithSubmissions { public readonly submissions?: readonly EpochSubmission[]; constructor(data: RawEpochWithSubmissions) { super(data); if (data.submissions) { this.submissions = Object.freeze( data.submissions.map((sub) => new EpochSubmission(sub)), ); } } }