@muirglacier/jellyfish-transaction
Version:
A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
42 lines • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toOPCodes = exports.toBuffer = void 0;
const mapping_1 = require("./mapping");
const data_1 = require("./data");
const dftx_1 = require("./dftx");
/**
* @param {OPCode[]} stack of OPCode
* @return Buffer presentation of OPCode[]
*/
function toBuffer(stack) {
let len = 0;
const buffers = [];
for (const opCode of stack) {
const buf = opCode.asBuffer();
buffers.push(buf);
len += buf.length;
}
return Buffer.concat(buffers, len);
}
exports.toBuffer = toBuffer;
/**
* @param {Buffer} buffer to read without VarUInt
* @return OPCode[]
*/
function toOPCodes(buffer) {
const stack = [];
while (buffer.remaining() > 0) {
stack.push(toOpCode(buffer));
}
// remap if isDeFiScript to identify DeFi Scripting
return dftx_1.remapDeFiScript(stack);
}
exports.toOPCodes = toOPCodes;
function toOpCode(buffer) {
const code = buffer.readUInt8();
if (code !== 0x00 && code <= 0x4e) {
return new data_1.OP_PUSHDATA(code, buffer);
}
return mapping_1.numAsOPCode(code);
}
//# sourceMappingURL=_buffer.js.map