Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@bitgo/utxo-lib

Package Overview
Dependencies
Maintainers
4
Versions
171
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bitgo/utxo-lib - npm Package Compare versions

Comparing version 1.10.0-rc.12 to 2.0.0-rc.0

dist/src/address.d.ts

125

dist/src/address.js

@@ -1,99 +0,40 @@

var Buffer = require('safe-buffer').Buffer;
var bech32 = require('bech32');
var bs58check = require('bs58check');
var bscript = require('./script');
var btemplates = require('./templates');
var networks = require('./networks');
var typeforce = require('typeforce');
var types = require('./types');
function fromBase58Check(address) {
var payload = bs58check.decode(address);
// TODO: 4.0.0, move to "toOutputScript"
if (payload.length < 21)
throw new TypeError(address + ' is too short');
if (payload.length > 22)
throw new TypeError(address + ' is too long');
var multibyte = payload.length === 22;
var offset = multibyte ? 2 : 1;
var version = multibyte ? payload.readUInt16BE(0) : payload[0];
var hash = payload.slice(offset);
return { version: version, hash: hash };
}
function fromBech32(address) {
var result = bech32.decode(address);
var data = bech32.fromWords(result.words.slice(1));
return {
version: result.words[0],
prefix: result.prefix,
data: Buffer.from(data)
};
}
function toBase58Check(hash, version) {
typeforce(types.tuple(types.Hash160bit, types.UInt16), arguments);
// Zcash adds an extra prefix resulting in a bigger (22 bytes) payload. We identify them Zcash by checking if the
// version is multibyte (2 bytes instead of 1)
var multibyte = version > 0xff;
var size = multibyte ? 22 : 21;
var offset = multibyte ? 2 : 1;
var payload = Buffer.allocUnsafe(size);
multibyte ? payload.writeUInt16BE(version, 0) : payload.writeUInt8(version, 0);
hash.copy(payload, offset);
return bs58check.encode(payload);
}
function toBech32(data, version, prefix) {
var words = bech32.toWords(data);
words.unshift(version);
return bech32.encode(prefix, words);
}
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toBech32 = exports.fromBech32 = exports.fromBase58Check = exports.toBase58Check = exports.toOutputScript = exports.fromOutputScript = void 0;
/**
* @prettier
*/
const bitcoinjs = require("bitcoinjs-lib");
const zcashAddress = require("../src/bitgo/zcash/address");
const coins_1 = require("./coins");
function fromOutputScript(outputScript, network) {
network = network || networks.bitcoin;
if (btemplates.pubKeyHash.output.check(outputScript))
return toBase58Check(bscript.compile(outputScript).slice(3, 23), network.pubKeyHash);
if (btemplates.scriptHash.output.check(outputScript))
return toBase58Check(bscript.compile(outputScript).slice(2, 22), network.scriptHash);
if (btemplates.witnessPubKeyHash.output.check(outputScript))
return toBech32(bscript.compile(outputScript).slice(2, 22), 0, network.bech32);
if (btemplates.witnessScriptHash.output.check(outputScript))
return toBech32(bscript.compile(outputScript).slice(2, 34), 0, network.bech32);
throw new Error(bscript.toASM(outputScript) + ' has no matching Address');
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
return zcashAddress.fromOutputScript(outputScript, network);
}
return bitcoinjs.address.fromOutputScript(outputScript, network);
}
exports.fromOutputScript = fromOutputScript;
function toOutputScript(address, network) {
network = network || networks.bitcoin;
var decode;
try {
decode = fromBase58Check(address);
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
return zcashAddress.toOutputScript(address, network);
}
catch (e) { }
if (decode) {
if (decode.version === network.pubKeyHash)
return btemplates.pubKeyHash.output.encode(decode.hash);
if (decode.version === network.scriptHash)
return btemplates.scriptHash.output.encode(decode.hash);
return bitcoinjs.address.toOutputScript(address, network);
}
exports.toOutputScript = toOutputScript;
function toBase58Check(hash, version, network) {
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
return zcashAddress.toBase58Check(hash, version);
}
else {
try {
decode = fromBech32(address);
}
catch (e) { }
if (decode) {
if (decode.prefix !== network.bech32)
throw new Error(address + ' has an invalid prefix');
if (decode.version === 0) {
if (decode.data.length === 20)
return btemplates.witnessPubKeyHash.output.encode(decode.data);
if (decode.data.length === 32)
return btemplates.witnessScriptHash.output.encode(decode.data);
}
}
return bitcoinjs.address.toBase58Check(hash, version);
}
exports.toBase58Check = toBase58Check;
function fromBase58Check(address, network) {
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
return zcashAddress.fromBase58Check(address);
}
throw new Error(address + ' has no matching Script');
return bitcoinjs.address.fromBase58Check(address);
}
module.exports = {
fromBase58Check: fromBase58Check,
fromBech32: fromBech32,
fromOutputScript: fromOutputScript,
toBase58Check: toBase58Check,
toBech32: toBech32,
toOutputScript: toOutputScript
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUE7QUFDMUMsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQzlCLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUNwQyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7QUFDakMsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3ZDLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtBQUNwQyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDcEMsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRTlCLFNBQVMsZUFBZSxDQUFFLE9BQU87SUFDL0IsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUV2Qyx3Q0FBd0M7SUFDeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUU7UUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQTtJQUN2RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRTtRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxDQUFBO0lBRXRFLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFBO0lBQ3JDLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFOUIsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDOUQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUVoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUE7QUFDekMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFFLE9BQU87SUFDMUIsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuQyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFbEQsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQ3hCLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUUsSUFBSSxFQUFFLE9BQU87SUFDbkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFakUsaUhBQWlIO0lBQ2pILDhDQUE4QztJQUM5QyxJQUFJLFNBQVMsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQzlCLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDOUIsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUU5QixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRTFCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUNsQyxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNO0lBQ3RDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUV0QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFFLFlBQVksRUFBRSxPQUFPO0lBQzlDLE9BQU8sR0FBRyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQTtJQUVyQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFBRSxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzFJLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUFFLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUksSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMzSSxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUFFLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRTNJLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRywwQkFBMEIsQ0FBQyxDQUFBO0FBQzNFLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBRSxPQUFPLEVBQUUsT0FBTztJQUN2QyxPQUFPLEdBQUcsT0FBTyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUE7SUFFckMsSUFBSSxNQUFNLENBQUE7SUFDVixJQUFJO1FBQ0YsTUFBTSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtLQUNsQztJQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUU7SUFFZCxJQUFJLE1BQU0sRUFBRTtRQUNWLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsVUFBVTtZQUFFLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLFVBQVU7WUFBRSxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDbkc7U0FBTTtRQUNMLElBQUk7WUFDRixNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQzdCO1FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtRQUVkLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLHdCQUF3QixDQUFDLENBQUE7WUFDekYsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFO29CQUFFLE9BQU8sVUFBVSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUM3RixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUU7b0JBQUUsT0FBTyxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDOUY7U0FDRjtLQUNGO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEdBQUcseUJBQXlCLENBQUMsQ0FBQTtBQUN0RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNmLGVBQWUsRUFBRSxlQUFlO0lBQ2hDLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxhQUFhLEVBQUUsYUFBYTtJQUM1QixRQUFRLEVBQUUsUUFBUTtJQUNsQixjQUFjLEVBQUUsY0FBYztDQUMvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgYmVjaDMyID0gcmVxdWlyZSgnYmVjaDMyJylcbnZhciBiczU4Y2hlY2sgPSByZXF1aXJlKCdiczU4Y2hlY2snKVxudmFyIGJzY3JpcHQgPSByZXF1aXJlKCcuL3NjcmlwdCcpXG52YXIgYnRlbXBsYXRlcyA9IHJlcXVpcmUoJy4vdGVtcGxhdGVzJylcbnZhciBuZXR3b3JrcyA9IHJlcXVpcmUoJy4vbmV0d29ya3MnKVxudmFyIHR5cGVmb3JjZSA9IHJlcXVpcmUoJ3R5cGVmb3JjZScpXG52YXIgdHlwZXMgPSByZXF1aXJlKCcuL3R5cGVzJylcblxuZnVuY3Rpb24gZnJvbUJhc2U1OENoZWNrIChhZGRyZXNzKSB7XG4gIHZhciBwYXlsb2FkID0gYnM1OGNoZWNrLmRlY29kZShhZGRyZXNzKVxuXG4gIC8vIFRPRE86IDQuMC4wLCBtb3ZlIHRvIFwidG9PdXRwdXRTY3JpcHRcIlxuICBpZiAocGF5bG9hZC5sZW5ndGggPCAyMSkgdGhyb3cgbmV3IFR5cGVFcnJvcihhZGRyZXNzICsgJyBpcyB0b28gc2hvcnQnKVxuICBpZiAocGF5bG9hZC5sZW5ndGggPiAyMikgdGhyb3cgbmV3IFR5cGVFcnJvcihhZGRyZXNzICsgJyBpcyB0b28gbG9uZycpXG5cbiAgdmFyIG11bHRpYnl0ZSA9IHBheWxvYWQubGVuZ3RoID09PSAyMlxuICB2YXIgb2Zmc2V0ID0gbXVsdGlieXRlID8gMiA6IDFcblxuICB2YXIgdmVyc2lvbiA9IG11bHRpYnl0ZSA/IHBheWxvYWQucmVhZFVJbnQxNkJFKDApIDogcGF5bG9hZFswXVxuICB2YXIgaGFzaCA9IHBheWxvYWQuc2xpY2Uob2Zmc2V0KVxuXG4gIHJldHVybiB7IHZlcnNpb246IHZlcnNpb24sIGhhc2g6IGhhc2ggfVxufVxuXG5mdW5jdGlvbiBmcm9tQmVjaDMyIChhZGRyZXNzKSB7XG4gIHZhciByZXN1bHQgPSBiZWNoMzIuZGVjb2RlKGFkZHJlc3MpXG4gIHZhciBkYXRhID0gYmVjaDMyLmZyb21Xb3JkcyhyZXN1bHQud29yZHMuc2xpY2UoMSkpXG5cbiAgcmV0dXJuIHtcbiAgICB2ZXJzaW9uOiByZXN1bHQud29yZHNbMF0sXG4gICAgcHJlZml4OiByZXN1bHQucHJlZml4LFxuICAgIGRhdGE6IEJ1ZmZlci5mcm9tKGRhdGEpXG4gIH1cbn1cblxuZnVuY3Rpb24gdG9CYXNlNThDaGVjayAoaGFzaCwgdmVyc2lvbikge1xuICB0eXBlZm9yY2UodHlwZXMudHVwbGUodHlwZXMuSGFzaDE2MGJpdCwgdHlwZXMuVUludDE2KSwgYXJndW1lbnRzKVxuXG4gIC8vIFpjYXNoIGFkZHMgYW4gZXh0cmEgcHJlZml4IHJlc3VsdGluZyBpbiBhIGJpZ2dlciAoMjIgYnl0ZXMpIHBheWxvYWQuIFdlIGlkZW50aWZ5IHRoZW0gWmNhc2ggYnkgY2hlY2tpbmcgaWYgdGhlXG4gIC8vIHZlcnNpb24gaXMgbXVsdGlieXRlICgyIGJ5dGVzIGluc3RlYWQgb2YgMSlcbiAgdmFyIG11bHRpYnl0ZSA9IHZlcnNpb24gPiAweGZmXG4gIHZhciBzaXplID0gbXVsdGlieXRlID8gMjIgOiAyMVxuICB2YXIgb2Zmc2V0ID0gbXVsdGlieXRlID8gMiA6IDFcblxuICB2YXIgcGF5bG9hZCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShzaXplKVxuICBtdWx0aWJ5dGUgPyBwYXlsb2FkLndyaXRlVUludDE2QkUodmVyc2lvbiwgMCkgOiBwYXlsb2FkLndyaXRlVUludDgodmVyc2lvbiwgMClcbiAgaGFzaC5jb3B5KHBheWxvYWQsIG9mZnNldClcblxuICByZXR1cm4gYnM1OGNoZWNrLmVuY29kZShwYXlsb2FkKVxufVxuXG5mdW5jdGlvbiB0b0JlY2gzMiAoZGF0YSwgdmVyc2lvbiwgcHJlZml4KSB7XG4gIHZhciB3b3JkcyA9IGJlY2gzMi50b1dvcmRzKGRhdGEpXG4gIHdvcmRzLnVuc2hpZnQodmVyc2lvbilcblxuICByZXR1cm4gYmVjaDMyLmVuY29kZShwcmVmaXgsIHdvcmRzKVxufVxuXG5mdW5jdGlvbiBmcm9tT3V0cHV0U2NyaXB0IChvdXRwdXRTY3JpcHQsIG5ldHdvcmspIHtcbiAgbmV0d29yayA9IG5ldHdvcmsgfHwgbmV0d29ya3MuYml0Y29pblxuXG4gIGlmIChidGVtcGxhdGVzLnB1YktleUhhc2gub3V0cHV0LmNoZWNrKG91dHB1dFNjcmlwdCkpIHJldHVybiB0b0Jhc2U1OENoZWNrKGJzY3JpcHQuY29tcGlsZShvdXRwdXRTY3JpcHQpLnNsaWNlKDMsIDIzKSwgbmV0d29yay5wdWJLZXlIYXNoKVxuICBpZiAoYnRlbXBsYXRlcy5zY3JpcHRIYXNoLm91dHB1dC5jaGVjayhvdXRwdXRTY3JpcHQpKSByZXR1cm4gdG9CYXNlNThDaGVjayhic2NyaXB0LmNvbXBpbGUob3V0cHV0U2NyaXB0KS5zbGljZSgyLCAyMiksIG5ldHdvcmsuc2NyaXB0SGFzaClcbiAgaWYgKGJ0ZW1wbGF0ZXMud2l0bmVzc1B1YktleUhhc2gub3V0cHV0LmNoZWNrKG91dHB1dFNjcmlwdCkpIHJldHVybiB0b0JlY2gzMihic2NyaXB0LmNvbXBpbGUob3V0cHV0U2NyaXB0KS5zbGljZSgyLCAyMiksIDAsIG5ldHdvcmsuYmVjaDMyKVxuICBpZiAoYnRlbXBsYXRlcy53aXRuZXNzU2NyaXB0SGFzaC5vdXRwdXQuY2hlY2sob3V0cHV0U2NyaXB0KSkgcmV0dXJuIHRvQmVjaDMyKGJzY3JpcHQuY29tcGlsZShvdXRwdXRTY3JpcHQpLnNsaWNlKDIsIDM0KSwgMCwgbmV0d29yay5iZWNoMzIpXG5cbiAgdGhyb3cgbmV3IEVycm9yKGJzY3JpcHQudG9BU00ob3V0cHV0U2NyaXB0KSArICcgaGFzIG5vIG1hdGNoaW5nIEFkZHJlc3MnKVxufVxuXG5mdW5jdGlvbiB0b091dHB1dFNjcmlwdCAoYWRkcmVzcywgbmV0d29yaykge1xuICBuZXR3b3JrID0gbmV0d29yayB8fCBuZXR3b3Jrcy5iaXRjb2luXG5cbiAgdmFyIGRlY29kZVxuICB0cnkge1xuICAgIGRlY29kZSA9IGZyb21CYXNlNThDaGVjayhhZGRyZXNzKVxuICB9IGNhdGNoIChlKSB7fVxuXG4gIGlmIChkZWNvZGUpIHtcbiAgICBpZiAoZGVjb2RlLnZlcnNpb24gPT09IG5ldHdvcmsucHViS2V5SGFzaCkgcmV0dXJuIGJ0ZW1wbGF0ZXMucHViS2V5SGFzaC5vdXRwdXQuZW5jb2RlKGRlY29kZS5oYXNoKVxuICAgIGlmIChkZWNvZGUudmVyc2lvbiA9PT0gbmV0d29yay5zY3JpcHRIYXNoKSByZXR1cm4gYnRlbXBsYXRlcy5zY3JpcHRIYXNoLm91dHB1dC5lbmNvZGUoZGVjb2RlLmhhc2gpXG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGRlY29kZSA9IGZyb21CZWNoMzIoYWRkcmVzcylcbiAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgaWYgKGRlY29kZSkge1xuICAgICAgaWYgKGRlY29kZS5wcmVmaXggIT09IG5ldHdvcmsuYmVjaDMyKSB0aHJvdyBuZXcgRXJyb3IoYWRkcmVzcyArICcgaGFzIGFuIGludmFsaWQgcHJlZml4JylcbiAgICAgIGlmIChkZWNvZGUudmVyc2lvbiA9PT0gMCkge1xuICAgICAgICBpZiAoZGVjb2RlLmRhdGEubGVuZ3RoID09PSAyMCkgcmV0dXJuIGJ0ZW1wbGF0ZXMud2l0bmVzc1B1YktleUhhc2gub3V0cHV0LmVuY29kZShkZWNvZGUuZGF0YSlcbiAgICAgICAgaWYgKGRlY29kZS5kYXRhLmxlbmd0aCA9PT0gMzIpIHJldHVybiBidGVtcGxhdGVzLndpdG5lc3NTY3JpcHRIYXNoLm91dHB1dC5lbmNvZGUoZGVjb2RlLmRhdGEpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGFkZHJlc3MgKyAnIGhhcyBubyBtYXRjaGluZyBTY3JpcHQnKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZnJvbUJhc2U1OENoZWNrOiBmcm9tQmFzZTU4Q2hlY2ssXG4gIGZyb21CZWNoMzI6IGZyb21CZWNoMzIsXG4gIGZyb21PdXRwdXRTY3JpcHQ6IGZyb21PdXRwdXRTY3JpcHQsXG4gIHRvQmFzZTU4Q2hlY2s6IHRvQmFzZTU4Q2hlY2ssXG4gIHRvQmVjaDMyOiB0b0JlY2gzMixcbiAgdG9PdXRwdXRTY3JpcHQ6IHRvT3V0cHV0U2NyaXB0XG59XG4iXX0=
exports.fromBase58Check = fromBase58Check;
_a = bitcoinjs.address, exports.fromBech32 = _a.fromBech32, exports.toBech32 = _a.toBech32;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7R0FFRztBQUNILDJDQUEyQztBQUUzQywyREFBMkQ7QUFHM0QsbUNBQWtEO0FBR2xELFNBQWdCLGdCQUFnQixDQUFDLFlBQW9CLEVBQUUsT0FBZ0I7SUFDckUsSUFBSSxJQUFBLHNCQUFjLEVBQUMsT0FBTyxDQUFDLElBQUksSUFBQSxlQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUU7UUFDL0MsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzdEO0lBQ0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxPQUE0QixDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUM5RCxJQUFJLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGVBQU8sRUFBQyxPQUFPLENBQUMsRUFBRTtRQUMvQyxPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3REO0lBQ0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBNEIsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFMRCx3Q0FLQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLE9BQWdCO0lBQzNFLElBQUksSUFBQSxzQkFBYyxFQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUEsZUFBTyxFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9DLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDbEQ7SUFDRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBTEQsc0NBS0M7QUFFRCxTQUFnQixlQUFlLENBQUMsT0FBZSxFQUFFLE9BQWdCO0lBQy9ELElBQUksSUFBQSxzQkFBYyxFQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUEsZUFBTyxFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9DLE9BQU8sWUFBWSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5QztJQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUxELDBDQUtDO0FBRVksS0FBMkIsU0FBUyxDQUFDLE9BQU8sRUFBMUMsa0JBQVUsa0JBQUUsZ0JBQVEsZUFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBiaXRjb2luanMgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbmltcG9ydCAqIGFzIHpjYXNoQWRkcmVzcyBmcm9tICcuLi9zcmMvYml0Z28vemNhc2gvYWRkcmVzcyc7XG5cbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgeyBpc1ZhbGlkTmV0d29yaywgaXNaY2FzaCB9IGZyb20gJy4vY29pbnMnO1xuaW1wb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQgfSBmcm9tICdiaXRjb2luanMtbGliL3R5cGVzL2FkZHJlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQ6IEJ1ZmZlciwgbmV0d29yazogTmV0d29yaykge1xuICBpZiAoaXNWYWxpZE5ldHdvcmsobmV0d29yaykgJiYgaXNaY2FzaChuZXR3b3JrKSkge1xuICAgIHJldHVybiB6Y2FzaEFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQsIG5ldHdvcmspO1xuICB9XG4gIHJldHVybiBiaXRjb2luanMuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KG91dHB1dFNjcmlwdCwgbmV0d29yayBhcyBiaXRjb2luanMuTmV0d29yayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b091dHB1dFNjcmlwdChhZGRyZXNzOiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmspIHtcbiAgaWYgKGlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzWmNhc2gobmV0d29yaykpIHtcbiAgICByZXR1cm4gemNhc2hBZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIG5ldHdvcmspO1xuICB9XG4gIHJldHVybiBiaXRjb2luanMuYWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrIGFzIGJpdGNvaW5qcy5OZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZTU4Q2hlY2soaGFzaDogQnVmZmVyLCB2ZXJzaW9uOiBudW1iZXIsIG5ldHdvcms6IE5ldHdvcmspOiBzdHJpbmcge1xuICBpZiAoaXNWYWxpZE5ldHdvcmsobmV0d29yaykgJiYgaXNaY2FzaChuZXR3b3JrKSkge1xuICAgIHJldHVybiB6Y2FzaEFkZHJlc3MudG9CYXNlNThDaGVjayhoYXNoLCB2ZXJzaW9uKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzLmFkZHJlc3MudG9CYXNlNThDaGVjayhoYXNoLCB2ZXJzaW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNThDaGVjayhhZGRyZXNzOiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmspOiBCYXNlNThDaGVja1Jlc3VsdCB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy5mcm9tQmFzZTU4Q2hlY2soYWRkcmVzcyk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLmZyb21CYXNlNThDaGVjayhhZGRyZXNzKTtcbn1cblxuZXhwb3J0IGNvbnN0IHsgZnJvbUJlY2gzMiwgdG9CZWNoMzIgfSA9IGJpdGNvaW5qcy5hZGRyZXNzO1xuIl19

@@ -22,2 +22,6 @@ "use strict";

__exportStar(require("./transaction"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsdUNBQXFDO0FBQ3JDLG1EQUFpRDtBQUNqRCxtRUFBaUU7QUFDakUsOENBQTRCO0FBQzVCLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmV4cG9ydCAqIGFzIGtleXV0aWwgZnJvbSAnLi9rZXl1dGlsJztcbmV4cG9ydCAqIGFzIG91dHB1dFNjcmlwdHMgZnJvbSAnLi9vdXRwdXRTY3JpcHRzJztcbmV4cG9ydCAqIGFzIG5vblN0YW5kYXJkSGFsZlNpZ25lZCBmcm9tICcuL25vblN0YW5kYXJkSGFsZlNpZ25lZCc7XG5leHBvcnQgKiBmcm9tICcuL3NpZ25hdHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbiJdfQ==
__exportStar(require("./UtxoTransaction"), exports);
__exportStar(require("./UtxoTransactionBuilder"), exports);
__exportStar(require("./zcash"), exports);
__exportStar(require("./dash"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsdUNBQXFDO0FBQ3JDLG1EQUFpRDtBQUNqRCxtRUFBaUU7QUFDakUsOENBQTRCO0FBQzVCLGdEQUE4QjtBQUM5QixvREFBa0M7QUFDbEMsMkRBQXlDO0FBQ3pDLDBDQUF3QjtBQUN4Qix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5leHBvcnQgKiBhcyBrZXl1dGlsIGZyb20gJy4va2V5dXRpbCc7XG5leHBvcnQgKiBhcyBvdXRwdXRTY3JpcHRzIGZyb20gJy4vb3V0cHV0U2NyaXB0cyc7XG5leHBvcnQgKiBhcyBub25TdGFuZGFyZEhhbGZTaWduZWQgZnJvbSAnLi9ub25TdGFuZGFyZEhhbGZTaWduZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduYXR1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi96Y2FzaCc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2gnO1xuIl19

@@ -7,4 +7,3 @@ "use strict";

*/
const BigInteger = require('bigi');
const ECPair = require('../ecpair');
const ECPair = require("bitcoinjs-lib/src/ecpair");
/**

@@ -20,4 +19,3 @@ * Create an ECPair from the raw private key bytes

}
const d = BigInteger.fromBuffer(buffer);
return new ECPair(d, null, { network });
return ECPair.fromPrivateKey(buffer);
}

@@ -31,10 +29,15 @@ exports.privateKeyBufferToECPair = privateKeyBufferToECPair;

function privateKeyBufferFromECPair(ecPair) {
if (!(ecPair instanceof ECPair)) {
if (ecPair.constructor.name !== 'ECPair') {
throw new TypeError(`invalid argument ecpair`);
}
if (!ecPair.d)
throw new Error('Missing private key');
return ecPair.d.toBuffer(32);
const privkey = ecPair.privateKey;
if (!Buffer.isBuffer(privkey)) {
throw new Error(`unexpected privkey type`);
}
if (privkey.length !== 32) {
throw new Error(`unexpected privkey length`);
}
return privkey;
}
exports.privateKeyBufferFromECPair = privateKeyBufferFromECPair;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9rZXl1dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25DLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUVwQzs7Ozs7R0FLRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxPQUFPO0lBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMvQztJQUVELE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBUEQsNERBT0M7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsTUFBTTtJQUMvQyxJQUFJLENBQUMsQ0FBQyxNQUFNLFlBQVksTUFBTSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQ2hEO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRXRELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQVJELGdFQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgQmlnSW50ZWdlciA9IHJlcXVpcmUoJ2JpZ2knKTtcbmNvbnN0IEVDUGFpciA9IHJlcXVpcmUoJy4uL2VjcGFpcicpO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBFQ1BhaXIgZnJvbSB0aGUgcmF3IHByaXZhdGUga2V5IGJ5dGVzXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gUHJpdmF0ZSBrZXkgZm9yIHRoZSBFQ1BhaXIuIE11c3QgYmUgZXhhY3RseSAzMiBieXRlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbbmV0d29ya10gLSBOZXR3b3JrIGZvciB0aGUgRUNQYWlyLiBEZWZhdWx0cyB0byBiaXRjb2luLlxuICogQHJldHVybiB7RUNQYWlyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUtleUJ1ZmZlclRvRUNQYWlyKGJ1ZmZlciwgbmV0d29yaykge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWZmZXIpIHx8IGJ1ZmZlci5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHByaXZhdGUga2V5IGJ1ZmZlcicpO1xuICB9XG5cbiAgY29uc3QgZCA9IEJpZ0ludGVnZXIuZnJvbUJ1ZmZlcihidWZmZXIpO1xuICByZXR1cm4gbmV3IEVDUGFpcihkLCBudWxsLCB7IG5ldHdvcmsgfSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcml2YXRlIGtleSBhcyBhIDMyIGJ5dGVzIGJ1ZmZlci4gSWYgaXQgaXMgc21hbGxlciB0aGFuIDMyIGJ5dGVzLCBwYWQgaXQgd2l0aCB6ZXJvc1xuICogQHBhcmFtIHtFQ1BhaXJ9IGVjUGFpclxuICogQHJldHVybiB7QnVmZmVyfSAzMiBieXRlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUtleUJ1ZmZlckZyb21FQ1BhaXIoZWNQYWlyKSB7XG4gIGlmICghKGVjUGFpciBpbnN0YW5jZW9mIEVDUGFpcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBpbnZhbGlkIGFyZ3VtZW50IGVjcGFpcmApO1xuICB9XG5cbiAgaWYgKCFlY1BhaXIuZCkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG5cbiAgcmV0dXJuIGVjUGFpci5kLnRvQnVmZmVyKDMyKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9rZXl1dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsbURBQW1EO0FBSW5EOzs7OztHQUtHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsTUFBYyxFQUFFLE9BQWlCO0lBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMvQztJQUVELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBTkQsNERBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsTUFBYztJQUN2RCxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUN4QyxNQUFNLElBQUksU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDaEQ7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztLQUM1QztJQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzlDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQWRELGdFQWNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgRUNQYWlyIGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2VjcGFpcic7XG5cbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuLi9uZXR3b3JrVHlwZXMnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBFQ1BhaXIgZnJvbSB0aGUgcmF3IHByaXZhdGUga2V5IGJ5dGVzXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gUHJpdmF0ZSBrZXkgZm9yIHRoZSBFQ1BhaXIuIE11c3QgYmUgZXhhY3RseSAzMiBieXRlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbbmV0d29ya10gLSBOZXR3b3JrIGZvciB0aGUgRUNQYWlyLiBEZWZhdWx0cyB0byBiaXRjb2luLlxuICogQHJldHVybiB7RUNQYWlyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUtleUJ1ZmZlclRvRUNQYWlyKGJ1ZmZlcjogQnVmZmVyLCBuZXR3b3JrPzogTmV0d29yaykge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWZmZXIpIHx8IGJ1ZmZlci5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHByaXZhdGUga2V5IGJ1ZmZlcicpO1xuICB9XG5cbiAgcmV0dXJuIEVDUGFpci5mcm9tUHJpdmF0ZUtleShidWZmZXIpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgcHJpdmF0ZSBrZXkgYXMgYSAzMiBieXRlcyBidWZmZXIuIElmIGl0IGlzIHNtYWxsZXIgdGhhbiAzMiBieXRlcywgcGFkIGl0IHdpdGggemVyb3NcbiAqIEBwYXJhbSB7RUNQYWlyfSBlY1BhaXJcbiAqIEByZXR1cm4ge0J1ZmZlcn0gMzIgYnl0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaXZhdGVLZXlCdWZmZXJGcm9tRUNQYWlyKGVjUGFpcjogRUNQYWlyKSB7XG4gIGlmIChlY1BhaXIuY29uc3RydWN0b3IubmFtZSAhPT0gJ0VDUGFpcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBpbnZhbGlkIGFyZ3VtZW50IGVjcGFpcmApO1xuICB9XG5cbiAgY29uc3QgcHJpdmtleSA9IGVjUGFpci5wcml2YXRlS2V5O1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwcml2a2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBwcml2a2V5IHR5cGVgKTtcbiAgfVxuICBpZiAocHJpdmtleS5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHByaXZrZXkgbGVuZ3RoYCk7XG4gIH1cblxuICByZXR1cm4gcHJpdmtleTtcbn1cbiJdfQ==

@@ -7,4 +7,5 @@ "use strict";

*/
const assert = require("assert");
const opcodes = require("bitcoin-ops");
const bscript = require("../script");
const __1 = require("../");
/**

@@ -18,13 +19,8 @@ * @param input - Input of non-standard half-signed transaction created with `tx.build()` instead of `tx.buildIncomplete()`.

}
// We only use `txb.build()` on certain legacy v1 SDKs.
// Since native segwit was never enabled in v1 we do not have to worry about p2wsh inputs
// and can focus on p2sh and p2shP2wsh.
if (!input.script) {
throw new Error(`native segwit not supported`);
let decompiledSigScript;
if (input.witness && input.witness.length > 0) {
decompiledSigScript = input.witness;
}
const inputClassification = bscript.classifyInput(input.script, true);
const decompiledSigScript = input.witness.length ? input.witness : bscript.decompile(input.script);
const expectedScriptType = inputClassification === bscript.types.P2SH || inputClassification === bscript.types.P2WSH;
if (!expectedScriptType) {
return;
else {
decompiledSigScript = __1.script.decompile(input.script);
}

@@ -38,4 +34,7 @@ // The shape of a non-standard half-signed input is

if (op0 !== opcodes.OP_0 && !(Buffer.isBuffer(op0) && op0.length === 0)) {
throw new Error(`unexpected instruction`);
return;
}
if (__1.classify.output(sigScript) !== __1.classify.types.P2MS) {
return;
}
const paddedSigScript = [

@@ -47,10 +46,10 @@ op0,

if (input.witness.length) {
paddedSigScript.forEach((b) => assert(Buffer.isBuffer(b)));
input.witness = paddedSigScript;
}
else {
// @ts-ignore: bscript uses an odd "Buffer" type (per jsdoc)
input.script = bscript.compile(paddedSigScript);
input.script = __1.script.compile(paddedSigScript);
}
}
exports.padInputScript = padInputScript;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uU3RhbmRhcmRIYWxmU2lnbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL25vblN0YW5kYXJkSGFsZlNpZ25lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILHVDQUF1QztBQUN2QyxxQ0FBcUM7QUFJckM7OztHQUdHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEtBQVksRUFBRSxjQUFzQjtJQUNqRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7S0FDdEU7SUFFRCx1REFBdUQ7SUFDdkQseUZBQXlGO0lBQ3pGLHVDQUF1QztJQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7S0FDaEQ7SUFFRCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RSxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLG1CQUFtQixLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBRXJILElBQUksQ0FBQyxrQkFBa0IsRUFBRTtRQUN2QixPQUFPO0tBQ1I7SUFFRCxtREFBbUQ7SUFDbkQsNEJBQTRCO0lBQzVCLElBQUksbUJBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNwQyxPQUFPO0tBQ1I7SUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMsR0FBRyxtQkFBbUIsQ0FBQztJQUU5RCxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0tBQzNDO0lBRUQsTUFBTSxlQUFlLEdBQUc7UUFDdEIsR0FBRztRQUNILEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixTQUFTO0tBQ1YsQ0FBQztJQUVGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDeEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUM7S0FDakM7U0FBTTtRQUNMLDREQUE0RDtRQUM1RCxLQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDakQ7QUFDSCxDQUFDO0FBNUNELHdDQTRDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIG9wY29kZXMgZnJvbSAnYml0Y29pbi1vcHMnO1xuaW1wb3J0ICogYXMgYnNjcmlwdCBmcm9tICcuLi9zY3JpcHQnO1xuXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4vc2lnbmF0dXJlJztcblxuLyoqXG4gKiBAcGFyYW0gaW5wdXQgLSBJbnB1dCBvZiBub24tc3RhbmRhcmQgaGFsZi1zaWduZWQgdHJhbnNhY3Rpb24gY3JlYXRlZCB3aXRoIGB0eC5idWlsZCgpYCBpbnN0ZWFkIG9mIGB0eC5idWlsZEluY29tcGxldGUoKWAuXG4gKiBAcGFyYW0gc2lnbmF0dXJlSW5kZXggLSBQb3NpdGlvbiB0byBtYXAgdGhlIGV4aXN0aW5nIHNpZ25hdHVyZXMgdG8uIE90aGVyIHNpZ25hdHVyZXMgd2lsbCBiZSBwYWRkZWQgd2l0aCBPUF8wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFkSW5wdXRTY3JpcHQoaW5wdXQ6IElucHV0LCBzaWduYXR1cmVJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gIGlmICghWzAsIDEsIDJdLmluY2x1ZGVzKHNpZ25hdHVyZUluZGV4KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzaWduYXR1cmUgaW5kZXg6IG11c3QgYmUgb25lIG9mIFswLCAxLCAyXWApO1xuICB9XG5cbiAgLy8gV2Ugb25seSB1c2UgYHR4Yi5idWlsZCgpYCBvbiBjZXJ0YWluIGxlZ2FjeSB2MSBTREtzLlxuICAvLyBTaW5jZSBuYXRpdmUgc2Vnd2l0IHdhcyBuZXZlciBlbmFibGVkIGluIHYxIHdlIGRvIG5vdCBoYXZlIHRvIHdvcnJ5IGFib3V0IHAyd3NoIGlucHV0c1xuICAvLyBhbmQgY2FuIGZvY3VzIG9uIHAyc2ggYW5kIHAyc2hQMndzaC5cbiAgaWYgKCFpbnB1dC5zY3JpcHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG5hdGl2ZSBzZWd3aXQgbm90IHN1cHBvcnRlZGApO1xuICB9XG5cbiAgY29uc3QgaW5wdXRDbGFzc2lmaWNhdGlvbiA9IGJzY3JpcHQuY2xhc3NpZnlJbnB1dChpbnB1dC5zY3JpcHQsIHRydWUpO1xuICBjb25zdCBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gaW5wdXQud2l0bmVzcy5sZW5ndGggPyBpbnB1dC53aXRuZXNzIDogYnNjcmlwdC5kZWNvbXBpbGUoaW5wdXQuc2NyaXB0KTtcbiAgY29uc3QgZXhwZWN0ZWRTY3JpcHRUeXBlID0gaW5wdXRDbGFzc2lmaWNhdGlvbiA9PT0gYnNjcmlwdC50eXBlcy5QMlNIIHx8IGlucHV0Q2xhc3NpZmljYXRpb24gPT09IGJzY3JpcHQudHlwZXMuUDJXU0g7XG5cbiAgaWYgKCFleHBlY3RlZFNjcmlwdFR5cGUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBUaGUgc2hhcGUgb2YgYSBub24tc3RhbmRhcmQgaGFsZi1zaWduZWQgaW5wdXQgaXNcbiAgLy8gICBPUF8wIDxzaWduYXR1cmU+IDxwMm1zPlxuICBpZiAoZGVjb21waWxlZFNpZ1NjcmlwdC5sZW5ndGggIT09IDMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBbb3AwLCBzaWduYXR1cmVCdWZmZXIsIHNpZ1NjcmlwdF0gPSBkZWNvbXBpbGVkU2lnU2NyaXB0O1xuXG4gIGlmIChvcDAgIT09IG9wY29kZXMuT1BfMCAmJiAhKEJ1ZmZlci5pc0J1ZmZlcihvcDApICYmIG9wMC5sZW5ndGggPT09IDApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGluc3RydWN0aW9uYCk7XG4gIH1cblxuICBjb25zdCBwYWRkZWRTaWdTY3JpcHQgPSBbXG4gICAgb3AwLFxuICAgIC4uLlswLCAxLCAyXS5tYXAoKGkpID0+IChpID09PSBzaWduYXR1cmVJbmRleCA/IHNpZ25hdHVyZUJ1ZmZlciA6IEJ1ZmZlci5mcm9tKFtdKSkpLFxuICAgIHNpZ1NjcmlwdCxcbiAgXTtcblxuICBpZiAoaW5wdXQud2l0bmVzcy5sZW5ndGgpIHtcbiAgICBpbnB1dC53aXRuZXNzID0gcGFkZGVkU2lnU2NyaXB0O1xuICB9IGVsc2Uge1xuICAgIC8vIEB0cy1pZ25vcmU6IGJzY3JpcHQgdXNlcyBhbiBvZGQgXCJCdWZmZXJcIiB0eXBlIChwZXIganNkb2MpXG4gICAgaW5wdXQuc2NyaXB0ID0gYnNjcmlwdC5jb21waWxlKHBhZGRlZFNpZ1NjcmlwdCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uU3RhbmRhcmRIYWxmU2lnbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL25vblN0YW5kYXJkSGFsZlNpZ25lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILGlDQUFpQztBQUNqQyx1Q0FBdUM7QUFDdkMsMkJBQTJEO0FBRTNEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxLQUFjLEVBQUUsY0FBc0I7SUFDbkUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0tBQ3RFO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQztJQUN4QixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzdDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7S0FDckM7U0FBTTtRQUNMLG1CQUFtQixHQUFHLFVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsbURBQW1EO0lBQ25ELDRCQUE0QjtJQUM1QixJQUFJLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDcEMsT0FBTztLQUNSO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7SUFDOUQsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ3ZFLE9BQU87S0FDUjtJQUVELElBQUksWUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxZQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtRQUN0RCxPQUFPO0tBQ1I7SUFFRCxNQUFNLGVBQWUsR0FBRztRQUN0QixHQUFHO1FBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25GLFNBQVM7S0FDVixDQUFDO0lBRUYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUN4QixlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsS0FBSyxDQUFDLE9BQU8sR0FBRyxlQUEyQixDQUFDO0tBQzdDO1NBQU07UUFDTCxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDakQ7QUFDSCxDQUFDO0FBdkNELHdDQXVDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgb3Bjb2RlcyBmcm9tICdiaXRjb2luLW9wcyc7XG5pbXBvcnQgeyBjbGFzc2lmeSwgc2NyaXB0IGFzIGJzY3JpcHQsIFR4SW5wdXQgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIEBwYXJhbSBpbnB1dCAtIElucHV0IG9mIG5vbi1zdGFuZGFyZCBoYWxmLXNpZ25lZCB0cmFuc2FjdGlvbiBjcmVhdGVkIHdpdGggYHR4LmJ1aWxkKClgIGluc3RlYWQgb2YgYHR4LmJ1aWxkSW5jb21wbGV0ZSgpYC5cbiAqIEBwYXJhbSBzaWduYXR1cmVJbmRleCAtIFBvc2l0aW9uIHRvIG1hcCB0aGUgZXhpc3Rpbmcgc2lnbmF0dXJlcyB0by4gT3RoZXIgc2lnbmF0dXJlcyB3aWxsIGJlIHBhZGRlZCB3aXRoIE9QXzAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWRJbnB1dFNjcmlwdChpbnB1dDogVHhJbnB1dCwgc2lnbmF0dXJlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICBpZiAoIVswLCAxLCAyXS5pbmNsdWRlcyhzaWduYXR1cmVJbmRleCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc2lnbmF0dXJlIGluZGV4OiBtdXN0IGJlIG9uZSBvZiBbMCwgMSwgMl1gKTtcbiAgfVxuXG4gIGxldCBkZWNvbXBpbGVkU2lnU2NyaXB0O1xuICBpZiAoaW5wdXQud2l0bmVzcyAmJiBpbnB1dC53aXRuZXNzLmxlbmd0aCA+IDApIHtcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gaW5wdXQud2l0bmVzcztcbiAgfSBlbHNlIHtcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gYnNjcmlwdC5kZWNvbXBpbGUoaW5wdXQuc2NyaXB0KTtcbiAgfVxuXG4gIC8vIFRoZSBzaGFwZSBvZiBhIG5vbi1zdGFuZGFyZCBoYWxmLXNpZ25lZCBpbnB1dCBpc1xuICAvLyAgIE9QXzAgPHNpZ25hdHVyZT4gPHAybXM+XG4gIGlmIChkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCAhPT0gMykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IFtvcDAsIHNpZ25hdHVyZUJ1ZmZlciwgc2lnU2NyaXB0XSA9IGRlY29tcGlsZWRTaWdTY3JpcHQ7XG4gIGlmIChvcDAgIT09IG9wY29kZXMuT1BfMCAmJiAhKEJ1ZmZlci5pc0J1ZmZlcihvcDApICYmIG9wMC5sZW5ndGggPT09IDApKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNsYXNzaWZ5Lm91dHB1dChzaWdTY3JpcHQpICE9PSBjbGFzc2lmeS50eXBlcy5QMk1TKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGFkZGVkU2lnU2NyaXB0ID0gW1xuICAgIG9wMCxcbiAgICAuLi5bMCwgMSwgMl0ubWFwKChpKSA9PiAoaSA9PT0gc2lnbmF0dXJlSW5kZXggPyBzaWduYXR1cmVCdWZmZXIgOiBCdWZmZXIuZnJvbShbXSkpKSxcbiAgICBzaWdTY3JpcHQsXG4gIF07XG5cbiAgaWYgKGlucHV0LndpdG5lc3MubGVuZ3RoKSB7XG4gICAgcGFkZGVkU2lnU2NyaXB0LmZvckVhY2goKGIpID0+IGFzc2VydChCdWZmZXIuaXNCdWZmZXIoYikpKTtcbiAgICBpbnB1dC53aXRuZXNzID0gcGFkZGVkU2lnU2NyaXB0IGFzIEJ1ZmZlcltdO1xuICB9IGVsc2Uge1xuICAgIGlucHV0LnNjcmlwdCA9IGJzY3JpcHQuY29tcGlsZShwYWRkZWRTaWdTY3JpcHQpO1xuICB9XG59XG4iXX0=

@@ -7,4 +7,4 @@ "use strict";

*/
const script = require("../script");
const crypto = require("../crypto");
const assert = require("assert");
const bitcoinjs = require("bitcoinjs-lib");
exports.scriptTypes2Of3 = ['p2sh', 'p2shP2wsh', 'p2wsh'];

@@ -30,4 +30,5 @@ function isScriptType2Of3(t) {

});
const script2of3 = script.multisig.output.encode(2, pubkeys);
const p2wshOutputScript = script.witnessScriptHash.output.encode(crypto.sha256(script2of3));
const script2of3 = bitcoinjs.payments.p2ms({ m: 2, pubkeys });
assert(script2of3.output);
let scriptPubKey;
let redeemScript;

@@ -38,9 +39,12 @@ let witnessScript;

redeemScript = script2of3;
scriptPubKey = bitcoinjs.payments.p2sh({ redeem: script2of3 });
break;
case 'p2shP2wsh':
witnessScript = script2of3;
redeemScript = p2wshOutputScript;
redeemScript = bitcoinjs.payments.p2wsh({ redeem: script2of3 });
scriptPubKey = bitcoinjs.payments.p2sh({ redeem: redeemScript });
break;
case 'p2wsh':
witnessScript = script2of3;
scriptPubKey = bitcoinjs.payments.p2wsh({ redeem: witnessScript });
break;

@@ -50,13 +54,10 @@ default:

}
let scriptPubKey;
if (scriptType === 'p2wsh') {
scriptPubKey = p2wshOutputScript;
}
else {
const redeemScriptHash = crypto.hash160(redeemScript);
scriptPubKey = script.scriptHash.output.encode(redeemScriptHash);
}
return { redeemScript, witnessScript, scriptPubKey };
assert(scriptPubKey);
return {
scriptPubKey: scriptPubKey === null || scriptPubKey === void 0 ? void 0 : scriptPubKey.output,
redeemScript: redeemScript === null || redeemScript === void 0 ? void 0 : redeemScript.output,
witnessScript: witnessScript === null || witnessScript === void 0 ? void 0 : witnessScript.output,
};
}
exports.createOutputScript2of3 = createOutputScript2of3;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsb0NBQW9DO0FBQ3BDLG9DQUFvQztBQUV2QixRQUFBLGVBQWUsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFVLENBQUM7QUFHdkUsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBUztJQUN4QyxPQUFPLHVCQUFlLENBQUMsUUFBUSxDQUFDLENBQW1CLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRkQsNENBRUM7QUFRRDs7Ozs7R0FLRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLE9BQWlCLEVBQUUsVUFBMEI7SUFDbEYsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixHQUFHLENBQUMsTUFBTSw2QkFBNkIsQ0FBQyxDQUFDO1NBQ25GO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzVGLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksYUFBYSxDQUFDO0lBQ2xCLFFBQVEsVUFBVSxFQUFFO1FBQ2xCLEtBQUssTUFBTTtZQUNULFlBQVksR0FBRyxVQUFVLENBQUM7WUFDMUIsTUFBTTtRQUNSLEtBQUssV0FBVztZQUNkLGFBQWEsR0FBRyxVQUFVLENBQUM7WUFDM0IsWUFBWSxHQUFHLGlCQUFpQixDQUFDO1lBQ2pDLE1BQU07UUFDUixLQUFLLE9BQU87WUFDVixhQUFhLEdBQUcsVUFBVSxDQUFDO1lBQzNCLE1BQU07UUFDUjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLFVBQVUsRUFBRSxDQUFDLENBQUM7S0FDakU7SUFFRCxJQUFJLFlBQVksQ0FBQztJQUNqQixJQUFJLFVBQVUsS0FBSyxPQUFPLEVBQUU7UUFDMUIsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0tBQ2xDO1NBQU07UUFDTCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDdkQsQ0FBQztBQXRDRCx3REFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBzY3JpcHQgZnJvbSAnLi4vc2NyaXB0JztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICcuLi9jcnlwdG8nO1xuXG5leHBvcnQgY29uc3Qgc2NyaXB0VHlwZXMyT2YzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgU2NyaXB0VHlwZTJPZjMgPSB0eXBlb2Ygc2NyaXB0VHlwZXMyT2YzW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NjcmlwdFR5cGUyT2YzKHQ6IHN0cmluZyk6IHQgaXMgU2NyaXB0VHlwZTJPZjMge1xuICByZXR1cm4gc2NyaXB0VHlwZXMyT2YzLmluY2x1ZGVzKHQgYXMgU2NyaXB0VHlwZTJPZjMpO1xufVxuXG5leHBvcnQgdHlwZSBTcGVuZGFibGVTY3JpcHQgPSB7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIHdpdG5lc3NTY3JpcHQ/OiBCdWZmZXI7XG59O1xuXG4vKipcbiAqIFJldHVybiBzY3JpcHRzIGZvciAyLW9mLTMgbXVsdGlzaWcgb3V0cHV0XG4gKiBAcGFyYW0gcHVia2V5cyAtIHRoZSBrZXkgYXJyYXkgZm9yIG11bHRpc2lnXG4gKiBAcGFyYW0gc2NyaXB0VHlwZVxuICogQHJldHVybnMge3tyZWRlZW1TY3JpcHQsIHdpdG5lc3NTY3JpcHQsIGFkZHJlc3N9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzOiBCdWZmZXJbXSwgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTJPZjMpOiBTcGVuZGFibGVTY3JpcHQge1xuICBpZiAocHVia2V5cy5sZW5ndGggIT09IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSAzIHB1YmtleXNgKTtcbiAgfVxuICBwdWJrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmIChrZXkubGVuZ3RoICE9PSAzMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGtleSBsZW5ndGggJHtrZXkubGVuZ3RofS4gTXVzdCB1c2UgY29tcHJlc3NlZCBrZXlzLmApO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3Qgc2NyaXB0Mm9mMyA9IHNjcmlwdC5tdWx0aXNpZy5vdXRwdXQuZW5jb2RlKDIsIHB1YmtleXMpO1xuICBjb25zdCBwMndzaE91dHB1dFNjcmlwdCA9IHNjcmlwdC53aXRuZXNzU2NyaXB0SGFzaC5vdXRwdXQuZW5jb2RlKGNyeXB0by5zaGEyNTYoc2NyaXB0Mm9mMykpO1xuICBsZXQgcmVkZWVtU2NyaXB0O1xuICBsZXQgd2l0bmVzc1NjcmlwdDtcbiAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgY2FzZSAncDJzaCc6XG4gICAgICByZWRlZW1TY3JpcHQgPSBzY3JpcHQyb2YzO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgIHdpdG5lc3NTY3JpcHQgPSBzY3JpcHQyb2YzO1xuICAgICAgcmVkZWVtU2NyaXB0ID0gcDJ3c2hPdXRwdXRTY3JpcHQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICB3aXRuZXNzU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gbXVsdGlzaWcgc2NyaXB0IHR5cGUgJHtzY3JpcHRUeXBlfWApO1xuICB9XG5cbiAgbGV0IHNjcmlwdFB1YktleTtcbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMndzaCcpIHtcbiAgICBzY3JpcHRQdWJLZXkgPSBwMndzaE91dHB1dFNjcmlwdDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZWRlZW1TY3JpcHRIYXNoID0gY3J5cHRvLmhhc2gxNjAocmVkZWVtU2NyaXB0KTtcbiAgICBzY3JpcHRQdWJLZXkgPSBzY3JpcHQuc2NyaXB0SGFzaC5vdXRwdXQuZW5jb2RlKHJlZGVlbVNjcmlwdEhhc2gpO1xuICB9XG5cbiAgcmV0dXJuIHsgcmVkZWVtU2NyaXB0LCB3aXRuZXNzU2NyaXB0LCBzY3JpcHRQdWJLZXkgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsaUNBQWlDO0FBQ2pDLDJDQUEyQztBQUU5QixRQUFBLGVBQWUsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFVLENBQUM7QUFHdkUsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBUztJQUN4QyxPQUFPLHVCQUFlLENBQUMsUUFBUSxDQUFDLENBQW1CLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRkQsNENBRUM7QUFRRDs7Ozs7R0FLRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLE9BQWlCLEVBQUUsVUFBMEI7SUFDbEYsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixHQUFHLENBQUMsTUFBTSw2QkFBNkIsQ0FBQyxDQUFDO1NBQ25GO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTFCLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksYUFBYSxDQUFDO0lBQ2xCLFFBQVEsVUFBVSxFQUFFO1FBQ2xCLEtBQUssTUFBTTtZQUNULFlBQVksR0FBRyxVQUFVLENBQUM7WUFDMUIsWUFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDL0QsTUFBTTtRQUNSLEtBQUssV0FBVztZQUNkLGFBQWEsR0FBRyxVQUFVLENBQUM7WUFDM0IsWUFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDaEUsWUFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDakUsTUFBTTtRQUNSLEtBQUssT0FBTztZQUNWLGFBQWEsR0FBRyxVQUFVLENBQUM7WUFDM0IsWUFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDbkUsTUFBTTtRQUNSO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsVUFBVSxFQUFFLENBQUMsQ0FBQztLQUNqRTtJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVyQixPQUFPO1FBQ0wsWUFBWSxFQUFFLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNO1FBQ2xDLFlBQVksRUFBRSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsTUFBTTtRQUNsQyxhQUFhLEVBQUUsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLE1BQU07S0FDckMsQ0FBQztBQUNKLENBQUM7QUF6Q0Qsd0RBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBiaXRjb2luanMgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbmV4cG9ydCBjb25zdCBzY3JpcHRUeXBlczJPZjMgPSBbJ3Ayc2gnLCAncDJzaFAyd3NoJywgJ3Ayd3NoJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlMk9mMyA9IHR5cGVvZiBzY3JpcHRUeXBlczJPZjNbbnVtYmVyXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2NyaXB0VHlwZTJPZjModDogc3RyaW5nKTogdCBpcyBTY3JpcHRUeXBlMk9mMyB7XG4gIHJldHVybiBzY3JpcHRUeXBlczJPZjMuaW5jbHVkZXModCBhcyBTY3JpcHRUeXBlMk9mMyk7XG59XG5cbmV4cG9ydCB0eXBlIFNwZW5kYWJsZVNjcmlwdCA9IHtcbiAgc2NyaXB0UHViS2V5OiBCdWZmZXI7XG4gIHJlZGVlbVNjcmlwdD86IEJ1ZmZlcjtcbiAgd2l0bmVzc1NjcmlwdD86IEJ1ZmZlcjtcbn07XG5cbi8qKlxuICogUmV0dXJuIHNjcmlwdHMgZm9yIDItb2YtMyBtdWx0aXNpZyBvdXRwdXRcbiAqIEBwYXJhbSBwdWJrZXlzIC0gdGhlIGtleSBhcnJheSBmb3IgbXVsdGlzaWdcbiAqIEBwYXJhbSBzY3JpcHRUeXBlXG4gKiBAcmV0dXJucyB7e3JlZGVlbVNjcmlwdCwgd2l0bmVzc1NjcmlwdCwgYWRkcmVzc319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKHB1YmtleXM6IEJ1ZmZlcltdLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlMk9mMyk6IFNwZW5kYWJsZVNjcmlwdCB7XG4gIGlmIChwdWJrZXlzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIDMgcHVia2V5c2ApO1xuICB9XG4gIHB1YmtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaWYgKGtleS5sZW5ndGggIT09IDMzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQga2V5IGxlbmd0aCAke2tleS5sZW5ndGh9LiBNdXN0IHVzZSBjb21wcmVzc2VkIGtleXMuYCk7XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBzY3JpcHQyb2YzID0gYml0Y29pbmpzLnBheW1lbnRzLnAybXMoeyBtOiAyLCBwdWJrZXlzIH0pO1xuICBhc3NlcnQoc2NyaXB0Mm9mMy5vdXRwdXQpO1xuXG4gIGxldCBzY3JpcHRQdWJLZXk7XG4gIGxldCByZWRlZW1TY3JpcHQ7XG4gIGxldCB3aXRuZXNzU2NyaXB0O1xuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICAgIHJlZGVlbVNjcmlwdCA9IHNjcmlwdDJvZjM7XG4gICAgICBzY3JpcHRQdWJLZXkgPSBiaXRjb2luanMucGF5bWVudHMucDJzaCh7IHJlZGVlbTogc2NyaXB0Mm9mMyB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgICB3aXRuZXNzU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIHJlZGVlbVNjcmlwdCA9IGJpdGNvaW5qcy5wYXltZW50cy5wMndzaCh7IHJlZGVlbTogc2NyaXB0Mm9mMyB9KTtcbiAgICAgIHNjcmlwdFB1YktleSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMnNoKHsgcmVkZWVtOiByZWRlZW1TY3JpcHQgfSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICB3aXRuZXNzU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIHNjcmlwdFB1YktleSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMndzaCh7IHJlZGVlbTogd2l0bmVzc1NjcmlwdCB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gbXVsdGlzaWcgc2NyaXB0IHR5cGUgJHtzY3JpcHRUeXBlfWApO1xuICB9XG5cbiAgYXNzZXJ0KHNjcmlwdFB1YktleSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzY3JpcHRQdWJLZXk6IHNjcmlwdFB1YktleT8ub3V0cHV0LFxuICAgIHJlZGVlbVNjcmlwdDogcmVkZWVtU2NyaXB0Py5vdXRwdXQsXG4gICAgd2l0bmVzc1NjcmlwdDogd2l0bmVzc1NjcmlwdD8ub3V0cHV0LFxuICB9O1xufVxuIl19

@@ -8,9 +8,8 @@ "use strict";

const opcodes = require("bitcoin-ops");
const script = require("../script");
const crypto = require("../crypto");
const ECPair = require("../ecpair");
const Transaction = require("../transaction");
const ECSignature = require("../ecsignature");
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
const classify = require("bitcoinjs-lib/src/classify");
const ScriptSignature = require("bitcoinjs-lib/src/script_signature");
const networks = require("../networks");
const coins_1 = require("../coins");
const UtxoTransaction_1 = require("./UtxoTransaction");
const inputTypes = [

@@ -28,9 +27,9 @@ 'multisig',

function getDefaultSigHash(network) {
switch (coins_1.getMainnet(network)) {
switch ((0, coins_1.getMainnet)(network)) {
case networks.bitcoincash:
case networks.bitcoinsv:
case networks.bitcoingold:
return Transaction.SIGHASH_ALL | Transaction.SIGHASH_BITCOINCASHBIP143;
return bitcoinjs_lib_1.Transaction.SIGHASH_ALL | UtxoTransaction_1.UtxoTransaction.SIGHASH_FORKID;
default:
return Transaction.SIGHASH_ALL;
return bitcoinjs_lib_1.Transaction.SIGHASH_ALL;
}

@@ -59,17 +58,17 @@ }

if (isNativeSegwitInput) {
inputClassification = script.classifyWitness(script.compile(decompiledSigScript), true);
inputClassification = classify.witness(bitcoinjs_lib_1.script.compile(decompiledSigScript), true);
}
else {
inputClassification = script.classifyInput(input.script, true);
inputClassification = classify.input(input.script, true);
}
}
else {
inputClassification = script.classifyInput(input.script, true);
decompiledSigScript = script.decompile(input.script);
inputClassification = classify.input(input.script, true);
decompiledSigScript = bitcoinjs_lib_1.script.decompile(input.script);
}
if (inputClassification === script.types.P2PKH) {
if (inputClassification === classify.types.P2PKH) {
const [signature, publicKey] = decompiledSigScript;
const publicKeys = [publicKey];
const signatures = [signature];
const pubScript = script.pubKeyHash.output.encode(crypto.hash160(publicKey));
const pubScript = bitcoinjs_lib_1.payments.p2pkh({ pubkey: publicKey }).output;
return { isSegwitInput, inputClassification, signatures, publicKeys, pubScript };

@@ -90,3 +89,3 @@ }

// Transactions built with `.buildIncomplete()` have three signatures, where missing signatures are substituted with `OP_0`.
const expectedScriptType = inputClassification === script.types.P2SH || inputClassification === script.types.P2WSH;
const expectedScriptType = inputClassification === classify.types.P2SH || inputClassification === classify.types.P2WSH;
const expectedScriptLength =

@@ -116,3 +115,6 @@ // complete transactions with 2 signatures

const pubScript = decompiledSigScript[decompiledSigScript.length - 1];
const decompiledPubScript = script.decompile(pubScript);
const decompiledPubScript = bitcoinjs_lib_1.script.decompile(pubScript);
if (decompiledPubScript === null) {
throw new Error(`could not decompile pubScript`);
}
if (decompiledPubScript.length !== 6) {

@@ -122,2 +124,7 @@ throw new Error(`unexpected decompiledPubScript length`);

const publicKeys = decompiledPubScript.slice(1, -2);
publicKeys.forEach((b) => {
if (!Buffer.isBuffer(b)) {
throw new Error();
}
});
if (publicKeys.length !== 3) {

@@ -146,3 +153,3 @@ throw new Error(`expected 3 public keys, got ${publicKeys.length}`);

const result = parseSignatureScript(input);
if (![script.types.P2WSH, script.types.P2SH, script.types.P2PKH].includes(result.inputClassification)) {
if (![classify.types.P2WSH, classify.types.P2SH, classify.types.P2PKH].includes(result.inputClassification)) {
throw new Error(`unexpected inputClassification ${result.inputClassification}`);

@@ -187,6 +194,7 @@ }

// slice the last byte from the signature hash input because it's the hash type
const signature = ECSignature.fromDER(signatureBuffer.slice(0, -1));
const hashType = signatureBuffer[signatureBuffer.length - 1];
const transactionHash = transaction.hashForSignatureByNetwork(inputIndex, parsedScript.pubScript, amount, hashType, parsedScript.isSegwitInput);
const signedBy = publicKeys.filter((publicKey) => ECPair.fromPublicKeyBuffer(publicKey).verify(transactionHash, signature));
const { signature, hashType } = ScriptSignature.decode(signatureBuffer);
const transactionHash = parsedScript.isSegwitInput
? transaction.hashForWitnessV0(inputIndex, parsedScript.pubScript, amount, hashType)
: transaction.hashForSignatureByNetwork(inputIndex, parsedScript.pubScript, amount, hashType);
const signedBy = publicKeys.filter((publicKey) => bitcoinjs_lib_1.ECPair.fromPublicKey(publicKey).verify(transactionHash, signature));
if (signedBy.length === 0) {

@@ -210,4 +218,4 @@ return { signedBy: undefined };

const signatureVerifications = getSignatureVerifications(transaction, inputIndex, amount, verificationSettings).filter((v) =>
// If a publicKey constraint is set, a single valid signature by the specified pubkey is sufficient.
// Otherwise, all signatures must be valid.
// If no publicKey is set in verificationSettings, all signatures must be valid.
// Otherwise, a single valid signature by the specified pubkey is sufficient.
verificationSettings.publicKey === undefined ||

@@ -218,2 +226,2 @@ (v.signedBy !== undefined && verificationSettings.publicKey.equals(v.signedBy)));

exports.verifySignature = verifySignature;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILHVDQUF1QztBQUV2QyxvQ0FBb0M7QUFDcEMsb0NBQW9DO0FBQ3BDLG9DQUFvQztBQUNwQyw4Q0FBOEM7QUFDOUMsOENBQThDO0FBRTlDLHdDQUF3QztBQUN4QyxvQ0FBc0M7QUFXdEMsTUFBTSxVQUFVLEdBQUc7SUFDakIsVUFBVTtJQUNWLGFBQWE7SUFDYixVQUFVO0lBQ1YsUUFBUTtJQUNSLFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7Q0FDWCxDQUFDO0FBdUJYLFNBQWdCLGlCQUFpQixDQUFDLE9BQWdCO0lBQ2hELFFBQVEsa0JBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVc7WUFDdkIsT0FBTyxXQUFXLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQztRQUN6RTtZQUNFLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQztLQUNsQztBQUNILENBQUM7QUFURCw4Q0FTQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQVk7SUFFWixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdEQsSUFBSSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztJQUM3QyxJQUFJLGFBQWEsRUFBRTtRQUNqQixrSEFBa0g7UUFDbEgsZ0hBQWdIO1FBQ2hILGlIQUFp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UyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDbEYsQ0FBQztJQUVGLE9BQU8sc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDNUcsQ0FBQztBQXBCRCwwQ0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBvcGNvZGVzIGZyb20gJ2JpdGNvaW4tb3BzJztcblxuaW1wb3J0ICogYXMgc2NyaXB0IGZyb20gJy4uL3NjcmlwdCc7XG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnLi4vY3J5cHRvJztcbmltcG9ydCAqIGFzIEVDUGFpciBmcm9tICcuLi9lY3BhaXInO1xuaW1wb3J0ICogYXMgVHJhbnNhY3Rpb24gZnJvbSAnLi4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0ICogYXMgRUNTaWduYXR1cmUgZnJvbSAnLi4vZWNzaWduYXR1cmUnO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgKiBhcyBuZXR3b3JrcyBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBnZXRNYWlubmV0IH0gZnJvbSAnLi4vY29pbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0IHtcbiAgaGFzaDogQnVmZmVyO1xuICBpbmRleDogbnVtYmVyO1xuICBzZXF1ZW5jZTogbnVtYmVyO1xuICB3aXRuZXNzOiBCdWZmZXJbXTtcbiAgc2NyaXB0OiBCdWZmZXI7XG4gIHNpZ25TY3JpcHQ6IEJ1ZmZlcjtcbn1cblxuY29uc3QgaW5wdXRUeXBlcyA9IFtcbiAgJ211bHRpc2lnJyxcbiAgJ25vbnN0YW5kYXJkJyxcbiAgJ251bGxkYXRhJyxcbiAgJ3B1YmtleScsXG4gICdwdWJrZXloYXNoJyxcbiAgJ3NjcmlwdGhhc2gnLFxuICAnd2l0bmVzc3B1YmtleWhhc2gnLFxuICAnd2l0bmVzc3NjcmlwdGhhc2gnLFxuICAnd2l0bmVzc2NvbW1pdG1lbnQnLFxuXSBhcyBjb25zdDtcblxudHlwZSBJbnB1dFR5cGUgPSB0eXBlb2YgaW5wdXRUeXBlc1tudW1iZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFNpZ25hdHVyZVNjcmlwdCB7XG4gIGlzU2Vnd2l0SW5wdXQ6IGJvb2xlYW47XG4gIGlucHV0Q2xhc3NpZmljYXRpb246IElucHV0VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRTaWduYXR1cmVQMlBLSCBleHRlbmRzIFBhcnNlZFNpZ25hdHVyZVNjcmlwdCB7XG4gIHNpZ25hdHVyZXM6IFtCdWZmZXJdO1xuICBwdWJsaWNLZXlzOiBbQnVmZmVyXTtcbiAgcHViU2NyaXB0OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMyBleHRlbmRzIFBhcnNlZFNpZ25hdHVyZVNjcmlwdCB7XG4gIHNpZ25hdHVyZXM6XG4gICAgfCBbQnVmZmVyLCBCdWZmZXJdIC8vIGZ1bGx5LXNpZ25lZCB0cmFuc2FjdGlvbnMgd2l0aCBzaWduYXR1cmVzXG4gICAgfCBbQnVmZmVyLCBCdWZmZXIsIEJ1ZmZlcl07IC8vIHBhcnRpYWxseSBzaWduZWQgdHJhbnNhY3Rpb25zIHdpdGggcGxhY2Vob2xkZXIgc2lnbmF0dXJlc1xuICBwdWJsaWNLZXlzOiBbQnVmZmVyLCBCdWZmZXIsIEJ1ZmZlcl07XG4gIHB1YlNjcmlwdDogQnVmZmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFNpZ0hhc2gobmV0d29yazogTmV0d29yayk6IG51bWJlciB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvbi5TSUdIQVNIX0FMTCB8IFRyYW5zYWN0aW9uLlNJR0hBU0hfQklUQ09JTkNBU0hCSVAxNDM7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvbi5TSUdIQVNIX0FMTDtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGEgdHJhbnNhY3Rpb24ncyBzaWduYXR1cmUgc2NyaXB0IHRvIG9idGFpbiBwdWJsaWMga2V5cywgc2lnbmF0dXJlcywgdGhlIHNpZyBzY3JpcHQsXG4gKiBhbmQgb3RoZXIgcHJvcGVydGllcy5cbiAqXG4gKiBPbmx5IHN1cHBvcnRzIHNjcmlwdCB0eXBlcyB1c2VkIGluIEJpdEdvIHRyYW5zYWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gaW5wdXRcbiAqIEByZXR1cm5zIFBhcnNlZFNpZ25hdHVyZVNjcmlwdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTaWduYXR1cmVTY3JpcHQoXG4gIGlucHV0OiBJbnB1dFxuKTogUGFyc2VkU2lnbmF0dXJlU2NyaXB0IHwgUGFyc2VkU2lnbmF0dXJlUDJQS0ggfCBQYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzIHtcbiAgY29uc3QgaXNTZWd3aXRJbnB1dCA9IGlucHV0LndpdG5lc3MubGVuZ3RoID4gMDtcbiAgY29uc3QgaXNOYXRpdmVTZWd3aXRJbnB1dCA9IGlucHV0LnNjcmlwdC5sZW5ndGggPT09IDA7XG4gIGxldCBkZWNvbXBpbGVkU2lnU2NyaXB0LCBpbnB1dENsYXNzaWZpY2F0aW9uO1xuICBpZiAoaXNTZWd3aXRJbnB1dCkge1xuICAgIC8vIFRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0IGlzIHRoZSBzY3JpcHQgY29udGFpbmluZyB0aGUgc2lnbmF0dXJlcywgcHVibGljIGtleXMsIGFuZCB0aGUgc2NyaXB0IHRoYXQgd2FzIGNvbW1pdHRlZFxuICAgIC8vIHRvIChwdWJTY3JpcHQpLiBJZiB0aGlzIGlzIGEgc2Vnd2l0IGlucHV0IHRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0IGlzIGluIHRoZSB3aXRuZXNzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXRcbiAgICAvLyBpcyBuYXRpdmUgb3Igbm90LiBUaGUgaW5wdXRDbGFzc2lmaWNhdGlvbiBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCBpcyBuYXRpdmUgdG8gZ2l2ZSBhblxuICAgIC8vIGFjY3VyYXRlIGNsYXNzaWZpY2F0aW9uLiBOb3RlIHRoYXQgcDJzaFAyd3NoIGlucHV0cyB3aWxsIGJlIGNsYXNzaWZpZWQgYXMgcDJzaCBhbmQgbm90IHAyd3NoLlxuICAgIGRlY29tcGlsZWRTaWdTY3JpcHQgPSBpbnB1dC53aXRuZXNzO1xuICAgIGlmIChpc05hdGl2ZVNlZ3dpdElucHV0KSB7XG4gICAgICBpbnB1dENsYXNzaWZpY2F0aW9uID0gc2NyaXB0LmNsYXNzaWZ5V2l0bmVzcyhzY3JpcHQuY29tcGlsZShkZWNvbXBpbGVkU2lnU2NyaXB0KSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0Q2xhc3NpZmljYXRpb24gPSBzY3JpcHQuY2xhc3NpZnlJbnB1dChpbnB1dC5zY3JpcHQsIHRydWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpbnB1dENsYXNzaWZpY2F0aW9uID0gc2NyaXB0LmNsYXNzaWZ5SW5wdXQoaW5wdXQuc2NyaXB0LCB0cnVlKTtcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gc2NyaXB0LmRlY29tcGlsZShpbnB1dC5zY3JpcHQpO1xuICB9XG5cbiAgaWYgKGlucHV0Q2xhc3NpZmljYXRpb24gPT09IHNjcmlwdC50eXBlcy5QMlBLSCkge1xuICAgIGNvbnN0IFtzaWduYXR1cmUsIHB1YmxpY0tleV0gPSBkZWNvbXBpbGVkU2lnU2NyaXB0O1xuICAgIGNvbnN0IHB1YmxpY0tleXM6IFtCdWZmZXJdID0gW3B1YmxpY0tleV07XG4gICAgY29uc3Qgc2lnbmF0dXJlczogW0J1ZmZlcl0gPSBbc2lnbmF0dXJlXTtcbiAgICBjb25zdCBwdWJTY3JpcHQ6IEJ1ZmZlciA9IHNjcmlwdC5wdWJLZXlIYXNoLm91dHB1dC5lbmNvZGUoY3J5cHRvLmhhc2gxNjAocHVibGljS2V5KSk7XG5cbiAgICByZXR1cm4geyBpc1NlZ3dpdElucHV0LCBpbnB1dENsYXNzaWZpY2F0aW9uLCBzaWduYXR1cmVzLCBwdWJsaWNLZXlzLCBwdWJTY3JpcHQgfTtcbiAgfVxuXG4gIC8vIE5vdGUgdGhlIGFzc3VtcHRpb24gaGVyZSB0aGF0IGlmIHdlIGhhdmUgYSBwMnNoIG9yIHAyd3NoIGlucHV0IGl0IHdpbGwgYmUgbXVsdGlzaWcgKGFwcHJvcHJpYXRlIGJlY2F1c2UgdGhlXG4gIC8vIEJpdEdvIHBsYXRmb3JtIG9ubHkgc3VwcG9ydHMgbXVsdGlzaWcgd2l0aGluIHRoZXNlIHR5cGVzIG9mIGlucHV0cywgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHJlcGxheSBwcm90ZWN0aW9uIGlucHV0cyxcbiAgLy8gd2hpY2ggYXJlIHNpbmdsZSBzaWduYXR1cmUgcDJzaCkuIFNpZ25hdHVyZXMgYXJlIGFsbCBidXQgdGhlIGxhc3QgZW50cnkgaW4gdGhlIGRlY29tcGlsZWRTaWdTY3JpcHQuXG4gIC8vIFRoZSByZWRlZW1TY3JpcHQvd2l0bmVzc1NjcmlwdCAoZGVwZW5kaW5nIG9uIHdoaWNoIHR5cGUgb2YgaW5wdXQgdGhpcyBpcykgaXMgdGhlIGxhc3QgZW50cnkgaW5cbiAgLy8gdGhlIGRlY29tcGlsZWRTaWdTY3JpcHQgKGRlbm90ZWQgaGVyZSBhcyB0aGUgcHViU2NyaXB0KS4gVGhlIHB1YmxpYyBrZXlzIGFyZSB0aGUgc2Vjb25kIHRocm91Z2hcbiAgLy8gYW50ZXBlbnVsdGltYXRlIGVudHJpZXMgaW4gdGhlIGRlY29tcGlsZWRQdWJTY3JpcHQuIFNlZSBiZWxvdyBmb3IgYSB2aXN1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGljYWwgMi1vZi0zXG4gIC8vIG11bHRpc2lnIHNldHVwOlxuICAvL1xuICAvLyAgIGRlY29tcGlsZWRTaWdTY3JpcHQgPSAwIDxzaWcxPiA8c2lnMj4gWzxzaWczPl0gPHB1YlNjcmlwdD5cbiAgLy8gICBkZWNvbXBpbGVkUHViU2NyaXB0ID0gMiA8cHViMT4gPHB1YjI+IDxwdWIzPiAzIE9QX0NIRUNLTVVMVElTSUdcbiAgLy9cbiAgLy8gVHJhbnNhY3Rpb25zIGJ1aWx0IHdpdGggYC5idWlsZCgpYCBvbmx5IGhhdmUgdHdvIHNpZ25hdHVyZXMgYDxzaWcxPmAgYW5kIGA8c2lnMj5gIGluIF9kZWNvbXBpbGVkU2lnU2NyaXB0Xy5cbiAgLy8gVHJhbnNhY3Rpb25zIGJ1aWx0IHdpdGggYC5idWlsZEluY29tcGxldGUoKWAgaGF2ZSB0aHJlZSBzaWduYXR1cmVzLCB3aGVyZSBtaXNzaW5nIHNpZ25hdHVyZXMgYXJlIHN1YnN0aXR1dGVkIHdpdGggYE9QXzBgLlxuICBjb25zdCBleHBlY3RlZFNjcmlwdFR5cGUgPSBpbnB1dENsYXNzaWZpY2F0aW9uID09PSBzY3JpcHQudHlwZXMuUDJTSCB8fCBpbnB1dENsYXNzaWZpY2F0aW9uID09PSBzY3JpcHQudHlwZXMuUDJXU0g7XG4gIGNvbnN0IGV4cGVjdGVkU2NyaXB0TGVuZ3RoID1cbiAgICAvLyBjb21wbGV0ZSB0cmFuc2FjdGlvbnMgd2l0aCAyIHNpZ25hdHVyZXNcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCA9PT0gNCB8fFxuICAgIC8vIGluY29tcGxldGUgdHJhbnNhY3Rpb24gd2l0aCAzIHNpZ25hdHVyZXMgb3Igc2lnbmF0dXJlIHBsYWNlaG9sZGVyc1xuICAgIGRlY29tcGlsZWRTaWdTY3JpcHQubGVuZ3RoID09PSA1O1xuXG4gIGlmICghZXhwZWN0ZWRTY3JpcHRUeXBlIHx8ICFleHBlY3RlZFNjcmlwdExlbmd0aCkge1xuICAgIHJldHVybiB7IGlzU2Vnd2l0SW5wdXQsIGlucHV0Q2xhc3NpZmljYXRpb24gfTtcbiAgfVxuXG4gIGlmIChpc1NlZ3dpdElucHV0KSB7XG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoZGVjb21waWxlZFNpZ1NjcmlwdFswXSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgZGVjb21waWxlZFNpZ1NjcmlwdFswXSB0byBiZSBhIGJ1ZmZlciBmb3Igc2Vnd2l0IGlucHV0c2ApO1xuICAgIH1cbiAgICBpZiAoZGVjb21waWxlZFNpZ1NjcmlwdFswXS5sZW5ndGggIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgd2l0bmVzcyBzdGFjayBleHBlY3RlZCB0byBzdGFydCB3aXRoIGVtcHR5IGJ1ZmZlcmApO1xuICAgIH1cbiAgfSBlbHNlIGlmIChkZWNvbXBpbGVkU2lnU2NyaXB0WzBdICE9PSBvcGNvZGVzLk9QXzApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ1NjcmlwdCBleHBlY3RlZCB0byBzdGFydCB3aXRoIE9QXzBgKTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25hdHVyZXMgPSBkZWNvbXBpbGVkU2lnU2NyaXB0LnNsaWNlKDEgLyogaWdub3JlIGxlYWRpbmcgT1BfMCAqLywgLTEgLyogaWdub3JlIHRyYWlsaW5nIHB1YlNjcmlwdCAqLyk7XG4gIGlmIChzaWduYXR1cmVzLmxlbmd0aCAhPT0gMiAmJiBzaWduYXR1cmVzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgMiBvciAzIHNpZ25hdHVyZXMsIGdvdCAke3NpZ25hdHVyZXMubGVuZ3RofWApO1xuICB9XG5cbiAgY29uc3QgcHViU2NyaXB0ID0gZGVjb21waWxlZFNpZ1NjcmlwdFtkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCAtIDFdO1xuICBjb25zdCBkZWNvbXBpbGVkUHViU2NyaXB0ID0gc2NyaXB0LmRlY29tcGlsZShwdWJTY3JpcHQpO1xuICBpZiAoZGVjb21waWxlZFB1YlNjcmlwdC5sZW5ndGggIT09IDYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgZGVjb21waWxlZFB1YlNjcmlwdCBsZW5ndGhgKTtcbiAgfVxuICBjb25zdCBwdWJsaWNLZXlzID0gZGVjb21waWxlZFB1YlNjcmlwdC5zbGljZSgxLCAtMik7XG4gIGlmIChwdWJsaWNLZXlzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgMyBwdWJsaWMga2V5cywgZ290ICR7cHVibGljS2V5cy5sZW5ndGh9YCk7XG4gIH1cblxuICAvLyBPcCBjb2RlcyA4MSB0aHJvdWdoIDk2IHJlcHJlc2VudCBudW1iZXJzIDEgdGhyb3VnaCAxNiAoc2VlIGh0dHBzOi8vZW4uYml0Y29pbi5pdC93aWtpL1NjcmlwdCNPcGNvZGVzKSwgd2hpY2ggaXNcbiAgLy8gd2h5IHdlIHN1YnRyYWN0IGJ5IDgwIHRvIGdldCB0aGUgbnVtYmVyIG9mIHNpZ25hdHVyZXMgKG4pIGFuZCB0aGUgbnVtYmVyIG9mIHB1YmxpYyBrZXlzIChtKSBpbiBhbiBuLW9mLW0gc2V0dXAuXG4gIGNvbnN0IGxlbiA9IGRlY29tcGlsZWRQdWJTY3JpcHQubGVuZ3RoO1xuICBjb25zdCBzaWduYXR1cmVUaHJlc2hvbGQgPSBkZWNvbXBpbGVkUHViU2NyaXB0WzBdIC0gODA7XG4gIGlmIChzaWduYXR1cmVUaHJlc2hvbGQgIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIHNpZ25hdHVyZVRocmVzaG9sZCAyLCBnb3QgJHtzaWduYXR1cmVUaHJlc2hvbGR9YCk7XG4gIH1cbiAgY29uc3QgblB1YktleXMgPSBkZWNvbXBpbGVkUHViU2NyaXB0W2xlbiAtIDJdIC0gODA7XG4gIGlmIChuUHViS2V5cyAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgblB1YktleXMgMywgZ290ICR7blB1YktleXN9YCk7XG4gIH1cblxuICBjb25zdCBsYXN0T3BDb2RlID0gZGVjb21waWxlZFB1YlNjcmlwdFtsZW4gLSAxXTtcbiAgaWYgKGxhc3RPcENvZGUgIT09IG9wY29kZXMuT1BfQ0hFQ0tNVUxUSVNJRykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgb3Bjb2RlICMke29wY29kZXMuT1BfQ0hFQ0tNVUxUSVNJR30sIGdvdCBvcGNvZGUgIyR7bGFzdE9wQ29kZX1gKTtcbiAgfVxuXG4gIHJldHVybiB7IGlzU2Vnd2l0SW5wdXQsIGlucHV0Q2xhc3NpZmljYXRpb24sIHNpZ25hdHVyZXMsIHB1YmxpY0tleXMsIHB1YlNjcmlwdCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTaWduYXR1cmVTY3JpcHQyT2YzKGlucHV0OiBJbnB1dCk6IFBhcnNlZFNpZ25hdHVyZVNjcmlwdDJPZjMge1xuICBjb25zdCByZXN1bHQgPSBwYXJzZVNpZ25hdHVyZVNjcmlwdChpbnB1dCkgYXMgUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMztcblxuICBpZiAoIVtzY3JpcHQudHlwZXMuUDJXU0gsIHNjcmlwdC50eXBlcy5QMlNILCBzY3JpcHQudHlwZXMuUDJQS0hdLmluY2x1ZGVzKHJlc3VsdC5pbnB1dENsYXNzaWZpY2F0aW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBpbnB1dENsYXNzaWZpY2F0aW9uICR7cmVzdWx0LmlucHV0Q2xhc3NpZmljYXRpb259YCk7XG4gIH1cbiAgaWYgKCFyZXN1bHQuc2lnbmF0dXJlcykge1xuICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyBzaWduYXR1cmVzYCk7XG4gIH1cbiAgaWYgKHJlc3VsdC5wdWJsaWNLZXlzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBwdWJrZXkgY291bnRgKTtcbiAgfVxuICBpZiAoIXJlc3VsdC5wdWJTY3JpcHQgfHwgcmVzdWx0LnB1YlNjcmlwdC5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHB1YlNjcmlwdCBtaXNzaW5nIG9yIGVtcHR5YCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENvbnN0cmFpbnRzIGZvciBzaWduYXR1cmUgdmVyaWZpY2F0aW9ucy5cbiAqIFBhcmFtZXRlcnMgYXJlIGNvbmp1bmN0aXZlOiBpZiBtdWx0aXBsZSBwYXJhbWV0ZXJzIGFyZSBzZXQsIGEgdmVyaWZpY2F0aW9uIGZvciBhbiBpbmRpdmlkdWFsXG4gKiBzaWduYXR1cmUgbXVzdCBzYXRpc2Z5IGFsbCBvZiB0aGVtLlxuICovXG5leHBvcnQgdHlwZSBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHtcbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGUgc2lnbmF0dXJlIHRvIHZlcmlmeS4gT25seSBpdGVyYXRlcyBvdmVyIG5vbi1lbXB0eSBzaWduYXR1cmVzLlxuICAgKi9cbiAgc2lnbmF0dXJlSW5kZXg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgaGV4IG9mIHRoZSBwdWJsaWMga2V5IHRvIHZlcmlmeS5cbiAgICovXG4gIHB1YmxpY0tleT86IEJ1ZmZlcjtcbn07XG5cbi8qKlxuICogUmVzdWx0IGZvciBhIGluZGl2aWR1YWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvblxuICovXG5leHBvcnQgdHlwZSBTaWduYXR1cmVWZXJpZmljYXRpb24gPSB7XG4gIC8qKiBTZXQgdG8gdGhlIHB1YmxpYyBrZXkgdGhhdCBzaWduZWQgZm9yIHRoZSBzaWduYXR1cmUgKi9cbiAgc2lnbmVkQnk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogR2V0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb25zIGZvciBtdWx0c2lnIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gYW1vdW50IC0gbXVzdCBiZSBzZXQgZm9yIHNlZ3dpdCB0cmFuc2FjdGlvbnMgYW5kIEJJUDE0MyB0cmFuc2FjdGlvbnNcbiAqIEBwYXJhbSB2ZXJpZmljYXRpb25TZXR0aW5nc1xuICogQHJldHVybnMgU2lnbmF0dXJlVmVyaWZpY2F0aW9uW10gLSBpbiBvcmRlciBvZiBwYXJzZWQgbm9uLWVtcHR5IHNpZ25hdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnMoXG4gIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBhbW91bnQ6IG51bWJlcixcbiAgdmVyaWZpY2F0aW9uU2V0dGluZ3M6IFZlcmlmaWNhdGlvblNldHRpbmdzID0ge31cbik6IFNpZ25hdHVyZVZlcmlmaWNhdGlvbltdIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCF0cmFuc2FjdGlvbi5pbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHJhbnNhY3Rpb25gKTtcbiAgfVxuXG4gIGNvbnN0IGlucHV0ID0gdHJhbnNhY3Rpb24uaW5zW2lucHV0SW5kZXhdO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWlucHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBubyBpbnB1dCBhdCBpbmRleCAke2lucHV0SW5kZXh9YCk7XG4gIH1cblxuICBjb25zdCBwYXJzZWRTY3JpcHQgPSBwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMoaW5wdXQpO1xuXG4gIGNvbnN0IHNpZ25hdHVyZXMgPSBwYXJzZWRTY3JpcHQuc2lnbmF0dXJlc1xuICAgIC5maWx0ZXIoKHMpID0+IHMgJiYgcy5sZW5ndGgpXG4gICAgLmZpbHRlcigocywgaSkgPT4gdmVyaWZpY2F0aW9uU2V0dGluZ3Muc2lnbmF0dXJlSW5kZXggPT09IHVuZGVmaW5lZCB8fCB2ZXJpZmljYXRpb25TZXR0aW5ncy5zaWduYXR1cmVJbmRleCA9PT0gaSk7XG5cbiAgY29uc3QgcHVibGljS2V5cyA9IHBhcnNlZFNjcmlwdC5wdWJsaWNLZXlzLmZpbHRlcihcbiAgICAoYnVmKSA9PiB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkgPT09IHVuZGVmaW5lZCB8fCB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkuZXF1YWxzKGJ1ZilcbiAgKTtcblxuICByZXR1cm4gc2lnbmF0dXJlcy5tYXAoKHNpZ25hdHVyZUJ1ZmZlcikgPT4ge1xuICAgIC8vIHNsaWNlIHRoZSBsYXN0IGJ5dGUgZnJvbSB0aGUgc2lnbmF0dXJlIGhhc2ggaW5wdXQgYmVjYXVzZSBpdCdzIHRoZSBoYXNoIHR5cGVcbiAgICBjb25zdCBzaWduYXR1cmUgPSBFQ1NpZ25hdHVyZS5mcm9tREVSKHNpZ25hdHVyZUJ1ZmZlci5zbGljZSgwLCAtMSkpO1xuICAgIGNvbnN0IGhhc2hUeXBlID0gc2lnbmF0dXJlQnVmZmVyW3NpZ25hdHVyZUJ1ZmZlci5sZW5ndGggLSAxXTtcbiAgICBjb25zdCB0cmFuc2FjdGlvbkhhc2ggPSB0cmFuc2FjdGlvbi5oYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKFxuICAgICAgaW5wdXRJbmRleCxcbiAgICAgIHBhcnNlZFNjcmlwdC5wdWJTY3JpcHQsXG4gICAgICBhbW91bnQsXG4gICAgICBoYXNoVHlwZSxcbiAgICAgIHBhcnNlZFNjcmlwdC5pc1NlZ3dpdElucHV0XG4gICAgKTtcbiAgICBjb25zdCBzaWduZWRCeSA9IHB1YmxpY0tleXMuZmlsdGVyKChwdWJsaWNLZXkpID0+XG4gICAgICBFQ1BhaXIuZnJvbVB1YmxpY0tleUJ1ZmZlcihwdWJsaWNLZXkpLnZlcmlmeSh0cmFuc2FjdGlvbkhhc2gsIHNpZ25hdHVyZSlcbiAgICApO1xuXG4gICAgaWYgKHNpZ25lZEJ5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHsgc2lnbmVkQnk6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgICBpZiAoc2lnbmVkQnkubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4geyBzaWduZWRCeTogc2lnbmVkQnlbMF0gfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbGxlZ2FsIHN0YXRlOiBzaWduZWQgYnkgbXVsdGlwbGUgcHVibGljIGtleXNgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIGFtb3VudFxuICogQHBhcmFtIHZlcmlmaWNhdGlvblNldHRpbmdzIC0gaWYgcHVibGljS2V5IGlzIHNwZWNpZmllZCwgcmV0dXJucyB0cnVlIGlmZiBhbnkgc2lnbmF0dXJlIGlzIHNpZ25lZCBieSBwdWJsaWNLZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmUoXG4gIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBhbW91bnQ6IG51bWJlcixcbiAgdmVyaWZpY2F0aW9uU2V0dGluZ3M6IFZlcmlmaWNhdGlvblNldHRpbmdzID0ge31cbik6IGJvb2xlYW4ge1xuICBjb25zdCBzaWduYXR1cmVWZXJpZmljYXRpb25zID0gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyhcbiAgICB0cmFuc2FjdGlvbixcbiAgICBpbnB1dEluZGV4LFxuICAgIGFtb3VudCxcbiAgICB2ZXJpZmljYXRpb25TZXR0aW5nc1xuICApLmZpbHRlcihcbiAgICAodikgPT5cbiAgICAgIC8vIElmIGEgcHVibGljS2V5IGNvbnN0cmFpbnQgaXMgc2V0LCBhIHNpbmdsZSB2YWxpZCBzaWduYXR1cmUgYnkgdGhlIHNwZWNpZmllZCBwdWJrZXkgaXMgc3VmZmljaWVudC5cbiAgICAgIC8vIE90aGVyd2lzZSwgYWxsIHNpZ25hdHVyZXMgbXVzdCBiZSB2YWxpZC5cbiAgICAgIHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAodi5zaWduZWRCeSAhPT0gdW5kZWZpbmVkICYmIHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleS5lcXVhbHModi5zaWduZWRCeSkpXG4gICk7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZVZlcmlmaWNhdGlvbnMubGVuZ3RoID4gMCAmJiBzaWduYXR1cmVWZXJpZmljYXRpb25zLmV2ZXJ5KCh2KSA9PiB2LnNpZ25lZEJ5ICE9PSB1bmRlZmluZWQpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILHVDQUF1QztBQUV2QyxpREFBK0U7QUFDL0UsdURBQXVEO0FBQ3ZELHNFQUFzRTtBQUd0RSx3Q0FBd0M7QUFDeEMsb0NBQXNDO0FBQ3RDLHVEQUFvRDtBQUVwRCxNQUFNLFVBQVUsR0FBRztJQUNqQixVQUFVO0lBQ1YsYUFBYTtJQUNiLFVBQVU7SUFDVixRQUFRO0lBQ1IsWUFBWTtJQUNaLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtDQUNYLENBQUM7QUF3QlgsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZ0I7SUFDaEQsUUFBUSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLFFBQVEsQ0FBQyxXQUFXO1lBQ3ZCLE9BQU8sMkJBQVcsQ0FBQyxXQUFXLEdBQUcsaUNBQWUsQ0FBQyxjQUFjLENBQUM7UUFDbEU7WUFDRSxPQUFPLDJCQUFXLENBQUMsV0FBVyxDQUFDO0tBQ2xDO0FBQ0gsQ0FBQztBQVRELDhDQVNDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsS0FBYztJQUVkLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMvQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN0RCxJQUFJLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO0lBQzdDLElBQUksYUFBYSxFQUFFO1FBQ2pCLGtIQUFrSDtRQUNsSCxnSEFBZ0g7UUFDaEgsaUhBQWlIO1FBQ2pI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QUUvQyxNQUFNLHNCQUFzQixHQUFHLHlCQUF5QixDQUN0RCxXQUFXLEVBQ1gsVUFBVSxFQUNWLE1BQU0sRUFDTixvQkFBb0IsQ0FDckIsQ0FBQyxNQUFNLENBQ04sQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNKLGdGQUFnRjtJQUNoRiw2RUFBNkU7SUFDN0Usb0JBQW9CLENBQUMsU0FBUyxLQUFLLFNBQVM7UUFDNUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUNsRixDQUFDO0lBRUYsT0FBTyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztBQUM1RyxDQUFDO0FBcEJELDBDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIG9wY29kZXMgZnJvbSAnYml0Y29pbi1vcHMnO1xuXG5pbXBvcnQgeyBFQ1BhaXIsIHBheW1lbnRzLCBzY3JpcHQsIFRyYW5zYWN0aW9uLCBUeElucHV0IH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyBjbGFzc2lmeSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9jbGFzc2lmeSc7XG5pbXBvcnQgKiBhcyBTY3JpcHRTaWduYXR1cmUgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvc2NyaXB0X3NpZ25hdHVyZSc7XG5cbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuLi9uZXR3b3JrVHlwZXMnO1xuaW1wb3J0ICogYXMgbmV0d29ya3MgZnJvbSAnLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgZ2V0TWFpbm5ldCB9IGZyb20gJy4uL2NvaW5zJztcbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbiB9IGZyb20gJy4vVXR4b1RyYW5zYWN0aW9uJztcblxuY29uc3QgaW5wdXRUeXBlcyA9IFtcbiAgJ211bHRpc2lnJyxcbiAgJ25vbnN0YW5kYXJkJyxcbiAgJ251bGxkYXRhJyxcbiAgJ3B1YmtleScsXG4gICdwdWJrZXloYXNoJyxcbiAgJ3NjcmlwdGhhc2gnLFxuICAnd2l0bmVzc3B1YmtleWhhc2gnLFxuICAnd2l0bmVzc3NjcmlwdGhhc2gnLFxuICAnd2l0bmVzc2NvbW1pdG1lbnQnLFxuXSBhcyBjb25zdDtcblxudHlwZSBJbnB1dFR5cGUgPSB0eXBlb2YgaW5wdXRUeXBlc1tudW1iZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFNpZ25hdHVyZVNjcmlwdCB7XG4gIGlzU2Vnd2l0SW5wdXQ6IGJvb2xlYW47XG4gIGlucHV0Q2xhc3NpZmljYXRpb246IElucHV0VHlwZTtcbiAgcHVibGljS2V5cz86IEJ1ZmZlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFNpZ25hdHVyZVAyUEtIIGV4dGVuZHMgUGFyc2VkU2lnbmF0dXJlU2NyaXB0IHtcbiAgc2lnbmF0dXJlczogW0J1ZmZlcl07XG4gIHB1YmxpY0tleXM6IFtCdWZmZXJdO1xuICBwdWJTY3JpcHQ6IEJ1ZmZlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzIGV4dGVuZHMgUGFyc2VkU2lnbmF0dXJlU2NyaXB0IHtcbiAgc2lnbmF0dXJlczpcbiAgICB8IFtCdWZmZXIsIEJ1ZmZlcl0gLy8gZnVsbHktc2lnbmVkIHRyYW5zYWN0aW9ucyB3aXRoIHNpZ25hdHVyZXNcbiAgICB8IFtCdWZmZXIsIEJ1ZmZlciwgQnVmZmVyXTsgLy8gcGFydGlhbGx5IHNpZ25lZCB0cmFuc2FjdGlvbnMgd2l0aCBwbGFjZWhvbGRlciBzaWduYXR1cmVzXG4gIHB1YmxpY0tleXM6IFtCdWZmZXIsIEJ1ZmZlciwgQnVmZmVyXTtcbiAgcHViU2NyaXB0OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0U2lnSGFzaChuZXR3b3JrOiBOZXR3b3JrKTogbnVtYmVyIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uLlNJR0hBU0hfQUxMIHwgVXR4b1RyYW5zYWN0aW9uLlNJR0hBU0hfRk9SS0lEO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb24uU0lHSEFTSF9BTEw7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhIHRyYW5zYWN0aW9uJ3Mgc2lnbmF0dXJlIHNjcmlwdCB0byBvYnRhaW4gcHVibGljIGtleXMsIHNpZ25hdHVyZXMsIHRoZSBzaWcgc2NyaXB0LFxuICogYW5kIG90aGVyIHByb3BlcnRpZXMuXG4gKlxuICogT25seSBzdXBwb3J0cyBzY3JpcHQgdHlwZXMgdXNlZCBpbiBCaXRHbyB0cmFuc2FjdGlvbnMuXG4gKlxuICogQHBhcmFtIGlucHV0XG4gKiBAcmV0dXJucyBQYXJzZWRTaWduYXR1cmVTY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2lnbmF0dXJlU2NyaXB0KFxuICBpbnB1dDogVHhJbnB1dFxuKTogUGFyc2VkU2lnbmF0dXJlU2NyaXB0IHwgUGFyc2VkU2lnbmF0dXJlUDJQS0ggfCBQYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzIHtcbiAgY29uc3QgaXNTZWd3aXRJbnB1dCA9IGlucHV0LndpdG5lc3MubGVuZ3RoID4gMDtcbiAgY29uc3QgaXNOYXRpdmVTZWd3aXRJbnB1dCA9IGlucHV0LnNjcmlwdC5sZW5ndGggPT09IDA7XG4gIGxldCBkZWNvbXBpbGVkU2lnU2NyaXB0LCBpbnB1dENsYXNzaWZpY2F0aW9uO1xuICBpZiAoaXNTZWd3aXRJbnB1dCkge1xuICAgIC8vIFRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0IGlzIHRoZSBzY3JpcHQgY29udGFpbmluZyB0aGUgc2lnbmF0dXJlcywgcHVibGljIGtleXMsIGFuZCB0aGUgc2NyaXB0IHRoYXQgd2FzIGNvbW1pdHRlZFxuICAgIC8vIHRvIChwdWJTY3JpcHQpLiBJZiB0aGlzIGlzIGEgc2Vnd2l0IGlucHV0IHRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0IGlzIGluIHRoZSB3aXRuZXNzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXRcbiAgICAvLyBpcyBuYXRpdmUgb3Igbm90LiBUaGUgaW5wdXRDbGFzc2lmaWNhdGlvbiBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCBpcyBuYXRpdmUgdG8gZ2l2ZSBhblxuICAgIC8vIGFjY3VyYXRlIGNsYXNzaWZpY2F0aW9uLiBOb3RlIHRoYXQgcDJzaFAyd3NoIGlucHV0cyB3aWxsIGJlIGNsYXNzaWZpZWQgYXMgcDJzaCBhbmQgbm90IHAyd3NoLlxuICAgIGRlY29tcGlsZWRTaWdTY3JpcHQgPSBpbnB1dC53aXRuZXNzO1xuICAgIGlmIChpc05hdGl2ZVNlZ3dpdElucHV0KSB7XG4gICAgICBpbnB1dENsYXNzaWZpY2F0aW9uID0gY2xhc3NpZnkud2l0bmVzcyhzY3JpcHQuY29tcGlsZShkZWNvbXBpbGVkU2lnU2NyaXB0KSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0Q2xhc3NpZmljYXRpb24gPSBjbGFzc2lmeS5pbnB1dChpbnB1dC5zY3JpcHQsIHRydWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpbnB1dENsYXNzaWZpY2F0aW9uID0gY2xhc3NpZnkuaW5wdXQoaW5wdXQuc2NyaXB0LCB0cnVlKTtcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gc2NyaXB0LmRlY29tcGlsZShpbnB1dC5zY3JpcHQpO1xuICB9XG5cbiAgaWYgKGlucHV0Q2xhc3NpZmljYXRpb24gPT09IGNsYXNzaWZ5LnR5cGVzLlAyUEtIKSB7XG4gICAgY29uc3QgW3NpZ25hdHVyZSwgcHVibGljS2V5XSA9IGRlY29tcGlsZWRTaWdTY3JpcHQ7XG4gICAgY29uc3QgcHVibGljS2V5cyA9IFtwdWJsaWNLZXldO1xuICAgIGNvbnN0IHNpZ25hdHVyZXM6IFtCdWZmZXJdID0gW3NpZ25hdHVyZV07XG4gICAgY29uc3QgcHViU2NyaXB0ID0gcGF5bWVudHMucDJwa2goeyBwdWJrZXk6IHB1YmxpY0tleSB9KS5vdXRwdXQ7XG5cbiAgICByZXR1cm4geyBpc1NlZ3dpdElucHV0LCBpbnB1dENsYXNzaWZpY2F0aW9uLCBzaWduYXR1cmVzLCBwdWJsaWNLZXlzLCBwdWJTY3JpcHQgfTtcbiAgfVxuXG4gIC8vIE5vdGUgdGhlIGFzc3VtcHRpb24gaGVyZSB0aGF0IGlmIHdlIGhhdmUgYSBwMnNoIG9yIHAyd3NoIGlucHV0IGl0IHdpbGwgYmUgbXVsdGlzaWcgKGFwcHJvcHJpYXRlIGJlY2F1c2UgdGhlXG4gIC8vIEJpdEdvIHBsYXRmb3JtIG9ubHkgc3VwcG9ydHMgbXVsdGlzaWcgd2l0aGluIHRoZXNlIHR5cGVzIG9mIGlucHV0cywgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHJlcGxheSBwcm90ZWN0aW9uIGlucHV0cyxcbiAgLy8gd2hpY2ggYXJlIHNpbmdsZSBzaWduYXR1cmUgcDJzaCkuIFNpZ25hdHVyZXMgYXJlIGFsbCBidXQgdGhlIGxhc3QgZW50cnkgaW4gdGhlIGRlY29tcGlsZWRTaWdTY3JpcHQuXG4gIC8vIFRoZSByZWRlZW1TY3JpcHQvd2l0bmVzc1NjcmlwdCAoZGVwZW5kaW5nIG9uIHdoaWNoIHR5cGUgb2YgaW5wdXQgdGhpcyBpcykgaXMgdGhlIGxhc3QgZW50cnkgaW5cbiAgLy8gdGhlIGRlY29tcGlsZWRTaWdTY3JpcHQgKGRlbm90ZWQgaGVyZSBhcyB0aGUgcHViU2NyaXB0KS4gVGhlIHB1YmxpYyBrZXlzIGFyZSB0aGUgc2Vjb25kIHRocm91Z2hcbiAgLy8gYW50ZXBlbnVsdGltYXRlIGVudHJpZXMgaW4gdGhlIGRlY29tcGlsZWRQdWJTY3JpcHQuIFNlZSBiZWxvdyBmb3IgYSB2aXN1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGljYWwgMi1vZi0zXG4gIC8vIG11bHRpc2lnIHNldHVwOlxuICAvL1xuICAvLyAgIGRlY29tcGlsZWRTaWdTY3JpcHQgPSAwIDxzaWcxPiA8c2lnMj4gWzxzaWczPl0gPHB1YlNjcmlwdD5cbiAgLy8gICBkZWNvbXBpbGVkUHViU2NyaXB0ID0gMiA8cHViMT4gPHB1YjI+IDxwdWIzPiAzIE9QX0NIRUNLTVVMVElTSUdcbiAgLy9cbiAgLy8gVHJhbnNhY3Rpb25zIGJ1aWx0IHdpdGggYC5idWlsZCgpYCBvbmx5IGhhdmUgdHdvIHNpZ25hdHVyZXMgYDxzaWcxPmAgYW5kIGA8c2lnMj5gIGluIF9kZWNvbXBpbGVkU2lnU2NyaXB0Xy5cbiAgLy8gVHJhbnNhY3Rpb25zIGJ1aWx0IHdpdGggYC5idWlsZEluY29tcGxldGUoKWAgaGF2ZSB0aHJlZSBzaWduYXR1cmVzLCB3aGVyZSBtaXNzaW5nIHNpZ25hdHVyZXMgYXJlIHN1YnN0aXR1dGVkIHdpdGggYE9QXzBgLlxuICBjb25zdCBleHBlY3RlZFNjcmlwdFR5cGUgPVxuICAgIGlucHV0Q2xhc3NpZmljYXRpb24gPT09IGNsYXNzaWZ5LnR5cGVzLlAyU0ggfHwgaW5wdXRDbGFzc2lmaWNhdGlvbiA9PT0gY2xhc3NpZnkudHlwZXMuUDJXU0g7XG4gIGNvbnN0IGV4cGVjdGVkU2NyaXB0TGVuZ3RoID1cbiAgICAvLyBjb21wbGV0ZSB0cmFuc2FjdGlvbnMgd2l0aCAyIHNpZ25hdHVyZXNcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCA9PT0gNCB8fFxuICAgIC8vIGluY29tcGxldGUgdHJhbnNhY3Rpb24gd2l0aCAzIHNpZ25hdHVyZXMgb3Igc2lnbmF0dXJlIHBsYWNlaG9sZGVyc1xuICAgIGRlY29tcGlsZWRTaWdTY3JpcHQubGVuZ3RoID09PSA1O1xuXG4gIGlmICghZXhwZWN0ZWRTY3JpcHRUeXBlIHx8ICFleHBlY3RlZFNjcmlwdExlbmd0aCkge1xuICAgIHJldHVybiB7IGlzU2Vnd2l0SW5wdXQsIGlucHV0Q2xhc3NpZmljYXRpb24gfTtcbiAgfVxuXG4gIGlmIChpc1NlZ3dpdElucHV0KSB7XG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoZGVjb21waWxlZFNpZ1NjcmlwdFswXSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgZGVjb21waWxlZFNpZ1NjcmlwdFswXSB0byBiZSBhIGJ1ZmZlciBmb3Igc2Vnd2l0IGlucHV0c2ApO1xuICAgIH1cbiAgICBpZiAoZGVjb21waWxlZFNpZ1NjcmlwdFswXS5sZW5ndGggIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgd2l0bmVzcyBzdGFjayBleHBlY3RlZCB0byBzdGFydCB3aXRoIGVtcHR5IGJ1ZmZlcmApO1xuICAgIH1cbiAgfSBlbHNlIGlmIChkZWNvbXBpbGVkU2lnU2NyaXB0WzBdICE9PSBvcGNvZGVzLk9QXzApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ1NjcmlwdCBleHBlY3RlZCB0byBzdGFydCB3aXRoIE9QXzBgKTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25hdHVyZXMgPSBkZWNvbXBpbGVkU2lnU2NyaXB0LnNsaWNlKDEgLyogaWdub3JlIGxlYWRpbmcgT1BfMCAqLywgLTEgLyogaWdub3JlIHRyYWlsaW5nIHB1YlNjcmlwdCAqLyk7XG4gIGlmIChzaWduYXR1cmVzLmxlbmd0aCAhPT0gMiAmJiBzaWduYXR1cmVzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgMiBvciAzIHNpZ25hdHVyZXMsIGdvdCAke3NpZ25hdHVyZXMubGVuZ3RofWApO1xuICB9XG5cbiAgY29uc3QgcHViU2NyaXB0ID0gZGVjb21waWxlZFNpZ1NjcmlwdFtkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCAtIDFdO1xuICBjb25zdCBkZWNvbXBpbGVkUHViU2NyaXB0ID0gc2NyaXB0LmRlY29tcGlsZShwdWJTY3JpcHQpO1xuICBpZiAoZGVjb21waWxlZFB1YlNjcmlwdCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY291bGQgbm90IGRlY29tcGlsZSBwdWJTY3JpcHRgKTtcbiAgfVxuICBpZiAoZGVjb21waWxlZFB1YlNjcmlwdC5sZW5ndGggIT09IDYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgZGVjb21waWxlZFB1YlNjcmlwdCBsZW5ndGhgKTtcbiAgfVxuICBjb25zdCBwdWJsaWNLZXlzID0gZGVjb21waWxlZFB1YlNjcmlwdC5zbGljZSgxLCAtMikgYXMgQnVmZmVyW107XG4gIHB1YmxpY0tleXMuZm9yRWFjaCgoYikgPT4ge1xuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG4gIH0pO1xuICBpZiAocHVibGljS2V5cy5sZW5ndGggIT09IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIDMgcHVibGljIGtleXMsIGdvdCAke3B1YmxpY0tleXMubGVuZ3RofWApO1xuICB9XG5cbiAgLy8gT3AgY29kZXMgODEgdGhyb3VnaCA5NiByZXByZXNlbnQgbnVtYmVycyAxIHRocm91Z2ggMTYgKHNlZSBodHRwczovL2VuLmJpdGNvaW4uaXQvd2lraS9TY3JpcHQjT3Bjb2RlcyksIHdoaWNoIGlzXG4gIC8vIHdoeSB3ZSBzdWJ0cmFjdCBieSA4MCB0byBnZXQgdGhlIG51bWJlciBvZiBzaWduYXR1cmVzIChuKSBhbmQgdGhlIG51bWJlciBvZiBwdWJsaWMga2V5cyAobSkgaW4gYW4gbi1vZi1tIHNldHVwLlxuICBjb25zdCBsZW4gPSBkZWNvbXBpbGVkUHViU2NyaXB0Lmxlbmd0aDtcbiAgY29uc3Qgc2lnbmF0dXJlVGhyZXNob2xkID0gKGRlY29tcGlsZWRQdWJTY3JpcHRbMF0gYXMgbnVtYmVyKSAtIDgwO1xuICBpZiAoc2lnbmF0dXJlVGhyZXNob2xkICE9PSAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBzaWduYXR1cmVUaHJlc2hvbGQgMiwgZ290ICR7c2lnbmF0dXJlVGhyZXNob2xkfWApO1xuICB9XG4gIGNvbnN0IG5QdWJLZXlzID0gKGRlY29tcGlsZWRQdWJTY3JpcHRbbGVuIC0gMl0gYXMgbnVtYmVyKSAtIDgwO1xuICBpZiAoblB1YktleXMgIT09IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIG5QdWJLZXlzIDMsIGdvdCAke25QdWJLZXlzfWApO1xuICB9XG5cbiAgY29uc3QgbGFzdE9wQ29kZSA9IGRlY29tcGlsZWRQdWJTY3JpcHRbbGVuIC0gMV07XG4gIGlmIChsYXN0T3BDb2RlICE9PSBvcGNvZGVzLk9QX0NIRUNLTVVMVElTSUcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIG9wY29kZSAjJHtvcGNvZGVzLk9QX0NIRUNLTVVMVElTSUd9LCBnb3Qgb3Bjb2RlICMke2xhc3RPcENvZGV9YCk7XG4gIH1cblxuICByZXR1cm4geyBpc1NlZ3dpdElucHV0LCBpbnB1dENsYXNzaWZpY2F0aW9uLCBzaWduYXR1cmVzLCBwdWJsaWNLZXlzLCBwdWJTY3JpcHQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2lnbmF0dXJlU2NyaXB0Mk9mMyhpbnB1dDogVHhJbnB1dCk6IFBhcnNlZFNpZ25hdHVyZVNjcmlwdDJPZjMge1xuICBjb25zdCByZXN1bHQgPSBwYXJzZVNpZ25hdHVyZVNjcmlwdChpbnB1dCkgYXMgUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMztcblxuICBpZiAoIVtjbGFzc2lmeS50eXBlcy5QMldTSCwgY2xhc3NpZnkudHlwZXMuUDJTSCwgY2xhc3NpZnkudHlwZXMuUDJQS0hdLmluY2x1ZGVzKHJlc3VsdC5pbnB1dENsYXNzaWZpY2F0aW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBpbnB1dENsYXNzaWZpY2F0aW9uICR7cmVzdWx0LmlucHV0Q2xhc3NpZmljYXRpb259YCk7XG4gIH1cbiAgaWYgKCFyZXN1bHQuc2lnbmF0dXJlcykge1xuICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyBzaWduYXR1cmVzYCk7XG4gIH1cbiAgaWYgKHJlc3VsdC5wdWJsaWNLZXlzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBwdWJrZXkgY291bnRgKTtcbiAgfVxuICBpZiAoIXJlc3VsdC5wdWJTY3JpcHQgfHwgcmVzdWx0LnB1YlNjcmlwdC5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHB1YlNjcmlwdCBtaXNzaW5nIG9yIGVtcHR5YCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENvbnN0cmFpbnRzIGZvciBzaWduYXR1cmUgdmVyaWZpY2F0aW9ucy5cbiAqIFBhcmFtZXRlcnMgYXJlIGNvbmp1bmN0aXZlOiBpZiBtdWx0aXBsZSBwYXJhbWV0ZXJzIGFyZSBzZXQsIGEgdmVyaWZpY2F0aW9uIGZvciBhbiBpbmRpdmlkdWFsXG4gKiBzaWduYXR1cmUgbXVzdCBzYXRpc2Z5IGFsbCBvZiB0aGVtLlxuICovXG5leHBvcnQgdHlwZSBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHtcbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGUgc2lnbmF0dXJlIHRvIHZlcmlmeS4gT25seSBpdGVyYXRlcyBvdmVyIG5vbi1lbXB0eSBzaWduYXR1cmVzLlxuICAgKi9cbiAgc2lnbmF0dXJlSW5kZXg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgaGV4IG9mIHRoZSBwdWJsaWMga2V5IHRvIHZlcmlmeS5cbiAgICovXG4gIHB1YmxpY0tleT86IEJ1ZmZlcjtcbn07XG5cbi8qKlxuICogUmVzdWx0IGZvciBhIGluZGl2aWR1YWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvblxuICovXG5leHBvcnQgdHlwZSBTaWduYXR1cmVWZXJpZmljYXRpb24gPSB7XG4gIC8qKiBTZXQgdG8gdGhlIHB1YmxpYyBrZXkgdGhhdCBzaWduZWQgZm9yIHRoZSBzaWduYXR1cmUgKi9cbiAgc2lnbmVkQnk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogR2V0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb25zIGZvciBtdWx0c2lnIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gYW1vdW50IC0gbXVzdCBiZSBzZXQgZm9yIHNlZ3dpdCB0cmFuc2FjdGlvbnMgYW5kIEJJUDE0MyB0cmFuc2FjdGlvbnNcbiAqIEBwYXJhbSB2ZXJpZmljYXRpb25TZXR0aW5nc1xuICogQHJldHVybnMgU2lnbmF0dXJlVmVyaWZpY2F0aW9uW10gLSBpbiBvcmRlciBvZiBwYXJzZWQgbm9uLWVtcHR5IHNpZ25hdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnMoXG4gIHRyYW5zYWN0aW9uOiBVdHhvVHJhbnNhY3Rpb24sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgYW1vdW50OiBudW1iZXIsXG4gIHZlcmlmaWNhdGlvblNldHRpbmdzOiBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHt9XG4pOiBTaWduYXR1cmVWZXJpZmljYXRpb25bXSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghdHJhbnNhY3Rpb24uaW5zKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHRyYW5zYWN0aW9uYCk7XG4gIH1cblxuICBjb25zdCBpbnB1dCA9IHRyYW5zYWN0aW9uLmluc1tpbnB1dEluZGV4XTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFpbnB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gaW5wdXQgYXQgaW5kZXggJHtpbnB1dEluZGV4fWApO1xuICB9XG5cbiAgY29uc3QgcGFyc2VkU2NyaXB0ID0gcGFyc2VTaWduYXR1cmVTY3JpcHQyT2YzKGlucHV0KTtcblxuICBjb25zdCBzaWduYXR1cmVzID0gcGFyc2VkU2NyaXB0LnNpZ25hdHVyZXNcbiAgICAuZmlsdGVyKChzKSA9PiBzICYmIHMubGVuZ3RoKVxuICAgIC5maWx0ZXIoKHMsIGkpID0+IHZlcmlmaWNhdGlvblNldHRpbmdzLnNpZ25hdHVyZUluZGV4ID09PSB1bmRlZmluZWQgfHwgdmVyaWZpY2F0aW9uU2V0dGluZ3Muc2lnbmF0dXJlSW5kZXggPT09IGkpO1xuXG4gIGNvbnN0IHB1YmxpY0tleXMgPSBwYXJzZWRTY3JpcHQucHVibGljS2V5cy5maWx0ZXIoXG4gICAgKGJ1ZikgPT4gdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5ID09PSB1bmRlZmluZWQgfHwgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5LmVxdWFscyhidWYpXG4gICk7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZXMubWFwKChzaWduYXR1cmVCdWZmZXIpID0+IHtcbiAgICAvLyBzbGljZSB0aGUgbGFzdCBieXRlIGZyb20gdGhlIHNpZ25hdHVyZSBoYXNoIGlucHV0IGJlY2F1c2UgaXQncyB0aGUgaGFzaCB0eXBlXG4gICAgY29uc3QgeyBzaWduYXR1cmUsIGhhc2hUeXBlIH0gPSBTY3JpcHRTaWduYXR1cmUuZGVjb2RlKHNpZ25hdHVyZUJ1ZmZlcik7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25IYXNoID0gcGFyc2VkU2NyaXB0LmlzU2Vnd2l0SW5wdXRcbiAgICAgID8gdHJhbnNhY3Rpb24uaGFzaEZvcldpdG5lc3NWMChpbnB1dEluZGV4LCBwYXJzZWRTY3JpcHQucHViU2NyaXB0LCBhbW91bnQsIGhhc2hUeXBlKVxuICAgICAgOiB0cmFuc2FjdGlvbi5oYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKGlucHV0SW5kZXgsIHBhcnNlZFNjcmlwdC5wdWJTY3JpcHQsIGFtb3VudCwgaGFzaFR5cGUpO1xuICAgIGNvbnN0IHNpZ25lZEJ5ID0gcHVibGljS2V5cy5maWx0ZXIoKHB1YmxpY0tleSkgPT5cbiAgICAgIEVDUGFpci5mcm9tUHVibGljS2V5KHB1YmxpY0tleSkudmVyaWZ5KHRyYW5zYWN0aW9uSGFzaCwgc2lnbmF0dXJlKVxuICAgICk7XG5cbiAgICBpZiAoc2lnbmVkQnkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4geyBzaWduZWRCeTogdW5kZWZpbmVkIH07XG4gICAgfVxuICAgIGlmIChzaWduZWRCeS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB7IHNpZ25lZEJ5OiBzaWduZWRCeVswXSB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGlsbGVnYWwgc3RhdGU6IHNpZ25lZCBieSBtdWx0aXBsZSBwdWJsaWMga2V5c2ApO1xuICB9KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gYW1vdW50XG4gKiBAcGFyYW0gdmVyaWZpY2F0aW9uU2V0dGluZ3MgLSBpZiBwdWJsaWNLZXkgaXMgc3BlY2lmaWVkLCByZXR1cm5zIHRydWUgaWZmIGFueSBzaWduYXR1cmUgaXMgc2lnbmVkIGJ5IHB1YmxpY0tleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZShcbiAgdHJhbnNhY3Rpb246IFV0eG9UcmFuc2FjdGlvbixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBhbW91bnQ6IG51bWJlcixcbiAgdmVyaWZpY2F0aW9uU2V0dGluZ3M6IFZlcmlmaWNhdGlvblNldHRpbmdzID0ge31cbik6IGJvb2xlYW4ge1xuICBjb25zdCBzaWduYXR1cmVWZXJpZmljYXRpb25zID0gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyhcbiAgICB0cmFuc2FjdGlvbixcbiAgICBpbnB1dEluZGV4LFxuICAgIGFtb3VudCxcbiAgICB2ZXJpZmljYXRpb25TZXR0aW5nc1xuICApLmZpbHRlcihcbiAgICAodikgPT5cbiAgICAgIC8vIElmIG5vIHB1YmxpY0tleSBpcyBzZXQgaW4gdmVyaWZpY2F0aW9uU2V0dGluZ3MsIGFsbCBzaWduYXR1cmVzIG11c3QgYmUgdmFsaWQuXG4gICAgICAvLyBPdGhlcndpc2UsIGEgc2luZ2xlIHZhbGlkIHNpZ25hdHVyZSBieSB0aGUgc3BlY2lmaWVkIHB1YmtleSBpcyBzdWZmaWNpZW50LlxuICAgICAgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICh2LnNpZ25lZEJ5ICE9PSB1bmRlZmluZWQgJiYgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5LmVxdWFscyh2LnNpZ25lZEJ5KSlcbiAgKTtcblxuICByZXR1cm4gc2lnbmF0dXJlVmVyaWZpY2F0aW9ucy5sZW5ndGggPiAwICYmIHNpZ25hdHVyZVZlcmlmaWNhdGlvbnMuZXZlcnkoKHYpID0+IHYuc2lnbmVkQnkgIT09IHVuZGVmaW5lZCk7XG59XG4iXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTransactionBuilderFromTransaction = exports.createTransactionBuilderForNetwork = exports.setTransactionBuilderDefaults = exports.createTransactionFromHex = exports.createTransactionFromBuffer = exports.createTransactionForNetwork = void 0;
exports.createTransactionBuilderFromTransaction = exports.createTransactionBuilderForNetwork = exports.setTransactionBuilderDefaults = exports.createTransactionFromHex = exports.createTransactionFromBuffer = void 0;
/**

@@ -9,6 +9,10 @@ * @prettier

const coins_1 = require("../coins");
const Transaction = require('../transaction');
const TransactionBuilder = require('../transaction_builder');
function createTransactionForNetwork(network) {
switch (coins_1.getMainnet(network)) {
const UtxoTransaction_1 = require("./UtxoTransaction");
const UtxoTransactionBuilder_1 = require("./UtxoTransactionBuilder");
const DashTransaction_1 = require("./dash/DashTransaction");
const DashTransactionBuilder_1 = require("./dash/DashTransactionBuilder");
const ZcashTransactionBuilder_1 = require("./zcash/ZcashTransactionBuilder");
const ZcashTransaction_1 = require("./zcash/ZcashTransaction");
function createTransactionFromBuffer(buf, network) {
switch ((0, coins_1.getMainnet)(network)) {
case networks.bitcoin:

@@ -18,21 +22,8 @@ case networks.bitcoincash:

case networks.bitcoingold:
case networks.dash:
case networks.litecoin:
case networks.zcash:
return new Transaction(network);
}
/* istanbul ignore next */
throw new Error(`invalid network`);
}
exports.createTransactionForNetwork = createTransactionForNetwork;
function createTransactionFromBuffer(buf, network) {
switch (coins_1.getMainnet(network)) {
case networks.bitcoin:
case networks.bitcoincash:
case networks.bitcoinsv:
case networks.bitcoingold:
return UtxoTransaction_1.UtxoTransaction.fromBuffer(buf, false, network);
case networks.dash:
case networks.litecoin:
return DashTransaction_1.DashTransaction.fromBuffer(buf, false, network);
case networks.zcash:
return Transaction.fromBuffer(buf, network);
return ZcashTransaction_1.ZcashTransaction.fromBuffer(buf, false, network);
}

@@ -43,2 +34,3 @@ /* istanbul ignore next */

exports.createTransactionFromBuffer = createTransactionFromBuffer;
/* istanbul ignore next */
function createTransactionFromHex(hex, network) {

@@ -49,3 +41,3 @@ return createTransactionFromBuffer(Buffer.from(hex, 'hex'), network);

function setTransactionBuilderDefaults(txb, network) {
switch (coins_1.getMainnet(network)) {
switch ((0, coins_1.getMainnet)(network)) {
case networks.bitcoincash:

@@ -67,3 +59,3 @@ case networks.bitcoinsv:

let txb;
switch (coins_1.getMainnet(network)) {
switch ((0, coins_1.getMainnet)(network)) {
case networks.bitcoin:

@@ -73,10 +65,13 @@ case networks.bitcoincash:

case networks.bitcoingold:
case networks.litecoin: {
txb = new UtxoTransactionBuilder_1.UtxoTransactionBuilder(network);
break;
}
case networks.dash:
case networks.litecoin:
case networks.zcash:
txb = new TransactionBuilder(network);
txb = new DashTransactionBuilder_1.DashTransactionBuilder(network);
break;
default:
/* istanbul ignore next */
throw new Error(`invalid network`);
case networks.zcash: {
txb = new ZcashTransactionBuilder_1.ZcashTransactionBuilder(network);
break;
}
}

@@ -88,3 +83,3 @@ setTransactionBuilderDefaults(txb, network);

function createTransactionBuilderFromTransaction(tx) {
switch (coins_1.getMainnet(tx.network)) {
switch ((0, coins_1.getMainnet)(tx.network)) {
case networks.bitcoin:

@@ -94,11 +89,12 @@ case networks.bitcoincash:

case networks.bitcoingold:
case networks.litecoin:
return UtxoTransactionBuilder_1.UtxoTransactionBuilder.fromTransaction(tx);
case networks.dash:
case networks.litecoin:
return DashTransactionBuilder_1.DashTransactionBuilder.fromTransaction(tx);
case networks.zcash:
return TransactionBuilder.fromTransaction(tx, tx.network);
return ZcashTransactionBuilder_1.ZcashTransactionBuilder.fromTransaction(tx);
}
/* istanbul ignore next */
throw new Error(`invalid network`);
}
exports.createTransactionBuilderFromTransaction = createTransactionBuilderFromTransaction;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCx3Q0FBd0M7QUFFeEMsb0NBQXNDO0FBRXRDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzlDLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFNN0QsU0FBZ0IsMkJBQTJCLENBQUMsT0FBZ0I7SUFDMUQsUUFBUSxrQkFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkIsS0FBSyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLEtBQUssUUFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNuQztJQUVELDBCQUEwQjtJQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsQ0FBQztBQWRELGtFQWNDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQUMsR0FBVyxFQUFFLE9BQWdCO0lBQ3ZFLFFBQVEsa0JBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDdEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ25CLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QixLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDL0M7SUFFRCwwQkFBMEI7SUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFkRCxrRUFjQztBQUVELFNBQWdCLHdCQUF3QixDQUFDLEdBQVcsRUFBRSxPQUFnQjtJQUNwRSxPQUFPLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFGRCw0REFFQztBQUVELFNBQWdCLDZCQUE2QixDQUFDLEdBQXVCLEVBQUUsT0FBZ0I7SUFDckYsUUFBUSxrQkFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVztZQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xDLGdFQUFnRTtZQUNoRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckMsTUFBTTtLQUNUO0FBQ0gsQ0FBQztBQWRELHNFQWNDO0FBRUQsU0FBZ0Isa0NBQWtDLENBQUMsT0FBZ0I7SUFDakUsSUFBSSxHQUFHLENBQUM7SUFDUixRQUFRLGtCQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztRQUNuQixLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkIsS0FBSyxRQUFRLENBQUMsS0FBSztZQUNqQixHQUFHLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxNQUFNO1FBQ1I7WUFDRSwwQkFBMEI7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBQ3RDO0lBRUQsNkJBQTZCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRTVDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQXBCRCxnRkFvQkM7QUFFRCxTQUFnQix1Q0FBdUMsQ0FBQyxFQUFlO0lBQ3JFLFFBQVEsa0JBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDOUIsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztRQUNuQixLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkIsS0FBSyxRQUFRLENBQUMsS0FBSztZQUNqQixPQUFPLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzdEO0lBRUQsMEJBQTBCO0lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBZEQsMEZBY0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBuZXR3b3JrcyBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBOZXR3b3JrLCBaY2FzaE5ldHdvcmsgfSBmcm9tICcuLi9uZXR3b3JrVHlwZXMnO1xuaW1wb3J0IHsgZ2V0TWFpbm5ldCB9IGZyb20gJy4uL2NvaW5zJztcblxuY29uc3QgVHJhbnNhY3Rpb24gPSByZXF1aXJlKCcuLi90cmFuc2FjdGlvbicpO1xuY29uc3QgVHJhbnNhY3Rpb25CdWlsZGVyID0gcmVxdWlyZSgnLi4vdHJhbnNhY3Rpb25fYnVpbGRlcicpO1xuXG50eXBlIFRyYW5zYWN0aW9uID0gYW55O1xuXG50eXBlIFRyYW5zYWN0aW9uQnVpbGRlciA9IGFueTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRm9yTmV0d29yayhuZXR3b3JrOiBOZXR3b3JrKTogVHJhbnNhY3Rpb24ge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luOlxuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKG5ldHdvcmspO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihidWY6IEJ1ZmZlciwgbmV0d29yazogTmV0d29yayk6IFRyYW5zYWN0aW9uIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uLmZyb21CdWZmZXIoYnVmLCBuZXR3b3JrKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoaGV4OiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmspOiBUcmFuc2FjdGlvbiB7XG4gIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoQnVmZmVyLmZyb20oaGV4LCAnaGV4JyksIG5ldHdvcmspO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNhY3Rpb25CdWlsZGVyRGVmYXVsdHModHhiOiBUcmFuc2FjdGlvbkJ1aWxkZXIsIG5ldHdvcms6IE5ldHdvcmspOiB2b2lkIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgICAgdHhiLnNldFZlcnNpb24oMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgdHhiLnNldFZlcnNpb24oNCk7XG4gICAgICB0eGIuc2V0VmVyc2lvbkdyb3VwSWQoMHg4OTJmMjA4NSk7XG4gICAgICAvLyBVc2UgXCJDYW5vcHlcIiBjb25zZW5zdXMgYnJhbmNoIElEIGh0dHBzOi8vemlwcy56LmNhc2gvemlwLTAyNTFcbiAgICAgIHR4Yi5zZXRDb25zZW5zdXNCcmFuY2hJZCgweGU5ZmY3NWE2KTtcbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrKG5ldHdvcms6IE5ldHdvcmspOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBsZXQgdHhiO1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luOlxuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICB0eGIgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xuICB9XG5cbiAgc2V0VHJhbnNhY3Rpb25CdWlsZGVyRGVmYXVsdHModHhiLCBuZXR3b3JrKTtcblxuICByZXR1cm4gdHhiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRnJvbVRyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOlxuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uKHR4LCB0eC5uZXR3b3JrKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCx3Q0FBd0M7QUFFeEMsb0NBQXNDO0FBRXRDLHVEQUFvRDtBQUNwRCxxRUFBa0U7QUFDbEUsNERBQXlEO0FBQ3pELDBFQUF1RTtBQUN2RSw2RUFBMEU7QUFDMUUsK0RBQTREO0FBRTVELFNBQWdCLDJCQUEyQixDQUFDLEdBQVcsRUFBRSxPQUFnQjtJQUN2RSxRQUFRLElBQUEsa0JBQVUsRUFBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDdEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsUUFBUTtZQUNwQixPQUFPLGlDQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsS0FBSyxRQUFRLENBQUMsSUFBSTtZQUNoQixPQUFPLGlDQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsS0FBSyxRQUFRLENBQUMsS0FBSztZQUNqQixPQUFPLG1DQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQXVCLENBQUMsQ0FBQztLQUMzRTtJQUVELDBCQUEwQjtJQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsQ0FBQztBQWhCRCxrRUFnQkM7QUFFRCwwQkFBMEI7QUFDMUIsU0FBZ0Isd0JBQXdCLENBQUMsR0FBVyxFQUFFLE9BQWdCO0lBQ3BFLE9BQU8sMkJBQTJCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUZELDREQUVDO0FBRUQsU0FBZ0IsNkJBQTZCLENBQUMsR0FBMkIsRUFBRSxPQUFnQjtJQUN6RixRQUFRLElBQUEsa0JBQVUsRUFBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVc7WUFDdkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxRQUFRLENBQUMsS0FBSztZQUNoQixHQUErQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxHQUErQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9ELGdFQUFnRTtZQUMvRCxHQUErQixDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xFLE1BQU07S0FDVDtBQUNILENBQUM7QUFkRCxzRUFjQztBQUVELFNBQWdCLGtDQUFrQyxDQUFDLE9BQWdCO0lBQ2pFLElBQUksR0FBRyxDQUFDO0lBQ1IsUUFBUSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLEdBQUcsR0FBRyxJQUFJLCtDQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE1BQU07U0FDUDtRQUNELEtBQUssUUFBUSxDQUFDLElBQUk7WUFDaEIsR0FBRyxHQUFHLElBQUksK0NBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsTUFBTTtRQUNSLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLEdBQUcsR0FBRyxJQUFJLGlEQUF1QixDQUFDLE9BQXVCLENBQUMsQ0FBQztZQUMzRCxNQUFNO1NBQ1A7S0FDRjtJQUVELDZCQUE2QixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU1QyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUF2QkQsZ0ZBdUJDO0FBRUQsU0FBZ0IsdUNBQXVDLENBQUMsRUFBbUI7SUFDekUsUUFBUSxJQUFBLGtCQUFVLEVBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzlCLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxRQUFRO1lBQ3BCLE9BQU8sK0NBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELEtBQUssUUFBUSxDQUFDLElBQUk7WUFDaEIsT0FBTywrQ0FBc0IsQ0FBQyxlQUFlLENBQUMsRUFBcUIsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssUUFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxpREFBdUIsQ0FBQyxlQUFlLENBQUMsRUFBc0IsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFmRCwwRkFlQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIG5ldHdvcmtzIGZyb20gJy4uL25ldHdvcmtzJztcbmltcG9ydCB7IE5ldHdvcmssIFpjYXNoTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgeyBnZXRNYWlubmV0IH0gZnJvbSAnLi4vY29pbnMnO1xuXG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24gfSBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IERhc2hUcmFuc2FjdGlvbiB9IGZyb20gJy4vZGFzaC9EYXNoVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGFzaFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vZGFzaC9EYXNoVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBaY2FzaFRyYW5zYWN0aW9uIH0gZnJvbSAnLi96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihidWY6IEJ1ZmZlciwgbmV0d29yazogTmV0d29yayk6IFV0eG9UcmFuc2FjdGlvbiB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcihidWYsIGZhbHNlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXIoYnVmLCBmYWxzZSwgbmV0d29yayk7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXIoYnVmLCBmYWxzZSwgbmV0d29yayBhcyBaY2FzaE5ldHdvcmspO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoaGV4OiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmspOiBVdHhvVHJhbnNhY3Rpb24ge1xuICByZXR1cm4gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpLCBuZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFRyYW5zYWN0aW9uQnVpbGRlckRlZmF1bHRzKHR4YjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlciwgbmV0d29yazogTmV0d29yayk6IHZvaWQge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgICB0eGIuc2V0VmVyc2lvbigyKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICAodHhiIGFzIFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyKS5zZXRWZXJzaW9uKDQpO1xuICAgICAgKHR4YiBhcyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlcikuc2V0VmVyc2lvbkdyb3VwSWQoMHg4OTJmMjA4NSk7XG4gICAgICAvLyBVc2UgXCJDYW5vcHlcIiBjb25zZW5zdXMgYnJhbmNoIElEIGh0dHBzOi8vemlwcy56LmNhc2gvemlwLTAyNTFcbiAgICAgICh0eGIgYXMgWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIpLnNldENvbnNlbnN1c0JyYW5jaElkKDB4ZTlmZjc1YTYpO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcmsobmV0d29yazogTmV0d29yayk6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBsZXQgdHhiO1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46IHtcbiAgICAgIHR4YiA9IG5ldyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyKG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHR4YiA9IG5ldyBEYXNoVHJhbnNhY3Rpb25CdWlsZGVyKG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgdHhiID0gbmV3IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyKG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldFRyYW5zYWN0aW9uQnVpbGRlckRlZmF1bHRzKHR4YiwgbmV0d29yayk7XG5cbiAgcmV0dXJuIHR4Yjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZyb21UcmFuc2FjdGlvbih0eDogVXR4b1RyYW5zYWN0aW9uKTogVXR4b1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbih0eCk7XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOlxuICAgICAgcmV0dXJuIERhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uKHR4IGFzIERhc2hUcmFuc2FjdGlvbik7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb24odHggYXMgWmNhc2hUcmFuc2FjdGlvbik7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xufVxuIl19

@@ -9,3 +9,2 @@ "use strict";

const networkTypes_1 = require("./networkTypes");
const typeforce = require('typeforce');
/**

@@ -170,6 +169,9 @@ * @returns {Network[]} all known networks as array

/**
* @param {Network} network
* @param {unknown} network
* @returns {boolean} returns true iff network is any of the network stated in the argument
*/
exports.isValidNetwork = typeforce.oneOf(isBitcoin, isBitcoinCash, isBitcoinGold, isBitcoinSV, isDash, isLitecoin, isZcash);
function isValidNetwork(network) {
return Object.values(networks).includes(network);
}
exports.isValidNetwork = isValidNetwork;
/** @deprecated */

@@ -189,2 +191,2 @@ exports.BCH = networkTypes_1.coins.BCH;

exports.ZEC = networkTypes_1.coins.ZEC;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCx1Q0FBdUM7QUFDdkMsaURBQWdEO0FBRWhELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUV2Qzs7R0FFRztBQUNILFNBQWdCLGNBQWM7SUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUZELHdDQUVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFnQjtJQUM3QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUZELHdDQUVDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE9BQWdCO0lBQ3pDLFFBQVEsT0FBTyxFQUFFO1FBQ2YsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLE9BQU87WUFDbkIsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBRTFCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxrQkFBa0I7WUFDOUIsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBRTlCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxrQkFBa0I7WUFDOUIsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBRTlCLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFL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a0JBQWtCO0FBQ0wsUUFBQSxJQUFJLEdBQUcsb0JBQUssQ0FBQyxJQUFJLENBQUM7QUFDL0Isa0JBQWtCO0FBQ0wsUUFBQSxHQUFHLEdBQUcsb0JBQUssQ0FBQyxHQUFHLENBQUM7QUFDN0Isa0JBQWtCO0FBQ0wsUUFBQSxHQUFHLEdBQUcsb0JBQUssQ0FBQyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBuZXR3b3JrcyBmcm9tICcuL25ldHdvcmtzJztcbmltcG9ydCB7IGNvaW5zLCBOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrVHlwZXMnO1xuXG5jb25zdCB0eXBlZm9yY2UgPSByZXF1aXJlKCd0eXBlZm9yY2UnKTtcblxuLyoqXG4gKiBAcmV0dXJucyB7TmV0d29ya1tdfSBhbGwga25vd24gbmV0d29ya3MgYXMgYXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtMaXN0KCk6IE5ldHdvcmtbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhuZXR3b3JrcykubWFwKChuKSA9PiBuZXR3b3Jrc1tuXSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgbmFtZSBvZiB0aGUgbmV0d29yay4gUmV0dXJucyB1bmRlZmluZWQgaWYgbmV0d29yayBpcyBub3QgYSB2YWx1ZVxuICogICAgICAgICAgICAgICAgICAgb2YgYG5ldHdvcmtzYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya05hbWUobmV0d29yazogTmV0d29yayk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhuZXR3b3JrcykuZmluZCgobikgPT4gbmV0d29ya3Nbbl0gPT09IG5ldHdvcmspO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya30gbmV0d29ya1xuICogQHJldHVybnMge09iamVjdH0gdGhlIG1haW5uZXQgY29ycmVzcG9uZGluZyB0byBhIHRlc3RuZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1haW5uZXQobmV0d29yazogTmV0d29yayk6IE5ldHdvcmsge1xuICBzd2l0Y2ggKG5ldHdvcmspIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy50ZXN0bmV0OlxuICAgICAgcmV0dXJuIG5ldHdvcmtzLmJpdGNvaW47XG5cbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2hUZXN0bmV0OlxuICAgICAgcmV0dXJuIG5ldHdvcmtzLmJpdGNvaW5jYXNoO1xuXG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkVGVzdG5ldDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5iaXRjb2luZ29sZDtcblxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2VGVzdG5ldDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5iaXRjb2luc3Y7XG5cbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoVGVzdDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5kYXNoO1xuXG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luVGVzdDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5saXRlY29pbjtcblxuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaFRlc3Q6XG4gICAgICByZXR1cm4gbmV0d29ya3MuemNhc2g7XG4gIH1cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBhIG1haW5uZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWFpbm5ldChuZXR3b3JrOiBOZXR3b3JrKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3JrO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya30gbmV0d29ya1xuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWZmIG5ldHdvcmsgaXMgYSB0ZXN0bmV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rlc3RuZXQobmV0d29yazogTmV0d29yayk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSAhPT0gbmV0d29yaztcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcGFyYW0ge05ldHdvcmt9IG90aGVyTmV0d29ya1xuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWZmIGJvdGggbmV0d29ya3MgYXJlIGZvciB0aGUgc2FtZSBjb2luXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVDb2luKG5ldHdvcms6IE5ldHdvcmssIG90aGVyTmV0d29yazogTmV0d29yaykge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSA9PT0gZ2V0TWFpbm5ldChvdGhlck5ldHdvcmspO1xufVxuXG5jb25zdCBtYWlubmV0cyA9IGdldE5ldHdvcmtMaXN0KCkuZmlsdGVyKGlzTWFpbm5ldCk7XG5jb25zdCB0ZXN0bmV0cyA9IGdldE5ldHdvcmtMaXN0KCkuZmlsdGVyKGlzVGVzdG5ldCk7XG5cbi8qKlxuICogTWFwIHdoZXJlIGtleXMgYXJlIG1haW5uZXQgbmV0d29ya3MgYW5kIHZhbHVlcyBhcmUgdGVzdG5ldCBuZXR3b3Jrc1xuICogQHR5cGUge01hcDxOZXR3b3JrLCBOZXR3b3JrW10+fVxuICovXG5jb25zdCBtYWlubmV0VGVzdG5ldFBhaXJzID0gbmV3IE1hcChtYWlubmV0cy5tYXAoKG0pID0+IFttLCB0ZXN0bmV0cy5maWx0ZXIoKHQpID0+IGdldE1haW5uZXQodCkgPT09IG0pXSkpO1xuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya30gbmV0d29ya1xuICogQHJldHVybnMge05ldHdvcmt8dW5kZWZpbmVkfSAtIFRoZSB0ZXN0bmV0IGNvcnJlc3BvbmRpbmcgdG8gYSBtYWlubmV0LlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyB1bmRlZmluZWQgaWYgYSBuZXR3b3JrIGhhcyBubyB0ZXN0bmV0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVzdG5ldChuZXR3b3JrOiBOZXR3b3JrKTogTmV0d29yayB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc1Rlc3RuZXQobmV0d29yaykpIHtcbiAgICByZXR1cm4gbmV0d29yaztcbiAgfVxuICBjb25zdCB0ZXN0bmV0cyA9IG1haW5uZXRUZXN0bmV0UGFpcnMuZ2V0KG5ldHdvcmspO1xuICBpZiAodGVzdG5ldHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhcmd1bWVudGApO1xuICB9XG4gIGlmICh0ZXN0bmV0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHRlc3RuZXRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiB0ZXN0bmV0c1swXTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYG1vcmUgdGhhbiBvbmUgdGVzdG5ldCBmb3IgJHtnZXROZXR3b3JrTmFtZShuZXR3b3JrKX1gKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGJpdGNvaW4gb3IgdGVzdG5ldFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaXRjb2luKG5ldHdvcms6IE5ldHdvcmspIHtcbiAgcmV0dXJuIGdldE1haW5uZXQobmV0d29yaykgPT09IG5ldHdvcmtzLmJpdGNvaW47XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBiaXRjb2luY2FzaCBvciBiaXRjb2luY2FzaFRlc3RuZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQml0Y29pbkNhc2gobmV0d29yazogTmV0d29yaykge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSA9PT0gbmV0d29ya3MuYml0Y29pbmNhc2g7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBiaXRjb2luZ29sZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaXRjb2luR29sZChuZXR3b3JrOiBOZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy5iaXRjb2luZ29sZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGlzIGJpdGNvaW5zdiBvciBiaXRjb2luc3ZUZXN0bmV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JpdGNvaW5TVihuZXR3b3JrOiBOZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy5iaXRjb2luc3Y7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBkYXNoIG9yIGRhc2hUZXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Rhc2gobmV0d29yazogTmV0d29yaykge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSA9PT0gbmV0d29ya3MuZGFzaDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGlzIGxpdGVjb2luIG9yIGxpdGVjb2luVGVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMaXRlY29pbihuZXR3b3JrOiBOZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy5saXRlY29pbjtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGlzIHpjYXNoIG9yIHpjYXNoVGVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNaY2FzaChuZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy56Y2FzaDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSByZXR1cm5zIHRydWUgaWZmIG5ldHdvcmsgaXMgYW55IG9mIHRoZSBuZXR3b3JrIHN0YXRlZCBpbiB0aGUgYXJndW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGlzVmFsaWROZXR3b3JrID0gdHlwZWZvcmNlLm9uZU9mKFxuICBpc0JpdGNvaW4sXG4gIGlzQml0Y29pbkNhc2gsXG4gIGlzQml0Y29pbkdvbGQsXG4gIGlzQml0Y29pblNWLFxuICBpc0Rhc2gsXG4gIGlzTGl0ZWNvaW4sXG4gIGlzWmNhc2hcbik7XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGNvbnN0IEJDSCA9IGNvaW5zLkJDSDtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGNvbnN0IEJTViA9IGNvaW5zLkJTVjtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGNvbnN0IEJUQyA9IGNvaW5zLkJUQztcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGNvbnN0IEJURyA9IGNvaW5zLkJURztcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGNvbnN0IERBU0ggPSBjb2lucy5EQVNIO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgTFRDID0gY29pbnMuTFRDO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgWkVDID0gY29pbnMuWkVDO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCx1Q0FBdUM7QUFDdkMsaURBQWdEO0FBRWhEOztHQUVHO0FBQ0gsU0FBZ0IsY0FBYztJQUM1QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRkQsd0NBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQWdCO0lBQzdDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsd0NBRUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixVQUFVLENBQUMsT0FBZ0I7SUFDekMsUUFBUSxPQUFPLEVBQUU7UUFDZixLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDdEIsS0FBSyxRQUFRLENBQUMsT0FBTztZQUNuQixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFFMUIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLGtCQUFrQjtZQUM5QixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFFOUIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLGtCQUFrQjtZQUM5QixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFFOUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLGdCQUFnQjtZQUM1QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENB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SSxDQUFDO0FBQy9CLGtCQUFrQjtBQUNMLFFBQUEsR0FBRyxHQUFHLG9CQUFLLENBQUMsR0FBRyxDQUFDO0FBQzdCLGtCQUFrQjtBQUNMLFFBQUEsR0FBRyxHQUFHLG9CQUFLLENBQUMsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgbmV0d29ya3MgZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBjb2lucywgTmV0d29yayB9IGZyb20gJy4vbmV0d29ya1R5cGVzJztcblxuLyoqXG4gKiBAcmV0dXJucyB7TmV0d29ya1tdfSBhbGwga25vd24gbmV0d29ya3MgYXMgYXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtMaXN0KCk6IE5ldHdvcmtbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhuZXR3b3JrcykubWFwKChuKSA9PiBuZXR3b3Jrc1tuXSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgbmFtZSBvZiB0aGUgbmV0d29yay4gUmV0dXJucyB1bmRlZmluZWQgaWYgbmV0d29yayBpcyBub3QgYSB2YWx1ZVxuICogICAgICAgICAgICAgICAgICAgb2YgYG5ldHdvcmtzYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya05hbWUobmV0d29yazogTmV0d29yayk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhuZXR3b3JrcykuZmluZCgobikgPT4gbmV0d29ya3Nbbl0gPT09IG5ldHdvcmspO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya30gbmV0d29ya1xuICogQHJldHVybnMge09iamVjdH0gdGhlIG1haW5uZXQgY29ycmVzcG9uZGluZyB0byBhIHRlc3RuZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1haW5uZXQobmV0d29yazogTmV0d29yayk6IE5ldHdvcmsge1xuICBzd2l0Y2ggKG5ldHdvcmspIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy50ZXN0bmV0OlxuICAgICAgcmV0dXJuIG5ldHdvcmtzLmJpdGNvaW47XG5cbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2hUZXN0bmV0OlxuICAgICAgcmV0dXJuIG5ldHdvcmtzLmJpdGNvaW5jYXNoO1xuXG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkVGVzdG5ldDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5iaXRjb2luZ29sZDtcblxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2VGVzdG5ldDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5iaXRjb2luc3Y7XG5cbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoVGVzdDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5kYXNoO1xuXG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luVGVzdDpcbiAgICAgIHJldHVybiBuZXR3b3Jrcy5saXRlY29pbjtcblxuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaFRlc3Q6XG4gICAgICByZXR1cm4gbmV0d29ya3MuemNhc2g7XG4gIH1cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBhIG1haW5uZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWFpbm5ldChuZXR3b3JrOiBOZXR3b3JrKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3JrO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya30gbmV0d29ya1xuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWZmIG5ldHdvcmsgaXMgYSB0ZXN0bmV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rlc3RuZXQobmV0d29yazogTmV0d29yayk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSAhPT0gbmV0d29yaztcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcGFyYW0ge05ldHdvcmt9IG90aGVyTmV0d29ya1xuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWZmIGJvdGggbmV0d29ya3MgYXJlIGZvciB0aGUgc2FtZSBjb2luXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVDb2luKG5ldHdvcms6IE5ldHdvcmssIG90aGVyTmV0d29yazogTmV0d29yaykge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSA9PT0gZ2V0TWFpbm5ldChvdGhlck5ldHdvcmspO1xufVxuXG5jb25zdCBtYWlubmV0cyA9IGdldE5ldHdvcmtMaXN0KCkuZmlsdGVyKGlzTWFpbm5ldCk7XG5jb25zdCB0ZXN0bmV0cyA9IGdldE5ldHdvcmtMaXN0KCkuZmlsdGVyKGlzVGVzdG5ldCk7XG5cbi8qKlxuICogTWFwIHdoZXJlIGtleXMgYXJlIG1haW5uZXQgbmV0d29ya3MgYW5kIHZhbHVlcyBhcmUgdGVzdG5ldCBuZXR3b3Jrc1xuICogQHR5cGUge01hcDxOZXR3b3JrLCBOZXR3b3JrW10+fVxuICovXG5jb25zdCBtYWlubmV0VGVzdG5ldFBhaXJzID0gbmV3IE1hcChtYWlubmV0cy5tYXAoKG0pID0+IFttLCB0ZXN0bmV0cy5maWx0ZXIoKHQpID0+IGdldE1haW5uZXQodCkgPT09IG0pXSkpO1xuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya30gbmV0d29ya1xuICogQHJldHVybnMge05ldHdvcmt8dW5kZWZpbmVkfSAtIFRoZSB0ZXN0bmV0IGNvcnJlc3BvbmRpbmcgdG8gYSBtYWlubmV0LlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyB1bmRlZmluZWQgaWYgYSBuZXR3b3JrIGhhcyBubyB0ZXN0bmV0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVzdG5ldChuZXR3b3JrOiBOZXR3b3JrKTogTmV0d29yayB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc1Rlc3RuZXQobmV0d29yaykpIHtcbiAgICByZXR1cm4gbmV0d29yaztcbiAgfVxuICBjb25zdCB0ZXN0bmV0cyA9IG1haW5uZXRUZXN0bmV0UGFpcnMuZ2V0KG5ldHdvcmspO1xuICBpZiAodGVzdG5ldHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhcmd1bWVudGApO1xuICB9XG4gIGlmICh0ZXN0bmV0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHRlc3RuZXRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiB0ZXN0bmV0c1swXTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYG1vcmUgdGhhbiBvbmUgdGVzdG5ldCBmb3IgJHtnZXROZXR3b3JrTmFtZShuZXR3b3JrKX1gKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGJpdGNvaW4gb3IgdGVzdG5ldFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaXRjb2luKG5ldHdvcms6IE5ldHdvcmspIHtcbiAgcmV0dXJuIGdldE1haW5uZXQobmV0d29yaykgPT09IG5ldHdvcmtzLmJpdGNvaW47XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBiaXRjb2luY2FzaCBvciBiaXRjb2luY2FzaFRlc3RuZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQml0Y29pbkNhc2gobmV0d29yazogTmV0d29yaykge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSA9PT0gbmV0d29ya3MuYml0Y29pbmNhc2g7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBiaXRjb2luZ29sZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaXRjb2luR29sZChuZXR3b3JrOiBOZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy5iaXRjb2luZ29sZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGlzIGJpdGNvaW5zdiBvciBiaXRjb2luc3ZUZXN0bmV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JpdGNvaW5TVihuZXR3b3JrOiBOZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy5iaXRjb2luc3Y7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrfSBuZXR3b3JrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZmYgbmV0d29yayBpcyBkYXNoIG9yIGRhc2hUZXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Rhc2gobmV0d29yazogTmV0d29yaykge1xuICByZXR1cm4gZ2V0TWFpbm5ldChuZXR3b3JrKSA9PT0gbmV0d29ya3MuZGFzaDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGlzIGxpdGVjb2luIG9yIGxpdGVjb2luVGVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMaXRlY29pbihuZXR3b3JrOiBOZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy5saXRlY29pbjtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05ldHdvcmt9IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmZiBuZXR3b3JrIGlzIHpjYXNoIG9yIHpjYXNoVGVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNaY2FzaChuZXR3b3JrKSB7XG4gIHJldHVybiBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy56Y2FzaDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd259IG5ldHdvcmtcbiAqIEByZXR1cm5zIHtib29sZWFufSByZXR1cm5zIHRydWUgaWZmIG5ldHdvcmsgaXMgYW55IG9mIHRoZSBuZXR3b3JrIHN0YXRlZCBpbiB0aGUgYXJndW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWROZXR3b3JrKG5ldHdvcms6IHVua25vd24pOiBuZXR3b3JrIGlzIE5ldHdvcmsge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhuZXR3b3JrcykuaW5jbHVkZXMobmV0d29yayBhcyBOZXR3b3JrKTtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgQkNIID0gY29pbnMuQkNIO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgQlNWID0gY29pbnMuQlNWO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgQlRDID0gY29pbnMuQlRDO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgQlRHID0gY29pbnMuQlRHO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgREFTSCA9IGNvaW5zLkRBU0g7XG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBjb25zdCBMVEMgPSBjb2lucy5MVEM7XG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBjb25zdCBaRUMgPSBjb2lucy5aRUM7XG4iXX0=

@@ -1,22 +0,20 @@

var script = require('./script');
var templates = require('./templates');
for (var key in templates) {
script[key] = templates[key];
}
module.exports = {
bitgo: require('./bitgo'),
bufferutils: require('./bufferutils'),
Block: require('./block'),
ECPair: require('./ecpair'),
ECSignature: require('./ecsignature'),
HDNode: require('./hdnode'),
Transaction: require('./transaction'),
TransactionBuilder: require('./transaction_builder'),
address: require('./address'),
coins: require('./coins'),
crypto: require('./crypto'),
networks: require('./networks'),
opcodes: require('bitcoin-ops'),
script: script
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBRWhDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUN0QyxLQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsRUFBRTtJQUN6QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0NBQzdCO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3pCLFdBQVcsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO0lBRXJDLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3pCLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3JDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztJQUVwRCxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUM3QixLQUFLLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUN6QixNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUMzQixRQUFRLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUMvQixPQUFPLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUMvQixNQUFNLEVBQUUsTUFBTTtDQUNmLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2NyaXB0ID0gcmVxdWlyZSgnLi9zY3JpcHQnKVxuXG52YXIgdGVtcGxhdGVzID0gcmVxdWlyZSgnLi90ZW1wbGF0ZXMnKVxuZm9yICh2YXIga2V5IGluIHRlbXBsYXRlcykge1xuICBzY3JpcHRba2V5XSA9IHRlbXBsYXRlc1trZXldXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBiaXRnbzogcmVxdWlyZSgnLi9iaXRnbycpLFxuICBidWZmZXJ1dGlsczogcmVxdWlyZSgnLi9idWZmZXJ1dGlscycpLCAvLyBUT0RPOiByZW1vdmUgaW4gNC4wLjBcblxuICBCbG9jazogcmVxdWlyZSgnLi9ibG9jaycpLFxuICBFQ1BhaXI6IHJlcXVpcmUoJy4vZWNwYWlyJyksXG4gIEVDU2lnbmF0dXJlOiByZXF1aXJlKCcuL2Vjc2lnbmF0dXJlJyksXG4gIEhETm9kZTogcmVxdWlyZSgnLi9oZG5vZGUnKSxcbiAgVHJhbnNhY3Rpb246IHJlcXVpcmUoJy4vdHJhbnNhY3Rpb24nKSxcbiAgVHJhbnNhY3Rpb25CdWlsZGVyOiByZXF1aXJlKCcuL3RyYW5zYWN0aW9uX2J1aWxkZXInKSxcblxuICBhZGRyZXNzOiByZXF1aXJlKCcuL2FkZHJlc3MnKSxcbiAgY29pbnM6IHJlcXVpcmUoJy4vY29pbnMnKSxcbiAgY3J5cHRvOiByZXF1aXJlKCcuL2NyeXB0bycpLFxuICBuZXR3b3JrczogcmVxdWlyZSgnLi9uZXR3b3JrcycpLFxuICBvcGNvZGVzOiByZXF1aXJlKCdiaXRjb2luLW9wcycpLFxuICBzY3JpcHQ6IHNjcmlwdFxufVxuIl19
Object.defineProperty(exports, "__esModule", { value: true });
exports.networks = exports.address = exports.coins = exports.bitgo = exports.classify = void 0;
__exportStar(require("bitcoinjs-lib"), exports);
exports.classify = require("bitcoinjs-lib/src/classify");
exports.bitgo = require("./bitgo");
exports.coins = require("./coins");
exports.address = require("./address");
exports.networks = require('./networks');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QjtBQUM5Qix5REFBdUQ7QUFFdkQsbUNBQWlDO0FBQ2pDLG1DQUFpQztBQUVqQyx1Q0FBcUM7QUFHeEIsUUFBQSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnYml0Y29pbmpzLWxpYic7XG5leHBvcnQgKiBhcyBjbGFzc2lmeSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9jbGFzc2lmeSc7XG5cbmV4cG9ydCAqIGFzIGJpdGdvIGZyb20gJy4vYml0Z28nO1xuZXhwb3J0ICogYXMgY29pbnMgZnJvbSAnLi9jb2lucyc7XG5cbmV4cG9ydCAqIGFzIGFkZHJlc3MgZnJvbSAnLi9hZGRyZXNzJztcblxuXG5leHBvcnQgY29uc3QgbmV0d29ya3MgPSByZXF1aXJlKCcuL25ldHdvcmtzJyk7XG5cbmV4cG9ydCB7IE5ldHdvcmssIFpjYXNoTmV0d29yaywgQml0Y29pbkNhc2hOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrVHlwZXMnO1xuZXhwb3J0IHsgTmV0d29yayBhcyBCaXRjb2luSlNOZXR3b3JrIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG4iXX0=

@@ -130,2 +130,3 @@ "use strict";

coin: networkTypes_1.coins.BSV,
forkId: 0x00,
},

@@ -210,2 +211,2 @@ // https://github.com/dashpay/dash/blob/master/src/validation.cpp

module.exports = networks;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBRUg7Ozs7Ozs7Ozs7Ozs7OztFQWVFO0FBRUYsaURBQStGO0FBRS9GLFNBQVMsc0JBQXNCO0lBQzdCLE9BQU87UUFDTCxnQkFBZ0I7UUFDaEIsTUFBTSxFQUFFLFVBQVU7UUFDbEIsZ0JBQWdCO1FBQ2hCLE9BQU8sRUFBRSxVQUFVO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTztRQUNMLGdCQUFnQjtRQUNoQixNQUFNLEVBQUUsVUFBVTtRQUNsQixnQkFBZ0I7UUFDaEIsT0FBTyxFQUFFLFVBQVU7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFFBQVEsR0FFdUQ7SUFDbkUsb0VBQW9FO0lBQ3BFLHFFQUFxRTtJQUNyRSxPQUFPLEVBQUU7UUFDUCxhQUFhLEVBQUUsK0JBQStCO1FBQzlDLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQy9CLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLEdBQUcsRUFBRSxJQUFJO1FBQ1QsSUFBSSxFQUFFLG9CQUFLLENBQUMsR0FBRztLQUNoQjtJQUNELE9BQU8sRUFBRTtRQUNQLGFBQWEsRUFBRSwrQkFBK0I7UUFDOUMsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsc0JBQXNCLEVBQUU7UUFDL0IsVUFBVSxFQUFFLElBQUk7UUFDaEIsVUFBVSxFQUFFLElBQUk7UUFDaEIsR0FBRyxFQUFFLElBQUk7UUFDVCxJQUFJLEVBQUUsb0JBQUssQ0FBQyxHQUFHO0tBQ2hCO0lBRUQsNEVBQTRFO0lBQzVFLDZFQUE2RTtJQUM3RSxpRkFBaUY7SUFDakYsV0FBVyxFQUFFO1FBQ1gsYUFBYSxFQUFFLCtCQUErQjtRQUM5QyxLQUFLLEVBQUUs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LElBQUksRUFBRSxvQkFBSyxDQUFDLEdBQUc7S0FDaEI7Q0FDRixDQUFDO0FBRUYsaUJBQVMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG4vKlxuXG5UaGUgdmFsdWVzIGZvciB0aGUgdmFyaW91cyBmb3JrIGNvaW5zIGNhbiBiZSBmb3VuZCBpbiB0aGVzZSBmaWxlczpcblxucHJvcGVydHkgICAgICAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICB2YXJuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxubWVzc2FnZVByZWZpeCAgc3JjL3ZhbGlkYXRpb24uY3BwICAgICAgICBzdHJNZXNzYWdlTWFnaWMgICAgICAgICAgICAgICAgICAgRm9ybWF0IGAke0NvaW5OYW1lfSBTaWduZWQgTWVzc2FnZWBcbmJlY2gzMl9ocnAgICAgIHNyYy9jaGFpbnBhcmFtcy5jcHAgICAgICAgYmVjaDMyX2hycCAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgZm9yIHNvbWUgbmV0d29ya3NcbmJpcDMyLnB1YmxpYyAgIHNyYy9jaGFpbnBhcmFtcy5jcHAgICAgICAgYmFzZTU4UHJlZml4ZXNbRVhUX1BVQkxJQ19LRVldICAgIE1haW5uZXRzIGhhdmUgc2FtZSB2YWx1ZSwgdGVzdG5ldHMgaGF2ZSBzYW1lIHZhbHVlXG5iaXAzMi5wcml2YXRlICBzcmMvY2hhaW5wYXJhbXMuY3BwICAgICAgIGJhc2U1OFByZWZpeGVzW0VYVF9TRUNSRVRfS0VZXSAgICBNYWlubmV0cyBoYXZlIHNhbWUgdmFsdWUsIHRlc3RuZXRzIGhhdmUgc2FtZSB2YWx1ZVxucHViS2V5SGFzaCAgICAgc3JjL2NoYWlucGFyYW1zLmNwcCAgICAgICBiYXNlNThQcmVmaXhlc1tQVUJLRVlfQUREUkVTU11cbnNjcmlwdEhhc2ggICAgIHNyYy9jaGFpbnBhcmFtcy5jcHAgICAgICAgYmFzZTU4UHJlZml4ZXNbU0NSSVBUX0FERFJFU1NdXG53aWYgICAgICAgICAgICBzcmMvY2hhaW5wYXJhbXMuY3BwICAgICAgIGJhc2U1OFByZWZpeGVzW1NFQ1JFVF9LRVldICAgICAgICBUZXN0bmV0cyBoYXZlIHNhbWUgdmFsdWVcbmZvcmtJZCAgICAgICAgIHNyYy9zY3JpcHQvaW50ZXJwcmV0ZXIuaCAgRk9SS0lEXypcblxuKi9cblxuaW1wb3J0IHsgY29pbnMsIEJpdGNvaW5DYXNoTmV0d29yaywgTmV0d29yaywgTmV0d29ya05hbWUsIFpjYXNoTmV0d29yayB9IGZyb20gJy4vbmV0d29ya1R5cGVzJztcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdEJpcDMyTWFpbm5ldCgpOiBOZXR3b3JrWydiaXAzMiddIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBiYXNlNTggJ3hwdWInXG4gICAgcHVibGljOiAweDA0ODhiMjFlLFxuICAgIC8vIGJhc2U1OCAneHBydidcbiAgICBwcml2YXRlOiAweDA0ODhhZGU0LFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREZWZhdWx0QmlwMzJUZXN0bmV0KCk6IE5ldHdvcmtbJ2JpcDMyJ10ge1xuICByZXR1cm4ge1xuICAgIC8vIGJhc2U1OCAndHB1YidcbiAgICBwdWJsaWM6IDB4MDQzNTg3Y2YsXG4gICAgLy8gYmFzZTU4ICd0cHJ2J1xuICAgIHByaXZhdGU6IDB4MDQzNTgzOTQsXG4gIH07XG59XG5cbmNvbnN0IG5ldHdvcmtzOiBSZWNvcmQ8TmV0d29ya05hbWUsIE5ldHdvcms+ICZcbiAgUmVjb3JkPCd6Y2FzaCcgfCAnemNhc2hUZXN0JywgWmNhc2hOZXR3b3JrPiAmXG4gIFJlY29yZDwnYml0Y29pbmNhc2gnIHwgJ2JpdGNvaW5jYXNoVGVzdG5ldCcsIEJpdGNvaW5DYXNoTmV0d29yaz4gPSB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi9tYXN0ZXIvc3JjL3ZhbGlkYXRpb24uY3BwXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi9tYXN0ZXIvc3JjL2NoYWlucGFyYW1zLmNwcFxuICBiaXRjb2luOiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJlY2gzMjogJ2JjJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyTWFpbm5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4MDAsXG4gICAgc2NyaXB0SGFzaDogMHgwNSxcbiAgICB3aWY6IDB4ODAsXG4gICAgY29pbjogY29pbnMuQlRDLFxuICB9LFxuICB0ZXN0bmV0OiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJlY2gzMjogJ3RiJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyVGVzdG5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4NmYsXG4gICAgc2NyaXB0SGFzaDogMHhjNCxcbiAgICB3aWY6IDB4ZWYsXG4gICAgY29pbjogY29pbnMuQlRDLFxuICB9LFxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9CaXRjb2luLUFCQy9iaXRjb2luLWFiYy9ibG9iL21hc3Rlci9zcmMvdmFsaWRhdGlvbi5jcHBcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0JpdGNvaW4tQUJDL2JpdGNvaW4tYWJjL2Jsb2IvbWFzdGVyL3NyYy9jaGFpbnBhcmFtcy5jcHBcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW5jYXNob3JnL2JpdGNvaW5jYXNoLm9yZy9ibG9iL21hc3Rlci9zcGVjL2Nhc2hhZGRyLm1kXG4gIGJpdGNvaW5jYXNoOiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJNYWlubmV0KCksXG4gICAgcHViS2V5SGFzaDogMHgwMCxcbiAgICBzY3JpcHRIYXNoOiAweDA1LFxuICAgIHdpZjogMHg4MCxcbiAgICBjb2luOiBjb2lucy5CQ0gsXG4gICAgZm9ya0lkOiAweDAwLFxuICAgIGNhc2hBZGRyOiB7XG4gICAgICBwcmVmaXg6ICdiaXRjb2luY2FzaCcsXG4gICAgICBwdWJLZXlIYXNoOiAweDAwLFxuICAgICAgc2NyaXB0SGFzaDogMHgwOCxcbiAgICB9LFxuICB9LFxuICBiaXRjb2luY2FzaFRlc3RuZXQ6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMlRlc3RuZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDZmLFxuICAgIHNjcmlwdEhhc2g6IDB4YzQsXG4gICAgd2lmOiAweGVmLFxuICAgIGNvaW46IGNvaW5zLkJDSCxcbiAgICBjYXNoQWRkcjoge1xuICAgICAgcHJlZml4OiAnYmNodGVzdCcsXG4gICAgICBwdWJLZXlIYXNoOiAweDAwLFxuICAgICAgc2NyaXB0SGFzaDogMHgwOCxcbiAgICB9LFxuICB9LFxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9CVENHUFUvQlRDR1BVL2Jsb2IvbWFzdGVyL3NyYy92YWxpZGF0aW9uLmNwcFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vQlRDR1BVL0JUQ0dQVS9ibG9iL21hc3Rlci9zcmMvY2hhaW5wYXJhbXMuY3BwXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9CVENHUFUvQlRDR1BVL2Jsb2IvbWFzdGVyL3NyYy9zY3JpcHQvaW50ZXJwcmV0ZXIuaFxuICBiaXRjb2luZ29sZDoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOEJpdGNvaW4gR29sZCBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJlY2gzMjogJ2J0ZycsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMk1haW5uZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDI2LFxuICAgIHNjcmlwdEhhc2g6IDB4MTcsXG4gICAgd2lmOiAweDgwLFxuICAgIGZvcmtJZDogNzksXG4gICAgY29pbjogY29pbnMuQlRHLFxuICB9LFxuICBiaXRjb2luZ29sZFRlc3RuZXQ6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MThCaXRjb2luIEdvbGQgU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiZWNoMzI6ICd0YnRnJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyVGVzdG5ldCgpLFxuICAgIHB1YktleUhhc2g6IDExMSxcbiAgICBzY3JpcHRIYXNoOiAxOTYsXG4gICAgd2lmOiAweGVmLFxuICAgIGZvcmtJZDogNzksXG4gICAgY29pbjogY29pbnMuQlRHLFxuICB9LFxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luLXN2L2JpdGNvaW4tc3YvYmxvYi9tYXN0ZXIvc3JjL3ZhbGlkYXRpb24uY3BwXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luLXN2L2JpdGNvaW4tc3YvYmxvYi9tYXN0ZXIvc3JjL2NoYWlucGFyYW1zLmNwcFxuICBiaXRjb2luc3Y6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMk1haW5uZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDAwLFxuICAgIHNjcmlwdEhhc2g6IDB4MDUsXG4gICAgd2lmOiAweDgwLFxuICAgIGNvaW46IGNvaW5zLkJTVixcbiAgICBmb3JrSWQ6IDB4MDAsXG4gIH0sXG4gIGJpdGNvaW5zdlRlc3RuZXQ6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMlRlc3RuZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDZmLFxuICAgIHNjcmlwdEhhc2g6IDB4YzQsXG4gICAgd2lmOiAweGVmLFxuICAgIGNvaW46IGNvaW5zLkJTVixcbiAgfSxcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGFzaHBheS9kYXNoL2Jsb2IvbWFzdGVyL3NyYy92YWxpZGF0aW9uLmNwcFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGFzaHBheS9kYXNoL2Jsb2IvbWFzdGVyL3NyYy9jaGFpbnBhcmFtcy5jcHBcbiAgZGFzaDoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOURhcmtDb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMk1haW5uZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDRjLFxuICAgIHNjcmlwdEhhc2g6IDB4MTAsXG4gICAgd2lmOiAweGNjLFxuICAgIGNvaW46IGNvaW5zLkRBU0gsXG4gIH0sXG4gIGRhc2hUZXN0OiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE5RGFya0NvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyVGVzdG5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4OGMsXG4gICAgc2NyaXB0SGFzaDogMHgxMyxcbiAgICB3aWY6IDB4ZWYsXG4gICAgY29pbjogY29pbnMuREFTSCxcbiAgfSxcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbGl0ZWNvaW4tcHJvamVjdC9saXRlY29pbi9ibG9iL21hc3Rlci9zcmMvdmFsaWRhdGlvbi5jcHBcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2xpdGVjb2luLXByb2plY3QvbGl0ZWNvaW4vYmxvYi9tYXN0ZXIvc3JjL2NoYWlucGFyYW1zLmNwcFxuICBsaXRlY29pbjoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOUxpdGVjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmVjaDMyOiAnbHRjJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyTWFpbm5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4MzAsXG4gICAgc2NyaXB0SGFzaDogMHgzMixcbiAgICB3aWY6IDB4YjAsXG4gICAgY29pbjogY29pbnMuTFRDLFxuICB9LFxuICBsaXRlY29pblRlc3Q6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MTlMaXRlY29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJlY2gzMjogJ3RsdGMnLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJUZXN0bmV0KCksXG4gICAgcHViS2V5SGFzaDogMHg2ZixcbiAgICBzY3JpcHRIYXNoOiAweDNhLFxuICAgIHdpZjogMHhlZixcbiAgICBjb2luOiBjb2lucy5MVEMsXG4gIH0sXG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvbWFzdGVyL3NyYy92YWxpZGF0aW9uLmNwcFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi9tYXN0ZXIvc3JjL2NoYWlucGFyYW1zLmNwcFxuICB6Y2FzaDoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOFpDYXNoIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMk1haW5uZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDFjYjgsXG4gICAgc2NyaXB0SGFzaDogMHgxY2JkLFxuICAgIHdpZjogMHg4MCxcbiAgICAvLyBUaGlzIHBhcmFtZXRlciB3YXMgaW50cm9kdWNlZCBpbiB2ZXJzaW9uIDMgdG8gYWxsb3cgc29mdCBmb3JrcywgZm9yIHZlcnNpb24gMSBhbmQgMiB0cmFuc2FjdGlvbnMgd2UgYWRkIGFcbiAgICAvLyBkdW1teSB2YWx1ZS5cbiAgICBjb25zZW5zdXNCcmFuY2hJZDoge1xuICAgICAgMTogMHgwMCxcbiAgICAgIDI6IDB4MDAsXG4gICAgICAzOiAweDViYTgxYjE5LFxuICAgICAgLy8gNDogMHg3NmI4MDliYiAob2xkIFNhcGxpbmcgYnJhbmNoIGlkKS4gQmxvc3NvbSBicmFuY2ggaWQgYmVjb21lcyBlZmZlY3RpdmUgYWZ0ZXIgYmxvY2sgNjUzNjAwXG4gICAgICAvLyA0OiAweDJiYjQwZTYwXG4gICAgICAvLyA0OiAweGY1YjkyMzBiIChIZWFydHdvb2QgYnJhbmNoIGlkLCBzZWUgaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1MClcbiAgICAgIDQ6IDB4ZTlmZjc1YTYsIC8vIChDYW5vcHkgYnJhbmNoIGlkLCBzZWUgaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1MSlcbiAgICB9LFxuICAgIGNvaW46IGNvaW5zLlpFQyxcbiAgfSxcbiAgemNhc2hUZXN0OiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4WkNhc2ggU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyVGVzdG5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4MWQyNSxcbiAgICBzY3JpcHRIYXNoOiAweDFjYmEsXG4gICAgd2lmOiAweGVmLFxuICAgIGNvbnNlbnN1c0JyYW5jaElkOiB7XG4gICAgICAxOiAweDAwLFxuICAgICAgMjogMHgwMCxcbiAgICAgIDM6IDB4NWJhODFiMTksXG4gICAgICAvLyA0OiAweDc2YjgwOWJiIChvbGQgU2FwbGluZyBicmFuY2ggaWQpXG4gICAgICAvLyA0OiAweDJiYjQwZTYwXG4gICAgICAvLyA0OiAweGY1YjkyMzBiIChIZWFydHdvb2QgYnJhbmNoIGlkLCBzZWUgaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1MClcbiAgICAgIDQ6IDB4ZTlmZjc1YTYsIC8vIChDYW5vcHkgYnJhbmNoIGlkLCBzZWUgaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1MSlcbiAgICB9LFxuICAgIGNvaW46IGNvaW5zLlpFQyxcbiAgfSxcbn07XG5cbmV4cG9ydCA9IG5ldHdvcmtzO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBRUg7Ozs7Ozs7Ozs7Ozs7OztFQWVFO0FBRUYsaURBQStGO0FBRS9GLFNBQVMsc0JBQXNCO0lBQzdCLE9BQU87UUFDTCxnQkFBZ0I7UUFDaEIsTUFBTSxFQUFFLFVBQVU7UUFDbEIsZ0JBQWdCO1FBQ2hCLE9BQU8sRUFBRSxVQUFVO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTztRQUNMLGdCQUFnQjtRQUNoQixNQUFNLEVBQUUsVUFBVTtRQUNsQixnQkFBZ0I7UUFDaEIsT0FBTyxFQUFFLFVBQVU7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFFBQVEsR0FFdUQ7SUFDbkUsb0VBQW9FO0lBQ3BFLHFFQUFxRTtJQUNyRSxPQUFPLEVBQUU7UUFDUCxhQUFhLEVBQUUsK0JBQStCO1FBQzlDLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQy9CLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLEdBQUcsRUFBRSxJQUFJO1FBQ1QsSUFBSSxFQUFFLG9CQUFLLENBQUMsR0FBRztLQUNoQjtJQUNELE9BQU8sRUFBRTtRQUNQLGFBQWEsRUFBRSwrQkFBK0I7UUFDOUMsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsc0JBQXNCLEVBQUU7UUFDL0IsVUFBVSxFQUFFLElBQUk7UUFDaEIsVUFBVSxFQUFFLElBQUk7UUFDaEIsR0FBRyxFQUFFLElBQUk7UUFDVCxJQUFJLEVBQUUsb0JBQUssQ0FBQyxHQUFHO0tBQ2hCO0lBRUQsNEVBQTRFO0lBQzVFLDZFQUE2RTtJQUM3RSxpRkFBaUY7SUFDakYsV0FBVyxFQUFFO1FBQ1gsYUFBYSxFQUFFLCtCQUErQjtRQUM5QyxLQUFLLEVBQUUs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RSx1REFBdUQ7U0FDdkU7UUFDRCxJQUFJLEVBQUUsb0JBQUssQ0FBQyxHQUFHO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLGlCQUFTLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuLypcblxuVGhlIHZhbHVlcyBmb3IgdGhlIHZhcmlvdXMgZm9yayBjb2lucyBjYW4gYmUgZm91bmQgaW4gdGhlc2UgZmlsZXM6XG5cbnByb3BlcnR5ICAgICAgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgdmFybmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbm1lc3NhZ2VQcmVmaXggIHNyYy92YWxpZGF0aW9uLmNwcCAgICAgICAgc3RyTWVzc2FnZU1hZ2ljICAgICAgICAgICAgICAgICAgIEZvcm1hdCBgJHtDb2luTmFtZX0gU2lnbmVkIE1lc3NhZ2VgXG5iZWNoMzJfaHJwICAgICBzcmMvY2hhaW5wYXJhbXMuY3BwICAgICAgIGJlY2gzMl9ocnAgICAgICAgICAgICAgICAgICAgICAgICBPbmx5IGZvciBzb21lIG5ldHdvcmtzXG5iaXAzMi5wdWJsaWMgICBzcmMvY2hhaW5wYXJhbXMuY3BwICAgICAgIGJhc2U1OFByZWZpeGVzW0VYVF9QVUJMSUNfS0VZXSAgICBNYWlubmV0cyBoYXZlIHNhbWUgdmFsdWUsIHRlc3RuZXRzIGhhdmUgc2FtZSB2YWx1ZVxuYmlwMzIucHJpdmF0ZSAgc3JjL2NoYWlucGFyYW1zLmNwcCAgICAgICBiYXNlNThQcmVmaXhlc1tFWFRfU0VDUkVUX0tFWV0gICAgTWFpbm5ldHMgaGF2ZSBzYW1lIHZhbHVlLCB0ZXN0bmV0cyBoYXZlIHNhbWUgdmFsdWVcbnB1YktleUhhc2ggICAgIHNyYy9jaGFpbnBhcmFtcy5jcHAgICAgICAgYmFzZTU4UHJlZml4ZXNbUFVCS0VZX0FERFJFU1NdXG5zY3JpcHRIYXNoICAgICBzcmMvY2hhaW5wYXJhbXMuY3BwICAgICAgIGJhc2U1OFByZWZpeGVzW1NDUklQVF9BRERSRVNTXVxud2lmICAgICAgICAgICAgc3JjL2NoYWlucGFyYW1zLmNwcCAgICAgICBiYXNlNThQcmVmaXhlc1tTRUNSRVRfS0VZXSAgICAgICAgVGVzdG5ldHMgaGF2ZSBzYW1lIHZhbHVlXG5mb3JrSWQgICAgICAgICBzcmMvc2NyaXB0L2ludGVycHJldGVyLmggIEZPUktJRF8qXG5cbiovXG5cbmltcG9ydCB7IGNvaW5zLCBCaXRjb2luQ2FzaE5ldHdvcmssIE5ldHdvcmssIE5ldHdvcmtOYW1lLCBaY2FzaE5ldHdvcmsgfSBmcm9tICcuL25ldHdvcmtUeXBlcyc7XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRCaXAzMk1haW5uZXQoKTogTmV0d29ya1snYmlwMzInXSB7XG4gIHJldHVybiB7XG4gICAgLy8gYmFzZTU4ICd4cHViJ1xuICAgIHB1YmxpYzogMHgwNDg4YjIxZSxcbiAgICAvLyBiYXNlNTggJ3hwcnYnXG4gICAgcHJpdmF0ZTogMHgwNDg4YWRlNCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdEJpcDMyVGVzdG5ldCgpOiBOZXR3b3JrWydiaXAzMiddIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBiYXNlNTggJ3RwdWInXG4gICAgcHVibGljOiAweDA0MzU4N2NmLFxuICAgIC8vIGJhc2U1OCAndHBydidcbiAgICBwcml2YXRlOiAweDA0MzU4Mzk0LFxuICB9O1xufVxuXG5jb25zdCBuZXR3b3JrczogUmVjb3JkPE5ldHdvcmtOYW1lLCBOZXR3b3JrPiAmXG4gIFJlY29yZDwnemNhc2gnIHwgJ3pjYXNoVGVzdCcsIFpjYXNoTmV0d29yaz4gJlxuICBSZWNvcmQ8J2JpdGNvaW5jYXNoJyB8ICdiaXRjb2luY2FzaFRlc3RuZXQnLCBCaXRjb2luQ2FzaE5ldHdvcms+ID0ge1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvbWFzdGVyL3NyYy92YWxpZGF0aW9uLmNwcFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvbWFzdGVyL3NyYy9jaGFpbnBhcmFtcy5jcHBcbiAgYml0Y29pbjoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOEJpdGNvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiZWNoMzI6ICdiYycsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMk1haW5uZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDAwLFxuICAgIHNjcmlwdEhhc2g6IDB4MDUsXG4gICAgd2lmOiAweDgwLFxuICAgIGNvaW46IGNvaW5zLkJUQyxcbiAgfSxcbiAgdGVzdG5ldDoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOEJpdGNvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiZWNoMzI6ICd0YicsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMlRlc3RuZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDZmLFxuICAgIHNjcmlwdEhhc2g6IDB4YzQsXG4gICAgd2lmOiAweGVmLFxuICAgIGNvaW46IGNvaW5zLkJUQyxcbiAgfSxcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vQml0Y29pbi1BQkMvYml0Y29pbi1hYmMvYmxvYi9tYXN0ZXIvc3JjL3ZhbGlkYXRpb24uY3BwXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9CaXRjb2luLUFCQy9iaXRjb2luLWFiYy9ibG9iL21hc3Rlci9zcmMvY2hhaW5wYXJhbXMuY3BwXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luY2FzaG9yZy9iaXRjb2luY2FzaC5vcmcvYmxvYi9tYXN0ZXIvc3BlYy9jYXNoYWRkci5tZFxuICBiaXRjb2luY2FzaDoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOEJpdGNvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyTWFpbm5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4MDAsXG4gICAgc2NyaXB0SGFzaDogMHgwNSxcbiAgICB3aWY6IDB4ODAsXG4gICAgY29pbjogY29pbnMuQkNILFxuICAgIGZvcmtJZDogMHgwMCxcbiAgICBjYXNoQWRkcjoge1xuICAgICAgcHJlZml4OiAnYml0Y29pbmNhc2gnLFxuICAgICAgcHViS2V5SGFzaDogMHgwMCxcbiAgICAgIHNjcmlwdEhhc2g6IDB4MDgsXG4gICAgfSxcbiAgfSxcbiAgYml0Y29pbmNhc2hUZXN0bmV0OiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJUZXN0bmV0KCksXG4gICAgcHViS2V5SGFzaDogMHg2ZixcbiAgICBzY3JpcHRIYXNoOiAweGM0LFxuICAgIHdpZjogMHhlZixcbiAgICBjb2luOiBjb2lucy5CQ0gsXG4gICAgY2FzaEFkZHI6IHtcbiAgICAgIHByZWZpeDogJ2JjaHRlc3QnLFxuICAgICAgcHViS2V5SGFzaDogMHgwMCxcbiAgICAgIHNjcmlwdEhhc2g6IDB4MDgsXG4gICAgfSxcbiAgfSxcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vQlRDR1BVL0JUQ0dQVS9ibG9iL21hc3Rlci9zcmMvdmFsaWRhdGlvbi5jcHBcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0JUQ0dQVS9CVENHUFUvYmxvYi9tYXN0ZXIvc3JjL2NoYWlucGFyYW1zLmNwcFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vQlRDR1BVL0JUQ0dQVS9ibG9iL21hc3Rlci9zcmMvc2NyaXB0L2ludGVycHJldGVyLmhcbiAgYml0Y29pbmdvbGQ6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MThCaXRjb2luIEdvbGQgU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiZWNoMzI6ICdidGcnLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJNYWlubmV0KCksXG4gICAgcHViS2V5SGFzaDogMHgyNixcbiAgICBzY3JpcHRIYXNoOiAweDE3LFxuICAgIHdpZjogMHg4MCxcbiAgICBmb3JrSWQ6IDc5LFxuICAgIGNvaW46IGNvaW5zLkJURyxcbiAgfSxcbiAgYml0Y29pbmdvbGRUZXN0bmV0OiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4Qml0Y29pbiBHb2xkIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmVjaDMyOiAndGJ0ZycsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMlRlc3RuZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAxMTEsXG4gICAgc2NyaXB0SGFzaDogMTk2LFxuICAgIHdpZjogMHhlZixcbiAgICBmb3JrSWQ6IDc5LFxuICAgIGNvaW46IGNvaW5zLkJURyxcbiAgfSxcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi1zdi9iaXRjb2luLXN2L2Jsb2IvbWFzdGVyL3NyYy92YWxpZGF0aW9uLmNwcFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi1zdi9iaXRjb2luLXN2L2Jsb2IvbWFzdGVyL3NyYy9jaGFpbnBhcmFtcy5jcHBcbiAgYml0Y29pbnN2OiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJNYWlubmV0KCksXG4gICAgcHViS2V5SGFzaDogMHgwMCxcbiAgICBzY3JpcHRIYXNoOiAweDA1LFxuICAgIHdpZjogMHg4MCxcbiAgICBjb2luOiBjb2lucy5CU1YsXG4gICAgZm9ya0lkOiAweDAwLFxuICB9LFxuICBiaXRjb2luc3ZUZXN0bmV0OiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJUZXN0bmV0KCksXG4gICAgcHViS2V5SGFzaDogMHg2ZixcbiAgICBzY3JpcHRIYXNoOiAweGM0LFxuICAgIHdpZjogMHhlZixcbiAgICBjb2luOiBjb2lucy5CU1YsXG4gICAgZm9ya0lkOiAweDAwLFxuICB9LFxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXNocGF5L2Rhc2gvYmxvYi9tYXN0ZXIvc3JjL3ZhbGlkYXRpb24uY3BwXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXNocGF5L2Rhc2gvYmxvYi9tYXN0ZXIvc3JjL2NoYWlucGFyYW1zLmNwcFxuICBkYXNoOiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE5RGFya0NvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyTWFpbm5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4NGMsXG4gICAgc2NyaXB0SGFzaDogMHgxMCxcbiAgICB3aWY6IDB4Y2MsXG4gICAgY29pbjogY29pbnMuREFTSCxcbiAgfSxcbiAgZGFzaFRlc3Q6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MTlEYXJrQ29pbiBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJUZXN0bmV0KCksXG4gICAgcHViS2V5SGFzaDogMHg4YyxcbiAgICBzY3JpcHRIYXNoOiAweDEzLFxuICAgIHdpZjogMHhlZixcbiAgICBjb2luOiBjb2lucy5EQVNILFxuICB9LFxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9saXRlY29pbi1wcm9qZWN0L2xpdGVjb2luL2Jsb2IvbWFzdGVyL3NyYy92YWxpZGF0aW9uLmNwcFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbGl0ZWNvaW4tcHJvamVjdC9saXRlY29pbi9ibG9iL21hc3Rlci9zcmMvY2hhaW5wYXJhbXMuY3BwXG4gIGxpdGVjb2luOiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE5TGl0ZWNvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiZWNoMzI6ICdsdGMnLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJNYWlubmV0KCksXG4gICAgcHViS2V5SGFzaDogMHgzMCxcbiAgICBzY3JpcHRIYXNoOiAweDMyLFxuICAgIHdpZjogMHhiMCxcbiAgICBjb2luOiBjb2lucy5MVEMsXG4gIH0sXG4gIGxpdGVjb2luVGVzdDoge1xuICAgIG1lc3NhZ2VQcmVmaXg6ICdcXHgxOUxpdGVjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicsXG4gICAgYmVjaDMyOiAndGx0YycsXG4gICAgYmlwMzI6IGdldERlZmF1bHRCaXAzMlRlc3RuZXQoKSxcbiAgICBwdWJLZXlIYXNoOiAweDZmLFxuICAgIHNjcmlwdEhhc2g6IDB4M2EsXG4gICAgd2lmOiAweGVmLFxuICAgIGNvaW46IGNvaW5zLkxUQyxcbiAgfSxcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi9tYXN0ZXIvc3JjL3ZhbGlkYXRpb24uY3BwXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL21hc3Rlci9zcmMvY2hhaW5wYXJhbXMuY3BwXG4gIHpjYXNoOiB7XG4gICAgbWVzc2FnZVByZWZpeDogJ1xceDE4WkNhc2ggU2lnbmVkIE1lc3NhZ2U6XFxuJyxcbiAgICBiaXAzMjogZ2V0RGVmYXVsdEJpcDMyTWFpbm5ldCgpLFxuICAgIHB1YktleUhhc2g6IDB4MWNiOCxcbiAgICBzY3JpcHRIYXNoOiAweDFjYmQsXG4gICAgd2lmOiAweDgwLFxuICAgIC8vIFRoaXMgcGFyYW1ldGVyIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gMyB0byBhbGxvdyBzb2Z0IGZvcmtzLCBmb3IgdmVyc2lvbiAxIGFuZCAyIHRyYW5zYWN0aW9ucyB3ZSBhZGQgYVxuICAgIC8vIGR1bW15IHZhbHVlLlxuICAgIGNvbnNlbnN1c0JyYW5jaElkOiB7XG4gICAgICAxOiAweDAwLFxuICAgICAgMjogMHgwMCxcbiAgICAgIDM6IDB4NWJhODFiMTksXG4gICAgICAvLyA0OiAweDc2YjgwOWJiIChvbGQgU2FwbGluZyBicmFuY2ggaWQpLiBCbG9zc29tIGJyYW5jaCBpZCBiZWNvbWVzIGVmZmVjdGl2ZSBhZnRlciBibG9jayA2NTM2MDBcbiAgICAgIC8vIDQ6IDB4MmJiNDBlNjBcbiAgICAgIC8vIDQ6IDB4ZjViOTIzMGIgKEhlYXJ0d29vZCBicmFuY2ggaWQsIHNlZSBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUwKVxuICAgICAgNDogMHhlOWZmNzVhNiwgLy8gKENhbm9weSBicmFuY2ggaWQsIHNlZSBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUxKVxuICAgIH0sXG4gICAgY29pbjogY29pbnMuWkVDLFxuICB9LFxuICB6Y2FzaFRlc3Q6IHtcbiAgICBtZXNzYWdlUHJlZml4OiAnXFx4MThaQ2FzaCBTaWduZWQgTWVzc2FnZTpcXG4nLFxuICAgIGJpcDMyOiBnZXREZWZhdWx0QmlwMzJUZXN0bmV0KCksXG4gICAgcHViS2V5SGFzaDogMHgxZDI1LFxuICAgIHNjcmlwdEhhc2g6IDB4MWNiYSxcbiAgICB3aWY6IDB4ZWYsXG4gICAgY29uc2Vuc3VzQnJhbmNoSWQ6IHtcbiAgICAgIDE6IDB4MDAsXG4gICAgICAyOiAweDAwLFxuICAgICAgMzogMHg1YmE4MWIxOSxcbiAgICAgIC8vIDQ6IDB4NzZiODA5YmIgKG9sZCBTYXBsaW5nIGJyYW5jaCBpZClcbiAgICAgIC8vIDQ6IDB4MmJiNDBlNjBcbiAgICAgIC8vIDQ6IDB4ZjViOTIzMGIgKEhlYXJ0d29vZCBicmFuY2ggaWQsIHNlZSBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUwKVxuICAgICAgNDogMHhlOWZmNzVhNiwgLy8gKENhbm9weSBicmFuY2ggaWQsIHNlZSBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUxKVxuICAgIH0sXG4gICAgY29pbjogY29pbnMuWkVDLFxuICB9LFxufTtcblxuZXhwb3J0ID0gbmV0d29ya3M7XG4iXX0=
{
"name": "@bitgo/utxo-lib",
"version": "1.10.0-rc.12",
"version": "2.0.0-rc.0",
"description": "Client-side Bitcoin JavaScript library",

@@ -21,11 +21,17 @@ "main": "./dist/src/index.js",

"scripts": {
"prepare": "npm run build",
"build": "tsc --project tsconfig.build.json",
"coverage-report": "nyc report --reporter=lcov",
"coverage-html": "nyc report --reporter=html",
"coverage": "npm run build && BITGO_UTXO_LIB_TEST_EXPECTED_COUNT=3594 nyc --check-coverage --branches 88 --functions 90 mocha",
"integration-test": "mocha test/integration/",
"standard": "standard",
"test": "npm run standard && npm run coverage",
"coverage": "npm run build && nyc --check-coverage mocha",
"test": "npm run coverage",
"unit-test": "mocha"
},
"nyc": {
"include": [
"src/**"
],
"branches": 78,
"functions": 90
},
"repository": {

@@ -41,18 +47,7 @@ "type": "git",

"@bitgo/blake2b": "^3.0.1",
"bech32": "0.0.3",
"bigi": "^1.4.0",
"bip66": "^1.1.0",
"bitcoin-ops": "^1.3.0",
"bitcoinjs-lib": "git+https://github.com/BitGo/bitcoinjs-lib.git#19fd098772",
"bs58check": "^2.0.0",
"create-hash": "^1.1.0",
"create-hmac": "^1.1.3",
"debug": "~3.1.0",
"ecurve": "^1.0.0",
"merkle-lib": "^2.0.10",
"pushdata-bitcoin": "^1.0.1",
"randombytes": "^2.0.1",
"safe-buffer": "^5.0.1",
"typeforce": "^1.11.3",
"varuint-bitcoin": "^1.0.4",
"wif": "^2.0.1"
"varuint-bitcoin": "^1.0.4"
},

@@ -62,20 +57,11 @@ "devDependencies": {

"axios": "^0.21.1",
"bip39": "^2.3.0",
"bip65": "^1.0.1",
"bs58": "^4.0.0",
"dhttp": "^2.4.2",
"debug": "^3.1.0",
"fs-extra": "^9.1.0",
"minimaldata": "^1.0.2",
"mocha": "^8.4.0",
"nyc": "^15.1.0",
"proxyquire": "^1.4.0",
"sinon": "^1.12.2",
"standard": "^9.0.2",
"ts-node": "^9.1.1"
"ts-node": "^9.1.1",
"typescript": "^4.4.3"
},
"license": "MIT",
"optionalDependencies": {
"secp256k1": "^3.5.2"
},
"gitHead": "fce052925597b7ca2e83e233499c8ea2eec06b4b"
"gitHead": "1fdf39e7637218635778c98281cf73cccb7bcb47"
}

@@ -1,28 +0,6 @@

# BitGo UTXO library (bitgo-utxo-lib)
[![Build Status](https://travis-ci.org/BitGo/bitgo-utxo-lib.png?branch=master)](https://travis-ci.org/BitGo/bitgo-utxo-lib)
[![NPM](https://img.shields.io/npm/v/bitgo-utxo-lib.svg)](https://www.npmjs.org/package/bitgo-utxo-lib)
[![Known Vulnerabilities](https://snyk.io/test/github/BitGo/bitgo-utxo-lib/badge.svg?targetFile=package.json)](https://snyk.io/test/github/BitGo/bitgo-utxo-lib?targetFile=package.json)
# BitGo UTXO library
[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
This library is a wrapper around [bitcoinjs-lib](https://github.com/bitcoinjs/bitcoinjs-lib) adding altcoin support.
Originally a fork of [bitcoinjs-lib](https://github.com/BitGo/bitcoinjs-lib); we evolved this library to support the transaction building process of different UTXO based coins.
## Supported coins
- Bitcoin
- Bitcoin Cash
- Bitcoin Gold
- Bitcoin SV (Satoshi Vision)
- Dash
- Litecoin
- Zcash (Sapling compatible)
## Features
- Clean: Pure JavaScript, concise code, easy to read.
- Tested: Coverage > 90%, third-party integration tests.
- Compatible: Works on Node.js and all modern browsers.
- Powerful: Support for advanced features, such as multi-sig, HD Wallets.
- Secure: Strong random number generation, PGP signed releases, trusted developers.
- Principled: No support for browsers with RNG (IE < 11)
- Standardized: Node community coding style, Browserify, Node's stdlib and Buffers.
- Experiment-friendly: Mainnet and Testnet support.
- Multicoin support: Configurable behaviour based on [network](https://github.com/BitGo/bitgo-utxo-lib/blob/master/src/networks.js) objects.

@@ -38,112 +16,28 @@ - Backed by [BitGo](https://www.bitgo.com/info/)

### Node.js
``` javascript
var bitGoUTXO = require('@bitgo/utxo-lib')
```typescript
import * as utxolib from '@bitgo/utxo-lib'
```
### Browser
If you're familiar with how to use browserify, ignore this and proceed normally.
These steps are advisory only, and may not be suitable for your application.
[Browserify](https://github.com/substack/node-browserify) is assumed to be installed for these steps.
## Usage
For your project, create an `index.js` file
``` javascript
let bitGoUTXO = require('@bitgo/utxo-lib')
Support for parsing and building altcoin transactions is provided by the following methods
// your code here
function myFunction () {
return bitGoUTXO.ECPair.makeRandom().toWIF()
}
* `utxolib.bitgo.createTransactionFromBuffer(buffer, network): UtxoTransaction` (similarly `createTransactionFromHex(string, network)`)
* `utxolib.bitgo.createTransactionBuilderForNetwork(network): UtxoTransactionBuilder`
* `utxolib.bitgo.createTransactionBuilderFromTransaction(tx): UtxoTransactionBuilder`
module.exports = {
myFunction
}
```
The `UtxoTransaction(Builder)` classes have the same interface as the `Transaction` type in `bitcoinjs-lib` .
Now, to compile for the browser:
``` bash
browserify index.js --standalone foo > app.js
```
## Supported coins
You can now put `<script src="app.js" />` in your web page, using `foo.myFunction` to create a new Bitcoin private key.
|Network|Mainnet|Testnet|
|---|---|---|
|Bitcoin|`utxolib.networks.bitcoin`|`utxolib.networks.testnet`|
|Bitcoin Cash|`utxolib.networks.bitcoincash`|`utxolib.networks.bitcoincashTestnet`|
|Bitcoin Gold|`utxolib.networks.bitcoingold`|`utxolib.networks.bitcoingoldTestnet`|
|Bitcoin SV (Satoshi Vision)|`utxolib.networks.bitcoinsv`|`utxolib.networks.bitcoinsvTestnet`|
|Dash|`utxolib.networks.dash`|`utxolib.networks.dash`|
|Litecoin|`utxolib.networks.litecoin`|`utxolib.networks.litecoinTest`|
|Zcash|`utxolib.networks.zcash`|`utxolib.networks.zcashTest`|
**NOTE**: If you uglify the javascript, you must exclude the following variable names from being mangled: `BigInteger`, `ECPair`, `Point`.
This is because of the function-name-duck-typing used in [typeforce](https://github.com/dcousens/typeforce).
Example:
``` bash
uglifyjs ... --mangle --reserved 'BigInteger,ECPair,Point'
```
**NOTE**: This library tracks Node LTS features, if you need strict ES5, use [`--transform babelify`](https://github.com/babel/babelify) in conjunction with your `browserify` step (using an [`es2015`](http://babeljs.io/docs/plugins/preset-es2015/) preset).
**NOTE**: If you expect this library to run on an iOS 10 device, ensure that you are using [buffer@5.0.5](https://github.com/feross/buffer/pull/155) or greater.
## Examples
The below examples are implemented as integration tests, they should be very easy to understand.
Otherwise, pull requests are appreciated.
Some examples interact (via HTTPS) with a 3rd Party Blockchain Provider (3PBP).
### Bitcoin
- [Generate a random address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L12)
- [Generate an address from a SHA256 hash](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L19)
- [Import an address via WIF](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L29)
- [Generate a 2-of-3 P2SH multisig address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L36)
- [Generate a SegWit address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L50)
- [Generate a SegWit P2SH address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L60)
- [Generate a SegWit 3-of-4 multisig address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L71)
- [Generate a SegWit 2-of-2 P2SH multisig address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L86)
- [Support the retrieval of transactions for an address (3rd party blockchain)](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L100)
- [Generate a Testnet address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L121)
- [Generate a Litecoin address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/addresses.js#L131)
- [Create a 1-to-1 Transaction](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/transactions.js#L14)
- [Create a 2-to-2 Transaction](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/transactions.js#L28)
- [Create (and broadcast via 3PBP) a typical Transaction](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/transactions.js#L46)
- [Create (and broadcast via 3PBP) a Transaction with an OP\_RETURN output](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/transactions.js#L88)
- [Create (and broadcast via 3PBP) a Transaction with a 2-of-4 P2SH(multisig) input](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/transactions.js#L115)
- [Create (and broadcast via 3PBP) a Transaction with a SegWit P2SH(P2WPKH) input](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/transactions.js#L151)
- [Create (and broadcast via 3PBP) a Transaction with a SegWit 3-of-4 P2SH(P2WSH(multisig)) input](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/transactions.js#L183)
- [Import a BIP32 testnet xpriv and export to WIF](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/bip32.js#L8)
- [Export a BIP32 xpriv, then import it](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/bip32.js#L15)
- [Export a BIP32 xpub](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/bip32.js#L26)
- [Create a BIP32, bitcoin, account 0, external address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/bip32.js#L35)
- [Create a BIP44, bitcoin, account 0, external address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/bip32.js#L50)
- [Create a BIP49, bitcoin testnet, account 0, external address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/bip32.js#L66)
- [Use BIP39 to generate BIP32 addresses](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/bip32.js#L83)
- [Create (and broadcast via 3PBP) a Transaction where Alice can redeem the output after the expiry](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/cltv.js#L37)
- [Create (and broadcast via 3PBP) a Transaction where Alice and Bob can redeem the output at any time](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/cltv.js#L71)
- [Create (but fail to broadcast via 3PBP) a Transaction where Alice attempts to redeem before the expiry](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/cltv.js#L104)
- [Recover a private key from duplicate R values](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/crypto.js#L14)
- [Recover a BIP32 parent private key from the parent public key, and a derived, non-hardened child private key](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/crypto.js#L115)
- [Generate a single-key stealth address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/stealth.js#L70:)
- [Generate a single-key stealth address (randomly)](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/stealth.js#L89:)
- [Recover parent recipient.d, if a derived private key is leaked (and nonce was revealed)](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/stealth.js#L105)
- [Generate a dual-key stealth address](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/stealth.js#L122)
- [Generate a dual-key stealth address (randomly)](https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib/test/integration/stealth.js#L145)
If you have a use case that you feel could be listed here, please [ask for it](https://github.com/BitGo/bitgo-utxo-lib/issues/new)!
### Running the test suite
``` bash
npm test
npm run-script coverage
```
## Complementing Libraries
- [BIP21](https://github.com/bitcoinjs/bip21) - A BIP21 compatible URL encoding utility library
- [BIP38](https://github.com/bitcoinjs/bip38) - Passphrase-protected private keys
- [BIP39](https://github.com/bitcoinjs/bip39) - Mnemonic generation for deterministic keys
- [BIP32-Utils](https://github.com/bitcoinjs/bip32-utils) - A set of utilities for working with BIP32
- [BIP66](https://github.com/bitcoinjs/bip66) - Strict DER signature decoding
- [BIP69](https://github.com/bitcoinjs/bip69) - Lexicographical Indexing of Transaction Inputs and Outputs
- [Base58](https://github.com/cryptocoinjs/bs58) - Base58 encoding/decoding
- [Base58 Check](https://github.com/bitcoinjs/bs58check) - Base58 check encoding/decoding
- [Bech32](https://github.com/bitcoinjs/bech32) - A BIP173 compliant Bech32 encoding library
- [coinselect](https://github.com/bitcoinjs/coinselect) - A fee-optimizing, transaction input selection module for bitcoinjs-lib.
- [merkle-lib](https://github.com/bitcoinjs/merkle-lib) - A performance conscious library for merkle root and tree calculations.
- [minimaldata](https://github.com/bitcoinjs/minimaldata) - A module to check bitcoin policy: SCRIPT_VERIFY_MINIMALDATA
## LICENSE [MIT](LICENSE)

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc