opnet
Version:
The perfect library for building Bitcoin-based applications.
31 lines (30 loc) • 1.14 kB
JavaScript
import { Address } from '@btc-vision/transaction';
import { stringBase64ToBuffer } from '../utils/StringToBuffer.js';
export class BlockWitnessAPI {
trusted;
signature;
timestamp;
proofs;
identity;
publicKey;
constructor(data) {
this.trusted = data.trusted;
this.signature = stringBase64ToBuffer(data.signature);
this.timestamp = data.timestamp;
this.proofs = Object.freeze(data.proofs.map((proof) => stringBase64ToBuffer(proof)));
this.identity = data.identity ? stringBase64ToBuffer(data.identity) : undefined;
this.publicKey = data.publicKey ? Address.fromString(data.publicKey) : undefined;
}
}
export class BlockWitness {
blockNumber;
witnesses;
constructor(data) {
this.blockNumber =
typeof data.blockNumber === 'string' ? BigInt(data.blockNumber) : data.blockNumber;
this.witnesses = Object.freeze(data.witnesses.map((witness) => new BlockWitnessAPI(witness)));
}
}
export function parseBlockWitnesses(rawWitnesses) {
return Object.freeze(rawWitnesses.map((rawWitness) => new BlockWitness(rawWitness)));
}