tx: do not track flags byte.

This commit is contained in:
Christopher Jeffrey 2017-08-07 00:54:49 -07:00
parent 3bc47f5a3c
commit 36523e2f56
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
5 changed files with 7 additions and 44 deletions

View File

@ -70,11 +70,6 @@ MTX.prototype.fromOptions = function fromOptions(options) {
this.version = options.version;
}
if (options.flag != null) {
assert(util.isU8(options.flag), 'Flag must be a uint8.');
this.flag = options.flag;
}
if (options.inputs) {
assert(Array.isArray(options.inputs), 'Inputs must be an array.');
for (const input of options.inputs)

View File

@ -47,7 +47,6 @@ function TX(options) {
return new TX(options);
this.version = 1;
this.flag = 1;
this.inputs = [];
this.outputs = [];
this.locktime = 0;
@ -84,11 +83,6 @@ TX.prototype.fromOptions = function fromOptions(options) {
this.version = options.version;
}
if (options.flag != null) {
assert(util.isU8(options.flag), 'Flag must be a uint8.');
this.flag = options.flag;
}
if (options.inputs) {
assert(Array.isArray(options.inputs), 'Inputs must be an array.');
for (const input of options.inputs)
@ -138,7 +132,6 @@ TX.prototype.clone = function clone() {
TX.prototype.inject = function inject(tx) {
this.version = tx.version;
this.flag = tx.flag;
for (const input of tx.inputs)
this.inputs.push(input.clone());
@ -2095,7 +2088,6 @@ TX.prototype.format = function format(view, entry, index) {
date: date,
index: index,
version: this.version,
flag: this.flag,
inputs: this.inputs.map((input) => {
const coin = view ? view.getOutputFor(input) : null;
return input.format(coin);
@ -2160,7 +2152,6 @@ TX.prototype.getJSON = function getJSON(network, view, entry, index) {
date: date,
index: index,
version: this.version,
flag: this.flag,
inputs: this.inputs.map((input) => {
const coin = view ? view.getCoinFor(input) : null;
return input.getJSON(network, coin);
@ -2182,13 +2173,11 @@ TX.prototype.getJSON = function getJSON(network, view, entry, index) {
TX.prototype.fromJSON = function fromJSON(json) {
assert(json, 'TX data is required.');
assert(util.isU32(json.version), 'Version must be a uint32.');
assert(util.isU8(json.flag), 'Flag must be a uint8.');
assert(Array.isArray(json.inputs), 'Inputs must be an array.');
assert(Array.isArray(json.outputs), 'Outputs must be an array.');
assert(util.isU32(json.locktime), 'Locktime must be a uint32.');
this.version = json.version;
this.flag = json.flag;
for (const input of json.inputs)
this.inputs.push(Input.fromJSON(input));
@ -2296,11 +2285,9 @@ TX.prototype.fromWitnessReader = function fromWitnessReader(br) {
assert(br.readU8() === 0, 'Non-zero marker.');
let flag = br.readU8();
let flags = br.readU8();
assert(flag !== 0, 'Flag byte is zero.');
this.flag = flag;
assert(flags !== 0, 'Flags byte is zero.');
const inCount = br.readVarint();
@ -2315,8 +2302,8 @@ TX.prototype.fromWitnessReader = function fromWitnessReader(br) {
let witness = 0;
let hasWitness = false;
if (flag & 1) {
flag ^= 1;
if (flags & 1) {
flags ^= 1;
witness = br.offset;
@ -2329,7 +2316,7 @@ TX.prototype.fromWitnessReader = function fromWitnessReader(br) {
witness = (br.offset - witness) + 2;
}
if (flag !== 0)
if (flags !== 0)
throw new Error('Unknown witness flag.');
// We'll never be able to reserialize
@ -2422,7 +2409,7 @@ TX.prototype.writeWitness = function writeWitness(bw) {
bw.writeU32(this.version);
bw.writeU8(0);
bw.writeU8(this.flag);
bw.writeU8(1);
bw.writeVarint(this.inputs.length);

View File

@ -35,7 +35,6 @@ function createGenesisBlock(options) {
const tx = new TX({
version: 1,
flag: 1,
inputs: [{
prevout: {
hash: encoding.NULL_HASH,

View File

@ -287,7 +287,6 @@ describe('Script', function() {
// Funding transaction.
const prev = new TX({
version: 1,
flag: 1,
inputs: [{
prevout: {
hash: encoding.NULL_HASH,
@ -307,7 +306,6 @@ describe('Script', function() {
// Spending transaction.
const tx = new TX({
version: 1,
flag: 1,
inputs: [{
prevout: {
hash: prev.hash('hex'),
@ -329,8 +327,7 @@ describe('Script', function() {
tx.refresh();
}
let err;
let res;
let err, res;
try {
res = Script.verify(input, witness, output, tx, 0, amount, flags);
} catch (e) {

View File

@ -340,7 +340,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY + 1);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -356,7 +355,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -372,7 +370,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -388,7 +385,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -404,7 +400,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY + 1);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -420,7 +415,6 @@ describe('TX', function() {
const view = new CoinView();
const tx = new TX({
version: 1,
flag: 1,
inputs: [
createInput(Math.floor(consensus.MAX_MONEY / 2), view)[0],
createInput(Math.floor(consensus.MAX_MONEY / 2), view)[0],
@ -440,7 +434,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [
{
@ -466,7 +459,6 @@ describe('TX', function() {
const view = new CoinView();
const tx = new TX({
version: 1,
flag: 1,
inputs: [
createInput(Math.floor(consensus.MAX_MONEY / 2), view)[0],
createInput(Math.floor(consensus.MAX_MONEY / 2), view)[0],
@ -487,7 +479,6 @@ describe('TX', function() {
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -515,7 +506,6 @@ describe('TX', function() {
const [input, view] = createInput(MAX_SAFE_INTEGER);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -531,7 +521,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -547,7 +536,6 @@ describe('TX', function() {
const [input, view] = createInput(MAX_SAFE_INTEGER);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [{
script: [],
@ -564,7 +552,6 @@ describe('TX', function() {
const view = new CoinView();
const tx = new TX({
version: 1,
flag: 1,
inputs: [
createInput(MAX, view)[0],
createInput(MAX, view)[0],
@ -584,7 +571,6 @@ describe('TX', function() {
const [input, view] = createInput(consensus.MAX_MONEY);
const tx = new TX({
version: 1,
flag: 1,
inputs: [input],
outputs: [
{
@ -610,7 +596,6 @@ describe('TX', function() {
const view = new CoinView();
const tx = new TX({
version: 1,
flag: 1,
inputs: [
createInput(MAX, view)[0],
createInput(MAX, view)[0],