Txout
This commit is contained in:
parent
42130c78a0
commit
ced35a07eb
|
@ -0,0 +1,54 @@
|
|||
var BN = require('./bn');
|
||||
var BufferReader = require('./bufferreader');
|
||||
var BufferWriter = require('./bufferwriter');
|
||||
var Varint = require('./varint');
|
||||
var Script = require('./script');
|
||||
|
||||
var Txout = function Txout(valuebn, varint, script) {
|
||||
if (!(this instanceof Txout))
|
||||
return new Txout(valuebn, varint, script);
|
||||
if (valuebn instanceof BN) {
|
||||
this.set({
|
||||
valuebn: valuebn,
|
||||
varint: varint,
|
||||
script: script
|
||||
});
|
||||
} else if (valuebn) {
|
||||
var obj = valuebn;
|
||||
this.set(obj);
|
||||
}
|
||||
};
|
||||
|
||||
Txout.prototype.set = function(obj) {
|
||||
this.valuebn = obj.valuebn || this.valuebn;
|
||||
this.varint = obj.varint || this.varint;
|
||||
this.script = obj.script || this.script;
|
||||
return this;
|
||||
};
|
||||
|
||||
Txout.prototype.fromBuffer = function(buf) {
|
||||
return this.fromBufferReader(BufferReader(buf));
|
||||
};
|
||||
|
||||
Txout.prototype.fromBufferReader = function(br) {
|
||||
this.valuebn = br.readUInt64LEBN();
|
||||
this.varint = Varint(br.readVarintNum());
|
||||
this.script = Script().fromBuffer(br.buffer(this.varint.toNumber()));
|
||||
return this;
|
||||
};
|
||||
|
||||
Txout.prototype.toBuffer = function() {
|
||||
var bw = new BufferWriter();
|
||||
return this.toBufferWriter(bw).concat();
|
||||
};
|
||||
|
||||
Txout.prototype.toBufferWriter = function(bw) {
|
||||
if (!bw)
|
||||
bw = new BufferWriter();
|
||||
bw.writeUInt64LEBN(this.valuebn);
|
||||
bw.write(this.varint.buf);
|
||||
bw.write(this.script.toBuffer());
|
||||
return bw;
|
||||
};
|
||||
|
||||
module.exports = Txout;
|
|
@ -0,0 +1,78 @@
|
|||
var should = require('chai').should();
|
||||
var BN = require('../lib/bn');
|
||||
var Txout = require('../lib/txout');
|
||||
var Script = require('../lib/script');
|
||||
var Varint = require('../lib/varint');
|
||||
var BufferReader = require('../lib/bufferreader');
|
||||
var BufferWriter = require('../lib/bufferwriter');
|
||||
|
||||
describe('Txout', function() {
|
||||
|
||||
it('should make a new txout', function() {
|
||||
var txout = new Txout();
|
||||
should.exist(txout);
|
||||
txout = Txout();
|
||||
should.exist(txout);
|
||||
});
|
||||
|
||||
var valuebn = BN(5);
|
||||
var script = Script().fromString("OP_CHECKMULTISIG");
|
||||
var varint = Varint(script.toBuffer().length);
|
||||
var txout = new Txout().set({
|
||||
valuebn: valuebn,
|
||||
varint: varint,
|
||||
script: script
|
||||
});
|
||||
|
||||
describe('#set', function() {
|
||||
|
||||
it('should set this object', function() {
|
||||
var txout = new Txout().set({
|
||||
valuebn: valuebn,
|
||||
varint: varint,
|
||||
script: script
|
||||
});
|
||||
should.exist(txout.valuebn);
|
||||
should.exist(txout.varint);
|
||||
should.exist(txout.script);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#fromBuffer', function() {
|
||||
|
||||
it('should make this txin from this known buffer', function() {
|
||||
var txout = Txout().fromBuffer(new Buffer('050000000000000001ae', 'hex'));
|
||||
txout.toBuffer().toString('hex').should.equal('050000000000000001ae');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#fromBufferReader', function() {
|
||||
|
||||
it('should make this txin from this known buffer', function() {
|
||||
var txout = Txout().fromBufferReader(BufferReader(new Buffer('050000000000000001ae', 'hex')));
|
||||
txout.toBuffer().toString('hex').should.equal('050000000000000001ae');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#toBuffer', function() {
|
||||
|
||||
it('should output this known buffer', function() {
|
||||
var txout = Txout().fromBufferReader(BufferReader(new Buffer('050000000000000001ae', 'hex')));
|
||||
txout.toBuffer().toString('hex').should.equal('050000000000000001ae');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#toBufferWriter', function() {
|
||||
|
||||
it('should output this known buffer', function() {
|
||||
var txout = Txout().fromBufferReader(BufferReader(new Buffer('050000000000000001ae', 'hex')));
|
||||
txout.toBufferWriter().concat().toString('hex').should.equal('050000000000000001ae');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
Loading…
Reference in New Issue