select appropriate Bitcore when building/signing tx proposal
This commit is contained in:
parent
06b63e0311
commit
58cb560b79
|
@ -7,7 +7,10 @@ var log = require('npmlog');
|
||||||
log.debug = log.verbose;
|
log.debug = log.verbose;
|
||||||
log.disableColor();
|
log.disableColor();
|
||||||
|
|
||||||
var Bitcore = require('bitcore-lib');
|
var Bitcore = {
|
||||||
|
'btc': require('bitcore-lib'),
|
||||||
|
'bch': require('bitcore-lib-cash'),
|
||||||
|
};
|
||||||
|
|
||||||
var Common = require('../common');
|
var Common = require('../common');
|
||||||
var Constants = Common.Constants,
|
var Constants = Common.Constants,
|
||||||
|
@ -139,7 +142,7 @@ TxProposal.prototype._updateStatus = function() {
|
||||||
TxProposal.prototype._buildTx = function() {
|
TxProposal.prototype._buildTx = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
var t = new Bitcore.Transaction();
|
var t = new Bitcore[self.coin].Transaction();
|
||||||
|
|
||||||
$.checkState(Utils.checkValueInCollection(self.addressType, Constants.SCRIPT_TYPES));
|
$.checkState(Utils.checkValueInCollection(self.addressType, Constants.SCRIPT_TYPES));
|
||||||
|
|
||||||
|
@ -158,7 +161,7 @@ TxProposal.prototype._buildTx = function() {
|
||||||
_.each(self.outputs, function(o) {
|
_.each(self.outputs, function(o) {
|
||||||
$.checkState(o.script || o.toAddress, 'Output should have either toAddress or script specified');
|
$.checkState(o.script || o.toAddress, 'Output should have either toAddress or script specified');
|
||||||
if (o.script) {
|
if (o.script) {
|
||||||
t.addOutput(new Bitcore.Transaction.Output({
|
t.addOutput(new Bitcore[self.coin].Transaction.Output({
|
||||||
script: o.script,
|
script: o.script,
|
||||||
satoshis: o.amount
|
satoshis: o.amount
|
||||||
}));
|
}));
|
||||||
|
@ -322,21 +325,23 @@ TxProposal.prototype.addAction = function(copayerId, type, comment, signatures,
|
||||||
TxProposal.prototype._addSignaturesToBitcoreTx = function(tx, signatures, xpub) {
|
TxProposal.prototype._addSignaturesToBitcoreTx = function(tx, signatures, xpub) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
var bitcore = Bitcore[self.coin];
|
||||||
|
|
||||||
if (signatures.length != this.inputs.length)
|
if (signatures.length != this.inputs.length)
|
||||||
throw new Error('Number of signatures does not match number of inputs');
|
throw new Error('Number of signatures does not match number of inputs');
|
||||||
|
|
||||||
var i = 0,
|
var i = 0,
|
||||||
x = new Bitcore.HDPublicKey(xpub);
|
x = new bitcore.HDPublicKey(xpub);
|
||||||
|
|
||||||
_.each(signatures, function(signatureHex) {
|
_.each(signatures, function(signatureHex) {
|
||||||
var input = self.inputs[i];
|
var input = self.inputs[i];
|
||||||
try {
|
try {
|
||||||
var signature = Bitcore.crypto.Signature.fromString(signatureHex);
|
var signature = bitcore.crypto.Signature.fromString(signatureHex);
|
||||||
var pub = x.deriveChild(self.inputPaths[i]).publicKey;
|
var pub = x.deriveChild(self.inputPaths[i]).publicKey;
|
||||||
var s = {
|
var s = {
|
||||||
inputIndex: i,
|
inputIndex: i,
|
||||||
signature: signature,
|
signature: signature,
|
||||||
sigtype: Bitcore.crypto.Signature.SIGHASH_ALL,
|
sigtype: bitcore.crypto.Signature.SIGHASH_ALL,
|
||||||
publicKey: pub,
|
publicKey: pub,
|
||||||
};
|
};
|
||||||
tx.inputs[i].addSignature(tx, s);
|
tx.inputs[i].addSignature(tx, s);
|
||||||
|
|
|
@ -54,6 +54,7 @@ TxProposal.fromObj = function(obj) {
|
||||||
return TxProposalAction.fromObj(action);
|
return TxProposalAction.fromObj(action);
|
||||||
});
|
});
|
||||||
x.outputOrder = obj.outputOrder;
|
x.outputOrder = obj.outputOrder;
|
||||||
|
x.coin = obj.coin || Defaults.COIN;
|
||||||
x.network = obj.network;
|
x.network = obj.network;
|
||||||
x.fee = obj.fee;
|
x.fee = obj.fee;
|
||||||
x.feePerKb = obj.feePerKb;
|
x.feePerKb = obj.feePerKb;
|
||||||
|
|
|
@ -13,6 +13,10 @@ var tingodb = require('tingodb')({
|
||||||
});
|
});
|
||||||
|
|
||||||
var Bitcore = require('bitcore-lib');
|
var Bitcore = require('bitcore-lib');
|
||||||
|
var Bitcore_ = {
|
||||||
|
btc: Bitcore,
|
||||||
|
bch: require('bitcore-lib-cash')
|
||||||
|
};
|
||||||
|
|
||||||
var Common = require('../../lib/common');
|
var Common = require('../../lib/common');
|
||||||
var Utils = Common.Utils;
|
var Utils = Common.Utils;
|
||||||
|
|
Loading…
Reference in New Issue