UNPKG

@btc-vision/transaction

Version:

OPNet transaction library allows you to create and sign transactions for the OPNet network.

37 lines 1.16 kB
import { varuint } from '@btc-vision/bitcoin'; /** * Convert witness stack to script witness buffer * @param {Uint8Array[]} witness - The witness stack * @returns {Uint8Array} */ export function witnessStackToScriptWitness(witness) { let buffer = new Uint8Array(0); function concatBuffers(a, b) { const result = new Uint8Array(a.length + b.length); result.set(a, 0); result.set(b, a.length); return result; } function writeSlice(slice) { buffer = concatBuffers(buffer, slice); } function writeVarInt(i) { const currentLen = buffer.length; const varintLen = varuint.encodingLength(i); const newBuffer = new Uint8Array(currentLen + varintLen); newBuffer.set(buffer, 0); buffer = newBuffer; varuint.encode(i, buffer, currentLen); } function writeVarSlice(slice) { writeVarInt(slice.length); writeSlice(slice); } function writeVector(vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice); } writeVector(witness); return buffer; } //# sourceMappingURL=WitnessUtils.js.map