UNPKG

nerve-sdk-js

Version:
67 lines (54 loc) 1.75 kB
var Serializers = require("../api/serializers"); var P2PHKSignature = function P2PHKSignature() { this.pubkey = null; this.signData = null; }; var TransactionSignatures = function TransactionSignatures(_isPersonalSign) { this.signatures = null; this.isPersonalSign = false; if (_isPersonalSign) { this.isPersonalSign = _isPersonalSign; } this.serialize = function () { var bw = new Serializers(); if (this.signatures && this.signatures.length > 0) { for (var i = 0; i < this.signatures.length; i++) { var signature = this.signatures[i]; bw.getBufWriter().writeUInt8(signature.pubkey.length); bw.getBufWriter().write(signature.pubkey); bw.writeBytesWithLength(signature.signData); } if (this.isPersonalSign) { bw.writeBoolean(this.isPersonalSign); } } return bw.getBufWriter().toBuffer(); }; this.parse = function (bufferReader) { this.signatures = []; this.isPersonalSign = false; while (!bufferReader.isFinished() && bufferReader.remainLength() > 32) { var length = bufferReader.readUInt8(); var sign = new P2PHKSignature(); sign.pubkey = bufferReader.slice(length); sign.signData = bufferReader.readBytesByLength(); this.signatures.push(sign); } if (!bufferReader.isFinished()) { this.isPersonalSign = bufferReader.readBoolean(); } }; this.addSign = function (pubkey, signValue) { if (!this.signatures || this.signatures == null) { this.signatures = []; } var sign = new P2PHKSignature(); sign.pubkey = pubkey; sign.signData = signValue; this.signatures.push(sign); }; }; module.exports = { TransactionSignatures, P2PHKSignature };