mv Utils.deriveAddress -> Address.derive
This commit is contained in:
parent
795097bf04
commit
2bec543c6f
|
@ -126,32 +126,6 @@ Utils.buildTx = function(txp) {
|
|||
return t;
|
||||
};
|
||||
|
||||
Utils.deriveAddress = function(scriptType, publicKeyRing, path, m, network) {
|
||||
$.checkArgument(_.contains(_.values(Constants.SCRIPT_TYPES), scriptType));
|
||||
|
||||
var publicKeys = _.map(publicKeyRing, function(item) {
|
||||
var xpub = new Bitcore.HDPublicKey(item.xPubKey);
|
||||
return xpub.derive(path).publicKey;
|
||||
});
|
||||
|
||||
var bitcoreAddress;
|
||||
switch (scriptType) {
|
||||
case Constants.SCRIPT_TYPES.P2SH:
|
||||
bitcoreAddress = Address.createMultisig(publicKeys, m, network);
|
||||
break;
|
||||
case Constants.SCRIPT_TYPES.P2PKH:
|
||||
$.checkState(_.isArray(publicKeys) && publicKeys.length == 1);
|
||||
bitcoreAddress = Address.fromPublicKey(publicKeys[0], network);
|
||||
break;
|
||||
}
|
||||
|
||||
return {
|
||||
address: bitcoreAddress.toString(),
|
||||
path: path,
|
||||
publicKeys: _.invoke(publicKeys, 'toString'),
|
||||
};
|
||||
};
|
||||
|
||||
Utils.formatAmount = function(satoshis, unit, opts) {
|
||||
var UNITS = {
|
||||
btc: {
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
'use strict';
|
||||
|
||||
var $ = require('preconditions').singleton();
|
||||
var _ = require('lodash');
|
||||
|
||||
var Bitcore = require('bitcore-lib');
|
||||
var Constants = require('../common/constants');
|
||||
|
||||
|
@ -39,4 +42,40 @@ Address.fromObj = function(obj) {
|
|||
return x;
|
||||
};
|
||||
|
||||
Address._deriveAddress = function(scriptType, publicKeyRing, path, m, network) {
|
||||
$.checkArgument(_.contains(_.values(Constants.SCRIPT_TYPES), scriptType));
|
||||
|
||||
var publicKeys = _.map(publicKeyRing, function(item) {
|
||||
var xpub = new Bitcore.HDPublicKey(item.xPubKey);
|
||||
return xpub.derive(path).publicKey;
|
||||
});
|
||||
|
||||
var bitcoreAddress;
|
||||
switch (scriptType) {
|
||||
case Constants.SCRIPT_TYPES.P2SH:
|
||||
bitcoreAddress = Bitcore.Address.createMultisig(publicKeys, m, network);
|
||||
break;
|
||||
case Constants.SCRIPT_TYPES.P2PKH:
|
||||
$.checkState(_.isArray(publicKeys) && publicKeys.length == 1);
|
||||
bitcoreAddress = Bitcore.Address.fromPublicKey(publicKeys[0], network);
|
||||
break;
|
||||
}
|
||||
|
||||
return {
|
||||
address: bitcoreAddress.toString(),
|
||||
path: path,
|
||||
publicKeys: _.invoke(publicKeys, 'toString'),
|
||||
};
|
||||
};
|
||||
|
||||
Address.derive = function(walletId, scriptType, publicKeyRing, path, m, network, isChange) {
|
||||
var raw = Address._deriveAddress(scriptType, publicKeyRing, path, m, network);
|
||||
return Address.create(_.extend(raw, {
|
||||
walletId: walletId,
|
||||
type: scriptType,
|
||||
isChange: isChange,
|
||||
}));
|
||||
};
|
||||
|
||||
|
||||
module.exports = Address;
|
||||
|
|
|
@ -10,7 +10,7 @@ var Address = require('./address');
|
|||
var AddressManager = require('./addressmanager');
|
||||
var Bitcore = require('bitcore-lib');
|
||||
|
||||
var Common = require('../common');
|
||||
var Constants = require('../common/constants');
|
||||
|
||||
function Copayer() {};
|
||||
|
||||
|
@ -41,7 +41,7 @@ Copayer.create = function(opts) {
|
|||
signature: opts.signature,
|
||||
}];
|
||||
|
||||
var derivationStrategy = opts.derivationStrategy || Common.Constants.DERIVATION_STRATEGIES.BIP45;
|
||||
var derivationStrategy = opts.derivationStrategy || Constants.DERIVATION_STRATEGIES.BIP45;
|
||||
if (AddressManager.supportsCopayerBranches(derivationStrategy)) {
|
||||
x.addressManager = AddressManager.create({
|
||||
derivationStrategy: derivationStrategy,
|
||||
|
@ -87,13 +87,7 @@ Copayer.prototype.createAddress = function(wallet, isChange) {
|
|||
$.checkState(wallet.isComplete());
|
||||
|
||||
var path = this.addressManager.getNewAddressPath(isChange);
|
||||
var raw = Address.create(Common.Utils.deriveAddress(wallet.addressType, wallet.publicKeyRing, path, wallet.m, wallet.network));
|
||||
var address = Address.create(_.extend(raw, {
|
||||
walletId: wallet.id,
|
||||
type: wallet.addressType,
|
||||
}));
|
||||
|
||||
address.isChange = isChange;
|
||||
var address = Address.derive(wallet.id, wallet.addressType, wallet.publicKeyRing, path, wallet.m, wallet.network, isChange);
|
||||
return address;
|
||||
};
|
||||
|
||||
|
|
|
@ -9,8 +9,7 @@ var Address = require('./address');
|
|||
var Copayer = require('./copayer');
|
||||
var AddressManager = require('./addressmanager');
|
||||
|
||||
var Common = require('../common');
|
||||
var Constants = Common.Constants;
|
||||
var Constants = require('../common/constants');
|
||||
|
||||
function Wallet() {};
|
||||
|
||||
|
@ -155,12 +154,7 @@ Wallet.prototype.createAddress = function(isChange) {
|
|||
var self = this;
|
||||
|
||||
var path = this.addressManager.getNewAddressPath(isChange);
|
||||
var raw = Common.Utils.deriveAddress(this.addressType, this.publicKeyRing, path, this.m, this.network);
|
||||
var address = Address.create(_.extend(raw, {
|
||||
walletId: self.id,
|
||||
type: self.addressType,
|
||||
}));
|
||||
address.isChange = isChange;
|
||||
var address = Address.derive(self.id, this.addressType, this.publicKeyRing, path, this.m, this.network, isChange);
|
||||
return address;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue