keyring: remove keypair.
This commit is contained in:
parent
3cac0a96d2
commit
3a43a9aefa
@ -91,7 +91,6 @@ var global = utils.global;
|
|||||||
* @property {Function} chain - {@link Chain} constructor.
|
* @property {Function} chain - {@link Chain} constructor.
|
||||||
* @property {Function} mempool - {@link Mempool} constructor.
|
* @property {Function} mempool - {@link Mempool} constructor.
|
||||||
* @property {Function} mempoolentry - {@link MempoolEntry} constructor.
|
* @property {Function} mempoolentry - {@link MempoolEntry} constructor.
|
||||||
* @property {Function} keypair - {@link KeyPair} constructor.
|
|
||||||
* @property {Function} hd - {@link HD} constructor.
|
* @property {Function} hd - {@link HD} constructor.
|
||||||
* @property {Function} address - {@link Address} constructor.
|
* @property {Function} address - {@link Address} constructor.
|
||||||
* @property {Function} wallet - {@link Wallet} constructor.
|
* @property {Function} wallet - {@link Wallet} constructor.
|
||||||
@ -164,9 +163,8 @@ function Environment() {
|
|||||||
this.chain = require('./chain');
|
this.chain = require('./chain');
|
||||||
this.mempool = require('./mempool');
|
this.mempool = require('./mempool');
|
||||||
this.mempoolentry = this.mempool.MempoolEntry;
|
this.mempoolentry = this.mempool.MempoolEntry;
|
||||||
this.keypair = require('./keypair');
|
|
||||||
this.hd = require('./hd');
|
|
||||||
this.keyring = require('./keyring');
|
this.keyring = require('./keyring');
|
||||||
|
this.hd = require('./hd');
|
||||||
this.wallet = require('./wallet');
|
this.wallet = require('./wallet');
|
||||||
this.account = this.wallet.Account;
|
this.account = this.wallet.Account;
|
||||||
this.walletdb = require('./walletdb');
|
this.walletdb = require('./walletdb');
|
||||||
|
|||||||
@ -84,7 +84,7 @@ var ec = require('./ec');
|
|||||||
var assert = utils.assert;
|
var assert = utils.assert;
|
||||||
var constants = bcoin.protocol.constants;
|
var constants = bcoin.protocol.constants;
|
||||||
var networks = bcoin.protocol.network;
|
var networks = bcoin.protocol.network;
|
||||||
var KeyPair = bcoin.keypair;
|
var KeyRing = bcoin.keyring;
|
||||||
var LRU = require('./lru');
|
var LRU = require('./lru');
|
||||||
var BufferWriter = require('./writer');
|
var BufferWriter = require('./writer');
|
||||||
var BufferReader = require('./reader');
|
var BufferReader = require('./reader');
|
||||||
@ -2141,7 +2141,7 @@ HDPublicKey.isHDPublicKey = function isHDPublicKey(obj) {
|
|||||||
* @returns {Buffer}
|
* @returns {Buffer}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HD.prototype.getPrivateKey = KeyPair.prototype.getPrivateKey;
|
HD.prototype.getPrivateKey = KeyRing.prototype.getPrivateKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get public key.
|
* Get public key.
|
||||||
@ -2151,7 +2151,7 @@ HDPublicKey.isHDPublicKey = function isHDPublicKey(obj) {
|
|||||||
* @returns {Buffer}
|
* @returns {Buffer}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HD.prototype.getPublicKey = KeyPair.prototype.getPublicKey;
|
HD.prototype.getPublicKey = KeyRing.prototype.getPublicKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sign message.
|
* Sign message.
|
||||||
@ -2161,7 +2161,7 @@ HDPublicKey.isHDPublicKey = function isHDPublicKey(obj) {
|
|||||||
* @returns {Buffer}
|
* @returns {Buffer}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HD.prototype.sign = KeyPair.prototype.sign;
|
HD.prototype.sign = KeyRing.prototype.sign;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verify message.
|
* Verify message.
|
||||||
@ -2172,7 +2172,16 @@ HDPublicKey.isHDPublicKey = function isHDPublicKey(obj) {
|
|||||||
* @returns {Boolean}
|
* @returns {Boolean}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HD.prototype.verify = KeyPair.prototype.verify;
|
HD.prototype.verify = KeyRing.prototype.verify;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert HDPrivateKey to a KeyRing.
|
||||||
|
* @returns {KeyRing}
|
||||||
|
*/
|
||||||
|
|
||||||
|
HD.prototype.toKeyRing = function toKeyRing() {
|
||||||
|
return new KeyRing(this.privateKey || this.publicKey, this.network);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the key prefers a
|
* Whether the key prefers a
|
||||||
@ -2186,22 +2195,13 @@ HDPublicKey.isHDPublicKey = function isHDPublicKey(obj) {
|
|||||||
HD.prototype.compressed = true;
|
HD.prototype.compressed = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert HDPrivateKey to a KeyPair.
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
HDPrivateKey.prototype.toKeyPair = function toKeyPair() {
|
|
||||||
return new KeyPair(this);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert HDPrivateKey to CBitcoinSecret.
|
* Convert HDPrivateKey to CBitcoinSecret.
|
||||||
* @returns {Base58String}
|
* @returns {Base58String}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HDPrivateKey.prototype.toSecret = function toSecret(network) {
|
HDPrivateKey.prototype.toSecret = function toSecret(network) {
|
||||||
return this.toKeyPair().toSecret(network);
|
return this.toKeyRing().toSecret(network);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -2373,11 +2373,11 @@ RPC.prototype.signmessagewithprivkey = function signmessagewithprivkey(args, cal
|
|||||||
key = toString(args[0]);
|
key = toString(args[0]);
|
||||||
msg = toString(args[1]);
|
msg = toString(args[1]);
|
||||||
|
|
||||||
key = bcoin.keypair.fromSecret(key).getPrivateKey();
|
key = bcoin.keyring.fromSecret(key);
|
||||||
msg = new Buffer(RPC.magic + msg, 'utf8');
|
msg = new Buffer(RPC.magic + msg, 'utf8');
|
||||||
msg = utils.hash256(msg);
|
msg = utils.hash256(msg);
|
||||||
|
|
||||||
sig = bcoin.ec.sign(msg, key);
|
sig = key.sign(msg);
|
||||||
|
|
||||||
callback(null, sig.toString('base64'));
|
callback(null, sig.toString('base64'));
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,372 +0,0 @@
|
|||||||
/*!
|
|
||||||
* keypair.js - keypair object for bcoin
|
|
||||||
* Copyright (c) 2014-2015, Fedor Indutny (MIT License)
|
|
||||||
* Copyright (c) 2014-2016, Christopher Jeffrey (MIT License).
|
|
||||||
* https://github.com/bcoin-org/bcoin
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var bcoin = require('./env');
|
|
||||||
var utils = require('./utils');
|
|
||||||
var assert = utils.assert;
|
|
||||||
var network = bcoin.protocol.network;
|
|
||||||
var BufferWriter = require('./writer');
|
|
||||||
var BufferReader = require('./reader');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents an ecdsa keypair.
|
|
||||||
* @exports KeyPair
|
|
||||||
* @constructor
|
|
||||||
* @param {Object} options
|
|
||||||
* @param {Buffer?} options.privateKey
|
|
||||||
* @param {Buffer?} options.publicKey
|
|
||||||
* @param {Boolean?} options.compressed
|
|
||||||
* @param {(Network|NetworkType)?} options.network
|
|
||||||
* @property {Buffer} privateKey
|
|
||||||
* @property {Buffer} publicKey
|
|
||||||
* @property {Boolean} compressed
|
|
||||||
* @property {Network} network
|
|
||||||
*/
|
|
||||||
|
|
||||||
function KeyPair(options) {
|
|
||||||
if (!(this instanceof KeyPair))
|
|
||||||
return new KeyPair(options);
|
|
||||||
|
|
||||||
this.network = bcoin.network.get();
|
|
||||||
this.compressed = true;
|
|
||||||
this.privateKey = null;
|
|
||||||
this.publicKey = null;
|
|
||||||
|
|
||||||
if (options)
|
|
||||||
this.fromOptions(options);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inject properties from options object.
|
|
||||||
* @private
|
|
||||||
* @param {Object} options
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.fromOptions = function fromOptions(options) {
|
|
||||||
if (options.privateKey) {
|
|
||||||
return this.fromPrivate(
|
|
||||||
options.privateKey,
|
|
||||||
options.compressed,
|
|
||||||
options.network);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.publicKey)
|
|
||||||
return this.fromPublic(options.publicKey, options.network);
|
|
||||||
|
|
||||||
throw new Error('Must provide a key.');
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiate key pair from options object.
|
|
||||||
* @param {Object} options
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.fromOptions = function fromOptions(options) {
|
|
||||||
return new KeyPair().fromOptions(options);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate a keypair.
|
|
||||||
* @param {(Network|NetworkType)?} network
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.generate = function(network) {
|
|
||||||
var key = new KeyPair();
|
|
||||||
key.network = bcoin.network.get(network);
|
|
||||||
key.privateKey = bcoin.ec.generatePrivateKey();
|
|
||||||
key.publicKey = bcoin.ec.publicKeyCreate(key.privateKey, true);
|
|
||||||
return key;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inject data from private key.
|
|
||||||
* @private
|
|
||||||
* @param {Buffer} privateKey
|
|
||||||
* @param {Boolean?} compressed
|
|
||||||
* @param {(NetworkType|Network}) network
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.fromPrivate = function fromPrivate(privateKey, compressed, network) {
|
|
||||||
assert(Buffer.isBuffer(privateKey));
|
|
||||||
this.network = bcoin.network.get(network);
|
|
||||||
this.privateKey = privateKey;
|
|
||||||
this.compressed = compressed !== false;
|
|
||||||
this.publicKey = bcoin.ec.publicKeyCreate(this.privateKey, this.compressed);
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiate key pair from a private key.
|
|
||||||
* @param {Buffer} privateKey
|
|
||||||
* @param {Boolean?} compressed
|
|
||||||
* @param {(NetworkType|Network}) network
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.fromPrivate = function fromPrivate(privateKey, compressed, network) {
|
|
||||||
return new KeyPair().fromPrivate(privateKey, compressed, network);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inject data from public key.
|
|
||||||
* @private
|
|
||||||
* @param {Buffer} privateKey
|
|
||||||
* @param {(NetworkType|Network}) network
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.fromPublic = function fromPublic(publicKey, network) {
|
|
||||||
assert(Buffer.isBuffer(publicKey));
|
|
||||||
this.network = bcoin.network.get(network);
|
|
||||||
this.publicKey = publicKey;
|
|
||||||
this.compressed = publicKey[0] <= 0x03;
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiate key pair from a public key.
|
|
||||||
* @param {Buffer} publicKey
|
|
||||||
* @param {(NetworkType|Network}) network
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.fromPublic = function fromPublic(publicKey, network) {
|
|
||||||
return new KeyPair().fromPublic(publicKey, network);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sign a message.
|
|
||||||
* @param {Buffer} msg
|
|
||||||
* @returns {Buffer} Signature in DER format.
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.sign = function sign(msg) {
|
|
||||||
assert(this.privateKey, 'Cannot sign without private key.');
|
|
||||||
return bcoin.ec.sign(msg, this.getPrivateKey());
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Verify a message.
|
|
||||||
* @param {Buffer} msg
|
|
||||||
* @param {Buffer} sig - Signature in DER format.
|
|
||||||
* @returns {Boolean}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.verify = function verify(msg, sig) {
|
|
||||||
return bcoin.ec.verify(msg, sig, this.getPublicKey());
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get private key.
|
|
||||||
* @param {String?} enc - Can be `"hex"`, `"base58"`, or `null`.
|
|
||||||
* @returns {Buffer} Private key.
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.getPrivateKey = function getPrivateKey(enc) {
|
|
||||||
if (!this.privateKey)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (enc === 'base58')
|
|
||||||
return this.toSecret();
|
|
||||||
|
|
||||||
if (enc === 'hex')
|
|
||||||
return this.privateKey.toString('hex');
|
|
||||||
|
|
||||||
return this.privateKey;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get public key.
|
|
||||||
* @param {String?} enc - Can be `"hex"`, or `null`.
|
|
||||||
* @returns {Buffer} Public key.
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.getPublicKey = function getPublicKey(enc) {
|
|
||||||
if (enc === 'base58')
|
|
||||||
return utils.toBase58(this.publicKey);
|
|
||||||
|
|
||||||
if (enc === 'hex')
|
|
||||||
return this.publicKey.toString('hex');
|
|
||||||
|
|
||||||
return this.publicKey;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert key to a CBitcoinSecret.
|
|
||||||
* @param {(Network|NetworkType)?} network
|
|
||||||
* @returns {Buffer}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.toRaw = function toRaw(network, writer) {
|
|
||||||
var p = new BufferWriter(writer);
|
|
||||||
|
|
||||||
assert(this.privateKey, 'Cannot serialize without private key.');
|
|
||||||
|
|
||||||
if (!network)
|
|
||||||
network = this.network;
|
|
||||||
|
|
||||||
network = bcoin.network.get(network);
|
|
||||||
|
|
||||||
p.writeU8(network.keyPrefix.privkey);
|
|
||||||
p.writeBytes(this.getPrivateKey());
|
|
||||||
|
|
||||||
if (this.compressed)
|
|
||||||
p.writeU8(1);
|
|
||||||
|
|
||||||
p.writeChecksum();
|
|
||||||
|
|
||||||
if (!writer)
|
|
||||||
p = p.render();
|
|
||||||
|
|
||||||
return p;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert key to a CBitcoinSecret.
|
|
||||||
* @param {(Network|NetworkType)?} network
|
|
||||||
* @returns {Base58String}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.toSecret = function toSecret(network) {
|
|
||||||
return utils.toBase58(this.toRaw(network));
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inject properties from serialized CBitcoinSecret.
|
|
||||||
* @private
|
|
||||||
* @param {Buffer} data
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.fromRaw = function fromRaw(data) {
|
|
||||||
var p = new BufferReader(data, true);
|
|
||||||
var i, prefix, version, type, key, compressed;
|
|
||||||
|
|
||||||
version = p.readU8();
|
|
||||||
|
|
||||||
for (i = 0; i < network.types.length; i++) {
|
|
||||||
type = network.types[i];
|
|
||||||
prefix = network[type].keyPrefix.privkey;
|
|
||||||
if (version === prefix)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(i < network.types.length, 'Network not found.');
|
|
||||||
|
|
||||||
key = p.readBytes(32);
|
|
||||||
|
|
||||||
if (p.left() > 4) {
|
|
||||||
assert(p.readU8() === 1, 'Bad compression flag.');
|
|
||||||
compressed = true;
|
|
||||||
} else {
|
|
||||||
compressed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.verifyChecksum();
|
|
||||||
|
|
||||||
assert(bcoin.ec.privateKeyVerify(key));
|
|
||||||
|
|
||||||
return this.fromPrivate(key, compressed, type);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inject properties from serialized CBitcoinSecret.
|
|
||||||
* @private
|
|
||||||
* @param {Base58String} secret
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.fromSecret = function fromSecret(secret) {
|
|
||||||
return this.fromRaw(utils.fromBase58(secret));
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiate a key pair from a serialized CBitcoinSecret.
|
|
||||||
* @param {Buffer} data
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.fromRaw = function fromRaw(data, enc) {
|
|
||||||
if (typeof data === 'string')
|
|
||||||
data = new Buffer(data, enc);
|
|
||||||
return new KeyPair().fromRaw(data);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiate a key pair from a serialized CBitcoinSecret.
|
|
||||||
* @param {Base58String} secret
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.fromSecret = function fromSecret(secret) {
|
|
||||||
return new KeyPair().fromSecret(secret);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert the keypair to an object suitable
|
|
||||||
* for JSON serialization.
|
|
||||||
* @returns {Object}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.toJSON = function toJSON() {
|
|
||||||
return {
|
|
||||||
network: this.network.type,
|
|
||||||
compressed: this.compressed,
|
|
||||||
privateKey: this.privateKey ? this.toSecret() : null,
|
|
||||||
publicKey: this.getPublicKey('base58')
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inject properties from json object.
|
|
||||||
* @private
|
|
||||||
* @param {Object} json
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.prototype.fromJSON = function fromJSON(json) {
|
|
||||||
var key;
|
|
||||||
|
|
||||||
if (json.privateKey)
|
|
||||||
return this.fromSecret(json.privateKey);
|
|
||||||
|
|
||||||
if (json.publicKey) {
|
|
||||||
key = utils.fromBase58(json.publicKey);
|
|
||||||
assert(bcoin.ec.publicKeyVerify(key));
|
|
||||||
return this.fromPublic(key, json.network);
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(false, 'Could not parse KeyPair JSON.');
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiate a key pair from a jsonified object.
|
|
||||||
* @param {Object} json - The jsonified key pair object.
|
|
||||||
* @returns {KeyPair}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.fromJSON = function fromJSON(json) {
|
|
||||||
return new KeyPair().fromJSON(json);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test whether an object is a key pair.
|
|
||||||
* @param {Object?} obj
|
|
||||||
* @returns {Boolean}
|
|
||||||
*/
|
|
||||||
|
|
||||||
KeyPair.isKeyPair = function isKeyPair(obj) {
|
|
||||||
return obj
|
|
||||||
&& obj.privateKey !== undefined
|
|
||||||
&& typeof obj.fromSecret === 'function';
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Expose
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = KeyPair;
|
|
||||||
@ -288,6 +288,25 @@ KeyRing.fromSecret = function fromSecret(data) {
|
|||||||
return new KeyRing().fromSecret(data);
|
return new KeyRing().fromSecret(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get private key.
|
||||||
|
* @param {String?} enc - Can be `"hex"`, `"base58"`, or `null`.
|
||||||
|
* @returns {Buffer} Private key.
|
||||||
|
*/
|
||||||
|
|
||||||
|
KeyRing.prototype.getPrivateKey = function getPrivateKey(enc) {
|
||||||
|
if (!this.privateKey)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (enc === 'base58')
|
||||||
|
return this.toSecret();
|
||||||
|
|
||||||
|
if (enc === 'hex')
|
||||||
|
return this.privateKey.toString('hex');
|
||||||
|
|
||||||
|
return this.privateKey;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get public key.
|
* Get public key.
|
||||||
* @param {String?} enc - `"hex"` or `null`.
|
* @param {String?} enc - `"hex"` or `null`.
|
||||||
|
|||||||
@ -387,7 +387,7 @@ MTX.prototype.scriptVector = function scriptVector(prev, vector, ring) {
|
|||||||
/**
|
/**
|
||||||
* Sign an input.
|
* Sign an input.
|
||||||
* @param {Number} index - Index of input being signed.
|
* @param {Number} index - Index of input being signed.
|
||||||
* @param {HDPrivateKey|KeyPair|Buffer} key - Private key.
|
* @param {Buffer} key - Private key.
|
||||||
* @param {SighashType} type
|
* @param {SighashType} type
|
||||||
* @returns {Boolean} Whether the input was able to be signed.
|
* @returns {Boolean} Whether the input was able to be signed.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -707,7 +707,6 @@ Framer.addr = function addr(hosts, writer) {
|
|||||||
/**
|
/**
|
||||||
* Create an alert packet (without a header).
|
* Create an alert packet (without a header).
|
||||||
* @param {AlertPacket} data
|
* @param {AlertPacket} data
|
||||||
* @param {Buffer|KeyPair} key
|
|
||||||
* @param {BufferWriter?} writer - A buffer writer to continue writing from.
|
* @param {BufferWriter?} writer - A buffer writer to continue writing from.
|
||||||
* @returns {Buffer} Returns a BufferWriter if `writer` was passed in.
|
* @returns {Buffer} Returns a BufferWriter if `writer` was passed in.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user