@bitgo-beta/abstract-utxo 1.1.1-beta.2014 → 1.1.1-beta.2016
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/cjs/src/abstractUtxoCoin.js +3 -3
- package/dist/cjs/src/deriveKeyWithSeed.d.ts +12 -0
- package/dist/cjs/src/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/cjs/src/deriveKeyWithSeed.js +17 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts +5 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/builder/builder.js +18 -1
- package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/builder/parse.js +34 -2
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts +1 -1
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/descriptorWallet.js +1 -1
- package/dist/cjs/src/descriptor/index.d.ts +2 -1
- package/dist/cjs/src/descriptor/index.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/index.js +1 -1
- package/dist/cjs/src/descriptor/validatePolicy.d.ts +1 -1
- package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/validatePolicy.js +3 -1
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -1
- package/dist/cjs/src/impl/btc/inscriptionBuilder.js +3 -4
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -1
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +4 -5
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
- package/dist/cjs/src/offlineVault/descriptor/transaction.js +4 -4
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/explainPsbt.js +7 -5
- package/dist/cjs/src/transaction/descriptor/index.d.ts +1 -1
- package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/index.js +1 -1
- package/dist/cjs/src/transaction/descriptor/parse.d.ts +1 -2
- package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/parse.js +7 -5
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +2 -1
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/signPsbt.js +1 -1
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +1 -2
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +6 -4
- package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts +2 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.js +56 -0
- package/dist/cjs/test/unit/descriptor/builder.js +15 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.js +3 -3
- package/dist/esm/deriveKeyWithSeed.d.ts +12 -0
- package/dist/esm/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/esm/deriveKeyWithSeed.js +14 -0
- package/dist/esm/descriptor/builder/builder.d.ts +5 -0
- package/dist/esm/descriptor/builder/builder.d.ts.map +1 -1
- package/dist/esm/descriptor/builder/builder.js +18 -1
- package/dist/esm/descriptor/builder/parse.d.ts.map +1 -1
- package/dist/esm/descriptor/builder/parse.js +34 -2
- package/dist/esm/descriptor/descriptorWallet.d.ts +1 -1
- package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -1
- package/dist/esm/descriptor/descriptorWallet.js +1 -1
- package/dist/esm/descriptor/index.d.ts +2 -1
- package/dist/esm/descriptor/index.d.ts.map +1 -1
- package/dist/esm/descriptor/index.js +1 -1
- package/dist/esm/descriptor/validatePolicy.d.ts +1 -1
- package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -1
- package/dist/esm/descriptor/validatePolicy.js +3 -1
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -1
- package/dist/esm/impl/btc/inscriptionBuilder.js +4 -5
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -1
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +4 -5
- package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -1
- package/dist/esm/offlineVault/descriptor/transaction.js +4 -4
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/explainPsbt.js +4 -2
- package/dist/esm/transaction/descriptor/index.d.ts +1 -1
- package/dist/esm/transaction/descriptor/index.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/index.js +1 -1
- package/dist/esm/transaction/descriptor/parse.d.ts +1 -2
- package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/parse.js +6 -4
- package/dist/esm/transaction/descriptor/signPsbt.d.ts +2 -1
- package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/signPsbt.js +1 -1
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +1 -2
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/verifyTransaction.js +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +5 -3
- package/package.json +11 -10
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseDescriptorNode = parseDescriptorNode;
|
|
4
4
|
exports.parseDescriptor = parseDescriptor;
|
|
5
|
+
const utxo_descriptors_1 = require("@bitgo-beta/utxo-descriptors");
|
|
5
6
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
6
7
|
const builder_1 = require("./builder");
|
|
7
8
|
function isUnaryNode(node, key) {
|
|
@@ -72,6 +73,35 @@ function parseWshMulti(node) {
|
|
|
72
73
|
};
|
|
73
74
|
}
|
|
74
75
|
}
|
|
76
|
+
function parseSbtcDeposit(descriptor) {
|
|
77
|
+
const parsed = utxo_descriptors_1.sbtc.parseSbtcDepositDescriptor(descriptor);
|
|
78
|
+
if (!parsed) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// For wallet descriptors the reclaim leaf is a derivable `multi_a` with
|
|
82
|
+
// `xpub.../*` entries; split each into xpub + path. Definite descriptors
|
|
83
|
+
// produce raw hex strings here, which `BIP32.fromBase58` rejects — that
|
|
84
|
+
// matches our intent, since a definite descriptor isn't a wallet descriptor.
|
|
85
|
+
const keyWithPath = parsed.reclaimKeyStrings.map((k) => {
|
|
86
|
+
const [xpub, ...rest] = k.split('/');
|
|
87
|
+
return { xpub, path: rest.join('/') };
|
|
88
|
+
});
|
|
89
|
+
const paths = keyWithPath.map((k) => k.path);
|
|
90
|
+
paths.forEach((p) => {
|
|
91
|
+
if (p !== paths[0]) {
|
|
92
|
+
throw new Error(`Expected all multi_a paths to be the same: ${p} !== ${paths[0]}`);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
name: 'SbtcDeposit',
|
|
97
|
+
keys: keyWithPath.map((k) => wasm_utxo_1.BIP32.fromBase58(k.xpub)),
|
|
98
|
+
path: paths[0],
|
|
99
|
+
lockTime: parsed.lockTime,
|
|
100
|
+
maxFee: parsed.maxFee,
|
|
101
|
+
stacksRecipient: parsed.stacksRecipient,
|
|
102
|
+
signersAggregateKey: parsed.signersAggregateKey,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
75
105
|
function parseCltvDrop(node, name, wrapping) {
|
|
76
106
|
const unwrapped = unwrapNode(node, wrapping);
|
|
77
107
|
if (!unwrapped) {
|
|
@@ -107,10 +137,12 @@ function parseDescriptorNode(node) {
|
|
|
107
137
|
return parsed;
|
|
108
138
|
}
|
|
109
139
|
function parseDescriptor(descriptor) {
|
|
110
|
-
|
|
140
|
+
// sBTC peg-in uses a Taproot `tr(...)` descriptor that the raw-node parsers
|
|
141
|
+
// don't recognize; match it against the ast form first.
|
|
142
|
+
const builder = parseSbtcDeposit(descriptor) ?? parseDescriptorNode(descriptor.node());
|
|
111
143
|
if ((0, builder_1.getDescriptorFromBuilder)(builder).toString() !== descriptor.toString()) {
|
|
112
144
|
throw new Error('Failed to parse descriptor');
|
|
113
145
|
}
|
|
114
146
|
return builder;
|
|
115
147
|
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOEdBLGtEQVNDO0FBRUQsMENBTUM7QUEvSEQsZ0RBQTREO0FBRTVELHVDQUF3RTtBQUl4RSxTQUFTLFdBQVcsQ0FBc0IsSUFBYSxFQUFFLEdBQVM7SUFDaEUsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO0FBQzlDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFhLEVBQUUsSUFBYztJQUMvQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDbkIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYTtJQUsvQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLFFBQVEs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QUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsVUFBc0I7SUFDcEQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsSUFBSSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMyLCBiaXAzMiwgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yQnVpbGRlciwgZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVyJztcblxudHlwZSBOb2RlVW5hcnk8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHsgW2sgaW4gS2V5XTogdW5rbm93biB9O1xuXG5mdW5jdGlvbiBpc1VuYXJ5Tm9kZTxUS2V5IGV4dGVuZHMgc3RyaW5nPihub2RlOiB1bmtub3duLCBrZXk6IFRLZXkpOiBub2RlIGlzIE5vZGVVbmFyeTxUS2V5PiB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcgfHwgbm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMobm9kZSk7XG4gIHJldHVybiBrZXlzLmxlbmd0aCA9PT0gMSAmJiBrZXlzWzBdID09PSBrZXk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcE5vZGUobm9kZTogdW5rbm93biwgcGF0aDogc3RyaW5nW10pOiB1bmtub3duIHtcbiAgbGV0IGN1cnJlbnQgPSBub2RlO1xuICBmb3IgKGNvbnN0IGtleSBvZiBwYXRoKSB7XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShjdXJyZW50LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuXG5mdW5jdGlvbiBwYXJzZU11bHRpKG5vZGU6IHVua25vd24pOiB7XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBrZXlzOiBiaXAzMi5CSVAzMkludGVyZmFjZVtdO1xuICBwYXRoOiBzdHJpbmc7XG59IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIG5vZGUnKTtcbiAgfVxuICBjb25zdCBbdGhyZXNob2xkLCAuLi5rZXlOb2Rlc10gPSBub2RlO1xuICBpZiAodHlwZW9mIHRocmVzaG9sZCAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRocmVzaG9sZCBudW1iZXInKTtcbiAgfVxuICBjb25zdCBrZXlXaXRoUGF0aCA9IGtleU5vZGVzLm1hcCgoa2V5Tm9kZSkgPT4ge1xuICAgIGlmICghaXNVbmFyeU5vZGUoa2V5Tm9kZSwgJ1hQdWInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBYUHViIG5vZGUnKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBrZXlOb2RlLlhQdWIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIFhQdWIgc3RyaW5nJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0ga2V5Tm9kZS5YUHViLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgeHB1YjogcGFydHNbMF0sIHBhdGg6IHBhcnRzLnNsaWNlKDEpLmpvaW4oJy8nKSB9O1xuICB9KTtcbiAgY29uc3QgcGF0aHMgPSBrZXlXaXRoUGF0aC5tYXAoKGspID0+IGsucGF0aCk7XG4gIHBhdGhzLmZvckVhY2goKHBhdGgsIGkpID0+IHtcbiAgICBpZiAocGF0aCAhPT0gcGF0aHNbMF0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYWxsIHBhdGhzIHRvIGJlIHRoZSBzYW1lOiAke3BhdGh9ICE9PSAke3BhdGhzWzBdfWApO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB7XG4gICAgdGhyZXNob2xkLFxuICAgIGtleXM6IGtleVdpdGhQYXRoLm1hcCgoaykgPT4gQklQMzIuZnJvbUJhc2U1OChrLnhwdWIpKSxcbiAgICBwYXRoOiBwYXRoc1swXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VXc2hNdWx0aShub2RlOiB1bmtub3duKTogRGVzY3JpcHRvckJ1aWxkZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCB3c2hNc011bHRpID0gdW53cmFwTm9kZShub2RlLCBbJ1dzaCcsICdNcycsICdNdWx0aSddKTtcbiAgaWYgKHdzaE1zTXVsdGkpIHtcbiAgICBjb25zdCB7IHRocmVzaG9sZCwga2V5cywgcGF0aCB9ID0gcGFyc2VNdWx0aSh3c2hNc011bHRpKTtcbiAgICBsZXQgbmFtZTtcbiAgICBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAyKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjInO1xuICAgIH0gZWxzZSBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgbXVsdGlzaWcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBrZXlzLFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ2x0dkRyb3AoXG4gIG5vZGU6IHVua25vd24sXG4gIG5hbWU6ICdXc2gyT2YzQ2x0dkRyb3AnIHwgJ1NoV3NoMk9mM0NsdHZEcm9wJyxcbiAgd3JhcHBpbmc6IHN0cmluZ1tdXG4pOiBEZXNjcmlwdG9yQnVpbGRlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHVud3JhcHBlZCA9IHVud3JhcE5vZGUobm9kZSwgd3JhcHBpbmcpO1xuICBpZiAoIXVud3JhcHBlZCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh1bndyYXBwZWQpICYmIHVud3JhcHBlZC5sZW5ndGggPT09IDIpIHtcbiAgICBjb25zdCBbYSwgYl0gPSB1bndyYXBwZWQ7XG4gICAgY29uc3QgZHJvcEFmdGVyQWJzTG9ja3RpbWUgPSB1bndyYXBOb2RlKGEsIFsnRHJvcCcsICdBZnRlcicsICdhYnNMb2NrVGltZSddKTtcbiAgICBpZiAodHlwZW9mIGRyb3BBZnRlckFic0xvY2t0aW1lICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhYnNMb2NrVGltZSBudW1iZXInKTtcbiAgICB9XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShiLCAnTXVsdGknKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBNdWx0aSBub2RlJyk7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpID0gcGFyc2VNdWx0aShiLk11bHRpKTtcbiAgICBpZiAobXVsdGkudGhyZXNob2xkID09PSAyICYmIG11bHRpLmtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBsb2NrdGltZTogZHJvcEFmdGVyQWJzTG9ja3RpbWUsXG4gICAgICAgIGtleXM6IG11bHRpLmtleXMsXG4gICAgICAgIHBhdGg6IG11bHRpLnBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXNjcmlwdG9yTm9kZShub2RlOiB1bmtub3duKTogRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdCBwYXJzZWQgPVxuICAgIHBhcnNlV3NoTXVsdGkobm9kZSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdTaFdzaDJPZjNDbHR2RHJvcCcsIFsnU2gnLCAnV3NoJywgJ01zJywgJ0FuZFYnXSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdXc2gyT2YzQ2x0dkRyb3AnLCBbJ1dzaCcsICdNcycsICdBbmRWJ10pO1xuICBpZiAoIXBhcnNlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHBhcnNlIGRlc2NyaXB0b3Igbm9kZScpO1xuICB9XG4gIHJldHVybiBwYXJzZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IERlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3QgYnVpbGRlciA9IHBhcnNlRGVzY3JpcHRvck5vZGUoZGVzY3JpcHRvci5ub2RlKCkpO1xuICBpZiAoZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyKGJ1aWxkZXIpLnRvU3RyaW5nKCkgIT09IGRlc2NyaXB0b3IudG9TdHJpbmcoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHBhcnNlIGRlc2NyaXB0b3InKTtcbiAgfVxuICByZXR1cm4gYnVpbGRlcjtcbn1cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0lBLGtEQVNDO0FBRUQsMENBUUM7QUFsS0QsbUVBQW9EO0FBQ3BELGdEQUE0RDtBQUU1RCx1Q0FBd0U7QUFJeEUsU0FBUyxXQUFXLENBQXNCLElBQWEsRUFBRSxHQUFTO0lBQ2hFLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYSxFQUFFLElBQWM7SUFDL0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ25CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQWE7SUFLL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUFTLEVB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QUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFhO0lBQy9DLE1BQU0sTUFBTSxHQUNWLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDbkIsYUFBYSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFVBQXNCO0lBQ3BELDRFQUE0RTtJQUM1RSx3REFBd0Q7SUFDeEQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsSUFBSSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNidGMgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWRlc2NyaXB0b3JzJztcbmltcG9ydCB7IEJJUDMyLCBiaXAzMiwgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yQnVpbGRlciwgZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVyJztcblxudHlwZSBOb2RlVW5hcnk8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHsgW2sgaW4gS2V5XTogdW5rbm93biB9O1xuXG5mdW5jdGlvbiBpc1VuYXJ5Tm9kZTxUS2V5IGV4dGVuZHMgc3RyaW5nPihub2RlOiB1bmtub3duLCBrZXk6IFRLZXkpOiBub2RlIGlzIE5vZGVVbmFyeTxUS2V5PiB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcgfHwgbm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMobm9kZSk7XG4gIHJldHVybiBrZXlzLmxlbmd0aCA9PT0gMSAmJiBrZXlzWzBdID09PSBrZXk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcE5vZGUobm9kZTogdW5rbm93biwgcGF0aDogc3RyaW5nW10pOiB1bmtub3duIHtcbiAgbGV0IGN1cnJlbnQgPSBub2RlO1xuICBmb3IgKGNvbnN0IGtleSBvZiBwYXRoKSB7XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShjdXJyZW50LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuXG5mdW5jdGlvbiBwYXJzZU11bHRpKG5vZGU6IHVua25vd24pOiB7XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBrZXlzOiBiaXAzMi5CSVAzMkludGVyZmFjZVtdO1xuICBwYXRoOiBzdHJpbmc7XG59IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIG5vZGUnKTtcbiAgfVxuICBjb25zdCBbdGhyZXNob2xkLCAuLi5rZXlOb2Rlc10gPSBub2RlO1xuICBpZiAodHlwZW9mIHRocmVzaG9sZCAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRocmVzaG9sZCBudW1iZXInKTtcbiAgfVxuICBjb25zdCBrZXlXaXRoUGF0aCA9IGtleU5vZGVzLm1hcCgoa2V5Tm9kZSkgPT4ge1xuICAgIGlmICghaXNVbmFyeU5vZGUoa2V5Tm9kZSwgJ1hQdWInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBYUHViIG5vZGUnKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBrZXlOb2RlLlhQdWIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIFhQdWIgc3RyaW5nJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0ga2V5Tm9kZS5YUHViLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgeHB1YjogcGFydHNbMF0sIHBhdGg6IHBhcnRzLnNsaWNlKDEpLmpvaW4oJy8nKSB9O1xuICB9KTtcbiAgY29uc3QgcGF0aHMgPSBrZXlXaXRoUGF0aC5tYXAoKGspID0+IGsucGF0aCk7XG4gIHBhdGhzLmZvckVhY2goKHBhdGgsIGkpID0+IHtcbiAgICBpZiAocGF0aCAhPT0gcGF0aHNbMF0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYWxsIHBhdGhzIHRvIGJlIHRoZSBzYW1lOiAke3BhdGh9ICE9PSAke3BhdGhzWzBdfWApO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB7XG4gICAgdGhyZXNob2xkLFxuICAgIGtleXM6IGtleVdpdGhQYXRoLm1hcCgoaykgPT4gQklQMzIuZnJvbUJhc2U1OChrLnhwdWIpKSxcbiAgICBwYXRoOiBwYXRoc1swXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VXc2hNdWx0aShub2RlOiB1bmtub3duKTogRGVzY3JpcHRvckJ1aWxkZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCB3c2hNc011bHRpID0gdW53cmFwTm9kZShub2RlLCBbJ1dzaCcsICdNcycsICdNdWx0aSddKTtcbiAgaWYgKHdzaE1zTXVsdGkpIHtcbiAgICBjb25zdCB7IHRocmVzaG9sZCwga2V5cywgcGF0aCB9ID0gcGFyc2VNdWx0aSh3c2hNc011bHRpKTtcbiAgICBsZXQgbmFtZTogJ1dzaDJPZjInIHwgJ1dzaDJPZjMnO1xuICAgIGlmICh0aHJlc2hvbGQgPT09IDIgJiYga2V5cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIG5hbWUgPSAnV3NoMk9mMic7XG4gICAgfSBlbHNlIGlmICh0aHJlc2hvbGQgPT09IDIgJiYga2V5cy5sZW5ndGggPT09IDMpIHtcbiAgICAgIG5hbWUgPSAnV3NoMk9mMyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBtdWx0aXNpZycpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIGtleXMsXG4gICAgICBwYXRoLFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VTYnRjRGVwb3NpdChkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKTogRGVzY3JpcHRvckJ1aWxkZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXJzZWQgPSBzYnRjLnBhcnNlU2J0Y0RlcG9zaXREZXNjcmlwdG9yKGRlc2NyaXB0b3IpO1xuICBpZiAoIXBhcnNlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIEZvciB3YWxsZXQgZGVzY3JpcHRvcnMgdGhlIHJlY2xhaW0gbGVhZiBpcyBhIGRlcml2YWJsZSBgbXVsdGlfYWAgd2l0aFxuICAvLyBgeHB1Yi4uLi8qYCBlbnRyaWVzOyBzcGxpdCBlYWNoIGludG8geHB1YiArIHBhdGguIERlZmluaXRlIGRlc2NyaXB0b3JzXG4gIC8vIHByb2R1Y2UgcmF3IGhleCBzdHJpbmdzIGhlcmUsIHdoaWNoIGBCSVAzMi5mcm9tQmFzZTU4YCByZWplY3RzIOKAlCB0aGF0XG4gIC8vIG1hdGNoZXMgb3VyIGludGVudCwgc2luY2UgYSBkZWZpbml0ZSBkZXNjcmlwdG9yIGlzbid0IGEgd2FsbGV0IGRlc2NyaXB0b3IuXG4gIGNvbnN0IGtleVdpdGhQYXRoID0gcGFyc2VkLnJlY2xhaW1LZXlTdHJpbmdzLm1hcCgoaykgPT4ge1xuICAgIGNvbnN0IFt4cHViLCAuLi5yZXN0XSA9IGsuc3BsaXQoJy8nKTtcbiAgICByZXR1cm4geyB4cHViLCBwYXRoOiByZXN0LmpvaW4oJy8nKSB9O1xuICB9KTtcbiAgY29uc3QgcGF0aHMgPSBrZXlXaXRoUGF0aC5tYXAoKGspID0+IGsucGF0aCk7XG4gIHBhdGhzLmZvckVhY2goKHApID0+IHtcbiAgICBpZiAocCAhPT0gcGF0aHNbMF0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYWxsIG11bHRpX2EgcGF0aHMgdG8gYmUgdGhlIHNhbWU6ICR7cH0gIT09ICR7cGF0aHNbMF19YCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTYnRjRGVwb3NpdCcsXG4gICAga2V5czoga2V5V2l0aFBhdGgubWFwKChrKSA9PiBCSVAzMi5mcm9tQmFzZTU4KGsueHB1YikpLFxuICAgIHBhdGg6IHBhdGhzWzBdLFxuICAgIGxvY2tUaW1lOiBwYXJzZWQubG9ja1RpbWUsXG4gICAgbWF4RmVlOiBwYXJzZWQubWF4RmVlLFxuICAgIHN0YWNrc1JlY2lwaWVudDogcGFyc2VkLnN0YWNrc1JlY2lwaWVudCxcbiAgICBzaWduZXJzQWdncmVnYXRlS2V5OiBwYXJzZWQuc2lnbmVyc0FnZ3JlZ2F0ZUtleSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDbHR2RHJvcChcbiAgbm9kZTogdW5rbm93bixcbiAgbmFtZTogJ1dzaDJPZjNDbHR2RHJvcCcgfCAnU2hXc2gyT2YzQ2x0dkRyb3AnLFxuICB3cmFwcGluZzogc3RyaW5nW11cbik6IERlc2NyaXB0b3JCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdW53cmFwcGVkID0gdW53cmFwTm9kZShub2RlLCB3cmFwcGluZyk7XG4gIGlmICghdW53cmFwcGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHVud3JhcHBlZCkgJiYgdW53cmFwcGVkLmxlbmd0aCA9PT0gMikge1xuICAgIGNvbnN0IFthLCBiXSA9IHVud3JhcHBlZDtcbiAgICBjb25zdCBkcm9wQWZ0ZXJBYnNMb2NrdGltZSA9IHVud3JhcE5vZGUoYSwgWydEcm9wJywgJ0FmdGVyJywgJ2Fic0xvY2tUaW1lJ10pO1xuICAgIGlmICh0eXBlb2YgZHJvcEFmdGVyQWJzTG9ja3RpbWUgIT09ICdudW1iZXInKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGFic0xvY2tUaW1lIG51bWJlcicpO1xuICAgIH1cbiAgICBpZiAoIWlzVW5hcnlOb2RlKGIsICdNdWx0aScpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIE11bHRpIG5vZGUnKTtcbiAgICB9XG4gICAgY29uc3QgbXVsdGkgPSBwYXJzZU11bHRpKGIuTXVsdGkpO1xuICAgIGlmIChtdWx0aS50aHJlc2hvbGQgPT09IDIgJiYgbXVsdGkua2V5cy5sZW5ndGggPT09IDMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGxvY2t0aW1lOiBkcm9wQWZ0ZXJBYnNMb2NrdGltZSxcbiAgICAgICAga2V5czogbXVsdGkua2V5cyxcbiAgICAgICAgcGF0aDogbXVsdGkucGF0aCxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlc2NyaXB0b3JOb2RlKG5vZGU6IHVua25vd24pOiBEZXNjcmlwdG9yQnVpbGRlciB7XG4gIGNvbnN0IHBhcnNlZCA9XG4gICAgcGFyc2VXc2hNdWx0aShub2RlKSA/P1xuICAgIHBhcnNlQ2x0dkRyb3Aobm9kZSwgJ1NoV3NoMk9mM0NsdHZEcm9wJywgWydTaCcsICdXc2gnLCAnTXMnLCAnQW5kViddKSA/P1xuICAgIHBhcnNlQ2x0dkRyb3Aobm9kZSwgJ1dzaDJPZjNDbHR2RHJvcCcsIFsnV3NoJywgJ01zJywgJ0FuZFYnXSk7XG4gIGlmICghcGFyc2VkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gcGFyc2UgZGVzY3JpcHRvciBub2RlJyk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKTogRGVzY3JpcHRvckJ1aWxkZXIge1xuICAvLyBzQlRDIHBlZy1pbiB1c2VzIGEgVGFwcm9vdCBgdHIoLi4uKWAgZGVzY3JpcHRvciB0aGF0IHRoZSByYXctbm9kZSBwYXJzZXJzXG4gIC8vIGRvbid0IHJlY29nbml6ZTsgbWF0Y2ggaXQgYWdhaW5zdCB0aGUgYXN0IGZvcm0gZmlyc3QuXG4gIGNvbnN0IGJ1aWxkZXIgPSBwYXJzZVNidGNEZXBvc2l0KGRlc2NyaXB0b3IpID8/IHBhcnNlRGVzY3JpcHRvck5vZGUoZGVzY3JpcHRvci5ub2RlKCkpO1xuICBpZiAoZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyKGJ1aWxkZXIpLnRvU3RyaW5nKCkgIT09IGRlc2NyaXB0b3IudG9TdHJpbmcoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHBhcnNlIGRlc2NyaXB0b3InKTtcbiAgfVxuICByZXR1cm4gYnVpbGRlcjtcbn1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IWallet, WalletCoinSpecific } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { UtxoWallet, UtxoWalletData } from '../wallet';
|
|
3
|
-
import type { DescriptorMap } from '../wasmUtil';
|
|
4
3
|
import { NamedDescriptor } from './NamedDescriptor';
|
|
5
4
|
import { DescriptorValidationPolicy, KeyTriple } from './validatePolicy';
|
|
5
|
+
import type { DescriptorMap } from './index';
|
|
6
6
|
type DescriptorWalletCoinSpecific = {
|
|
7
7
|
descriptors: NamedDescriptor[];
|
|
8
8
|
};
|
|
@@ -1 +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,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
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,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,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,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"}
|
|
@@ -51,4 +51,4 @@ function isDescriptorWallet(obj) {
|
|
|
51
51
|
function getDescriptorMapFromWallet(wallet, walletKeys, policy) {
|
|
52
52
|
return (0, validatePolicy_1.toDescriptorMapValidate)(wallet.coinSpecific().descriptors, walletKeys, policy);
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcldhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QkEsd0RBRUM7QUFFRCxnREFFQztBQUVELGdFQU1DO0FBMUNELHlDQUEyQjtBQUszQix1REFBb0Q7QUFDcEQscURBQWtHO0FBUWxHLFNBQVMsOEJBQThCLENBQUMsR0FBWTtJQUNsRCxPQUFPLENBQ0wsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksYUFBYSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLGlDQUFlLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUNoSCxDQUFDO0FBQ0osQ0FBQztBQVVELFNBQWdCLHNCQUFzQixDQUFDLEdBQW1CO0lBQ3hELE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxHQUFZO0lBQzdDLE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLDBCQUEwQixDQUN4QyxNQUF5QixFQUN6QixVQUFxQixFQUNyQixNQUFrQztJQUVsQyxPQUFPLElBQUEsd0NBQXVCLEVBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgSVdhbGxldCwgV2FsbGV0Q29pblNwZWNpZmljIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBVdHhvV2FsbGV0LCBVdHhvV2FsbGV0RGF0YSB9IGZyb20gJy4uL3dhbGxldCc7XG5cbmltcG9ydCB7IE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4vTmFtZWREZXNjcmlwdG9yJztcbmltcG9ydCB7IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5LCBLZXlUcmlwbGUsIHRvRGVzY3JpcHRvck1hcFZhbGlkYXRlIH0gZnJvbSAnLi92YWxpZGF0ZVBvbGljeSc7XG5cbmltcG9ydCB0eXBlIHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4vaW5kZXgnO1xuXG50eXBlIERlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMgPSB7XG4gIGRlc2NyaXB0b3JzOiBOYW1lZERlc2NyaXB0b3JbXTtcbn07XG5cbmZ1bmN0aW9uIGlzRGVzY3JpcHRvcldhbGxldENvaW5TcGVjaWZpYyhvYmo6IHVua25vd24pOiBvYmogaXMgRGVzY3JpcHRvcldhbGxldENvaW5TcGVjaWZpYyB7XG4gIHJldHVybiAoXG4gICAgb2JqICE9PSBudWxsICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmICdkZXNjcmlwdG9ycycgaW4gb2JqICYmIHQuYXJyYXkoTmFtZWREZXNjcmlwdG9yKS5pcyhvYmouZGVzY3JpcHRvcnMpXG4gICk7XG59XG5cbnR5cGUgRGVzY3JpcHRvcldhbGxldERhdGEgPSBVdHhvV2FsbGV0RGF0YSAmIHtcbiAgY29pblNwZWNpZmljOiBEZXNjcmlwdG9yV2FsbGV0Q29pblNwZWNpZmljO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJRGVzY3JpcHRvcldhbGxldCBleHRlbmRzIFV0eG9XYWxsZXQge1xuICBjb2luU3BlY2lmaWMoKTogV2FsbGV0Q29pblNwZWNpZmljICYgRGVzY3JpcHRvcldhbGxldENvaW5TcGVjaWZpYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzY3JpcHRvcldhbGxldERhdGEob2JqOiBVdHhvV2FsbGV0RGF0YSk6IG9iaiBpcyBEZXNjcmlwdG9yV2FsbGV0RGF0YSB7XG4gIHJldHVybiBpc0Rlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMob2JqLmNvaW5TcGVjaWZpYyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc2NyaXB0b3JXYWxsZXQob2JqOiBJV2FsbGV0KTogb2JqIGlzIElEZXNjcmlwdG9yV2FsbGV0IHtcbiAgcmV0dXJuIGlzRGVzY3JpcHRvcldhbGxldENvaW5TcGVjaWZpYyhvYmouY29pblNwZWNpZmljKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQoXG4gIHdhbGxldDogSURlc2NyaXB0b3JXYWxsZXQsXG4gIHdhbGxldEtleXM6IEtleVRyaXBsZSxcbiAgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeVxuKTogRGVzY3JpcHRvck1hcCB7XG4gIHJldHVybiB0b0Rlc2NyaXB0b3JNYXBWYWxpZGF0ZSh3YWxsZXQuY29pblNwZWNpZmljKCkuZGVzY3JpcHRvcnMsIHdhbGxldEtleXMsIHBvbGljeSk7XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { descriptorWallet } from '@bitgo/wasm-utxo';
|
|
1
2
|
export { Miniscript, Descriptor } from '@bitgo/wasm-utxo';
|
|
2
|
-
export type
|
|
3
|
+
export type DescriptorMap = descriptorWallet.DescriptorMap;
|
|
3
4
|
export { assertDescriptorWalletAddress } from './assertDescriptorWalletAddress';
|
|
4
5
|
export { NamedDescriptor, createNamedDescriptorWithSignature, hasValidSignature, NamedDescriptorNative, toNamedDescriptorNative, } from './NamedDescriptor';
|
|
5
6
|
export { isDescriptorWallet, getDescriptorMapFromWallet } from './descriptorWallet';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EACL,eAAe,EACf,kCAAkC,EAClC,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC"}
|
|
@@ -50,4 +50,4 @@ Object.defineProperty(exports, "getDescriptorMapFromWallet", { enumerable: true,
|
|
|
50
50
|
var validatePolicy_1 = require("./validatePolicy");
|
|
51
51
|
Object.defineProperty(exports, "getPolicyForEnv", { enumerable: true, get: function () { return validatePolicy_1.getPolicyForEnv; } });
|
|
52
52
|
exports.createWallet = __importStar(require("./createWallet"));
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSw4Q0FBMEQ7QUFBakQsdUdBQUEsVUFBVSxPQUFBO0FBQUUsdUdBQUEsVUFBVSxPQUFBO0FBRS9CLGlGQUFnRjtBQUF2RSw4SUFBQSw2QkFBNkIsT0FBQTtBQUN0QyxxREFNMkI7QUFMekIsa0hBQUEsZUFBZSxPQUFBO0FBQ2YscUlBQUEsa0NBQWtDLE9BQUE7QUFDbEMsb0hBQUEsaUJBQWlCLE9BQUE7QUFFakIsMEhBQUEsdUJBQXVCLE9BQUE7QUFFekIsdURBQW9GO0FBQTNFLHNIQUFBLGtCQUFrQixPQUFBO0FBQUUsOEhBQUEsMEJBQTBCLE9BQUE7QUFDdkQsbURBQW1EO0FBQTFDLGlIQUFBLGVBQWUsT0FBQTtBQUN4QiwrREFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGRlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuZXhwb3J0IHsgTWluaXNjcmlwdCwgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuZXhwb3J0IHR5cGUgRGVzY3JpcHRvck1hcCA9IGRlc2NyaXB0b3JXYWxsZXQuRGVzY3JpcHRvck1hcDtcbmV4cG9ydCB7IGFzc2VydERlc2NyaXB0b3JXYWxsZXRBZGRyZXNzIH0gZnJvbSAnLi9hc3NlcnREZXNjcmlwdG9yV2FsbGV0QWRkcmVzcyc7XG5leHBvcnQge1xuICBOYW1lZERlc2NyaXB0b3IsXG4gIGNyZWF0ZU5hbWVkRGVzY3JpcHRvcldpdGhTaWduYXR1cmUsXG4gIGhhc1ZhbGlkU2lnbmF0dXJlLFxuICBOYW1lZERlc2NyaXB0b3JOYXRpdmUsXG4gIHRvTmFtZWREZXNjcmlwdG9yTmF0aXZlLFxufSBmcm9tICcuL05hbWVkRGVzY3JpcHRvcic7XG5leHBvcnQgeyBpc0Rlc2NyaXB0b3JXYWxsZXQsIGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0IH0gZnJvbSAnLi9kZXNjcmlwdG9yV2FsbGV0JztcbmV4cG9ydCB7IGdldFBvbGljeUZvckVudiB9IGZyb20gJy4vdmFsaWRhdGVQb2xpY3knO1xuZXhwb3J0ICogYXMgY3JlYXRlV2FsbGV0IGZyb20gJy4vY3JlYXRlV2FsbGV0JztcbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EnvironmentName, Triple } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { bip32 } from '@bitgo/wasm-utxo';
|
|
3
|
-
import type { DescriptorMap } from '../wasmUtil';
|
|
4
3
|
import { NamedDescriptor, NamedDescriptorNative } from './NamedDescriptor';
|
|
4
|
+
import type { DescriptorMap } from './index';
|
|
5
5
|
export type KeyTriple = Triple<bip32.BIP32Interface>;
|
|
6
6
|
export interface DescriptorValidationPolicy {
|
|
7
7
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validatePolicy.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/validatePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAoB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"validatePolicy.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/validatePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAoB,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAqB,eAAe,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAC;AAEvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;CACxE;AAED,eAAO,MAAM,cAAc,EAAE,0BAG5B,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAcvF;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,EAAE,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,0BAA0B;CAG5E;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,qBAAqB,EAAE,EACpC,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,SAAS,GACpB,IAAI,CAIN;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,eAAe,EAAE,EAC9B,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,0BAA0B,GACjC,aAAa,CAMf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,0BAA0B,CAiBhF"}
|
|
@@ -82,6 +82,8 @@ function getPolicyForEnv(env) {
|
|
|
82
82
|
getValidatorDescriptorTemplate('Wsh2Of3'),
|
|
83
83
|
// allow descriptor groups where all keys match the wallet keys plus OP_DROP (coredao staking)
|
|
84
84
|
getValidatorDescriptorTemplate('Wsh2Of3CltvDrop'),
|
|
85
|
+
// allow sBTC peg-in deposit descriptors where the reclaim keys match the wallet keys
|
|
86
|
+
getValidatorDescriptorTemplate('SbtcDeposit'),
|
|
85
87
|
// allow all descriptors signed by the user key
|
|
86
88
|
getValidatorSignedByUserKey(),
|
|
87
89
|
]);
|
|
@@ -89,4 +91,4 @@ function getPolicyForEnv(env) {
|
|
|
89
91
|
return exports.policyAllowAll;
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci92YWxpZGF0ZVBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQkEsd0VBY0M7QUFFRCw4Q0FPQztBQUVELDRDQU9DO0FBRUQsZ0VBRUM7QUFFRCxrRUFRQztBQVFELHdEQVFDO0FBRUQsMERBVUM7QUFFRCwwQ0FpQkM7QUFqSEQsZ0RBQTJEO0FBRTNELHVDQUE0QztBQUM1Qyx1REFBdUg7QUFZMUcsUUFBQSxjQUFjLEdBQStCO0lBQ3hELElBQUksRUFBRSxVQUFVO0lBQ2hCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0NBQ3JCLENBQUM7QUFFRixTQUFnQiw4QkFBOEIsQ0FBQyxJQUFZO0lBQ3pELE9BQU87UUFDTCxJQUFJLEVBQUUscUJBQXFCLEdBQUcsSUFBSSxHQUFHLEdBQUc7UUFDeEMsUUFBUSxDQUFDLEdBQTRCLEVBQUUsVUFBcUI7WUFDMUQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUEseUJBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sQ0FDTCxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUk7b0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNO29CQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDbEYsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsVUFBd0M7SUFDeEUsT0FBTztRQUNMLElBQUksRUFBRSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHO1FBQzlELFFBQVEsQ0FBQyxHQUE0QixFQUFFLFVBQXFCO1lBQzFELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxVQUF3QztJQUN2RSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUc7UUFDN0QsUUFBUSxDQUFDLEdBQTRCLEVBQUUsVUFBcUI7WUFDMUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLDBCQUEwQixDQUFDLEtBQWU7SUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCO0lBQ3pDLE9BQU87UUFDTCxJQUFJLEVBQUUsY0FBYztRQUNwQixRQUFRLENBQUMsR0FBNEIsRUFBRSxVQUFxQjtZQUMxRCwrQ0FBK0M7WUFDL0MsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLG1DQUFpQixFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFhLCtCQUFnQyxTQUFRLEtBQUs7SUFDeEQsWUFBWSxFQUEyQixFQUFFLE1BQWtDO1FBQ3pFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsMEJBQTBCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7Q0FDRjtBQUpELDBFQUlDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLFdBQW9DLEVBQ3BDLE1BQWtDLEVBQ2xDLFVBQXFCO0lBRXJCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sSUFBSSwrQkFBK0IsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsV0FBOEIsRUFDOUIsVUFBcUIsRUFDckIsTUFBa0M7SUFFbEMsTUFBTSxzQkFBc0IsR0FBNEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVFLElBQUEseUNBQXVCLEVBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUN4QyxDQUFDO0lBQ0Ysc0JBQXNCLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sNEJBQWdCLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxHQUFvQjtJQUNsRCxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxNQUFNO1lBQ1QsT0FBTyxnQkFBZ0IsQ0FBQztnQkFDdEIsMEVBQTBFO2dCQUMxRSw4QkFBOEIsQ0FBQyxTQUFTLENBQUM7Z0JBQ3pDLDhGQUE4RjtnQkFDOUYsOEJBQThCLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pELHFGQUFxRjtnQkFDckYsOEJBQThCLENBQUMsYUFBYSxDQUFDO2dCQUM3QywrQ0FBK0M7Z0JBQy9DLDJCQUEyQixFQUFFO2FBQzlCLENBQUMsQ0FBQztRQUNMO1lBQ0UsT0FBTyxzQkFBYyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnROYW1lLCBUcmlwbGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBiaXAzMiwgZGVzY3JpcHRvcldhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBwYXJzZURlc2NyaXB0b3IgfSBmcm9tICcuL2J1aWxkZXInO1xuaW1wb3J0IHsgaGFzVmFsaWRTaWduYXR1cmUsIE5hbWVkRGVzY3JpcHRvciwgTmFtZWREZXNjcmlwdG9yTmF0aXZlLCB0b05hbWVkRGVzY3JpcHRvck5hdGl2ZSB9IGZyb20gJy4vTmFtZWREZXNjcmlwdG9yJztcblxuaW1wb3J0IHR5cGUgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCB0eXBlIEtleVRyaXBsZSA9IFRyaXBsZTxiaXAzMi5CSVAzMkludGVyZmFjZT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kge1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgdmFsaWRhdGUoYXJyOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IHBvbGljeUFsbG93QWxsOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSA9IHtcbiAgbmFtZTogJ2FsbG93QWxsJyxcbiAgdmFsaWRhdGU6ICgpID0+IHRydWUsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yRGVzY3JpcHRvclRlbXBsYXRlKG5hbWU6IHN0cmluZyk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZGVzY3JpcHRvclRlbXBsYXRlKCcgKyBuYW1lICsgJyknLFxuICAgIHZhbGlkYXRlKGFycjogTmFtZWREZXNjcmlwdG9yTmF0aXZlW10sIHdhbGxldEtleXM6IEtleVRyaXBsZSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGFyci5ldmVyeSgoZCkgPT4ge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZURlc2NyaXB0b3IoZC52YWx1ZSk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcGFyc2VkLm5hbWUgPT09IG5hbWUgJiZcbiAgICAgICAgICBwYXJzZWQua2V5cy5sZW5ndGggPT09IHdhbGxldEtleXMubGVuZ3RoICYmXG4gICAgICAgICAgcGFyc2VkLmtleXMuZXZlcnkoKGssIGkpID0+IGsudG9CYXNlNTgoKSA9PT0gd2FsbGV0S2V5c1tpXS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yRXZlcnkodmFsaWRhdG9yczogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3lbXSk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZXZlcnkoJyArIHZhbGlkYXRvcnMubWFwKCh2KSA9PiB2Lm5hbWUpLmpvaW4oJywnKSArICcpJyxcbiAgICB2YWxpZGF0ZShhcnI6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdLCB3YWxsZXRLZXlzOiBLZXlUcmlwbGUpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB2YWxpZGF0b3JzLmV2ZXJ5KCh2KSA9PiB2LnZhbGlkYXRlKGFyciwgd2FsbGV0S2V5cykpO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0b3JTb21lKHZhbGlkYXRvcnM6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5W10pOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NvbWUoJyArIHZhbGlkYXRvcnMubWFwKCh2KSA9PiB2Lm5hbWUpLmpvaW4oJywnKSArICcpJyxcbiAgICB2YWxpZGF0ZShhcnI6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdLCB3YWxsZXRLZXlzOiBLZXlUcmlwbGUpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB2YWxpZGF0b3JzLnNvbWUoKHYpID0+IHYudmFsaWRhdGUoYXJyLCB3YWxsZXRLZXlzKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvck9uZU9mVGVtcGxhdGVzKG5hbWVzOiBzdHJpbmdbXSk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgcmV0dXJuIGdldFZhbGlkYXRvclNvbWUobmFtZXMubWFwKGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yU2lnbmVkQnlVc2VyS2V5KCk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnc2lnbmVkQnlVc2VyJyxcbiAgICB2YWxpZGF0ZShhcnI6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdLCB3YWxsZXRLZXlzOiBLZXlUcmlwbGUpOiBib29sZWFuIHtcbiAgICAgIC8vIHRoZSBmaXJzdCBrZXkgaXMgdGhlIHVzZXIga2V5LCBieSBjb252ZW50aW9uXG4gICAgICByZXR1cm4gYXJyLmV2ZXJ5KChkKSA9PiBoYXNWYWxpZFNpZ25hdHVyZShkLnZhbHVlLCB3YWxsZXRLZXlzWzBdLCBkLnNpZ25hdHVyZXMgPz8gW10pKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgRGVzY3JpcHRvclBvbGljeVZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoZHM6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdLCBwb2xpY3k6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5KSB7XG4gICAgc3VwZXIoYERlc2NyaXB0b3JzICR7ZHMubWFwKChkKSA9PiBkLnZhbHVlLnRvU3RyaW5nKCkpfSBkb2VzIG5vdCBtYXRjaCBwb2xpY3kgJHtwb2xpY3kubmFtZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RGVzY3JpcHRvclBvbGljeShcbiAgZGVzY3JpcHRvcnM6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdLFxuICBwb2xpY3k6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5LFxuICB3YWxsZXRLZXlzOiBLZXlUcmlwbGVcbik6IHZvaWQge1xuICBpZiAoIXBvbGljeS52YWxpZGF0ZShkZXNjcmlwdG9ycywgd2FsbGV0S2V5cykpIHtcbiAgICB0aHJvdyBuZXcgRGVzY3JpcHRvclBvbGljeVZhbGlkYXRpb25FcnJvcihkZXNjcmlwdG9ycywgcG9saWN5KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9EZXNjcmlwdG9yTWFwVmFsaWRhdGUoXG4gIGRlc2NyaXB0b3JzOiBOYW1lZERlc2NyaXB0b3JbXSxcbiAgd2FsbGV0S2V5czogS2V5VHJpcGxlLFxuICBwb2xpY3k6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5XG4pOiBEZXNjcmlwdG9yTWFwIHtcbiAgY29uc3QgbmFtZWREZXNjcmlwdG9yc05hdGl2ZTogTmFtZWREZXNjcmlwdG9yTmF0aXZlW10gPSBkZXNjcmlwdG9ycy5tYXAoKHYpID0+XG4gICAgdG9OYW1lZERlc2NyaXB0b3JOYXRpdmUodiwgJ2Rlcml2YWJsZScpXG4gICk7XG4gIGFzc2VydERlc2NyaXB0b3JQb2xpY3kobmFtZWREZXNjcmlwdG9yc05hdGl2ZSwgcG9saWN5LCB3YWxsZXRLZXlzKTtcbiAgcmV0dXJuIGRlc2NyaXB0b3JXYWxsZXQudG9EZXNjcmlwdG9yTWFwKG5hbWVkRGVzY3JpcHRvcnNOYXRpdmUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9saWN5Rm9yRW52KGVudjogRW52aXJvbm1lbnROYW1lKTogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kge1xuICBzd2l0Y2ggKGVudikge1xuICAgIGNhc2UgJ2FkbWluUHJvZCc6XG4gICAgY2FzZSAncHJvZCc6XG4gICAgICByZXR1cm4gZ2V0VmFsaWRhdG9yU29tZShbXG4gICAgICAgIC8vIGFsbG93IDItb2YtMy1pc2ggZGVzY3JpcHRvciBncm91cHMgd2hlcmUgdGhlIGtleXMgbWF0Y2ggdGhlIHdhbGxldCBrZXlzXG4gICAgICAgIGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZSgnV3NoMk9mMycpLFxuICAgICAgICAvLyBhbGxvdyBkZXNjcmlwdG9yIGdyb3VwcyB3aGVyZSBhbGwga2V5cyBtYXRjaCB0aGUgd2FsbGV0IGtleXMgcGx1cyBPUF9EUk9QIChjb3JlZGFvIHN0YWtpbmcpXG4gICAgICAgIGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZSgnV3NoMk9mM0NsdHZEcm9wJyksXG4gICAgICAgIC8vIGFsbG93IHNCVEMgcGVnLWluIGRlcG9zaXQgZGVzY3JpcHRvcnMgd2hlcmUgdGhlIHJlY2xhaW0ga2V5cyBtYXRjaCB0aGUgd2FsbGV0IGtleXNcbiAgICAgICAgZ2V0VmFsaWRhdG9yRGVzY3JpcHRvclRlbXBsYXRlKCdTYnRjRGVwb3NpdCcpLFxuICAgICAgICAvLyBhbGxvdyBhbGwgZGVzY3JpcHRvcnMgc2lnbmVkIGJ5IHRoZSB1c2VyIGtleVxuICAgICAgICBnZXRWYWxpZGF0b3JTaWduZWRCeVVzZXJLZXkoKSxcbiAgICAgIF0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gcG9saWN5QWxsb3dBbGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inscriptionBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/impl/btc/inscriptionBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"inscriptionBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/impl/btc/inscriptionBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EACnB,OAAO,EAEP,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAG1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAYL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,iCAAiC;AACjC,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,8DAA8D;AAC9D,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAIF,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAE5B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB;IAK7C,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;YAyB3F,8BAA8B;IA8E5C;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EACE,MAAe,EACf,QAAkB,EAClB,sBAAsD,EACtD,iBAA2B,EAC3B,QAAiB,GAClB,EAAE;QACD,MAAM,CAAC,EAAE,SAAS,CAAC;QACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,sBAAsB,CAAC,EAAE;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;SAC/B,CAAC;QACF,iBAAiB,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAAC;QAC3E,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC9B,GACA,OAAO,CAAC,yBAAyB,CAAC;IAmDrC;;;;;;;;;OASG;IACG,iBAAiB,CACrB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,yBAAyB,EAAE,iBAAiB,EAAE,EAC9C,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAgCrC;;;;OAIG;IACG,mBAAmB,CACvB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,yBAAyB,CAAC;CAOtC"}
|
|
@@ -8,8 +8,8 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
8
8
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
9
9
|
const utxo_ord_1 = require("@bitgo-beta/utxo-ord");
|
|
10
10
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
11
|
+
const deriveKeyWithSeed_1 = require("../../deriveKeyWithSeed");
|
|
11
12
|
const keychains_1 = require("../../keychains");
|
|
12
|
-
const wasmUtil_1 = require("../../wasmUtil");
|
|
13
13
|
const SUPPLEMENTARY_UNSPENTS_MIN_VALUE_SATS = [0, 20000, 200000];
|
|
14
14
|
class InscriptionBuilder {
|
|
15
15
|
constructor(wallet, coin) {
|
|
@@ -19,8 +19,7 @@ class InscriptionBuilder {
|
|
|
19
19
|
async prepareReveal(inscriptionData, contentType) {
|
|
20
20
|
const user = await this.wallet.baseCoin.keychains().get({ id: this.wallet.keyIds()[sdk_core_1.KeyIndices.USER] });
|
|
21
21
|
(0, assert_1.default)(user.pub);
|
|
22
|
-
const
|
|
23
|
-
const { key: derivedKey } = sdk_core_1.BaseCoin.deriveKeyWithSeedBip32(userKey, inscriptionData.toString());
|
|
22
|
+
const { key: derivedKey } = (0, deriveKeyWithSeed_1.deriveKeyWithSeed)(wasm_utxo_1.BIP32.fromBase58(user.pub), inscriptionData.toString());
|
|
24
23
|
const result = utxo_ord_1.inscriptions.createInscriptionRevealData(derivedKey.publicKey, contentType, inscriptionData, this.coin.name);
|
|
25
24
|
// Convert TapLeafScript to utxolib format for backwards compatibility
|
|
26
25
|
return {
|
|
@@ -168,4 +167,4 @@ class InscriptionBuilder {
|
|
|
168
167
|
}
|
|
169
168
|
}
|
|
170
169
|
exports.InscriptionBuilder = InscriptionBuilder;
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGwvYnRjL2luc2NyaXB0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsbURBVzhCO0FBQzlCLG1EQWE4QjtBQUM5QixnREFBNEQ7QUFHNUQsK0NBQWlEO0FBQ2pELDZDQUFnRDtBQWFoRCxNQUFNLHFDQUFxQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQU0sRUFBRSxNQUFPLENBQUMsQ0FBQztBQUVuRSxNQUFhLGtCQUFrQjtJQUk3QixZQUFZLE1BQWUsRUFBRSxJQUFzQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUF1QixFQUFFLFdBQW1CO1FBQzlELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkcsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFjLEVBQUMsaUJBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxtQkFBUSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUVqRyxNQUFNLE1BQU0sR0FBRyx1QkFBWSxDQUFD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LEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUE4QixDQUFDO1FBQ3pHLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBdFFELGdEQXNRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHtcbiAgQmFzZUNvaW4sXG4gIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb24sXG4gIElJbnNjcmlwdGlvbkJ1aWxkZXIsXG4gIElXYWxsZXQsXG4gIEtleUluZGljZXMsXG4gIFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQsXG4gIFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhLFxuICBTdWJtaXRUcmFuc2FjdGlvblJlc3BvbnNlLFxuICBUcmlwbGUsXG4gIHhwcnZUb1Jhd1Bydixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHNidEZvclNpbmdsZUluc2NyaXB0aW9uUGFzc2luZ1RyYW5zYWN0aW9uLFxuICBEZWZhdWx0SW5zY3JpcHRpb25Db25zdHJhaW50cyxcbiAgSW5zY3JpcHRpb25PdXRwdXRzLFxuICBpbnNjcmlwdGlvbnMsXG4gIHBhcnNlU2F0UG9pbnQsXG4gIGlzU2F0UG9pbnQsXG4gIEVycm9yTm9MYXlvdXQsXG4gIGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyxcbiAgTUFYX1VOU1BFTlRTX0ZPUl9PVVRQVVRfTEFZT1VULFxuICBTYXRQb2ludCxcbiAgV2FsbGV0VW5zcGVudCxcbiAgdHlwZSBUYXBMZWFmU2NyaXB0LFxufSBmcm9tICdAYml0Z28tYmV0YS91dHhvLW9yZCc7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZmV0Y2hLZXljaGFpbnMgfSBmcm9tICcuLi8uLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgdG9VdHhvbGliQklQMzIgfSBmcm9tICcuLi8uLi93YXNtVXRpbCc7XG5cbi8qKiBLZXkgaWRlbnRpZmllciBmb3Igc2lnbmluZyAqL1xudHlwZSBTaWduZXJLZXkgPSAndXNlcicgfCAnYmFja3VwJyB8ICdiaXRnbyc7XG5cbi8qKiBVbnNwZW50IGZyb20gd2FsbGV0IEFQSSAodmFsdWUgbWF5IGJlIG51bWJlciBvciBiaWdpbnQpICovXG50eXBlIFdhbGxldFVuc3BlbnRMaWtlID0ge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyIHwgYmlnaW50O1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuY29uc3QgU1VQUExFTUVOVEFSWV9VTlNQRU5UU19NSU5fVkFMVUVfU0FUUyA9IFswLCAyMF8wMDAsIDIwMF8wMDBdO1xuXG5leHBvcnQgY2xhc3MgSW5zY3JpcHRpb25CdWlsZGVyIGltcGxlbWVudHMgSUluc2NyaXB0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2FsbGV0OiBJV2FsbGV0O1xuICBwcml2YXRlIHJlYWRvbmx5IGNvaW46IEFic3RyYWN0VXR4b0NvaW47XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBJV2FsbGV0LCBjb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gICAgdGhpcy5jb2luID0gY29pbjtcbiAgfVxuXG4gIGFzeW5jIHByZXBhcmVSZXZlYWwoaW5zY3JpcHRpb25EYXRhOiBCdWZmZXIsIGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBQcm9taXNlPFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhPiB7XG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldCh7IGlkOiB0aGlzLndhbGxldC5rZXlJZHMoKVtLZXlJbmRpY2VzLlVTRVJdIH0pO1xuICAgIGFzc2VydCh1c2VyLnB1Yik7XG5cbiAgICBjb25zdCB1c2VyS2V5ID0gdG9VdHhvbGliQklQMzIoQklQMzIuZnJvbUJhc2U1OCh1c2VyLnB1YikpO1xuICAgIGNvbnN0IHsga2V5OiBkZXJpdmVkS2V5IH0gPSBCYXNlQ29pbi5kZXJpdmVLZXlXaXRoU2VlZEJpcDMyKHVzZXJLZXksIGluc2NyaXB0aW9uRGF0YS50b1N0cmluZygpKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGluc2NyaXB0aW9ucy5jcmVhdGVJbnNjcmlwdGlvblJldmVhbERhdGEoXG4gICAgICBkZXJpdmVkS2V5LnB1YmxpY0tleSxcbiAgICAgIGNvbnRlbnRUeXBlLFxuICAgICAgaW5zY3JpcHRpb25EYXRhLFxuICAgICAgdGhpcy5jb2luLm5hbWVcbiAgICApO1xuXG4gICAgLy8gQ29udmVydCBUYXBMZWFmU2NyaXB0IHRvIHV0eG9saWIgZm9ybWF0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiByZXN1bHQuYWRkcmVzcyxcbiAgICAgIHJldmVhbFRyYW5zYWN0aW9uVlNpemU6IHJlc3VsdC5yZXZlYWxUcmFuc2FjdGlvblZTaXplLFxuICAgICAgdGFwTGVhZlNjcmlwdDoge1xuICAgICAgICBjb250cm9sQmxvY2s6IEJ1ZmZlci5mcm9tKHJlc3VsdC50YXBMZWFmU2NyaXB0LmNvbnRyb2xCbG9jayksXG4gICAgICAgIHNjcmlwdDogQnVmZmVyLmZyb20ocmVzdWx0LnRhcExlYWZTY3JpcHQuc2NyaXB0KSxcbiAgICAgICAgbGVhZlZlcnNpb246IHJlc3VsdC50YXBMZWFmU2NyaXB0LmxlYWZWZXJzaW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlVHJhbnNmZXJXaXRoRXh0cmFJbnB1dHMoXG4gICAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICAgIGZlZVJhdGVTYXRLQjogbnVtYmVyLFxuICAgIHtcbiAgICAgIHNpZ25lcixcbiAgICAgIGNvc2lnbmVyLFxuICAgICAgaW5zY3JpcHRpb25Db25zdHJhaW50cyxcbiAgICAgIHR4Rm9ybWF0LFxuICAgIH06IHtcbiAgICAgIHNpZ25lcjogU2lnbmVyS2V5O1xuICAgICAgY29zaWduZXI6IFNpZ25lcktleTtcbiAgICAgIGluc2NyaXB0aW9uQ29uc3RyYWludHM6IHtcbiAgICAgICAgbWluQ2hhbmdlT3V0cHV0PzogYmlnaW50O1xuICAgICAgICBtaW5JbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgICAgICAgbWF4SW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICB9O1xuICAgICAgdHhGb3JtYXQ/OiAncHNidCcgfCAnbGVnYWN5JztcbiAgICB9LFxuICAgIHdhbGxldFhwdWJzOiBUcmlwbGU8c3RyaW5nPixcbiAgICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gICAgaW5zY3JpcHRpb25VbnNwZW50czogV2FsbGV0VW5zcGVudFtdLFxuICAgIHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlOiBudW1iZXJcbiAgKTogUHJvbWlzZTxQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgbGV0IHN1cHBsZW1lbnRhcnlVbnNwZW50czogV2FsbGV0VW5zcGVudFtdID0gW107XG4gICAgaWYgKHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlID4gMCkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC51bnNwZW50cyh7XG4gICAgICAgIG1pblZhbHVlOiBzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZSxcbiAgICAgIH0pO1xuICAgICAgLy8gRmlsdGVyIG91dCB0aGUgaW5zY3JpcHRpb24gdW5zcGVudCBmcm9tIHRoZSBzdXBwbGVtZW50YXJ5IHVuc3BlbnRzXG4gICAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHMgPSByZXNwb25zZS51bnNwZW50c1xuICAgICAgICAuZmlsdGVyKCh1bnNwZW50OiB7IGlkOiBzdHJpbmcgfSkgPT4gdW5zcGVudC5pZCAhPT0gaW5zY3JpcHRpb25VbnNwZW50c1swXS5pZClcbiAgICAgICAgLnNsaWNlKDAsIE1BWF9VTlNQRU5UU19GT1JfT1VUUFVUX0xBWU9VVCAtIDEpXG4gICAgICAgIC5tYXAoXG4gICAgICAgICAgKHVuc3BlbnQ6IFdhbGxldFVuc3BlbnRMaWtlKTogV2FsbGV0VW5zcGVudCA9PiAoe1xuICAgICAgICAgICAgaWQ6IHVuc3BlbnQuaWQsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KHVuc3BlbnQudmFsdWUpLFxuICAgICAgICAgICAgY2hhaW46IHVuc3BlbnQuY2hhaW4sXG4gICAgICAgICAgICBpbmRleDogdW5zcGVudC5pbmRleCxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHBzYnQgPSBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gICAgICB0aGlzLmNvaW4ubmFtZSxcbiAgICAgIHtcbiAgICAgICAgd2FsbGV0S2V5czogd2FsbGV0WHB1YnMsXG4gICAgICAgIHNpZ25lcixcbiAgICAgICAgY29zaWduZXIsXG4gICAgICB9LFxuICAgICAgaW5zY3JpcHRpb25VbnNwZW50cyxcbiAgICAgIHNhdFBvaW50LFxuICAgICAgb3V0cHV0cyxcbiAgICAgIHsgZmVlUmF0ZVNhdEtCLCAuLi5pbnNjcmlwdGlvbkNvbnN0cmFpbnRzIH0sXG4gICAgICB7IHN1cHBsZW1lbnRhcnlVbnNwZW50cyB9XG4gICAgKTtcbiAgICBpZiAoIXBzYnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmVlIHRvbyBoaWdoIGZvciB0aGUgc2VsZWN0ZWQgdW5zcGVudCB3aXRoIHRoaXMgZmVlIHJhdGUnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxVbnNwZW50cyA9IFsuLi5pbnNjcmlwdGlvblVuc3BlbnRzLCAuLi5zdXBwbGVtZW50YXJ5VW5zcGVudHNdO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlIHRoZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpdCdzIGFscmVhZHkgY2FsbGVkIGluc2lkZSB0aGUgY3JlYXRlUHNidCBmdW5jdGlvbiBhYm92ZS5cbiAgICAvLyBDcmVhdGUgJiB1c2UgYSBnZXRGZWUgZnVuY3Rpb24gaW5zaWRlIHRoZSBjcmVhdGVkIFBTQlQgaW5zdGVhZCwgbGFjayBvZiB3aGljaCBuZWNlc3NpdGF0ZXMgYSBkdXBsaWNhdGUgY2FsbCBoZXJlLlxuICAgIGNvbnN0IG91dHB1dExheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhhbGxVbnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIHtcbiAgICAgIGZlZVJhdGVTYXRLQixcbiAgICAgIC4uLmluc2NyaXB0aW9uQ29uc3RyYWludHMsXG4gICAgfSk7XG4gICAgaWYgKCFvdXRwdXRMYXlvdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmVlIHRvbyBoaWdoIGZvciB0aGUgc2VsZWN0ZWQgdW5zcGVudCB3aXRoIHRoaXMgZmVlIHJhdGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHdhbGxldElkOiB0aGlzLndhbGxldC5pZCgpLFxuICAgICAgdHhIZXg6IEJ1ZmZlci5mcm9tKHBzYnQuc2VyaWFsaXplKCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHR4SW5mbzogeyB1bnNwZW50czogYWxsVW5zcGVudHMgfSxcbiAgICAgIGZlZUluZm86IHsgZmVlOiBOdW1iZXIob3V0cHV0TGF5b3V0LmxheW91dC5mZWVPdXRwdXQpLCBmZWVTdHJpbmc6IG91dHB1dExheW91dC5sYXlvdXQuZmVlT3V0cHV0LnRvU3RyaW5nKCkgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgdHJhbnNhY3Rpb24gdG8gc2VuZCBhbiBpbnNjcmlwdGlvblxuICAgKiBAcGFyYW0gc2F0UG9pbnQgU2F0cG9pbnQgeW91IHdhbnQgdG8gc2VuZFxuICAgKiBAcGFyYW0gcmVjaXBpZW50IEFkZHJlc3MgeW91IHdhbnQgdG8gc2VuZCB0b1xuICAgKiBAcGFyYW0gZmVlUmF0ZVNhdEtCIEZlZSByYXRlIGZvciB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gc2lnbmVyIGZpcnN0IHNpZ25lciBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGNvc2lnbmVyIHNlY29uZCBzaWduZXIgb2YgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1pbkNoYW5nZU91dHB1dCAob3B0aW9uYWwpIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNoYW5nZSBvdXRwdXRcbiAgICogQHBhcmFtIGluc2NyaXB0aW9uQ29uc3RyYWludHMubWluSW5zY3JpcHRpb25PdXRwdXQgKG9wdGlvbmFsKSB0aGUgbWluaW11bSBudW1iZXIgb2Ygc2F0cyBvZiB0aGUgb3V0cHV0IGNvbnRhaW5pbmcgdGhlIGluc2NyaXB0aW9uXG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1heEluc2NyaXB0aW9uT3V0cHV0IChvcHRpb25hbCkgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNhdHMgb2YgdGhlIG91dHB1dCBjb250YWluaW5nIHRoZSBpbnNjcmlwdGlvblxuICAgKiBAcGFyYW0gY2hhbmdlQWRkcmVzc1R5cGUgQWRkcmVzcyB0eXBlIG9mIHRoZSBjaGFuZ2UgYWRkcmVzc1xuICAgKi9cbiAgYXN5bmMgcHJlcGFyZVRyYW5zZmVyKFxuICAgIHNhdFBvaW50OiBzdHJpbmcsXG4gICAgcmVjaXBpZW50OiBzdHJpbmcsXG4gICAgZmVlUmF0ZVNhdEtCOiBudW1iZXIsXG4gICAge1xuICAgICAgc2lnbmVyID0gJ3VzZXInLFxuICAgICAgY29zaWduZXIgPSAnYml0Z28nLFxuICAgICAgaW5zY3JpcHRpb25Db25zdHJhaW50cyA9IERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzLFxuICAgICAgY2hhbmdlQWRkcmVzc1R5cGUgPSAncDJ3c2gnLFxuICAgICAgdHhGb3JtYXQgPSAncHNidCcsXG4gICAgfToge1xuICAgICAgc2lnbmVyPzogU2lnbmVyS2V5O1xuICAgICAgY29zaWduZXI/OiBTaWduZXJLZXk7XG4gICAgICBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzPzoge1xuICAgICAgICBtaW5DaGFuZ2VPdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICAgIG1pbkluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICAgICAgICBtYXhJbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgICAgIH07XG4gICAgICBjaGFuZ2VBZGRyZXNzVHlwZT86ICdwMnNoJyB8ICdwMnNoUDJ3c2gnIHwgJ3Ayd3NoJyB8ICdwMnRyJyB8ICdwMnRyTXVzaWcyJztcbiAgICAgIHR4Rm9ybWF0PzogJ3BzYnQnIHwgJ2xlZ2FjeSc7XG4gICAgfVxuICApOiBQcm9taXNlPFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ+IHtcbiAgICBhc3NlcnQoaXNTYXRQb2ludChzYXRQb2ludCkpO1xuXG4gICAgY29uc3Qga2V5Y2hhaW5zID0gYXdhaXQgZmV0Y2hLZXljaGFpbnModGhpcy5jb2luLCB0aGlzLndhbGxldCk7XG4gICAgY29uc3Qgd2FsbGV0WHB1YnM6IFRyaXBsZTxzdHJpbmc+ID0gW2tleWNoYWlucy51c2VyLnB1Yiwga2V5Y2hhaW5zLmJhY2t1cC5wdWIsIGtleWNoYWlucy5iaXRnby5wdWJdO1xuICAgIGNvbnN0IHBhcnNlZFNhdFBvaW50ID0gcGFyc2VTYXRQb2ludChzYXRQb2ludCk7XG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSBhd2FpdCB0aGlzLndhbGxldC5nZXRUcmFuc2FjdGlvbih7IHR4SGFzaDogcGFyc2VkU2F0UG9pbnQudHhpZCB9KTtcbiAgICBjb25zdCBvdXRwdXQgPSB0cmFuc2FjdGlvbi5vdXRwdXRzW3BhcnNlZFNhdFBvaW50LnZvdXRdO1xuICAgIGNvbnN0IHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50W10gPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiBgJHtwYXJzZWRTYXRQb2ludC50eGlkfToke3BhcnNlZFNhdFBvaW50LnZvdXR9YCxcbiAgICAgICAgdmFsdWU6IEJpZ0ludChvdXRwdXQudmFsdWUpLFxuICAgICAgICBjaGFpbjogb3V0cHV0LmNoYWluLFxuICAgICAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgY2hhbmdlQ2hhaW4gPSBmaXhlZFNjcmlwdFdhbGxldC5DaGFpbkNvZGUudmFsdWUoY2hhbmdlQWRkcmVzc1R5cGUsICdpbnRlcm5hbCcpO1xuXG4gICAgY29uc3QgY2hhbmdlQWRkcmVzcyA9IGF3YWl0IHRoaXMud2FsbGV0LmNyZWF0ZUFkZHJlc3Moe1xuICAgICAgY2hhaW46IGNoYW5nZUNoYWluLFxuICAgIH0pO1xuICAgIGNvbnN0IG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyA9IHtcbiAgICAgIGluc2NyaXB0aW9uUmVjaXBpZW50OiByZWNpcGllbnQsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXG4gICAgICAgIHsgY2hhaW46IGNoYW5nZUFkZHJlc3MuY2hhaW4sIGluZGV4OiBjaGFuZ2VBZGRyZXNzLmluZGV4IH0sXG4gICAgICAgIHsgY2hhaW46IGNoYW5nZUFkZHJlc3MuY2hhaW4sIGluZGV4OiBjaGFuZ2VBZGRyZXNzLmluZGV4IH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlIG9mIFNVUFBMRU1FTlRBUllfVU5TUEVOVFNfTUlOX1ZBTFVFX1NBVFMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByZXBhcmVUcmFuc2ZlcldpdGhFeHRyYUlucHV0cyhcbiAgICAgICAgICBzYXRQb2ludCxcbiAgICAgICAgICBmZWVSYXRlU2F0S0IsXG4gICAgICAgICAgeyBzaWduZXIsIGNvc2lnbmVyLCBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLCB0eEZvcm1hdCB9LFxuICAgICAgICAgIHdhbGxldFhwdWJzLFxuICAgICAgICAgIG91dHB1dHMsXG4gICAgICAgICAgdW5zcGVudHMsXG4gICAgICAgICAgc3VwcGxlbWVudGFyeVVuc3BlbnRzTWluVmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3JOb0xheW91dCkpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjsgLy8gUHJvcGFnYXRlIGVycm9yIGlmIGl0J3Mgbm90IGFuIEVycm9yTm9MYXlvdXRcbiAgICAgICAgfSAvLyBPdGhlcndpc2UgY29udGludWUgdHJ5aW5nIHdpdGggaGlnaGVyIG1pblZhbHVlIGZvciBzdXBwbGVtZW50YXJ5IHVuc3BlbnRzXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdGZWUgdG9vIGhpZ2ggZm9yIHRoZSBzZWxlY3RlZCB1bnNwZW50IHdpdGggdGhpcyBmZWUgcmF0ZScpOyAvLyBFeGhhdXN0ZWQgYWxsIHRyaWVzIHRvIHN1cHBsZW1lbnRcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gd2FsbGV0UGFzc3BocmFzZVxuICAgKiBAcGFyYW0gdGFwTGVhZlNjcmlwdFxuICAgKiBAcGFyYW0gY29tbWl0QWRkcmVzc1xuICAgKiBAcGFyYW0gdW5zaWduZWRDb21taXRUeFxuICAgKiBAcGFyYW0gY29tbWl0VHJhbnNhY3Rpb25VbnNwZW50c1xuICAgKiBAcGFyYW0gcmVjaXBpZW50QWRkcmVzc1xuICAgKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gICAqL1xuICBhc3luYyBzaWduQW5kU2VuZFJldmVhbChcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgdGFwTGVhZlNjcmlwdDogVGFwTGVhZlNjcmlwdCxcbiAgICBjb21taXRBZGRyZXNzOiBzdHJpbmcsXG4gICAgdW5zaWduZWRDb21taXRUeDogQnVmZmVyLFxuICAgIGNvbW1pdFRyYW5zYWN0aW9uVW5zcGVudHM6IFdhbGxldFVuc3BlbnRMaWtlW10sXG4gICAgcmVjaXBpZW50QWRkcmVzczogc3RyaW5nLFxuICAgIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyXG4gICk6IFByb21pc2U8U3VibWl0VHJhbnNhY3Rpb25SZXNwb25zZT4ge1xuICAgIGNvbnN0IHVzZXJLZXljaGFpbiA9IGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldCh7IGlkOiB0aGlzLndhbGxldC5rZXlJZHMoKVtLZXlJbmRpY2VzLlVTRVJdIH0pO1xuICAgIGNvbnN0IHhwcnYgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRVc2VyUHJ2QXN5bmMoeyBrZXljaGFpbjogdXNlcktleWNoYWluLCB3YWxsZXRQYXNzcGhyYXNlIH0pO1xuXG4gICAgY29uc3QgaGFsZlNpZ25lZENvbW1pdFRyYW5zYWN0aW9uID0gKGF3YWl0IHRoaXMud2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7XG4gICAgICBwcnY6IHhwcnYsXG4gICAgICB0eFByZWJ1aWxkOiB7XG4gICAgICAgIHR4SGV4OiB1bnNpZ25lZENvbW1pdFR4LnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdHhJbmZvOiB7IHVuc3BlbnRzOiBjb21taXRUcmFuc2FjdGlvblVuc3BlbnRzIH0sXG4gICAgICB9LFxuICAgIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuXG4gICAgY29uc3QgZGVyaXZlZCA9IHRoaXMuY29pbi5kZXJpdmVLZXlXaXRoU2VlZCh7IGtleTogeHBydiwgc2VlZDogaW5zY3JpcHRpb25EYXRhLnRvU3RyaW5nKCkgfSk7XG4gICAgY29uc3QgcHJ2ID0geHBydlRvUmF3UHJ2KGRlcml2ZWQua2V5KTtcblxuICAgIGNvbnN0IGZ1bGx5U2lnbmVkUmV2ZWFsVHJhbnNhY3Rpb24gPSBpbnNjcmlwdGlvbnMuc2lnblJldmVhbFRyYW5zYWN0aW9uKFxuICAgICAgQnVmZmVyLmZyb20ocHJ2LCAnaGV4JyksXG4gICAgICB0YXBMZWFmU2NyaXB0LFxuICAgICAgY29tbWl0QWRkcmVzcyxcbiAgICAgIHJlY2lwaWVudEFkZHJlc3MsXG4gICAgICBCdWZmZXIuZnJvbShoYWxmU2lnbmVkQ29tbWl0VHJhbnNhY3Rpb24udHhIZXgsICdoZXgnKSxcbiAgICAgIHRoaXMuY29pbi5uYW1lXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLndhbGxldC5zdWJtaXRUcmFuc2FjdGlvbih7XG4gICAgICBoYWxmU2lnbmVkOiB7XG4gICAgICAgIHR4SGV4OiBoYWxmU2lnbmVkQ29tbWl0VHJhbnNhY3Rpb24udHhIZXgsXG4gICAgICAgIHNpZ25lZENoaWxkUHNidDogQnVmZmVyLmZyb20oZnVsbHlTaWduZWRSZXZlYWxUcmFuc2FjdGlvbikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGFuZCBzZW5kIGEgdHJhbnNhY3Rpb24gdGhhdCB0cmFuc2ZlcnMgYW4gaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIHdhbGxldFBhc3NwaHJhc2UgcGFzc3BocmFzZSB0byB1bmxvY2sgeW91ciBrZXlzXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIHRoaXMgaXMgdGhlIG91dHB1dCBvZiBgaW5zY3JpcHRpb24ucHJlcGFyZVRyYW5zZmVyYFxuICAgKi9cbiAgYXN5bmMgc2lnbkFuZFNlbmRUcmFuc2ZlcihcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgdHhQcmVidWlsZDogUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFxuICApOiBQcm9taXNlPFN1Ym1pdFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1c2VyS2V5Y2hhaW4gPSBhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogdGhpcy53YWxsZXQua2V5SWRzKClbS2V5SW5kaWNlcy5VU0VSXSB9KTtcbiAgICBjb25zdCBwcnYgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRVc2VyUHJ2QXN5bmMoeyBrZXljaGFpbjogdXNlcktleWNoYWluLCB3YWxsZXRQYXNzcGhyYXNlIH0pO1xuXG4gICAgY29uc3QgaGFsZlNpZ25lZCA9IChhd2FpdCB0aGlzLndhbGxldC5zaWduVHJhbnNhY3Rpb24oeyBwcnYsIHR4UHJlYnVpbGQgfSkpIGFzIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LnN1Ym1pdFRyYW5zYWN0aW9uKHsgaGFsZlNpZ25lZCB9KTtcbiAgfVxufVxuIl19
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGwvYnRjL2luc2NyaXB0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsbURBVThCO0FBQzlCLG1EQWE4QjtBQUM5QixnREFBNEQ7QUFHNUQsK0RBQTREO0FBQzVELCtDQUFpRDtBQWFqRCxNQUFNLHFDQUFxQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQU0sRUFBRSxNQUFPLENBQUMsQ0FBQztBQUVuRSxNQUFhLGtCQUFrQjtJQUk3QixZQUFZLE1BQWUsRUFBRSxJQUFzQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUF1QixFQUFFLFdBQW1CO1FBQzlELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkcsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUEscUNBQWlCLEVBQUMsaUJBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXRHLE1BQU0sTUFBTSxHQUFHLHVCQUFZLENBQUMsMkJBQTJCLENBQ3JELFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFdBQVcsRUFDWCxlQUFlLEVBQ2YsSUFB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TUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUFyUUQsZ0RBcVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQge1xuICBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uLFxuICBJSW5zY3JpcHRpb25CdWlsZGVyLFxuICBJV2FsbGV0LFxuICBLZXlJbmRpY2VzLFxuICBQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0LFxuICBQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YSxcbiAgU3VibWl0VHJhbnNhY3Rpb25SZXNwb25zZSxcbiAgVHJpcGxlLFxuICB4cHJ2VG9SYXdQcnYsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIGNyZWF0ZVBzYnRGb3JTaW5nbGVJbnNjcmlwdGlvblBhc3NpbmdUcmFuc2FjdGlvbixcbiAgRGVmYXVsdEluc2NyaXB0aW9uQ29uc3RyYWludHMsXG4gIEluc2NyaXB0aW9uT3V0cHV0cyxcbiAgaW5zY3JpcHRpb25zLFxuICBwYXJzZVNhdFBvaW50LFxuICBpc1NhdFBvaW50LFxuICBFcnJvck5vTGF5b3V0LFxuICBmaW5kT3V0cHV0TGF5b3V0Rm9yV2FsbGV0VW5zcGVudHMsXG4gIE1BWF9VTlNQRU5UU19GT1JfT1VUUFVUX0xBWU9VVCxcbiAgU2F0UG9pbnQsXG4gIFdhbGxldFVuc3BlbnQsXG4gIHR5cGUgVGFwTGVhZlNjcmlwdCxcbn0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1vcmQnO1xuaW1wb3J0IHsgQklQMzIsIGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4gfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IGRlcml2ZUtleVdpdGhTZWVkIH0gZnJvbSAnLi4vLi4vZGVyaXZlS2V5V2l0aFNlZWQnO1xuaW1wb3J0IHsgZmV0Y2hLZXljaGFpbnMgfSBmcm9tICcuLi8uLi9rZXljaGFpbnMnO1xuXG4vKiogS2V5IGlkZW50aWZpZXIgZm9yIHNpZ25pbmcgKi9cbnR5cGUgU2lnbmVyS2V5ID0gJ3VzZXInIHwgJ2JhY2t1cCcgfCAnYml0Z28nO1xuXG4vKiogVW5zcGVudCBmcm9tIHdhbGxldCBBUEkgKHZhbHVlIG1heSBiZSBudW1iZXIgb3IgYmlnaW50KSAqL1xudHlwZSBXYWxsZXRVbnNwZW50TGlrZSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlciB8IGJpZ2ludDtcbiAgY2hhaW46IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmNvbnN0IFNVUFBMRU1FTlRBUllfVU5TUEVOVFNfTUlOX1ZBTFVFX1NBVFMgPSBbMCwgMjBfMDAwLCAyMDBfMDAwXTtcblxuZXhwb3J0IGNsYXNzIEluc2NyaXB0aW9uQnVpbGRlciBpbXBsZW1lbnRzIElJbnNjcmlwdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhbGxldDogSVdhbGxldDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2luOiBBYnN0cmFjdFV0eG9Db2luO1xuXG4gIGNvbnN0cnVjdG9yKHdhbGxldDogSVdhbGxldCwgY29pbjogQWJzdHJhY3RVdHhvQ29pbikge1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuY29pbiA9IGNvaW47XG4gIH1cblxuICBhc3luYyBwcmVwYXJlUmV2ZWFsKGluc2NyaXB0aW9uRGF0YTogQnVmZmVyLCBjb250ZW50VHlwZTogc3RyaW5nKTogUHJvbWlzZTxQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YT4ge1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogdGhpcy53YWxsZXQua2V5SWRzKClbS2V5SW5kaWNlcy5VU0VSXSB9KTtcbiAgICBhc3NlcnQodXNlci5wdWIpO1xuXG4gICAgY29uc3QgeyBrZXk6IGRlcml2ZWRLZXkgfSA9IGRlcml2ZUtleVdpdGhTZWVkKEJJUDMyLmZyb21CYXNlNTgodXNlci5wdWIpLCBpbnNjcmlwdGlvbkRhdGEudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBpbnNjcmlwdGlvbnMuY3JlYXRlSW5zY3JpcHRpb25SZXZlYWxEYXRhKFxuICAgICAgZGVyaXZlZEtleS5wdWJsaWNLZXksXG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIGluc2NyaXB0aW9uRGF0YSxcbiAgICAgIHRoaXMuY29pbi5uYW1lXG4gICAgKTtcblxuICAgIC8vIENvbnZlcnQgVGFwTGVhZlNjcmlwdCB0byB1dHhvbGliIGZvcm1hdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogcmVzdWx0LmFkZHJlc3MsXG4gICAgICByZXZlYWxUcmFuc2FjdGlvblZTaXplOiByZXN1bHQucmV2ZWFsVHJhbnNhY3Rpb25WU2l6ZSxcbiAgICAgIHRhcExlYWZTY3JpcHQ6IHtcbiAgICAgICAgY29udHJvbEJsb2NrOiBCdWZmZXIuZnJvbShyZXN1bHQudGFwTGVhZlNjcmlwdC5jb250cm9sQmxvY2spLFxuICAgICAgICBzY3JpcHQ6IEJ1ZmZlci5mcm9tKHJlc3VsdC50YXBMZWFmU2NyaXB0LnNjcmlwdCksXG4gICAgICAgIGxlYWZWZXJzaW9uOiByZXN1bHQudGFwTGVhZlNjcmlwdC5sZWFmVmVyc2lvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZVRyYW5zZmVyV2l0aEV4dHJhSW5wdXRzKFxuICAgIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgICBmZWVSYXRlU2F0S0I6IG51bWJlcixcbiAgICB7XG4gICAgICBzaWduZXIsXG4gICAgICBjb3NpZ25lcixcbiAgICAgIGluc2NyaXB0aW9uQ29uc3RyYWludHMsXG4gICAgICB0eEZvcm1hdCxcbiAgICB9OiB7XG4gICAgICBzaWduZXI6IFNpZ25lcktleTtcbiAgICAgIGNvc2lnbmVyOiBTaWduZXJLZXk7XG4gICAgICBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzOiB7XG4gICAgICAgIG1pbkNoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgICAgICAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICAgIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICAgICAgfTtcbiAgICAgIHR4Rm9ybWF0PzogJ3BzYnQnIHwgJ2xlZ2FjeSc7XG4gICAgfSxcbiAgICB3YWxsZXRYcHViczogVHJpcGxlPHN0cmluZz4sXG4gICAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICAgIGluc2NyaXB0aW9uVW5zcGVudHM6IFdhbGxldFVuc3BlbnRbXSxcbiAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZTogbnVtYmVyXG4gICk6IFByb21pc2U8UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdD4ge1xuICAgIGxldCBzdXBwbGVtZW50YXJ5VW5zcGVudHM6IFdhbGxldFVuc3BlbnRbXSA9IFtdO1xuICAgIGlmIChzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZSA+IDApIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53YWxsZXQudW5zcGVudHMoe1xuICAgICAgICBtaW5WYWx1ZTogc3VwcGxlbWVudGFyeVVuc3BlbnRzTWluVmFsdWUsXG4gICAgICB9KTtcbiAgICAgIC8vIEZpbHRlciBvdXQgdGhlIGluc2NyaXB0aW9uIHVuc3BlbnQgZnJvbSB0aGUgc3VwcGxlbWVudGFyeSB1bnNwZW50c1xuICAgICAgc3VwcGxlbWVudGFyeVVuc3BlbnRzID0gcmVzcG9uc2UudW5zcGVudHNcbiAgICAgICAgLmZpbHRlcigodW5zcGVudDogeyBpZDogc3RyaW5nIH0pID0+IHVuc3BlbnQuaWQgIT09IGluc2NyaXB0aW9uVW5zcGVudHNbMF0uaWQpXG4gICAgICAgIC5zbGljZSgwLCBNQVhfVU5TUEVOVFNfRk9SX09VVFBVVF9MQVlPVVQgLSAxKVxuICAgICAgICAubWFwKFxuICAgICAgICAgICh1bnNwZW50OiBXYWxsZXRVbnNwZW50TGlrZSk6IFdhbGxldFVuc3BlbnQgPT4gKHtcbiAgICAgICAgICAgIGlkOiB1bnNwZW50LmlkLFxuICAgICAgICAgICAgdmFsdWU6IEJpZ0ludCh1bnNwZW50LnZhbHVlKSxcbiAgICAgICAgICAgIGNoYWluOiB1bnNwZW50LmNoYWluLFxuICAgICAgICAgICAgaW5kZXg6IHVuc3BlbnQuaW5kZXgsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwc2J0ID0gY3JlYXRlUHNidEZvclNpbmdsZUluc2NyaXB0aW9uUGFzc2luZ1RyYW5zYWN0aW9uKFxuICAgICAgdGhpcy5jb2luLm5hbWUsXG4gICAgICB7XG4gICAgICAgIHdhbGxldEtleXM6IHdhbGxldFhwdWJzLFxuICAgICAgICBzaWduZXIsXG4gICAgICAgIGNvc2lnbmVyLFxuICAgICAgfSxcbiAgICAgIGluc2NyaXB0aW9uVW5zcGVudHMsXG4gICAgICBzYXRQb2ludCxcbiAgICAgIG91dHB1dHMsXG4gICAgICB7IGZlZVJhdGVTYXRLQiwgLi4uaW5zY3JpcHRpb25Db25zdHJhaW50cyB9LFxuICAgICAgeyBzdXBwbGVtZW50YXJ5VW5zcGVudHMgfVxuICAgICk7XG4gICAgaWYgKCFwc2J0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSB0b28gaGlnaCBmb3IgdGhlIHNlbGVjdGVkIHVuc3BlbnQgd2l0aCB0aGlzIGZlZSByYXRlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsVW5zcGVudHMgPSBbLi4uaW5zY3JpcHRpb25VbnNwZW50cywgLi4uc3VwcGxlbWVudGFyeVVuc3BlbnRzXTtcblxuICAgIC8vIFRPRE86IFJlbW92ZSB0aGUgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGJlY2F1c2UgaXQncyBhbHJlYWR5IGNhbGxlZCBpbnNpZGUgdGhlIGNyZWF0ZVBzYnQgZnVuY3Rpb24gYWJvdmUuXG4gICAgLy8gQ3JlYXRlICYgdXNlIGEgZ2V0RmVlIGZ1bmN0aW9uIGluc2lkZSB0aGUgY3JlYXRlZCBQU0JUIGluc3RlYWQsIGxhY2sgb2Ygd2hpY2ggbmVjZXNzaXRhdGVzIGEgZHVwbGljYXRlIGNhbGwgaGVyZS5cbiAgICBjb25zdCBvdXRwdXRMYXlvdXQgPSBmaW5kT3V0cHV0TGF5b3V0Rm9yV2FsbGV0VW5zcGVudHMoYWxsVW5zcGVudHMsIHNhdFBvaW50LCBvdXRwdXRzLCB7XG4gICAgICBmZWVSYXRlU2F0S0IsXG4gICAgICAuLi5pbnNjcmlwdGlvbkNvbnN0cmFpbnRzLFxuICAgIH0pO1xuICAgIGlmICghb3V0cHV0TGF5b3V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSB0b28gaGlnaCBmb3IgdGhlIHNlbGVjdGVkIHVuc3BlbnQgd2l0aCB0aGlzIGZlZSByYXRlJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB3YWxsZXRJZDogdGhpcy53YWxsZXQuaWQoKSxcbiAgICAgIHR4SGV4OiBCdWZmZXIuZnJvbShwc2J0LnNlcmlhbGl6ZSgpKS50b1N0cmluZygnaGV4JyksXG4gICAgICB0eEluZm86IHsgdW5zcGVudHM6IGFsbFVuc3BlbnRzIH0sXG4gICAgICBmZWVJbmZvOiB7IGZlZTogTnVtYmVyKG91dHB1dExheW91dC5sYXlvdXQuZmVlT3V0cHV0KSwgZmVlU3RyaW5nOiBvdXRwdXRMYXlvdXQubGF5b3V0LmZlZU91dHB1dC50b1N0cmluZygpIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHRyYW5zYWN0aW9uIHRvIHNlbmQgYW4gaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIHNhdFBvaW50IFNhdHBvaW50IHlvdSB3YW50IHRvIHNlbmRcbiAgICogQHBhcmFtIHJlY2lwaWVudCBBZGRyZXNzIHlvdSB3YW50IHRvIHNlbmQgdG9cbiAgICogQHBhcmFtIGZlZVJhdGVTYXRLQiBGZWUgcmF0ZSBmb3IgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHNpZ25lciBmaXJzdCBzaWduZXIgb2YgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBjb3NpZ25lciBzZWNvbmQgc2lnbmVyIG9mIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gaW5zY3JpcHRpb25Db25zdHJhaW50cy5taW5DaGFuZ2VPdXRwdXQgKG9wdGlvbmFsKSB0aGUgbWluaW11bSBzaXplIG9mIHRoZSBjaGFuZ2Ugb3V0cHV0XG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1pbkluc2NyaXB0aW9uT3V0cHV0IChvcHRpb25hbCkgdGhlIG1pbmltdW0gbnVtYmVyIG9mIHNhdHMgb2YgdGhlIG91dHB1dCBjb250YWluaW5nIHRoZSBpbnNjcmlwdGlvblxuICAgKiBAcGFyYW0gaW5zY3JpcHRpb25Db25zdHJhaW50cy5tYXhJbnNjcmlwdGlvbk91dHB1dCAob3B0aW9uYWwpIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzYXRzIG9mIHRoZSBvdXRwdXQgY29udGFpbmluZyB0aGUgaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIGNoYW5nZUFkZHJlc3NUeXBlIEFkZHJlc3MgdHlwZSBvZiB0aGUgY2hhbmdlIGFkZHJlc3NcbiAgICovXG4gIGFzeW5jIHByZXBhcmVUcmFuc2ZlcihcbiAgICBzYXRQb2ludDogc3RyaW5nLFxuICAgIHJlY2lwaWVudDogc3RyaW5nLFxuICAgIGZlZVJhdGVTYXRLQjogbnVtYmVyLFxuICAgIHtcbiAgICAgIHNpZ25lciA9ICd1c2VyJyxcbiAgICAgIGNvc2lnbmVyID0gJ2JpdGdvJyxcbiAgICAgIGluc2NyaXB0aW9uQ29uc3RyYWludHMgPSBEZWZhdWx0SW5zY3JpcHRpb25Db25zdHJhaW50cyxcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlID0gJ3Ayd3NoJyxcbiAgICAgIHR4Rm9ybWF0ID0gJ3BzYnQnLFxuICAgIH06IHtcbiAgICAgIHNpZ25lcj86IFNpZ25lcktleTtcbiAgICAgIGNvc2lnbmVyPzogU2lnbmVyS2V5O1xuICAgICAgaW5zY3JpcHRpb25Db25zdHJhaW50cz86IHtcbiAgICAgICAgbWluQ2hhbmdlT3V0cHV0PzogYmlnaW50O1xuICAgICAgICBtaW5JbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgICAgICAgbWF4SW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICB9O1xuICAgICAgY2hhbmdlQWRkcmVzc1R5cGU/OiAncDJzaCcgfCAncDJzaFAyd3NoJyB8ICdwMndzaCcgfCAncDJ0cicgfCAncDJ0ck11c2lnMic7XG4gICAgICB0eEZvcm1hdD86ICdwc2J0JyB8ICdsZWdhY3knO1xuICAgIH1cbiAgKTogUHJvbWlzZTxQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgYXNzZXJ0KGlzU2F0UG9pbnQoc2F0UG9pbnQpKTtcblxuICAgIGNvbnN0IGtleWNoYWlucyA9IGF3YWl0IGZldGNoS2V5Y2hhaW5zKHRoaXMuY29pbiwgdGhpcy53YWxsZXQpO1xuICAgIGNvbnN0IHdhbGxldFhwdWJzOiBUcmlwbGU8c3RyaW5nPiA9IFtrZXljaGFpbnMudXNlci5wdWIsIGtleWNoYWlucy5iYWNrdXAucHViLCBrZXljaGFpbnMuYml0Z28ucHViXTtcbiAgICBjb25zdCBwYXJzZWRTYXRQb2ludCA9IHBhcnNlU2F0UG9pbnQoc2F0UG9pbnQpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gYXdhaXQgdGhpcy53YWxsZXQuZ2V0VHJhbnNhY3Rpb24oeyB0eEhhc2g6IHBhcnNlZFNhdFBvaW50LnR4aWQgfSk7XG4gICAgY29uc3Qgb3V0cHV0ID0gdHJhbnNhY3Rpb24ub3V0cHV0c1twYXJzZWRTYXRQb2ludC52b3V0XTtcbiAgICBjb25zdCB1bnNwZW50czogV2FsbGV0VW5zcGVudFtdID0gW1xuICAgICAge1xuICAgICAgICBpZDogYCR7cGFyc2VkU2F0UG9pbnQudHhpZH06JHtwYXJzZWRTYXRQb2ludC52b3V0fWAsXG4gICAgICAgIHZhbHVlOiBCaWdJbnQob3V0cHV0LnZhbHVlKSxcbiAgICAgICAgY2hhaW46IG91dHB1dC5jaGFpbixcbiAgICAgICAgaW5kZXg6IG91dHB1dC5pbmRleCxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IGNoYW5nZUNoYWluID0gZml4ZWRTY3JpcHRXYWxsZXQuQ2hhaW5Db2RlLnZhbHVlKGNoYW5nZUFkZHJlc3NUeXBlLCAnaW50ZXJuYWwnKTtcblxuICAgIGNvbnN0IGNoYW5nZUFkZHJlc3MgPSBhd2FpdCB0aGlzLndhbGxldC5jcmVhdGVBZGRyZXNzKHtcbiAgICAgIGNoYWluOiBjaGFuZ2VDaGFpbixcbiAgICB9KTtcbiAgICBjb25zdCBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMgPSB7XG4gICAgICBpbnNjcmlwdGlvblJlY2lwaWVudDogcmVjaXBpZW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW1xuICAgICAgICB7IGNoYWluOiBjaGFuZ2VBZGRyZXNzLmNoYWluLCBpbmRleDogY2hhbmdlQWRkcmVzcy5pbmRleCB9LFxuICAgICAgICB7IGNoYWluOiBjaGFuZ2VBZGRyZXNzLmNoYWluLCBpbmRleDogY2hhbmdlQWRkcmVzcy5pbmRleCB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZSBvZiBTVVBQTEVNRU5UQVJZX1VOU1BFTlRTX01JTl9WQUxVRV9TQVRTKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcmVwYXJlVHJhbnNmZXJXaXRoRXh0cmFJbnB1dHMoXG4gICAgICAgICAgc2F0UG9pbnQsXG4gICAgICAgICAgZmVlUmF0ZVNhdEtCLFxuICAgICAgICAgIHsgc2lnbmVyLCBjb3NpZ25lciwgaW5zY3JpcHRpb25Db25zdHJhaW50cywgdHhGb3JtYXQgfSxcbiAgICAgICAgICB3YWxsZXRYcHVicyxcbiAgICAgICAgICBvdXRwdXRzLFxuICAgICAgICAgIHVuc3BlbnRzLFxuICAgICAgICAgIHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yTm9MYXlvdXQpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7IC8vIFByb3BhZ2F0ZSBlcnJvciBpZiBpdCdzIG5vdCBhbiBFcnJvck5vTGF5b3V0XG4gICAgICAgIH0gLy8gT3RoZXJ3aXNlIGNvbnRpbnVlIHRyeWluZyB3aXRoIGhpZ2hlciBtaW5WYWx1ZSBmb3Igc3VwcGxlbWVudGFyeSB1bnNwZW50c1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignRmVlIHRvbyBoaWdoIGZvciB0aGUgc2VsZWN0ZWQgdW5zcGVudCB3aXRoIHRoaXMgZmVlIHJhdGUnKTsgLy8gRXhoYXVzdGVkIGFsbCB0cmllcyB0byBzdXBwbGVtZW50XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHdhbGxldFBhc3NwaHJhc2VcbiAgICogQHBhcmFtIHRhcExlYWZTY3JpcHRcbiAgICogQHBhcmFtIGNvbW1pdEFkZHJlc3NcbiAgICogQHBhcmFtIHVuc2lnbmVkQ29tbWl0VHhcbiAgICogQHBhcmFtIGNvbW1pdFRyYW5zYWN0aW9uVW5zcGVudHNcbiAgICogQHBhcmFtIHJlY2lwaWVudEFkZHJlc3NcbiAgICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICAgKi9cbiAgYXN5bmMgc2lnbkFuZFNlbmRSZXZlYWwoXG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nLFxuICAgIHRhcExlYWZTY3JpcHQ6IFRhcExlYWZTY3JpcHQsXG4gICAgY29tbWl0QWRkcmVzczogc3RyaW5nLFxuICAgIHVuc2lnbmVkQ29tbWl0VHg6IEJ1ZmZlcixcbiAgICBjb21taXRUcmFuc2FjdGlvblVuc3BlbnRzOiBXYWxsZXRVbnNwZW50TGlrZVtdLFxuICAgIHJlY2lwaWVudEFkZHJlc3M6IHN0cmluZyxcbiAgICBpbnNjcmlwdGlvbkRhdGE6IEJ1ZmZlclxuICApOiBQcm9taXNlPFN1Ym1pdFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1c2VyS2V5Y2hhaW4gPSBhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogdGhpcy53YWxsZXQua2V5SWRzKClbS2V5SW5kaWNlcy5VU0VSXSB9KTtcbiAgICBjb25zdCB4cHJ2ID0gYXdhaXQgdGhpcy53YWxsZXQuZ2V0VXNlclBydkFzeW5jKHsga2V5Y2hhaW46IHVzZXJLZXljaGFpbiwgd2FsbGV0UGFzc3BocmFzZSB9KTtcblxuICAgIGNvbnN0IGhhbGZTaWduZWRDb21taXRUcmFuc2FjdGlvbiA9IChhd2FpdCB0aGlzLndhbGxldC5zaWduVHJhbnNhY3Rpb24oe1xuICAgICAgcHJ2OiB4cHJ2LFxuICAgICAgdHhQcmVidWlsZDoge1xuICAgICAgICB0eEhleDogdW5zaWduZWRDb21taXRUeC50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHR4SW5mbzogeyB1bnNwZW50czogY29tbWl0VHJhbnNhY3Rpb25VbnNwZW50cyB9LFxuICAgICAgfSxcbiAgICB9KSkgYXMgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbjtcblxuICAgIGNvbnN0IGRlcml2ZWQgPSB0aGlzLmNvaW4uZGVyaXZlS2V5V2l0aFNlZWQoeyBrZXk6IHhwcnYsIHNlZWQ6IGluc2NyaXB0aW9uRGF0YS50b1N0cmluZygpIH0pO1xuICAgIGNvbnN0IHBydiA9IHhwcnZUb1Jhd1BydihkZXJpdmVkLmtleSk7XG5cbiAgICBjb25zdCBmdWxseVNpZ25lZFJldmVhbFRyYW5zYWN0aW9uID0gaW5zY3JpcHRpb25zLnNpZ25SZXZlYWxUcmFuc2FjdGlvbihcbiAgICAgIEJ1ZmZlci5mcm9tKHBydiwgJ2hleCcpLFxuICAgICAgdGFwTGVhZlNjcmlwdCxcbiAgICAgIGNvbW1pdEFkZHJlc3MsXG4gICAgICByZWNpcGllbnRBZGRyZXNzLFxuICAgICAgQnVmZmVyLmZyb20oaGFsZlNpZ25lZENvbW1pdFRyYW5zYWN0aW9uLnR4SGV4LCAnaGV4JyksXG4gICAgICB0aGlzLmNvaW4ubmFtZVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy53YWxsZXQuc3VibWl0VHJhbnNhY3Rpb24oe1xuICAgICAgaGFsZlNpZ25lZDoge1xuICAgICAgICB0eEhleDogaGFsZlNpZ25lZENvbW1pdFRyYW5zYWN0aW9uLnR4SGV4LFxuICAgICAgICBzaWduZWRDaGlsZFBzYnQ6IEJ1ZmZlci5mcm9tKGZ1bGx5U2lnbmVkUmV2ZWFsVHJhbnNhY3Rpb24pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhbmQgc2VuZCBhIHRyYW5zYWN0aW9uIHRoYXQgdHJhbnNmZXJzIGFuIGluc2NyaXB0aW9uXG4gICAqIEBwYXJhbSB3YWxsZXRQYXNzcGhyYXNlIHBhc3NwaHJhc2UgdG8gdW5sb2NrIHlvdXIga2V5c1xuICAgKiBAcGFyYW0gdHhQcmVidWlsZCB0aGlzIGlzIHRoZSBvdXRwdXQgb2YgYGluc2NyaXB0aW9uLnByZXBhcmVUcmFuc2ZlcmBcbiAgICovXG4gIGFzeW5jIHNpZ25BbmRTZW5kVHJhbnNmZXIoXG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nLFxuICAgIHR4UHJlYnVpbGQ6IFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHRcbiAgKTogUHJvbWlzZTxTdWJtaXRUcmFuc2FjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXNlcktleWNoYWluID0gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IHRoaXMud2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuVVNFUl0gfSk7XG4gICAgY29uc3QgcHJ2ID0gYXdhaXQgdGhpcy53YWxsZXQuZ2V0VXNlclBydkFzeW5jKHsga2V5Y2hhaW46IHVzZXJLZXljaGFpbiwgd2FsbGV0UGFzc3BocmFzZSB9KTtcblxuICAgIGNvbnN0IGhhbGZTaWduZWQgPSAoYXdhaXQgdGhpcy53YWxsZXQuc2lnblRyYW5zYWN0aW9uKHsgcHJ2LCB0eFByZWJ1aWxkIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuICAgIHJldHVybiB0aGlzLndhbGxldC5zdWJtaXRUcmFuc2FjdGlvbih7IGhhbGZTaWduZWQgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineVaultHalfSigned.d.ts","sourceRoot":"","sources":["../../../../src/offlineVault/OfflineVaultHalfSigned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAQ,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"OfflineVaultHalfSigned.d.ts","sourceRoot":"","sources":["../../../../src/offlineVault/OfflineVaultHalfSigned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAQ,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B,CAAC;AAMF,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,cAAc,EAClC,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,OAAO,GACV,sBAAsB,CAUxB"}
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createHalfSigned = createHalfSigned;
|
|
4
4
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
5
|
-
const
|
|
6
|
-
const wasmUtil_1 = require("../wasmUtil");
|
|
5
|
+
const deriveKeyWithSeed_1 = require("../deriveKeyWithSeed");
|
|
7
6
|
const OfflineVaultSignable_1 = require("./OfflineVaultSignable");
|
|
8
7
|
const descriptor_1 = require("./descriptor");
|
|
9
8
|
function createHalfSignedFromPsbt(psbt) {
|
|
10
9
|
return { halfSigned: { txHex: Buffer.from(psbt.serialize()).toString('hex') } };
|
|
11
10
|
}
|
|
12
11
|
function createHalfSigned(coinName, prv, derivationId, tx) {
|
|
13
|
-
const
|
|
14
|
-
const derivedKey =
|
|
12
|
+
const wasmKey = typeof prv === 'string' ? wasm_utxo_1.BIP32.fromBase58(prv) : wasm_utxo_1.BIP32.fromBase58(prv.toBase58());
|
|
13
|
+
const derivedKey = (0, deriveKeyWithSeed_1.deriveKeyWithSeed)(wasmKey, derivationId).key;
|
|
15
14
|
if (!OfflineVaultSignable_1.OfflineVaultSignable.is(tx)) {
|
|
16
15
|
throw new Error('unsupported transaction type');
|
|
17
16
|
}
|
|
@@ -20,4 +19,4 @@ function createHalfSigned(coinName, prv, derivationId, tx) {
|
|
|
20
19
|
}
|
|
21
20
|
throw new Error('unsupported transaction type');
|
|
22
21
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmbGluZVZhdWx0SGFsZlNpZ25lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9vZmZsaW5lVmF1bHQvT2ZmbGluZVZhdWx0SGFsZlNpZ25lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdCQSw0Q0FlQztBQS9CRCxnREFBc0Q7QUFFdEQsNERBQXlEO0FBR3pELGlFQUE4RDtBQUM5RCw2Q0FBd0U7QUFNeEUsU0FBUyx3QkFBd0IsQ0FBQyxJQUFVO0lBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ2xGLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDOUIsUUFBc0IsRUFDdEIsR0FBa0MsRUFDbEMsWUFBb0IsRUFDcEIsRUFBVztJQUVYLE1BQU0sT0FBTyxHQUFHLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLE1BQU0sVUFBVSxHQUFHLElBQUEscUNBQWlCLEVBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNoRSxJQUFJLENBQUMsMkNBQW9CLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLGtDQUFxQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sd0JBQXdCLENBQUMsSUFBQSw4QkFBaUIsRUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQklQMzIsIGJpcDMyLCBQc2J0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IGRlcml2ZUtleVdpdGhTZWVkIH0gZnJvbSAnLi4vZGVyaXZlS2V5V2l0aFNlZWQnO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vbmFtZXMnO1xuXG5pbXBvcnQgeyBPZmZsaW5lVmF1bHRTaWduYWJsZSB9IGZyb20gJy4vT2ZmbGluZVZhdWx0U2lnbmFibGUnO1xuaW1wb3J0IHsgRGVzY3JpcHRvclRyYW5zYWN0aW9uLCBnZXRIYWxmU2lnbmVkUHNidCB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIE9mZmxpbmVWYXVsdEhhbGZTaWduZWQgPSB7XG4gIGhhbGZTaWduZWQ6IHsgdHhIZXg6IHN0cmluZyB9O1xufTtcblxuZnVuY3Rpb24gY3JlYXRlSGFsZlNpZ25lZEZyb21Qc2J0KHBzYnQ6IFBzYnQpOiBPZmZsaW5lVmF1bHRIYWxmU2lnbmVkIHtcbiAgcmV0dXJuIHsgaGFsZlNpZ25lZDogeyB0eEhleDogQnVmZmVyLmZyb20ocHNidC5zZXJpYWxpemUoKSkudG9TdHJpbmcoJ2hleCcpIH0gfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhhbGZTaWduZWQoXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUsXG4gIHBydjogc3RyaW5nIHwgYmlwMzIuQklQMzJJbnRlcmZhY2UsXG4gIGRlcml2YXRpb25JZDogc3RyaW5nLFxuICB0eDogdW5rbm93blxuKTogT2ZmbGluZVZhdWx0SGFsZlNpZ25lZCB7XG4gIGNvbnN0IHdhc21LZXkgPSB0eXBlb2YgcHJ2ID09PSAnc3RyaW5nJyA/IEJJUDMyLmZyb21CYXNlNTgocHJ2KSA6IEJJUDMyLmZyb21CYXNlNTgocHJ2LnRvQmFzZTU4KCkpO1xuICBjb25zdCBkZXJpdmVkS2V5ID0gZGVyaXZlS2V5V2l0aFNlZWQod2FzbUtleSwgZGVyaXZhdGlvbklkKS5rZXk7XG4gIGlmICghT2ZmbGluZVZhdWx0U2lnbmFibGUuaXModHgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gIH1cbiAgaWYgKERlc2NyaXB0b3JUcmFuc2FjdGlvbi5pcyh0eCkpIHtcbiAgICByZXR1cm4gY3JlYXRlSGFsZlNpZ25lZEZyb21Qc2J0KGdldEhhbGZTaWduZWRQc2J0KHR4LCBkZXJpdmVkS2V5LCBjb2luTmFtZSkpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../src/offlineVault/descriptor/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AASlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../src/offlineVault/descriptor/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AASlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGjC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE3E,wBAAgB,uCAAuC,CAAC,EAAE,EAAE,qBAAqB,GAAG,aAAa,CAUhG;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAKpH;AAED,wBAAgB,iCAAiC,CAC/C,EAAE,EAAE,qBAAqB,EACzB,QAAQ,EAAE,YAAY,GACrB,sBAAsB,CAAC,MAAM,CAAC,CAehC"}
|
|
@@ -38,11 +38,11 @@ exports.getDescriptorsFromDescriptorTransaction = getDescriptorsFromDescriptorTr
|
|
|
38
38
|
exports.getHalfSignedPsbt = getHalfSignedPsbt;
|
|
39
39
|
exports.getTransactionExplanationFromPsbt = getTransactionExplanationFromPsbt;
|
|
40
40
|
const t = __importStar(require("io-ts"));
|
|
41
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
41
42
|
const descriptor_1 = require("../../descriptor");
|
|
42
43
|
const OfflineVaultSignable_1 = require("../OfflineVaultSignable");
|
|
43
44
|
const validatePolicy_1 = require("../../descriptor/validatePolicy");
|
|
44
45
|
const descriptor_2 = require("../../transaction/descriptor");
|
|
45
|
-
const wasmUtil_1 = require("../../wasmUtil");
|
|
46
46
|
exports.DescriptorTransaction = t.intersection([OfflineVaultSignable_1.OfflineVaultSignable, t.type({ descriptors: t.array(descriptor_1.NamedDescriptor) })], 'DescriptorTransaction');
|
|
47
47
|
function getDescriptorsFromDescriptorTransaction(tx) {
|
|
48
48
|
const { descriptors, xpubsWithDerivationPath } = tx;
|
|
@@ -56,13 +56,13 @@ function getDescriptorsFromDescriptorTransaction(tx) {
|
|
|
56
56
|
return (0, validatePolicy_1.toDescriptorMapValidate)(descriptors, pubkeys, policy);
|
|
57
57
|
}
|
|
58
58
|
function getHalfSignedPsbt(tx, prv, coinName) {
|
|
59
|
-
const psbt =
|
|
59
|
+
const psbt = wasm_utxo_1.Psbt.deserialize(Buffer.from(tx.coinSpecific.txHex, 'hex'));
|
|
60
60
|
const descriptorMap = getDescriptorsFromDescriptorTransaction(tx);
|
|
61
61
|
(0, descriptor_2.signPsbt)(psbt, descriptorMap, prv, { onUnknownInput: 'throw' });
|
|
62
62
|
return psbt;
|
|
63
63
|
}
|
|
64
64
|
function getTransactionExplanationFromPsbt(tx, coinName) {
|
|
65
|
-
const psbt =
|
|
65
|
+
const psbt = wasm_utxo_1.Psbt.deserialize(Buffer.from(tx.coinSpecific.txHex, 'hex'));
|
|
66
66
|
const descriptorMap = getDescriptorsFromDescriptorTransaction(tx);
|
|
67
67
|
const { outputs, changeOutputs, fee } = (0, descriptor_2.explainPsbt)(psbt, descriptorMap, coinName);
|
|
68
68
|
return {
|
|
@@ -77,4 +77,4 @@ function getTransactionExplanationFromPsbt(tx, coinName) {
|
|
|
77
77
|
},
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvb2ZmbGluZVZhdWx0L2Rlc2NyaXB0b3IvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBLDBGQVVDO0FBRUQsOENBS0M7QUFFRCw4RUFrQkM7QUEzREQseUNBQTJCO0FBQzNCLGdEQUErQztBQUUvQyxpREFBa0U7QUFDbEUsa0VBQTRFO0FBQzVFLG9FQUt5QztBQUN6Qyw2REFBcUU7QUFJeEQsUUFBQSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUNqRCxDQUFDLDJDQUFvQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyw0QkFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3pFLHVCQUF1QixDQUN4QixDQUFDO0FBSUYsU0FBZ0IsdUNBQXVDLENBQUMsRUFBeUI7SUFDL0UsTUFBTSxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFBLGtDQUFXLEVBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFBLGlDQUFnQixFQUFDO1FBQzlCLHdFQUF3RTtRQUN4RSxJQUFBLDJDQUEwQixFQUFDLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDL0UsK0NBQStDO1FBQy9DLElBQUEsNENBQTJCLEdBQUU7S0FDOUIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFBLHdDQUF1QixFQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEVBQXlCLEVBQUUsR0FBeUIsRUFBRSxRQUFzQjtJQUM1RyxNQUFNLElBQUksR0FBRyxnQkFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsTUFBTSxhQUFhLEdBQUcsdUNBQXVDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEUsSUFBQSxxQkFBUSxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsaUNBQWlDLENBQy9DLEVBQXlCLEVBQ3pCLFFBQXNCO0lBRXRCLE1BQU0sSUFBSSxHQUFHLGdCQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RSxNQUFNLGFBQWEsR0FBRyx1Q0FBdUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLHdCQUFXLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRixPQUFPO1FBQ0wsT0FBTztRQUNQLGFBQWE7UUFDYixHQUFHLEVBQUU7WUFDSCxpQkFBaUI7WUFDakIsR0FBRztZQUNILFVBQVU7WUFDVixjQUFjLEVBQUUsU0FBUztZQUN6QixlQUFlLEVBQUUsU0FBUztTQUMzQjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgeyBiaXAzMiwgUHNidCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwLCBOYW1lZERlc2NyaXB0b3IgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IE9mZmxpbmVWYXVsdFNpZ25hYmxlLCB0b0tleVRyaXBsZSB9IGZyb20gJy4uL09mZmxpbmVWYXVsdFNpZ25hYmxlJztcbmltcG9ydCB7XG4gIGdldFZhbGlkYXRvck9uZU9mVGVtcGxhdGVzLFxuICBnZXRWYWxpZGF0b3JTaWduZWRCeVVzZXJLZXksXG4gIGdldFZhbGlkYXRvclNvbWUsXG4gIHRvRGVzY3JpcHRvck1hcFZhbGlkYXRlLFxufSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL3ZhbGlkYXRlUG9saWN5JztcbmltcG9ydCB7IGV4cGxhaW5Qc2J0LCBzaWduUHNidCB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4uL1RyYW5zYWN0aW9uRXhwbGFuYXRpb24nO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuXG5leHBvcnQgY29uc3QgRGVzY3JpcHRvclRyYW5zYWN0aW9uID0gdC5pbnRlcnNlY3Rpb24oXG4gIFtPZmZsaW5lVmF1bHRTaWduYWJsZSwgdC50eXBlKHsgZGVzY3JpcHRvcnM6IHQuYXJyYXkoTmFtZWREZXNjcmlwdG9yKSB9KV0sXG4gICdEZXNjcmlwdG9yVHJhbnNhY3Rpb24nXG4pO1xuXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yVHJhbnNhY3Rpb24gPSB0LlR5cGVPZjx0eXBlb2YgRGVzY3JpcHRvclRyYW5zYWN0aW9uPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JzRnJvbURlc2NyaXB0b3JUcmFuc2FjdGlvbih0eDogRGVzY3JpcHRvclRyYW5zYWN0aW9uKTogRGVzY3JpcHRvck1hcCB7XG4gIGNvbnN0IHsgZGVzY3JpcHRvcnMsIHhwdWJzV2l0aERlcml2YXRpb25QYXRoIH0gPSB0eDtcbiAgY29uc3QgcHVia2V5cyA9IHRvS2V5VHJpcGxlKHhwdWJzV2l0aERlcml2YXRpb25QYXRoKTtcbiAgY29uc3QgcG9saWN5ID0gZ2V0VmFsaWRhdG9yU29tZShbXG4gICAgLy8gYWxsb3cgYWxsIDItb2YtMy1pc2ggZGVzY3JpcHRvcnMgd2hlcmUgdGhlIGtleXMgbWF0Y2ggdGhlIHdhbGxldCBrZXlzXG4gICAgZ2V0VmFsaWRhdG9yT25lT2ZUZW1wbGF0ZXMoWydXc2gyT2YzJywgJ1dzaDJPZjNDbHR2RHJvcCcsICdTaFdzaDJPZjNDbHR2RHJvcCddKSxcbiAgICAvLyBhbGxvdyBhbGwgZGVzY3JpcHRvcnMgc2lnbmVkIGJ5IHRoZSB1c2VyIGtleVxuICAgIGdldFZhbGlkYXRvclNpZ25lZEJ5VXNlcktleSgpLFxuICBdKTtcbiAgcmV0dXJuIHRvRGVzY3JpcHRvck1hcFZhbGlkYXRlKGRlc2NyaXB0b3JzLCBwdWJrZXlzLCBwb2xpY3kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFsZlNpZ25lZFBzYnQodHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbiwgcHJ2OiBiaXAzMi5CSVAzMkludGVyZmFjZSwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IFBzYnQge1xuICBjb25zdCBwc2J0ID0gUHNidC5kZXNlcmlhbGl6ZShCdWZmZXIuZnJvbSh0eC5jb2luU3BlY2lmaWMudHhIZXgsICdoZXgnKSk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yc0Zyb21EZXNjcmlwdG9yVHJhbnNhY3Rpb24odHgpO1xuICBzaWduUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwLCBwcnYsIHsgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycgfSk7XG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbkZyb21Qc2J0KFxuICB0eDogRGVzY3JpcHRvclRyYW5zYWN0aW9uLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPHN0cmluZz4ge1xuICBjb25zdCBwc2J0ID0gUHNidC5kZXNlcmlhbGl6ZShCdWZmZXIuZnJvbSh0eC5jb2luU3BlY2lmaWMudHhIZXgsICdoZXgnKSk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yc0Zyb21EZXNjcmlwdG9yVHJhbnNhY3Rpb24odHgpO1xuICBjb25zdCB7IG91dHB1dHMsIGNoYW5nZU91dHB1dHMsIGZlZSB9ID0gZXhwbGFpblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCwgY29pbk5hbWUpO1xuICByZXR1cm4ge1xuICAgIG91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgICBmZWU6IHtcbiAgICAgIC8qIG5ldHdvcmsgZmVlICovXG4gICAgICBmZWUsXG4gICAgICAvKiBUT0RPICovXG4gICAgICBwYXlHb0ZlZVN0cmluZzogdW5kZWZpbmVkLFxuICAgICAgcGF5R29GZWVBZGRyZXNzOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA6B3C,wBAAgB,WAAW,CACzB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,gBAAgB,CAAC,aAAa,EAC3C,QAAQ,EAAE,YAAY,GACrB,gCAAgC,CAkBlC"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.explainPsbt = explainPsbt;
|
|
4
4
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
5
|
-
|
|
5
|
+
function sumValues(arr) {
|
|
6
|
+
return arr.reduce((sum, e) => sum + e.value, 0n);
|
|
7
|
+
}
|
|
6
8
|
function toRecipient(output, coinName) {
|
|
7
9
|
const address = output.address ?? `scriptPubKey:${Buffer.from(output.script).toString('hex')}`;
|
|
8
10
|
return {
|
|
@@ -28,7 +30,7 @@ function explainPsbt(psbt, descriptors, coinName) {
|
|
|
28
30
|
const { inputs, outputs } = parsedTransaction;
|
|
29
31
|
const externalOutputs = outputs.filter((o) => o.scriptId === undefined);
|
|
30
32
|
const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
|
|
31
|
-
const fee =
|
|
33
|
+
const fee = sumValues(inputs) - sumValues(outputs);
|
|
32
34
|
const inputSignatures = getInputSignatures(psbt);
|
|
33
35
|
return {
|
|
34
36
|
inputSignatures,
|
|
@@ -36,10 +38,10 @@ function explainPsbt(psbt, descriptors, coinName) {
|
|
|
36
38
|
locktime: psbt.lockTime(),
|
|
37
39
|
id: psbt.unsignedTxId(),
|
|
38
40
|
outputs: externalOutputs.map((o) => toRecipient(o, coinName)),
|
|
39
|
-
outputAmount:
|
|
41
|
+
outputAmount: sumValues(externalOutputs).toString(),
|
|
40
42
|
changeOutputs: changeOutputs.map((o) => toRecipient(o, coinName)),
|
|
41
|
-
changeAmount:
|
|
43
|
+
changeAmount: sumValues(changeOutputs).toString(),
|
|
42
44
|
fee: fee.toString(),
|
|
43
45
|
};
|
|
44
46
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSxrQ0FzQkM7QUF0REQsZ0RBQTBEO0FBSzFELFNBQVMsU0FBUyxDQUFDLEdBQXdCO0lBQ3pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUFxQyxFQUFFLFFBQXNCO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksZ0JBQWdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQy9GLE9BQU87UUFDTCxPQUFPO1FBQ1AsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxJQUFVLEVBQUUsVUFBa0I7SUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBVTtJQUNwQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUN6QixJQUFVLEVBQ1YsV0FBMkMsRUFDM0MsUUFBc0I7SUFFdEIsTUFBTSxpQkFBaUIsR0FBRyw0QkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDO0lBQzlDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN0RSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE9BQU87UUFDTCxlQUFlO1FBQ2YsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDdEUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDekIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDdkIsT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDbkQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDakQsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBQc2J0LCBkZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB0eXBlIHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi9maXhlZFNjcmlwdC9leHBsYWluVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuXG5mdW5jdGlvbiBzdW1WYWx1ZXMoYXJyOiB7IHZhbHVlOiBiaWdpbnQgfVtdKTogYmlnaW50IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKHN1bSwgZSkgPT4gc3VtICsgZS52YWx1ZSwgMG4pO1xufVxuXG5mdW5jdGlvbiB0b1JlY2lwaWVudChvdXRwdXQ6IGRlc2NyaXB0b3JXYWxsZXQuUGFyc2VkT3V0cHV0LCBjb2luTmFtZTogVXR4b0NvaW5OYW1lKTogSVRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgY29uc3QgYWRkcmVzcyA9IG91dHB1dC5hZGRyZXNzID8/IGBzY3JpcHRQdWJLZXk6JHtCdWZmZXIuZnJvbShvdXRwdXQuc2NyaXB0KS50b1N0cmluZygnaGV4Jyl9YDtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzLFxuICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidDogUHNidCwgaW5wdXRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKCFwc2J0Lmhhc1BhcnRpYWxTaWduYXR1cmVzKGlucHV0SW5kZXgpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgY29uc3QgcGFydGlhbFNpZ3MgPSBwc2J0LmdldFBhcnRpYWxTaWduYXR1cmVzKGlucHV0SW5kZXgpO1xuICByZXR1cm4gcGFydGlhbFNpZ3MucmVkdWNlKChhZ2csIHApID0+IHtcbiAgICBjb25zdCB2YWxpZCA9IHBzYnQudmFsaWRhdGVTaWduYXR1cmVBdElucHV0KGlucHV0SW5kZXgsIHAucHVia2V5KTtcbiAgICByZXR1cm4gYWdnICsgKHZhbGlkID8gMSA6IDApO1xuICB9LCAwKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQ6IFBzYnQpOiBudW1iZXJbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBwc2J0LmlucHV0Q291bnQoKSB9LCAoXywgaSkgPT4gZ2V0SW5wdXRTaWduYXR1cmVzRm9ySW5wdXRJbmRleChwc2J0LCBpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluUHNidChcbiAgcHNidDogUHNidCxcbiAgZGVzY3JpcHRvcnM6IGRlc2NyaXB0b3JXYWxsZXQuRGVzY3JpcHRvck1hcCxcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZVxuKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3Ige1xuICBjb25zdCBwYXJzZWRUcmFuc2FjdGlvbiA9IGRlc2NyaXB0b3JXYWxsZXQucGFyc2UocHNidCwgZGVzY3JpcHRvcnMsIGNvaW5OYW1lKTtcbiAgY29uc3QgeyBpbnB1dHMsIG91dHB1dHMgfSA9IHBhcnNlZFRyYW5zYWN0aW9uO1xuICBjb25zdCBleHRlcm5hbE91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCA9PT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkICE9PSB1bmRlZmluZWQpO1xuICBjb25zdCBmZWUgPSBzdW1WYWx1ZXMoaW5wdXRzKSAtIHN1bVZhbHVlcyhvdXRwdXRzKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzID0gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQpO1xuICByZXR1cm4ge1xuICAgIGlucHV0U2lnbmF0dXJlcyxcbiAgICBzaWduYXR1cmVzOiBpbnB1dFNpZ25hdHVyZXMucmVkdWNlKChhLCBiKSA9PiBNYXRoLm1pbihhLCBiKSwgSW5maW5pdHkpLFxuICAgIGxvY2t0aW1lOiBwc2J0LmxvY2tUaW1lKCksXG4gICAgaWQ6IHBzYnQudW5zaWduZWRUeElkKCksXG4gICAgb3V0cHV0czogZXh0ZXJuYWxPdXRwdXRzLm1hcCgobykgPT4gdG9SZWNpcGllbnQobywgY29pbk5hbWUpKSxcbiAgICBvdXRwdXRBbW91bnQ6IHN1bVZhbHVlcyhleHRlcm5hbE91dHB1dHMpLnRvU3RyaW5nKCksXG4gICAgY2hhbmdlT3V0cHV0czogY2hhbmdlT3V0cHV0cy5tYXAoKG8pID0+IHRvUmVjaXBpZW50KG8sIGNvaW5OYW1lKSksXG4gICAgY2hhbmdlQW1vdW50OiBzdW1WYWx1ZXMoY2hhbmdlT3V0cHV0cykudG9TdHJpbmcoKSxcbiAgICBmZWU6IGZlZS50b1N0cmluZygpLFxuICB9O1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|