UNPKG

@vbyte/btc-dev

Version:

Batteries-included toolset for plebian bitcoin development

14 lines (13 loc) 577 B
import { Buff } from '@vbyte/buff'; import { Assert } from '@vbyte/micro-lib'; const WIT_LENGTH_BYTE = 1; export function get_witness_size(witness) { const stack = witness.map(e => Buff.bytes(e)); const size = stack.reduce((prev, next) => prev + next.length, 0); const vsize = Math.ceil(WIT_LENGTH_BYTE + size / 4); return { total: size, vsize }; } export function assert_witness(witness) { Assert.ok(Array.isArray(witness), 'witness must be an array'); Assert.ok(witness.every(e => Buff.is_bytes(e)), 'witness must be an array of strings or bytes'); }