@bitgo/abstract-utxo 11.2.0 → 11.4.0
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 +9 -8
|
@@ -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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0lBLGtEQVNDO0FBRUQsMENBUUM7QUFsS0QsOERBQStDO0FBQy9DLGdEQUE0RDtBQUU1RCx1Q0FBd0U7QUFJeEUsU0FBUyxXQUFXLENBQXNCLElBQWEsRUFBRSxHQUFTO0lBQ2hFLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYSxFQUFFLElBQWM7SUFDL0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ25CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQWE7SUFLL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUFTLEVB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QUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFhO0lBQy9DLE1BQU0sTUFBTSxHQUNWLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDbkIsYUFBYSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFVBQXNCO0lBQ3BELDRFQUE0RTtJQUM1RSx3REFBd0Q7SUFDeEQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsSUFBSSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNidGMgfSBmcm9tICdAYml0Z28vdXR4by1kZXNjcmlwdG9ycyc7XG5pbXBvcnQgeyBCSVAzMiwgYmlwMzIsIERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgRGVzY3JpcHRvckJ1aWxkZXIsIGdldERlc2NyaXB0b3JGcm9tQnVpbGRlciB9IGZyb20gJy4vYnVpbGRlcic7XG5cbnR5cGUgTm9kZVVuYXJ5PEtleSBleHRlbmRzIHN0cmluZz4gPSB7IFtrIGluIEtleV06IHVua25vd24gfTtcblxuZnVuY3Rpb24gaXNVbmFyeU5vZGU8VEtleSBleHRlbmRzIHN0cmluZz4obm9kZTogdW5rbm93biwga2V5OiBUS2V5KTogbm9kZSBpcyBOb2RlVW5hcnk8VEtleT4ge1xuICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8IG5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG5vZGUpO1xuICByZXR1cm4ga2V5cy5sZW5ndGggPT09IDEgJiYga2V5c1swXSA9PT0ga2V5O1xufVxuXG5mdW5jdGlvbiB1bndyYXBOb2RlKG5vZGU6IHVua25vd24sIHBhdGg6IHN0cmluZ1tdKTogdW5rbm93biB7XG4gIGxldCBjdXJyZW50ID0gbm9kZTtcbiAgZm9yIChjb25zdCBrZXkgb2YgcGF0aCkge1xuICAgIGlmICghaXNVbmFyeU5vZGUoY3VycmVudCwga2V5KSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgfVxuICByZXR1cm4gY3VycmVudDtcbn1cblxuZnVuY3Rpb24gcGFyc2VNdWx0aShub2RlOiB1bmtub3duKToge1xuICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAga2V5czogYmlwMzIuQklQMzJJbnRlcmZhY2VbXTtcbiAgcGF0aDogc3RyaW5nO1xufSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBub2RlJyk7XG4gIH1cbiAgY29uc3QgW3RocmVzaG9sZCwgLi4ua2V5Tm9kZXNdID0gbm9kZTtcbiAgaWYgKHR5cGVvZiB0aHJlc2hvbGQgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0aHJlc2hvbGQgbnVtYmVyJyk7XG4gIH1cbiAgY29uc3Qga2V5V2l0aFBhdGggPSBrZXlOb2Rlcy5tYXAoKGtleU5vZGUpID0+IHtcbiAgICBpZiAoIWlzVW5hcnlOb2RlKGtleU5vZGUsICdYUHViJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgWFB1YiBub2RlJyk7XG4gICAgfVxuICAgIGlmICh0eXBlb2Yga2V5Tm9kZS5YUHViICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBYUHViIHN0cmluZycpO1xuICAgIH1cbiAgICBjb25zdCBwYXJ0cyA9IGtleU5vZGUuWFB1Yi5zcGxpdCgnLycpO1xuICAgIHJldHVybiB7IHhwdWI6IHBhcnRzWzBdLCBwYXRoOiBwYXJ0cy5zbGljZSgxKS5qb2luKCcvJykgfTtcbiAgfSk7XG4gIGNvbnN0IHBhdGhzID0ga2V5V2l0aFBhdGgubWFwKChrKSA9PiBrLnBhdGgpO1xuICBwYXRocy5mb3JFYWNoKChwYXRoLCBpKSA9PiB7XG4gICAgaWYgKHBhdGggIT09IHBhdGhzWzBdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGFsbCBwYXRocyB0byBiZSB0aGUgc2FtZTogJHtwYXRofSAhPT0gJHtwYXRoc1swXX1gKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHRocmVzaG9sZCxcbiAgICBrZXlzOiBrZXlXaXRoUGF0aC5tYXAoKGspID0+IEJJUDMyLmZyb21CYXNlNTgoay54cHViKSksXG4gICAgcGF0aDogcGF0aHNbMF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlV3NoTXVsdGkobm9kZTogdW5rbm93bik6IERlc2NyaXB0b3JCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgd3NoTXNNdWx0aSA9IHVud3JhcE5vZGUobm9kZSwgWydXc2gnLCAnTXMnLCAnTXVsdGknXSk7XG4gIGlmICh3c2hNc011bHRpKSB7XG4gICAgY29uc3QgeyB0aHJlc2hvbGQsIGtleXMsIHBhdGggfSA9IHBhcnNlTXVsdGkod3NoTXNNdWx0aSk7XG4gICAgbGV0IG5hbWU6ICdXc2gyT2YyJyB8ICdXc2gyT2YzJztcbiAgICBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAyKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjInO1xuICAgIH0gZWxzZSBpZiAodGhyZXNob2xkID09PSAyICYmIGtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICBuYW1lID0gJ1dzaDJPZjMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgbXVsdGlzaWcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBrZXlzLFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlU2J0Y0RlcG9zaXQoZGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IERlc2NyaXB0b3JCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gc2J0Yy5wYXJzZVNidGNEZXBvc2l0RGVzY3JpcHRvcihkZXNjcmlwdG9yKTtcbiAgaWYgKCFwYXJzZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBGb3Igd2FsbGV0IGRlc2NyaXB0b3JzIHRoZSByZWNsYWltIGxlYWYgaXMgYSBkZXJpdmFibGUgYG11bHRpX2FgIHdpdGhcbiAgLy8gYHhwdWIuLi4vKmAgZW50cmllczsgc3BsaXQgZWFjaCBpbnRvIHhwdWIgKyBwYXRoLiBEZWZpbml0ZSBkZXNjcmlwdG9yc1xuICAvLyBwcm9kdWNlIHJhdyBoZXggc3RyaW5ncyBoZXJlLCB3aGljaCBgQklQMzIuZnJvbUJhc2U1OGAgcmVqZWN0cyDigJQgdGhhdFxuICAvLyBtYXRjaGVzIG91ciBpbnRlbnQsIHNpbmNlIGEgZGVmaW5pdGUgZGVzY3JpcHRvciBpc24ndCBhIHdhbGxldCBkZXNjcmlwdG9yLlxuICBjb25zdCBrZXlXaXRoUGF0aCA9IHBhcnNlZC5yZWNsYWltS2V5U3RyaW5ncy5tYXAoKGspID0+IHtcbiAgICBjb25zdCBbeHB1YiwgLi4ucmVzdF0gPSBrLnNwbGl0KCcvJyk7XG4gICAgcmV0dXJuIHsgeHB1YiwgcGF0aDogcmVzdC5qb2luKCcvJykgfTtcbiAgfSk7XG4gIGNvbnN0IHBhdGhzID0ga2V5V2l0aFBhdGgubWFwKChrKSA9PiBrLnBhdGgpO1xuICBwYXRocy5mb3JFYWNoKChwKSA9PiB7XG4gICAgaWYgKHAgIT09IHBhdGhzWzBdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGFsbCBtdWx0aV9hIHBhdGhzIHRvIGJlIHRoZSBzYW1lOiAke3B9ICE9PSAke3BhdGhzWzBdfWApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU2J0Y0RlcG9zaXQnLFxuICAgIGtleXM6IGtleVdpdGhQYXRoLm1hcCgoaykgPT4gQklQMzIuZnJvbUJhc2U1OChrLnhwdWIpKSxcbiAgICBwYXRoOiBwYXRoc1swXSxcbiAgICBsb2NrVGltZTogcGFyc2VkLmxvY2tUaW1lLFxuICAgIG1heEZlZTogcGFyc2VkLm1heEZlZSxcbiAgICBzdGFja3NSZWNpcGllbnQ6IHBhcnNlZC5zdGFja3NSZWNpcGllbnQsXG4gICAgc2lnbmVyc0FnZ3JlZ2F0ZUtleTogcGFyc2VkLnNpZ25lcnNBZ2dyZWdhdGVLZXksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ2x0dkRyb3AoXG4gIG5vZGU6IHVua25vd24sXG4gIG5hbWU6ICdXc2gyT2YzQ2x0dkRyb3AnIHwgJ1NoV3NoMk9mM0NsdHZEcm9wJyxcbiAgd3JhcHBpbmc6IHN0cmluZ1tdXG4pOiBEZXNjcmlwdG9yQnVpbGRlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHVud3JhcHBlZCA9IHVud3JhcE5vZGUobm9kZSwgd3JhcHBpbmcpO1xuICBpZiAoIXVud3JhcHBlZCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh1bndyYXBwZWQpICYmIHVud3JhcHBlZC5sZW5ndGggPT09IDIpIHtcbiAgICBjb25zdCBbYSwgYl0gPSB1bndyYXBwZWQ7XG4gICAgY29uc3QgZHJvcEFmdGVyQWJzTG9ja3RpbWUgPSB1bndyYXBOb2RlKGEsIFsnRHJvcCcsICdBZnRlcicsICdhYnNMb2NrVGltZSddKTtcbiAgICBpZiAodHlwZW9mIGRyb3BBZnRlckFic0xvY2t0aW1lICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhYnNMb2NrVGltZSBudW1iZXInKTtcbiAgICB9XG4gICAgaWYgKCFpc1VuYXJ5Tm9kZShiLCAnTXVsdGknKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBNdWx0aSBub2RlJyk7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpID0gcGFyc2VNdWx0aShiLk11bHRpKTtcbiAgICBpZiAobXVsdGkudGhyZXNob2xkID09PSAyICYmIG11bHRpLmtleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBsb2NrdGltZTogZHJvcEFmdGVyQWJzTG9ja3RpbWUsXG4gICAgICAgIGtleXM6IG11bHRpLmtleXMsXG4gICAgICAgIHBhdGg6IG11bHRpLnBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXNjcmlwdG9yTm9kZShub2RlOiB1bmtub3duKTogRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdCBwYXJzZWQgPVxuICAgIHBhcnNlV3NoTXVsdGkobm9kZSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdTaFdzaDJPZjNDbHR2RHJvcCcsIFsnU2gnLCAnV3NoJywgJ01zJywgJ0FuZFYnXSkgPz9cbiAgICBwYXJzZUNsdHZEcm9wKG5vZGUsICdXc2gyT2YzQ2x0dkRyb3AnLCBbJ1dzaCcsICdNcycsICdBbmRWJ10pO1xuICBpZiAoIXBhcnNlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHBhcnNlIGRlc2NyaXB0b3Igbm9kZScpO1xuICB9XG4gIHJldHVybiBwYXJzZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IERlc2NyaXB0b3JCdWlsZGVyIHtcbiAgLy8gc0JUQyBwZWctaW4gdXNlcyBhIFRhcHJvb3QgYHRyKC4uLilgIGRlc2NyaXB0b3IgdGhhdCB0aGUgcmF3LW5vZGUgcGFyc2Vyc1xuICAvLyBkb24ndCByZWNvZ25pemU7IG1hdGNoIGl0IGFnYWluc3QgdGhlIGFzdCBmb3JtIGZpcnN0LlxuICBjb25zdCBidWlsZGVyID0gcGFyc2VTYnRjRGVwb3NpdChkZXNjcmlwdG9yKSA/PyBwYXJzZURlc2NyaXB0b3JOb2RlKGRlc2NyaXB0b3Iubm9kZSgpKTtcbiAgaWYgKGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcihidWlsZGVyKS50b1N0cmluZygpICE9PSBkZXNjcmlwdG9yLnRvU3RyaW5nKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBkZXNjcmlwdG9yJyk7XG4gIH1cbiAgcmV0dXJuIGJ1aWxkZXI7XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IWallet, WalletCoinSpecific } from '@bitgo/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,iBAAiB,CAAC;AAE9D,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,iBAAiB,CAAC;AAE9D,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcldhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QkEsd0RBRUM7QUFFRCxnREFFQztBQUVELGdFQU1DO0FBMUNELHlDQUEyQjtBQUszQix1REFBb0Q7QUFDcEQscURBQWtHO0FBUWxHLFNBQVMsOEJBQThCLENBQUMsR0FBWTtJQUNsRCxPQUFPLENBQ0wsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksYUFBYSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLGlDQUFlLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUNoSCxDQUFDO0FBQ0osQ0FBQztBQVVELFNBQWdCLHNCQUFzQixDQUFDLEdBQW1CO0lBQ3hELE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxHQUFZO0lBQzdDLE9BQU8sOEJBQThCLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLDBCQUEwQixDQUN4QyxNQUF5QixFQUN6QixVQUFxQixFQUNyQixNQUFrQztJQUVsQyxPQUFPLElBQUEsd0NBQXVCLEVBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgSVdhbGxldCwgV2FsbGV0Q29pblNwZWNpZmljIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgVXR4b1dhbGxldCwgVXR4b1dhbGxldERhdGEgfSBmcm9tICcuLi93YWxsZXQnO1xuXG5pbXBvcnQgeyBOYW1lZERlc2NyaXB0b3IgfSBmcm9tICcuL05hbWVkRGVzY3JpcHRvcic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSwgS2V5VHJpcGxlLCB0b0Rlc2NyaXB0b3JNYXBWYWxpZGF0ZSB9IGZyb20gJy4vdmFsaWRhdGVQb2xpY3knO1xuXG5pbXBvcnQgdHlwZSB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICcuL2luZGV4JztcblxudHlwZSBEZXNjcmlwdG9yV2FsbGV0Q29pblNwZWNpZmljID0ge1xuICBkZXNjcmlwdG9yczogTmFtZWREZXNjcmlwdG9yW107XG59O1xuXG5mdW5jdGlvbiBpc0Rlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMob2JqOiB1bmtub3duKTogb2JqIGlzIERlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMge1xuICByZXR1cm4gKFxuICAgIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiAnZGVzY3JpcHRvcnMnIGluIG9iaiAmJiB0LmFycmF5KE5hbWVkRGVzY3JpcHRvcikuaXMob2JqLmRlc2NyaXB0b3JzKVxuICApO1xufVxuXG50eXBlIERlc2NyaXB0b3JXYWxsZXREYXRhID0gVXR4b1dhbGxldERhdGEgJiB7XG4gIGNvaW5TcGVjaWZpYzogRGVzY3JpcHRvcldhbGxldENvaW5TcGVjaWZpYztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlc2NyaXB0b3JXYWxsZXQgZXh0ZW5kcyBVdHhvV2FsbGV0IHtcbiAgY29pblNwZWNpZmljKCk6IFdhbGxldENvaW5TcGVjaWZpYyAmIERlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc2NyaXB0b3JXYWxsZXREYXRhKG9iajogVXR4b1dhbGxldERhdGEpOiBvYmogaXMgRGVzY3JpcHRvcldhbGxldERhdGEge1xuICByZXR1cm4gaXNEZXNjcmlwdG9yV2FsbGV0Q29pblNwZWNpZmljKG9iai5jb2luU3BlY2lmaWMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXNjcmlwdG9yV2FsbGV0KG9iajogSVdhbGxldCk6IG9iaiBpcyBJRGVzY3JpcHRvcldhbGxldCB7XG4gIHJldHVybiBpc0Rlc2NyaXB0b3JXYWxsZXRDb2luU3BlY2lmaWMob2JqLmNvaW5TcGVjaWZpYygpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0KFxuICB3YWxsZXQ6IElEZXNjcmlwdG9yV2FsbGV0LFxuICB3YWxsZXRLZXlzOiBLZXlUcmlwbGUsXG4gIHBvbGljeTogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3lcbik6IERlc2NyaXB0b3JNYXAge1xuICByZXR1cm4gdG9EZXNjcmlwdG9yTWFwVmFsaWRhdGUod2FsbGV0LmNvaW5TcGVjaWZpYygpLmRlc2NyaXB0b3JzLCB3YWxsZXRLZXlzLCBwb2xpY3kpO1xufVxuIl19
|
|
@@ -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/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,iBAAiB,CAAC;AAC1D,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,iBAAiB,CAAC;AAC1D,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci92YWxpZGF0ZVBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQkEsd0VBY0M7QUFFRCw4Q0FPQztBQUVELDRDQU9DO0FBRUQsZ0VBRUM7QUFFRCxrRUFRQztBQVFELHdEQVFDO0FBRUQsMERBVUM7QUFFRCwwQ0FpQkM7QUFqSEQsZ0RBQTJEO0FBRTNELHVDQUE0QztBQUM1Qyx1REFBdUg7QUFZMUcsUUFBQSxjQUFjLEdBQStCO0lBQ3hELElBQUksRUFBRSxVQUFVO0lBQ2hCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0NBQ3JCLENBQUM7QUFFRixTQUFnQiw4QkFBOEIsQ0FBQyxJQUFZO0lBQ3pELE9BQU87UUFDTCxJQUFJLEVBQUUscUJBQXFCLEdBQUcsSUFBSSxHQUFHLEdBQUc7UUFDeEMsUUFBUSxDQUFDLEdBQTRCLEVBQUUsVUFBcUI7WUFDMUQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUEseUJBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sQ0FDTCxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUk7b0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNO29CQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDbEYsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQs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RSxDQUFDO1FBQ1osS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxNQUFNO1lBQ1QsT0FBTyxnQkFBZ0IsQ0FBQztnQkFDdEIsMEVBQTBFO2dCQUMxRSw4QkFBOEIsQ0FBQyxTQUFTLENBQUM7Z0JBQ3pDLDhGQUE4RjtnQkFDOUYsOEJBQThCLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pELHFGQUFxRjtnQkFDckYsOEJBQThCLENBQUMsYUFBYSxDQUFDO2dCQUM3QywrQ0FBK0M7Z0JBQy9DLDJCQUEyQixFQUFFO2FBQzlCLENBQUMsQ0FBQztRQUNMO1lBQ0UsT0FBTyxzQkFBYyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnROYW1lLCBUcmlwbGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgYmlwMzIsIGRlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgcGFyc2VEZXNjcmlwdG9yIH0gZnJvbSAnLi9idWlsZGVyJztcbmltcG9ydCB7IGhhc1ZhbGlkU2lnbmF0dXJlLCBOYW1lZERlc2NyaXB0b3IsIE5hbWVkRGVzY3JpcHRvck5hdGl2ZSwgdG9OYW1lZERlc2NyaXB0b3JOYXRpdmUgfSBmcm9tICcuL05hbWVkRGVzY3JpcHRvcic7XG5cbmltcG9ydCB0eXBlIHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgdHlwZSBLZXlUcmlwbGUgPSBUcmlwbGU8YmlwMzIuQklQMzJJbnRlcmZhY2U+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgbmFtZTogc3RyaW5nO1xuXG4gIHZhbGlkYXRlKGFycjogTmFtZWREZXNjcmlwdG9yTmF0aXZlW10sIHdhbGxldEtleXM6IEtleVRyaXBsZSk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBwb2xpY3lBbGxvd0FsbDogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kgPSB7XG4gIG5hbWU6ICdhbGxvd0FsbCcsXG4gIHZhbGlkYXRlOiAoKSA9PiB0cnVlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZShuYW1lOiBzdHJpbmcpOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2Rlc2NyaXB0b3JUZW1wbGF0ZSgnICsgbmFtZSArICcpJyxcbiAgICB2YWxpZGF0ZShhcnI6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdLCB3YWxsZXRLZXlzOiBLZXlUcmlwbGUpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBhcnIuZXZlcnkoKGQpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VEZXNjcmlwdG9yKGQudmFsdWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHBhcnNlZC5uYW1lID09PSBuYW1lICYmXG4gICAgICAgICAgcGFyc2VkLmtleXMubGVuZ3RoID09PSB3YWxsZXRLZXlzLmxlbmd0aCAmJlxuICAgICAgICAgIHBhcnNlZC5rZXlzLmV2ZXJ5KChrLCBpKSA9PiBrLnRvQmFzZTU4KCkgPT09IHdhbGxldEtleXNbaV0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvckV2ZXJ5KHZhbGlkYXRvcnM6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5W10pOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2V2ZXJ5KCcgKyB2YWxpZGF0b3JzLm1hcCgodikgPT4gdi5uYW1lKS5qb2luKCcsJykgKyAnKScsXG4gICAgdmFsaWRhdGUoYXJyOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdmFsaWRhdG9ycy5ldmVyeSgodikgPT4gdi52YWxpZGF0ZShhcnIsIHdhbGxldEtleXMpKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yU29tZSh2YWxpZGF0b3JzOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeVtdKTogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdzb21lKCcgKyB2YWxpZGF0b3JzLm1hcCgodikgPT4gdi5uYW1lKS5qb2luKCcsJykgKyAnKScsXG4gICAgdmFsaWRhdGUoYXJyOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdmFsaWRhdG9ycy5zb21lKCh2KSA9PiB2LnZhbGlkYXRlKGFyciwgd2FsbGV0S2V5cykpO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0b3JPbmVPZlRlbXBsYXRlcyhuYW1lczogc3RyaW5nW10pOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiBnZXRWYWxpZGF0b3JTb21lKG5hbWVzLm1hcChnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvclNpZ25lZEJ5VXNlcktleSgpOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NpZ25lZEJ5VXNlcicsXG4gICAgdmFsaWRhdGUoYXJyOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbiB7XG4gICAgICAvLyB0aGUgZmlyc3Qga2V5IGlzIHRoZSB1c2VyIGtleSwgYnkgY29udmVudGlvblxuICAgICAgcmV0dXJuIGFyci5ldmVyeSgoZCkgPT4gaGFzVmFsaWRTaWduYXR1cmUoZC52YWx1ZSwgd2FsbGV0S2V5c1swXSwgZC5zaWduYXR1cmVzID8/IFtdKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIERlc2NyaXB0b3JQb2xpY3lWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGRzOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSwgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSkge1xuICAgIHN1cGVyKGBEZXNjcmlwdG9ycyAke2RzLm1hcCgoZCkgPT4gZC52YWx1ZS50b1N0cmluZygpKX0gZG9lcyBub3QgbWF0Y2ggcG9saWN5ICR7cG9saWN5Lm5hbWV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydERlc2NyaXB0b3JQb2xpY3koXG4gIGRlc2NyaXB0b3JzOiBOYW1lZERlc2NyaXB0b3JOYXRpdmVbXSxcbiAgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSxcbiAgd2FsbGV0S2V5czogS2V5VHJpcGxlXG4pOiB2b2lkIHtcbiAgaWYgKCFwb2xpY3kudmFsaWRhdGUoZGVzY3JpcHRvcnMsIHdhbGxldEtleXMpKSB7XG4gICAgdGhyb3cgbmV3IERlc2NyaXB0b3JQb2xpY3lWYWxpZGF0aW9uRXJyb3IoZGVzY3JpcHRvcnMsIHBvbGljeSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvRGVzY3JpcHRvck1hcFZhbGlkYXRlKFxuICBkZXNjcmlwdG9yczogTmFtZWREZXNjcmlwdG9yW10sXG4gIHdhbGxldEtleXM6IEtleVRyaXBsZSxcbiAgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeVxuKTogRGVzY3JpcHRvck1hcCB7XG4gIGNvbnN0IG5hbWVkRGVzY3JpcHRvcnNOYXRpdmU6IE5hbWVkRGVzY3JpcHRvck5hdGl2ZVtdID0gZGVzY3JpcHRvcnMubWFwKCh2KSA9PlxuICAgIHRvTmFtZWREZXNjcmlwdG9yTmF0aXZlKHYsICdkZXJpdmFibGUnKVxuICApO1xuICBhc3NlcnREZXNjcmlwdG9yUG9saWN5KG5hbWVkRGVzY3JpcHRvcnNOYXRpdmUsIHBvbGljeSwgd2FsbGV0S2V5cyk7XG4gIHJldHVybiBkZXNjcmlwdG9yV2FsbGV0LnRvRGVzY3JpcHRvck1hcChuYW1lZERlc2NyaXB0b3JzTmF0aXZlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvbGljeUZvckVudihlbnY6IEVudmlyb25tZW50TmFtZSk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgc3dpdGNoIChlbnYpIHtcbiAgICBjYXNlICdhZG1pblByb2QnOlxuICAgIGNhc2UgJ3Byb2QnOlxuICAgICAgcmV0dXJuIGdldFZhbGlkYXRvclNvbWUoW1xuICAgICAgICAvLyBhbGxvdyAyLW9mLTMtaXNoIGRlc2NyaXB0b3IgZ3JvdXBzIHdoZXJlIHRoZSBrZXlzIG1hdGNoIHRoZSB3YWxsZXQga2V5c1xuICAgICAgICBnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjMnKSxcbiAgICAgICAgLy8gYWxsb3cgZGVzY3JpcHRvciBncm91cHMgd2hlcmUgYWxsIGtleXMgbWF0Y2ggdGhlIHdhbGxldCBrZXlzIHBsdXMgT1BfRFJPUCAoY29yZWRhbyBzdGFraW5nKVxuICAgICAgICBnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjNDbHR2RHJvcCcpLFxuICAgICAgICAvLyBhbGxvdyBzQlRDIHBlZy1pbiBkZXBvc2l0IGRlc2NyaXB0b3JzIHdoZXJlIHRoZSByZWNsYWltIGtleXMgbWF0Y2ggdGhlIHdhbGxldCBrZXlzXG4gICAgICAgIGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZSgnU2J0Y0RlcG9zaXQnKSxcbiAgICAgICAgLy8gYWxsb3cgYWxsIGRlc2NyaXB0b3JzIHNpZ25lZCBieSB0aGUgdXNlciBrZXlcbiAgICAgICAgZ2V0VmFsaWRhdG9yU2lnbmVkQnlVc2VyS2V5KCksXG4gICAgICBdKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHBvbGljeUFsbG93QWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -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,iBAAiB,CAAC;AACzB,OAAO,EAYL,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAGzB,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/sdk-core");
|
|
9
9
|
const utxo_ord_1 = require("@bitgo/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGwvYnRjL2luc2NyaXB0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsOENBV3lCO0FBQ3pCLDhDQWF5QjtBQUN6QixnREFBNEQ7QUFHNUQsK0NBQWlEO0FBQ2pELDZDQUFnRDtBQWFoRCxNQUFNLHFDQUFxQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQU0sRUFBRSxNQUFPLENBQUMsQ0FBQztBQUVuRSxNQUFhLGtCQUFrQjtJQUk3QixZQUFZLE1BQWUsRUFBRSxJQUFzQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUF1QixFQUFFLFdBQW1CO1FBQzlELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkcsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFjLEVBQUMsaUJBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxtQkFBUSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUVqRyxNQUFNLE1BQU0sR0FBRyx1QkFBWSxDQUFD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LEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUE4QixDQUFDO1FBQ3pHLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBdFFELGdEQXNRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHtcbiAgQmFzZUNvaW4sXG4gIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb24sXG4gIElJbnNjcmlwdGlvbkJ1aWxkZXIsXG4gIElXYWxsZXQsXG4gIEtleUluZGljZXMsXG4gIFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQsXG4gIFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhLFxuICBTdWJtaXRUcmFuc2FjdGlvblJlc3BvbnNlLFxuICBUcmlwbGUsXG4gIHhwcnZUb1Jhd1Bydixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIGNyZWF0ZVBzYnRGb3JTaW5nbGVJbnNjcmlwdGlvblBhc3NpbmdUcmFuc2FjdGlvbixcbiAgRGVmYXVsdEluc2NyaXB0aW9uQ29uc3RyYWludHMsXG4gIEluc2NyaXB0aW9uT3V0cHV0cyxcbiAgaW5zY3JpcHRpb25zLFxuICBwYXJzZVNhdFBvaW50LFxuICBpc1NhdFBvaW50LFxuICBFcnJvck5vTGF5b3V0LFxuICBmaW5kT3V0cHV0TGF5b3V0Rm9yV2FsbGV0VW5zcGVudHMsXG4gIE1BWF9VTlNQRU5UU19GT1JfT1VUUFVUX0xBWU9VVCxcbiAgU2F0UG9pbnQsXG4gIFdhbGxldFVuc3BlbnQsXG4gIHR5cGUgVGFwTGVhZlNjcmlwdCxcbn0gZnJvbSAnQGJpdGdvL3V0eG8tb3JkJztcbmltcG9ydCB7IEJJUDMyLCBmaXhlZFNjcmlwdFdhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBmZXRjaEtleWNoYWlucyB9IGZyb20gJy4uLy4uL2tleWNoYWlucyc7XG5pbXBvcnQgeyB0b1V0eG9saWJCSVAzMiB9IGZyb20gJy4uLy4uL3dhc21VdGlsJztcblxuLyoqIEtleSBpZGVudGlmaWVyIGZvciBzaWduaW5nICovXG50eXBlIFNpZ25lcktleSA9ICd1c2VyJyB8ICdiYWNrdXAnIHwgJ2JpdGdvJztcblxuLyoqIFVuc3BlbnQgZnJvbSB3YWxsZXQgQVBJICh2YWx1ZSBtYXkgYmUgbnVtYmVyIG9yIGJpZ2ludCkgKi9cbnR5cGUgV2FsbGV0VW5zcGVudExpa2UgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXIgfCBiaWdpbnQ7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5jb25zdCBTVVBQTEVNRU5UQVJZX1VOU1BFTlRTX01JTl9WQUxVRV9TQVRTID0gWzAsIDIwXzAwMCwgMjAwXzAwMF07XG5cbmV4cG9ydCBjbGFzcyBJbnNjcmlwdGlvbkJ1aWxkZXIgaW1wbGVtZW50cyBJSW5zY3JpcHRpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB3YWxsZXQ6IElXYWxsZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29pbjogQWJzdHJhY3RVdHhvQ29pbjtcblxuICBjb25zdHJ1Y3Rvcih3YWxsZXQ6IElXYWxsZXQsIGNvaW46IEFic3RyYWN0VXR4b0NvaW4pIHtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgICB0aGlzLmNvaW4gPSBjb2luO1xuICB9XG5cbiAgYXN5bmMgcHJlcGFyZVJldmVhbChpbnNjcmlwdGlvbkRhdGE6IEJ1ZmZlciwgY29udGVudFR5cGU6IHN0cmluZyk6IFByb21pc2U8UHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGE+IHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IHRoaXMud2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuVVNFUl0gfSk7XG4gICAgYXNzZXJ0KHVzZXIucHViKTtcblxuICAgIGNvbnN0IHVzZXJLZXkgPSB0b1V0eG9saWJCSVAzMihCSVAzMi5mcm9tQmFzZTU4KHVzZXIucHViKSk7XG4gICAgY29uc3QgeyBrZXk6IGRlcml2ZWRLZXkgfSA9IEJhc2VDb2luLmRlcml2ZUtleVdpdGhTZWVkQmlwMzIodXNlcktleSwgaW5zY3JpcHRpb25EYXRhLnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gaW5zY3JpcHRpb25zLmNyZWF0ZUluc2NyaXB0aW9uUmV2ZWFsRGF0YShcbiAgICAgIGRlcml2ZWRLZXkucHVibGljS2V5LFxuICAgICAgY29udGVudFR5cGUsXG4gICAgICBpbnNjcmlwdGlvbkRhdGEsXG4gICAgICB0aGlzLmNvaW4ubmFtZVxuICAgICk7XG5cbiAgICAvLyBDb252ZXJ0IFRhcExlYWZTY3JpcHQgdG8gdXR4b2xpYiBmb3JtYXQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHJlc3M6IHJlc3VsdC5hZGRyZXNzLFxuICAgICAgcmV2ZWFsVHJhbnNhY3Rpb25WU2l6ZTogcmVzdWx0LnJldmVhbFRyYW5zYWN0aW9uVlNpemUsXG4gICAgICB0YXBMZWFmU2NyaXB0OiB7XG4gICAgICAgIGNvbnRyb2xCbG9jazogQnVmZmVyLmZyb20ocmVzdWx0LnRhcExlYWZTY3JpcHQuY29udHJvbEJsb2NrKSxcbiAgICAgICAgc2NyaXB0OiBCdWZmZXIuZnJvbShyZXN1bHQudGFwTGVhZlNjcmlwdC5zY3JpcHQpLFxuICAgICAgICBsZWFmVmVyc2lvbjogcmVzdWx0LnRhcExlYWZTY3JpcHQubGVhZlZlcnNpb24sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVUcmFuc2ZlcldpdGhFeHRyYUlucHV0cyhcbiAgICBzYXRQb2ludDogU2F0UG9pbnQsXG4gICAgZmVlUmF0ZVNhdEtCOiBudW1iZXIsXG4gICAge1xuICAgICAgc2lnbmVyLFxuICAgICAgY29zaWduZXIsXG4gICAgICBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLFxuICAgICAgdHhGb3JtYXQsXG4gICAgfToge1xuICAgICAgc2lnbmVyOiBTaWduZXJLZXk7XG4gICAgICBjb3NpZ25lcjogU2lnbmVyS2V5O1xuICAgICAgaW5zY3JpcHRpb25Db25zdHJhaW50czoge1xuICAgICAgICBtaW5DaGFuZ2VPdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICAgIG1pbkluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICAgICAgICBtYXhJbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgICAgIH07XG4gICAgICB0eEZvcm1hdD86ICdwc2J0JyB8ICdsZWdhY3knO1xuICAgIH0sXG4gICAgd2FsbGV0WHB1YnM6IFRyaXBsZTxzdHJpbmc+LFxuICAgIG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyxcbiAgICBpbnNjcmlwdGlvblVuc3BlbnRzOiBXYWxsZXRVbnNwZW50W10sXG4gICAgc3VwcGxlbWVudGFyeVVuc3BlbnRzTWluVmFsdWU6IG51bWJlclxuICApOiBQcm9taXNlPFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ+IHtcbiAgICBsZXQgc3VwcGxlbWVudGFyeVVuc3BlbnRzOiBXYWxsZXRVbnNwZW50W10gPSBbXTtcbiAgICBpZiAoc3VwcGxlbWVudGFyeVVuc3BlbnRzTWluVmFsdWUgPiAwKSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LnVuc3BlbnRzKHtcbiAgICAgICAgbWluVmFsdWU6IHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlLFxuICAgICAgfSk7XG4gICAgICAvLyBGaWx0ZXIgb3V0IHRoZSBpbnNjcmlwdGlvbiB1bnNwZW50IGZyb20gdGhlIHN1cHBsZW1lbnRhcnkgdW5zcGVudHNcbiAgICAgIHN1cHBsZW1lbnRhcnlVbnNwZW50cyA9IHJlc3BvbnNlLnVuc3BlbnRzXG4gICAgICAgIC5maWx0ZXIoKHVuc3BlbnQ6IHsgaWQ6IHN0cmluZyB9KSA9PiB1bnNwZW50LmlkICE9PSBpbnNjcmlwdGlvblVuc3BlbnRzWzBdLmlkKVxuICAgICAgICAuc2xpY2UoMCwgTUFYX1VOU1BFTlRTX0ZPUl9PVVRQVVRfTEFZT1VUIC0gMSlcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAodW5zcGVudDogV2FsbGV0VW5zcGVudExpa2UpOiBXYWxsZXRVbnNwZW50ID0+ICh7XG4gICAgICAgICAgICBpZDogdW5zcGVudC5pZCxcbiAgICAgICAgICAgIHZhbHVlOiBCaWdJbnQodW5zcGVudC52YWx1ZSksXG4gICAgICAgICAgICBjaGFpbjogdW5zcGVudC5jaGFpbixcbiAgICAgICAgICAgIGluZGV4OiB1bnNwZW50LmluZGV4LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcHNidCA9IGNyZWF0ZVBzYnRGb3JTaW5nbGVJbnNjcmlwdGlvblBhc3NpbmdUcmFuc2FjdGlvbihcbiAgICAgIHRoaXMuY29pbi5uYW1lLFxuICAgICAge1xuICAgICAgICB3YWxsZXRLZXlzOiB3YWxsZXRYcHVicyxcbiAgICAgICAgc2lnbmVyLFxuICAgICAgICBjb3NpZ25lcixcbiAgICAgIH0sXG4gICAgICBpbnNjcmlwdGlvblVuc3BlbnRzLFxuICAgICAgc2F0UG9pbnQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgeyBmZWVSYXRlU2F0S0IsIC4uLmluc2NyaXB0aW9uQ29uc3RyYWludHMgfSxcbiAgICAgIHsgc3VwcGxlbWVudGFyeVVuc3BlbnRzIH1cbiAgICApO1xuICAgIGlmICghcHNidCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGZWUgdG9vIGhpZ2ggZm9yIHRoZSBzZWxlY3RlZCB1bnNwZW50IHdpdGggdGhpcyBmZWUgcmF0ZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbFVuc3BlbnRzID0gWy4uLmluc2NyaXB0aW9uVW5zcGVudHMsIC4uLnN1cHBsZW1lbnRhcnlVbnNwZW50c107XG5cbiAgICAvLyBUT0RPOiBSZW1vdmUgdGhlIGNhbGwgdG8gdGhpcyBmdW5jdGlvbiBiZWNhdXNlIGl0J3MgYWxyZWFkeSBjYWxsZWQgaW5zaWRlIHRoZSBjcmVhdGVQc2J0IGZ1bmN0aW9uIGFib3ZlLlxuICAgIC8vIENyZWF0ZSAmIHVzZSBhIGdldEZlZSBmdW5jdGlvbiBpbnNpZGUgdGhlIGNyZWF0ZWQgUFNCVCBpbnN0ZWFkLCBsYWNrIG9mIHdoaWNoIG5lY2Vzc2l0YXRlcyBhIGR1cGxpY2F0ZSBjYWxsIGhlcmUuXG4gICAgY29uc3Qgb3V0cHV0TGF5b3V0ID0gZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKGFsbFVuc3BlbnRzLCBzYXRQb2ludCwgb3V0cHV0cywge1xuICAgICAgZmVlUmF0ZVNhdEtCLFxuICAgICAgLi4uaW5zY3JpcHRpb25Db25zdHJhaW50cyxcbiAgICB9KTtcbiAgICBpZiAoIW91dHB1dExheW91dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGZWUgdG9vIGhpZ2ggZm9yIHRoZSBzZWxlY3RlZCB1bnNwZW50IHdpdGggdGhpcyBmZWUgcmF0ZScpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgd2FsbGV0SWQ6IHRoaXMud2FsbGV0LmlkKCksXG4gICAgICB0eEhleDogQnVmZmVyLmZyb20ocHNidC5zZXJpYWxpemUoKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgdHhJbmZvOiB7IHVuc3BlbnRzOiBhbGxVbnNwZW50cyB9LFxuICAgICAgZmVlSW5mbzogeyBmZWU6IE51bWJlcihvdXRwdXRMYXlvdXQubGF5b3V0LmZlZU91dHB1dCksIGZlZVN0cmluZzogb3V0cHV0TGF5b3V0LmxheW91dC5mZWVPdXRwdXQudG9TdHJpbmcoKSB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSB0cmFuc2FjdGlvbiB0byBzZW5kIGFuIGluc2NyaXB0aW9uXG4gICAqIEBwYXJhbSBzYXRQb2ludCBTYXRwb2ludCB5b3Ugd2FudCB0byBzZW5kXG4gICAqIEBwYXJhbSByZWNpcGllbnQgQWRkcmVzcyB5b3Ugd2FudCB0byBzZW5kIHRvXG4gICAqIEBwYXJhbSBmZWVSYXRlU2F0S0IgRmVlIHJhdGUgZm9yIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBzaWduZXIgZmlyc3Qgc2lnbmVyIG9mIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gY29zaWduZXIgc2Vjb25kIHNpZ25lciBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGluc2NyaXB0aW9uQ29uc3RyYWludHMubWluQ2hhbmdlT3V0cHV0IChvcHRpb25hbCkgdGhlIG1pbmltdW0gc2l6ZSBvZiB0aGUgY2hhbmdlIG91dHB1dFxuICAgKiBAcGFyYW0gaW5zY3JpcHRpb25Db25zdHJhaW50cy5taW5JbnNjcmlwdGlvbk91dHB1dCAob3B0aW9uYWwpIHRoZSBtaW5pbXVtIG51bWJlciBvZiBzYXRzIG9mIHRoZSBvdXRwdXQgY29udGFpbmluZyB0aGUgaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIGluc2NyaXB0aW9uQ29uc3RyYWludHMubWF4SW5zY3JpcHRpb25PdXRwdXQgKG9wdGlvbmFsKSB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2F0cyBvZiB0aGUgb3V0cHV0IGNvbnRhaW5pbmcgdGhlIGluc2NyaXB0aW9uXG4gICAqIEBwYXJhbSBjaGFuZ2VBZGRyZXNzVHlwZSBBZGRyZXNzIHR5cGUgb2YgdGhlIGNoYW5nZSBhZGRyZXNzXG4gICAqL1xuICBhc3luYyBwcmVwYXJlVHJhbnNmZXIoXG4gICAgc2F0UG9pbnQ6IHN0cmluZyxcbiAgICByZWNpcGllbnQ6IHN0cmluZyxcbiAgICBmZWVSYXRlU2F0S0I6IG51bWJlcixcbiAgICB7XG4gICAgICBzaWduZXIgPSAndXNlcicsXG4gICAgICBjb3NpZ25lciA9ICdiaXRnbycsXG4gICAgICBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzID0gRGVmYXVsdEluc2NyaXB0aW9uQ29uc3RyYWludHMsXG4gICAgICBjaGFuZ2VBZGRyZXNzVHlwZSA9ICdwMndzaCcsXG4gICAgICB0eEZvcm1hdCA9ICdwc2J0JyxcbiAgICB9OiB7XG4gICAgICBzaWduZXI/OiBTaWduZXJLZXk7XG4gICAgICBjb3NpZ25lcj86IFNpZ25lcktleTtcbiAgICAgIGluc2NyaXB0aW9uQ29uc3RyYWludHM/OiB7XG4gICAgICAgIG1pbkNoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgICAgICAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICAgIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICAgICAgfTtcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlPzogJ3Ayc2gnIHwgJ3Ayc2hQMndzaCcgfCAncDJ3c2gnIHwgJ3AydHInIHwgJ3AydHJNdXNpZzInO1xuICAgICAgdHhGb3JtYXQ/OiAncHNidCcgfCAnbGVnYWN5JztcbiAgICB9XG4gICk6IFByb21pc2U8UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdD4ge1xuICAgIGFzc2VydChpc1NhdFBvaW50KHNhdFBvaW50KSk7XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSBhd2FpdCBmZXRjaEtleWNoYWlucyh0aGlzLmNvaW4sIHRoaXMud2FsbGV0KTtcbiAgICBjb25zdCB3YWxsZXRYcHViczogVHJpcGxlPHN0cmluZz4gPSBba2V5Y2hhaW5zLnVzZXIucHViLCBrZXljaGFpbnMuYmFja3VwLnB1Yiwga2V5Y2hhaW5zLmJpdGdvLnB1Yl07XG4gICAgY29uc3QgcGFyc2VkU2F0UG9pbnQgPSBwYXJzZVNhdFBvaW50KHNhdFBvaW50KTtcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IGF3YWl0IHRoaXMud2FsbGV0LmdldFRyYW5zYWN0aW9uKHsgdHhIYXNoOiBwYXJzZWRTYXRQb2ludC50eGlkIH0pO1xuICAgIGNvbnN0IG91dHB1dCA9IHRyYW5zYWN0aW9uLm91dHB1dHNbcGFyc2VkU2F0UG9pbnQudm91dF07XG4gICAgY29uc3QgdW5zcGVudHM6IFdhbGxldFVuc3BlbnRbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IGAke3BhcnNlZFNhdFBvaW50LnR4aWR9OiR7cGFyc2VkU2F0UG9pbnQudm91dH1gLFxuICAgICAgICB2YWx1ZTogQmlnSW50KG91dHB1dC52YWx1ZSksXG4gICAgICAgIGNoYWluOiBvdXRwdXQuY2hhaW4sXG4gICAgICAgIGluZGV4OiBvdXRwdXQuaW5kZXgsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBjaGFuZ2VDaGFpbiA9IGZpeGVkU2NyaXB0V2FsbGV0LkNoYWluQ29kZS52YWx1ZShjaGFuZ2VBZGRyZXNzVHlwZSwgJ2ludGVybmFsJyk7XG5cbiAgICBjb25zdCBjaGFuZ2VBZGRyZXNzID0gYXdhaXQgdGhpcy53YWxsZXQuY3JlYXRlQWRkcmVzcyh7XG4gICAgICBjaGFpbjogY2hhbmdlQ2hhaW4sXG4gICAgfSk7XG4gICAgY29uc3Qgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzID0ge1xuICAgICAgaW5zY3JpcHRpb25SZWNpcGllbnQ6IHJlY2lwaWVudCxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtcbiAgICAgICAgeyBjaGFpbjogY2hhbmdlQWRkcmVzcy5jaGFpbiwgaW5kZXg6IGNoYW5nZUFkZHJlc3MuaW5kZXggfSxcbiAgICAgICAgeyBjaGFpbjogY2hhbmdlQWRkcmVzcy5jaGFpbiwgaW5kZXg6IGNoYW5nZUFkZHJlc3MuaW5kZXggfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGZvciAoY29uc3Qgc3VwcGxlbWVudGFyeVVuc3BlbnRzTWluVmFsdWUgb2YgU1VQUExFTUVOVEFSWV9VTlNQRU5UU19NSU5fVkFMVUVfU0FUUykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJlcGFyZVRyYW5zZmVyV2l0aEV4dHJhSW5wdXRzKFxuICAgICAgICAgIHNhdFBvaW50LFxuICAgICAgICAgIGZlZVJhdGVTYXRLQixcbiAgICAgICAgICB7IHNpZ25lciwgY29zaWduZXIsIGluc2NyaXB0aW9uQ29uc3RyYWludHMsIHR4Rm9ybWF0IH0sXG4gICAgICAgICAgd2FsbGV0WHB1YnMsXG4gICAgICAgICAgb3V0cHV0cyxcbiAgICAgICAgICB1bnNwZW50cyxcbiAgICAgICAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZVxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvck5vTGF5b3V0KSkge1xuICAgICAgICAgIHRocm93IGVycm9yOyAvLyBQcm9wYWdhdGUgZXJyb3IgaWYgaXQncyBub3QgYW4gRXJyb3JOb0xheW91dFxuICAgICAgICB9IC8vIE90aGVyd2lzZSBjb250aW51ZSB0cnlpbmcgd2l0aCBoaWdoZXIgbWluVmFsdWUgZm9yIHN1cHBsZW1lbnRhcnkgdW5zcGVudHNcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSB0b28gaGlnaCBmb3IgdGhlIHNlbGVjdGVkIHVuc3BlbnQgd2l0aCB0aGlzIGZlZSByYXRlJyk7IC8vIEV4aGF1c3RlZCBhbGwgdHJpZXMgdG8gc3VwcGxlbWVudFxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB3YWxsZXRQYXNzcGhyYXNlXG4gICAqIEBwYXJhbSB0YXBMZWFmU2NyaXB0XG4gICAqIEBwYXJhbSBjb21taXRBZGRyZXNzXG4gICAqIEBwYXJhbSB1bnNpZ25lZENvbW1pdFR4XG4gICAqIEBwYXJhbSBjb21taXRUcmFuc2FjdGlvblVuc3BlbnRzXG4gICAqIEBwYXJhbSByZWNpcGllbnRBZGRyZXNzXG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGFcbiAgICovXG4gIGFzeW5jIHNpZ25BbmRTZW5kUmV2ZWFsKFxuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyxcbiAgICB0YXBMZWFmU2NyaXB0OiBUYXBMZWFmU2NyaXB0LFxuICAgIGNvbW1pdEFkZHJlc3M6IHN0cmluZyxcbiAgICB1bnNpZ25lZENvbW1pdFR4OiBCdWZmZXIsXG4gICAgY29tbWl0VHJhbnNhY3Rpb25VbnNwZW50czogV2FsbGV0VW5zcGVudExpa2VbXSxcbiAgICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmcsXG4gICAgaW5zY3JpcHRpb25EYXRhOiBCdWZmZXJcbiAgKTogUHJvbWlzZTxTdWJtaXRUcmFuc2FjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXNlcktleWNoYWluID0gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IHRoaXMud2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuVVNFUl0gfSk7XG4gICAgY29uc3QgeHBydiA9IGF3YWl0IHRoaXMud2FsbGV0LmdldFVzZXJQcnZBc3luYyh7IGtleWNoYWluOiB1c2VyS2V5Y2hhaW4sIHdhbGxldFBhc3NwaHJhc2UgfSk7XG5cbiAgICBjb25zdCBoYWxmU2lnbmVkQ29tbWl0VHJhbnNhY3Rpb24gPSAoYXdhaXQgdGhpcy53YWxsZXQuc2lnblRyYW5zYWN0aW9uKHtcbiAgICAgIHBydjogeHBydixcbiAgICAgIHR4UHJlYnVpbGQ6IHtcbiAgICAgICAgdHhIZXg6IHVuc2lnbmVkQ29tbWl0VHgudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB0eEluZm86IHsgdW5zcGVudHM6IGNvbW1pdFRyYW5zYWN0aW9uVW5zcGVudHMgfSxcbiAgICAgIH0sXG4gICAgfSkpIGFzIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb247XG5cbiAgICBjb25zdCBkZXJpdmVkID0gdGhpcy5jb2luLmRlcml2ZUtleVdpdGhTZWVkKHsga2V5OiB4cHJ2LCBzZWVkOiBpbnNjcmlwdGlvbkRhdGEudG9TdHJpbmcoKSB9KTtcbiAgICBjb25zdCBwcnYgPSB4cHJ2VG9SYXdQcnYoZGVyaXZlZC5rZXkpO1xuXG4gICAgY29uc3QgZnVsbHlTaWduZWRSZXZlYWxUcmFuc2FjdGlvbiA9IGluc2NyaXB0aW9ucy5zaWduUmV2ZWFsVHJhbnNhY3Rpb24oXG4gICAgICBCdWZmZXIuZnJvbShwcnYsICdoZXgnKSxcbiAgICAgIHRhcExlYWZTY3JpcHQsXG4gICAgICBjb21taXRBZGRyZXNzLFxuICAgICAgcmVjaXBpZW50QWRkcmVzcyxcbiAgICAgIEJ1ZmZlci5mcm9tKGhhbGZTaWduZWRDb21taXRUcmFuc2FjdGlvbi50eEhleCwgJ2hleCcpLFxuICAgICAgdGhpcy5jb2luLm5hbWVcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LnN1Ym1pdFRyYW5zYWN0aW9uKHtcbiAgICAgIGhhbGZTaWduZWQ6IHtcbiAgICAgICAgdHhIZXg6IGhhbGZTaWduZWRDb21taXRUcmFuc2FjdGlvbi50eEhleCxcbiAgICAgICAgc2lnbmVkQ2hpbGRQc2J0OiBCdWZmZXIuZnJvbShmdWxseVNpZ25lZFJldmVhbFRyYW5zYWN0aW9uKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYW5kIHNlbmQgYSB0cmFuc2FjdGlvbiB0aGF0IHRyYW5zZmVycyBhbiBpbnNjcmlwdGlvblxuICAgKiBAcGFyYW0gd2FsbGV0UGFzc3BocmFzZSBwYXNzcGhyYXNlIHRvIHVubG9jayB5b3VyIGtleXNcbiAgICogQHBhcmFtIHR4UHJlYnVpbGQgdGhpcyBpcyB0aGUgb3V0cHV0IG9mIGBpbnNjcmlwdGlvbi5wcmVwYXJlVHJhbnNmZXJgXG4gICAqL1xuICBhc3luYyBzaWduQW5kU2VuZFRyYW5zZmVyKFxuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyxcbiAgICB0eFByZWJ1aWxkOiBQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0XG4gICk6IFByb21pc2U8U3VibWl0VHJhbnNhY3Rpb25SZXNwb25zZT4ge1xuICAgIGNvbnN0IHVzZXJLZXljaGFpbiA9IGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldCh7IGlkOiB0aGlzLndhbGxldC5rZXlJZHMoKVtLZXlJbmRpY2VzLlVTRVJdIH0pO1xuICAgIGNvbnN0IHBydiA9IGF3YWl0IHRoaXMud2FsbGV0LmdldFVzZXJQcnZBc3luYyh7IGtleWNoYWluOiB1c2VyS2V5Y2hhaW4sIHdhbGxldFBhc3NwaHJhc2UgfSk7XG5cbiAgICBjb25zdCBoYWxmU2lnbmVkID0gKGF3YWl0IHRoaXMud2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7IHBydiwgdHhQcmVidWlsZCB9KSkgYXMgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbjtcbiAgICByZXR1cm4gdGhpcy53YWxsZXQuc3VibWl0VHJhbnNhY3Rpb24oeyBoYWxmU2lnbmVkIH0pO1xuICB9XG59XG4iXX0=
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGwvYnRjL2luc2NyaXB0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsOENBVXlCO0FBQ3pCLDhDQWF5QjtBQUN6QixnREFBNEQ7QUFHNUQsK0RBQTREO0FBQzVELCtDQUFpRDtBQWFqRCxNQUFNLHFDQUFxQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQU0sRUFBRSxNQUFPLENBQUMsQ0FBQztBQUVuRSxNQUFhLGtCQUFrQjtJQUk3QixZQUFZLE1BQWUsRUFBRSxJQUFzQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUF1QixFQUFFLFdBQW1CO1FBQzlELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkcsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUEscUNBQWlCLEVBQUMsaUJBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXRHLE1BQU0sTUFBTSxHQUFHLHVCQUFZLENBQUMsMkJBQTJCLENBQ3JELFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFdBQVcsRUFDWCxlQUFlLEVBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2YsQ0FBQztRQUVGLHNFQUFzRTtRQUN0RSxPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxzQkFBc0I7WUFDckQsYUFBYSxFQUFFO2dCQUNiLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO2dCQUM1RCxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztnQkFDaEQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVzthQUM5QztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLDhCQUE4QixDQUMxQyxRQUFrQixFQUNsQixZQUFvQixFQUNwQixFQUNFLE1BQU0sRUFDTixRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLFFBQVEsR0FVVCxFQUNELFdBQTJCLEVBQzNCLE9BQTJCLEVBQzNCLG1CQUFvQyxFQUNwQyw2QkFBcUM7UUFFckMsSUFBSSxxQkFBcUIsR0FBb0IsRUFBRSxDQUFDO1FBQ2hELElBQUksNkJBQTZCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDMUMsUUFBUSxFQUFFLDZCQUE2QjthQUN4QyxDQUFDLENBQUM7WUFDSCxxRUFBcUU7WUFDckUscUJBQXFCLEdBQUcsUUFBUSxDQUFDLFFBQVE7aUJBQ3RDLE1BQU0sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUM3RSxLQUFLLENBQUMsQ0FBQyxFQUFFLHlDQUE4QixHQUFHLENBQUMsQ0FBQztpQkFDNUMsR0FBRyxDQUNGLENBQUMsT0FBMEIsRUFBaUIsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQkFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO2FBQ3JCLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUEsMkRBQWdELEVBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUNkO1lBQ0UsVUFBVSxFQUFFLFdBQVc7WUFDdkIsTUFBTTtZQUNOLFFBQVE7U0FDVCxFQUNELG1CQUFtQixFQUNuQixRQUFRLEVBQ1IsT0FBTyxFQUNQLEVBQUUsWUFBWSxFQUFFLEdBQUcsc0JBQXNCLEVBQUUsRUFDM0MsRUFBRSxxQkFBcUIsRUFBRSxDQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXZFLDJHQUEyRztRQUMzRyxvSEFBb0g7UUFDcEgsTUFBTSxZQUFZLEdBQUcsSUFBQSw0Q0FBaUMsRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtZQUNyRixZQUFZO1lBQ1osR0FBRyxzQkFBc0I7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUMxQixLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3BELE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7WUFDakMsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtTQUM3RyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsWUFBb0IsRUFDcEIsRUFDRSxNQUFNLEdBQUcsTUFBTSxFQUNmLFFBQVEsR0FBRyxPQUFPLEVBQ2xCLHNCQUFzQixHQUFHLHdDQUE2QixFQUN0RCxpQkFBaUIsR0FBRyxPQUFPLEVBQzNCLFFBQVEsR0FBRyxNQUFNLEdBV2xCO1FBRUQsSUFBQSxnQkFBTSxFQUFDLElBQUEscUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBQSwwQkFBYyxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEcsTUFBTSxjQUFjLEdBQUcsSUFBQSx3QkFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEYsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQW9CO1lBQ2hDO2dCQUNFLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLElBQUksRUFBRTtnQkFDbkQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzthQUNwQjtTQUNGLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyw2QkFBaUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJGLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDcEQsS0FBSyxFQUFFLFdBQVc7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQXVCO1lBQ2xDLG9CQUFvQixFQUFFLFNBQVM7WUFDL0IsYUFBYSxFQUFFO2dCQUNiLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFELEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUU7YUFDM0Q7U0FDRixDQUFDO1FBRUYsS0FBSyxNQUFNLDZCQUE2QixJQUFJLHFDQUFxQyxFQUFFLENBQUM7WUFDbEYsSUFBSSxDQUFDO2dCQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQzlDLFFBQVEsRUFDUixZQUFZLEVBQ1osRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxFQUN0RCxXQUFXLEVBQ1gsT0FBTyxFQUNQLFFBQVEsRUFDUiw2QkFBNkIsQ0FDOUIsQ0FBQztZQUNKLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSx3QkFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxLQUFLLENBQUMsQ0FBQywrQ0FBK0M7Z0JBQzlELENBQUMsQ0FBQyw0RUFBNEU7WUFDaEYsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7SUFDbkgsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsZ0JBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLGFBQXFCLEVBQ3JCLGdCQUF3QixFQUN4Qix5QkFBOEMsRUFDOUMsZ0JBQXdCLEVBQ3hCLGVBQXVCO1FBRXZCLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0csTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRTdGLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1lBQ3JFLEdBQUcsRUFBRSxJQUFJO1lBQ1QsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUU7YUFDaEQ7U0FDRixDQUFDLENBQThCLENBQUM7UUFFakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0YsTUFBTSxHQUFHLEdBQUcsSUFBQSx1QkFBWSxFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0QyxNQUFNLDRCQUE0QixHQUFHLHVCQUFZLENBQUMscUJBQXFCLENBQ3JFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUN2QixhQUFhLEVBQ2IsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztZQUNuQyxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLDJCQUEyQixDQUFDLEtBQUs7Z0JBQ3hDLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUMzRTtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixnQkFBd0IsRUFDeEIsVUFBcUM7UUFFckMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxxQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFNUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQThCLENBQUM7UUFDekcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUFyUUQsZ0RBcVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQge1xuICBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uLFxuICBJSW5zY3JpcHRpb25CdWlsZGVyLFxuICBJV2FsbGV0LFxuICBLZXlJbmRpY2VzLFxuICBQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0LFxuICBQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YSxcbiAgU3VibWl0VHJhbnNhY3Rpb25SZXNwb25zZSxcbiAgVHJpcGxlLFxuICB4cHJ2VG9SYXdQcnYsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQge1xuICBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24sXG4gIERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzLFxuICBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIGluc2NyaXB0aW9ucyxcbiAgcGFyc2VTYXRQb2ludCxcbiAgaXNTYXRQb2ludCxcbiAgRXJyb3JOb0xheW91dCxcbiAgZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzLFxuICBNQVhfVU5TUEVOVFNfRk9SX09VVFBVVF9MQVlPVVQsXG4gIFNhdFBvaW50LFxuICBXYWxsZXRVbnNwZW50LFxuICB0eXBlIFRhcExlYWZTY3JpcHQsXG59IGZyb20gJ0BiaXRnby91dHhvLW9yZCc7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZGVyaXZlS2V5V2l0aFNlZWQgfSBmcm9tICcuLi8uLi9kZXJpdmVLZXlXaXRoU2VlZCc7XG5pbXBvcnQgeyBmZXRjaEtleWNoYWlucyB9IGZyb20gJy4uLy4uL2tleWNoYWlucyc7XG5cbi8qKiBLZXkgaWRlbnRpZmllciBmb3Igc2lnbmluZyAqL1xudHlwZSBTaWduZXJLZXkgPSAndXNlcicgfCAnYmFja3VwJyB8ICdiaXRnbyc7XG5cbi8qKiBVbnNwZW50IGZyb20gd2FsbGV0IEFQSSAodmFsdWUgbWF5IGJlIG51bWJlciBvciBiaWdpbnQpICovXG50eXBlIFdhbGxldFVuc3BlbnRMaWtlID0ge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyIHwgYmlnaW50O1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuY29uc3QgU1VQUExFTUVOVEFSWV9VTlNQRU5UU19NSU5fVkFMVUVfU0FUUyA9IFswLCAyMF8wMDAsIDIwMF8wMDBdO1xuXG5leHBvcnQgY2xhc3MgSW5zY3JpcHRpb25CdWlsZGVyIGltcGxlbWVudHMgSUluc2NyaXB0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2FsbGV0OiBJV2FsbGV0O1xuICBwcml2YXRlIHJlYWRvbmx5IGNvaW46IEFic3RyYWN0VXR4b0NvaW47XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBJV2FsbGV0LCBjb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gICAgdGhpcy5jb2luID0gY29pbjtcbiAgfVxuXG4gIGFzeW5jIHByZXBhcmVSZXZlYWwoaW5zY3JpcHRpb25EYXRhOiBCdWZmZXIsIGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBQcm9taXNlPFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhPiB7XG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldCh7IGlkOiB0aGlzLndhbGxldC5rZXlJZHMoKVtLZXlJbmRpY2VzLlVTRVJdIH0pO1xuICAgIGFzc2VydCh1c2VyLnB1Yik7XG5cbiAgICBjb25zdCB7IGtleTogZGVyaXZlZEtleSB9ID0gZGVyaXZlS2V5V2l0aFNlZWQoQklQMzIuZnJvbUJhc2U1OCh1c2VyLnB1YiksIGluc2NyaXB0aW9uRGF0YS50b1N0cmluZygpKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGluc2NyaXB0aW9ucy5jcmVhdGVJbnNjcmlwdGlvblJldmVhbERhdGEoXG4gICAgICBkZXJpdmVkS2V5LnB1YmxpY0tleSxcbiAgICAgIGNvbnRlbnRUeXBlLFxuICAgICAgaW5zY3JpcHRpb25EYXRhLFxuICAgICAgdGhpcy5jb2luLm5hbWVcbiAgICApO1xuXG4gICAgLy8gQ29udmVydCBUYXBMZWFmU2NyaXB0IHRvIHV0eG9saWIgZm9ybWF0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiByZXN1bHQuYWRkcmVzcyxcbiAgICAgIHJldmVhbFRyYW5zYWN0aW9uVlNpemU6IHJlc3VsdC5yZXZlYWxUcmFuc2FjdGlvblZTaXplLFxuICAgICAgdGFwTGVhZlNjcmlwdDoge1xuICAgICAgICBjb250cm9sQmxvY2s6IEJ1ZmZlci5mcm9tKHJlc3VsdC50YXBMZWFmU2NyaXB0LmNvbnRyb2xCbG9jayksXG4gICAgICAgIHNjcmlwdDogQnVmZmVyLmZyb20ocmVzdWx0LnRhcExlYWZTY3JpcHQuc2NyaXB0KSxcbiAgICAgICAgbGVhZlZlcnNpb246IHJlc3VsdC50YXBMZWFmU2NyaXB0LmxlYWZWZXJzaW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlVHJhbnNmZXJXaXRoRXh0cmFJbnB1dHMoXG4gICAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICAgIGZlZVJhdGVTYXRLQjogbnVtYmVyLFxuICAgIHtcbiAgICAgIHNpZ25lcixcbiAgICAgIGNvc2lnbmVyLFxuICAgICAgaW5zY3JpcHRpb25Db25zdHJhaW50cyxcbiAgICAgIHR4Rm9ybWF0LFxuICAgIH06IHtcbiAgICAgIHNpZ25lcjogU2lnbmVyS2V5O1xuICAgICAgY29zaWduZXI6IFNpZ25lcktleTtcbiAgICAgIGluc2NyaXB0aW9uQ29uc3RyYWludHM6IHtcbiAgICAgICAgbWluQ2hhbmdlT3V0cHV0PzogYmlnaW50O1xuICAgICAgICBtaW5JbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgICAgICAgbWF4SW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICB9O1xuICAgICAgdHhGb3JtYXQ/OiAncHNidCcgfCAnbGVnYWN5JztcbiAgICB9LFxuICAgIHdhbGxldFhwdWJzOiBUcmlwbGU8c3RyaW5nPixcbiAgICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gICAgaW5zY3JpcHRpb25VbnNwZW50czogV2FsbGV0VW5zcGVudFtdLFxuICAgIHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlOiBudW1iZXJcbiAgKTogUHJvbWlzZTxQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgbGV0IHN1cHBsZW1lbnRhcnlVbnNwZW50czogV2FsbGV0VW5zcGVudFtdID0gW107XG4gICAgaWYgKHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlID4gMCkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC51bnNwZW50cyh7XG4gICAgICAgIG1pblZhbHVlOiBzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZSxcbiAgICAgIH0pO1xuICAgICAgLy8gRmlsdGVyIG91dCB0aGUgaW5zY3JpcHRpb24gdW5zcGVudCBmcm9tIHRoZSBzdXBwbGVtZW50YXJ5IHVuc3BlbnRzXG4gICAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHMgPSByZXNwb25zZS51bnNwZW50c1xuICAgICAgICAuZmlsdGVyKCh1bnNwZW50OiB7IGlkOiBzdHJpbmcgfSkgPT4gdW5zcGVudC5pZCAhPT0gaW5zY3JpcHRpb25VbnNwZW50c1swXS5pZClcbiAgICAgICAgLnNsaWNlKDAsIE1BWF9VTlNQRU5UU19GT1JfT1VUUFVUX0xBWU9VVCAtIDEpXG4gICAgICAgIC5tYXAoXG4gICAgICAgICAgKHVuc3BlbnQ6IFdhbGxldFVuc3BlbnRMaWtlKTogV2FsbGV0VW5zcGVudCA9PiAoe1xuICAgICAgICAgICAgaWQ6IHVuc3BlbnQuaWQsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KHVuc3BlbnQudmFsdWUpLFxuICAgICAgICAgICAgY2hhaW46IHVuc3BlbnQuY2hhaW4sXG4gICAgICAgICAgICBpbmRleDogdW5zcGVudC5pbmRleCxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHBzYnQgPSBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gICAgICB0aGlzLmNvaW4ubmFtZSxcbiAgICAgIHtcbiAgICAgICAgd2FsbGV0S2V5czogd2FsbGV0WHB1YnMsXG4gICAgICAgIHNpZ25lcixcbiAgICAgICAgY29zaWduZXIsXG4gICAgICB9LFxuICAgICAgaW5zY3JpcHRpb25VbnNwZW50cyxcbiAgICAgIHNhdFBvaW50LFxuICAgICAgb3V0cHV0cyxcbiAgICAgIHsgZmVlUmF0ZVNhdEtCLCAuLi5pbnNjcmlwdGlvbkNvbnN0cmFpbnRzIH0sXG4gICAgICB7IHN1cHBsZW1lbnRhcnlVbnNwZW50cyB9XG4gICAgKTtcbiAgICBpZiAoIXBzYnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmVlIHRvbyBoaWdoIGZvciB0aGUgc2VsZWN0ZWQgdW5zcGVudCB3aXRoIHRoaXMgZmVlIHJhdGUnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxVbnNwZW50cyA9IFsuLi5pbnNjcmlwdGlvblVuc3BlbnRzLCAuLi5zdXBwbGVtZW50YXJ5VW5zcGVudHNdO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlIHRoZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpdCdzIGFscmVhZHkgY2FsbGVkIGluc2lkZSB0aGUgY3JlYXRlUHNidCBmdW5jdGlvbiBhYm92ZS5cbiAgICAvLyBDcmVhdGUgJiB1c2UgYSBnZXRGZWUgZnVuY3Rpb24gaW5zaWRlIHRoZSBjcmVhdGVkIFBTQlQgaW5zdGVhZCwgbGFjayBvZiB3aGljaCBuZWNlc3NpdGF0ZXMgYSBkdXBsaWNhdGUgY2FsbCBoZXJlLlxuICAgIGNvbnN0IG91dHB1dExheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhhbGxVbnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIHtcbiAgICAgIGZlZVJhdGVTYXRLQixcbiAgICAgIC4uLmluc2NyaXB0aW9uQ29uc3RyYWludHMsXG4gICAgfSk7XG4gICAgaWYgKCFvdXRwdXRMYXlvdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmVlIHRvbyBoaWdoIGZvciB0aGUgc2VsZWN0ZWQgdW5zcGVudCB3aXRoIHRoaXMgZmVlIHJhdGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHdhbGxldElkOiB0aGlzLndhbGxldC5pZCgpLFxuICAgICAgdHhIZXg6IEJ1ZmZlci5mcm9tKHBzYnQuc2VyaWFsaXplKCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHR4SW5mbzogeyB1bnNwZW50czogYWxsVW5zcGVudHMgfSxcbiAgICAgIGZlZUluZm86IHsgZmVlOiBOdW1iZXIob3V0cHV0TGF5b3V0LmxheW91dC5mZWVPdXRwdXQpLCBmZWVTdHJpbmc6IG91dHB1dExheW91dC5sYXlvdXQuZmVlT3V0cHV0LnRvU3RyaW5nKCkgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgdHJhbnNhY3Rpb24gdG8gc2VuZCBhbiBpbnNjcmlwdGlvblxuICAgKiBAcGFyYW0gc2F0UG9pbnQgU2F0cG9pbnQgeW91IHdhbnQgdG8gc2VuZFxuICAgKiBAcGFyYW0gcmVjaXBpZW50IEFkZHJlc3MgeW91IHdhbnQgdG8gc2VuZCB0b1xuICAgKiBAcGFyYW0gZmVlUmF0ZVNhdEtCIEZlZSByYXRlIGZvciB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gc2lnbmVyIGZpcnN0IHNpZ25lciBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGNvc2lnbmVyIHNlY29uZCBzaWduZXIgb2YgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1pbkNoYW5nZU91dHB1dCAob3B0aW9uYWwpIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNoYW5nZSBvdXRwdXRcbiAgICogQHBhcmFtIGluc2NyaXB0aW9uQ29uc3RyYWludHMubWluSW5zY3JpcHRpb25PdXRwdXQgKG9wdGlvbmFsKSB0aGUgbWluaW11bSBudW1iZXIgb2Ygc2F0cyBvZiB0aGUgb3V0cHV0IGNvbnRhaW5pbmcgdGhlIGluc2NyaXB0aW9uXG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1heEluc2NyaXB0aW9uT3V0cHV0IChvcHRpb25hbCkgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNhdHMgb2YgdGhlIG91dHB1dCBjb250YWluaW5nIHRoZSBpbnNjcmlwdGlvblxuICAgKiBAcGFyYW0gY2hhbmdlQWRkcmVzc1R5cGUgQWRkcmVzcyB0eXBlIG9mIHRoZSBjaGFuZ2UgYWRkcmVzc1xuICAgKi9cbiAgYXN5bmMgcHJlcGFyZVRyYW5zZmVyKFxuICAgIHNhdFBvaW50OiBzdHJpbmcsXG4gICAgcmVjaXBpZW50OiBzdHJpbmcsXG4gICAgZmVlUmF0ZVNhdEtCOiBudW1iZXIsXG4gICAge1xuICAgICAgc2lnbmVyID0gJ3VzZXInLFxuICAgICAgY29zaWduZXIgPSAnYml0Z28nLFxuICAgICAgaW5zY3JpcHRpb25Db25zdHJhaW50cyA9IERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzLFxuICAgICAgY2hhbmdlQWRkcmVzc1R5cGUgPSAncDJ3c2gnLFxuICAgICAgdHhGb3JtYXQgPSAncHNidCcsXG4gICAgfToge1xuICAgICAgc2lnbmVyPzogU2lnbmVyS2V5O1xuICAgICAgY29zaWduZXI/OiBTaWduZXJLZXk7XG4gICAgICBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzPzoge1xuICAgICAgICBtaW5DaGFuZ2VPdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICAgIG1pbkluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICAgICAgICBtYXhJbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgICAgIH07XG4gICAgICBjaGFuZ2VBZGRyZXNzVHlwZT86ICdwMnNoJyB8ICdwMnNoUDJ3c2gnIHwgJ3Ayd3NoJyB8ICdwMnRyJyB8ICdwMnRyTXVzaWcyJztcbiAgICAgIHR4Rm9ybWF0PzogJ3BzYnQnIHwgJ2xlZ2FjeSc7XG4gICAgfVxuICApOiBQcm9taXNlPFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ+IHtcbiAgICBhc3NlcnQoaXNTYXRQb2ludChzYXRQb2ludCkpO1xuXG4gICAgY29uc3Qga2V5Y2hhaW5zID0gYXdhaXQgZmV0Y2hLZXljaGFpbnModGhpcy5jb2luLCB0aGlzLndhbGxldCk7XG4gICAgY29uc3Qgd2FsbGV0WHB1YnM6IFRyaXBsZTxzdHJpbmc+ID0gW2tleWNoYWlucy51c2VyLnB1Yiwga2V5Y2hhaW5zLmJhY2t1cC5wdWIsIGtleWNoYWlucy5iaXRnby5wdWJdO1xuICAgIGNvbnN0IHBhcnNlZFNhdFBvaW50ID0gcGFyc2VTYXRQb2ludChzYXRQb2ludCk7XG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSBhd2FpdCB0aGlzLndhbGxldC5nZXRUcmFuc2FjdGlvbih7IHR4SGFzaDogcGFyc2VkU2F0UG9pbnQudHhpZCB9KTtcbiAgICBjb25zdCBvdXRwdXQgPSB0cmFuc2FjdGlvbi5vdXRwdXRzW3BhcnNlZFNhdFBvaW50LnZvdXRdO1xuICAgIGNvbnN0IHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50W10gPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiBgJHtwYXJzZWRTYXRQb2ludC50eGlkfToke3BhcnNlZFNhdFBvaW50LnZvdXR9YCxcbiAgICAgICAgdmFsdWU6IEJpZ0ludChvdXRwdXQudmFsdWUpLFxuICAgICAgICBjaGFpbjogb3V0cHV0LmNoYWluLFxuICAgICAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgY2hhbmdlQ2hhaW4gPSBmaXhlZFNjcmlwdFdhbGxldC5DaGFpbkNvZGUudmFsdWUoY2hhbmdlQWRkcmVzc1R5cGUsICdpbnRlcm5hbCcpO1xuXG4gICAgY29uc3QgY2hhbmdlQWRkcmVzcyA9IGF3YWl0IHRoaXMud2FsbGV0LmNyZWF0ZUFkZHJlc3Moe1xuICAgICAgY2hhaW46IGNoYW5nZUNoYWluLFxuICAgIH0pO1xuICAgIGNvbnN0IG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyA9IHtcbiAgICAgIGluc2NyaXB0aW9uUmVjaXBpZW50OiByZWNpcGllbnQsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXG4gICAgICAgIHsgY2hhaW46IGNoYW5nZUFkZHJlc3MuY2hhaW4sIGluZGV4OiBjaGFuZ2VBZGRyZXNzLmluZGV4IH0sXG4gICAgICAgIHsgY2hhaW46IGNoYW5nZUFkZHJlc3MuY2hhaW4sIGluZGV4OiBjaGFuZ2VBZGRyZXNzLmluZGV4IH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlIG9mIFNVUFBMRU1FTlRBUllfVU5TUEVOVFNfTUlOX1ZBTFVFX1NBVFMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByZXBhcmVUcmFuc2ZlcldpdGhFeHRyYUlucHV0cyhcbiAgICAgICAgICBzYXRQb2ludCxcbiAgICAgICAgICBmZWVSYXRlU2F0S0IsXG4gICAgICAgICAgeyBzaWduZXIsIGNvc2lnbmVyLCBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLCB0eEZvcm1hdCB9LFxuICAgICAgICAgIHdhbGxldFhwdWJzLFxuICAgICAgICAgIG91dHB1dHMsXG4gICAgICAgICAgdW5zcGVudHMsXG4gICAgICAgICAgc3VwcGxlbWVudGFyeVVuc3BlbnRzTWluVmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3JOb0xheW91dCkpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjsgLy8gUHJvcGFnYXRlIGVycm9yIGlmIGl0J3Mgbm90IGFuIEVycm9yTm9MYXlvdXRcbiAgICAgICAgfSAvLyBPdGhlcndpc2UgY29udGludWUgdHJ5aW5nIHdpdGggaGlnaGVyIG1pblZhbHVlIGZvciBzdXBwbGVtZW50YXJ5IHVuc3BlbnRzXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdGZWUgdG9vIGhpZ2ggZm9yIHRoZSBzZWxlY3RlZCB1bnNwZW50IHdpdGggdGhpcyBmZWUgcmF0ZScpOyAvLyBFeGhhdXN0ZWQgYWxsIHRyaWVzIHRvIHN1cHBsZW1lbnRcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gd2FsbGV0UGFzc3BocmFzZVxuICAgKiBAcGFyYW0gdGFwTGVhZlNjcmlwdFxuICAgKiBAcGFyYW0gY29tbWl0QWRkcmVzc1xuICAgKiBAcGFyYW0gdW5zaWduZWRDb21taXRUeFxuICAgKiBAcGFyYW0gY29tbWl0VHJhbnNhY3Rpb25VbnNwZW50c1xuICAgKiBAcGFyYW0gcmVjaXBpZW50QWRkcmVzc1xuICAgKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gICAqL1xuICBhc3luYyBzaWduQW5kU2VuZFJldmVhbChcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgdGFwTGVhZlNjcmlwdDogVGFwTGVhZlNjcmlwdCxcbiAgICBjb21taXRBZGRyZXNzOiBzdHJpbmcsXG4gICAgdW5zaWduZWRDb21taXRUeDogQnVmZmVyLFxuICAgIGNvbW1pdFRyYW5zYWN0aW9uVW5zcGVudHM6IFdhbGxldFVuc3BlbnRMaWtlW10sXG4gICAgcmVjaXBpZW50QWRkcmVzczogc3RyaW5nLFxuICAgIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyXG4gICk6IFByb21pc2U8U3VibWl0VHJhbnNhY3Rpb25SZXNwb25zZT4ge1xuICAgIGNvbnN0IHVzZXJLZXljaGFpbiA9IGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldCh7IGlkOiB0aGlzLndhbGxldC5rZXlJZHMoKVtLZXlJbmRpY2VzLlVTRVJdIH0pO1xuICAgIGNvbnN0IHhwcnYgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRVc2VyUHJ2QXN5bmMoeyBrZXljaGFpbjogdXNlcktleWNoYWluLCB3YWxsZXRQYXNzcGhyYXNlIH0pO1xuXG4gICAgY29uc3QgaGFsZlNpZ25lZENvbW1pdFRyYW5zYWN0aW9uID0gKGF3YWl0IHRoaXMud2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7XG4gICAgICBwcnY6IHhwcnYsXG4gICAgICB0eFByZWJ1aWxkOiB7XG4gICAgICAgIHR4SGV4OiB1bnNpZ25lZENvbW1pdFR4LnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdHhJbmZvOiB7IHVuc3BlbnRzOiBjb21taXRUcmFuc2FjdGlvblVuc3BlbnRzIH0sXG4gICAgICB9LFxuICAgIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuXG4gICAgY29uc3QgZGVyaXZlZCA9IHRoaXMuY29pbi5kZXJpdmVLZXlXaXRoU2VlZCh7IGtleTogeHBydiwgc2VlZDogaW5zY3JpcHRpb25EYXRhLnRvU3RyaW5nKCkgfSk7XG4gICAgY29uc3QgcHJ2ID0geHBydlRvUmF3UHJ2KGRlcml2ZWQua2V5KTtcblxuICAgIGNvbnN0IGZ1bGx5U2lnbmVkUmV2ZWFsVHJhbnNhY3Rpb24gPSBpbnNjcmlwdGlvbnMuc2lnblJldmVhbFRyYW5zYWN0aW9uKFxuICAgICAgQnVmZmVyLmZyb20ocHJ2LCAnaGV4JyksXG4gICAgICB0YXBMZWFmU2NyaXB0LFxuICAgICAgY29tbWl0QWRkcmVzcyxcbiAgICAgIHJlY2lwaWVudEFkZHJlc3MsXG4gICAgICBCdWZmZXIuZnJvbShoYWxmU2lnbmVkQ29tbWl0VHJhbnNhY3Rpb24udHhIZXgsICdoZXgnKSxcbiAgICAgIHRoaXMuY29pbi5uYW1lXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLndhbGxldC5zdWJtaXRUcmFuc2FjdGlvbih7XG4gICAgICBoYWxmU2lnbmVkOiB7XG4gICAgICAgIHR4SGV4OiBoYWxmU2lnbmVkQ29tbWl0VHJhbnNhY3Rpb24udHhIZXgsXG4gICAgICAgIHNpZ25lZENoaWxkUHNidDogQnVmZmVyLmZyb20oZnVsbHlTaWduZWRSZXZlYWxUcmFuc2FjdGlvbikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGFuZCBzZW5kIGEgdHJhbnNhY3Rpb24gdGhhdCB0cmFuc2ZlcnMgYW4gaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIHdhbGxldFBhc3NwaHJhc2UgcGFzc3BocmFzZSB0byB1bmxvY2sgeW91ciBrZXlzXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIHRoaXMgaXMgdGhlIG91dHB1dCBvZiBgaW5zY3JpcHRpb24ucHJlcGFyZVRyYW5zZmVyYFxuICAgKi9cbiAgYXN5bmMgc2lnbkFuZFNlbmRUcmFuc2ZlcihcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgdHhQcmVidWlsZDogUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFxuICApOiBQcm9taXNlPFN1Ym1pdFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1c2VyS2V5Y2hhaW4gPSBhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogdGhpcy53YWxsZXQua2V5SWRzKClbS2V5SW5kaWNlcy5VU0VSXSB9KTtcbiAgICBjb25zdCBwcnYgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRVc2VyUHJ2QXN5bmMoeyBrZXljaGFpbjogdXNlcktleWNoYWluLCB3YWxsZXRQYXNzcGhyYXNlIH0pO1xuXG4gICAgY29uc3QgaGFsZlNpZ25lZCA9IChhd2FpdCB0aGlzLndhbGxldC5zaWduVHJhbnNhY3Rpb24oeyBwcnYsIHR4UHJlYnVpbGQgfSkpIGFzIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LnN1Ym1pdFRyYW5zYWN0aW9uKHsgaGFsZlNpZ25lZCB9KTtcbiAgfVxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSxrQ0FzQkM7QUF0REQsZ0RBQTBEO0FBSzFELFNBQVMsU0FBUyxDQUFDLEdBQXdCO0lBQ3pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUFxQyxFQUFFLFFBQXNCO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksZ0JBQWdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQy9GLE9BQU87UUFDTCxPQUFPO1FBQ1AsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxJQUFVLEVBQUUsVUFBa0I7SUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBVTtJQUNwQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUN6QixJQUFVLEVBQ1YsV0FBMkMsRUFDM0MsUUFBc0I7SUFFdEIsTUFBTSxpQkFBaUIsR0FBRyw0QkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDO0lBQzlDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN0RSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE9BQU87UUFDTCxlQUFlO1FBQ2YsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDdEUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDekIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDdkIsT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDbkQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDakQsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgUHNidCwgZGVzY3JpcHRvcldhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25EZXNjcmlwdG9yIH0gZnJvbSAnLi4vZml4ZWRTY3JpcHQvZXhwbGFpblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcblxuZnVuY3Rpb24gc3VtVmFsdWVzKGFycjogeyB2YWx1ZTogYmlnaW50IH1bXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUudmFsdWUsIDBuKTtcbn1cblxuZnVuY3Rpb24gdG9SZWNpcGllbnQob3V0cHV0OiBkZXNjcmlwdG9yV2FsbGV0LlBhcnNlZE91dHB1dCwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IElUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gIGNvbnN0IGFkZHJlc3MgPSBvdXRwdXQuYWRkcmVzcyA/PyBgc2NyaXB0UHViS2V5OiR7QnVmZmVyLmZyb20ob3V0cHV0LnNjcmlwdCkudG9TdHJpbmcoJ2hleCcpfWA7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzcyxcbiAgICBhbW91bnQ6IG91dHB1dC52YWx1ZS50b1N0cmluZygpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRJbnB1dFNpZ25hdHVyZXNGb3JJbnB1dEluZGV4KHBzYnQ6IFBzYnQsIGlucHV0SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmICghcHNidC5oYXNQYXJ0aWFsU2lnbmF0dXJlcyhpbnB1dEluZGV4KSkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIGNvbnN0IHBhcnRpYWxTaWdzID0gcHNidC5nZXRQYXJ0aWFsU2lnbmF0dXJlcyhpbnB1dEluZGV4KTtcbiAgcmV0dXJuIHBhcnRpYWxTaWdzLnJlZHVjZSgoYWdnLCBwKSA9PiB7XG4gICAgY29uc3QgdmFsaWQgPSBwc2J0LnZhbGlkYXRlU2lnbmF0dXJlQXRJbnB1dChpbnB1dEluZGV4LCBwLnB1YmtleSk7XG4gICAgcmV0dXJuIGFnZyArICh2YWxpZCA/IDEgOiAwKTtcbiAgfSwgMCk7XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlcyhwc2J0OiBQc2J0KTogbnVtYmVyW10ge1xuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogcHNidC5pbnB1dENvdW50KCkgfSwgKF8sIGkpID0+IGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidCwgaSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblBzYnQoXG4gIHBzYnQ6IFBzYnQsXG4gIGRlc2NyaXB0b3JzOiBkZXNjcmlwdG9yV2FsbGV0LkRlc2NyaXB0b3JNYXAsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25EZXNjcmlwdG9yIHtcbiAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb24gPSBkZXNjcmlwdG9yV2FsbGV0LnBhcnNlKHBzYnQsIGRlc2NyaXB0b3JzLCBjb2luTmFtZSk7XG4gIGNvbnN0IHsgaW5wdXRzLCBvdXRwdXRzIH0gPSBwYXJzZWRUcmFuc2FjdGlvbjtcbiAgY29uc3QgZXh0ZXJuYWxPdXRwdXRzID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgZmVlID0gc3VtVmFsdWVzKGlucHV0cykgLSBzdW1WYWx1ZXMob3V0cHV0cyk7XG4gIGNvbnN0IGlucHV0U2lnbmF0dXJlcyA9IGdldElucHV0U2lnbmF0dXJlcyhwc2J0KTtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFNpZ25hdHVyZXMsXG4gICAgc2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzLnJlZHVjZSgoYSwgYikgPT4gTWF0aC5taW4oYSwgYiksIEluZmluaXR5KSxcbiAgICBsb2NrdGltZTogcHNidC5sb2NrVGltZSgpLFxuICAgIGlkOiBwc2J0LnVuc2lnbmVkVHhJZCgpLFxuICAgIG91dHB1dHM6IGV4dGVybmFsT3V0cHV0cy5tYXAoKG8pID0+IHRvUmVjaXBpZW50KG8sIGNvaW5OYW1lKSksXG4gICAgb3V0cHV0QW1vdW50OiBzdW1WYWx1ZXMoZXh0ZXJuYWxPdXRwdXRzKS50b1N0cmluZygpLFxuICAgIGNoYW5nZU91dHB1dHM6IGNoYW5nZU91dHB1dHMubWFwKChvKSA9PiB0b1JlY2lwaWVudChvLCBjb2luTmFtZSkpLFxuICAgIGNoYW5nZUFtb3VudDogc3VtVmFsdWVzKGNoYW5nZU91dHB1dHMpLnRvU3RyaW5nKCksXG4gICAgZmVlOiBmZWUudG9TdHJpbmcoKSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -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"}
|