@bitgo-beta/utxo-bin 2.8.3-beta.143 → 2.8.3-beta.1430
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/bin/index.js +40 -4
- package/dist/src/AddressParser.d.ts +0 -1
- package/dist/src/AddressParser.d.ts.map +1 -1
- package/dist/src/AddressParser.js +48 -9
- package/dist/src/InputParser.d.ts +1 -2
- package/dist/src/InputParser.d.ts.map +1 -1
- package/dist/src/InputParser.js +66 -23
- package/dist/src/OutputParser.d.ts +3 -3
- package/dist/src/OutputParser.d.ts.map +1 -1
- package/dist/src/OutputParser.js +52 -6
- package/dist/src/Parser.d.ts +3 -3
- package/dist/src/Parser.d.ts.map +1 -1
- package/dist/src/Parser.js +12 -5
- package/dist/src/ParserTx.d.ts +3 -4
- package/dist/src/ParserTx.d.ts.map +1 -1
- package/dist/src/ParserTx.js +41 -9
- package/dist/src/ScriptParser.d.ts +8 -6
- package/dist/src/ScriptParser.d.ts.map +1 -1
- package/dist/src/ScriptParser.js +60 -8
- package/dist/src/TxParser.d.ts +3 -2
- package/dist/src/TxParser.d.ts.map +1 -1
- package/dist/src/TxParser.js +44 -11
- package/dist/src/args/format.d.ts +8 -0
- package/dist/src/args/format.d.ts.map +1 -0
- package/dist/src/args/format.js +15 -0
- package/dist/src/args/index.d.ts +5 -0
- package/dist/src/args/index.d.ts.map +1 -0
- package/dist/src/args/index.js +21 -0
- package/dist/src/args/parseNetwork.d.ts +25 -0
- package/dist/src/args/parseNetwork.d.ts.map +1 -0
- package/dist/src/args/parseNetwork.js +108 -0
- package/dist/src/args/parseString.d.ts +40 -0
- package/dist/src/args/parseString.d.ts.map +1 -0
- package/dist/src/args/parseString.js +153 -0
- package/dist/src/args/walletKeys.d.ts +38 -0
- package/dist/src/args/walletKeys.d.ts.map +1 -0
- package/dist/src/args/walletKeys.js +64 -0
- package/dist/src/bip32.d.ts +5 -0
- package/dist/src/bip32.d.ts.map +1 -0
- package/dist/src/bip32.js +56 -0
- package/dist/src/commands/cmdAddress/cmdGenerate.d.ts +21 -0
- package/dist/src/commands/cmdAddress/cmdGenerate.d.ts.map +1 -0
- package/dist/src/commands/cmdAddress/cmdGenerate.js +89 -0
- package/dist/src/commands/cmdAddress/cmdParse.d.ts +20 -0
- package/dist/src/commands/cmdAddress/cmdParse.d.ts.map +1 -0
- package/dist/src/commands/cmdAddress/cmdParse.js +28 -0
- package/dist/src/commands/cmdAddress/index.d.ts +3 -0
- package/dist/src/commands/cmdAddress/index.d.ts.map +1 -0
- package/dist/src/commands/cmdAddress/index.js +16 -0
- package/dist/src/commands/cmdBip32.d.ts +16 -0
- package/dist/src/commands/cmdBip32.d.ts.map +1 -0
- package/dist/src/commands/cmdBip32.js +78 -0
- package/dist/src/commands/cmdDescriptor/fromFixedScript.d.ts +10 -0
- package/dist/src/commands/cmdDescriptor/fromFixedScript.d.ts.map +1 -0
- package/dist/src/commands/cmdDescriptor/fromFixedScript.js +73 -0
- package/dist/src/commands/cmdDescriptor/index.d.ts +4 -0
- package/dist/src/commands/cmdDescriptor/index.d.ts.map +1 -0
- package/dist/src/commands/cmdDescriptor/index.js +30 -0
- package/dist/src/commands/cmdParseScript.d.ts +18 -0
- package/dist/src/commands/cmdParseScript.d.ts.map +1 -0
- package/dist/src/commands/cmdParseScript.js +27 -0
- package/dist/src/commands/cmdParseTx.d.ts +30 -0
- package/dist/src/commands/cmdParseTx.d.ts.map +1 -0
- package/dist/src/commands/cmdParseTx.js +153 -0
- package/dist/src/commands/cmdPsbt/cmdAddDescriptorInput.d.ts +13 -0
- package/dist/src/commands/cmdPsbt/cmdAddDescriptorInput.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/cmdAddDescriptorInput.js +100 -0
- package/dist/src/commands/cmdPsbt/cmdAddOutput.d.ts +11 -0
- package/dist/src/commands/cmdPsbt/cmdAddOutput.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/cmdAddOutput.js +122 -0
- package/dist/src/commands/cmdPsbt/cmdCreate.d.ts +9 -0
- package/dist/src/commands/cmdPsbt/cmdCreate.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/cmdCreate.js +23 -0
- package/dist/src/commands/cmdPsbt/cmdFinalize.d.ts +11 -0
- package/dist/src/commands/cmdPsbt/cmdFinalize.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/cmdFinalize.js +43 -0
- package/dist/src/commands/cmdPsbt/cmdSign.d.ts +7 -0
- package/dist/src/commands/cmdPsbt/cmdSign.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/cmdSign.js +57 -0
- package/dist/src/commands/cmdPsbt/index.d.ts +8 -0
- package/dist/src/commands/cmdPsbt/index.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/index.js +27 -0
- package/dist/src/commands/cmdPsbt/withPsbt.d.ts +63 -0
- package/dist/src/commands/cmdPsbt/withPsbt.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/withPsbt.js +99 -0
- package/dist/src/commands/cmdPsbt/wrap.d.ts +5 -0
- package/dist/src/commands/cmdPsbt/wrap.d.ts.map +1 -0
- package/dist/src/commands/cmdPsbt/wrap.js +60 -0
- package/dist/src/commands/formatString.d.ts +8 -0
- package/dist/src/commands/formatString.d.ts.map +1 -0
- package/dist/src/commands/formatString.js +14 -0
- package/dist/src/commands/index.d.ts +7 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +23 -0
- package/dist/src/ecdsa.d.ts +1 -2
- package/dist/src/ecdsa.d.ts.map +1 -1
- package/dist/src/ecdsa.js +9 -9
- package/dist/src/fetch.d.ts +8 -1
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +77 -11
- package/dist/src/format.d.ts +5 -2
- package/dist/src/format.d.ts.map +1 -1
- package/dist/src/format.js +24 -9
- package/dist/src/generateAddress.d.ts +24 -9
- package/dist/src/generateAddress.d.ts.map +1 -1
- package/dist/src/generateAddress.js +99 -26
- package/dist/src/hollowSegwitSpend.d.ts +1 -1
- package/dist/src/hollowSegwitSpend.d.ts.map +1 -1
- package/dist/src/hollowSegwitSpend.js +37 -5
- package/dist/src/parseUnknown.js +4 -5
- package/dist/test/args/stringToBuffer.d.ts.map +1 -0
- package/dist/test/args/stringToBuffer.js +49 -0
- package/dist/test/bip32.d.ts +2 -0
- package/dist/test/bip32.d.ts.map +1 -0
- package/dist/test/bip32.js +55 -0
- package/dist/test/bip32.util.d.ts +6 -0
- package/dist/test/bip32.util.d.ts.map +1 -0
- package/dist/test/bip32.util.js +46 -0
- package/dist/test/captureConsole.d.ts +6 -0
- package/dist/test/captureConsole.d.ts.map +1 -0
- package/dist/test/captureConsole.js +65 -0
- package/dist/test/cmdDescriptor/fromFixedScript.d.ts +2 -0
- package/dist/test/cmdDescriptor/fromFixedScript.d.ts.map +1 -0
- package/dist/test/cmdDescriptor/fromFixedScript.js +70 -0
- package/dist/test/cmdPsbt.d.ts +2 -0
- package/dist/test/cmdPsbt.d.ts.map +1 -0
- package/dist/test/cmdPsbt.js +138 -0
- package/dist/test/fixtures.d.ts +4 -4
- package/dist/test/fixtures.d.ts.map +1 -1
- package/dist/test/fixtures.js +45 -13
- package/dist/test/generateAddress.js +63 -13
- package/dist/test/parseAddress.d.ts +1 -5
- package/dist/test/parseAddress.d.ts.map +1 -1
- package/dist/test/parseAddress.js +54 -22
- package/dist/test/parseScript.js +45 -9
- package/dist/test/parseTransaction.js +49 -12
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -9
- package/dist/src/commands.d.ts +0 -78
- package/dist/src/commands.d.ts.map +0 -1
- package/dist/src/commands.js +0 -284
- package/dist/src/parseString.d.ts +0 -5
- package/dist/src/parseString.d.ts.map +0 -1
- package/dist/src/parseString.js +0 -29
- package/dist/src/readStdin.d.ts +0 -5
- package/dist/src/readStdin.d.ts.map +0 -1
- package/dist/src/readStdin.js +0 -42
- package/dist/test/stringToBuffer.d.ts.map +0 -1
- package/dist/test/stringToBuffer.js +0 -16
- /package/dist/test/{stringToBuffer.d.ts → args/stringToBuffer.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAQhD,QAAA,MAAM,WAAW,iFAAqF,CAAC;AACvG,KAAK,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAchG"}
|
|
@@ -1,22 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSupportedDepositType =
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
8
|
-
const commands_1 = require("../src/commands");
|
|
39
|
+
exports.isSupportedDepositType = isSupportedDepositType;
|
|
40
|
+
const assert_1 = __importDefault(require("assert"));
|
|
41
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
42
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
9
43
|
const fixtures_1 = require("./fixtures");
|
|
44
|
+
const bip32_util_1 = require("./bip32.util");
|
|
45
|
+
const cmdParse_1 = require("../src/commands/cmdAddress/cmdParse");
|
|
46
|
+
const args_1 = require("../src/args");
|
|
10
47
|
const scriptTypesSingleSig = ['p2pkh', 'p2wkh'];
|
|
11
48
|
const scriptTypes = [...utxolib.bitgo.outputScripts.scriptTypes2Of3, ...scriptTypesSingleSig];
|
|
12
|
-
function getKey(seed) {
|
|
13
|
-
return utxolib.bip32.fromSeed(crypto.createHash('sha256').update(seed).digest());
|
|
14
|
-
}
|
|
15
|
-
function getKeyTriple(seed) {
|
|
16
|
-
return [getKey(seed + '.0'), getKey(seed + '.1'), getKey(seed + '.2')];
|
|
17
|
-
}
|
|
18
|
-
exports.getKeyTriple = getKeyTriple;
|
|
19
49
|
function isSupportedDepositType(network, scriptType) {
|
|
50
|
+
if (network === args_1.bitcoinRegtest) {
|
|
51
|
+
return isSupportedDepositType(utxolib.networks.bitcoin, scriptType);
|
|
52
|
+
}
|
|
20
53
|
if (scriptType === 'p2pkh') {
|
|
21
54
|
return true;
|
|
22
55
|
}
|
|
@@ -25,7 +58,6 @@ function isSupportedDepositType(network, scriptType) {
|
|
|
25
58
|
}
|
|
26
59
|
return utxolib.bitgo.outputScripts.isSupportedScriptType(network, scriptType);
|
|
27
60
|
}
|
|
28
|
-
exports.isSupportedDepositType = isSupportedDepositType;
|
|
29
61
|
/**
|
|
30
62
|
*
|
|
31
63
|
* @param keys - Pubkeys to use for generating the address.
|
|
@@ -52,7 +84,7 @@ function createScriptPubKey(keys, scriptType, network) {
|
|
|
52
84
|
}
|
|
53
85
|
}
|
|
54
86
|
function getAddresses(n) {
|
|
55
|
-
const keys = getKeyTriple('parseAddress');
|
|
87
|
+
const keys = (0, bip32_util_1.getKeyTriple)('parseAddress');
|
|
56
88
|
return scriptTypes
|
|
57
89
|
.filter((t) => isSupportedDepositType(n, t))
|
|
58
90
|
.flatMap((t) => utxolib.addressFormat.addressFormats
|
|
@@ -64,24 +96,24 @@ function getAddresses(n) {
|
|
|
64
96
|
]));
|
|
65
97
|
}
|
|
66
98
|
function parse(address, args) {
|
|
67
|
-
return
|
|
99
|
+
return (0, cmdParse_1.getAddressParser)((0, yargs_1.default)([]).command(cmdParse_1.cmdParse).parseSync(args)).parse(address);
|
|
68
100
|
}
|
|
69
101
|
function testParseAddress(network, type, addressFormat, address, args, suffix) {
|
|
70
102
|
describe(`parse address ${address} with arguments ${args.join(' ')}`, function () {
|
|
71
103
|
it(`formats address`, async function () {
|
|
72
|
-
const formatted = fixtures_1.formatTreeNoColor(parse(address, args), { showAll: true });
|
|
104
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)(parse(address, args), { showAll: true });
|
|
73
105
|
const addrNoColon = address.replace(':', '_');
|
|
74
|
-
const filename = [
|
|
75
|
-
|
|
106
|
+
const filename = [(0, args_1.getNetworkName)(network), type, addressFormat, addrNoColon + suffix].join('_');
|
|
107
|
+
assert_1.default.strictEqual(await (0, fixtures_1.getFixtureString)(`test/fixtures/formatAddress/${filename}.txt`, formatted), formatted);
|
|
76
108
|
});
|
|
77
109
|
});
|
|
78
110
|
}
|
|
79
|
-
|
|
111
|
+
(0, args_1.getNetworkList)().forEach((n) => {
|
|
80
112
|
getAddresses(n).forEach(([type, addressFormat, address], i) => {
|
|
81
113
|
testParseAddress(n, type, addressFormat, address, [], '');
|
|
82
|
-
if ([utxolib.networks.bitcoin, utxolib.networks.bitcoincash, utxolib.networks.ecash].includes(n)
|
|
114
|
+
if ([utxolib.networks.bitcoin, utxolib.networks.bitcoincash, utxolib.networks.ecash].includes(n)) {
|
|
83
115
|
testParseAddress(n, type, addressFormat, address, ['--all'], '.all');
|
|
84
116
|
}
|
|
85
117
|
});
|
|
86
118
|
});
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9wYXJzZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBQ2pDLGlDQUFpQztBQUNqQywrQkFBK0I7QUFFL0IsZ0RBQWdEO0FBRWhELDhDQUFvRTtBQUNwRSx5Q0FBaUU7QUFNakUsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVUsQ0FBQztBQUN6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsb0JBQW9CLENBQVUsQ0FBQztBQUd2RyxTQUFTLE1BQU0sQ0FBQyxJQUFZO0lBQzFCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBQ0QsU0FBZ0IsWUFBWSxDQUFDLElBQVk7SUFDdkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekUsQ0FBQztBQUZELG9DQUVDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsT0FBd0IsRUFBRSxVQUFzQjtJQUNyRixJQUFJLFVBQVUsS0FBSyxPQUFPLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRTtRQUMxQixPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDeEM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHFCQUFx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QUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4RyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sMkJBQWdCLENBQUMsK0JBQStCLFFBQVEsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ3JDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUQsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzRyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN0RTtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdiaXAzMic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgY21kUGFyc2VBZGRyZXNzLCBnZXRBZGRyZXNzUGFyc2VyIH0gZnJvbSAnLi4vc3JjL2NvbW1hbmRzJztcbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5cbnR5cGUgVHJpcGxlPFQ+ID0gW1QsIFQsIFRdO1xuXG50eXBlIEtleVRyaXBsZSA9IFRyaXBsZTxCSVAzMkludGVyZmFjZT47XG5cbmNvbnN0IHNjcmlwdFR5cGVzU2luZ2xlU2lnID0gWydwMnBraCcsICdwMndraCddIGFzIGNvbnN0O1xuY29uc3Qgc2NyaXB0VHlwZXMgPSBbLi4udXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMywgLi4uc2NyaXB0VHlwZXNTaW5nbGVTaWddIGFzIGNvbnN0O1xudHlwZSBTY3JpcHRUeXBlID0gKHR5cGVvZiBzY3JpcHRUeXBlcylbbnVtYmVyXTtcblxuZnVuY3Rpb24gZ2V0S2V5KHNlZWQ6IHN0cmluZyk6IEJJUDMySW50ZXJmYWNlIHtcbiAgcmV0dXJuIHV0eG9saWIuYmlwMzIuZnJvbVNlZWQoY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShzZWVkKS5kaWdlc3QoKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5VHJpcGxlKHNlZWQ6IHN0cmluZyk6IEtleVRyaXBsZSB7XG4gIHJldHVybiBbZ2V0S2V5KHNlZWQgKyAnLjAnKSwgZ2V0S2V5KHNlZWQgKyAnLjEnKSwgZ2V0S2V5KHNlZWQgKyAnLjInKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG5ldHdvcms6IHV0eG9saWIuTmV0d29yaywgc2NyaXB0VHlwZTogU2NyaXB0VHlwZSk6IGJvb2xlYW4ge1xuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AycGtoJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMndraCcpIHtcbiAgICByZXR1cm4gdXR4b2xpYi5zdXBwb3J0c1NlZ3dpdChuZXR3b3JrKTtcbiAgfVxuXG4gIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ga2V5cyAtIFB1YmtleXMgdG8gdXNlIGZvciBnZW5lcmF0aW5nIHRoZSBhZGRyZXNzLlxuICogICAgICAgICAgICAgICBJZiBzY3JpcHRUeXBlIGlzIHNpbmdsZS1zaWcsIHRoZSBmaXJzdCBrZXkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHNjcmlwdFB1YktleVxuICovXG5mdW5jdGlvbiBjcmVhdGVTY3JpcHRQdWJLZXkoa2V5czogS2V5VHJpcGxlLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCdWZmZXIge1xuICBjb25zdCBwdWJrZXlzID0ga2V5cy5tYXAoKGspID0+IGsucHVibGljS2V5KTtcblxuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICBjYXNlICdwMnRyJzpcbiAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzLCBzY3JpcHRUeXBlKS5zY3JpcHRQdWJLZXk7XG4gICAgY2FzZSAncDJwa2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJwa2goeyBwdWJrZXk6IGtleXNbMF0ucHVibGljS2V5IH0pLm91dHB1dCBhcyBCdWZmZXI7XG4gICAgY2FzZSAncDJ3a2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgcHVia2V5OiBrZXlzWzBdLnB1YmxpY0tleSB9KS5vdXRwdXQgYXMgQnVmZmVyO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzZXMobjogdXR4b2xpYi5OZXR3b3JrKTogW3R5cGU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZ11bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoJ3BhcnNlQWRkcmVzcycpO1xuICByZXR1cm4gc2NyaXB0VHlwZXNcbiAgICAuZmlsdGVyKCh0KSA9PiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG4sIHQpKVxuICAgIC5mbGF0TWFwKCh0KSA9PlxuICAgICAgdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmFkZHJlc3NGb3JtYXRzXG4gICAgICAgIC5maWx0ZXIoKGZvcm1hdCkgPT4gdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmb3JtYXQsIG4pKVxuICAgICAgICAubWFwKChmb3JtYXQpOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10gPT4gW1xuICAgICAgICAgIHQsXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC5mcm9tT3V0cHV0U2NyaXB0V2l0aEZvcm1hdChjcmVhdGVTY3JpcHRQdWJLZXkoa2V5cywgdCwgbiksIGZvcm1hdCwgbiksXG4gICAgICAgIF0pXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoYWRkcmVzczogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZ2V0QWRkcmVzc1BhcnNlcih5YXJncy5jb21tYW5kKGNtZFBhcnNlQWRkcmVzcykucGFyc2VTeW5jKGFyZ3MpKS5wYXJzZShhZGRyZXNzKTtcbn1cblxuZnVuY3Rpb24gdGVzdFBhcnNlQWRkcmVzcyhcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB0eXBlOiBzdHJpbmcsXG4gIGFkZHJlc3NGb3JtYXQ6IHN0cmluZyxcbiAgYWRkcmVzczogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgc3VmZml4OiBzdHJpbmdcbikge1xuICBkZXNjcmliZShgcGFyc2UgYWRkcmVzcyAke2FkZHJlc3N9IHdpdGggYXJndW1lbnRzICR7YXJncy5qb2luKCcgJyl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGl0KGBmb3JtYXRzIGFkZHJlc3NgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihwYXJzZShhZGRyZXNzLCBhcmdzKSwgeyBzaG93QWxsOiB0cnVlIH0pO1xuICAgICAgY29uc3QgYWRkck5vQ29sb24gPSBhZGRyZXNzLnJlcGxhY2UoJzonLCAnXycpO1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBbdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKSwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkck5vQ29sb24gKyBzdWZmaXhdLmpvaW4oJ18nKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhd2FpdCBnZXRGaXh0dXJlU3RyaW5nKGB0ZXN0L2ZpeHR1cmVzL2Zvcm1hdEFkZHJlc3MvJHtmaWxlbmFtZX0udHh0YCwgZm9ybWF0dGVkKSwgZm9ybWF0dGVkKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbnV0eG9saWIuZ2V0TmV0d29ya0xpc3QoKS5mb3JFYWNoKChuKSA9PiB7XG4gIGdldEFkZHJlc3NlcyhuKS5mb3JFYWNoKChbdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzc10sIGkpID0+IHtcbiAgICB0ZXN0UGFyc2VBZGRyZXNzKG4sIHR5cGUsIGFkZHJlc3NGb3JtYXQsIGFkZHJlc3MsIFtdLCAnJyk7XG4gICAgaWYgKFt1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sIHV0eG9saWIubmV0d29ya3MuYml0Y29pbmNhc2gsIHV0eG9saWIubmV0d29ya3MuZWNhc2hdLmluY2x1ZGVzKG4pICYmIGkgPT09IDApIHtcbiAgICAgIHRlc3RQYXJzZUFkZHJlc3MobiwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzcywgWyctLWFsbCddLCAnLmFsbCcpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9wYXJzZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSx3REFjQztBQTVCRCxvREFBNEI7QUFFNUIsa0RBQTBCO0FBQzFCLDhEQUFnRDtBQUVoRCx5Q0FBaUU7QUFDakUsNkNBQXVEO0FBQ3ZELGtFQUFpRjtBQUNqRixzQ0FBNkU7QUFFN0UsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVUsQ0FBQztBQUN6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsb0JBQW9CLENBQVUsQ0FBQztBQUd2RyxTQUFnQixzQkFBc0IsQ0FBQyxPQUF3QixFQUFFLFVBQXNCO0lBQ3JGLElBQUksT0FBTyxLQUFLLHFCQUFjLEVBQUUsQ0FBQztRQUMvQixPQUFPLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxJQUFlLEVBQUUsVUFBc0IsRUFBRSxPQUF3QjtJQUMzRixNQUFNLE9BQU8sR0FBRyxJQUFJLENB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QUFHLENBQUMsQ0FBQztZQUNoRyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUEsMkJBQWdCLEVBQUMsK0JBQStCLFFBQVEsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsSUFBQSxxQkFBYyxHQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDN0IsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1RCxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pHLGdCQUFnQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBnZXRLZXlUcmlwbGUsIEtleVRyaXBsZSB9IGZyb20gJy4vYmlwMzIudXRpbCc7XG5pbXBvcnQgeyBnZXRBZGRyZXNzUGFyc2VyLCBjbWRQYXJzZSB9IGZyb20gJy4uL3NyYy9jb21tYW5kcy9jbWRBZGRyZXNzL2NtZFBhcnNlJztcbmltcG9ydCB7IGJpdGNvaW5SZWd0ZXN0LCBnZXROZXR3b3JrTGlzdCwgZ2V0TmV0d29ya05hbWUgfSBmcm9tICcuLi9zcmMvYXJncyc7XG5cbmNvbnN0IHNjcmlwdFR5cGVzU2luZ2xlU2lnID0gWydwMnBraCcsICdwMndraCddIGFzIGNvbnN0O1xuY29uc3Qgc2NyaXB0VHlwZXMgPSBbLi4udXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMywgLi4uc2NyaXB0VHlwZXNTaW5nbGVTaWddIGFzIGNvbnN0O1xudHlwZSBTY3JpcHRUeXBlID0gKHR5cGVvZiBzY3JpcHRUeXBlcylbbnVtYmVyXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3VwcG9ydGVkRGVwb3NpdFR5cGUobmV0d29yazogdXR4b2xpYi5OZXR3b3JrLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlKTogYm9vbGVhbiB7XG4gIGlmIChuZXR3b3JrID09PSBiaXRjb2luUmVndGVzdCkge1xuICAgIHJldHVybiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKHV0eG9saWIubmV0d29ya3MuYml0Y29pbiwgc2NyaXB0VHlwZSk7XG4gIH1cblxuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AycGtoJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMndraCcpIHtcbiAgICByZXR1cm4gdXR4b2xpYi5zdXBwb3J0c1NlZ3dpdChuZXR3b3JrKTtcbiAgfVxuXG4gIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ga2V5cyAtIFB1YmtleXMgdG8gdXNlIGZvciBnZW5lcmF0aW5nIHRoZSBhZGRyZXNzLlxuICogICAgICAgICAgICAgICBJZiBzY3JpcHRUeXBlIGlzIHNpbmdsZS1zaWcsIHRoZSBmaXJzdCBrZXkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHNjcmlwdFB1YktleVxuICovXG5mdW5jdGlvbiBjcmVhdGVTY3JpcHRQdWJLZXkoa2V5czogS2V5VHJpcGxlLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCdWZmZXIge1xuICBjb25zdCBwdWJrZXlzID0ga2V5cy5tYXAoKGspID0+IGsucHVibGljS2V5KTtcblxuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICBjYXNlICdwMnRyJzpcbiAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzLCBzY3JpcHRUeXBlKS5zY3JpcHRQdWJLZXk7XG4gICAgY2FzZSAncDJwa2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJwa2goeyBwdWJrZXk6IGtleXNbMF0ucHVibGljS2V5IH0pLm91dHB1dCBhcyBCdWZmZXI7XG4gICAgY2FzZSAncDJ3a2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgcHVia2V5OiBrZXlzWzBdLnB1YmxpY0tleSB9KS5vdXRwdXQgYXMgQnVmZmVyO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzZXMobjogdXR4b2xpYi5OZXR3b3JrKTogW3R5cGU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZ11bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoJ3BhcnNlQWRkcmVzcycpO1xuICByZXR1cm4gc2NyaXB0VHlwZXNcbiAgICAuZmlsdGVyKCh0KSA9PiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG4sIHQpKVxuICAgIC5mbGF0TWFwKCh0KSA9PlxuICAgICAgdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmFkZHJlc3NGb3JtYXRzXG4gICAgICAgIC5maWx0ZXIoKGZvcm1hdCkgPT4gdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmb3JtYXQsIG4pKVxuICAgICAgICAubWFwKChmb3JtYXQpOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10gPT4gW1xuICAgICAgICAgIHQsXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC5mcm9tT3V0cHV0U2NyaXB0V2l0aEZvcm1hdChjcmVhdGVTY3JpcHRQdWJLZXkoa2V5cywgdCwgbiksIGZvcm1hdCwgbiksXG4gICAgICAgIF0pXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoYWRkcmVzczogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZ2V0QWRkcmVzc1BhcnNlcih5YXJncyhbXSkuY29tbWFuZChjbWRQYXJzZSkucGFyc2VTeW5jKGFyZ3MpKS5wYXJzZShhZGRyZXNzKTtcbn1cblxuZnVuY3Rpb24gdGVzdFBhcnNlQWRkcmVzcyhcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB0eXBlOiBzdHJpbmcsXG4gIGFkZHJlc3NGb3JtYXQ6IHN0cmluZyxcbiAgYWRkcmVzczogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgc3VmZml4OiBzdHJpbmdcbikge1xuICBkZXNjcmliZShgcGFyc2UgYWRkcmVzcyAke2FkZHJlc3N9IHdpdGggYXJndW1lbnRzICR7YXJncy5qb2luKCcgJyl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGl0KGBmb3JtYXRzIGFkZHJlc3NgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihwYXJzZShhZGRyZXNzLCBhcmdzKSwgeyBzaG93QWxsOiB0cnVlIH0pO1xuICAgICAgY29uc3QgYWRkck5vQ29sb24gPSBhZGRyZXNzLnJlcGxhY2UoJzonLCAnXycpO1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBbZ2V0TmV0d29ya05hbWUobmV0d29yayksIHR5cGUsIGFkZHJlc3NGb3JtYXQsIGFkZHJOb0NvbG9uICsgc3VmZml4XS5qb2luKCdfJyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYXdhaXQgZ2V0Rml4dHVyZVN0cmluZyhgdGVzdC9maXh0dXJlcy9mb3JtYXRBZGRyZXNzLyR7ZmlsZW5hbWV9LnR4dGAsIGZvcm1hdHRlZCksIGZvcm1hdHRlZCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5nZXROZXR3b3JrTGlzdCgpLmZvckVhY2goKG4pID0+IHtcbiAgZ2V0QWRkcmVzc2VzKG4pLmZvckVhY2goKFt0eXBlLCBhZGRyZXNzRm9ybWF0LCBhZGRyZXNzXSwgaSkgPT4ge1xuICAgIHRlc3RQYXJzZUFkZHJlc3MobiwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzcywgW10sICcnKTtcbiAgICBpZiAoW3V0eG9saWIubmV0d29ya3MuYml0Y29pbiwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luY2FzaCwgdXR4b2xpYi5uZXR3b3Jrcy5lY2FzaF0uaW5jbHVkZXMobikpIHtcbiAgICAgIHRlc3RQYXJzZUFkZHJlc3MobiwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzcywgWyctLWFsbCddLCAnLmFsbCcpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
|
package/dist/test/parseScript.js
CHANGED
|
@@ -1,19 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const assert = require("assert");
|
|
4
|
-
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
5
|
-
const fixtures_1 = require("./fixtures");
|
|
36
|
+
const assert = __importStar(require("assert"));
|
|
37
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
6
38
|
const ScriptParser_1 = require("../src/ScriptParser");
|
|
39
|
+
const fixtures_1 = require("./fixtures");
|
|
40
|
+
function getParser() {
|
|
41
|
+
return new ScriptParser_1.ScriptParser({ network: utxolib.networks.bitcoin });
|
|
42
|
+
}
|
|
7
43
|
function testParseScript(type) {
|
|
8
44
|
let tx;
|
|
9
45
|
before('setup transaction', async function () {
|
|
10
|
-
tx = await fixtures_1.getTransactionWithSpendType(utxolib.networks.testnet, {
|
|
46
|
+
tx = await (0, fixtures_1.getTransactionWithSpendType)(utxolib.networks.testnet, 'test/fixtures/parse/psbt', {
|
|
11
47
|
scriptType: type,
|
|
12
48
|
spendType: type === 'p2trMusig2' ? 'scriptPath' : undefined,
|
|
13
49
|
fixtureType: 'psbtFullSigned',
|
|
14
50
|
});
|
|
15
51
|
});
|
|
16
|
-
const parser =
|
|
52
|
+
const parser = getParser();
|
|
17
53
|
function parse(label, script) {
|
|
18
54
|
return parser.node(label, undefined, [parser.parse(script)]);
|
|
19
55
|
}
|
|
@@ -27,12 +63,12 @@ function testParseScript(type) {
|
|
|
27
63
|
...(input.witnessScript ? [parse('witnessScript', input.witnessScript)] : []),
|
|
28
64
|
];
|
|
29
65
|
});
|
|
30
|
-
const root =
|
|
31
|
-
const formatted = fixtures_1.formatTreeNoColor(root, { showAll: true });
|
|
32
|
-
assert.strictEqual(formatted, await fixtures_1.getFixtureString(`test/fixtures/formatScript/${type}.txt`, formatted));
|
|
66
|
+
const root = getParser().node('inputScripts', undefined, nodes);
|
|
67
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)(root, { showAll: true });
|
|
68
|
+
assert.strictEqual(formatted, await (0, fixtures_1.getFixtureString)(`test/fixtures/formatScript/${type}.txt`, formatted));
|
|
33
69
|
});
|
|
34
70
|
}
|
|
35
71
|
utxolib.bitgo.outputScripts.scriptTypes2Of3.forEach((scriptType) => {
|
|
36
72
|
testParseScript(scriptType);
|
|
37
73
|
});
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTY3JpcHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L3BhcnNlU2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDhEQUFnRDtBQUdoRCxzREFBbUQ7QUFFbkQseUNBQTZHO0FBRTdHLFNBQVMsU0FBUztJQUNoQixPQUFPLElBQUksMkJBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLElBQWdEO0lBQ3ZFLElBQUksRUFBaUIsQ0FBQztJQUN0QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSztRQUMvQixFQUFFLEdBQUcsTUFBTSxJQUFBLHNDQUEyQixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFO1lBQzNGLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFNBQVMsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0QsV0FBVyxFQUFFLGdCQUFnQjtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRTNCLFNBQVMsS0FBSyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUUsS0FBSztRQUM5QixJQUFJLEVBQUUsQ0FBQyxXQUFXLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pELE9BQU87Z0JBQ0wsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDOUUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEUsTUFBTSxTQUFTLEdBQUcsSUFBQSw0QkFBaUIsRUFBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3RCxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUEsMkJBQWdCLEVBQUMsOEJBQThCLElBQUksTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO0lBQ2pFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyTm9kZSB9IGZyb20gJy4uL3NyYy9QYXJzZXInO1xuaW1wb3J0IHsgU2NyaXB0UGFyc2VyIH0gZnJvbSAnLi4vc3JjL1NjcmlwdFBhcnNlcic7XG5cbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nLCBnZXRUcmFuc2FjdGlvbldpdGhTcGVuZFR5cGUsIFBhcnNlZEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzJztcblxuZnVuY3Rpb24gZ2V0UGFyc2VyKCk6IFNjcmlwdFBhcnNlciB7XG4gIHJldHVybiBuZXcgU2NyaXB0UGFyc2VyKHsgbmV0d29yazogdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luIH0pO1xufVxuXG5mdW5jdGlvbiB0ZXN0UGFyc2VTY3JpcHQodHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzKSB7XG4gIGxldCB0eDogUGFyc2VkRml4dHVyZTtcbiAgYmVmb3JlKCdzZXR1cCB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICB0eCA9IGF3YWl0IGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZSh1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQsICd0ZXN0L2ZpeHR1cmVzL3BhcnNlL3BzYnQnLCB7XG4gICAgICBzY3JpcHRUeXBlOiB0eXBlLFxuICAgICAgc3BlbmRUeXBlOiB0eXBlID09PSAncDJ0ck11c2lnMicgPyAnc2NyaXB0UGF0aCcgOiB1bmRlZmluZWQsXG4gICAgICBmaXh0dXJlVHlwZTogJ3BzYnRGdWxsU2lnbmVkJyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgcGFyc2VyID0gZ2V0UGFyc2VyKCk7XG5cbiAgZnVuY3Rpb24gcGFyc2UobGFiZWw6IHN0cmluZywgc2NyaXB0OiBCdWZmZXIpOiBQYXJzZXJOb2RlIHtcbiAgICByZXR1cm4gcGFyc2VyLm5vZGUobGFiZWwsIHVuZGVmaW5lZCwgW3BhcnNlci5wYXJzZShzY3JpcHQpXSk7XG4gIH1cblxuICBpdChgcGFyc2Ugc2NyaXB0ICR7dHlwZX1gLCBhc3luYyBmdW5jdGlvbiAodGhpczogTW9jaGEuQ29udGV4dCkge1xuICAgIGlmICh0eC50cmFuc2FjdGlvbiBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5za2lwKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSB0eC50cmFuc2FjdGlvbi5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKGlucHV0LnJlZGVlbVNjcmlwdCA/IFtwYXJzZSgncmVkZWVtU2NyaXB0JywgaW5wdXQucmVkZWVtU2NyaXB0KV0gOiBbXSksXG4gICAgICAgIC4uLihpbnB1dC53aXRuZXNzU2NyaXB0ID8gW3BhcnNlKCd3aXRuZXNzU2NyaXB0JywgaW5wdXQud2l0bmVzc1NjcmlwdCldIDogW10pLFxuICAgICAgXTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvb3QgPSBnZXRQYXJzZXIoKS5ub2RlKCdpbnB1dFNjcmlwdHMnLCB1bmRlZmluZWQsIG5vZGVzKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFRyZWVOb0NvbG9yKHJvb3QsIHsgc2hvd0FsbDogdHJ1ZSB9KTtcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChmb3JtYXR0ZWQsIGF3YWl0IGdldEZpeHR1cmVTdHJpbmcoYHRlc3QvZml4dHVyZXMvZm9ybWF0U2NyaXB0LyR7dHlwZX0udHh0YCwgZm9ybWF0dGVkKSk7XG4gIH0pO1xufVxuXG51dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLmZvckVhY2goKHNjcmlwdFR5cGUpID0+IHtcbiAgdGVzdFBhcnNlU2NyaXB0KHNjcmlwdFR5cGUpO1xufSk7XG4iXX0=
|
|
@@ -1,10 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
6
|
-
const fixtures_1 = require("./fixtures");
|
|
39
|
+
const assert_1 = __importDefault(require("assert"));
|
|
40
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
41
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
7
42
|
const commands_1 = require("../src/commands");
|
|
43
|
+
const fixtures_1 = require("./fixtures");
|
|
8
44
|
function getArgs({ showAll }) {
|
|
9
45
|
return showAll ? ['--all'] : [];
|
|
10
46
|
}
|
|
@@ -24,17 +60,18 @@ function getParams() {
|
|
|
24
60
|
});
|
|
25
61
|
}
|
|
26
62
|
getParams().forEach(({ scriptType, spendType, fixtureType, showAll }) => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
})}`, function () {
|
|
63
|
+
const args = getArgs({ showAll });
|
|
64
|
+
describe(`parse ${fixtureType} ${scriptType} ${spendType ? spendType : 'default'} spend [args=${args}]`, function () {
|
|
30
65
|
function parse(tx, prevOutputs) {
|
|
31
|
-
return commands_1.getTxParser(
|
|
66
|
+
return (0, commands_1.getTxParser)((0, yargs_1.default)([])
|
|
67
|
+
.command(commands_1.cmdParseTx)
|
|
68
|
+
.parse([...getArgs({ showAll }), '--parseError=throw'])).parse(tx, {
|
|
32
69
|
prevOutputs,
|
|
33
70
|
});
|
|
34
71
|
}
|
|
35
72
|
let fixture;
|
|
36
73
|
before(async function () {
|
|
37
|
-
fixture = await fixtures_1.getTransactionWithSpendType(utxolib.networks.testnet, {
|
|
74
|
+
fixture = await (0, fixtures_1.getTransactionWithSpendType)(utxolib.networks.testnet, 'test/fixtures/parse/psbt', {
|
|
38
75
|
scriptType,
|
|
39
76
|
spendType,
|
|
40
77
|
fixtureType,
|
|
@@ -51,16 +88,16 @@ getParams().forEach(({ scriptType, spendType, fixtureType, showAll }) => {
|
|
|
51
88
|
if (usePrevOuts && !fixture.prevOutputs) {
|
|
52
89
|
this.skip();
|
|
53
90
|
}
|
|
54
|
-
const formatted = fixtures_1.formatTreeNoColor(parse(fixture.transaction, usePrevOuts ? fixture.prevOutputs : undefined), {
|
|
91
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)(parse(fixture.transaction, usePrevOuts ? fixture.prevOutputs : undefined), {
|
|
55
92
|
showAll,
|
|
56
93
|
});
|
|
57
94
|
const fixtureName = spendType ? `${scriptType}_${spendType}` : scriptType;
|
|
58
95
|
const filename = [fixtureName, fixtureType, showAll ? 'all' : '', usePrevOuts ? 'prevOuts' : '']
|
|
59
96
|
.filter((v) => v !== '')
|
|
60
97
|
.join('_');
|
|
61
|
-
|
|
98
|
+
assert_1.default.strictEqual(formatted, await (0, fixtures_1.getFixtureString)(`test/fixtures/formatTransaction/${filename}.txt`, formatted));
|
|
62
99
|
});
|
|
63
100
|
});
|
|
64
101
|
});
|
|
65
102
|
});
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvcGFyc2VUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUU1QixrREFBMEI7QUFFMUIsOERBQWdEO0FBSWhELDhDQUEwRDtBQUUxRCx5Q0FBNkc7QUFTN0csU0FBUyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQXdCO0lBQ2hELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsU0FBUztJQUNoQixPQUFRLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDbEgsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQWdCLEVBQUU7Z0JBQ3RGLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRSxDQUFDO29CQUNoQyxPQUFPO3dCQUNMLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTt3QkFDMUQsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO3FCQUM5RCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEUsQ0FBQyxD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QUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgKiBhcyBtb2NoYSBmcm9tICdtb2NoYSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyTm9kZSB9IGZyb20gJy4uL3NyYy9QYXJzZXInO1xuaW1wb3J0IHsgUGFyc2VyVHggfSBmcm9tICcuLi9zcmMvUGFyc2VyVHgnO1xuaW1wb3J0IHsgY21kUGFyc2VUeCwgZ2V0VHhQYXJzZXIgfSBmcm9tICcuLi9zcmMvY29tbWFuZHMnO1xuXG5pbXBvcnQgeyBmb3JtYXRUcmVlTm9Db2xvciwgZ2V0Rml4dHVyZVN0cmluZywgZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlLCBQYXJzZWRGaXh0dXJlIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5cbnR5cGUgVGVzdFBhcmFtcyA9IHtcbiAgc2NyaXB0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzO1xuICBzcGVuZFR5cGU6ICdrZXlQYXRoJyB8ICdzY3JpcHRQYXRoJyB8IHVuZGVmaW5lZDtcbiAgZml4dHVyZVR5cGU6ICdwc2J0VW5zaWduZWQnIHwgJ3BzYnRIYWxmU2lnbmVkJyB8ICdwc2J0RnVsbFNpZ25lZCcgfCAnbmV0d29ya0Z1bGxTaWduZWQnO1xuICBzaG93QWxsOiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gZ2V0QXJncyh7IHNob3dBbGwgfTogeyBzaG93QWxsOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBzaG93QWxsID8gWyctLWFsbCddIDogW107XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtcygpOiBUZXN0UGFyYW1zW10ge1xuICByZXR1cm4gKFsncHNidFVuc2lnbmVkJywgJ3BzYnRIYWxmU2lnbmVkJywgJ3BzYnRGdWxsU2lnbmVkJywgJ25ldHdvcmtGdWxsU2lnbmVkJ10gYXMgY29uc3QpLmZsYXRNYXAoKGZpeHR1cmVUeXBlKSA9PiB7XG4gICAgcmV0dXJuIFtmYWxzZSwgdHJ1ZV0uZmxhdE1hcCgoc2hvd0FsbCkgPT4ge1xuICAgICAgcmV0dXJuIHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMuZmxhdE1hcCgoc2NyaXB0VHlwZSk6IFRlc3RQYXJhbXNbXSA9PiB7XG4gICAgICAgIGlmIChzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBzY3JpcHRUeXBlLCBzcGVuZFR5cGU6ICdrZXlQYXRoJywgc2hvd0FsbCwgZml4dHVyZVR5cGUgfSxcbiAgICAgICAgICAgIHsgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiAnc2NyaXB0UGF0aCcsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3sgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiB1bmRlZmluZWQsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH1dO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5nZXRQYXJhbXMoKS5mb3JFYWNoKCh7IHNjcmlwdFR5cGUsIHNwZW5kVHlwZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgfSkgPT4ge1xuICBjb25zdCBhcmdzID0gZ2V0QXJncyh7IHNob3dBbGwgfSk7XG4gIGRlc2NyaWJlKGBwYXJzZSAke2ZpeHR1cmVUeXBlfSAke3NjcmlwdFR5cGV9ICR7c3BlbmRUeXBlID8gc3BlbmRUeXBlIDogJ2RlZmF1bHQnfSBzcGVuZCBbYXJncz0ke2FyZ3N9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBwYXJzZSh0eDogUGFyc2VyVHgsIHByZXZPdXRwdXRzPzogdXR4b2xpYi5UeE91dHB1dDxiaWdpbnQ+W10pOiBQYXJzZXJOb2RlIHtcbiAgICAgIHJldHVybiBnZXRUeFBhcnNlcihcbiAgICAgICAgeWFyZ3MoW10pXG4gICAgICAgICAgLmNvbW1hbmQoY21kUGFyc2VUeClcbiAgICAgICAgICAucGFyc2UoWy4uLmdldEFyZ3MoeyBzaG93QWxsIH0pLCAnLS1wYXJzZUVycm9yPXRocm93J10pIGFzIGFueVxuICAgICAgKS5wYXJzZSh0eCwge1xuICAgICAgICBwcmV2T3V0cHV0cyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBmaXh0dXJlOiBQYXJzZWRGaXh0dXJlO1xuICAgIGJlZm9yZShhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBmaXh0dXJlID0gYXdhaXQgZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlKHV0eG9saWIubmV0d29ya3MudGVzdG5ldCwgJ3Rlc3QvZml4dHVyZXMvcGFyc2UvcHNidCcsIHtcbiAgICAgICAgc2NyaXB0VHlwZSxcbiAgICAgICAgc3BlbmRUeXBlLFxuICAgICAgICBmaXh0dXJlVHlwZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoYHBhcnNlc2AsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBhcnNlKGZpeHR1cmUudHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKGZpeHR1cmUucHJldk91dHB1dHMpIHtcbiAgICAgICAgcGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgZml4dHVyZS5wcmV2T3V0cHV0cyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBbZmFsc2UsIHRydWVdLmZvckVhY2goKHVzZVByZXZPdXRzKSA9PiB7XG4gICAgICBpdChgZm9ybWF0cyBbdXNlUHJldk91dHM9JHt1c2VQcmV2T3V0c31dYCwgYXN5bmMgZnVuY3Rpb24gKHRoaXM6IG1vY2hhLkNvbnRleHQpIHtcbiAgICAgICAgaWYgKHVzZVByZXZPdXRzICYmICFmaXh0dXJlLnByZXZPdXRwdXRzKSB7XG4gICAgICAgICAgdGhpcy5za2lwKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VHJlZU5vQ29sb3IocGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgdXNlUHJldk91dHMgPyBmaXh0dXJlLnByZXZPdXRwdXRzIDogdW5kZWZpbmVkKSwge1xuICAgICAgICAgIHNob3dBbGwsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmaXh0dXJlTmFtZSA9IHNwZW5kVHlwZSA/IGAke3NjcmlwdFR5cGV9XyR7c3BlbmRUeXBlfWAgOiBzY3JpcHRUeXBlO1xuICAgICAgICBjb25zdCBmaWxlbmFtZSA9IFtmaXh0dXJlTmFtZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgPyAnYWxsJyA6ICcnLCB1c2VQcmV2T3V0cyA/ICdwcmV2T3V0cycgOiAnJ11cbiAgICAgICAgICAuZmlsdGVyKCh2KSA9PiB2ICE9PSAnJylcbiAgICAgICAgICAuam9pbignXycpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgICAgZm9ybWF0dGVkLFxuICAgICAgICAgIGF3YWl0IGdldEZpeHR1cmVTdHJpbmcoYHRlc3QvZml4dHVyZXMvZm9ybWF0VHJhbnNhY3Rpb24vJHtmaWxlbmFtZX0udHh0YCwgZm9ybWF0dGVkKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|