@muirglacier/jellyfish-transaction
Version:
A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin
33 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CWitnessProgram = void 0;
const smart_buffer_1 = require("smart-buffer");
const jellyfish_buffer_1 = require("@muirglacier/jellyfish-buffer");
const tx_composer_1 = require("./tx_composer");
/**
* Composable WitnessProgram
*/
class CWitnessProgram extends jellyfish_buffer_1.ComposableBuffer {
composers(wp) {
return [
jellyfish_buffer_1.ComposableBuffer.uInt32(() => wp.version, v => wp.version = v),
jellyfish_buffer_1.ComposableBuffer.hex(32, () => wp.hashPrevouts, v => wp.hashPrevouts = v),
jellyfish_buffer_1.ComposableBuffer.hex(32, () => wp.hashSequence, v => wp.hashSequence = v),
jellyfish_buffer_1.ComposableBuffer.hexBEBufferLE(32, () => wp.outpointTxId, v => wp.outpointTxId = v),
jellyfish_buffer_1.ComposableBuffer.uInt32(() => wp.outpointIndex, v => wp.outpointIndex = v),
jellyfish_buffer_1.ComposableBuffer.single(() => wp.scriptCode, v => wp.scriptCode = v, v => new tx_composer_1.CScript(v)),
jellyfish_buffer_1.ComposableBuffer.satoshiAsBigNumber(() => wp.value, v => wp.value = v),
jellyfish_buffer_1.ComposableBuffer.uInt32(() => wp.sequence, v => wp.sequence = v),
jellyfish_buffer_1.ComposableBuffer.hex(32, () => wp.hashOutputs, v => wp.hashOutputs = v),
jellyfish_buffer_1.ComposableBuffer.uInt32(() => wp.lockTime, v => wp.lockTime = v),
jellyfish_buffer_1.ComposableBuffer.uInt32(() => wp.hashType, v => wp.hashType = v)
];
}
asBuffer() {
const buffer = new smart_buffer_1.SmartBuffer();
this.toBuffer(buffer);
return buffer.toBuffer();
}
}
exports.CWitnessProgram = CWitnessProgram;
//# sourceMappingURL=tx_segwit.js.map