cleanup
This commit is contained in:
parent
cf50502238
commit
517a5d488b
@ -38,7 +38,6 @@ function Address(options) {
|
|||||||
this.key = bcoin.keypair({
|
this.key = bcoin.keypair({
|
||||||
priv: options.priv,
|
priv: options.priv,
|
||||||
pub: options.pub,
|
pub: options.pub,
|
||||||
hd: options.hd,
|
|
||||||
key: options.key,
|
key: options.key,
|
||||||
personalization: options.personalization,
|
personalization: options.personalization,
|
||||||
entropy: options.entropy,
|
entropy: options.entropy,
|
||||||
@ -229,32 +228,6 @@ Address.prototype.getPublicKey = function getPublicKey(enc) {
|
|||||||
return this.key.getPublic(enc);
|
return this.key.getPublic(enc);
|
||||||
};
|
};
|
||||||
|
|
||||||
Address.prototype.getHDPublicKey = function getPublicKey(enc) {
|
|
||||||
if (!this.key.hd)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (enc === 'base58')
|
|
||||||
return this.key.hd.xpubkey;
|
|
||||||
|
|
||||||
if (this.key.hd.isPublic)
|
|
||||||
return this.key.hd;
|
|
||||||
|
|
||||||
return this.key.hd.hdpub;
|
|
||||||
};
|
|
||||||
|
|
||||||
Address.prototype.getHDPrivateKey = function getPublicKey(enc) {
|
|
||||||
if (!this.key.hd)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!this.key.hd.isPrivate)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (enc === 'base58')
|
|
||||||
return this.key.hd.xprivkey;
|
|
||||||
|
|
||||||
return this.key.hd;
|
|
||||||
};
|
|
||||||
|
|
||||||
Address.prototype.getKeyHash = function getKeyHash() {
|
Address.prototype.getKeyHash = function getKeyHash() {
|
||||||
if (this._hash)
|
if (this._hash)
|
||||||
return this._hash;
|
return this._hash;
|
||||||
@ -535,20 +508,6 @@ Address.prototype.__defineGetter__('address', function() {
|
|||||||
return this.getAddress();
|
return this.getAddress();
|
||||||
});
|
});
|
||||||
|
|
||||||
Address.prototype.__defineGetter__('realType', function() {
|
|
||||||
if (this.type === 'scripthash')
|
|
||||||
return this.subtype;
|
|
||||||
return this.type;
|
|
||||||
});
|
|
||||||
|
|
||||||
Address.prototype.__defineGetter__('hdPrivateKey', function() {
|
|
||||||
return this.getHDPrivateKey();
|
|
||||||
});
|
|
||||||
|
|
||||||
Address.prototype.__defineGetter__('hdPublicKey', function() {
|
|
||||||
return this.getHDPublicKey();
|
|
||||||
});
|
|
||||||
|
|
||||||
Address.prototype.toJSON = function toJSON(encrypt) {
|
Address.prototype.toJSON = function toJSON(encrypt) {
|
||||||
return {
|
return {
|
||||||
v: 1,
|
v: 1,
|
||||||
|
|||||||
111
lib/bcoin/hd.js
111
lib/bcoin/hd.js
@ -756,6 +756,117 @@ HDPrivateKey.prototype.deriveString = function deriveString(path) {
|
|||||||
return child;
|
return child;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
HDPrivateKey.prototype.toJSON = function toJSON(encrypt) {
|
||||||
|
var json = {
|
||||||
|
v: 1,
|
||||||
|
name: 'keypair',
|
||||||
|
encrypted: encrypt ? true : false
|
||||||
|
};
|
||||||
|
|
||||||
|
if (this.hd) {
|
||||||
|
if (this.hd.xprivkey) {
|
||||||
|
if (this.hd.seed) {
|
||||||
|
json.mnemonic = encrypt
|
||||||
|
? encrypt(this.hd.seed.mnemonic)
|
||||||
|
: this.hd.seed.mnemonic;
|
||||||
|
json.passphrase = encrypt
|
||||||
|
? encrypt(this.hd.seed.passphrase)
|
||||||
|
: this.hd.seed.passphrase;
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
json.xpriv = encrypt
|
||||||
|
? encrypt(this.hd.xprivkey)
|
||||||
|
: this.hd.xprivkey;
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
json.xpub = this.hd.xpubkey;
|
||||||
|
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._key.priv) {
|
||||||
|
json.priv = encrypt
|
||||||
|
? encrypt(this.getPrivate('base58'))
|
||||||
|
: this.getPrivate('base58');
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
json.pub = this.getPublic('hex');
|
||||||
|
return json;
|
||||||
|
};
|
||||||
|
|
||||||
|
HDPrivateKey.fromJSON = function fromJSON(json, decrypt) {
|
||||||
|
var key, priv, pub, compressed, xprivkey;
|
||||||
|
var path = {};
|
||||||
|
|
||||||
|
assert.equal(json.v, 1);
|
||||||
|
assert.equal(json.name, 'keypair');
|
||||||
|
|
||||||
|
if (json.encrypted && !decrypt)
|
||||||
|
throw new Error('Cannot decrypt address');
|
||||||
|
|
||||||
|
if (json.mnemonic) {
|
||||||
|
return new KeyPair({
|
||||||
|
key: bcoin.hd.priv({
|
||||||
|
seed: bcoin.hd.seed({
|
||||||
|
mnemonic: json.encrypted
|
||||||
|
? decrypt(json.mnemonic)
|
||||||
|
: json.mnemonic,
|
||||||
|
passphrase: json.encrypted
|
||||||
|
? decrypt(json.passphrase)
|
||||||
|
: json.passphrase
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json.xpriv) {
|
||||||
|
xprivkey = json.xpriv;
|
||||||
|
if (json.encrypted)
|
||||||
|
xprivkey = decrypt(xprivkey);
|
||||||
|
return new KeyPair({
|
||||||
|
key: bcoin.hd.priv({
|
||||||
|
xkey: xprivkey
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json.xpub) {
|
||||||
|
return new KeyPair({
|
||||||
|
key: bcoin.hd.pub({
|
||||||
|
xkey: json.xpub
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json.priv) {
|
||||||
|
priv = json.priv;
|
||||||
|
if (json.encrypted)
|
||||||
|
priv = decrypt(priv);
|
||||||
|
|
||||||
|
key = KeyPair.fromSecret(json.priv);
|
||||||
|
priv = key.priv;
|
||||||
|
compressed = key.compressed;
|
||||||
|
return new KeyPair({
|
||||||
|
priv: priv,
|
||||||
|
compressed: compressed
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json.pub) {
|
||||||
|
pub = bcoin.utils.toArray(json.pub, 'hex');
|
||||||
|
compressed = pub[0] !== 0x04;
|
||||||
|
return new KeyPair({
|
||||||
|
pub: pub,
|
||||||
|
compressed: compressed
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HD Public Key
|
* HD Public Key
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -464,10 +464,6 @@ Wallet.prototype._init = function init() {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.__defineGetter__('primary', function() {
|
|
||||||
return this.current;
|
|
||||||
});
|
|
||||||
|
|
||||||
Wallet.prototype._getAddressTable = function() {
|
Wallet.prototype._getAddressTable = function() {
|
||||||
var addresses = {};
|
var addresses = {};
|
||||||
var i, address;
|
var i, address;
|
||||||
@ -636,25 +632,23 @@ Wallet.prototype.removeAddress = function removeAddress(address) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getPrivateKey = function getPrivateKey(enc) {
|
Wallet.prototype.getPrivateKey = function getPrivateKey(enc) {
|
||||||
return this.primary.getPrivateKey(enc);
|
return this.current.getPrivateKey(enc);
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getScript = function getScript() {
|
Wallet.prototype.getScript = function getScript() {
|
||||||
return this.primary.getScript();
|
return this.current.getScript();
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getScriptHash =
|
Wallet.prototype.getScriptHash = function getScriptHash() {
|
||||||
Wallet.prototype.getScripthash = function getScripthash() {
|
return this.current.getScriptHash();
|
||||||
return this.primary.getScriptHash();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getScriptAddress =
|
Wallet.prototype.getScriptAddress = function getScriptAddress() {
|
||||||
Wallet.prototype.getScriptaddress = function getScriptaddress() {
|
|
||||||
return this.current.getScriptAddress();
|
return this.current.getScriptAddress();
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getPublicKey = function getPublicKey(enc) {
|
Wallet.prototype.getPublicKey = function getPublicKey(enc) {
|
||||||
return this.primary.getPublicKey(enc);
|
return this.current.getPublicKey(enc);
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.createKey = function createKey(change, index) {
|
Wallet.prototype.createKey = function createKey(change, index) {
|
||||||
@ -695,16 +689,16 @@ Wallet.prototype.createKey = function createKey(change, index) {
|
|||||||
|
|
||||||
Wallet.prototype.getKeyHash =
|
Wallet.prototype.getKeyHash =
|
||||||
Wallet.prototype.getKeyhash = function getKeyhash() {
|
Wallet.prototype.getKeyhash = function getKeyhash() {
|
||||||
return this.primary.getKeyHash();
|
return this.current.getKeyHash();
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getKeyAddress =
|
Wallet.prototype.getKeyAddress =
|
||||||
Wallet.prototype.getKeyaddress = function getKeyaddress() {
|
Wallet.prototype.getKeyaddress = function getKeyaddress() {
|
||||||
return this.primary.getKeyAddress();
|
return this.current.getKeyAddress();
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getHash = function getHash() {
|
Wallet.prototype.getHash = function getHash() {
|
||||||
return this.primary.getHash();
|
return this.current.getHash();
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.getAddress = function getAddress() {
|
Wallet.prototype.getAddress = function getAddress() {
|
||||||
@ -734,12 +728,12 @@ Wallet.prototype.fill = function fill(tx, address, fee) {
|
|||||||
items = unspent.filter(function(item) {
|
items = unspent.filter(function(item) {
|
||||||
var output = item.tx.outputs[item.index];
|
var output = item.tx.outputs[item.index];
|
||||||
if (bcoin.script.isScripthash(output.script)) {
|
if (bcoin.script.isScripthash(output.script)) {
|
||||||
if (this.primary.type === 'scripthash')
|
if (this.current.type === 'scripthash')
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (bcoin.script.isMultisig(output.script)) {
|
if (bcoin.script.isMultisig(output.script)) {
|
||||||
if (this.primary.n > 1)
|
if (this.current.n > 1)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user