mtx/script: minor. optimize script.fromProgram.
This commit is contained in:
parent
29e03892e7
commit
2145cadc10
@ -260,11 +260,10 @@ MTX.prototype.verify = function verify(flags) {
|
|||||||
* (if workers are enabled).
|
* (if workers are enabled).
|
||||||
* @param {VerifyFlags?} [flags=STANDARD_VERIFY_FLAGS]
|
* @param {VerifyFlags?} [flags=STANDARD_VERIFY_FLAGS]
|
||||||
* @returns {Promise}
|
* @returns {Promise}
|
||||||
* @returns {Boolean} Whether the inputs are valid.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MTX.prototype.verifyAsync = function verifyAsync(flags) {
|
MTX.prototype.verifyAsync = function verifyAsync(flags) {
|
||||||
return TX.prototype.verify.call(this, this.view, flags);
|
return TX.prototype.verifyAsync.call(this, this.view, flags);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -291,7 +290,7 @@ MTX.prototype.getInputValue = function getInputValue() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
MTX.prototype.getInputAddresses = function getInputAddresses() {
|
MTX.prototype.getInputAddresses = function getInputAddresses() {
|
||||||
return TX.prototype.getInputValue.call(this, this.view);
|
return TX.prototype.getInputAddresses.call(this, this.view);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -312,6 +311,15 @@ MTX.prototype.getInputHashes = function getInputHashes(enc) {
|
|||||||
return TX.prototype.getInputHashes.call(this, this.view, enc);
|
return TX.prototype.getInputHashes.call(this, this.view, enc);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all address hashes.
|
||||||
|
* @returns {Hash[]} hashes
|
||||||
|
*/
|
||||||
|
|
||||||
|
MTX.prototype.getHashes = function getHashes(enc) {
|
||||||
|
return TX.prototype.getHashes.call(this, this.view, enc);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test whether the transaction has
|
* Test whether the transaction has
|
||||||
* all coins available/filled.
|
* all coins available/filled.
|
||||||
@ -1200,7 +1208,7 @@ MTX.prototype.fund = co(function* fund(coins, options) {
|
|||||||
|
|
||||||
assert(options, 'Options are required.');
|
assert(options, 'Options are required.');
|
||||||
assert(options.changeAddress, 'Change address is required.');
|
assert(options.changeAddress, 'Change address is required.');
|
||||||
assert(this.inputs.length === 0, 'TX is already filled.');
|
assert(this.inputs.length === 0, 'TX is already funded.');
|
||||||
|
|
||||||
// Select necessary coins.
|
// Select necessary coins.
|
||||||
select = yield this.selectCoins(coins, options);
|
select = yield this.selectCoins(coins, options);
|
||||||
|
|||||||
@ -778,7 +778,6 @@ TX.prototype.verifyInput = function verifyInput(index, coin, flags) {
|
|||||||
* @param {CoinView} view
|
* @param {CoinView} view
|
||||||
* @param {VerifyFlags?} [flags=STANDARD_VERIFY_FLAGS]
|
* @param {VerifyFlags?} [flags=STANDARD_VERIFY_FLAGS]
|
||||||
* @returns {Promise}
|
* @returns {Promise}
|
||||||
* @returns {Boolean} Whether the inputs are valid.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
TX.prototype.verifyAsync = co(function* verifyAsync(view, flags) {
|
TX.prototype.verifyAsync = co(function* verifyAsync(view, flags) {
|
||||||
@ -797,7 +796,7 @@ TX.prototype.verifyAsync = co(function* verifyAsync(view, flags) {
|
|||||||
* verified.
|
* verified.
|
||||||
* @param {Coin|Output} coin - Previous output.
|
* @param {Coin|Output} coin - Previous output.
|
||||||
* @param {VerifyFlags} [flags=STANDARD_VERIFY_FLAGS]
|
* @param {VerifyFlags} [flags=STANDARD_VERIFY_FLAGS]
|
||||||
* @returns {Boolean} Whether the input is valid.
|
* @returns {Promise}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
TX.prototype.verifyInputAsync = co(function* verifyInputAsync(index, coin, flags) {
|
TX.prototype.verifyInputAsync = co(function* verifyInputAsync(index, coin, flags) {
|
||||||
|
|||||||
@ -1779,11 +1779,23 @@ Script.fromNulldata = function fromNulldata(flags) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Script.prototype.fromProgram = function fromProgram(version, data) {
|
Script.prototype.fromProgram = function fromProgram(version, data) {
|
||||||
|
var op;
|
||||||
|
|
||||||
assert(util.isNumber(version) && version >= 0 && version <= 16);
|
assert(util.isNumber(version) && version >= 0 && version <= 16);
|
||||||
assert(Buffer.isBuffer(data) && data.length >= 2 && data.length <= 40);
|
assert(Buffer.isBuffer(data) && data.length >= 2 && data.length <= 40);
|
||||||
this.push(Opcode.fromSmall(version));
|
|
||||||
this.push(data);
|
op = Opcode.fromSmall(version);
|
||||||
this.compile();
|
|
||||||
|
this.raw = new Buffer(2 + data.length);
|
||||||
|
this.raw[0] = op.value;
|
||||||
|
this.raw[1] = data.length;
|
||||||
|
data.copy(this.raw, 2);
|
||||||
|
|
||||||
|
data = this.raw.slice(2, 2 + data.length);
|
||||||
|
|
||||||
|
this.code.push(op);
|
||||||
|
this.code.push(new Opcode(data.length, data));
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user