Implement KeyRing.fromMultisigScript(script, i)

This commit is contained in:
Orfeas Litos 2018-12-09 22:05:31 +00:00
parent 0b70a940a3
commit 6d48e41c96
No known key found for this signature in database
GPG Key ID: D8E88F3AB8A0CEA4

View File

@ -251,6 +251,37 @@ class KeyRing {
return new this().fromScript(key, script, compress);
}
/**
* Get ith public key from multisig script.
* @private
* @param {Script} script
* @param {Number} i
* @returns {KeyRing}
*/
fromMultisigScript(script, i) {
assert(script instanceof Script, 'Non-script passed.');
assert(script.isMultisig(), 'Script must be multisig');
const n = script.getSmall(-2);
assert(i >= 1 && i <= n, 'Requested `i`th key, `n` available');
this.fromKey(script.code[i].toData());
return this;
}
/**
* Instantiate keyring from ith key in multisig script.
* @param {Script} script
* @param {Number} i
* @returns {KeyRing}
*/
static fromMultisigScript(script, i) {
return new this().fromMultisigScript(script, i);
}
/**
* Calculate WIF serialization size.
* @returns {Number}