@bitgo-beta/abstract-utxo 1.6.1-alpha.26 → 1.6.1-alpha.260
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/dist/src/abstractUtxoCoin.d.ts +192 -98
- package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/src/abstractUtxoCoin.js +290 -541
- package/dist/src/core/descriptor/DescriptorMap.d.ts +9 -0
- package/dist/src/core/descriptor/DescriptorMap.d.ts.map +1 -0
- package/dist/src/core/descriptor/DescriptorMap.js +12 -0
- package/dist/src/core/descriptor/Output.d.ts +24 -0
- package/dist/src/core/descriptor/Output.d.ts.map +1 -0
- package/dist/src/core/descriptor/Output.js +22 -0
- package/dist/src/core/descriptor/VirtualSize.d.ts +21 -0
- package/dist/src/core/descriptor/VirtualSize.d.ts.map +1 -0
- package/dist/src/core/descriptor/VirtualSize.js +83 -0
- package/dist/src/core/descriptor/address.d.ts +5 -0
- package/dist/src/core/descriptor/address.d.ts.map +1 -0
- package/dist/src/core/descriptor/address.js +48 -0
- package/dist/src/core/descriptor/index.d.ts +9 -0
- package/dist/src/core/descriptor/index.d.ts.map +1 -0
- package/dist/src/core/descriptor/index.js +17 -0
- package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts +20 -0
- package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/assertSatisfiable.js +74 -0
- package/dist/src/core/descriptor/psbt/createPsbt.d.ts +15 -0
- package/dist/src/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/createPsbt.js +82 -0
- package/dist/src/core/descriptor/psbt/findDescriptors.d.ts +22 -0
- package/dist/src/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/findDescriptors.js +74 -0
- package/dist/src/core/descriptor/psbt/index.d.ts +5 -0
- package/dist/src/core/descriptor/psbt/index.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/index.js +10 -0
- package/dist/src/core/descriptor/psbt/parse.d.ts +27 -0
- package/dist/src/core/descriptor/psbt/parse.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/parse.js +87 -0
- package/dist/src/core/descriptor/psbt/wrap.d.ts +12 -0
- package/dist/src/core/descriptor/psbt/wrap.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/wrap.js +76 -0
- package/dist/src/core/descriptor/signTxLocal.d.ts +3 -0
- package/dist/src/core/descriptor/signTxLocal.d.ts.map +1 -0
- package/dist/src/core/descriptor/signTxLocal.js +9 -0
- package/dist/src/descriptor/NamedDescriptor.d.ts +18 -0
- package/dist/src/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/src/descriptor/NamedDescriptor.js +75 -0
- package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
- package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
- package/dist/src/descriptor/assertDescriptorWalletAddress.js +66 -0
- package/dist/src/descriptor/builder/builder.d.ts +13 -0
- package/dist/src/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/src/descriptor/builder/builder.js +37 -0
- package/dist/src/descriptor/builder/index.d.ts +3 -0
- package/dist/src/descriptor/builder/index.d.ts.map +1 -0
- package/dist/src/descriptor/builder/index.js +8 -0
- package/dist/src/descriptor/builder/parse.d.ts +5 -0
- package/dist/src/descriptor/builder/parse.d.ts.map +1 -0
- package/dist/src/descriptor/builder/parse.js +149 -0
- package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
- package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
- package/dist/src/descriptor/createWallet/createDescriptorWallet.js +74 -0
- package/dist/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
- package/dist/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/src/descriptor/createWallet/createDescriptors.js +33 -0
- package/dist/src/descriptor/createWallet/index.d.ts +3 -0
- package/dist/src/descriptor/createWallet/index.d.ts.map +1 -0
- package/dist/src/descriptor/createWallet/index.js +19 -0
- package/dist/src/descriptor/descriptorWallet.d.ts +19 -0
- package/dist/src/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/src/descriptor/descriptorWallet.js +54 -0
- package/dist/src/descriptor/index.d.ts +7 -0
- package/dist/src/descriptor/index.d.ts.map +1 -0
- package/dist/src/descriptor/index.js +52 -0
- package/dist/src/descriptor/validatePolicy.d.ts +23 -0
- package/dist/src/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/src/descriptor/validatePolicy.js +91 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +31 -2
- package/dist/src/keychains.d.ts +48 -0
- package/dist/src/keychains.d.ts.map +1 -0
- package/dist/src/keychains.js +104 -0
- package/dist/src/names.d.ts +18 -0
- package/dist/src/names.d.ts.map +1 -0
- package/dist/src/names.js +188 -0
- package/dist/src/offlineVault/OfflineVaultHalfSigned.d.ts +8 -0
- package/dist/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
- package/dist/src/offlineVault/OfflineVaultHalfSigned.js +59 -0
- package/dist/src/offlineVault/OfflineVaultSignable.d.ts +46 -0
- package/dist/src/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
- package/dist/src/offlineVault/OfflineVaultSignable.js +55 -0
- package/dist/src/offlineVault/TransactionExplanation.d.ts +15 -0
- package/dist/src/offlineVault/TransactionExplanation.d.ts.map +1 -0
- package/dist/src/offlineVault/TransactionExplanation.js +16 -0
- package/dist/src/offlineVault/descriptor/index.d.ts +2 -0
- package/dist/src/offlineVault/descriptor/index.d.ts.map +1 -0
- package/dist/src/offlineVault/descriptor/index.js +18 -0
- package/dist/src/offlineVault/descriptor/transaction.d.ts +38 -0
- package/dist/src/offlineVault/descriptor/transaction.d.ts.map +1 -0
- package/dist/src/offlineVault/descriptor/transaction.js +80 -0
- package/dist/src/offlineVault/index.d.ts +6 -0
- package/dist/src/offlineVault/index.d.ts.map +1 -0
- package/dist/src/offlineVault/index.js +44 -0
- package/dist/src/recovery/RecoveryProvider.d.ts +1 -1
- package/dist/src/recovery/RecoveryProvider.d.ts.map +1 -1
- package/dist/src/recovery/RecoveryProvider.js +2 -4
- package/dist/src/recovery/backupKeyRecovery.d.ts +41 -16
- package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/src/recovery/backupKeyRecovery.js +168 -96
- package/dist/src/recovery/baseApi.d.ts +3 -6
- package/dist/src/recovery/baseApi.d.ts.map +1 -1
- package/dist/src/recovery/baseApi.js +6 -6
- package/dist/src/recovery/coingeckoApi.d.ts +0 -3
- package/dist/src/recovery/coingeckoApi.d.ts.map +1 -1
- package/dist/src/recovery/coingeckoApi.js +1 -4
- package/dist/src/recovery/crossChainRecovery.d.ts +12 -3
- package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/src/recovery/crossChainRecovery.js +93 -21
- package/dist/src/recovery/index.d.ts +0 -1
- package/dist/src/recovery/index.d.ts.map +1 -1
- package/dist/src/recovery/index.js +6 -3
- package/dist/src/recovery/mempoolApi.d.ts.map +1 -1
- package/dist/src/recovery/mempoolApi.js +10 -7
- package/dist/src/replayProtection.js +37 -5
- package/dist/src/sign.d.ts +29 -8
- package/dist/src/sign.d.ts.map +1 -1
- package/dist/src/sign.js +114 -15
- package/dist/src/transaction/common/verifyPayGoAmount.d.ts +1 -0
- package/dist/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
- package/dist/src/transaction/common/verifyPayGoAmount.js +1 -0
- package/dist/src/transaction/descriptor/explainPsbt.d.ts +5 -0
- package/dist/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/explainPsbt.js +80 -0
- package/dist/src/transaction/descriptor/index.d.ts +7 -0
- package/dist/src/transaction/descriptor/index.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/index.js +14 -0
- package/dist/src/transaction/descriptor/parse.d.ts +14 -0
- package/dist/src/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/parse.js +115 -0
- package/dist/src/transaction/descriptor/parseToAmountType.d.ts +13 -0
- package/dist/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/parseToAmountType.js +60 -0
- package/dist/src/transaction/descriptor/recipient.d.ts +5 -0
- package/dist/src/transaction/descriptor/recipient.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/recipient.js +3 -0
- package/dist/src/transaction/descriptor/signPsbt.d.ts +25 -0
- package/dist/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/signPsbt.js +43 -0
- package/dist/src/transaction/descriptor/verifyTransaction.d.ts +33 -0
- package/dist/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/verifyTransaction.js +105 -0
- package/dist/src/transaction/explainTransaction.d.ts +17 -0
- package/dist/src/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/src/transaction/explainTransaction.js +67 -0
- package/dist/src/transaction/fetchInputs.d.ts +26 -0
- package/dist/src/transaction/fetchInputs.d.ts.map +1 -0
- package/dist/src/transaction/fetchInputs.js +109 -0
- package/dist/src/transaction/fixedScript/explainTransaction.d.ts +30 -0
- package/dist/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/explainTransaction.js +216 -0
- package/dist/src/transaction/fixedScript/index.d.ts +6 -0
- package/dist/src/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/index.js +13 -0
- package/dist/src/transaction/fixedScript/parseOutput.d.ts +26 -0
- package/dist/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/parseOutput.js +213 -0
- package/dist/src/transaction/fixedScript/parseTransaction.d.ts +7 -0
- package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/parseTransaction.js +203 -0
- package/dist/src/transaction/fixedScript/signTransaction.d.ts +17 -0
- package/dist/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/signTransaction.js +138 -0
- package/dist/src/transaction/fixedScript/verifyTransaction.d.ts +4 -0
- package/dist/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/verifyTransaction.js +176 -0
- package/dist/src/transaction/index.d.ts +6 -0
- package/dist/src/transaction/index.d.ts.map +1 -0
- package/dist/src/transaction/index.js +26 -0
- package/dist/src/transaction/outputDifference.d.ts +40 -0
- package/dist/src/transaction/outputDifference.d.ts.map +1 -0
- package/dist/src/transaction/outputDifference.js +47 -0
- package/dist/src/transaction/parseTransaction.d.ts +3 -0
- package/dist/src/transaction/parseTransaction.d.ts.map +1 -0
- package/dist/src/transaction/parseTransaction.js +48 -0
- package/dist/src/transaction/recipient.d.ts +29 -0
- package/dist/src/transaction/recipient.d.ts.map +1 -0
- package/dist/src/transaction/recipient.js +88 -0
- package/dist/src/transaction/signTransaction.d.ts +6 -0
- package/dist/src/transaction/signTransaction.d.ts.map +1 -0
- package/dist/src/transaction/signTransaction.js +102 -0
- package/dist/src/transaction/verifyTransaction.d.ts +4 -0
- package/dist/src/transaction/verifyTransaction.d.ts.map +1 -0
- package/dist/src/transaction/verifyTransaction.js +50 -0
- package/dist/src/verifyKey.d.ts +28 -0
- package/dist/src/verifyKey.d.ts.map +1 -0
- package/dist/src/verifyKey.js +164 -0
- package/dist/src/wallet.d.ts +12 -0
- package/dist/src/wallet.d.ts.map +1 -0
- package/dist/src/wallet.js +3 -0
- package/package.json +19 -11
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -235
- package/dist/src/parseOutput.d.ts +0 -22
- package/dist/src/parseOutput.d.ts.map +0 -1
- package/dist/src/parseOutput.js +0 -170
- package/dist/src/recovery/smartbitApi.d.ts +0 -11
- package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
- package/dist/src/recovery/smartbitApi.js +0 -36
- package/dist/tsconfig.tsbuildinfo +0 -7960
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseDescriptor = exports.getDescriptorFromBuilder = void 0;
|
|
4
|
+
var builder_1 = require("./builder");
|
|
5
|
+
Object.defineProperty(exports, "getDescriptorFromBuilder", { enumerable: true, get: function () { return builder_1.getDescriptorFromBuilder; } });
|
|
6
|
+
var parse_1 = require("./parse");
|
|
7
|
+
Object.defineProperty(exports, "parseDescriptor", { enumerable: true, get: function () { return parse_1.parseDescriptor; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF3RTtBQUEvRCxtSEFBQSx3QkFBd0IsT0FBQTtBQUNqQyxpQ0FBMEM7QUFBakMsd0dBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyLCBEZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vYnVpbGRlcic7XG5leHBvcnQgeyBwYXJzZURlc2NyaXB0b3IgfSBmcm9tICcuL3BhcnNlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
2
|
+
import { DescriptorBuilder } from './builder';
|
|
3
|
+
export declare function parseDescriptorNode(node: unknown): DescriptorBuilder;
|
|
4
|
+
export declare function parseDescriptor(descriptor: Descriptor): DescriptorBuilder;
|
|
5
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/builder/parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,WAAW,CAAC;AA4GxE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CASpE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,iBAAiB,CAMzE"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.parseDescriptorNode = parseDescriptorNode;
|
|
37
|
+
exports.parseDescriptor = parseDescriptor;
|
|
38
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
39
|
+
const builder_1 = require("./builder");
|
|
40
|
+
function isUnaryNode(node, key) {
|
|
41
|
+
if (typeof node !== 'object' || node === null) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const keys = Object.keys(node);
|
|
45
|
+
return keys.length === 1 && keys[0] === key;
|
|
46
|
+
}
|
|
47
|
+
function unwrapNode(node, path) {
|
|
48
|
+
let current = node;
|
|
49
|
+
for (const key of path) {
|
|
50
|
+
if (!isUnaryNode(current, key)) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
current = current[key];
|
|
54
|
+
}
|
|
55
|
+
return current;
|
|
56
|
+
}
|
|
57
|
+
function parseMulti(node) {
|
|
58
|
+
if (!Array.isArray(node)) {
|
|
59
|
+
throw new Error('Unexpected node');
|
|
60
|
+
}
|
|
61
|
+
const [threshold, ...keyNodes] = node;
|
|
62
|
+
if (typeof threshold !== 'number') {
|
|
63
|
+
throw new Error('Expected threshold number');
|
|
64
|
+
}
|
|
65
|
+
const keyWithPath = keyNodes.map((keyNode) => {
|
|
66
|
+
if (!isUnaryNode(keyNode, 'XPub')) {
|
|
67
|
+
throw new Error('Expected XPub node');
|
|
68
|
+
}
|
|
69
|
+
if (typeof keyNode.XPub !== 'string') {
|
|
70
|
+
throw new Error('Expected XPub string');
|
|
71
|
+
}
|
|
72
|
+
const parts = keyNode.XPub.split('/');
|
|
73
|
+
return { xpub: parts[0], path: parts.slice(1).join('/') };
|
|
74
|
+
});
|
|
75
|
+
const paths = keyWithPath.map((k) => k.path);
|
|
76
|
+
paths.forEach((path, i) => {
|
|
77
|
+
if (path !== paths[0]) {
|
|
78
|
+
throw new Error(`Expected all paths to be the same: ${path} !== ${paths[0]}`);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
threshold,
|
|
83
|
+
keys: keyWithPath.map((k) => utxolib.bip32.fromBase58(k.xpub)),
|
|
84
|
+
path: paths[0],
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function parseWshMulti(node) {
|
|
88
|
+
const wshMsMulti = unwrapNode(node, ['Wsh', 'Ms', 'Multi']);
|
|
89
|
+
if (wshMsMulti) {
|
|
90
|
+
const { threshold, keys, path } = parseMulti(wshMsMulti);
|
|
91
|
+
let name;
|
|
92
|
+
if (threshold === 2 && keys.length === 2) {
|
|
93
|
+
name = 'Wsh2Of2';
|
|
94
|
+
}
|
|
95
|
+
else if (threshold === 2 && keys.length === 3) {
|
|
96
|
+
name = 'Wsh2Of3';
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
throw new Error('Unexpected multisig');
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
name,
|
|
103
|
+
keys,
|
|
104
|
+
path,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function parseCltvDrop(node, name, wrapping) {
|
|
109
|
+
const unwrapped = unwrapNode(node, wrapping);
|
|
110
|
+
if (!unwrapped) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(unwrapped) && unwrapped.length === 2) {
|
|
114
|
+
const [a, b] = unwrapped;
|
|
115
|
+
const dropAfterAbsLocktime = unwrapNode(a, ['Drop', 'After', 'absLockTime']);
|
|
116
|
+
if (typeof dropAfterAbsLocktime !== 'number') {
|
|
117
|
+
throw new Error('Expected absLockTime number');
|
|
118
|
+
}
|
|
119
|
+
if (!isUnaryNode(b, 'Multi')) {
|
|
120
|
+
throw new Error('Expected Multi node');
|
|
121
|
+
}
|
|
122
|
+
const multi = parseMulti(b.Multi);
|
|
123
|
+
if (multi.threshold === 2 && multi.keys.length === 3) {
|
|
124
|
+
return {
|
|
125
|
+
name,
|
|
126
|
+
locktime: dropAfterAbsLocktime,
|
|
127
|
+
keys: multi.keys,
|
|
128
|
+
path: multi.path,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function parseDescriptorNode(node) {
|
|
134
|
+
const parsed = parseWshMulti(node) ??
|
|
135
|
+
parseCltvDrop(node, 'ShWsh2Of3CltvDrop', ['Sh', 'Wsh', 'Ms', 'AndV']) ??
|
|
136
|
+
parseCltvDrop(node, 'Wsh2Of3CltvDrop', ['Wsh', 'Ms', 'AndV']);
|
|
137
|
+
if (!parsed) {
|
|
138
|
+
throw new Error('Failed to parse descriptor node');
|
|
139
|
+
}
|
|
140
|
+
return parsed;
|
|
141
|
+
}
|
|
142
|
+
function parseDescriptor(descriptor) {
|
|
143
|
+
const builder = parseDescriptorNode(descriptor.node());
|
|
144
|
+
if ((0, builder_1.getDescriptorFromBuilder)(builder).toString() !== descriptor.toString()) {
|
|
145
|
+
throw new Error('Failed to parse descriptor');
|
|
146
|
+
}
|
|
147
|
+
return builder;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0hBLGtEQVNDO0FBRUQsMENBTUM7QUFoSUQsOERBQWdEO0FBR2hELHVDQUF3RTtBQUl4RSxTQUFTLFdBQVcsQ0FBc0IsSUFBYSxFQUFFLEdBQVM7SUFDaEUsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO0FBQzlDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFhLEVBQUUsSUFBYztJQUMvQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDbkIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYTtJQUsvQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0Qs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RSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckUsYUFBYSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsVUFBc0I7SUFDcEQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsSUFBSSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JCdWlsZGVyLCBnZXREZXNjcmlwdG9yRnJvbUJ1aWxkZXIgfSBmcm9tICcuL2J1aWxkZXInO1xuXG50eXBlIE5vZGVVbmFyeTxLZXkgZXh0ZW5kcyBzdHJpbmc+ID0geyBbayBpbiBLZXldOiB1bmtub3duIH07XG5cbmZ1bmN0aW9uIGlzVW5hcnlOb2RlPFRLZXkgZXh0ZW5kcyBzdHJpbmc+KG5vZGU6IHVua25vd24sIGtleTogVEtleSk6IG5vZGUgaXMgTm9kZVVuYXJ5PFRLZXk+IHtcbiAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JyB8fCBub2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhub2RlKTtcbiAgcmV0dXJuIGtleXMubGVuZ3RoID09PSAxICYmIGtleXNbMF0gPT09IGtleTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTm9kZShub2RlOiB1bmtub3duLCBwYXRoOiBzdHJpbmdbXSk6IHVua25vd24ge1xuICBsZXQgY3VycmVudCA9IG5vZGU7XG4gIGZvciAoY29uc3Qga2V5IG9mIHBhdGgpIHtcbiAgICBpZiAoIWlzVW5hcnlOb2RlKGN1cnJlbnQsIGtleSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gIH1cbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTXVsdGkobm9kZTogdW5rbm93bik6IHtcbiAgdGhyZXNob2xkOiBudW1iZXI7XG4gIGtleXM6IEJJUDMySW50ZXJmYWNlW107XG4gIHBhdGg6IHN0cmluZztcbn0ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgbm9kZScpO1xuICB9XG4gIGNvbnN0IFt0aHJlc2hvbGQsIC4uLmtleU5vZGVzXSA9IG5vZGU7XG4gIGlmICh0eXBlb2YgdGhyZXNob2xkICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdGhyZXNob2xkIG51bWJlcicpO1xuICB9XG4gIGNvbnN0IGtleVdpdGhQYXRoID0ga2V5Tm9kZXMubWFwKChrZXlOb2RlKSA9PiB7XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShrZXlOb2RlLCAnWFB1YicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIFhQdWIgbm9kZScpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGtleU5vZGUuWFB1YiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgWFB1YiBzdHJpbmcnKTtcbiAgICB9XG4gICAgY29uc3QgcGFydHMgPSBrZXlOb2RlLlhQdWIuc3BsaXQoJy8nKTtcbiAgICByZXR1cm4geyB4cHViOiBwYXJ0c1swXSwgcGF0aDogcGFydHMuc2xpY2UoMSkuam9pbignLycpIH07XG4gIH0pO1xuICBjb25zdCBwYXRocyA9IGtleVdpdGhQYXRoLm1hcCgoaykgPT4gay5wYXRoKTtcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCwgaSkgPT4ge1xuICAgIGlmIChwYXRoICE9PSBwYXRoc1swXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhbGwgcGF0aHMgdG8gYmUgdGhlIHNhbWU6ICR7cGF0aH0gIT09ICR7cGF0aHNbMF19YCk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICB0aHJlc2hvbGQsXG4gICAga2V5czoga2V5V2l0aFBhdGgubWFwKChrKSA9PiB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoay54cHViKSksXG4gICAgcGF0aDogcGF0aHNbMF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlV3NoTXVsdGkobm9kZTogdW5rbm93bik6IERlc2NyaXB0b3JCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgd3NoTXNNdWx0aSA9IHVud3JhcE5vZGUobm9kZSwgWydXc2gnLCAnTXMnLCAnTXVsdGknXSk7XG4gIGlmICh3c2hNc011bHRpKSB7XG4gICAgY29uc3QgeyB0aHJlc2hvbGQsIGtleXMsIHBhdGggfSA9IHBhcnNlTXVsdGkod3NoTXNNdWx0aSk7XG4gICAgbGV0IG5hbWU7XG4gICAgaWYgKHRocmVzaG9sZCA9PT0gMiAmJiBrZXlzLmxlbmd0aCA9PT0gMikge1xuICAgICAgbmFtZSA9ICdXc2gyT2YyJztcbiAgICB9IGVsc2UgaWYgKHRocmVzaG9sZCA9PT0gMiAmJiBrZXlzLmxlbmd0aCA9PT0gMykge1xuICAgICAgbmFtZSA9ICdXc2gyT2YzJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIG11bHRpc2lnJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAga2V5cyxcbiAgICAgIHBhdGgsXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUNsdHZEcm9wKFxuICBub2RlOiB1bmtub3duLFxuICBuYW1lOiAnV3NoMk9mM0NsdHZEcm9wJyB8ICdTaFdzaDJPZjNDbHR2RHJvcCcsXG4gIHdyYXBwaW5nOiBzdHJpbmdbXVxuKTogRGVzY3JpcHRvckJ1aWxkZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCB1bndyYXBwZWQgPSB1bndyYXBOb2RlKG5vZGUsIHdyYXBwaW5nKTtcbiAgaWYgKCF1bndyYXBwZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodW53cmFwcGVkKSAmJiB1bndyYXBwZWQubGVuZ3RoID09PSAyKSB7XG4gICAgY29uc3QgW2EsIGJdID0gdW53cmFwcGVkO1xuICAgIGNvbnN0IGRyb3BBZnRlckFic0xvY2t0aW1lID0gdW53cmFwTm9kZShhLCBbJ0Ryb3AnLCAnQWZ0ZXInLCAnYWJzTG9ja1RpbWUnXSk7XG4gICAgaWYgKHR5cGVvZiBkcm9wQWZ0ZXJBYnNMb2NrdGltZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYWJzTG9ja1RpbWUgbnVtYmVyJyk7XG4gICAgfVxuICAgIGlmICghaXNVbmFyeU5vZGUoYiwgJ011bHRpJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgTXVsdGkgbm9kZScpO1xuICAgIH1cbiAgICBjb25zdCBtdWx0aSA9IHBhcnNlTXVsdGkoYi5NdWx0aSk7XG4gICAgaWYgKG11bHRpLnRocmVzaG9sZCA9PT0gMiAmJiBtdWx0aS5rZXlzLmxlbmd0aCA9PT0gMykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgbG9ja3RpbWU6IGRyb3BBZnRlckFic0xvY2t0aW1lLFxuICAgICAgICBrZXlzOiBtdWx0aS5rZXlzLFxuICAgICAgICBwYXRoOiBtdWx0aS5wYXRoLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGVzY3JpcHRvck5vZGUobm9kZTogdW5rbm93bik6IERlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3QgcGFyc2VkID1cbiAgICBwYXJzZVdzaE11bHRpKG5vZGUpID8/XG4gICAgcGFyc2VDbHR2RHJvcChub2RlLCAnU2hXc2gyT2YzQ2x0dkRyb3AnLCBbJ1NoJywgJ1dzaCcsICdNcycsICdBbmRWJ10pID8/XG4gICAgcGFyc2VDbHR2RHJvcChub2RlLCAnV3NoMk9mM0NsdHZEcm9wJywgWydXc2gnLCAnTXMnLCAnQW5kViddKTtcbiAgaWYgKCFwYXJzZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBkZXNjcmlwdG9yIG5vZGUnKTtcbiAgfVxuICByZXR1cm4gcGFyc2VkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXNjcmlwdG9yKGRlc2NyaXB0b3I6IERlc2NyaXB0b3IpOiBEZXNjcmlwdG9yQnVpbGRlciB7XG4gIGNvbnN0IGJ1aWxkZXIgPSBwYXJzZURlc2NyaXB0b3JOb2RlKGRlc2NyaXB0b3Iubm9kZSgpKTtcbiAgaWYgKGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcihidWlsZGVyKS50b1N0cmluZygpICE9PSBkZXNjcmlwdG9yLnRvU3RyaW5nKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBkZXNjcmlwdG9yJyk7XG4gIH1cbiAgcmV0dXJuIGJ1aWxkZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BitGoAPI } from '@bitgo-beta/sdk-api';
|
|
2
|
+
import { AbstractUtxoCoin } from '../../abstractUtxoCoin';
|
|
3
|
+
import { IDescriptorWallet } from '../descriptorWallet';
|
|
4
|
+
import { NamedDescriptor } from '../NamedDescriptor';
|
|
5
|
+
import { DescriptorFromKeys } from './createDescriptors';
|
|
6
|
+
export declare function createDescriptorWallet(bitgo: BitGoAPI, coin: AbstractUtxoCoin, { descriptors, ...params }: {
|
|
7
|
+
type: 'hot';
|
|
8
|
+
label: string;
|
|
9
|
+
enterprise: string;
|
|
10
|
+
keys: string[];
|
|
11
|
+
descriptors: NamedDescriptor[];
|
|
12
|
+
}): Promise<IDescriptorWallet>;
|
|
13
|
+
export declare function createDescriptorWalletWithWalletPassphrase(bitgo: BitGoAPI, coin: AbstractUtxoCoin, { enterprise, walletPassphrase, descriptorsFromKeys, ...params }: {
|
|
14
|
+
label: string;
|
|
15
|
+
enterprise: string;
|
|
16
|
+
walletPassphrase: string;
|
|
17
|
+
descriptorsFromKeys: DescriptorFromKeys;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}): Promise<IDescriptorWallet>;
|
|
20
|
+
//# sourceMappingURL=createDescriptorWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDescriptorWallet.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/createWallet/createDescriptorWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,gBAAgB,EACtB,EACE,WAAW,EACX,GAAG,MAAM,EACV,EAAE;IACD,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC,GACA,OAAO,CAAC,iBAAiB,CAAC,CAW5B;AAED,wBAAsB,0CAA0C,CAC9D,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,gBAAgB,EACtB,EACE,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,GAAG,MAAM,EACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,kBAAkB,CAAC;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,iBAAiB,CAAC,CAqB5B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createDescriptorWallet = createDescriptorWallet;
|
|
37
|
+
exports.createDescriptorWalletWithWalletPassphrase = createDescriptorWalletWithWalletPassphrase;
|
|
38
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
39
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
40
|
+
async function createDescriptorWallet(bitgo, coin, { descriptors, ...params }) {
|
|
41
|
+
// We don't use `coin.wallets().add` here because it does a bunch of validation that does not make sense
|
|
42
|
+
// for descriptor wallets.
|
|
43
|
+
const newWallet = await bitgo
|
|
44
|
+
.post(coin.url('/wallet/add'))
|
|
45
|
+
.send({
|
|
46
|
+
...params,
|
|
47
|
+
coinSpecific: { descriptors },
|
|
48
|
+
})
|
|
49
|
+
.result();
|
|
50
|
+
return new sdk_core_1.Wallet(bitgo, coin, newWallet);
|
|
51
|
+
}
|
|
52
|
+
async function createDescriptorWalletWithWalletPassphrase(bitgo, coin, { enterprise, walletPassphrase, descriptorsFromKeys, ...params }) {
|
|
53
|
+
const userKeychain = await coin.keychains().createUserKeychain(walletPassphrase);
|
|
54
|
+
const backupKeychain = await coin.keychains().createBackup();
|
|
55
|
+
const bitgoKeychain = await coin.keychains().createBitGo({ enterprise });
|
|
56
|
+
if (!userKeychain.prv) {
|
|
57
|
+
throw new Error('Missing private key');
|
|
58
|
+
}
|
|
59
|
+
const userKey = utxolib.bip32.fromBase58(userKeychain.prv);
|
|
60
|
+
const cosigners = [backupKeychain, bitgoKeychain].map((keychain) => {
|
|
61
|
+
if (!keychain.pub) {
|
|
62
|
+
throw new Error('Missing public key');
|
|
63
|
+
}
|
|
64
|
+
return utxolib.bip32.fromBase58(keychain.pub);
|
|
65
|
+
});
|
|
66
|
+
return createDescriptorWallet(bitgo, coin, {
|
|
67
|
+
...params,
|
|
68
|
+
type: 'hot',
|
|
69
|
+
enterprise,
|
|
70
|
+
keys: [userKeychain.id, backupKeychain.id, bitgoKeychain.id],
|
|
71
|
+
descriptors: descriptorsFromKeys(userKey, cosigners),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRGVzY3JpcHRvcldhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2NyZWF0ZVdhbGxldC9jcmVhdGVEZXNjcmlwdG9yV2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsd0RBd0JDO0FBRUQsZ0dBb0NDO0FBdkVELDhEQUFnRDtBQUNoRCxtREFBOEM7QUFRdkMsS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxLQUFlLEVBQ2YsSUFBc0IsRUFDdEIsRUFDRSxXQUFXLEVBQ1gsR0FBRyxNQUFNLEVBT1Y7SUFFRCx3R0FBd0c7SUFDeEcsMEJBQTBCO0lBQzFCLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FBSztTQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM3QixJQUFJLENBQUM7UUFDSixHQUFHLE1BQU07UUFDVCxZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUU7S0FDOUIsQ0FBQztTQUNELE1BQU0sRUFBRSxDQUFDO0lBQ1osT0FBTyxJQUFJLGlCQUFNLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLENBQXNCLENBQUM7QUFDakUsQ0FBQztBQUVNLEtBQUssVUFBVSwwQ0FBMEMsQ0FDOUQsS0FBZSxFQUNmLElBQXNCLEVBQ3RCLEVBQ0UsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsR0FBRyxNQUFNLEVBT1Y7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pGLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDekUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRCxNQUFNLFNBQVMsR0FBRyxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7UUFDekMsR0FBRyxNQUFNO1FBQ1QsSUFBSSxFQUFFLEtBQUs7UUFDWCxVQUFVO1FBQ1YsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDNUQsV0FBVyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7S0FDckQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi9kZXNjcmlwdG9yV2FsbGV0JztcbmltcG9ydCB7IE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4uL05hbWVkRGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JGcm9tS2V5cyB9IGZyb20gJy4vY3JlYXRlRGVzY3JpcHRvcnMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVzY3JpcHRvcldhbGxldChcbiAgYml0Z286IEJpdEdvQVBJLFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICB7XG4gICAgZGVzY3JpcHRvcnMsXG4gICAgLi4ucGFyYW1zXG4gIH06IHtcbiAgICB0eXBlOiAnaG90JztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGVudGVycHJpc2U6IHN0cmluZztcbiAgICBrZXlzOiBzdHJpbmdbXTtcbiAgICBkZXNjcmlwdG9yczogTmFtZWREZXNjcmlwdG9yW107XG4gIH1cbik6IFByb21pc2U8SURlc2NyaXB0b3JXYWxsZXQ+IHtcbiAgLy8gV2UgZG9uJ3QgdXNlIGBjb2luLndhbGxldHMoKS5hZGRgIGhlcmUgYmVjYXVzZSBpdCBkb2VzIGEgYnVuY2ggb2YgdmFsaWRhdGlvbiB0aGF0IGRvZXMgbm90IG1ha2Ugc2Vuc2VcbiAgLy8gZm9yIGRlc2NyaXB0b3Igd2FsbGV0cy5cbiAgY29uc3QgbmV3V2FsbGV0ID0gYXdhaXQgYml0Z29cbiAgICAucG9zdChjb2luLnVybCgnL3dhbGxldC9hZGQnKSlcbiAgICAuc2VuZCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBjb2luU3BlY2lmaWM6IHsgZGVzY3JpcHRvcnMgfSxcbiAgICB9KVxuICAgIC5yZXN1bHQoKTtcbiAgcmV0dXJuIG5ldyBXYWxsZXQoYml0Z28sIGNvaW4sIG5ld1dhbGxldCkgYXMgSURlc2NyaXB0b3JXYWxsZXQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVEZXNjcmlwdG9yV2FsbGV0V2l0aFdhbGxldFBhc3NwaHJhc2UoXG4gIGJpdGdvOiBCaXRHb0FQSSxcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAge1xuICAgIGVudGVycHJpc2UsXG4gICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICBkZXNjcmlwdG9yc0Zyb21LZXlzLFxuICAgIC4uLnBhcmFtc1xuICB9OiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0b3JzRnJvbUtleXM6IERlc2NyaXB0b3JGcm9tS2V5cztcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9XG4pOiBQcm9taXNlPElEZXNjcmlwdG9yV2FsbGV0PiB7XG4gIGNvbnN0IHVzZXJLZXljaGFpbiA9IGF3YWl0IGNvaW4ua2V5Y2hhaW5zKCkuY3JlYXRlVXNlcktleWNoYWluKHdhbGxldFBhc3NwaHJhc2UpO1xuICBjb25zdCBiYWNrdXBLZXljaGFpbiA9IGF3YWl0IGNvaW4ua2V5Y2hhaW5zKCkuY3JlYXRlQmFja3VwKCk7XG4gIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSBhd2FpdCBjb2luLmtleWNoYWlucygpLmNyZWF0ZUJpdEdvKHsgZW50ZXJwcmlzZSB9KTtcbiAgaWYgKCF1c2VyS2V5Y2hhaW4ucHJ2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gIH1cbiAgY29uc3QgdXNlcktleSA9IHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OCh1c2VyS2V5Y2hhaW4ucHJ2KTtcbiAgY29uc3QgY29zaWduZXJzID0gW2JhY2t1cEtleWNoYWluLCBiaXRnb0tleWNoYWluXS5tYXAoKGtleWNoYWluKSA9PiB7XG4gICAgaWYgKCFrZXljaGFpbi5wdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICAgIHJldHVybiB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoa2V5Y2hhaW4ucHViKTtcbiAgfSk7XG4gIHJldHVybiBjcmVhdGVEZXNjcmlwdG9yV2FsbGV0KGJpdGdvLCBjb2luLCB7XG4gICAgLi4ucGFyYW1zLFxuICAgIHR5cGU6ICdob3QnLFxuICAgIGVudGVycHJpc2UsXG4gICAga2V5czogW3VzZXJLZXljaGFpbi5pZCwgYmFja3VwS2V5Y2hhaW4uaWQsIGJpdGdvS2V5Y2hhaW4uaWRdLFxuICAgIGRlc2NyaXB0b3JzOiBkZXNjcmlwdG9yc0Zyb21LZXlzKHVzZXJLZXksIGNvc2lnbmVycyksXG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BIP32Interface } from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { NamedDescriptor } from '../NamedDescriptor';
|
|
3
|
+
export type DescriptorFromKeys = (userKey: BIP32Interface, cosigners: BIP32Interface[]) => NamedDescriptor[];
|
|
4
|
+
/**
|
|
5
|
+
* Create a pair of external and internal descriptors for a 2-of-3 multisig wallet.
|
|
6
|
+
*
|
|
7
|
+
* @param userKey
|
|
8
|
+
* @param cosigners
|
|
9
|
+
* @constructor
|
|
10
|
+
*/
|
|
11
|
+
export declare const DefaultWsh2Of3: DescriptorFromKeys;
|
|
12
|
+
//# sourceMappingURL=createDescriptors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDescriptors.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/createWallet/createDescriptors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAsC,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGzF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,CAAC;AAgC7G;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,kBACiF,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultWsh2Of3 = void 0;
|
|
4
|
+
const NamedDescriptor_1 = require("../NamedDescriptor");
|
|
5
|
+
const builder_1 = require("../builder");
|
|
6
|
+
/**
|
|
7
|
+
* Create a pair of external and internal descriptors for a 2-of-3 multisig wallet.
|
|
8
|
+
* Overrides the path of the builder to use the external and internal derivation paths (0/* and 1/*).
|
|
9
|
+
*
|
|
10
|
+
* @param builder
|
|
11
|
+
* @param userKey
|
|
12
|
+
*/
|
|
13
|
+
function createExternalInternalPair(builder, userKey) {
|
|
14
|
+
if (userKey.isNeutered()) {
|
|
15
|
+
throw new Error('User key must be private');
|
|
16
|
+
}
|
|
17
|
+
const external = (0, NamedDescriptor_1.createNamedDescriptorWithSignature)(builder.name + '/external', (0, builder_1.getDescriptorFromBuilder)({ ...builder, path: '0/*' }), userKey);
|
|
18
|
+
const internal = (0, NamedDescriptor_1.createNamedDescriptorWithSignature)(builder.name + '/internal', (0, builder_1.getDescriptorFromBuilder)({ ...builder, path: '1/*' }), userKey);
|
|
19
|
+
if (external.value === internal.value) {
|
|
20
|
+
throw new Error('External and internal descriptors must be different. Make to use the path in descriptor.');
|
|
21
|
+
}
|
|
22
|
+
return [external, internal];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create a pair of external and internal descriptors for a 2-of-3 multisig wallet.
|
|
26
|
+
*
|
|
27
|
+
* @param userKey
|
|
28
|
+
* @param cosigners
|
|
29
|
+
* @constructor
|
|
30
|
+
*/
|
|
31
|
+
const DefaultWsh2Of3 = (userKey, cosigners) => createExternalInternalPair({ name: 'Wsh2Of3', keys: [userKey.neutered(), ...cosigners], path: '' }, userKey);
|
|
32
|
+
exports.DefaultWsh2Of3 = DefaultWsh2Of3;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRGVzY3JpcHRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9jcmVhdGVXYWxsZXQvY3JlYXRlRGVzY3JpcHRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsd0RBQXlGO0FBQ3pGLHdDQUF5RTtBQUl6RTs7Ozs7O0dBTUc7QUFDSCxTQUFTLDBCQUEwQixDQUNqQyxPQUEwQixFQUMxQixPQUF1QjtJQUV2QixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBQSxvREFBa0MsRUFDakQsT0FBTyxDQUFDLElBQUksR0FBRyxXQUFXLEVBQzFCLElBQUEsa0NBQXdCLEVBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDckQsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFBLG9EQUFrQyxFQUNqRCxPQUFPLENBQUMsSUFBSSxHQUFHLFdBQVcsRUFDMUIsSUFBQSxrQ0FBd0IsRUFBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUNyRCxPQUFPLENBQ1IsQ0FBQztJQUNGLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFDRCxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxNQUFNLGNBQWMsR0FBdUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FDdkUsMEJBQTBCLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztBQURsRyxRQUFBLGNBQWMsa0JBQ29GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IGNyZWF0ZU5hbWVkRGVzY3JpcHRvcldpdGhTaWduYXR1cmUsIE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4uL05hbWVkRGVzY3JpcHRvcic7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yRnJvbUJ1aWxkZXIsIERlc2NyaXB0b3JCdWlsZGVyIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5cbmV4cG9ydCB0eXBlIERlc2NyaXB0b3JGcm9tS2V5cyA9ICh1c2VyS2V5OiBCSVAzMkludGVyZmFjZSwgY29zaWduZXJzOiBCSVAzMkludGVyZmFjZVtdKSA9PiBOYW1lZERlc2NyaXB0b3JbXTtcblxuLyoqXG4gKiBDcmVhdGUgYSBwYWlyIG9mIGV4dGVybmFsIGFuZCBpbnRlcm5hbCBkZXNjcmlwdG9ycyBmb3IgYSAyLW9mLTMgbXVsdGlzaWcgd2FsbGV0LlxuICogT3ZlcnJpZGVzIHRoZSBwYXRoIG9mIHRoZSBidWlsZGVyIHRvIHVzZSB0aGUgZXh0ZXJuYWwgYW5kIGludGVybmFsIGRlcml2YXRpb24gcGF0aHMgKDAvKiBhbmQgMS8qKS5cbiAqXG4gKiBAcGFyYW0gYnVpbGRlclxuICogQHBhcmFtIHVzZXJLZXlcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRXh0ZXJuYWxJbnRlcm5hbFBhaXIoXG4gIGJ1aWxkZXI6IERlc2NyaXB0b3JCdWlsZGVyLFxuICB1c2VyS2V5OiBCSVAzMkludGVyZmFjZVxuKTogW05hbWVkRGVzY3JpcHRvciwgTmFtZWREZXNjcmlwdG9yXSB7XG4gIGlmICh1c2VyS2V5LmlzTmV1dGVyZWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNlciBrZXkgbXVzdCBiZSBwcml2YXRlJyk7XG4gIH1cbiAgY29uc3QgZXh0ZXJuYWwgPSBjcmVhdGVOYW1lZERlc2NyaXB0b3JXaXRoU2lnbmF0dXJlKFxuICAgIGJ1aWxkZXIubmFtZSArICcvZXh0ZXJuYWwnLFxuICAgIGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcih7IC4uLmJ1aWxkZXIsIHBhdGg6ICcwLyonIH0pLFxuICAgIHVzZXJLZXlcbiAgKTtcbiAgY29uc3QgaW50ZXJuYWwgPSBjcmVhdGVOYW1lZERlc2NyaXB0b3JXaXRoU2lnbmF0dXJlKFxuICAgIGJ1aWxkZXIubmFtZSArICcvaW50ZXJuYWwnLFxuICAgIGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcih7IC4uLmJ1aWxkZXIsIHBhdGg6ICcxLyonIH0pLFxuICAgIHVzZXJLZXlcbiAgKTtcbiAgaWYgKGV4dGVybmFsLnZhbHVlID09PSBpbnRlcm5hbC52YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXh0ZXJuYWwgYW5kIGludGVybmFsIGRlc2NyaXB0b3JzIG11c3QgYmUgZGlmZmVyZW50LiBNYWtlIHRvIHVzZSB0aGUgcGF0aCBpbiBkZXNjcmlwdG9yLicpO1xuICB9XG4gIHJldHVybiBbZXh0ZXJuYWwsIGludGVybmFsXTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYWlyIG9mIGV4dGVybmFsIGFuZCBpbnRlcm5hbCBkZXNjcmlwdG9ycyBmb3IgYSAyLW9mLTMgbXVsdGlzaWcgd2FsbGV0LlxuICpcbiAqIEBwYXJhbSB1c2VyS2V5XG4gKiBAcGFyYW0gY29zaWduZXJzXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRXc2gyT2YzOiBEZXNjcmlwdG9yRnJvbUtleXMgPSAodXNlcktleSwgY29zaWduZXJzKSA9PlxuICBjcmVhdGVFeHRlcm5hbEludGVybmFsUGFpcih7IG5hbWU6ICdXc2gyT2YzJywga2V5czogW3VzZXJLZXkubmV1dGVyZWQoKSwgLi4uY29zaWduZXJzXSwgcGF0aDogJycgfSwgdXNlcktleSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/createWallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./createDescriptors"), exports);
|
|
18
|
+
__exportStar(require("./createDescriptorWallet"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9jcmVhdGVXYWxsZXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFvQztBQUNwQywyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZURlc2NyaXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlRGVzY3JpcHRvcldhbGxldCc7XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IWallet, WalletCoinSpecific } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { DescriptorMap } from '../core/descriptor';
|
|
3
|
+
import { UtxoWallet, UtxoWalletData } from '../wallet';
|
|
4
|
+
import { NamedDescriptor } from './NamedDescriptor';
|
|
5
|
+
import { DescriptorValidationPolicy, KeyTriple } from './validatePolicy';
|
|
6
|
+
type DescriptorWalletCoinSpecific = {
|
|
7
|
+
descriptors: NamedDescriptor[];
|
|
8
|
+
};
|
|
9
|
+
type DescriptorWalletData = UtxoWalletData & {
|
|
10
|
+
coinSpecific: DescriptorWalletCoinSpecific;
|
|
11
|
+
};
|
|
12
|
+
export interface IDescriptorWallet extends UtxoWallet {
|
|
13
|
+
coinSpecific(): WalletCoinSpecific & DescriptorWalletCoinSpecific;
|
|
14
|
+
}
|
|
15
|
+
export declare function isDescriptorWalletData(obj: UtxoWalletData): obj is DescriptorWalletData;
|
|
16
|
+
export declare function isDescriptorWallet(obj: IWallet): obj is IDescriptorWallet;
|
|
17
|
+
export declare function getDescriptorMapFromWallet(wallet: IDescriptorWallet, walletKeys: KeyTriple, policy: DescriptorValidationPolicy): DescriptorMap;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=descriptorWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"descriptorWallet.d.ts","sourceRoot":"","sources":["../../../src/descriptor/descriptorWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAA2B,MAAM,kBAAkB,CAAC;AAElG,KAAK,4BAA4B,GAAG;IAClC,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAQF,KAAK,oBAAoB,GAAG,cAAc,GAAG;IAC3C,YAAY,EAAE,4BAA4B,CAAC;CAC5C,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,YAAY,IAAI,kBAAkB,GAAG,4BAA4B,CAAC;CACnE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,GAAG,IAAI,oBAAoB,CAEvF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAEzE;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,0BAA0B,GACjC,aAAa,CAEf"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.isDescriptorWalletData = isDescriptorWalletData;
|
|
37
|
+
exports.isDescriptorWallet = isDescriptorWallet;
|
|
38
|
+
exports.getDescriptorMapFromWallet = getDescriptorMapFromWallet;
|
|
39
|
+
const t = __importStar(require("io-ts"));
|
|
40
|
+
const NamedDescriptor_1 = require("./NamedDescriptor");
|
|
41
|
+
const validatePolicy_1 = require("./validatePolicy");
|
|
42
|
+
function isDescriptorWalletCoinSpecific(obj) {
|
|
43
|
+
return (obj !== null && typeof obj === 'object' && 'descriptors' in obj && t.array(NamedDescriptor_1.NamedDescriptor).is(obj.descriptors));
|
|
44
|
+
}
|
|
45
|
+
function isDescriptorWalletData(obj) {
|
|
46
|
+
return isDescriptorWalletCoinSpecific(obj.coinSpecific);
|
|
47
|
+
}
|
|
48
|
+
function isDescriptorWallet(obj) {
|
|
49
|
+
return isDescriptorWalletCoinSpecific(obj.coinSpecific());
|
|
50
|
+
}
|
|
51
|
+
function getDescriptorMapFromWallet(wallet, walletKeys, policy) {
|
|
52
|
+
return (0, validatePolicy_1.toDescriptorMapValidate)(wallet.coinSpecific().descriptors, walletKeys, policy);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcldhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQkEsd0RBRUM7QUFFRCxnREFFQztBQUVELGdFQU1DO0FBekNELHlDQUEyQjtBQU0zQix1REFBb0Q7QUFDcEQscURBQWtHO0FBTWxHLFNBQVMsOEJBQThCLENBQUMsR0FBWTtJQUNsRCxPQUFPLENBQ0wsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksYUFBYSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLGlDQUFlLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUNoSCxDQUFDO0FBQ0osQ0FBQztBQVVELFNBQWdCLHNCQUFzQixDQUFDLEdBQW1CO0lBQ3hELE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxHQUFZO0lBQzdDLE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLDBCQUEwQixDQUN4QyxNQUF5QixFQUN6QixVQUFxQixFQUNyQixNQUFrQztJQUVsQyxPQUFPLElBQUEsd0NBQXVCLEVBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgSVdhbGxldCwgV2FsbGV0Q29pblNwZWNpZmljIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vY29yZS9kZXNjcmlwdG9yJztcbmltcG9ydCB7IFV0eG9XYWxsZXQsIFV0eG9XYWxsZXREYXRhIH0gZnJvbSAnLi4vd2FsbGV0JztcblxuaW1wb3J0IHsgTmFtZWREZXNjcmlwdG9yIH0gZnJvbSAnLi9OYW1lZERlc2NyaXB0b3InO1xuaW1wb3J0IHsgRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3ksIEtleVRyaXBsZSwgdG9EZXNjcmlwdG9yTWFwVmFsaWRhdGUgfSBmcm9tICcuL3ZhbGlkYXRlUG9saWN5JztcblxudHlwZSBEZXNjcmlwdG9yV2FsbGV0Q29pblNwZWNpZmljID0ge1xuICBkZXNjcmlwdG9yczogTmFtZWREZXNjcmlwdG9yW107XG59O1xuXG5mdW5jdGlvbiBpc0Rlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMob2JqOiB1bmtub3duKTogb2JqIGlzIERlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMge1xuICByZXR1cm4gKFxuICAgIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiAnZGVzY3JpcHRvcnMnIGluIG9iaiAmJiB0LmFycmF5KE5hbWVkRGVzY3JpcHRvcikuaXMob2JqLmRlc2NyaXB0b3JzKVxuICApO1xufVxuXG50eXBlIERlc2NyaXB0b3JXYWxsZXREYXRhID0gVXR4b1dhbGxldERhdGEgJiB7XG4gIGNvaW5TcGVjaWZpYzogRGVzY3JpcHRvcldhbGxldENvaW5TcGVjaWZpYztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlc2NyaXB0b3JXYWxsZXQgZXh0ZW5kcyBVdHhvV2FsbGV0IHtcbiAgY29pblNwZWNpZmljKCk6IFdhbGxldENvaW5TcGVjaWZpYyAmIERlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc2NyaXB0b3JXYWxsZXREYXRhKG9iajogVXR4b1dhbGxldERhdGEpOiBvYmogaXMgRGVzY3JpcHRvcldhbGxldERhdGEge1xuICByZXR1cm4gaXNEZXNjcmlwdG9yV2FsbGV0Q29pblNwZWNpZmljKG9iai5jb2luU3BlY2lmaWMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXNjcmlwdG9yV2FsbGV0KG9iajogSVdhbGxldCk6IG9iaiBpcyBJRGVzY3JpcHRvcldhbGxldCB7XG4gIHJldHVybiBpc0Rlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMob2JqLmNvaW5TcGVjaWZpYygpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0KFxuICB3YWxsZXQ6IElEZXNjcmlwdG9yV2FsbGV0LFxuICB3YWxsZXRLZXlzOiBLZXlUcmlwbGUsXG4gIHBvbGljeTogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3lcbik6IERlc2NyaXB0b3JNYXAge1xuICByZXR1cm4gdG9EZXNjcmlwdG9yTWFwVmFsaWRhdGUod2FsbGV0LmNvaW5TcGVjaWZpYygpLmRlc2NyaXB0b3JzLCB3YWxsZXRLZXlzLCBwb2xpY3kpO1xufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Miniscript, Descriptor } from '@bitgo/wasm-miniscript';
|
|
2
|
+
export { assertDescriptorWalletAddress } from './assertDescriptorWalletAddress';
|
|
3
|
+
export { NamedDescriptor, createNamedDescriptorWithSignature, hasValidSignature } from './NamedDescriptor';
|
|
4
|
+
export { isDescriptorWallet, getDescriptorMapFromWallet } from './descriptorWallet';
|
|
5
|
+
export { getPolicyForEnv } from './validatePolicy';
|
|
6
|
+
export * as createWallet from './createWallet';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,kCAAkC,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createWallet = exports.getPolicyForEnv = exports.getDescriptorMapFromWallet = exports.isDescriptorWallet = exports.hasValidSignature = exports.createNamedDescriptorWithSignature = exports.NamedDescriptor = exports.assertDescriptorWalletAddress = exports.Descriptor = exports.Miniscript = void 0;
|
|
37
|
+
var wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
38
|
+
Object.defineProperty(exports, "Miniscript", { enumerable: true, get: function () { return wasm_miniscript_1.Miniscript; } });
|
|
39
|
+
Object.defineProperty(exports, "Descriptor", { enumerable: true, get: function () { return wasm_miniscript_1.Descriptor; } });
|
|
40
|
+
var assertDescriptorWalletAddress_1 = require("./assertDescriptorWalletAddress");
|
|
41
|
+
Object.defineProperty(exports, "assertDescriptorWalletAddress", { enumerable: true, get: function () { return assertDescriptorWalletAddress_1.assertDescriptorWalletAddress; } });
|
|
42
|
+
var NamedDescriptor_1 = require("./NamedDescriptor");
|
|
43
|
+
Object.defineProperty(exports, "NamedDescriptor", { enumerable: true, get: function () { return NamedDescriptor_1.NamedDescriptor; } });
|
|
44
|
+
Object.defineProperty(exports, "createNamedDescriptorWithSignature", { enumerable: true, get: function () { return NamedDescriptor_1.createNamedDescriptorWithSignature; } });
|
|
45
|
+
Object.defineProperty(exports, "hasValidSignature", { enumerable: true, get: function () { return NamedDescriptor_1.hasValidSignature; } });
|
|
46
|
+
var descriptorWallet_1 = require("./descriptorWallet");
|
|
47
|
+
Object.defineProperty(exports, "isDescriptorWallet", { enumerable: true, get: function () { return descriptorWallet_1.isDescriptorWallet; } });
|
|
48
|
+
Object.defineProperty(exports, "getDescriptorMapFromWallet", { enumerable: true, get: function () { return descriptorWallet_1.getDescriptorMapFromWallet; } });
|
|
49
|
+
var validatePolicy_1 = require("./validatePolicy");
|
|
50
|
+
Object.defineProperty(exports, "getPolicyForEnv", { enumerable: true, get: function () { return validatePolicy_1.getPolicyForEnv; } });
|
|
51
|
+
exports.createWallet = __importStar(require("./createWallet"));
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBZ0U7QUFBdkQsNkdBQUEsVUFBVSxPQUFBO0FBQUUsNkdBQUEsVUFBVSxPQUFBO0FBQy9CLGlGQUFnRjtBQUF2RSw4SUFBQSw2QkFBNkIsT0FBQTtBQUN0QyxxREFBMkc7QUFBbEcsa0hBQUEsZUFBZSxPQUFBO0FBQUUscUlBQUEsa0NBQWtDLE9BQUE7QUFBRSxvSEFBQSxpQkFBaUIsT0FBQTtBQUMvRSx1REFBb0Y7QUFBM0Usc0hBQUEsa0JBQWtCLE9BQUE7QUFBRSw4SEFBQSwwQkFBMEIsT0FBQTtBQUN2RCxtREFBbUQ7QUFBMUMsaUhBQUEsZUFBZSxPQUFBO0FBQ3hCLCtEQUErQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE1pbmlzY3JpcHQsIERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmV4cG9ydCB7IGFzc2VydERlc2NyaXB0b3JXYWxsZXRBZGRyZXNzIH0gZnJvbSAnLi9hc3NlcnREZXNjcmlwdG9yV2FsbGV0QWRkcmVzcyc7XG5leHBvcnQgeyBOYW1lZERlc2NyaXB0b3IsIGNyZWF0ZU5hbWVkRGVzY3JpcHRvcldpdGhTaWduYXR1cmUsIGhhc1ZhbGlkU2lnbmF0dXJlIH0gZnJvbSAnLi9OYW1lZERlc2NyaXB0b3InO1xuZXhwb3J0IHsgaXNEZXNjcmlwdG9yV2FsbGV0LCBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCB9IGZyb20gJy4vZGVzY3JpcHRvcldhbGxldCc7XG5leHBvcnQgeyBnZXRQb2xpY3lGb3JFbnYgfSBmcm9tICcuL3ZhbGlkYXRlUG9saWN5JztcbmV4cG9ydCAqIGFzIGNyZWF0ZVdhbGxldCBmcm9tICcuL2NyZWF0ZVdhbGxldCc7XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
2
|
+
import { EnvironmentName, Triple } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
4
|
+
import { DescriptorMap } from '../core/descriptor';
|
|
5
|
+
import { NamedDescriptor } from './NamedDescriptor';
|
|
6
|
+
export type KeyTriple = Triple<utxolib.BIP32Interface>;
|
|
7
|
+
export interface DescriptorValidationPolicy {
|
|
8
|
+
name: string;
|
|
9
|
+
validate(d: Descriptor, walletKeys: KeyTriple, signatures: string[]): boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const policyAllowAll: DescriptorValidationPolicy;
|
|
12
|
+
export declare function getValidatorDescriptorTemplate(name: string): DescriptorValidationPolicy;
|
|
13
|
+
export declare function getValidatorEvery(validators: DescriptorValidationPolicy[]): DescriptorValidationPolicy;
|
|
14
|
+
export declare function getValidatorSome(validators: DescriptorValidationPolicy[]): DescriptorValidationPolicy;
|
|
15
|
+
export declare function getValidatorOneOfTemplates(names: string[]): DescriptorValidationPolicy;
|
|
16
|
+
export declare function getValidatorSignedByUserKey(): DescriptorValidationPolicy;
|
|
17
|
+
export declare class DescriptorPolicyValidationError extends Error {
|
|
18
|
+
constructor(descriptor: Descriptor, policy: DescriptorValidationPolicy);
|
|
19
|
+
}
|
|
20
|
+
export declare function assertDescriptorPolicy(descriptor: Descriptor, policy: DescriptorValidationPolicy, walletKeys: KeyTriple, signatures: string[]): void;
|
|
21
|
+
export declare function toDescriptorMapValidate(descriptors: NamedDescriptor[], walletKeys: KeyTriple, policy: DescriptorValidationPolicy): DescriptorMap;
|
|
22
|
+
export declare function getPolicyForEnv(env: EnvironmentName): DescriptorValidationPolicy;
|
|
23
|
+
//# sourceMappingURL=validatePolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatePolicy.d.ts","sourceRoot":"","sources":["../../../src/descriptor/validatePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAqB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAEvD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;CAC/E;AAED,eAAO,MAAM,cAAc,EAAE,0BAG5B,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAYvF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,0BAA0B,EAAE,GAAG,0BAA0B,CAOtG;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,EAAE,GAAG,0BAA0B,CAOrG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAEtF;AAED,wBAAgB,2BAA2B,IAAI,0BAA0B,CAQxE;AAED,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,0BAA0B;CAGvE;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,SAAS,EACrB,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI,CAIN;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,eAAe,EAAE,EAC9B,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,0BAA0B,GACjC,aAAa,CAQf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,0BAA0B,CAahF"}
|