bitcore-lib-zcash/lib/transaction/spenddescription.js

63 lines
1.6 KiB
JavaScript

'use strict';
var _ = require('lodash');
var $ = require('../util/preconditions');
var BN = require('../crypto/bn');
var buffer = require('buffer');
var BufferWriter = require('../encoding/bufferwriter');
var BufferUtil = require('../util/buffer');
var JSUtil = require('../util/js');
function SpendDescription(params) {
if (!(this instanceof SpendDescription)) {
return new SpendDescription(params);
}
if (params) {
return this._fromObject(params);
}
}
SpendDescription.fromObject = function(obj) {
$.checkArgument(_.isObject(obj));
var spenddesc = new SpendDescription();
return spenddesc._fromObject(obj);
};
SpendDescription.prototype._fromObject = function(params) {
// TODO: Populate from parameters, but for now it's ok to do nothing.
return this;
};
SpendDescription.prototype.toObject = SpendDescription.prototype.toJSON = function toObject() {
// TODO: Populate JSON object, but for now it's ok to return a placeholder.
var obj = {};
return obj;
};
SpendDescription.fromBufferReader = function(br) {
var obj = new SpendDescription();
obj.cv = br.read(32);
obj.anchor = br.read(32);
obj.nullifier = br.read(32);
obj.rk = br.read(32);
obj.proof = br.read(48 + 96 + 48);
obj.spendAuthSig = br.read(64);
return obj;
};
SpendDescription.prototype.toBufferWriter = function(writer) {
var i;
if (!writer) {
writer = new BufferWriter();
}
writer.write(this.cv);
writer.write(this.anchor);
writer.write(this.nullifier);
writer.write(this.rk);
writer.write(this.proof);
writer.write(this.spendAuthSig);
return writer;
};
module.exports = SpendDescription;