@bitgo-beta/utxo-bin 2.8.3-beta.90 → 2.8.3-beta.901
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 +4 -4
- package/dist/bin/index.js +5 -3
- package/dist/src/AddressParser.d.ts +0 -1
- package/dist/src/AddressParser.d.ts.map +1 -1
- package/dist/src/AddressParser.js +13 -7
- package/dist/src/InputParser.d.ts +1 -2
- package/dist/src/InputParser.d.ts.map +1 -1
- package/dist/src/InputParser.js +32 -22
- package/dist/src/OutputParser.d.ts +3 -3
- package/dist/src/OutputParser.d.ts.map +1 -1
- package/dist/src/OutputParser.js +18 -5
- 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 +7 -8
- package/dist/src/ScriptParser.d.ts +8 -6
- package/dist/src/ScriptParser.d.ts.map +1 -1
- package/dist/src/ScriptParser.js +27 -8
- package/dist/src/TxParser.d.ts +3 -2
- package/dist/src/TxParser.d.ts.map +1 -1
- package/dist/src/TxParser.js +10 -10
- 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 +75 -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 +120 -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 +28 -0
- 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/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 +45 -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 +120 -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 +67 -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 +89 -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 +24 -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 +66 -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 +27 -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 +6 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +22 -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 +42 -9
- package/dist/src/format.d.ts.map +1 -1
- package/dist/src/format.js +4 -6
- package/dist/src/generateAddress.d.ts +24 -9
- package/dist/src/generateAddress.d.ts.map +1 -1
- package/dist/src/generateAddress.js +60 -23
- package/dist/src/hollowSegwitSpend.d.ts +1 -1
- package/dist/src/hollowSegwitSpend.d.ts.map +1 -1
- package/dist/src/hollowSegwitSpend.js +3 -4
- package/dist/src/parseUnknown.js +4 -5
- package/dist/test/args/stringToBuffer.d.ts.map +1 -0
- package/dist/test/args/stringToBuffer.js +16 -0
- package/dist/test/bip32.d.ts +2 -0
- package/dist/test/bip32.d.ts.map +1 -0
- package/dist/test/bip32.js +22 -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 +13 -0
- package/dist/test/cmdPsbt.d.ts +2 -0
- package/dist/test/cmdPsbt.d.ts.map +1 -0
- package/dist/test/cmdPsbt.js +102 -0
- package/dist/test/fixtures.d.ts +4 -4
- package/dist/test/fixtures.d.ts.map +1 -1
- package/dist/test/fixtures.js +11 -12
- package/dist/test/generateAddress.js +29 -12
- package/dist/test/parseAddress.d.ts +1 -5
- package/dist/test/parseAddress.d.ts.map +1 -1
- package/dist/test/parseAddress.js +15 -19
- package/dist/test/parseScript.js +10 -7
- package/dist/test/parseTransaction.js +11 -10
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -7
- 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
|
@@ -0,0 +1,21 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./parseString"), exports);
|
|
18
|
+
__exportStar(require("./walletKeys"), exports);
|
|
19
|
+
__exportStar(require("./parseNetwork"), exports);
|
|
20
|
+
__exportStar(require("./format"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLCtDQUE2QjtBQUM3QixpREFBK0I7QUFDL0IsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYXJzZVN0cmluZyc7XG5leHBvcnQgKiBmcm9tICcuL3dhbGxldEtleXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJzZU5ldHdvcmsnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtYXQnO1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
export declare const bitcoinRegtest: utxolib.Network;
|
|
3
|
+
export declare function getNetworkForName(name: string): utxolib.Network;
|
|
4
|
+
export declare function getNetworkName(network: utxolib.Network): string;
|
|
5
|
+
export declare function getNetworkList(): utxolib.Network[];
|
|
6
|
+
export declare function getNetwork(argv: {
|
|
7
|
+
network: string;
|
|
8
|
+
}): utxolib.Network;
|
|
9
|
+
type DemandOption<T> = T & {
|
|
10
|
+
demandOption: true;
|
|
11
|
+
};
|
|
12
|
+
type NetworkOption<TDefault> = {
|
|
13
|
+
type: 'string';
|
|
14
|
+
description: string;
|
|
15
|
+
default: TDefault;
|
|
16
|
+
coerce: (arg: string) => utxolib.Network;
|
|
17
|
+
};
|
|
18
|
+
export declare function getNetworkOptions(defaultValue?: string): {
|
|
19
|
+
network: NetworkOption<typeof defaultValue>;
|
|
20
|
+
};
|
|
21
|
+
export declare function getNetworkOptionsDemand(defaultValue?: string): {
|
|
22
|
+
network: DemandOption<NetworkOption<typeof defaultValue>>;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=parseNetwork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseNetwork.d.ts","sourceRoot":"","sources":["../../../src/args/parseNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,OAGpC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAS/D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAK/D;AA0BD,wBAAgB,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAIlD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAErE;AAED,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,YAAY,EAAE,IAAI,CAAA;CAAE,CAAC;AAElD,KAAK,aAAa,CAAC,QAAQ,IAAI;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG;IACxD,OAAO,EAAE,aAAa,CAAC,OAAO,YAAY,CAAC,CAAC;CAC7C,CASA;AAED,wBAAgB,uBAAuB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG;IAC9D,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;CAC3D,CAIA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bitcoinRegtest = void 0;
|
|
4
|
+
exports.getNetworkForName = getNetworkForName;
|
|
5
|
+
exports.getNetworkName = getNetworkName;
|
|
6
|
+
exports.getNetworkList = getNetworkList;
|
|
7
|
+
exports.getNetwork = getNetwork;
|
|
8
|
+
exports.getNetworkOptions = getNetworkOptions;
|
|
9
|
+
exports.getNetworkOptionsDemand = getNetworkOptionsDemand;
|
|
10
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
11
|
+
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
12
|
+
exports.bitcoinRegtest = {
|
|
13
|
+
...utxolib.networks.testnet,
|
|
14
|
+
bech32: 'bcrt',
|
|
15
|
+
};
|
|
16
|
+
function getNetworkForName(name) {
|
|
17
|
+
if (name === 'bitcoinRegtest') {
|
|
18
|
+
return exports.bitcoinRegtest;
|
|
19
|
+
}
|
|
20
|
+
const network = utxolib.networks[name];
|
|
21
|
+
if (!network) {
|
|
22
|
+
throw new Error(`invalid network ${name}`);
|
|
23
|
+
}
|
|
24
|
+
return network;
|
|
25
|
+
}
|
|
26
|
+
function getNetworkName(network) {
|
|
27
|
+
if (network === exports.bitcoinRegtest) {
|
|
28
|
+
return 'bitcoinRegtest';
|
|
29
|
+
}
|
|
30
|
+
return utxolib.getNetworkName(network);
|
|
31
|
+
}
|
|
32
|
+
const networkOrder = [
|
|
33
|
+
utxolib.networks.bitcoin,
|
|
34
|
+
utxolib.networks.bitcoincash,
|
|
35
|
+
utxolib.networks.bitcoingold,
|
|
36
|
+
utxolib.networks.bitcoinsv,
|
|
37
|
+
utxolib.networks.dash,
|
|
38
|
+
utxolib.networks.dogecoin,
|
|
39
|
+
utxolib.networks.ecash,
|
|
40
|
+
utxolib.networks.litecoin,
|
|
41
|
+
utxolib.networks.zcash,
|
|
42
|
+
];
|
|
43
|
+
function getNetworkOrderIndex(network) {
|
|
44
|
+
if (network === exports.bitcoinRegtest) {
|
|
45
|
+
network = utxolib.networks.bitcoin;
|
|
46
|
+
}
|
|
47
|
+
network = (0, utxo_lib_1.getMainnet)(network);
|
|
48
|
+
const index = networkOrder.indexOf(network);
|
|
49
|
+
if (index === -1) {
|
|
50
|
+
throw new Error(`unknown network ${network}`);
|
|
51
|
+
}
|
|
52
|
+
return index;
|
|
53
|
+
}
|
|
54
|
+
function getNetworkList() {
|
|
55
|
+
return [...utxolib.getNetworkList(), exports.bitcoinRegtest].sort((a, b) => getNetworkOrderIndex(a) - getNetworkOrderIndex(b) || getNetworkName(a).localeCompare(getNetworkName(b)));
|
|
56
|
+
}
|
|
57
|
+
function getNetwork(argv) {
|
|
58
|
+
return getNetworkForName(argv.network);
|
|
59
|
+
}
|
|
60
|
+
function getNetworkOptions(defaultValue) {
|
|
61
|
+
return {
|
|
62
|
+
network: {
|
|
63
|
+
type: 'string',
|
|
64
|
+
description: 'network name',
|
|
65
|
+
default: defaultValue,
|
|
66
|
+
coerce: getNetworkForName,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function getNetworkOptionsDemand(defaultValue) {
|
|
71
|
+
return {
|
|
72
|
+
network: { ...getNetworkOptions(defaultValue).network, demandOption: true },
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyZ3MvcGFyc2VOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLDhDQVNDO0FBRUQsd0NBS0M7QUEwQkQsd0NBSUM7QUFFRCxnQ0FFQztBQVdELDhDQVdDO0FBRUQsMERBTUM7QUF4RkQsZ0RBQWdEO0FBQ2hELG1EQUFrRDtBQUVyQyxRQUFBLGNBQWMsR0FBb0I7SUFDN0MsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDM0IsTUFBTSxFQUFFLE1BQU07Q0FDZixDQUFDO0FBRUYsU0FBZ0IsaUJBQWlCLENBQUMsSUFBWTtJQUM1QyxJQUFJLElBQUksS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sc0JBQWMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUEyQixDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUF3QjtJQUNyRCxJQUFJLE9BQU8sS0FBSyxzQkFBYyxFQUFFLENBQUM7UUFDL0IsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBVyxDQUFDO0FBQ25ELENBQUM7QUFFRCxNQUFNLFlBQVksR0FBRztJQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXO0lBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO0lBQ3JCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUN6QixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUs7SUFDdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztDQUN2QixDQUFDO0FBRUYsU0FBUyxvQkFBb0IsQ0FBQyxPQUF3QjtJQUNwRCxJQUFJLE9BQU8sS0FBSyxzQkFBYyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLEdBQUcsSUFBQSxxQkFBVSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxzQkFBYyxDQUFDLENBQUMsSUFBSSxDQUN2RCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2xILENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQXlCO0lBQ2xELE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFXRCxTQUFnQixpQkFBaUIsQ0FBQyxZQUFxQjtJQUdyRCxPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFFBQVE7WUFDZCxXQUFXLEVBQUUsY0FBYztZQUMzQixPQUFPLEVBQUUsWUFBWTtZQUNyQixNQUFNLEVBQUUsaUJBQWlCO1NBQzFCO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxZQUFxQjtJQUczRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRTtLQUM1RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgZ2V0TWFpbm5ldCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IGNvbnN0IGJpdGNvaW5SZWd0ZXN0OiB1dHhvbGliLk5ldHdvcmsgPSB7XG4gIC4uLnV0eG9saWIubmV0d29ya3MudGVzdG5ldCxcbiAgYmVjaDMyOiAnYmNydCcsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya0Zvck5hbWUobmFtZTogc3RyaW5nKTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgaWYgKG5hbWUgPT09ICdiaXRjb2luUmVndGVzdCcpIHtcbiAgICByZXR1cm4gYml0Y29pblJlZ3Rlc3Q7XG4gIH1cbiAgY29uc3QgbmV0d29yayA9IHV0eG9saWIubmV0d29ya3NbbmFtZSBhcyB1dHhvbGliLk5ldHdvcmtOYW1lXTtcbiAgaWYgKCFuZXR3b3JrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmsgJHtuYW1lfWApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya05hbWUobmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogc3RyaW5nIHtcbiAgaWYgKG5ldHdvcmsgPT09IGJpdGNvaW5SZWd0ZXN0KSB7XG4gICAgcmV0dXJuICdiaXRjb2luUmVndGVzdCc7XG4gIH1cbiAgcmV0dXJuIHV0eG9saWIuZ2V0TmV0d29ya05hbWUobmV0d29yaykgYXMgc3RyaW5nO1xufVxuXG5jb25zdCBuZXR3b3JrT3JkZXIgPSBbXG4gIHV0eG9saWIubmV0d29ya3MuYml0Y29pbixcbiAgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luY2FzaCxcbiAgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luZ29sZCxcbiAgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luc3YsXG4gIHV0eG9saWIubmV0d29ya3MuZGFzaCxcbiAgdXR4b2xpYi5uZXR3b3Jrcy5kb2dlY29pbixcbiAgdXR4b2xpYi5uZXR3b3Jrcy5lY2FzaCxcbiAgdXR4b2xpYi5uZXR3b3Jrcy5saXRlY29pbixcbiAgdXR4b2xpYi5uZXR3b3Jrcy56Y2FzaCxcbl07XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtPcmRlckluZGV4KG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IG51bWJlciB7XG4gIGlmIChuZXR3b3JrID09PSBiaXRjb2luUmVndGVzdCkge1xuICAgIG5ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW47XG4gIH1cbiAgbmV0d29yayA9IGdldE1haW5uZXQobmV0d29yayk7XG4gIGNvbnN0IGluZGV4ID0gbmV0d29ya09yZGVyLmluZGV4T2YobmV0d29yayk7XG4gIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gbmV0d29yayAke25ldHdvcmt9YCk7XG4gIH1cbiAgcmV0dXJuIGluZGV4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya0xpc3QoKTogdXR4b2xpYi5OZXR3b3JrW10ge1xuICByZXR1cm4gWy4uLnV0eG9saWIuZ2V0TmV0d29ya0xpc3QoKSwgYml0Y29pblJlZ3Rlc3RdLnNvcnQoXG4gICAgKGEsIGIpID0+IGdldE5ldHdvcmtPcmRlckluZGV4KGEpIC0gZ2V0TmV0d29ya09yZGVySW5kZXgoYikgfHwgZ2V0TmV0d29ya05hbWUoYSkubG9jYWxlQ29tcGFyZShnZXROZXR3b3JrTmFtZShiKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmsoYXJndjogeyBuZXR3b3JrOiBzdHJpbmcgfSk6IHV0eG9saWIuTmV0d29yayB7XG4gIHJldHVybiBnZXROZXR3b3JrRm9yTmFtZShhcmd2Lm5ldHdvcmspO1xufVxuXG50eXBlIERlbWFuZE9wdGlvbjxUPiA9IFQgJiB7IGRlbWFuZE9wdGlvbjogdHJ1ZSB9O1xuXG50eXBlIE5ldHdvcmtPcHRpb248VERlZmF1bHQ+ID0ge1xuICB0eXBlOiAnc3RyaW5nJztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZGVmYXVsdDogVERlZmF1bHQ7XG4gIGNvZXJjZTogKGFyZzogc3RyaW5nKSA9PiB1dHhvbGliLk5ldHdvcms7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya09wdGlvbnMoZGVmYXVsdFZhbHVlPzogc3RyaW5nKToge1xuICBuZXR3b3JrOiBOZXR3b3JrT3B0aW9uPHR5cGVvZiBkZWZhdWx0VmFsdWU+O1xufSB7XG4gIHJldHVybiB7XG4gICAgbmV0d29yazoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZXNjcmlwdGlvbjogJ25ldHdvcmsgbmFtZScsXG4gICAgICBkZWZhdWx0OiBkZWZhdWx0VmFsdWUsXG4gICAgICBjb2VyY2U6IGdldE5ldHdvcmtGb3JOYW1lLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrT3B0aW9uc0RlbWFuZChkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiB7XG4gIG5ldHdvcms6IERlbWFuZE9wdGlvbjxOZXR3b3JrT3B0aW9uPHR5cGVvZiBkZWZhdWx0VmFsdWU+Pjtcbn0ge1xuICByZXR1cm4ge1xuICAgIG5ldHdvcms6IHsgLi4uZ2V0TmV0d29ya09wdGlvbnMoZGVmYXVsdFZhbHVlKS5uZXR3b3JrLCBkZW1hbmRPcHRpb246IHRydWUgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
type Format = 'hex' | 'base64';
|
|
2
|
+
export declare function stringToBuffer(data: string, format: Format | Format[]): Buffer;
|
|
3
|
+
export declare const readStringOptions: {
|
|
4
|
+
readonly path: {
|
|
5
|
+
readonly type: "string";
|
|
6
|
+
readonly nargs: 1;
|
|
7
|
+
readonly default: "";
|
|
8
|
+
};
|
|
9
|
+
readonly stdin: {
|
|
10
|
+
readonly type: "boolean";
|
|
11
|
+
readonly default: false;
|
|
12
|
+
};
|
|
13
|
+
readonly data: {
|
|
14
|
+
readonly type: "string";
|
|
15
|
+
readonly description: "hex or base64";
|
|
16
|
+
readonly alias: "hex";
|
|
17
|
+
};
|
|
18
|
+
readonly clipboard: {
|
|
19
|
+
readonly type: "boolean";
|
|
20
|
+
readonly default: false;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export type ReadStringOptions = {
|
|
24
|
+
clipboard?: boolean;
|
|
25
|
+
path?: string;
|
|
26
|
+
data?: string;
|
|
27
|
+
stdin: boolean;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Reads from stdin until Ctrl-D is pressed.
|
|
31
|
+
*/
|
|
32
|
+
export declare function readStdin(): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* @param argv
|
|
35
|
+
* @param input - optional input data. If set, this function just ensures that nothing else is set.
|
|
36
|
+
* @return string from specified source
|
|
37
|
+
*/
|
|
38
|
+
export declare function argToString(argv: ReadStringOptions, input?: string): Promise<string | undefined>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=parseString.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseString.d.ts","sourceRoot":"","sources":["../../../src/args/parseString.ts"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC/B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAyB9E;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CASpB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAoCjD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoCtG"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readStringOptions = void 0;
|
|
4
|
+
exports.stringToBuffer = stringToBuffer;
|
|
5
|
+
exports.readStdin = readStdin;
|
|
6
|
+
exports.argToString = argToString;
|
|
7
|
+
const process = require("process");
|
|
8
|
+
const fs = require("fs");
|
|
9
|
+
const clipboardy_cjs_1 = require("clipboardy-cjs");
|
|
10
|
+
function stringToBuffer(data, format) {
|
|
11
|
+
if (typeof format !== 'string') {
|
|
12
|
+
for (const f of format) {
|
|
13
|
+
try {
|
|
14
|
+
return stringToBuffer(data, f);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
// ignore, try next
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
throw new Error(`could not parse data, formats: ${format}`);
|
|
21
|
+
}
|
|
22
|
+
// strip all whitespace
|
|
23
|
+
data = data.replace(/\s*/g, '');
|
|
24
|
+
if (format === 'hex') {
|
|
25
|
+
data = data.toLowerCase();
|
|
26
|
+
}
|
|
27
|
+
const buf = Buffer.from(data, format);
|
|
28
|
+
// make sure there were no decoding errors
|
|
29
|
+
if (buf.toString(format) !== data) {
|
|
30
|
+
throw new Error(`invalid ${format}`);
|
|
31
|
+
}
|
|
32
|
+
return buf;
|
|
33
|
+
}
|
|
34
|
+
exports.readStringOptions = {
|
|
35
|
+
path: { type: 'string', nargs: 1, default: '' },
|
|
36
|
+
stdin: { type: 'boolean', default: false },
|
|
37
|
+
data: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'hex or base64',
|
|
40
|
+
alias: 'hex',
|
|
41
|
+
},
|
|
42
|
+
clipboard: { type: 'boolean', default: false },
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Reads from stdin until Ctrl-D is pressed.
|
|
46
|
+
*/
|
|
47
|
+
async function readStdin() {
|
|
48
|
+
/*
|
|
49
|
+
* High-performance implementation of reading from stdin.
|
|
50
|
+
* Standard readline is extremely slow for long lines.
|
|
51
|
+
*/
|
|
52
|
+
return new Promise((resolve, reject) => {
|
|
53
|
+
// Using readline is not an option because it is extremely slow for long lines.
|
|
54
|
+
// By enabling raw mode, we can read more than 4096 bytes, but it requires manual Ctrl-C/Ctrl-D handling
|
|
55
|
+
if (!process.stdin.setRawMode) {
|
|
56
|
+
throw new Error('stdin is not a tty');
|
|
57
|
+
}
|
|
58
|
+
process.stdin.setRawMode(true);
|
|
59
|
+
const buf = [];
|
|
60
|
+
process.stdin.on('data', (chunk) => {
|
|
61
|
+
if (chunk[0] === 0x03) {
|
|
62
|
+
// Ctrl-C
|
|
63
|
+
process.exit(130);
|
|
64
|
+
}
|
|
65
|
+
if (chunk[0] === 0x04) {
|
|
66
|
+
// Ctrl-D
|
|
67
|
+
process.stdin.emit('end');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
buf.push(chunk);
|
|
71
|
+
process.stdout.write(chunk);
|
|
72
|
+
});
|
|
73
|
+
process.stdin.on('end', () => {
|
|
74
|
+
resolve(Buffer.concat(buf).toString('utf8'));
|
|
75
|
+
});
|
|
76
|
+
process.stdin.on('error', (err) => {
|
|
77
|
+
reject(err);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @param argv
|
|
83
|
+
* @param input - optional input data. If set, this function just ensures that nothing else is set.
|
|
84
|
+
* @return string from specified source
|
|
85
|
+
*/
|
|
86
|
+
async function argToString(argv, input) {
|
|
87
|
+
if (argv.stdin || argv.path === '-') {
|
|
88
|
+
if (input) {
|
|
89
|
+
throw new Error(`conflicting arguments`);
|
|
90
|
+
}
|
|
91
|
+
console.log('Reading from stdin. Please paste hex-encoded transaction data.');
|
|
92
|
+
console.log('After inserting data, press Ctrl-D to finish. Press Ctrl-C to cancel.');
|
|
93
|
+
if (process.stdin.isTTY) {
|
|
94
|
+
input = await readStdin();
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
input = await fs.promises.readFile('/dev/stdin', 'utf8');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (argv.clipboard) {
|
|
101
|
+
if (input) {
|
|
102
|
+
throw new Error(`conflicting arguments`);
|
|
103
|
+
}
|
|
104
|
+
input = await clipboardy_cjs_1.default.read();
|
|
105
|
+
}
|
|
106
|
+
if (argv.path) {
|
|
107
|
+
if (input) {
|
|
108
|
+
throw new Error(`conflicting arguments`);
|
|
109
|
+
}
|
|
110
|
+
input = (await fs.promises.readFile(argv.path, 'utf8')).toString();
|
|
111
|
+
}
|
|
112
|
+
if (argv.data) {
|
|
113
|
+
if (input) {
|
|
114
|
+
throw new Error(`conflicting arguments`);
|
|
115
|
+
}
|
|
116
|
+
input = argv.data;
|
|
117
|
+
}
|
|
118
|
+
return input;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJncy9wYXJzZVN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSx3Q0F5QkM7QUF1QkQsOEJBb0NDO0FBT0Qsa0NBb0NDO0FBcklELG1DQUFtQztBQUNuQyx5QkFBeUI7QUFFekIsbURBQXdDO0FBR3hDLFNBQWdCLGNBQWMsQ0FBQyxJQUFZLEVBQUUsTUFBeUI7SUFDcEUsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMvQixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQztnQkFDSCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsbUJBQW1CO1lBQ3JCLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVoQyxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0QywwQ0FBMEM7SUFDMUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFWSxRQUFBLGlCQUFpQixHQUFHO0lBQy9CLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO0lBQy9DLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtJQUMxQyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSxlQUFlO1FBQzVCLEtBQUssRUFBRSxLQUFLO0tBQ2I7SUFDRCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7Q0FDdEMsQ0FBQztBQVNYOztHQUVHO0FBQ0ksS0FBSyxVQUFVLFNBQVM7SUFDN0I7OztPQUdHO0lBQ0gsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQywrRUFBK0U7UUFDL0Usd0dBQXdHO1FBQ3hHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN0QixTQUFTO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN0QixTQUFTO2dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixPQUFPO1lBQ1QsQ0FBQztZQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLFdBQVcsQ0FBQyxJQUF1QixFQUFFLEtBQWM7SUFDdkUsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDcEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUVBQXVFLENBQUMsQ0FBQztRQUNyRixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsS0FBSyxHQUFHLE1BQU0sU0FBUyxFQUFFLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxLQUFLLEdBQUcsTUFBTSx3QkFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwcm9jZXNzIGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuXG5pbXBvcnQgY2xpcGJvYXJkeSBmcm9tICdjbGlwYm9hcmR5LWNqcyc7XG5cbnR5cGUgRm9ybWF0ID0gJ2hleCcgfCAnYmFzZTY0JztcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb0J1ZmZlcihkYXRhOiBzdHJpbmcsIGZvcm1hdDogRm9ybWF0IHwgRm9ybWF0W10pOiBCdWZmZXIge1xuICBpZiAodHlwZW9mIGZvcm1hdCAhPT0gJ3N0cmluZycpIHtcbiAgICBmb3IgKGNvbnN0IGYgb2YgZm9ybWF0KSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gc3RyaW5nVG9CdWZmZXIoZGF0YSwgZik7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gaWdub3JlLCB0cnkgbmV4dFxuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBwYXJzZSBkYXRhLCBmb3JtYXRzOiAke2Zvcm1hdH1gKTtcbiAgfVxuXG4gIC8vIHN0cmlwIGFsbCB3aGl0ZXNwYWNlXG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xccyovZywgJycpO1xuXG4gIGlmIChmb3JtYXQgPT09ICdoZXgnKSB7XG4gICAgZGF0YSA9IGRhdGEudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKGRhdGEsIGZvcm1hdCk7XG4gIC8vIG1ha2Ugc3VyZSB0aGVyZSB3ZXJlIG5vIGRlY29kaW5nIGVycm9yc1xuICBpZiAoYnVmLnRvU3RyaW5nKGZvcm1hdCkgIT09IGRhdGEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgJHtmb3JtYXR9YCk7XG4gIH1cbiAgcmV0dXJuIGJ1Zjtcbn1cblxuZXhwb3J0IGNvbnN0IHJlYWRTdHJpbmdPcHRpb25zID0ge1xuICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCBuYXJnczogMSwgZGVmYXVsdDogJycgfSxcbiAgc3RkaW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9LFxuICBkYXRhOiB7XG4gICAgdHlwZTogJ3N0cmluZycsXG4gICAgZGVzY3JpcHRpb246ICdoZXggb3IgYmFzZTY0JyxcbiAgICBhbGlhczogJ2hleCcsXG4gIH0sXG4gIGNsaXBib2FyZDogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBSZWFkU3RyaW5nT3B0aW9ucyA9IHtcbiAgY2xpcGJvYXJkPzogYm9vbGVhbjtcbiAgcGF0aD86IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbiAgc3RkaW46IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIFJlYWRzIGZyb20gc3RkaW4gdW50aWwgQ3RybC1EIGlzIHByZXNzZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkU3RkaW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgLypcbiAgICogSGlnaC1wZXJmb3JtYW5jZSBpbXBsZW1lbnRhdGlvbiBvZiByZWFkaW5nIGZyb20gc3RkaW4uXG4gICAqIFN0YW5kYXJkIHJlYWRsaW5lIGlzIGV4dHJlbWVseSBzbG93IGZvciBsb25nIGxpbmVzLlxuICAgKi9cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAvLyBVc2luZyByZWFkbGluZSBpcyBub3QgYW4gb3B0aW9uIGJlY2F1c2UgaXQgaXMgZXh0cmVtZWx5IHNsb3cgZm9yIGxvbmcgbGluZXMuXG4gICAgLy8gQnkgZW5hYmxpbmcgcmF3IG1vZGUsIHdlIGNhbiByZWFkIG1vcmUgdGhhbiA0MDk2IGJ5dGVzLCBidXQgaXQgcmVxdWlyZXMgbWFudWFsIEN0cmwtQy9DdHJsLUQgaGFuZGxpbmdcbiAgICBpZiAoIXByb2Nlc3Muc3RkaW4uc2V0UmF3TW9kZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGRpbiBpcyBub3QgYSB0dHknKTtcbiAgICB9XG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKHRydWUpO1xuICAgIGNvbnN0IGJ1ZjogQnVmZmVyW10gPSBbXTtcblxuICAgIHByb2Nlc3Muc3RkaW4ub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICAgIGlmIChjaHVua1swXSA9PT0gMHgwMykge1xuICAgICAgICAvLyBDdHJsLUNcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEzMCk7XG4gICAgICB9XG4gICAgICBpZiAoY2h1bmtbMF0gPT09IDB4MDQpIHtcbiAgICAgICAgLy8gQ3RybC1EXG4gICAgICAgIHByb2Nlc3Muc3RkaW4uZW1pdCgnZW5kJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGJ1Zi5wdXNoKGNodW5rKTtcbiAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGNodW5rKTtcbiAgICB9KTtcblxuICAgIHByb2Nlc3Muc3RkaW4ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHJlc29sdmUoQnVmZmVyLmNvbmNhdChidWYpLnRvU3RyaW5nKCd1dGY4JykpO1xuICAgIH0pO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIGFyZ3ZcbiAqIEBwYXJhbSBpbnB1dCAtIG9wdGlvbmFsIGlucHV0IGRhdGEuIElmIHNldCwgdGhpcyBmdW5jdGlvbiBqdXN0IGVuc3VyZXMgdGhhdCBub3RoaW5nIGVsc2UgaXMgc2V0LlxuICogQHJldHVybiBzdHJpbmcgZnJvbSBzcGVjaWZpZWQgc291cmNlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcmdUb1N0cmluZyhhcmd2OiBSZWFkU3RyaW5nT3B0aW9ucywgaW5wdXQ/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBpZiAoYXJndi5zdGRpbiB8fCBhcmd2LnBhdGggPT09ICctJykge1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coJ1JlYWRpbmcgZnJvbSBzdGRpbi4gUGxlYXNlIHBhc3RlIGhleC1lbmNvZGVkIHRyYW5zYWN0aW9uIGRhdGEuJyk7XG4gICAgY29uc29sZS5sb2coJ0FmdGVyIGluc2VydGluZyBkYXRhLCBwcmVzcyBDdHJsLUQgdG8gZmluaXNoLiBQcmVzcyBDdHJsLUMgdG8gY2FuY2VsLicpO1xuICAgIGlmIChwcm9jZXNzLnN0ZGluLmlzVFRZKSB7XG4gICAgICBpbnB1dCA9IGF3YWl0IHJlYWRTdGRpbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dCA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKCcvZGV2L3N0ZGluJywgJ3V0ZjgnKTtcbiAgICB9XG4gIH1cblxuICBpZiAoYXJndi5jbGlwYm9hcmQpIHtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgfVxuICAgIGlucHV0ID0gYXdhaXQgY2xpcGJvYXJkeS5yZWFkKCk7XG4gIH1cblxuICBpZiAoYXJndi5wYXRoKSB7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbmZsaWN0aW5nIGFyZ3VtZW50c2ApO1xuICAgIH1cbiAgICBpbnB1dCA9IChhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShhcmd2LnBhdGgsICd1dGY4JykpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBpZiAoYXJndi5kYXRhKSB7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbmZsaWN0aW5nIGFyZ3VtZW50c2ApO1xuICAgIH1cbiAgICBpbnB1dCA9IGFyZ3YuZGF0YTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
export declare function isWalletKeyName(name: string): name is utxolib.bitgo.KeyName;
|
|
3
|
+
export declare const keyOptions: {
|
|
4
|
+
readonly userKey: {
|
|
5
|
+
readonly type: "string";
|
|
6
|
+
readonly demandOption: true;
|
|
7
|
+
};
|
|
8
|
+
readonly userKeyPrefix: {
|
|
9
|
+
readonly type: "string";
|
|
10
|
+
readonly default: "0/0";
|
|
11
|
+
};
|
|
12
|
+
readonly backupKey: {
|
|
13
|
+
readonly type: "string";
|
|
14
|
+
readonly demandOption: true;
|
|
15
|
+
};
|
|
16
|
+
readonly backupKeyPrefix: {
|
|
17
|
+
readonly type: "string";
|
|
18
|
+
readonly default: "0/0";
|
|
19
|
+
};
|
|
20
|
+
readonly bitgoKey: {
|
|
21
|
+
readonly type: "string";
|
|
22
|
+
readonly demandOption: true;
|
|
23
|
+
};
|
|
24
|
+
readonly bitgoKeyPrefix: {
|
|
25
|
+
readonly type: "string";
|
|
26
|
+
readonly default: "0/0";
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export type KeyOptions = {
|
|
30
|
+
userKey: string;
|
|
31
|
+
userKeyPrefix?: string;
|
|
32
|
+
backupKey: string;
|
|
33
|
+
backupKeyPrefix?: string;
|
|
34
|
+
bitgoKey: string;
|
|
35
|
+
bitgoKeyPrefix?: string;
|
|
36
|
+
};
|
|
37
|
+
export declare function getRootWalletKeys(argv: KeyOptions): utxolib.bitgo.RootWalletKeys;
|
|
38
|
+
//# sourceMappingURL=walletKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletKeys.d.ts","sourceRoot":"","sources":["../../../src/args/walletKeys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAE3E;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAQhF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.keyOptions = void 0;
|
|
4
|
+
exports.isWalletKeyName = isWalletKeyName;
|
|
5
|
+
exports.getRootWalletKeys = getRootWalletKeys;
|
|
6
|
+
const assert = require("assert");
|
|
7
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
8
|
+
function isWalletKeyName(name) {
|
|
9
|
+
return name === 'user' || name === 'backup' || name === 'bitgo';
|
|
10
|
+
}
|
|
11
|
+
exports.keyOptions = {
|
|
12
|
+
userKey: { type: 'string', demandOption: true },
|
|
13
|
+
userKeyPrefix: { type: 'string', default: '0/0' },
|
|
14
|
+
backupKey: { type: 'string', demandOption: true },
|
|
15
|
+
backupKeyPrefix: { type: 'string', default: '0/0' },
|
|
16
|
+
bitgoKey: { type: 'string', demandOption: true },
|
|
17
|
+
bitgoKeyPrefix: { type: 'string', default: '0/0' },
|
|
18
|
+
};
|
|
19
|
+
function getRootWalletKeys(argv) {
|
|
20
|
+
const xpubs = [argv.userKey, argv.backupKey, argv.bitgoKey].map((k) => utxolib.bip32.fromBase58(k));
|
|
21
|
+
assert(utxolib.bitgo.isTriple(xpubs));
|
|
22
|
+
return new utxolib.bitgo.RootWalletKeys(xpubs, [
|
|
23
|
+
argv.userKeyPrefix ?? utxolib.bitgo.RootWalletKeys.defaultPrefix,
|
|
24
|
+
argv.backupKeyPrefix ?? utxolib.bitgo.RootWalletKeys.defaultPrefix,
|
|
25
|
+
argv.bitgoKeyPrefix ?? utxolib.bitgo.RootWalletKeys.defaultPrefix,
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0S2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmdzL3dhbGxldEtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsMENBRUM7QUFvQkQsOENBUUM7QUFsQ0QsaUNBQWlDO0FBRWpDLGdEQUFnRDtBQUVoRCxTQUFnQixlQUFlLENBQUMsSUFBWTtJQUMxQyxPQUFPLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQ2xFLENBQUM7QUFFWSxRQUFBLFVBQVUsR0FBRztJQUN4QixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7SUFDL0MsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0lBQ2pELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRTtJQUNqRCxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDbkQsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFO0lBQ2hELGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtDQUMxQyxDQUFDO0FBV1gsU0FBZ0IsaUJBQWlCLENBQUMsSUFBZ0I7SUFDaEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0QyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO1FBQzdDLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYTtRQUNoRSxJQUFJLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWE7UUFDbEUsSUFBSSxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhO0tBQ2xFLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1dhbGxldEtleU5hbWUobmFtZTogc3RyaW5nKTogbmFtZSBpcyB1dHhvbGliLmJpdGdvLktleU5hbWUge1xuICByZXR1cm4gbmFtZSA9PT0gJ3VzZXInIHx8IG5hbWUgPT09ICdiYWNrdXAnIHx8IG5hbWUgPT09ICdiaXRnbyc7XG59XG5cbmV4cG9ydCBjb25zdCBrZXlPcHRpb25zID0ge1xuICB1c2VyS2V5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSxcbiAgdXNlcktleVByZWZpeDogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJzAvMCcgfSxcbiAgYmFja3VwS2V5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSxcbiAgYmFja3VwS2V5UHJlZml4OiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnMC8wJyB9LFxuICBiaXRnb0tleTogeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0sXG4gIGJpdGdvS2V5UHJlZml4OiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnMC8wJyB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgS2V5T3B0aW9ucyA9IHtcbiAgdXNlcktleTogc3RyaW5nO1xuICB1c2VyS2V5UHJlZml4Pzogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYmFja3VwS2V5UHJlZml4Pzogc3RyaW5nO1xuICBiaXRnb0tleTogc3RyaW5nO1xuICBiaXRnb0tleVByZWZpeD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290V2FsbGV0S2V5cyhhcmd2OiBLZXlPcHRpb25zKTogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyB7XG4gIGNvbnN0IHhwdWJzID0gW2FyZ3YudXNlcktleSwgYXJndi5iYWNrdXBLZXksIGFyZ3YuYml0Z29LZXldLm1hcCgoaykgPT4gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KGspKTtcbiAgYXNzZXJ0KHV0eG9saWIuYml0Z28uaXNUcmlwbGUoeHB1YnMpKTtcbiAgcmV0dXJuIG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKHhwdWJzLCBbXG4gICAgYXJndi51c2VyS2V5UHJlZml4ID8/IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMuZGVmYXVsdFByZWZpeCxcbiAgICBhcmd2LmJhY2t1cEtleVByZWZpeCA/PyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gICAgYXJndi5iaXRnb0tleVByZWZpeCA/PyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gIF0pO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bip32.d.ts","sourceRoot":"","sources":["../../src/bip32.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAG9C,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAepF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseBip32 = parseBip32;
|
|
4
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
5
|
+
const Parser_1 = require("./Parser");
|
|
6
|
+
const parseUnknown_1 = require("./parseUnknown");
|
|
7
|
+
function parseBip32(bip32Key, params) {
|
|
8
|
+
const parser = new Parser_1.Parser();
|
|
9
|
+
let bip32 = utxolib.bip32.fromBase58(bip32Key);
|
|
10
|
+
if (params.derive) {
|
|
11
|
+
bip32 = bip32.derivePath(params.derive);
|
|
12
|
+
}
|
|
13
|
+
const label = bip32.isNeutered() ? 'xpub' : 'xprv';
|
|
14
|
+
const node = (0, parseUnknown_1.parseUnknown)(parser, label, bip32, {
|
|
15
|
+
omit: ['network', '__Q', '__D', '__DEPTH', '__INDEX', '__PARENT_FINGERPRINT'],
|
|
16
|
+
});
|
|
17
|
+
if (!bip32.isNeutered()) {
|
|
18
|
+
node.nodes?.unshift(parser.node('xpub', bip32.neutered().toBase58()));
|
|
19
|
+
}
|
|
20
|
+
node.value = bip32.toBase58();
|
|
21
|
+
return node;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmlwMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxnQ0FlQztBQXBCRCxnREFBZ0Q7QUFFaEQscUNBQThDO0FBQzlDLGlEQUE4QztBQUU5QyxTQUFnQixVQUFVLENBQUMsUUFBZ0IsRUFBRSxNQUEyQjtJQUN0RSxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU0sRUFBRSxDQUFDO0lBQzVCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuRCxNQUFNLElBQUksR0FBRyxJQUFBLDJCQUFZLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7UUFDOUMsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQztLQUM5RSxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IFBhcnNlciwgUGFyc2VyTm9kZSB9IGZyb20gJy4vUGFyc2VyJztcbmltcG9ydCB7IHBhcnNlVW5rbm93biB9IGZyb20gJy4vcGFyc2VVbmtub3duJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQmlwMzIoYmlwMzJLZXk6IHN0cmluZywgcGFyYW1zOiB7IGRlcml2ZT86IHN0cmluZyB9KTogUGFyc2VyTm9kZSB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIoKTtcbiAgbGV0IGJpcDMyID0gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KGJpcDMyS2V5KTtcbiAgaWYgKHBhcmFtcy5kZXJpdmUpIHtcbiAgICBiaXAzMiA9IGJpcDMyLmRlcml2ZVBhdGgocGFyYW1zLmRlcml2ZSk7XG4gIH1cbiAgY29uc3QgbGFiZWwgPSBiaXAzMi5pc05ldXRlcmVkKCkgPyAneHB1YicgOiAneHBydic7XG4gIGNvbnN0IG5vZGUgPSBwYXJzZVVua25vd24ocGFyc2VyLCBsYWJlbCwgYmlwMzIsIHtcbiAgICBvbWl0OiBbJ25ldHdvcmsnLCAnX19RJywgJ19fRCcsICdfX0RFUFRIJywgJ19fSU5ERVgnLCAnX19QQVJFTlRfRklOR0VSUFJJTlQnXSxcbiAgfSk7XG4gIGlmICghYmlwMzIuaXNOZXV0ZXJlZCgpKSB7XG4gICAgbm9kZS5ub2Rlcz8udW5zaGlmdChwYXJzZXIubm9kZSgneHB1YicsIGJpcDMyLm5ldXRlcmVkKCkudG9CYXNlNTgoKSkpO1xuICB9XG4gIG5vZGUudmFsdWUgPSBiaXAzMi50b0Jhc2U1OCgpO1xuICByZXR1cm4gbm9kZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { CommandModule } from 'yargs';
|
|
3
|
+
import { KeyOptions } from '../../args';
|
|
4
|
+
type IndexLimitOptions = {
|
|
5
|
+
index?: string[];
|
|
6
|
+
limit?: number;
|
|
7
|
+
};
|
|
8
|
+
type ArgsGenerateAddressFixedScript = KeyOptions & IndexLimitOptions & {
|
|
9
|
+
network: utxolib.Network;
|
|
10
|
+
chain?: number[];
|
|
11
|
+
format: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const cmdGenerateFixedScript: CommandModule<unknown, ArgsGenerateAddressFixedScript>;
|
|
14
|
+
type ArgsGenerateDescriptorAddress = {
|
|
15
|
+
network: utxolib.Network;
|
|
16
|
+
descriptor: string;
|
|
17
|
+
format: string;
|
|
18
|
+
} & IndexLimitOptions;
|
|
19
|
+
export declare const cmdFromDescriptor: CommandModule<unknown, ArgsGenerateDescriptorAddress>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=cmdGenerate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmdGenerate.d.ts","sourceRoot":"","sources":["../../../../src/commands/cmdAddress/cmdGenerate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAuC,UAAU,EAAE,MAAM,YAAY,CAAC;AAa7E,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyBF,KAAK,8BAA8B,GAAG,UAAU,GAC9C,iBAAiB,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,OAAO,EAAE,8BAA8B,CA2BzF,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,iBAAiB,CAAC;AAEtB,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,OAAO,EAAE,6BAA6B,CA+BnF,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdFromDescriptor = exports.cmdGenerateFixedScript = void 0;
|
|
4
|
+
const args_1 = require("../../args");
|
|
5
|
+
const generateAddress_1 = require("../../generateAddress");
|
|
6
|
+
const indexLimitOptions = {
|
|
7
|
+
index: {
|
|
8
|
+
type: 'string',
|
|
9
|
+
array: true,
|
|
10
|
+
description: 'Address index. Can be given as a range (e.g. 0-99). Takes precedence over --limit.',
|
|
11
|
+
},
|
|
12
|
+
limit: {
|
|
13
|
+
type: 'number',
|
|
14
|
+
description: 'Alias for --index with range starting at 0 to limit-1.',
|
|
15
|
+
default: 100,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
function getIndexRangeFromArgv(argv) {
|
|
19
|
+
if (argv.index) {
|
|
20
|
+
return (0, generateAddress_1.parseIndexRange)(argv.index);
|
|
21
|
+
}
|
|
22
|
+
if (argv.limit) {
|
|
23
|
+
return (0, generateAddress_1.getRange)(0, argv.limit - 1);
|
|
24
|
+
}
|
|
25
|
+
throw new Error(`no index or limit`);
|
|
26
|
+
}
|
|
27
|
+
exports.cmdGenerateFixedScript = {
|
|
28
|
+
command: 'fromFixedScript',
|
|
29
|
+
describe: 'generate bitgo fixed-script addresses',
|
|
30
|
+
builder(b) {
|
|
31
|
+
return b
|
|
32
|
+
.options((0, args_1.getNetworkOptionsDemand)('bitcoin'))
|
|
33
|
+
.options(args_1.keyOptions)
|
|
34
|
+
.option('format', {
|
|
35
|
+
type: 'string',
|
|
36
|
+
default: '%p0\t%a',
|
|
37
|
+
description: `Format string.\nPlaceholders:\n${(0, generateAddress_1.getFixedScriptAddressPlaceholderDescription)()}`,
|
|
38
|
+
})
|
|
39
|
+
.option('chain', { type: 'number', array: true, description: 'Address chain' })
|
|
40
|
+
.options(indexLimitOptions);
|
|
41
|
+
},
|
|
42
|
+
handler(argv) {
|
|
43
|
+
for (const address of (0, generateAddress_1.generateFixedScriptAddress)({
|
|
44
|
+
...argv,
|
|
45
|
+
index: getIndexRangeFromArgv(argv),
|
|
46
|
+
})) {
|
|
47
|
+
if (argv.format === 'tree') {
|
|
48
|
+
console.log((0, generateAddress_1.formatAddressTree)(address));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.log((0, generateAddress_1.formatFixedScriptAddress)(address, argv.format));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
exports.cmdFromDescriptor = {
|
|
57
|
+
command: 'fromDescriptor [descriptor]',
|
|
58
|
+
describe: 'generate address from descriptor',
|
|
59
|
+
builder(b) {
|
|
60
|
+
return b
|
|
61
|
+
.options((0, args_1.getNetworkOptionsDemand)('bitcoin'))
|
|
62
|
+
.positional('descriptor', {
|
|
63
|
+
type: 'string',
|
|
64
|
+
demandOption: true,
|
|
65
|
+
})
|
|
66
|
+
.options({
|
|
67
|
+
format: {
|
|
68
|
+
type: 'string',
|
|
69
|
+
description: `Format string.\nPlaceholders:\n${(0, generateAddress_1.getDescriptorAddressPlaceholderDescription)()}`,
|
|
70
|
+
default: '%i\t%a',
|
|
71
|
+
},
|
|
72
|
+
})
|
|
73
|
+
.options(indexLimitOptions);
|
|
74
|
+
},
|
|
75
|
+
handler(argv) {
|
|
76
|
+
for (const address of (0, generateAddress_1.generateDescriptorAddress)({
|
|
77
|
+
...argv,
|
|
78
|
+
index: getIndexRangeFromArgv(argv),
|
|
79
|
+
})) {
|
|
80
|
+
if (argv.format === 'tree') {
|
|
81
|
+
console.log((0, generateAddress_1.formatAddressTree)(address));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.log((0, generateAddress_1.formatDescriptorAddress)(address, argv.format));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21kR2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kQWRkcmVzcy9jbWRHZW5lcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxQ0FBNkU7QUFDN0UsMkRBVStCO0FBTy9CLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUsSUFBSTtRQUNYLFdBQVcsRUFBRSxvRkFBb0Y7S0FDbEc7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSx3REFBd0Q7UUFDckUsT0FBTyxFQUFFLEdBQUc7S0FDYjtDQUNPLENBQUM7QUFFWCxTQUFTLHFCQUFxQixDQUFDLElBQXVCO0lBQ3BELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFBLGlDQUFlLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sSUFBQSwwQkFBUSxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDdkMsQ0FBQztBQVNZLFFBQUEsc0JBQXNCLEdBQTJEO0lBQzVGLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsUUFBUSxFQUFFLHVDQUF1QztJQUNqRCxPQUFPLENBQUMsQ0FBQztRQUNQLE9BQU8sQ0FBQzthQUNMLE9BQU8sQ0FBQyxJQUFBLDhCQUF1QixFQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzNDLE9BQU8sQ0FBQyxpQkFBVSxDQUFDO2FBQ25CLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDaEIsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsU0FBUztZQUNsQixXQUFXLEVBQUUsa0NBQWtDLElBQUEsNkRBQTJDLEdBQUUsRUFBRTtTQUMvRixDQUFDO2FBQ0QsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUM7YUFDOUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFJO1FBQ1YsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFBLDRDQUEwQixFQUFDO1lBQy9DLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7U0FDbkMsQ0FBQyxFQUFFLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxtQ0FBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsMENBQXdCLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzlELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUM7QUFRVyxRQUFBLGlCQUFpQixHQUEwRDtJQUN0RixPQUFPLEVBQUUsNkJBQTZCO0lBQ3RDLFFBQVEsRUFBRSxrQ0FBa0M7SUFDNUMsT0FBTyxDQUFDLENBQUM7UUFDUCxPQUFPLENBQUM7YUFDTCxPQUFPLENBQUMsSUFBQSw4QkFBdUIsRUFBQyxTQUFTLENBQUMsQ0FBQzthQUMzQyxVQUFVLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksRUFBRSxRQUFRO1lBQ2QsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQzthQUNELE9BQU8sQ0FBQztZQUNQLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsa0NBQWtDLElBQUEsNERBQTBDLEdBQUUsRUFBRTtnQkFDN0YsT0FBTyxFQUFFLFFBQVE7YUFDbEI7U0FDRixDQUFDO2FBQ0QsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFJO1FBQ1YsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFBLDJDQUF5QixFQUFDO1lBQzlDLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7U0FDbkMsQ0FBQyxFQUFFLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxtQ0FBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEseUNBQXVCLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IENvbW1hbmRNb2R1bGUgfSBmcm9tICd5YXJncyc7XG5cbmltcG9ydCB7IGdldE5ldHdvcmtPcHRpb25zRGVtYW5kLCBrZXlPcHRpb25zLCBLZXlPcHRpb25zIH0gZnJvbSAnLi4vLi4vYXJncyc7XG5pbXBvcnQge1xuICBmb3JtYXRBZGRyZXNzVHJlZSxcbiAgZm9ybWF0RGVzY3JpcHRvckFkZHJlc3MsXG4gIGZvcm1hdEZpeGVkU2NyaXB0QWRkcmVzcyxcbiAgZ2VuZXJhdGVEZXNjcmlwdG9yQWRkcmVzcyxcbiAgZ2VuZXJhdGVGaXhlZFNjcmlwdEFkZHJlc3MsXG4gIGdldERlc2NyaXB0b3JBZGRyZXNzUGxhY2Vob2xkZXJEZXNjcmlwdGlvbixcbiAgZ2V0Rml4ZWRTY3JpcHRBZGRyZXNzUGxhY2Vob2xkZXJEZXNjcmlwdGlvbixcbiAgZ2V0UmFuZ2UsXG4gIHBhcnNlSW5kZXhSYW5nZSxcbn0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVBZGRyZXNzJztcblxudHlwZSBJbmRleExpbWl0T3B0aW9ucyA9IHtcbiAgaW5kZXg/OiBzdHJpbmdbXTtcbiAgbGltaXQ/OiBudW1iZXI7XG59O1xuXG5jb25zdCBpbmRleExpbWl0T3B0aW9ucyA9IHtcbiAgaW5kZXg6IHtcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICBhcnJheTogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogJ0FkZHJlc3MgaW5kZXguIENhbiBiZSBnaXZlbiBhcyBhIHJhbmdlIChlLmcuIDAtOTkpLiBUYWtlcyBwcmVjZWRlbmNlIG92ZXIgLS1saW1pdC4nLFxuICB9LFxuICBsaW1pdDoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnQWxpYXMgZm9yIC0taW5kZXggd2l0aCByYW5nZSBzdGFydGluZyBhdCAwIHRvIGxpbWl0LTEuJyxcbiAgICBkZWZhdWx0OiAxMDAsXG4gIH0sXG59IGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBnZXRJbmRleFJhbmdlRnJvbUFyZ3YoYXJndjogSW5kZXhMaW1pdE9wdGlvbnMpOiBudW1iZXJbXSB7XG4gIGlmIChhcmd2LmluZGV4KSB7XG4gICAgcmV0dXJuIHBhcnNlSW5kZXhSYW5nZShhcmd2LmluZGV4KTtcbiAgfVxuICBpZiAoYXJndi5saW1pdCkge1xuICAgIHJldHVybiBnZXRSYW5nZSgwLCBhcmd2LmxpbWl0IC0gMSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBubyBpbmRleCBvciBsaW1pdGApO1xufVxuXG50eXBlIEFyZ3NHZW5lcmF0ZUFkZHJlc3NGaXhlZFNjcmlwdCA9IEtleU9wdGlvbnMgJlxuICBJbmRleExpbWl0T3B0aW9ucyAmIHtcbiAgICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcms7XG4gICAgY2hhaW4/OiBudW1iZXJbXTtcbiAgICBmb3JtYXQ6IHN0cmluZztcbiAgfTtcblxuZXhwb3J0IGNvbnN0IGNtZEdlbmVyYXRlRml4ZWRTY3JpcHQ6IENvbW1hbmRNb2R1bGU8dW5rbm93biwgQXJnc0dlbmVyYXRlQWRkcmVzc0ZpeGVkU2NyaXB0PiA9IHtcbiAgY29tbWFuZDogJ2Zyb21GaXhlZFNjcmlwdCcsXG4gIGRlc2NyaWJlOiAnZ2VuZXJhdGUgYml0Z28gZml4ZWQtc2NyaXB0IGFkZHJlc3NlcycsXG4gIGJ1aWxkZXIoYikge1xuICAgIHJldHVybiBiXG4gICAgICAub3B0aW9ucyhnZXROZXR3b3JrT3B0aW9uc0RlbWFuZCgnYml0Y29pbicpKVxuICAgICAgLm9wdGlvbnMoa2V5T3B0aW9ucylcbiAgICAgIC5vcHRpb24oJ2Zvcm1hdCcsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlZmF1bHQ6ICclcDBcXHQlYScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgRm9ybWF0IHN0cmluZy5cXG5QbGFjZWhvbGRlcnM6XFxuJHtnZXRGaXhlZFNjcmlwdEFkZHJlc3NQbGFjZWhvbGRlckRlc2NyaXB0aW9uKCl9YCxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdjaGFpbicsIHsgdHlwZTogJ251bWJlcicsIGFycmF5OiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FkZHJlc3MgY2hhaW4nIH0pXG4gICAgICAub3B0aW9ucyhpbmRleExpbWl0T3B0aW9ucyk7XG4gIH0sXG4gIGhhbmRsZXIoYXJndik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiBnZW5lcmF0ZUZpeGVkU2NyaXB0QWRkcmVzcyh7XG4gICAgICAuLi5hcmd2LFxuICAgICAgaW5kZXg6IGdldEluZGV4UmFuZ2VGcm9tQXJndihhcmd2KSxcbiAgICB9KSkge1xuICAgICAgaWYgKGFyZ3YuZm9ybWF0ID09PSAndHJlZScpIHtcbiAgICAgICAgY29uc29sZS5sb2coZm9ybWF0QWRkcmVzc1RyZWUoYWRkcmVzcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coZm9ybWF0Rml4ZWRTY3JpcHRBZGRyZXNzKGFkZHJlc3MsIGFyZ3YuZm9ybWF0KSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxufTtcblxudHlwZSBBcmdzR2VuZXJhdGVEZXNjcmlwdG9yQWRkcmVzcyA9IHtcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrO1xuICBkZXNjcmlwdG9yOiBzdHJpbmc7XG4gIGZvcm1hdDogc3RyaW5nO1xufSAmIEluZGV4TGltaXRPcHRpb25zO1xuXG5leHBvcnQgY29uc3QgY21kRnJvbURlc2NyaXB0b3I6IENvbW1hbmRNb2R1bGU8dW5rbm93biwgQXJnc0dlbmVyYXRlRGVzY3JpcHRvckFkZHJlc3M+ID0ge1xuICBjb21tYW5kOiAnZnJvbURlc2NyaXB0b3IgW2Rlc2NyaXB0b3JdJyxcbiAgZGVzY3JpYmU6ICdnZW5lcmF0ZSBhZGRyZXNzIGZyb20gZGVzY3JpcHRvcicsXG4gIGJ1aWxkZXIoYikge1xuICAgIHJldHVybiBiXG4gICAgICAub3B0aW9ucyhnZXROZXR3b3JrT3B0aW9uc0RlbWFuZCgnYml0Y29pbicpKVxuICAgICAgLnBvc2l0aW9uYWwoJ2Rlc2NyaXB0b3InLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZW1hbmRPcHRpb246IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoe1xuICAgICAgICBmb3JtYXQ6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYEZvcm1hdCBzdHJpbmcuXFxuUGxhY2Vob2xkZXJzOlxcbiR7Z2V0RGVzY3JpcHRvckFkZHJlc3NQbGFjZWhvbGRlckRlc2NyaXB0aW9uKCl9YCxcbiAgICAgICAgICBkZWZhdWx0OiAnJWlcXHQlYScsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoaW5kZXhMaW1pdE9wdGlvbnMpO1xuICB9LFxuICBoYW5kbGVyKGFyZ3YpIHtcbiAgICBmb3IgKGNvbnN0IGFkZHJlc3Mgb2YgZ2VuZXJhdGVEZXNjcmlwdG9yQWRkcmVzcyh7XG4gICAgICAuLi5hcmd2LFxuICAgICAgaW5kZXg6IGdldEluZGV4UmFuZ2VGcm9tQXJndihhcmd2KSxcbiAgICB9KSkge1xuICAgICAgaWYgKGFyZ3YuZm9ybWF0ID09PSAndHJlZScpIHtcbiAgICAgICAgY29uc29sZS5sb2coZm9ybWF0QWRkcmVzc1RyZWUoYWRkcmVzcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coZm9ybWF0RGVzY3JpcHRvckFkZHJlc3MoYWRkcmVzcywgYXJndi5mb3JtYXQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59O1xuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import * as yargs from 'yargs';
|
|
3
|
+
import { AddressParser } from '../../AddressParser';
|
|
4
|
+
import { FormatTreeOrJson } from '../../args';
|
|
5
|
+
export type ArgsParseAddress = {
|
|
6
|
+
network?: utxolib.Network;
|
|
7
|
+
format: FormatTreeOrJson;
|
|
8
|
+
all: boolean;
|
|
9
|
+
convert: boolean;
|
|
10
|
+
address: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function getAddressParser(argv: ArgsParseAddress): AddressParser;
|
|
13
|
+
export declare const cmdParse: {
|
|
14
|
+
readonly command: "parse [address]";
|
|
15
|
+
readonly aliases: readonly ["address"];
|
|
16
|
+
readonly describe: "parse address";
|
|
17
|
+
readonly builder: (b: yargs.Argv<unknown>) => yargs.Argv<ArgsParseAddress>;
|
|
18
|
+
readonly handler: (argv: yargs.Arguments<ArgsParseAddress>) => void;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=cmdParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmdParse.d.ts","sourceRoot":"","sources":["../../../../src/commands/cmdAddress/cmdParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAoB,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAInF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CAEtE;AAED,eAAO,MAAM,QAAQ;;;;0BAIR,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;6BAS/C,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAG,IAAI;CAI9C,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdParse = void 0;
|
|
4
|
+
exports.getAddressParser = getAddressParser;
|
|
5
|
+
const AddressParser_1 = require("../../AddressParser");
|
|
6
|
+
const args_1 = require("../../args");
|
|
7
|
+
const formatString_1 = require("../formatString");
|
|
8
|
+
function getAddressParser(argv) {
|
|
9
|
+
return new AddressParser_1.AddressParser(argv);
|
|
10
|
+
}
|
|
11
|
+
exports.cmdParse = {
|
|
12
|
+
command: 'parse [address]',
|
|
13
|
+
aliases: ['address'],
|
|
14
|
+
describe: 'parse address',
|
|
15
|
+
builder(b) {
|
|
16
|
+
return b
|
|
17
|
+
.options((0, args_1.getNetworkOptions)())
|
|
18
|
+
.option('format', args_1.formatTreeOrJson)
|
|
19
|
+
.option('convert', { type: 'boolean', default: false })
|
|
20
|
+
.option('all', { type: 'boolean', default: false })
|
|
21
|
+
.positional('address', { type: 'string', demandOption: true });
|
|
22
|
+
},
|
|
23
|
+
handler(argv) {
|
|
24
|
+
const parsed = getAddressParser(argv).parse(argv.address);
|
|
25
|
+
console.log((0, formatString_1.formatString)(parsed, argv));
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21kUGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kQWRkcmVzcy9jbWRQYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQkEsNENBRUM7QUFmRCx1REFBb0Q7QUFDcEQscUNBQW1GO0FBRW5GLGtEQUErQztBQVUvQyxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFzQjtJQUNyRCxPQUFPLElBQUksNkJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRVksUUFBQSxRQUFRLEdBQUc7SUFDdEIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDcEIsUUFBUSxFQUFFLGVBQWU7SUFDekIsT0FBTyxDQUFDLENBQXNCO1FBQzVCLE9BQU8sQ0FBQzthQUNMLE9BQU8sQ0FBQyxJQUFBLHdCQUFpQixHQUFFLENBQUM7YUFDNUIsTUFBTSxDQUFDLFFBQVEsRUFBRSx1QkFBZ0IsQ0FBQzthQUNsQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDdEQsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ2xELFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBdUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsMkJBQVksRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyBBZGRyZXNzUGFyc2VyIH0gZnJvbSAnLi4vLi4vQWRkcmVzc1BhcnNlcic7XG5pbXBvcnQgeyBmb3JtYXRUcmVlT3JKc29uLCBGb3JtYXRUcmVlT3JKc29uLCBnZXROZXR3b3JrT3B0aW9ucyB9IGZyb20gJy4uLy4uL2FyZ3MnO1xuXG5pbXBvcnQgeyBmb3JtYXRTdHJpbmcgfSBmcm9tICcuLi9mb3JtYXRTdHJpbmcnO1xuXG5leHBvcnQgdHlwZSBBcmdzUGFyc2VBZGRyZXNzID0ge1xuICBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrO1xuICBmb3JtYXQ6IEZvcm1hdFRyZWVPckpzb247XG4gIGFsbDogYm9vbGVhbjtcbiAgY29udmVydDogYm9vbGVhbjtcbiAgYWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3NQYXJzZXIoYXJndjogQXJnc1BhcnNlQWRkcmVzcyk6IEFkZHJlc3NQYXJzZXIge1xuICByZXR1cm4gbmV3IEFkZHJlc3NQYXJzZXIoYXJndik7XG59XG5cbmV4cG9ydCBjb25zdCBjbWRQYXJzZSA9IHtcbiAgY29tbWFuZDogJ3BhcnNlIFthZGRyZXNzXScsXG4gIGFsaWFzZXM6IFsnYWRkcmVzcyddLFxuICBkZXNjcmliZTogJ3BhcnNlIGFkZHJlc3MnLFxuICBidWlsZGVyKGI6IHlhcmdzLkFyZ3Y8dW5rbm93bj4pOiB5YXJncy5Bcmd2PEFyZ3NQYXJzZUFkZHJlc3M+IHtcbiAgICByZXR1cm4gYlxuICAgICAgLm9wdGlvbnMoZ2V0TmV0d29ya09wdGlvbnMoKSlcbiAgICAgIC5vcHRpb24oJ2Zvcm1hdCcsIGZvcm1hdFRyZWVPckpzb24pXG4gICAgICAub3B0aW9uKCdjb252ZXJ0JywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdhbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5wb3NpdGlvbmFsKCdhZGRyZXNzJywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pO1xuICB9LFxuXG4gIGhhbmRsZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZUFkZHJlc3M+KTogdm9pZCB7XG4gICAgY29uc3QgcGFyc2VkID0gZ2V0QWRkcmVzc1BhcnNlcihhcmd2KS5wYXJzZShhcmd2LmFkZHJlc3MpO1xuICAgIGNvbnNvbGUubG9nKGZvcm1hdFN0cmluZyhwYXJzZWQsIGFyZ3YpKTtcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/cmdAddress/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAStD,CAAC"}
|