@bitgo-beta/utxo-bin 2.8.3-beta.31 → 2.8.3-beta.310
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 +63 -4
- package/dist/bin/index.js +10 -2
- package/dist/src/AddressParser.d.ts +1 -0
- package/dist/src/AddressParser.d.ts.map +1 -1
- package/dist/src/AddressParser.js +7 -1
- package/dist/src/InputParser.d.ts +44 -0
- package/dist/src/InputParser.d.ts.map +1 -0
- package/dist/src/InputParser.js +239 -0
- package/dist/src/OutputParser.d.ts +25 -0
- package/dist/src/OutputParser.d.ts.map +1 -0
- package/dist/src/OutputParser.js +65 -0
- package/dist/src/Parser.d.ts +7 -1
- package/dist/src/Parser.d.ts.map +1 -1
- package/dist/src/Parser.js +29 -2
- package/dist/src/ParserTx.d.ts +28 -0
- package/dist/src/ParserTx.d.ts.map +1 -0
- package/dist/src/ParserTx.js +94 -0
- package/dist/src/ScriptParser.d.ts +21 -0
- package/dist/src/ScriptParser.d.ts.map +1 -0
- package/dist/src/ScriptParser.js +77 -0
- package/dist/src/TxParser.d.ts +10 -6
- package/dist/src/TxParser.d.ts.map +1 -1
- package/dist/src/TxParser.js +25 -25
- package/dist/src/bip32.d.ts +5 -0
- package/dist/src/bip32.d.ts.map +1 -0
- package/dist/src/bip32.js +23 -0
- package/dist/src/commands.d.ts +51 -1
- package/dist/src/commands.d.ts.map +1 -1
- package/dist/src/commands.js +162 -23
- package/dist/src/fetch.d.ts +4 -3
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +15 -3
- package/dist/src/format.d.ts +1 -1
- package/dist/src/format.d.ts.map +1 -1
- package/dist/src/format.js +17 -7
- package/dist/src/generateAddress.d.ts +35 -0
- package/dist/src/generateAddress.d.ts.map +1 -0
- package/dist/src/generateAddress.js +108 -0
- package/dist/src/parseString.d.ts +5 -0
- package/dist/src/parseString.d.ts.map +1 -0
- package/dist/src/parseString.js +29 -0
- package/dist/src/parseUnknown.d.ts +5 -0
- package/dist/src/parseUnknown.d.ts.map +1 -0
- package/dist/src/parseUnknown.js +50 -0
- package/dist/test/bip32.d.ts +2 -0
- package/dist/test/bip32.d.ts.map +1 -0
- package/dist/test/bip32.js +21 -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 +14 -0
- package/dist/test/fixtures.d.ts +24 -0
- package/dist/test/fixtures.d.ts.map +1 -0
- package/dist/test/fixtures.js +95 -0
- package/dist/test/generateAddress.d.ts +2 -0
- package/dist/test/generateAddress.d.ts.map +1 -0
- package/dist/test/generateAddress.js +29 -0
- package/dist/test/parseAddress.d.ts +6 -0
- package/dist/test/parseAddress.d.ts.map +1 -0
- package/dist/test/parseAddress.js +80 -0
- package/dist/test/parseScript.d.ts +2 -0
- package/dist/test/parseScript.d.ts.map +1 -0
- package/dist/test/parseScript.js +38 -0
- package/dist/test/parseTransaction.d.ts +2 -0
- package/dist/test/parseTransaction.d.ts.map +1 -0
- package/dist/test/parseTransaction.js +66 -0
- package/dist/test/stringToBuffer.d.ts +2 -0
- package/dist/test/stringToBuffer.d.ts.map +1 -0
- package/dist/test/stringToBuffer.js +16 -0
- package/dist/tsconfig.tsbuildinfo +1 -4689
- package/package.json +8 -7
- package/dist/src/InputOutputParser.d.ts +0 -35
- package/dist/src/InputOutputParser.d.ts.map +0 -1
- package/dist/src/InputOutputParser.js +0 -196
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert = require("assert");
|
|
4
|
+
const generateAddress_1 = require("../src/generateAddress");
|
|
5
|
+
const bip32_util_1 = require("./bip32.util");
|
|
6
|
+
describe('generateAddresses', function () {
|
|
7
|
+
it('should generate addresses', function () {
|
|
8
|
+
const [userKey, backupKey, bitgoKey] = (0, bip32_util_1.getKeyTriple)('generateAddress').map((k) => k.neutered().toBase58());
|
|
9
|
+
const lines = [];
|
|
10
|
+
for (const l of (0, generateAddress_1.generateAddress)({
|
|
11
|
+
userKey,
|
|
12
|
+
backupKey,
|
|
13
|
+
bitgoKey,
|
|
14
|
+
index: (0, generateAddress_1.parseIndexRange)(['0-1']),
|
|
15
|
+
format: '%a',
|
|
16
|
+
chain: [0, 1],
|
|
17
|
+
})) {
|
|
18
|
+
lines.push((0, generateAddress_1.formatAddressWithFormatString)(l, '%a'));
|
|
19
|
+
}
|
|
20
|
+
assert.strictEqual(lines.length, 4);
|
|
21
|
+
assert.deepStrictEqual(lines, [
|
|
22
|
+
'38FHxcU7KY4E2nDEezEVcKWGvHy9717ehF',
|
|
23
|
+
'35Qg1UqVWSJdtF1ysfz9h3KRGdk9uH8iYx',
|
|
24
|
+
'3ARnshsLXE9QfJemQdoKL2kp6TRqGohLDz',
|
|
25
|
+
'3QxKW93NN8CQrKaNqkDsAXPyxPsrxfTYME',
|
|
26
|
+
]);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9nZW5lcmF0ZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMsNERBQXlHO0FBQ3pHLDZDQUE0QztBQUU1QyxRQUFRLENBQUMsbUJBQW1CLEVBQUU7SUFDNUIsRUFBRSxDQUFDLDJCQUEyQixFQUFFO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEseUJBQVksRUFBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0csTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBQSxpQ0FBZSxFQUFDO1lBQzlCLE9BQU87WUFDUCxTQUFTO1lBQ1QsUUFBUTtZQUNSLEtBQUssRUFBRSxJQUFBLGlDQUFlLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZCxDQUFDLEVBQUU7WUFDRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsK0NBQTZCLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsb0NBQW9DO1lBQ3BDLG9DQUFvQztZQUNwQyxvQ0FBb0M7WUFDcEMsb0NBQW9DO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGZvcm1hdEFkZHJlc3NXaXRoRm9ybWF0U3RyaW5nLCBnZW5lcmF0ZUFkZHJlc3MsIHBhcnNlSW5kZXhSYW5nZSB9IGZyb20gJy4uL3NyYy9nZW5lcmF0ZUFkZHJlc3MnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi9iaXAzMi51dGlsJztcblxuZGVzY3JpYmUoJ2dlbmVyYXRlQWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICBpdCgnc2hvdWxkIGdlbmVyYXRlIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBbdXNlcktleSwgYmFja3VwS2V5LCBiaXRnb0tleV0gPSBnZXRLZXlUcmlwbGUoJ2dlbmVyYXRlQWRkcmVzcycpLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgZm9yIChjb25zdCBsIG9mIGdlbmVyYXRlQWRkcmVzcyh7XG4gICAgICB1c2VyS2V5LFxuICAgICAgYmFja3VwS2V5LFxuICAgICAgYml0Z29LZXksXG4gICAgICBpbmRleDogcGFyc2VJbmRleFJhbmdlKFsnMC0xJ10pLFxuICAgICAgZm9ybWF0OiAnJWEnLFxuICAgICAgY2hhaW46IFswLCAxXSxcbiAgICB9KSkge1xuICAgICAgbGluZXMucHVzaChmb3JtYXRBZGRyZXNzV2l0aEZvcm1hdFN0cmluZyhsLCAnJWEnKSk7XG4gICAgfVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpbmVzLmxlbmd0aCwgNCk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChsaW5lcywgW1xuICAgICAgJzM4Rkh4Y1U3S1k0RTJuREVlekVWY0tXR3ZIeTk3MTdlaEYnLFxuICAgICAgJzM1UWcxVXFWV1NKZHRGMXlzZno5aDNLUkdkazl1SDhpWXgnLFxuICAgICAgJzNBUm5zaHNMWEU5UWZKZW1RZG9LTDJrcDZUUnFHb2hMRHonLFxuICAgICAgJzNReEtXOTNOTjhDUXJLYU5xa0RzQVhQeXhQc3J4ZlRZTUUnLFxuICAgIF0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
declare const scriptTypes: readonly ["p2sh", "p2shP2wsh", "p2wsh", "p2tr", "p2trMusig2", "p2pkh", "p2wkh"];
|
|
3
|
+
declare type ScriptType = (typeof scriptTypes)[number];
|
|
4
|
+
export declare function isSupportedDepositType(network: utxolib.Network, scriptType: ScriptType): boolean;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=parseAddress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAOhD,QAAA,MAAM,WAAW,iFAAqF,CAAC;AACvG,aAAK,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,CAUhG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSupportedDepositType = void 0;
|
|
4
|
+
const assert = require("assert");
|
|
5
|
+
const yargs = require("yargs");
|
|
6
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
7
|
+
const commands_1 = require("../src/commands");
|
|
8
|
+
const fixtures_1 = require("./fixtures");
|
|
9
|
+
const bip32_util_1 = require("./bip32.util");
|
|
10
|
+
const scriptTypesSingleSig = ['p2pkh', 'p2wkh'];
|
|
11
|
+
const scriptTypes = [...utxolib.bitgo.outputScripts.scriptTypes2Of3, ...scriptTypesSingleSig];
|
|
12
|
+
function isSupportedDepositType(network, scriptType) {
|
|
13
|
+
if (scriptType === 'p2pkh') {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (scriptType === 'p2wkh') {
|
|
17
|
+
return utxolib.supportsSegwit(network);
|
|
18
|
+
}
|
|
19
|
+
return utxolib.bitgo.outputScripts.isSupportedScriptType(network, scriptType);
|
|
20
|
+
}
|
|
21
|
+
exports.isSupportedDepositType = isSupportedDepositType;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param keys - Pubkeys to use for generating the address.
|
|
25
|
+
* If scriptType is single-sig, the first key will be used.
|
|
26
|
+
* @param scriptType
|
|
27
|
+
* @param network
|
|
28
|
+
* @return {Buffer} scriptPubKey
|
|
29
|
+
*/
|
|
30
|
+
function createScriptPubKey(keys, scriptType, network) {
|
|
31
|
+
const pubkeys = keys.map((k) => k.publicKey);
|
|
32
|
+
switch (scriptType) {
|
|
33
|
+
case 'p2sh':
|
|
34
|
+
case 'p2shP2wsh':
|
|
35
|
+
case 'p2wsh':
|
|
36
|
+
case 'p2tr':
|
|
37
|
+
case 'p2trMusig2':
|
|
38
|
+
return utxolib.bitgo.outputScripts.createOutputScript2of3(pubkeys, scriptType).scriptPubKey;
|
|
39
|
+
case 'p2pkh':
|
|
40
|
+
return utxolib.payments.p2pkh({ pubkey: keys[0].publicKey }).output;
|
|
41
|
+
case 'p2wkh':
|
|
42
|
+
return utxolib.payments.p2wpkh({ pubkey: keys[0].publicKey }).output;
|
|
43
|
+
default:
|
|
44
|
+
throw new Error(`unsupported output type ${scriptType}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function getAddresses(n) {
|
|
48
|
+
const keys = (0, bip32_util_1.getKeyTriple)('parseAddress');
|
|
49
|
+
return scriptTypes
|
|
50
|
+
.filter((t) => isSupportedDepositType(n, t))
|
|
51
|
+
.flatMap((t) => utxolib.addressFormat.addressFormats
|
|
52
|
+
.filter((format) => utxolib.addressFormat.isSupportedAddressFormat(format, n))
|
|
53
|
+
.map((format) => [
|
|
54
|
+
t,
|
|
55
|
+
format,
|
|
56
|
+
utxolib.addressFormat.fromOutputScriptWithFormat(createScriptPubKey(keys, t, n), format, n),
|
|
57
|
+
]));
|
|
58
|
+
}
|
|
59
|
+
function parse(address, args) {
|
|
60
|
+
return (0, commands_1.getAddressParser)(yargs.command(commands_1.cmdParseAddress).parseSync(args)).parse(address);
|
|
61
|
+
}
|
|
62
|
+
function testParseAddress(network, type, addressFormat, address, args, suffix) {
|
|
63
|
+
describe(`parse address ${address} with arguments ${args.join(' ')}`, function () {
|
|
64
|
+
it(`formats address`, async function () {
|
|
65
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)(parse(address, args), { showAll: true });
|
|
66
|
+
const addrNoColon = address.replace(':', '_');
|
|
67
|
+
const filename = [utxolib.getNetworkName(network), type, addressFormat, addrNoColon + suffix].join('_');
|
|
68
|
+
assert.strictEqual(await (0, fixtures_1.getFixtureString)(`test/fixtures/formatAddress/${filename}.txt`, formatted), formatted);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
utxolib.getNetworkList().forEach((n) => {
|
|
73
|
+
getAddresses(n).forEach(([type, addressFormat, address], i) => {
|
|
74
|
+
testParseAddress(n, type, addressFormat, address, [], '');
|
|
75
|
+
if ([utxolib.networks.bitcoin, utxolib.networks.bitcoincash, utxolib.networks.ecash].includes(n) && i === 0) {
|
|
76
|
+
testParseAddress(n, type, addressFormat, address, ['--all'], '.all');
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9wYXJzZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBQ2pDLCtCQUErQjtBQUMvQixnREFBZ0Q7QUFFaEQsOENBQW9FO0FBQ3BFLHlDQUFpRTtBQUNqRSw2Q0FBdUQ7QUFFdkQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVUsQ0FBQztBQUN6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsb0JBQW9CLENBQVUsQ0FBQztBQUd2RyxTQUFnQixzQkFBc0IsQ0FBQyxPQUF3QixFQUFFLFVBQXNCO0lBQ3JGLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRTtRQUMxQixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxVQUFVLEtBQUssT0FBTyxFQUFFO1FBQzFCLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN4QztJQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFWRCx3REFVQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGtCQUFrQixDQUFDLElBQWUsRUFBRSxVQUFzQixFQUFFLE9BQXdCO0lBQzNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU3QyxRQUFRLFVBQVUsRUFBRTtRQUNsQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFlBQVk7WUFD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Q0FBQyxFQUFFLEVBQUU7SUFDckMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1RCxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNHLGdCQUFnQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IGNtZFBhcnNlQWRkcmVzcywgZ2V0QWRkcmVzc1BhcnNlciB9IGZyb20gJy4uL3NyYy9jb21tYW5kcyc7XG5pbXBvcnQgeyBmb3JtYXRUcmVlTm9Db2xvciwgZ2V0Rml4dHVyZVN0cmluZyB9IGZyb20gJy4vZml4dHVyZXMnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlLCBLZXlUcmlwbGUgfSBmcm9tICcuL2JpcDMyLnV0aWwnO1xuXG5jb25zdCBzY3JpcHRUeXBlc1NpbmdsZVNpZyA9IFsncDJwa2gnLCAncDJ3a2gnXSBhcyBjb25zdDtcbmNvbnN0IHNjcmlwdFR5cGVzID0gWy4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsIC4uLnNjcmlwdFR5cGVzU2luZ2xlU2lnXSBhcyBjb25zdDtcbnR5cGUgU2NyaXB0VHlwZSA9ICh0eXBlb2Ygc2NyaXB0VHlwZXMpW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG5ldHdvcms6IHV0eG9saWIuTmV0d29yaywgc2NyaXB0VHlwZTogU2NyaXB0VHlwZSk6IGJvb2xlYW4ge1xuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AycGtoJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMndraCcpIHtcbiAgICByZXR1cm4gdXR4b2xpYi5zdXBwb3J0c1NlZ3dpdChuZXR3b3JrKTtcbiAgfVxuXG4gIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ga2V5cyAtIFB1YmtleXMgdG8gdXNlIGZvciBnZW5lcmF0aW5nIHRoZSBhZGRyZXNzLlxuICogICAgICAgICAgICAgICBJZiBzY3JpcHRUeXBlIGlzIHNpbmdsZS1zaWcsIHRoZSBmaXJzdCBrZXkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHNjcmlwdFB1YktleVxuICovXG5mdW5jdGlvbiBjcmVhdGVTY3JpcHRQdWJLZXkoa2V5czogS2V5VHJpcGxlLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCdWZmZXIge1xuICBjb25zdCBwdWJrZXlzID0ga2V5cy5tYXAoKGspID0+IGsucHVibGljS2V5KTtcblxuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICBjYXNlICdwMnRyJzpcbiAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzLCBzY3JpcHRUeXBlKS5zY3JpcHRQdWJLZXk7XG4gICAgY2FzZSAncDJwa2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJwa2goeyBwdWJrZXk6IGtleXNbMF0ucHVibGljS2V5IH0pLm91dHB1dCBhcyBCdWZmZXI7XG4gICAgY2FzZSAncDJ3a2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgcHVia2V5OiBrZXlzWzBdLnB1YmxpY0tleSB9KS5vdXRwdXQgYXMgQnVmZmVyO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzZXMobjogdXR4b2xpYi5OZXR3b3JrKTogW3R5cGU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZ11bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoJ3BhcnNlQWRkcmVzcycpO1xuICByZXR1cm4gc2NyaXB0VHlwZXNcbiAgICAuZmlsdGVyKCh0KSA9PiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG4sIHQpKVxuICAgIC5mbGF0TWFwKCh0KSA9PlxuICAgICAgdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmFkZHJlc3NGb3JtYXRzXG4gICAgICAgIC5maWx0ZXIoKGZvcm1hdCkgPT4gdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmb3JtYXQsIG4pKVxuICAgICAgICAubWFwKChmb3JtYXQpOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10gPT4gW1xuICAgICAgICAgIHQsXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC5mcm9tT3V0cHV0U2NyaXB0V2l0aEZvcm1hdChjcmVhdGVTY3JpcHRQdWJLZXkoa2V5cywgdCwgbiksIGZvcm1hdCwgbiksXG4gICAgICAgIF0pXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoYWRkcmVzczogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZ2V0QWRkcmVzc1BhcnNlcih5YXJncy5jb21tYW5kKGNtZFBhcnNlQWRkcmVzcykucGFyc2VTeW5jKGFyZ3MpKS5wYXJzZShhZGRyZXNzKTtcbn1cblxuZnVuY3Rpb24gdGVzdFBhcnNlQWRkcmVzcyhcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB0eXBlOiBzdHJpbmcsXG4gIGFkZHJlc3NGb3JtYXQ6IHN0cmluZyxcbiAgYWRkcmVzczogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgc3VmZml4OiBzdHJpbmdcbikge1xuICBkZXNjcmliZShgcGFyc2UgYWRkcmVzcyAke2FkZHJlc3N9IHdpdGggYXJndW1lbnRzICR7YXJncy5qb2luKCcgJyl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGl0KGBmb3JtYXRzIGFkZHJlc3NgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihwYXJzZShhZGRyZXNzLCBhcmdzKSwgeyBzaG93QWxsOiB0cnVlIH0pO1xuICAgICAgY29uc3QgYWRkck5vQ29sb24gPSBhZGRyZXNzLnJlcGxhY2UoJzonLCAnXycpO1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBbdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKSwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkck5vQ29sb24gKyBzdWZmaXhdLmpvaW4oJ18nKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhd2FpdCBnZXRGaXh0dXJlU3RyaW5nKGB0ZXN0L2ZpeHR1cmVzL2Zvcm1hdEFkZHJlc3MvJHtmaWxlbmFtZX0udHh0YCwgZm9ybWF0dGVkKSwgZm9ybWF0dGVkKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbnV0eG9saWIuZ2V0TmV0d29ya0xpc3QoKS5mb3JFYWNoKChuKSA9PiB7XG4gIGdldEFkZHJlc3NlcyhuKS5mb3JFYWNoKChbdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzc10sIGkpID0+IHtcbiAgICB0ZXN0UGFyc2VBZGRyZXNzKG4sIHR5cGUsIGFkZHJlc3NGb3JtYXQsIGFkZHJlc3MsIFtdLCAnJyk7XG4gICAgaWYgKFt1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sIHV0eG9saWIubmV0d29ya3MuYml0Y29pbmNhc2gsIHV0eG9saWIubmV0d29ya3MuZWNhc2hdLmluY2x1ZGVzKG4pICYmIGkgPT09IDApIHtcbiAgICAgIHRlc3RQYXJzZUFkZHJlc3MobiwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzcywgWyctLWFsbCddLCAnLmFsbCcpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseScript.d.ts","sourceRoot":"","sources":["../../test/parseScript.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
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");
|
|
6
|
+
const ScriptParser_1 = require("../src/ScriptParser");
|
|
7
|
+
function testParseScript(type) {
|
|
8
|
+
let tx;
|
|
9
|
+
before('setup transaction', async function () {
|
|
10
|
+
tx = await (0, fixtures_1.getTransactionWithSpendType)(utxolib.networks.testnet, {
|
|
11
|
+
scriptType: type,
|
|
12
|
+
spendType: type === 'p2trMusig2' ? 'scriptPath' : undefined,
|
|
13
|
+
fixtureType: 'psbtFullSigned',
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
const parser = new ScriptParser_1.ScriptParser();
|
|
17
|
+
function parse(label, script) {
|
|
18
|
+
return parser.node(label, undefined, [parser.parse(script)]);
|
|
19
|
+
}
|
|
20
|
+
it(`parse script ${type}`, async function () {
|
|
21
|
+
if (tx.transaction instanceof utxolib.bitgo.UtxoTransaction) {
|
|
22
|
+
return this.skip();
|
|
23
|
+
}
|
|
24
|
+
const nodes = tx.transaction.data.inputs.flatMap((input) => {
|
|
25
|
+
return [
|
|
26
|
+
...(input.redeemScript ? [parse('redeemScript', input.redeemScript)] : []),
|
|
27
|
+
...(input.witnessScript ? [parse('witnessScript', input.witnessScript)] : []),
|
|
28
|
+
];
|
|
29
|
+
});
|
|
30
|
+
const root = new ScriptParser_1.ScriptParser().node('inputScripts', undefined, nodes);
|
|
31
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)(root, { showAll: true });
|
|
32
|
+
assert.strictEqual(formatted, await (0, fixtures_1.getFixtureString)(`test/fixtures/formatScript/${type}.txt`, formatted));
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
utxolib.bitgo.outputScripts.scriptTypes2Of3.forEach((scriptType) => {
|
|
36
|
+
testParseScript(scriptType);
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTY3JpcHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L3BhcnNlU2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLGdEQUFnRDtBQUNoRCx5Q0FBNkc7QUFFN0csc0RBQW1EO0FBRW5ELFNBQVMsZUFBZSxDQUFDLElBQWdEO0lBQ3ZFLElBQUksRUFBaUIsQ0FBQztJQUN0QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSztRQUMvQixFQUFFLEdBQUcsTUFBTSxJQUFBLHNDQUEyQixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQy9ELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFNBQVMsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0QsV0FBVyxFQUFFLGdCQUFnQjtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxHQUFHLElBQUksMkJBQVksRUFBRSxDQUFDO0lBRWxDLFNBQVMsS0FBSyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUUsS0FBSztRQUM5QixJQUFJLEVBQUUsQ0FBQyxXQUFXLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDcEI7UUFFRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekQsT0FBTztnQkFDTCxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUM5RSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksR0FBRyxJQUFJLDJCQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV2RSxNQUFNLFNBQVMsR0FBRyxJQUFBLDRCQUFpQixFQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTdELE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBQSwyQkFBZ0IsRUFBQyw4QkFBOEIsSUFBSSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7SUFDakUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nLCBnZXRUcmFuc2FjdGlvbldpdGhTcGVuZFR5cGUsIFBhcnNlZEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IFBhcnNlck5vZGUgfSBmcm9tICcuLi9zcmMvUGFyc2VyJztcbmltcG9ydCB7IFNjcmlwdFBhcnNlciB9IGZyb20gJy4uL3NyYy9TY3JpcHRQYXJzZXInO1xuXG5mdW5jdGlvbiB0ZXN0UGFyc2VTY3JpcHQodHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzKSB7XG4gIGxldCB0eDogUGFyc2VkRml4dHVyZTtcbiAgYmVmb3JlKCdzZXR1cCB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICB0eCA9IGF3YWl0IGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZSh1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQsIHtcbiAgICAgIHNjcmlwdFR5cGU6IHR5cGUsXG4gICAgICBzcGVuZFR5cGU6IHR5cGUgPT09ICdwMnRyTXVzaWcyJyA/ICdzY3JpcHRQYXRoJyA6IHVuZGVmaW5lZCxcbiAgICAgIGZpeHR1cmVUeXBlOiAncHNidEZ1bGxTaWduZWQnLFxuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBwYXJzZXIgPSBuZXcgU2NyaXB0UGFyc2VyKCk7XG5cbiAgZnVuY3Rpb24gcGFyc2UobGFiZWw6IHN0cmluZywgc2NyaXB0OiBCdWZmZXIpOiBQYXJzZXJOb2RlIHtcbiAgICByZXR1cm4gcGFyc2VyLm5vZGUobGFiZWwsIHVuZGVmaW5lZCwgW3BhcnNlci5wYXJzZShzY3JpcHQpXSk7XG4gIH1cblxuICBpdChgcGFyc2Ugc2NyaXB0ICR7dHlwZX1gLCBhc3luYyBmdW5jdGlvbiAodGhpczogTW9jaGEuQ29udGV4dCkge1xuICAgIGlmICh0eC50cmFuc2FjdGlvbiBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5za2lwKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSB0eC50cmFuc2FjdGlvbi5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKGlucHV0LnJlZGVlbVNjcmlwdCA/IFtwYXJzZSgncmVkZWVtU2NyaXB0JywgaW5wdXQucmVkZWVtU2NyaXB0KV0gOiBbXSksXG4gICAgICAgIC4uLihpbnB1dC53aXRuZXNzU2NyaXB0ID8gW3BhcnNlKCd3aXRuZXNzU2NyaXB0JywgaW5wdXQud2l0bmVzc1NjcmlwdCldIDogW10pLFxuICAgICAgXTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvb3QgPSBuZXcgU2NyaXB0UGFyc2VyKCkubm9kZSgnaW5wdXRTY3JpcHRzJywgdW5kZWZpbmVkLCBub2Rlcyk7XG5cbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihyb290LCB7IHNob3dBbGw6IHRydWUgfSk7XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZm9ybWF0dGVkLCBhd2FpdCBnZXRGaXh0dXJlU3RyaW5nKGB0ZXN0L2ZpeHR1cmVzL2Zvcm1hdFNjcmlwdC8ke3R5cGV9LnR4dGAsIGZvcm1hdHRlZCkpO1xuICB9KTtcbn1cblxudXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5mb3JFYWNoKChzY3JpcHRUeXBlKSA9PiB7XG4gIHRlc3RQYXJzZVNjcmlwdChzY3JpcHRUeXBlKTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseTransaction.d.ts","sourceRoot":"","sources":["../../test/parseTransaction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const yargs = require("yargs");
|
|
4
|
+
const assert = require("assert");
|
|
5
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
6
|
+
const fixtures_1 = require("./fixtures");
|
|
7
|
+
const commands_1 = require("../src/commands");
|
|
8
|
+
function getArgs({ showAll }) {
|
|
9
|
+
return showAll ? ['--all'] : [];
|
|
10
|
+
}
|
|
11
|
+
function getParams() {
|
|
12
|
+
return ['psbtUnsigned', 'psbtHalfSigned', 'psbtFullSigned', 'networkFullSigned'].flatMap((fixtureType) => {
|
|
13
|
+
return [false, true].flatMap((showAll) => {
|
|
14
|
+
return utxolib.bitgo.outputScripts.scriptTypes2Of3.flatMap((scriptType) => {
|
|
15
|
+
if (scriptType === 'p2trMusig2') {
|
|
16
|
+
return [
|
|
17
|
+
{ scriptType, spendType: 'keyPath', showAll, fixtureType },
|
|
18
|
+
{ scriptType, spendType: 'scriptPath', showAll, fixtureType },
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
return [{ scriptType, spendType: undefined, showAll, fixtureType }];
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
getParams().forEach(({ scriptType, spendType, fixtureType, showAll }) => {
|
|
27
|
+
describe(`parse ${fixtureType} ${scriptType} ${spendType ? spendType : 'default'} spend [args=${getArgs({
|
|
28
|
+
showAll,
|
|
29
|
+
})}`, function () {
|
|
30
|
+
function parse(tx, prevOutputs) {
|
|
31
|
+
return (0, commands_1.getTxParser)(yargs.command(commands_1.cmdParseTx).parse([...getArgs({ showAll }), '--parseError=throw'])).parse(tx, {
|
|
32
|
+
prevOutputs,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
let fixture;
|
|
36
|
+
before(async function () {
|
|
37
|
+
fixture = await (0, fixtures_1.getTransactionWithSpendType)(utxolib.networks.testnet, {
|
|
38
|
+
scriptType,
|
|
39
|
+
spendType,
|
|
40
|
+
fixtureType,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
it(`parses`, function () {
|
|
44
|
+
parse(fixture.transaction);
|
|
45
|
+
if (fixture.prevOutputs) {
|
|
46
|
+
parse(fixture.transaction, fixture.prevOutputs);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
[false, true].forEach((usePrevOuts) => {
|
|
50
|
+
it(`formats [usePrevOuts=${usePrevOuts}]`, async function () {
|
|
51
|
+
if (usePrevOuts && !fixture.prevOutputs) {
|
|
52
|
+
this.skip();
|
|
53
|
+
}
|
|
54
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)(parse(fixture.transaction, usePrevOuts ? fixture.prevOutputs : undefined), {
|
|
55
|
+
showAll,
|
|
56
|
+
});
|
|
57
|
+
const fixtureName = spendType ? `${scriptType}_${spendType}` : scriptType;
|
|
58
|
+
const filename = [fixtureName, fixtureType, showAll ? 'all' : '', usePrevOuts ? 'prevOuts' : '']
|
|
59
|
+
.filter((v) => v !== '')
|
|
60
|
+
.join('_');
|
|
61
|
+
assert.strictEqual(formatted, await (0, fixtures_1.getFixtureString)(`test/fixtures/formatTransaction/${filename}.txt`, formatted));
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvcGFyc2VUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtCQUErQjtBQUMvQixpQ0FBaUM7QUFDakMsZ0RBQWdEO0FBQ2hELHlDQUE2RztBQUU3Ryw4Q0FBMEQ7QUFVMUQsU0FBUyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQXdCO0lBQ2hELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsU0FBUztJQUNoQixPQUFRLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDbEgsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQWdCLEVBQUU7Z0JBQ3RGLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtvQkFDL0IsT0FBTzt3QkFDTCxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7d0JBQzFELEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTtxQkFDOUQsQ0FBQztpQkFDSDtnQkFDRCxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO0lBQ3RFLFFBQVEsQ0FBQyxTQUFTLFdBQVcsSUFBSSxVQUFVLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsZ0JBQWdCLE9BQU8sQ0FBQztRQUN0RyxPQUFPO0tBQ1IsQ0FBQyxFQUFFLEVBQUU7UUFDSixTQUFTLEtBQUssQ0FBQyxFQUFZLEVBQUUsV0FBd0M7WUFDbkUsT0FBTyxJQUFBLHNCQUFXLEVBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQVEsQ0FBQyxDQUFDLEtBQUssQ0FDL0csRUFBRSxFQUNGO2dCQUNFLFdBQVc7YUFDWixDQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxPQUFzQixDQUFDO1FBQzNCLE1BQU0sQ0FBQyxLQUFLO1lBQ1YsT0FBTyxHQUFHLE1BQU0sSUFBQSxzQ0FBMkIsRUFBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDcEUsVUFBVTtnQkFDVixTQUFTO2dCQUNULFdBQVc7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDWCxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2pEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNwQyxFQUFFLENBQUMsd0JBQXdCLFdBQVcsR0FBRyxFQUFFLEtBQUs7Z0JBQzlDLElBQUksV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtvQkFDdkMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNiO2dCQUNELE1BQU0sU0FBUyxHQUFHLElBQUEsNEJBQWlCLEVBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDN0csT0FBTztpQkFDUixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUMxRSxNQUFNLFFBQVEsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUM3RixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7cUJBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNLENBQUMsV0FBVyxDQUNoQixTQUFTLEVBQ1QsTUFBTSxJQUFBLDJCQUFnQixFQUFDLG1DQUFtQyxRQUFRLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FDckYsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbW9jaGEgZnJvbSAnbW9jaGEnO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nLCBnZXRUcmFuc2FjdGlvbldpdGhTcGVuZFR5cGUsIFBhcnNlZEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IFBhcnNlck5vZGUgfSBmcm9tICcuLi9zcmMvUGFyc2VyJztcbmltcG9ydCB7IGNtZFBhcnNlVHgsIGdldFR4UGFyc2VyIH0gZnJvbSAnLi4vc3JjL2NvbW1hbmRzJztcbmltcG9ydCB7IFBhcnNlclR4IH0gZnJvbSAnLi4vc3JjL1BhcnNlclR4JztcblxudHlwZSBUZXN0UGFyYW1zID0ge1xuICBzY3JpcHRUeXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjM7XG4gIHNwZW5kVHlwZTogJ2tleVBhdGgnIHwgJ3NjcmlwdFBhdGgnIHwgdW5kZWZpbmVkO1xuICBmaXh0dXJlVHlwZTogJ3BzYnRVbnNpZ25lZCcgfCAncHNidEhhbGZTaWduZWQnIHwgJ3BzYnRGdWxsU2lnbmVkJyB8ICduZXR3b3JrRnVsbFNpZ25lZCc7XG4gIHNob3dBbGw6IGJvb2xlYW47XG59O1xuXG5mdW5jdGlvbiBnZXRBcmdzKHsgc2hvd0FsbCB9OiB7IHNob3dBbGw6IGJvb2xlYW4gfSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHNob3dBbGwgPyBbJy0tYWxsJ10gOiBbXTtcbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1zKCk6IFRlc3RQYXJhbXNbXSB7XG4gIHJldHVybiAoWydwc2J0VW5zaWduZWQnLCAncHNidEhhbGZTaWduZWQnLCAncHNidEZ1bGxTaWduZWQnLCAnbmV0d29ya0Z1bGxTaWduZWQnXSBhcyBjb25zdCkuZmxhdE1hcCgoZml4dHVyZVR5cGUpID0+IHtcbiAgICByZXR1cm4gW2ZhbHNlLCB0cnVlXS5mbGF0TWFwKChzaG93QWxsKSA9PiB7XG4gICAgICByZXR1cm4gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5mbGF0TWFwKChzY3JpcHRUeXBlKTogVGVzdFBhcmFtc1tdID0+IHtcbiAgICAgICAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJykge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IHNjcmlwdFR5cGUsIHNwZW5kVHlwZTogJ2tleVBhdGgnLCBzaG93QWxsLCBmaXh0dXJlVHlwZSB9LFxuICAgICAgICAgICAgeyBzY3JpcHRUeXBlLCBzcGVuZFR5cGU6ICdzY3JpcHRQYXRoJywgc2hvd0FsbCwgZml4dHVyZVR5cGUgfSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbeyBzY3JpcHRUeXBlLCBzcGVuZFR5cGU6IHVuZGVmaW5lZCwgc2hvd0FsbCwgZml4dHVyZVR5cGUgfV07XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmdldFBhcmFtcygpLmZvckVhY2goKHsgc2NyaXB0VHlwZSwgc3BlbmRUeXBlLCBmaXh0dXJlVHlwZSwgc2hvd0FsbCB9KSA9PiB7XG4gIGRlc2NyaWJlKGBwYXJzZSAke2ZpeHR1cmVUeXBlfSAke3NjcmlwdFR5cGV9ICR7c3BlbmRUeXBlID8gc3BlbmRUeXBlIDogJ2RlZmF1bHQnfSBzcGVuZCBbYXJncz0ke2dldEFyZ3Moe1xuICAgIHNob3dBbGwsXG4gIH0pfWAsIGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBwYXJzZSh0eDogUGFyc2VyVHgsIHByZXZPdXRwdXRzPzogdXR4b2xpYi5UeE91dHB1dDxiaWdpbnQ+W10pOiBQYXJzZXJOb2RlIHtcbiAgICAgIHJldHVybiBnZXRUeFBhcnNlcih5YXJncy5jb21tYW5kKGNtZFBhcnNlVHgpLnBhcnNlKFsuLi5nZXRBcmdzKHsgc2hvd0FsbCB9KSwgJy0tcGFyc2VFcnJvcj10aHJvdyddKSBhcyBhbnkpLnBhcnNlKFxuICAgICAgICB0eCxcbiAgICAgICAge1xuICAgICAgICAgIHByZXZPdXRwdXRzLFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBmaXh0dXJlOiBQYXJzZWRGaXh0dXJlO1xuICAgIGJlZm9yZShhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBmaXh0dXJlID0gYXdhaXQgZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlKHV0eG9saWIubmV0d29ya3MudGVzdG5ldCwge1xuICAgICAgICBzY3JpcHRUeXBlLFxuICAgICAgICBzcGVuZFR5cGUsXG4gICAgICAgIGZpeHR1cmVUeXBlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChgcGFyc2VzYCwgZnVuY3Rpb24gKCkge1xuICAgICAgcGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbik7XG4gICAgICBpZiAoZml4dHVyZS5wcmV2T3V0cHV0cykge1xuICAgICAgICBwYXJzZShmaXh0dXJlLnRyYW5zYWN0aW9uLCBmaXh0dXJlLnByZXZPdXRwdXRzKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIFtmYWxzZSwgdHJ1ZV0uZm9yRWFjaCgodXNlUHJldk91dHMpID0+IHtcbiAgICAgIGl0KGBmb3JtYXRzIFt1c2VQcmV2T3V0cz0ke3VzZVByZXZPdXRzfV1gLCBhc3luYyBmdW5jdGlvbiAodGhpczogbW9jaGEuQ29udGV4dCkge1xuICAgICAgICBpZiAodXNlUHJldk91dHMgJiYgIWZpeHR1cmUucHJldk91dHB1dHMpIHtcbiAgICAgICAgICB0aGlzLnNraXAoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihwYXJzZShmaXh0dXJlLnRyYW5zYWN0aW9uLCB1c2VQcmV2T3V0cyA/IGZpeHR1cmUucHJldk91dHB1dHMgOiB1bmRlZmluZWQpLCB7XG4gICAgICAgICAgc2hvd0FsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZpeHR1cmVOYW1lID0gc3BlbmRUeXBlID8gYCR7c2NyaXB0VHlwZX1fJHtzcGVuZFR5cGV9YCA6IHNjcmlwdFR5cGU7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lID0gW2ZpeHR1cmVOYW1lLCBmaXh0dXJlVHlwZSwgc2hvd0FsbCA/ICdhbGwnIDogJycsIHVzZVByZXZPdXRzID8gJ3ByZXZPdXRzJyA6ICcnXVxuICAgICAgICAgIC5maWx0ZXIoKHYpID0+IHYgIT09ICcnKVxuICAgICAgICAgIC5qb2luKCdfJyk7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICBmb3JtYXR0ZWQsXG4gICAgICAgICAgYXdhaXQgZ2V0Rml4dHVyZVN0cmluZyhgdGVzdC9maXh0dXJlcy9mb3JtYXRUcmFuc2FjdGlvbi8ke2ZpbGVuYW1lfS50eHRgLCBmb3JtYXR0ZWQpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringToBuffer.d.ts","sourceRoot":"","sources":["../../test/stringToBuffer.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert = require("assert");
|
|
4
|
+
const parseString_1 = require("../src/parseString");
|
|
5
|
+
describe('stringToBuffer', function () {
|
|
6
|
+
const bytes = Buffer.alloc(32, 42);
|
|
7
|
+
it('converts hex and base64', function () {
|
|
8
|
+
for (const e of ['hex', 'base64']) {
|
|
9
|
+
const str = bytes.toString(e);
|
|
10
|
+
assert.deepStrictEqual((0, parseString_1.stringToBuffer)(str, ['hex', 'base64']), bytes);
|
|
11
|
+
const strNl = [str.slice(0, 4), str.slice(4)].join('\n');
|
|
12
|
+
assert.deepStrictEqual((0, parseString_1.stringToBuffer)(strNl, ['hex', 'base64']), bytes);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nVG9CdWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L3N0cmluZ1RvQnVmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBRWpDLG9EQUFvRDtBQUVwRCxRQUFRLENBQUMsZ0JBQWdCLEVBQUU7SUFDekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkMsRUFBRSxDQUFDLHlCQUF5QixFQUFFO1FBQzVCLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFxQixFQUFFO1lBQ3JELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLDRCQUFjLEVBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSw0QkFBYyxFQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBzdHJpbmdUb0J1ZmZlciB9IGZyb20gJy4uL3NyYy9wYXJzZVN0cmluZyc7XG5cbmRlc2NyaWJlKCdzdHJpbmdUb0J1ZmZlcicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgYnl0ZXMgPSBCdWZmZXIuYWxsb2MoMzIsIDQyKTtcbiAgaXQoJ2NvbnZlcnRzIGhleCBhbmQgYmFzZTY0JywgZnVuY3Rpb24gKCkge1xuICAgIGZvciAoY29uc3QgZSBvZiBbJ2hleCcsICdiYXNlNjQnXSBhcyBCdWZmZXJFbmNvZGluZ1tdKSB7XG4gICAgICBjb25zdCBzdHIgPSBieXRlcy50b1N0cmluZyhlKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc3RyaW5nVG9CdWZmZXIoc3RyLCBbJ2hleCcsICdiYXNlNjQnXSksIGJ5dGVzKTtcblxuICAgICAgY29uc3Qgc3RyTmwgPSBbc3RyLnNsaWNlKDAsIDQpLCBzdHIuc2xpY2UoNCldLmpvaW4oJ1xcbicpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdHJpbmdUb0J1ZmZlcihzdHJObCwgWydoZXgnLCAnYmFzZTY0J10pLCBieXRlcyk7XG4gICAgfVxuICB9KTtcbn0pO1xuIl19
|