@bitgo-beta/utxo-bin 2.8.3-beta.486 → 2.8.3-beta.488

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.
Files changed (36) hide show
  1. package/dist/bin/index.js +1 -1
  2. package/dist/src/args/index.d.ts +4 -0
  3. package/dist/src/args/index.d.ts.map +1 -0
  4. package/dist/src/args/index.js +20 -0
  5. package/dist/src/args/parseNetwork.d.ts +22 -0
  6. package/dist/src/args/parseNetwork.d.ts.map +1 -0
  7. package/dist/src/args/parseNetwork.js +34 -0
  8. package/dist/src/args/parseString.d.ts +41 -0
  9. package/dist/src/args/parseString.d.ts.map +1 -0
  10. package/dist/src/args/parseString.js +120 -0
  11. package/dist/src/args/walletKeys.d.ts +38 -0
  12. package/dist/src/args/walletKeys.d.ts.map +1 -0
  13. package/dist/src/args/walletKeys.js +29 -0
  14. package/dist/src/commands.d.ts +8 -13
  15. package/dist/src/commands.d.ts.map +1 -1
  16. package/dist/src/commands.js +19 -92
  17. package/dist/src/fetch.d.ts +3 -0
  18. package/dist/src/fetch.d.ts.map +1 -1
  19. package/dist/src/fetch.js +16 -3
  20. package/dist/src/generateAddress.d.ts +2 -7
  21. package/dist/src/generateAddress.d.ts.map +1 -1
  22. package/dist/src/generateAddress.js +6 -11
  23. package/dist/test/args/stringToBuffer.d.ts.map +1 -0
  24. package/dist/test/args/stringToBuffer.js +16 -0
  25. package/dist/test/parseAddress.js +2 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +5 -5
  28. package/dist/src/parseString.d.ts +0 -5
  29. package/dist/src/parseString.d.ts.map +0 -1
  30. package/dist/src/parseString.js +0 -29
  31. package/dist/src/readStdin.d.ts +0 -5
  32. package/dist/src/readStdin.d.ts.map +0 -1
  33. package/dist/src/readStdin.js +0 -42
  34. package/dist/test/stringToBuffer.d.ts.map +0 -1
  35. package/dist/test/stringToBuffer.js +0 -16
  36. /package/dist/test/{stringToBuffer.d.ts → args/stringToBuffer.d.ts} +0 -0
package/dist/bin/index.js CHANGED
@@ -12,4 +12,4 @@ yargs
12
12
  .demandCommand()
13
13
  .help()
14
14
  .parse();
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQStCO0FBQy9CLDhDQUFnSDtBQUVoSCxLQUFLO0tBQ0YsT0FBTyxDQUFDLHFCQUFVLENBQUM7S0FDbkIsT0FBTyxDQUFDLDBCQUFlLENBQUM7S0FDeEIsT0FBTyxDQUFDLHlCQUFjLENBQUM7S0FDdkIsT0FBTyxDQUFDLDZCQUFrQixDQUFDO0tBQzNCLE9BQU8sQ0FBQyx1QkFBWSxDQUFDO0tBQ3JCLGFBQWEsRUFBRTtLQUNmLElBQUksRUFBRTtLQUNOLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0IHsgY21kR2VuZXJhdGVBZGRyZXNzLCBjbWRQYXJzZUFkZHJlc3MsIGNtZFBhcnNlU2NyaXB0LCBjbWRQYXJzZVR4LCBjbWRQYXJzZVhwdWIgfSBmcm9tICcuLi9zcmMvY29tbWFuZHMnO1xuXG55YXJnc1xuICAuY29tbWFuZChjbWRQYXJzZVR4KVxuICAuY29tbWFuZChjbWRQYXJzZUFkZHJlc3MpXG4gIC5jb21tYW5kKGNtZFBhcnNlU2NyaXB0KVxuICAuY29tbWFuZChjbWRHZW5lcmF0ZUFkZHJlc3MpXG4gIC5jb21tYW5kKGNtZFBhcnNlWHB1YilcbiAgLmRlbWFuZENvbW1hbmQoKVxuICAuaGVscCgpXG4gIC5wYXJzZSgpO1xuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQStCO0FBQy9CLDhDQUFnSDtBQUVoSCxLQUFLO0tBQ0YsT0FBTyxDQUFDLHFCQUFVLENBQUM7S0FDbkIsT0FBTyxDQUFDLDBCQUFlLENBQUM7S0FDeEIsT0FBTyxDQUFDLHlCQUFjLENBQUM7S0FDdkIsT0FBTyxDQUFDLDZCQUFrQixDQUFDO0tBQzNCLE9BQU8sQ0FBQyx1QkFBWSxDQUFDO0tBQ3JCLGFBQWEsRUFBRTtLQUNmLElBQUksRUFBRTtLQUNOLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0IHsgY21kUGFyc2VUeCwgY21kUGFyc2VBZGRyZXNzLCBjbWRQYXJzZVNjcmlwdCwgY21kR2VuZXJhdGVBZGRyZXNzLCBjbWRQYXJzZVhwdWIgfSBmcm9tICcuLi9zcmMvY29tbWFuZHMnO1xuXG55YXJnc1xuICAuY29tbWFuZChjbWRQYXJzZVR4KVxuICAuY29tbWFuZChjbWRQYXJzZUFkZHJlc3MpXG4gIC5jb21tYW5kKGNtZFBhcnNlU2NyaXB0KVxuICAuY29tbWFuZChjbWRHZW5lcmF0ZUFkZHJlc3MpXG4gIC5jb21tYW5kKGNtZFBhcnNlWHB1YilcbiAgLmRlbWFuZENvbW1hbmQoKVxuICAuaGVscCgpXG4gIC5wYXJzZSgpO1xuIl19
@@ -0,0 +1,4 @@
1
+ export * from './parseString';
2
+ export * from './walletKeys';
3
+ export * from './parseNetwork';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/args/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,20 @@
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
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLCtDQUE2QjtBQUM3QixpREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BhcnNlU3RyaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0S2V5cyc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlTmV0d29yayc7XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ export declare function getNetworkForName(name: string): utxolib.Network;
3
+ export declare function getNetwork(argv: {
4
+ network: string;
5
+ }): utxolib.Network;
6
+ type DemandOption<T> = T & {
7
+ demandOption: true;
8
+ };
9
+ type NetworkOption<TDefault> = {
10
+ type: 'string';
11
+ description: string;
12
+ default: TDefault;
13
+ coerce: (arg: string) => utxolib.Network;
14
+ };
15
+ export declare function getNetworkOptions(defaultValue?: string): {
16
+ network: NetworkOption<typeof defaultValue>;
17
+ };
18
+ export declare function getNetworkOptionsDemand(defaultValue?: string): {
19
+ network: DemandOption<NetworkOption<typeof defaultValue>>;
20
+ };
21
+ export {};
22
+ //# 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;AAEhD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAM/D;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,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNetworkOptionsDemand = exports.getNetworkOptions = exports.getNetwork = exports.getNetworkForName = void 0;
4
+ const utxolib = require("@bitgo-beta/utxo-lib");
5
+ function getNetworkForName(name) {
6
+ const network = utxolib.networks[name];
7
+ if (!network) {
8
+ throw new Error(`invalid network ${name}`);
9
+ }
10
+ return network;
11
+ }
12
+ exports.getNetworkForName = getNetworkForName;
13
+ function getNetwork(argv) {
14
+ return getNetworkForName(argv.network);
15
+ }
16
+ exports.getNetwork = getNetwork;
17
+ function getNetworkOptions(defaultValue) {
18
+ return {
19
+ network: {
20
+ type: 'string',
21
+ description: 'network name',
22
+ default: defaultValue,
23
+ coerce: getNetworkForName,
24
+ },
25
+ };
26
+ }
27
+ exports.getNetworkOptions = getNetworkOptions;
28
+ function getNetworkOptionsDemand(defaultValue) {
29
+ return {
30
+ network: { ...getNetworkOptions(defaultValue).network, demandOption: true },
31
+ };
32
+ }
33
+ exports.getNetworkOptionsDemand = getNetworkOptionsDemand;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyZ3MvcGFyc2VOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdEQUFnRDtBQUVoRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBMkIsQ0FBQyxDQUFDO0lBQzlELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzVDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQU5ELDhDQU1DO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQXlCO0lBQ2xELE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFGRCxnQ0FFQztBQVdELFNBQWdCLGlCQUFpQixDQUFDLFlBQXFCO0lBR3JELE9BQU87UUFDTCxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsUUFBUTtZQUNkLFdBQVcsRUFBRSxjQUFjO1lBQzNCLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLE1BQU0sRUFBRSxpQkFBaUI7U0FDMUI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQVhELDhDQVdDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsWUFBcUI7SUFHM0QsT0FBTztRQUNMLE9BQU8sRUFBRSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7S0FDNUUsQ0FBQztBQUNKLENBQUM7QUFORCwwREFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya0Zvck5hbWUobmFtZTogc3RyaW5nKTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgY29uc3QgbmV0d29yayA9IHV0eG9saWIubmV0d29ya3NbbmFtZSBhcyB1dHhvbGliLk5ldHdvcmtOYW1lXTtcbiAgaWYgKCFuZXR3b3JrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmsgJHtuYW1lfWApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29yayhhcmd2OiB7IG5ldHdvcms6IHN0cmluZyB9KTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgcmV0dXJuIGdldE5ldHdvcmtGb3JOYW1lKGFyZ3YubmV0d29yayk7XG59XG5cbnR5cGUgRGVtYW5kT3B0aW9uPFQ+ID0gVCAmIHsgZGVtYW5kT3B0aW9uOiB0cnVlIH07XG5cbnR5cGUgTmV0d29ya09wdGlvbjxURGVmYXVsdD4gPSB7XG4gIHR5cGU6ICdzdHJpbmcnO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBkZWZhdWx0OiBURGVmYXVsdDtcbiAgY29lcmNlOiAoYXJnOiBzdHJpbmcpID0+IHV0eG9saWIuTmV0d29yaztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrT3B0aW9ucyhkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiB7XG4gIG5ldHdvcms6IE5ldHdvcmtPcHRpb248dHlwZW9mIGRlZmF1bHRWYWx1ZT47XG59IHtcbiAgcmV0dXJuIHtcbiAgICBuZXR3b3JrOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnbmV0d29yayBuYW1lJyxcbiAgICAgIGRlZmF1bHQ6IGRlZmF1bHRWYWx1ZSxcbiAgICAgIGNvZXJjZTogZ2V0TmV0d29ya0Zvck5hbWUsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtPcHRpb25zRGVtYW5kKGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHtcbiAgbmV0d29yazogRGVtYW5kT3B0aW9uPE5ldHdvcmtPcHRpb248dHlwZW9mIGRlZmF1bHRWYWx1ZT4+O1xufSB7XG4gIHJldHVybiB7XG4gICAgbmV0d29yazogeyAuLi5nZXROZXR3b3JrT3B0aW9ucyhkZWZhdWx0VmFsdWUpLm5ldHdvcmssIGRlbWFuZE9wdGlvbjogdHJ1ZSB9LFxuICB9O1xufVxuIl19
@@ -0,0 +1,41 @@
1
+ /// <reference types="node" />
2
+ type Format = 'hex' | 'base64';
3
+ export declare function stringToBuffer(data: string, format: Format | Format[]): Buffer;
4
+ export declare const readStringOptions: {
5
+ readonly path: {
6
+ readonly type: "string";
7
+ readonly nargs: 1;
8
+ readonly default: "";
9
+ };
10
+ readonly stdin: {
11
+ readonly type: "boolean";
12
+ readonly default: false;
13
+ };
14
+ readonly data: {
15
+ readonly type: "string";
16
+ readonly description: "hex or base64";
17
+ readonly alias: "hex";
18
+ };
19
+ readonly clipboard: {
20
+ readonly type: "boolean";
21
+ readonly default: false;
22
+ };
23
+ };
24
+ export type ReadStringOptions = {
25
+ clipboard?: boolean;
26
+ path?: string;
27
+ data?: string;
28
+ stdin: boolean;
29
+ };
30
+ /**
31
+ * Reads from stdin until Ctrl-D is pressed.
32
+ */
33
+ export declare function readStdin(): Promise<string>;
34
+ /**
35
+ * @param argv
36
+ * @param input - optional input data. If set, this function just ensures that nothing else is set.
37
+ * @return string from specified source
38
+ */
39
+ export declare function argToString(argv: ReadStringOptions, input?: string): Promise<string | undefined>;
40
+ export {};
41
+ //# 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.argToString = exports.readStdin = exports.readStringOptions = exports.stringToBuffer = void 0;
4
+ const process = require("process");
5
+ const fs = require("fs");
6
+ const clipboardy_cjs_1 = require("clipboardy-cjs");
7
+ function stringToBuffer(data, format) {
8
+ if (typeof format !== 'string') {
9
+ for (const f of format) {
10
+ try {
11
+ return stringToBuffer(data, f);
12
+ }
13
+ catch (err) {
14
+ // ignore, try next
15
+ }
16
+ }
17
+ throw new Error(`could not parse data, formats: ${format}`);
18
+ }
19
+ // strip all whitespace
20
+ data = data.replace(/\s*/g, '');
21
+ if (format === 'hex') {
22
+ data = data.toLowerCase();
23
+ }
24
+ const buf = Buffer.from(data, format);
25
+ // make sure there were no decoding errors
26
+ if (buf.toString(format) !== data) {
27
+ throw new Error(`invalid ${format}`);
28
+ }
29
+ return buf;
30
+ }
31
+ exports.stringToBuffer = stringToBuffer;
32
+ exports.readStringOptions = {
33
+ path: { type: 'string', nargs: 1, default: '' },
34
+ stdin: { type: 'boolean', default: false },
35
+ data: {
36
+ type: 'string',
37
+ description: 'hex or base64',
38
+ alias: 'hex',
39
+ },
40
+ clipboard: { type: 'boolean', default: false },
41
+ };
42
+ /**
43
+ * Reads from stdin until Ctrl-D is pressed.
44
+ */
45
+ async function readStdin() {
46
+ /*
47
+ * High-performance implementation of reading from stdin.
48
+ * Standard readline is extremely slow for long lines.
49
+ */
50
+ return new Promise((resolve, reject) => {
51
+ // Using readline is not an option because it is extremely slow for long lines.
52
+ // By enabling raw mode, we can read more than 4096 bytes, but it requires manual Ctrl-C/Ctrl-D handling
53
+ if (!process.stdin.setRawMode) {
54
+ throw new Error('stdin is not a tty');
55
+ }
56
+ process.stdin.setRawMode(true);
57
+ const buf = [];
58
+ process.stdin.on('data', (chunk) => {
59
+ if (chunk[0] === 0x03) {
60
+ // Ctrl-C
61
+ process.exit(130);
62
+ }
63
+ if (chunk[0] === 0x04) {
64
+ // Ctrl-D
65
+ process.stdin.emit('end');
66
+ return;
67
+ }
68
+ buf.push(chunk);
69
+ process.stdout.write(chunk);
70
+ });
71
+ process.stdin.on('end', () => {
72
+ resolve(Buffer.concat(buf).toString('utf8'));
73
+ });
74
+ process.stdin.on('error', (err) => {
75
+ reject(err);
76
+ });
77
+ });
78
+ }
79
+ exports.readStdin = readStdin;
80
+ /**
81
+ * @param argv
82
+ * @param input - optional input data. If set, this function just ensures that nothing else is set.
83
+ * @return string from specified source
84
+ */
85
+ async function argToString(argv, input) {
86
+ if (argv.stdin || argv.path === '-') {
87
+ if (input) {
88
+ throw new Error(`conflicting arguments`);
89
+ }
90
+ console.log('Reading from stdin. Please paste hex-encoded transaction data.');
91
+ console.log('After inserting data, press Ctrl-D to finish. Press Ctrl-C to cancel.');
92
+ if (process.stdin.isTTY) {
93
+ input = await readStdin();
94
+ }
95
+ else {
96
+ input = await fs.promises.readFile('/dev/stdin', 'utf8');
97
+ }
98
+ }
99
+ if (argv.clipboard) {
100
+ if (input) {
101
+ throw new Error(`conflicting arguments`);
102
+ }
103
+ input = await clipboardy_cjs_1.default.read();
104
+ }
105
+ if (argv.path) {
106
+ if (input) {
107
+ throw new Error(`conflicting arguments`);
108
+ }
109
+ input = (await fs.promises.readFile(argv.path, 'utf8')).toString();
110
+ }
111
+ if (argv.data) {
112
+ if (input) {
113
+ throw new Error(`conflicting arguments`);
114
+ }
115
+ input = argv.data;
116
+ }
117
+ return input;
118
+ }
119
+ exports.argToString = argToString;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJncy9wYXJzZVN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMseUJBQXlCO0FBRXpCLG1EQUF3QztBQUd4QyxTQUFnQixjQUFjLENBQUMsSUFBWSxFQUFFLE1BQXlCO0lBQ3BFLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzlCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO1lBQ3RCLElBQUk7Z0JBQ0YsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2hDO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osbUJBQW1CO2FBQ3BCO1NBQ0Y7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQzdEO0lBRUQsdUJBQXVCO0lBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVoQyxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7UUFDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUMzQjtJQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLDBDQUEwQztJQUMxQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQ3RDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBekJELHdDQXlCQztBQUVZLFFBQUEsaUJBQWlCLEdBQUc7SUFDL0IsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FB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QztTQUMxQztRQUNELEtBQUssR0FBRyxNQUFNLHdCQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDakM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDYixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUMxQztRQUNELEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3BFO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ2IsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDMUM7UUFDRCxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztLQUNuQjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQXBDRCxrQ0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwcm9jZXNzIGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuXG5pbXBvcnQgY2xpcGJvYXJkeSBmcm9tICdjbGlwYm9hcmR5LWNqcyc7XG5cbnR5cGUgRm9ybWF0ID0gJ2hleCcgfCAnYmFzZTY0JztcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb0J1ZmZlcihkYXRhOiBzdHJpbmcsIGZvcm1hdDogRm9ybWF0IHwgRm9ybWF0W10pOiBCdWZmZXIge1xuICBpZiAodHlwZW9mIGZvcm1hdCAhPT0gJ3N0cmluZycpIHtcbiAgICBmb3IgKGNvbnN0IGYgb2YgZm9ybWF0KSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gc3RyaW5nVG9CdWZmZXIoZGF0YSwgZik7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gaWdub3JlLCB0cnkgbmV4dFxuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBwYXJzZSBkYXRhLCBmb3JtYXRzOiAke2Zvcm1hdH1gKTtcbiAgfVxuXG4gIC8vIHN0cmlwIGFsbCB3aGl0ZXNwYWNlXG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xccyovZywgJycpO1xuXG4gIGlmIChmb3JtYXQgPT09ICdoZXgnKSB7XG4gICAgZGF0YSA9IGRhdGEudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKGRhdGEsIGZvcm1hdCk7XG4gIC8vIG1ha2Ugc3VyZSB0aGVyZSB3ZXJlIG5vIGRlY29kaW5nIGVycm9yc1xuICBpZiAoYnVmLnRvU3RyaW5nKGZvcm1hdCkgIT09IGRhdGEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgJHtmb3JtYXR9YCk7XG4gIH1cbiAgcmV0dXJuIGJ1Zjtcbn1cblxuZXhwb3J0IGNvbnN0IHJlYWRTdHJpbmdPcHRpb25zID0ge1xuICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCBuYXJnczogMSwgZGVmYXVsdDogJycgfSxcbiAgc3RkaW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9LFxuICBkYXRhOiB7XG4gICAgdHlwZTogJ3N0cmluZycsXG4gICAgZGVzY3JpcHRpb246ICdoZXggb3IgYmFzZTY0JyxcbiAgICBhbGlhczogJ2hleCcsXG4gIH0sXG4gIGNsaXBib2FyZDogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBSZWFkU3RyaW5nT3B0aW9ucyA9IHtcbiAgY2xpcGJvYXJkPzogYm9vbGVhbjtcbiAgcGF0aD86IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbiAgc3RkaW46IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIFJlYWRzIGZyb20gc3RkaW4gdW50aWwgQ3RybC1EIGlzIHByZXNzZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkU3RkaW4oKTogUHJvbWlzZTxzdHJpbmc+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":"AACA,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,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRootWalletKeys = exports.keyOptions = exports.isWalletKeyName = void 0;
4
+ const assert = require("assert");
5
+ const utxolib = require("@bitgo-beta/utxo-lib");
6
+ function isWalletKeyName(name) {
7
+ return name === 'user' || name === 'backup' || name === 'bitgo';
8
+ }
9
+ exports.isWalletKeyName = isWalletKeyName;
10
+ exports.keyOptions = {
11
+ userKey: { type: 'string', demandOption: true },
12
+ userKeyPrefix: { type: 'string', default: '0/0' },
13
+ backupKey: { type: 'string', demandOption: true },
14
+ backupKeyPrefix: { type: 'string', default: '0/0' },
15
+ bitgoKey: { type: 'string', demandOption: true },
16
+ bitgoKeyPrefix: { type: 'string', default: '0/0' },
17
+ };
18
+ function getRootWalletKeys(argv) {
19
+ var _a, _b, _c;
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
+ (_a = argv.userKeyPrefix) !== null && _a !== void 0 ? _a : utxolib.bitgo.RootWalletKeys.defaultPrefix,
24
+ (_b = argv.backupKeyPrefix) !== null && _b !== void 0 ? _b : utxolib.bitgo.RootWalletKeys.defaultPrefix,
25
+ (_c = argv.bitgoKeyPrefix) !== null && _c !== void 0 ? _c : utxolib.bitgo.RootWalletKeys.defaultPrefix,
26
+ ]);
27
+ }
28
+ exports.getRootWalletKeys = getRootWalletKeys;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0S2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmdzL3dhbGxldEtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBQ2pDLGdEQUFnRDtBQUVoRCxTQUFnQixlQUFlLENBQUMsSUFBWTtJQUMxQyxPQUFPLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQ2xFLENBQUM7QUFGRCwwQ0FFQztBQUVZLFFBQUEsVUFBVSxHQUFHO0lBQ3hCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRTtJQUMvQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDakQsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFO0lBQ2pELGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtJQUNuRCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7SUFDaEQsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0NBQzFDLENBQUM7QUFXWCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFnQjs7SUFDaEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0QyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO1FBQzdDLE1BQUEsSUFBSSxDQUFDLGFBQWEsbUNBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYTtRQUNoRSxNQUFBLElBQUksQ0FBQyxlQUFlLG1DQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWE7UUFDbEUsTUFBQSxJQUFJLENBQUMsY0FBYyxtQ0FBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhO0tBQ2xFLENBQUMsQ0FBQztBQUNMLENBQUM7QUFSRCw4Q0FRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1dhbGxldEtleU5hbWUobmFtZTogc3RyaW5nKTogbmFtZSBpcyB1dHhvbGliLmJpdGdvLktleU5hbWUge1xuICByZXR1cm4gbmFtZSA9PT0gJ3VzZXInIHx8IG5hbWUgPT09ICdiYWNrdXAnIHx8IG5hbWUgPT09ICdiaXRnbyc7XG59XG5cbmV4cG9ydCBjb25zdCBrZXlPcHRpb25zID0ge1xuICB1c2VyS2V5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSxcbiAgdXNlcktleVByZWZpeDogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJzAvMCcgfSxcbiAgYmFja3VwS2V5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSxcbiAgYmFja3VwS2V5UHJlZml4OiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnMC8wJyB9LFxuICBiaXRnb0tleTogeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0sXG4gIGJpdGdvS2V5UHJlZml4OiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnMC8wJyB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgS2V5T3B0aW9ucyA9IHtcbiAgdXNlcktleTogc3RyaW5nO1xuICB1c2VyS2V5UHJlZml4Pzogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYmFja3VwS2V5UHJlZml4Pzogc3RyaW5nO1xuICBiaXRnb0tleTogc3RyaW5nO1xuICBiaXRnb0tleVByZWZpeD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290V2FsbGV0S2V5cyhhcmd2OiBLZXlPcHRpb25zKTogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyB7XG4gIGNvbnN0IHhwdWJzID0gW2FyZ3YudXNlcktleSwgYXJndi5iYWNrdXBLZXksIGFyZ3YuYml0Z29LZXldLm1hcCgoaykgPT4gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KGspKTtcbiAgYXNzZXJ0KHV0eG9saWIuYml0Z28uaXNUcmlwbGUoeHB1YnMpKTtcbiAgcmV0dXJuIG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKHhwdWJzLCBbXG4gICAgYXJndi51c2VyS2V5UHJlZml4ID8/IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMuZGVmYXVsdFByZWZpeCxcbiAgICBhcmd2LmJhY2t1cEtleVByZWZpeCA/PyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gICAgYXJndi5iaXRnb0tleVByZWZpeCA/PyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gIF0pO1xufVxuIl19
@@ -1,17 +1,15 @@
1
1
  import * as yargs from 'yargs';
2
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
3
  import { TxParser, TxParserArgs } from './TxParser';
3
4
  import { AddressParser } from './AddressParser';
4
5
  import { ScriptParser } from './ScriptParser';
6
+ import { ReadStringOptions, KeyOptions } from './args';
5
7
  type OutputFormat = 'tree' | 'json';
6
- type ArgsParseTransaction = {
7
- network: string;
8
- stdin: boolean;
9
- clipboard: boolean;
10
- path?: string;
8
+ type ArgsParseTransaction = ReadStringOptions & {
9
+ network: utxolib.Network;
11
10
  txid?: string;
12
11
  blockHeight?: number;
13
12
  txIndex?: number;
14
- data?: string;
15
13
  all: boolean;
16
14
  cache: boolean;
17
15
  format: OutputFormat;
@@ -25,23 +23,20 @@ type ArgsParseTransaction = {
25
23
  parseError: 'throw' | 'continue';
26
24
  } & Omit<TxParserArgs, 'parseSignatureData'>;
27
25
  type ArgsParseAddress = {
28
- network?: string;
26
+ network?: utxolib.Network;
29
27
  all: boolean;
30
28
  format: OutputFormat;
31
29
  convert: boolean;
32
30
  address: string;
33
31
  };
34
32
  type ArgsParseScript = {
35
- network?: string;
33
+ network?: utxolib.Network;
36
34
  format: OutputFormat;
37
35
  all: boolean;
38
36
  script: string;
39
37
  };
40
- export type ArgsGenerateAddress = {
41
- network?: string;
42
- userKey: string;
43
- backupKey: string;
44
- bitgoKey: string;
38
+ export type ArgsGenerateAddress = KeyOptions & {
39
+ network: utxolib.Network;
45
40
  chain?: number[];
46
41
  format: string;
47
42
  index?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}