@bitgo/abstract-utxo 12.7.0 → 13.0.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.d.ts.map +1 -1
- package/dist/cjs/src/abstractUtxoCoin.js +3 -3
- package/dist/cjs/src/impl/zec/address.d.ts +6 -0
- package/dist/cjs/src/impl/zec/address.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/address.js +38 -1
- package/dist/cjs/src/impl/zec/recipients.d.ts +2 -1
- package/dist/cjs/src/impl/zec/recipients.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/recipients.js +7 -3
- package/dist/cjs/src/impl/zec/types.d.ts +5 -0
- package/dist/cjs/src/impl/zec/types.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/types.js +1 -1
- package/dist/cjs/src/impl/zec/zec.d.ts +21 -2
- package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/zec.js +57 -1
- package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/explainTransaction.js +3 -2
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +2 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +4 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +9 -3
- package/dist/cjs/src/transaction/recipient.d.ts +24 -1
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
- package/dist/cjs/src/transaction/recipient.js +32 -4
- package/dist/cjs/test/unit/bip322.js +14 -4
- package/dist/cjs/test/unit/customChangeWallet.js +3 -1
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.js +69 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.js +329 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.js +23 -1
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.js +7 -5
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +9 -1
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/esm/abstractUtxoCoin.js +3 -3
- package/dist/esm/impl/zec/address.d.ts +6 -0
- package/dist/esm/impl/zec/address.d.ts.map +1 -1
- package/dist/esm/impl/zec/address.js +38 -1
- package/dist/esm/impl/zec/recipients.d.ts +2 -1
- package/dist/esm/impl/zec/recipients.d.ts.map +1 -1
- package/dist/esm/impl/zec/recipients.js +7 -3
- package/dist/esm/impl/zec/types.d.ts +5 -0
- package/dist/esm/impl/zec/types.d.ts.map +1 -1
- package/dist/esm/impl/zec/types.js +1 -1
- package/dist/esm/impl/zec/zec.d.ts +21 -2
- package/dist/esm/impl/zec/zec.d.ts.map +1 -1
- package/dist/esm/impl/zec/zec.js +57 -1
- package/dist/esm/transaction/explainTransaction.d.ts +2 -1
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/explainTransaction.js +3 -2
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +2 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +4 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.js +9 -3
- package/dist/esm/transaction/recipient.d.ts +24 -1
- package/dist/esm/transaction/recipient.d.ts.map +1 -1
- package/dist/esm/transaction/recipient.js +32 -4
- package/package.json +6 -6
|
@@ -44,10 +44,12 @@ const utxo_lib_1 = require("@bitgo/utxo-lib");
|
|
|
44
44
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
45
45
|
const sdk_test_1 = require("@bitgo/sdk-test");
|
|
46
46
|
const fixedScript_1 = require("../../src/transaction/fixedScript");
|
|
47
|
+
const recipient_1 = require("../../src/transaction/recipient");
|
|
47
48
|
const verifyKey_1 = require("../../src/verifyKey");
|
|
48
49
|
const util_1 = require("./util");
|
|
49
50
|
function explainPsbt(psbt, walletKeys, customChangeWalletKeys) {
|
|
50
51
|
return (0, fixedScript_1.explainPsbtWasm)(psbt, wasm_utxo_1.fixedScriptWallet.RootWalletKeys.from(walletKeys), {
|
|
52
|
+
addressCodec: new recipient_1.AddressCodec('btc'),
|
|
51
53
|
replayProtection: { publicKeys: [] },
|
|
52
54
|
customChangeWalletXpubs: customChangeWalletKeys
|
|
53
55
|
? wasm_utxo_1.fixedScriptWallet.RootWalletKeys.from(customChangeWalletKeys)
|
|
@@ -201,4 +203,4 @@ describe('Custom Change Wallets', function () {
|
|
|
201
203
|
});
|
|
202
204
|
});
|
|
203
205
|
});
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tQ2hhbmdlV2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2N1c3RvbUNoYW5nZVdhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUF3QztBQUV4Qyw2QkFBOEI7QUFDOUIsZ0RBQXFFO0FBQ3JFLHlEQUEyQztBQUMzQyw4Q0FBMkM7QUFDM0MsOENBQWlEO0FBQ2pELDhDQUEwQztBQUUxQyxtRUFBb0U7QUFDcEUsbURBQXlEO0FBRXpELGlDQUFtRDtBQUVuRCxTQUFTLFdBQVcsQ0FDbEIsSUFBaUMsRUFDakMsVUFBd0MsRUFDeEMsc0JBQWdFO0lBRWhFLE9BQU8sSUFBQSw2QkFBZSxFQUFDLElBQUksRUFBRSw2QkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzlFLGdCQUFnQixFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtRQUNwQyx1QkFBdUIsRUFBRSxzQkFBc0I7WUFDN0MsQ0FBQyxDQUFDLDZCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDL0QsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsUUFBUSxDQUFDLHVCQUF1QixFQUFFO0lBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUEsa0JBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUN6QyxNQUFNLEtBQUssR0FBRyxpQkFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzdELE1BQU0sY0FBYyxHQUFHLG1CQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN2RCxNQUFNLHNCQUFzQixH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Q2hCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNyQixZQUFZLEVBQUUsRUFBRSxvQkFBb0IsRUFBRTtnQkFDdEMseUJBQXlCLEVBQUUsYUFBYTthQUN6QyxDQUFDLENBQUM7WUFFSCxZQUFZLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3pDLHNCQUFzQixFQUFFLENBQUM7WUFDekIsWUFBWSxDQUFDLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFFekQsTUFBTSxnQkFBTSxDQUFDLE9BQU8sQ0FDbEIsR0FBRyxFQUFFLENBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUNwQixRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7Z0JBQ3hFLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxNQUFtRDthQUM1RCxDQUFDLEVBQ0osaURBQWlELENBQ2xELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0L3N0cmljdCc7XG5cbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0IHsgZml4ZWRTY3JpcHRXYWxsZXQsIEJJUDMyLCBtZXNzYWdlIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyB0ZXN0dXRpbCB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBjb21tb24sIFdhbGxldCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcblxuaW1wb3J0IHsgZXhwbGFpblBzYnRXYXNtIH0gZnJvbSAnLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0JztcbmltcG9ydCB7IHZlcmlmeUtleVNpZ25hdHVyZSB9IGZyb20gJy4uLy4uL3NyYy92ZXJpZnlLZXknO1xuXG5pbXBvcnQgeyBkZWZhdWx0Qml0R28sIGdldFV0eG9Db2luIH0gZnJvbSAnLi91dGlsJztcblxuZnVuY3Rpb24gZXhwbGFpblBzYnQoXG4gIHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgd2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgY3VzdG9tQ2hhbmdlV2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyB8IHVuZGVmaW5lZFxuKSB7XG4gIHJldHVybiBleHBsYWluUHNidFdhc20ocHNidCwgZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMuZnJvbSh3YWxsZXRLZXlzKSwge1xuICAgIHJlcGxheVByb3RlY3Rpb246IHsgcHVibGljS2V5czogW10gfSxcbiAgICBjdXN0b21DaGFuZ2VXYWxsZXRYcHViczogY3VzdG9tQ2hhbmdlV2FsbGV0S2V5c1xuICAgICAgPyBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tKGN1c3RvbUNoYW5nZVdhbGxldEtleXMpXG4gICAgICA6IHVuZGVmaW5lZCxcbiAgfSk7XG59XG5cbmRlc2NyaWJlKCdDdXN0b20gQ2hhbmdlIFdhbGxldHMnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IG5ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW47XG4gIGNvbnN0IGJnVXJsID0gY29tbW9uLkVudmlyb25tZW50c1tkZWZhdWx0Qml0R28uZ2V0RW52KCldLnVyaTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSB0ZXN0dXRpbC5nZXREZWZhdWx0V2FsbGV0S2V5cygpO1xuICBjb25zdCBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzID0gdGVzdHV0aWwuZ2V0V2FsbGV0S2V5c0ZvclNlZWQoJ2N1c3RvbSBjaGFuZ2UnKTtcbiAgY29uc3QgdXNlclByaXZhdGVLZXkgPSBCSVAzMi5mcm9tQmFzZTU4KHJvb3RXYWxsZXRLZXlzLnRyaXBsZVswXS50b0Jhc2U1OCgpKS5wcml2YXRlS2V5ITtcblxuICBjb25zdCBtYWluS2V5SWRzID0gcm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoaykgPT4gZ2V0U2VlZChrLm5ldXRlcmVkKCkudG9CYXNlNTgoKSkudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgY3VzdG9tQ2hhbmdlS2V5SWRzID0gY3VzdG9tQ2hhbmdlV2FsbGV0S2V5cy50cmlwbGUubWFwKChrKSA9PiBnZXRTZWVkKGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKS50b1N0cmluZygnaGV4JykpO1xuICBjb25zdCBjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIChbJ3VzZXInLCAnYmFja3VwJywgJ2JpdGdvJ10gYXMgY29uc3QpLm1hcCgobmFtZSwgaSkgPT4gW1xuICAgICAgbmFtZSxcbiAgICAgIEJ1ZmZlci5mcm9tKG1lc3NhZ2Uuc2lnbk1lc3NhZ2UoY3VzdG9tQ2hhbmdlV2FsbGV0S2V5cy50cmlwbGVbaV0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpLCB1c2VyUHJpdmF0ZUtleSkpLnRvU3RyaW5nKFxuICAgICAgICAnaGV4J1xuICAgICAgKSxcbiAgICBdKVxuICApIGFzIFJlY29yZDwndXNlcicgfCAnYmFja3VwJyB8ICdiaXRnbycsIHN0cmluZz47XG5cbiAgY29uc3QgaW5wdXRzOiB0ZXN0dXRpbC5JbnB1dFtdID0gW3sgc2NyaXB0VHlwZTogJ3Ayc2gnLCB2YWx1ZTogQmlnSW50KDEwMDAwKSB9XTtcbiAgY29uc3Qgb3V0cHV0czogdGVzdHV0aWwuT3V0cHV0W10gPSBbXG4gICAgLy8gcmVndWxhciBjaGFuZ2UgKHVzZXMgcm9vdFdhbGxldEtleXMgdmlhIGRlZmF1bHQpXG4gICAgeyBzY3JpcHRUeXBlOiAncDJzaCcsIHZhbHVlOiBCaWdJbnQoMzAwMCkgfSxcbiAgICAvLyBjdXN0b20gY2hhbmdlIChiaXAzMkRlcml2YXRpb24gZnJvbSBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzLCBub3QgYWRkZWQgYXMgZ2xvYmFsIHhwdWJzKVxuICAgIHsgc2NyaXB0VHlwZTogJ3Ayc2gnLCB2YWx1ZTogQmlnSW50KDMwMDApLCB3YWxsZXRLZXlzOiBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzIH0sXG4gICAgLy8gZXh0ZXJuYWwgKG5vIGRlcml2YXRpb24gaW5mbylcbiAgICB7IHNjcmlwdFR5cGU6ICdwMnNoJywgdmFsdWU6IEJpZ0ludCgzMDAwKSwgd2FsbGV0S2V5czogbnVsbCB9LFxuICBdO1xuXG4gIGNvbnN0IHV0eG9saWJQc2J0ID0gdGVzdHV0aWwuY29uc3RydWN0UHNidChpbnB1dHMsIG91dHB1dHMsIG5ldHdvcmssIHJvb3RXYWxsZXRLZXlzLCAndW5zaWduZWQnLCB7XG4gICAgYWRkR2xvYmFsWFB1YnM6IHRydWUsXG4gIH0pO1xuICBjb25zdCBwc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmZyb21CeXRlcyh1dHhvbGliUHNidC50b0J1ZmZlcigpLCAnYnRjJyk7XG5cbiAgY29uc3QgZXh0ZXJuYWxBZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQodXR4b2xpYlBzYnQudHhPdXRwdXRzWzJdLnNjcmlwdCwgbmV0d29yayk7XG4gIGNvbnN0IGN1c3RvbUNoYW5nZVdhbGxldElkID0gJ2N1c3RvbS1jaGFuZ2Utd2FsbGV0LWlkJztcbiAgY29uc3QgbWFpbldhbGxldElkID0gJ21haW4td2FsbGV0LWlkJztcblxuICBmdW5jdGlvbiBub2NrS2V5RmV0Y2goa2V5SWRzOiBzdHJpbmdbXSwga2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyk6IG5vY2suU2NvcGVbXSB7XG4gICAgcmV0dXJuIGtleUlkcy5tYXAoKGlkLCBpKSA9PlxuICAgICAgbm9jayhiZ1VybCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9rZXkvJHtpZH1gKS5yZXBseSgyMDAsIHsgcHViOiBrZXlzLnRyaXBsZVtpXS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkgfSlcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gbm9ja0N1c3RvbUNoYW5nZVdhbGxldCgpOiBub2NrLlNjb3BlIHtcbiAgICByZXR1cm4gbm9jayhiZ1VybCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtjdXN0b21DaGFuZ2VXYWxsZXRJZH1gKS5yZXBseSgyMDAsIHtcbiAgICAgIGlkOiBjdXN0b21DaGFuZ2VXYWxsZXRJZCxcbiAgICAgIGtleXM6IGN1c3RvbUNoYW5nZUtleUlkcyxcbiAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFmdGVyRWFjaCgoKSA9PiBub2NrLmNsZWFuQWxsKCkpO1xuXG4gIGl0KCdjbGFzc2lmaWVzIGN1c3RvbSBjaGFuZ2Ugb3V0cHV0IHdoZW4gY3VzdG9tQ2hhbmdlUHVicyBpcyBwcm92aWRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBleHBsYW5hdGlvbiA9IGV4cGxhaW5Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzLCBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzKTtcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLmNoYW5nZU91dHB1dHNbMF0uYW1vdW50LCAnMzAwMCcpO1xuXG4gICAgYXNzZXJ0Lm9rKGV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHMpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5jdXN0b21DaGFuZ2VPdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHNbMF0uYW1vdW50LCAnMzAwMCcpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5jdXN0b21DaGFuZ2VBbW91bnQsICczMDAwJyk7XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXhwbGFuYXRpb24ub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5vdXRwdXRzWzBdLmFtb3VudCwgJzMwMDAnKTtcbiAgfSk7XG5cbiAgaXQoJ2NsYXNzaWZpZXMgY3VzdG9tIGNoYW5nZSBvdXRwdXQgYXMgZXh0ZXJuYWwgd2l0aG91dCBjdXN0b21DaGFuZ2VQdWJzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnQocHNidCwgcm9vdFdhbGxldEtleXMsIHVuZGVmaW5lZCk7XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXhwbGFuYXRpb24uY2hhbmdlT3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzWzBdLmFtb3VudCwgJzMwMDAnKTtcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5jdXN0b21DaGFuZ2VPdXRwdXRzPy5sZW5ndGggPz8gMCwgMCk7XG5cbiAgICAvLyBjdXN0b20gY2hhbmdlICsgZXh0ZXJuYWwgYm90aCB0cmVhdGVkIGFzIGV4dGVybmFsIG91dHB1dHNcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXhwbGFuYXRpb24ub3V0cHV0cy5sZW5ndGgsIDIpO1xuICB9KTtcblxuICBpdCgndmVyaWZpZXMgdmFsaWQgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB1c2VyUHViID0gcm9vdFdhbGxldEtleXMudHJpcGxlWzBdLm5ldXRlcmVkKCkudG9CYXNlNTgoKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGN1c3RvbUNoYW5nZVdhbGxldEtleXMudHJpcGxlKSB7XG4gICAgICBjb25zdCBwdWIgPSBrZXkubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlID0gQnVmZmVyLmZyb20obWVzc2FnZS5zaWduTWVzc2FnZShwdWIsIHVzZXJQcml2YXRlS2V5KSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgYXNzZXJ0Lm9rKFxuICAgICAgICB2ZXJpZnlLZXlTaWduYXR1cmUoeyB1c2VyS2V5Y2hhaW46IHsgcHViOiB1c2VyUHViIH0sIGtleWNoYWluVG9WZXJpZnk6IHsgcHViIH0sIGtleVNpZ25hdHVyZTogc2lnbmF0dXJlIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3JlamVjdHMgaW52YWxpZCBjdXN0b20gY2hhbmdlIGtleSBzaWduYXR1cmVzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdyb25nS2V5ID0gQklQMzIuZnJvbUJhc2U1OCh0ZXN0dXRpbC5nZXRXYWxsZXRLZXlzRm9yU2VlZCgnd3JvbmcnKS50cmlwbGVbMF0udG9CYXNlNTgoKSk7XG4gICAgY29uc3QgdXNlclB1YiA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVswXS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzLnRyaXBsZSkge1xuICAgICAgY29uc3QgcHViID0ga2V5Lm5ldXRlcmVkKCkudG9CYXNlNTgoKTtcbiAgICAgIGNvbnN0IGJhZFNpZ25hdHVyZSA9IEJ1ZmZlci5mcm9tKG1lc3NhZ2Uuc2lnbk1lc3NhZ2UocHViLCB3cm9uZ0tleS5wcml2YXRlS2V5ISkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgdmVyaWZ5S2V5U2lnbmF0dXJlKHsgdXNlcktleWNoYWluOiB7IHB1YjogdXNlclB1YiB9LCBrZXljaGFpblRvVmVyaWZ5OiB7IHB1YiB9LCBrZXlTaWduYXR1cmU6IGJhZFNpZ25hdHVyZSB9KSxcbiAgICAgICAgZmFsc2VcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICBkZXNjcmliZSgncGFyc2VUcmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnZmV0Y2hlcyBjdXN0b20gY2hhbmdlIHdhbGxldCBrZXlzIGFuZCB2ZXJpZmllcyBzaWduYXR1cmVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHtcbiAgICAgICAgaWQ6IG1haW5XYWxsZXRJZCxcbiAgICAgICAga2V5czogbWFpbktleUlkcyxcbiAgICAgICAgY29pbjogY29pbi5nZXRDaGFpbigpLFxuICAgICAgICBjb2luU3BlY2lmaWM6IHsgY3VzdG9tQ2hhbmdlV2FsbGV0SWQgfSxcbiAgICAgICAgY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcyxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBub2NrcyA9IFtcbiAgICAgICAgLi4ubm9ja0tleUZldGNoKG1haW5LZXlJZHMsIHJvb3RXYWxsZXRLZXlzKSxcbiAgICAgICAgbm9ja0N1c3RvbUNoYW5nZVdhbGxldCgpLFxuICAgICAgICAuLi5ub2NrS2V5RmV0Y2goY3VzdG9tQ2hhbmdlS2V5SWRzLCBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzKSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IHBhcnNlZCA9IGF3YWl0IGNvaW4ucGFyc2VUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB7IHJlY2lwaWVudHM6IFt7IGFkZHJlc3M6IGV4dGVybmFsQWRkcmVzcywgYW1vdW50OiAnMzAwMCcgfV0gfSxcbiAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleDogdXR4b2xpYlBzYnQudG9IZXgoKSB9LFxuICAgICAgICB3YWxsZXQ6IHdhbGxldCBhcyB1bmtub3duIGFzIGltcG9ydCgnLi4vLi4vc3JjJykuVXR4b1dhbGxldCxcbiAgICAgIH0pO1xuXG4gICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9ja3MpIGFzc2VydC5vayhuLmlzRG9uZSgpKTtcblxuICAgICAgYXNzZXJ0Lm9rKHBhcnNlZC5jdXN0b21DaGFuZ2UpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZC5jdXN0b21DaGFuZ2Uua2V5cy5sZW5ndGgsIDMpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzOyBpKyspIHtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZC5jdXN0b21DaGFuZ2Uua2V5c1tpXS5wdWIsIGN1c3RvbUNoYW5nZVdhbGxldEtleXMudHJpcGxlW2ldLm5ldXRlcmVkKCkudG9CYXNlNTgoKSk7XG4gICAgICB9XG5cbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWQuZXhwbGljaXRFeHRlcm5hbE91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWQuZXhwbGljaXRFeHRlcm5hbE91dHB1dHNbMF0uYW1vdW50LCAnMzAwMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhcyBubyBjdXN0b20gY2hhbmdlIHdoZW4gd2FsbGV0IGxhY2tzIGN1c3RvbUNoYW5nZVdhbGxldElkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHtcbiAgICAgICAgaWQ6IG1haW5XYWxsZXRJZCxcbiAgICAgICAga2V5czogbWFpbktleUlkcyxcbiAgICAgICAgY29pbjogY29pbi5nZXRDaGFpbigpLFxuICAgICAgICBjb2luU3BlY2lmaWM6IHt9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG5vY2tzID0gbm9ja0tleUZldGNoKG1haW5LZXlJZHMsIHJvb3RXYWxsZXRLZXlzKTtcblxuICAgICAgY29uc3QgcGFyc2VkID0gYXdhaXQgY29pbi5wYXJzZVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQYXJhbXM6IHsgcmVjaXBpZW50czogW3sgYWRkcmVzczogZXh0ZXJuYWxBZGRyZXNzLCBhbW91bnQ6ICczMDAwJyB9XSB9LFxuICAgICAgICB0eFByZWJ1aWxkOiB7IHR4SGV4OiB1dHhvbGliUHNidC50b0hleCgpIH0sXG4gICAgICAgIHdhbGxldDogd2FsbGV0IGFzIHVua25vd24gYXMgaW1wb3J0KCcuLi8uLi9zcmMnKS5VdHhvV2FsbGV0LFxuICAgICAgfSk7XG5cbiAgICAgIGZvciAoY29uc3QgbiBvZiBub2NrcykgYXNzZXJ0Lm9rKG4uaXNEb25lKCkpO1xuXG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VkLmN1c3RvbUNoYW5nZSwgdW5kZWZpbmVkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWQubmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24sIGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIGludmFsaWQgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdyb25nS2V5ID0gQklQMzIuZnJvbUJhc2U1OCh0ZXN0dXRpbC5nZXRXYWxsZXRLZXlzRm9yU2VlZCgnd3JvbmcnKS50cmlwbGVbMF0udG9CYXNlNTgoKSk7XG4gICAgICBjb25zdCBiYWRTaWduYXR1cmVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAoWyd1c2VyJywgJ2JhY2t1cCcsICdiaXRnbyddIGFzIGNvbnN0KS5tYXAoKG5hbWUsIGkpID0+IFtcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgbWVzc2FnZS5zaWduTWVzc2FnZShjdXN0b21DaGFuZ2VXYWxsZXRLZXlzLnRyaXBsZVtpXS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCksIHdyb25nS2V5LnByaXZhdGVLZXkhKVxuICAgICAgICAgICkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBdKVxuICAgICAgKSBhcyBSZWNvcmQ8J3VzZXInIHwgJ2JhY2t1cCcgfCAnYml0Z28nLCBzdHJpbmc+O1xuXG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KGRlZmF1bHRCaXRHbywgY29pbiwge1xuICAgICAgICBpZDogbWFpbldhbGxldElkLFxuICAgICAgICBrZXlzOiBtYWluS2V5SWRzLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGNvaW5TcGVjaWZpYzogeyBjdXN0b21DaGFuZ2VXYWxsZXRJZCB9LFxuICAgICAgICBjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzOiBiYWRTaWduYXR1cmVzLFxuICAgICAgfSk7XG5cbiAgICAgIG5vY2tLZXlGZXRjaChtYWluS2V5SWRzLCByb290V2FsbGV0S2V5cyk7XG4gICAgICBub2NrQ3VzdG9tQ2hhbmdlV2FsbGV0KCk7XG4gICAgICBub2NrS2V5RmV0Y2goY3VzdG9tQ2hhbmdlS2V5SWRzLCBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzKTtcblxuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgY29pbi5wYXJzZVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICAgIHR4UGFyYW1zOiB7IHJlY2lwaWVudHM6IFt7IGFkZHJlc3M6IGV4dGVybmFsQWRkcmVzcywgYW1vdW50OiAnMzAwMCcgfV0gfSxcbiAgICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXg6IHV0eG9saWJQc2J0LnRvSGV4KCkgfSxcbiAgICAgICAgICAgIHdhbGxldDogd2FsbGV0IGFzIHVua25vd24gYXMgaW1wb3J0KCcuLi8uLi9zcmMnKS5VdHhvV2FsbGV0LFxuICAgICAgICAgIH0pLFxuICAgICAgICAvZmFpbGVkIHRvIHZlcmlmeSBjdXN0b20gY2hhbmdlIC4qIGtleSBzaWduYXR1cmUvXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tQ2hhbmdlV2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2N1c3RvbUNoYW5nZVdhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUF3QztBQUV4Qyw2QkFBOEI7QUFDOUIsZ0RBQXFFO0FBQ3JFLHlEQUEyQztBQUMzQyw4Q0FBMkM7QUFDM0MsOENBQWlEO0FBQ2pELDhDQUEwQztBQUUxQyxtRUFBb0U7QUFDcEUsK0RBQStEO0FBQy9ELG1EQUF5RDtBQUV6RCxpQ0FBbUQ7QUFFbkQsU0FBUyxXQUFXLENBQ2xCLElBQWlDLEVBQ2pDLFVBQXdDLEVBQ3hDLHNCQUFnRTtJQUVoRSxPQUFPLElBQUEsNkJBQWUsRUFBQyxJQUFJLEVBQUUsNkJBQWlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUM5RSxZQUFZLEVBQUUsSUFBSSx3QkFBWSxDQUFDLEtBQUssQ0FBQztRQUNyQyxnQkFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7UUFDcEMsdUJBQXVCLEVBQUUsc0JBQXNCO1lBQzdDLENBQUMsQ0FBQyw2QkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQy9ELENBQUMsQ0FBQyxTQUFTO0tBQ2QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFFBQVEsQ0FBQyx1QkFBdUIsRUFBRTtJQUNoQyxNQUFNLElBQUksR0FBRyxJQUFBLGtCQUFXLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDekMsTUFBTSxLQUFLLEdBQUcsaUJBQU0sQ0FBQyxZQUFZLENBQUMsbUJBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM3RCxNQUFNLGNB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QUksRUFBRTtnQkFDNUMsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsWUFBWSxFQUFFLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ3RDLHlCQUF5QixFQUFFLGFBQWE7YUFDekMsQ0FBQyxDQUFDO1lBRUgsWUFBWSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUN6QyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3pCLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBRXpELE1BQU0sZ0JBQU0sQ0FBQyxPQUFPLENBQ2xCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO2dCQUN4RSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUMxQyxNQUFNLEVBQUUsTUFBbUQ7YUFDNUQsQ0FBQyxFQUNKLGlEQUFpRCxDQUNsRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdub2RlOmFzc2VydC9zdHJpY3QnO1xuXG5pbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCBCSVAzMiwgbWVzc2FnZSB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgdGVzdHV0aWwgfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgY29tbW9uLCBXYWxsZXQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgZ2V0U2VlZCB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5cbmltcG9ydCB7IGV4cGxhaW5Qc2J0V2FzbSB9IGZyb20gJy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdCc7XG5pbXBvcnQgeyBBZGRyZXNzQ29kZWMgfSBmcm9tICcuLi8uLi9zcmMvdHJhbnNhY3Rpb24vcmVjaXBpZW50JztcbmltcG9ydCB7IHZlcmlmeUtleVNpZ25hdHVyZSB9IGZyb20gJy4uLy4uL3NyYy92ZXJpZnlLZXknO1xuXG5pbXBvcnQgeyBkZWZhdWx0Qml0R28sIGdldFV0eG9Db2luIH0gZnJvbSAnLi91dGlsJztcblxuZnVuY3Rpb24gZXhwbGFpblBzYnQoXG4gIHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgd2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgY3VzdG9tQ2hhbmdlV2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyB8IHVuZGVmaW5lZFxuKSB7XG4gIHJldHVybiBleHBsYWluUHNidFdhc20ocHNidCwgZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMuZnJvbSh3YWxsZXRLZXlzKSwge1xuICAgIGFkZHJlc3NDb2RlYzogbmV3IEFkZHJlc3NDb2RlYygnYnRjJyksXG4gICAgcmVwbGF5UHJvdGVjdGlvbjogeyBwdWJsaWNLZXlzOiBbXSB9LFxuICAgIGN1c3RvbUNoYW5nZVdhbGxldFhwdWJzOiBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzXG4gICAgICA/IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLmZyb20oY3VzdG9tQ2hhbmdlV2FsbGV0S2V5cylcbiAgICAgIDogdW5kZWZpbmVkLFxuICB9KTtcbn1cblxuZGVzY3JpYmUoJ0N1c3RvbSBDaGFuZ2UgV2FsbGV0cycsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgY29pbiA9IGdldFV0eG9Db2luKCdidGMnKTtcbiAgY29uc3QgbmV0d29yayA9IHV0eG9saWIubmV0d29ya3MuYml0Y29pbjtcbiAgY29uc3QgYmdVcmwgPSBjb21tb24uRW52aXJvbm1lbnRzW2RlZmF1bHRCaXRHby5nZXRFbnYoKV0udXJpO1xuICBjb25zdCByb290V2FsbGV0S2V5cyA9IHRlc3R1dGlsLmdldERlZmF1bHRXYWxsZXRLZXlzKCk7XG4gIGNvbnN0IGN1c3RvbUNoYW5nZVdhbGxldEtleXMgPSB0ZXN0dXRpbC5nZXRXYWxsZXRLZXlzRm9yU2VlZCgnY3VzdG9tIGNoYW5nZScpO1xuICBjb25zdCB1c2VyUHJpdmF0ZUtleSA9IEJJUDMyLmZyb21CYXNlNTgocm9vdFdhbGxldEtleXMudHJpcGxlWzBdLnRvQmFzZTU4KCkpLnByaXZhdGVLZXkhO1xuXG4gIGNvbnN0IG1haW5LZXlJZHMgPSByb290V2FsbGV0S2V5cy50cmlwbGUubWFwKChrKSA9PiBnZXRTZWVkKGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKS50b1N0cmluZygnaGV4JykpO1xuICBjb25zdCBjdXN0b21DaGFuZ2VLZXlJZHMgPSBjdXN0b21DaGFuZ2VXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGspID0+IGdldFNlZWQoay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpLnRvU3RyaW5nKCdoZXgnKSk7XG4gIGNvbnN0IGN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgKFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXSBhcyBjb25zdCkubWFwKChuYW1lLCBpKSA9PiBbXG4gICAgICBuYW1lLFxuICAgICAgQnVmZmVyLmZyb20obWVzc2FnZS5zaWduTWVzc2FnZShjdXN0b21DaGFuZ2VXYWxsZXRLZXlzLnRyaXBsZVtpXS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCksIHVzZXJQcml2YXRlS2V5KSkudG9TdHJpbmcoXG4gICAgICAgICdoZXgnXG4gICAgICApLFxuICAgIF0pXG4gICkgYXMgUmVjb3JkPCd1c2VyJyB8ICdiYWNrdXAnIHwgJ2JpdGdvJywgc3RyaW5nPjtcblxuICBjb25zdCBpbnB1dHM6IHRlc3R1dGlsLklucHV0W10gPSBbeyBzY3JpcHRUeXBlOiAncDJzaCcsIHZhbHVlOiBCaWdJbnQoMTAwMDApIH1dO1xuICBjb25zdCBvdXRwdXRzOiB0ZXN0dXRpbC5PdXRwdXRbXSA9IFtcbiAgICAvLyByZWd1bGFyIGNoYW5nZSAodXNlcyByb290V2FsbGV0S2V5cyB2aWEgZGVmYXVsdClcbiAgICB7IHNjcmlwdFR5cGU6ICdwMnNoJywgdmFsdWU6IEJpZ0ludCgzMDAwKSB9LFxuICAgIC8vIGN1c3RvbSBjaGFuZ2UgKGJpcDMyRGVyaXZhdGlvbiBmcm9tIGN1c3RvbUNoYW5nZVdhbGxldEtleXMsIG5vdCBhZGRlZCBhcyBnbG9iYWwgeHB1YnMpXG4gICAgeyBzY3JpcHRUeXBlOiAncDJzaCcsIHZhbHVlOiBCaWdJbnQoMzAwMCksIHdhbGxldEtleXM6IGN1c3RvbUNoYW5nZVdhbGxldEtleXMgfSxcbiAgICAvLyBleHRlcm5hbCAobm8gZGVyaXZhdGlvbiBpbmZvKVxuICAgIHsgc2NyaXB0VHlwZTogJ3Ayc2gnLCB2YWx1ZTogQmlnSW50KDMwMDApLCB3YWxsZXRLZXlzOiBudWxsIH0sXG4gIF07XG5cbiAgY29uc3QgdXR4b2xpYlBzYnQgPSB0ZXN0dXRpbC5jb25zdHJ1Y3RQc2J0KGlucHV0cywgb3V0cHV0cywgbmV0d29yaywgcm9vdFdhbGxldEtleXMsICd1bnNpZ25lZCcsIHtcbiAgICBhZGRHbG9iYWxYUHViczogdHJ1ZSxcbiAgfSk7XG4gIGNvbnN0IHBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKHV0eG9saWJQc2J0LnRvQnVmZmVyKCksICdidGMnKTtcblxuICBjb25zdCBleHRlcm5hbEFkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdCh1dHhvbGliUHNidC50eE91dHB1dHNbMl0uc2NyaXB0LCBuZXR3b3JrKTtcbiAgY29uc3QgY3VzdG9tQ2hhbmdlV2FsbGV0SWQgPSAnY3VzdG9tLWNoYW5nZS13YWxsZXQtaWQnO1xuICBjb25zdCBtYWluV2FsbGV0SWQgPSAnbWFpbi13YWxsZXQtaWQnO1xuXG4gIGZ1bmN0aW9uIG5vY2tLZXlGZXRjaChrZXlJZHM6IHN0cmluZ1tdLCBrZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKTogbm9jay5TY29wZVtdIHtcbiAgICByZXR1cm4ga2V5SWRzLm1hcCgoaWQsIGkpID0+XG4gICAgICBub2NrKGJnVXJsKS5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L2tleS8ke2lkfWApLnJlcGx5KDIwMCwgeyBwdWI6IGtleXMudHJpcGxlW2ldLm5ldXRlcmVkKCkudG9CYXNlNTgoKSB9KVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBub2NrQ3VzdG9tQ2hhbmdlV2FsbGV0KCk6IG5vY2suU2NvcGUge1xuICAgIHJldHVybiBub2NrKGJnVXJsKS5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke2N1c3RvbUNoYW5nZVdhbGxldElkfWApLnJlcGx5KDIwMCwge1xuICAgICAgaWQ6IGN1c3RvbUNoYW5nZVdhbGxldElkLFxuICAgICAga2V5czogY3VzdG9tQ2hhbmdlS2V5SWRzLFxuICAgICAgY29pbjogY29pbi5nZXRDaGFpbigpLFxuICAgIH0pO1xuICB9XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IG5vY2suY2xlYW5BbGwoKSk7XG5cbiAgaXQoJ2NsYXNzaWZpZXMgY3VzdG9tIGNoYW5nZSBvdXRwdXQgd2hlbiBjdXN0b21DaGFuZ2VQdWJzIGlzIHByb3ZpZGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnQocHNidCwgcm9vdFdhbGxldEtleXMsIGN1c3RvbUNoYW5nZVdhbGxldEtleXMpO1xuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLmNoYW5nZU91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXhwbGFuYXRpb24uY2hhbmdlT3V0cHV0c1swXS5hbW91bnQsICczMDAwJyk7XG5cbiAgICBhc3NlcnQub2soZXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0cyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0c1swXS5hbW91bnQsICczMDAwJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZUFtb3VudCwgJzMwMDAnKTtcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLm91dHB1dHNbMF0uYW1vdW50LCAnMzAwMCcpO1xuICB9KTtcblxuICBpdCgnY2xhc3NpZmllcyBjdXN0b20gY2hhbmdlIG91dHB1dCBhcyBleHRlcm5hbCB3aXRob3V0IGN1c3RvbUNoYW5nZVB1YnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXhwbGFuYXRpb24gPSBleHBsYWluUHNidChwc2J0LCByb290V2FsbGV0S2V5cywgdW5kZWZpbmVkKTtcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLmNoYW5nZU91dHB1dHNbMF0uYW1vdW50LCAnMzAwMCcpO1xuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHM/Lmxlbmd0aCA/PyAwLCAwKTtcblxuICAgIC8vIGN1c3RvbSBjaGFuZ2UgKyBleHRlcm5hbCBib3RoIHRyZWF0ZWQgYXMgZXh0ZXJuYWwgb3V0cHV0c1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHBsYW5hdGlvbi5vdXRwdXRzLmxlbmd0aCwgMik7XG4gIH0pO1xuXG4gIGl0KCd2ZXJpZmllcyB2YWxpZCBjdXN0b20gY2hhbmdlIGtleSBzaWduYXR1cmVzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHVzZXJQdWIgPSByb290V2FsbGV0S2V5cy50cmlwbGVbMF0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgY3VzdG9tQ2hhbmdlV2FsbGV0S2V5cy50cmlwbGUpIHtcbiAgICAgIGNvbnN0IHB1YiA9IGtleS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCk7XG4gICAgICBjb25zdCBzaWduYXR1cmUgPSBCdWZmZXIuZnJvbShtZXNzYWdlLnNpZ25NZXNzYWdlKHB1YiwgdXNlclByaXZhdGVLZXkpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBhc3NlcnQub2soXG4gICAgICAgIHZlcmlmeUtleVNpZ25hdHVyZSh7IHVzZXJLZXljaGFpbjogeyBwdWI6IHVzZXJQdWIgfSwga2V5Y2hhaW5Ub1ZlcmlmeTogeyBwdWIgfSwga2V5U2lnbmF0dXJlOiBzaWduYXR1cmUgfSlcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICBpdCgncmVqZWN0cyBpbnZhbGlkIGN1c3RvbSBjaGFuZ2Uga2V5IHNpZ25hdHVyZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3Qgd3JvbmdLZXkgPSBCSVAzMi5mcm9tQmFzZTU4KHRlc3R1dGlsLmdldFdhbGxldEtleXNGb3JTZWVkKCd3cm9uZycpLnRyaXBsZVswXS50b0Jhc2U1OCgpKTtcbiAgICBjb25zdCB1c2VyUHViID0gcm9vdFdhbGxldEtleXMudHJpcGxlWzBdLm5ldXRlcmVkKCkudG9CYXNlNTgoKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGN1c3RvbUNoYW5nZVdhbGxldEtleXMudHJpcGxlKSB7XG4gICAgICBjb25zdCBwdWIgPSBrZXkubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICAgICAgY29uc3QgYmFkU2lnbmF0dXJlID0gQnVmZmVyLmZyb20obWVzc2FnZS5zaWduTWVzc2FnZShwdWIsIHdyb25nS2V5LnByaXZhdGVLZXkhKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICB2ZXJpZnlLZXlTaWduYXR1cmUoeyB1c2VyS2V5Y2hhaW46IHsgcHViOiB1c2VyUHViIH0sIGtleWNoYWluVG9WZXJpZnk6IHsgcHViIH0sIGtleVNpZ25hdHVyZTogYmFkU2lnbmF0dXJlIH0pLFxuICAgICAgICBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwYXJzZVRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdmZXRjaGVzIGN1c3RvbSBjaGFuZ2Ugd2FsbGV0IGtleXMgYW5kIHZlcmlmaWVzIHNpZ25hdHVyZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KGRlZmF1bHRCaXRHbywgY29pbiwge1xuICAgICAgICBpZDogbWFpbldhbGxldElkLFxuICAgICAgICBrZXlzOiBtYWluS2V5SWRzLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGNvaW5TcGVjaWZpYzogeyBjdXN0b21DaGFuZ2VXYWxsZXRJZCB9LFxuICAgICAgICBjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG5vY2tzID0gW1xuICAgICAgICAuLi5ub2NrS2V5RmV0Y2gobWFpbktleUlkcywgcm9vdFdhbGxldEtleXMpLFxuICAgICAgICBub2NrQ3VzdG9tQ2hhbmdlV2FsbGV0KCksXG4gICAgICAgIC4uLm5vY2tLZXlGZXRjaChjdXN0b21DaGFuZ2VLZXlJZHMsIGN1c3RvbUNoYW5nZVdhbGxldEtleXMpLFxuICAgICAgXTtcblxuICAgICAgY29uc3QgcGFyc2VkID0gYXdhaXQgY29pbi5wYXJzZVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQYXJhbXM6IHsgcmVjaXBpZW50czogW3sgYWRkcmVzczogZXh0ZXJuYWxBZGRyZXNzLCBhbW91bnQ6ICczMDAwJyB9XSB9LFxuICAgICAgICB0eFByZWJ1aWxkOiB7IHR4SGV4OiB1dHhvbGliUHNidC50b0hleCgpIH0sXG4gICAgICAgIHdhbGxldDogd2FsbGV0IGFzIHVua25vd24gYXMgaW1wb3J0KCcuLi8uLi9zcmMnKS5VdHhvV2FsbGV0LFxuICAgICAgfSk7XG5cbiAgICAgIGZvciAoY29uc3QgbiBvZiBub2NrcykgYXNzZXJ0Lm9rKG4uaXNEb25lKCkpO1xuXG4gICAgICBhc3NlcnQub2socGFyc2VkLmN1c3RvbUNoYW5nZSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VkLmN1c3RvbUNoYW5nZS5rZXlzLmxlbmd0aCwgMyk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM7IGkrKykge1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VkLmN1c3RvbUNoYW5nZS5rZXlzW2ldLnB1YiwgY3VzdG9tQ2hhbmdlV2FsbGV0S2V5cy50cmlwbGVbaV0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpKTtcbiAgICAgIH1cblxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZC5leHBsaWNpdEV4dGVybmFsT3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZC5leHBsaWNpdEV4dGVybmFsT3V0cHV0c1swXS5hbW91bnQsICczMDAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFzIG5vIGN1c3RvbSBjaGFuZ2Ugd2hlbiB3YWxsZXQgbGFja3MgY3VzdG9tQ2hhbmdlV2FsbGV0SWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KGRlZmF1bHRCaXRHbywgY29pbiwge1xuICAgICAgICBpZDogbWFpbldhbGxldElkLFxuICAgICAgICBrZXlzOiBtYWluS2V5SWRzLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGNvaW5TcGVjaWZpYzoge30sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgbm9ja3MgPSBub2NrS2V5RmV0Y2gobWFpbktleUlkcywgcm9vdFdhbGxldEtleXMpO1xuXG4gICAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCBjb2luLnBhcnNlVHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFBhcmFtczogeyByZWNpcGllbnRzOiBbeyBhZGRyZXNzOiBleHRlcm5hbEFkZHJlc3MsIGFtb3VudDogJzMwMDAnIH1dIH0sXG4gICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXg6IHV0eG9saWJQc2J0LnRvSGV4KCkgfSxcbiAgICAgICAgd2FsbGV0OiB3YWxsZXQgYXMgdW5rbm93biBhcyBpbXBvcnQoJy4uLy4uL3NyYycpLlV0eG9XYWxsZXQsXG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBuIG9mIG5vY2tzKSBhc3NlcnQub2sobi5pc0RvbmUoKSk7XG5cbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWQuY3VzdG9tQ2hhbmdlLCB1bmRlZmluZWQpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZC5uZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbiwgZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlamVjdHMgaW52YWxpZCBjdXN0b20gY2hhbmdlIGtleSBzaWduYXR1cmVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgd3JvbmdLZXkgPSBCSVAzMi5mcm9tQmFzZTU4KHRlc3R1dGlsLmdldFdhbGxldEtleXNGb3JTZWVkKCd3cm9uZycpLnRyaXBsZVswXS50b0Jhc2U1OCgpKTtcbiAgICAgIGNvbnN0IGJhZFNpZ25hdHVyZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIChbJ3VzZXInLCAnYmFja3VwJywgJ2JpdGdvJ10gYXMgY29uc3QpLm1hcCgobmFtZSwgaSkgPT4gW1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgQnVmZmVyLmZyb20oXG4gICAgICAgICAgICBtZXNzYWdlLnNpZ25NZXNzYWdlKGN1c3RvbUNoYW5nZVdhbGxldEtleXMudHJpcGxlW2ldLm5ldXRlcmVkKCkudG9CYXNlNTgoKSwgd3JvbmdLZXkucHJpdmF0ZUtleSEpXG4gICAgICAgICAgKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIF0pXG4gICAgICApIGFzIFJlY29yZDwndXNlcicgfCAnYmFja3VwJyB8ICdiaXRnbycsIHN0cmluZz47XG5cbiAgICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQoZGVmYXVsdEJpdEdvLCBjb2luLCB7XG4gICAgICAgIGlkOiBtYWluV2FsbGV0SWQsXG4gICAgICAgIGtleXM6IG1haW5LZXlJZHMsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgY29pblNwZWNpZmljOiB7IGN1c3RvbUNoYW5nZVdhbGxldElkIH0sXG4gICAgICAgIGN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXM6IGJhZFNpZ25hdHVyZXMsXG4gICAgICB9KTtcblxuICAgICAgbm9ja0tleUZldGNoKG1haW5LZXlJZHMsIHJvb3RXYWxsZXRLZXlzKTtcbiAgICAgIG5vY2tDdXN0b21DaGFuZ2VXYWxsZXQoKTtcbiAgICAgIG5vY2tLZXlGZXRjaChjdXN0b21DaGFuZ2VLZXlJZHMsIGN1c3RvbUNoYW5nZVdhbGxldEtleXMpO1xuXG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBjb2luLnBhcnNlVHJhbnNhY3Rpb24oe1xuICAgICAgICAgICAgdHhQYXJhbXM6IHsgcmVjaXBpZW50czogW3sgYWRkcmVzczogZXh0ZXJuYWxBZGRyZXNzLCBhbW91bnQ6ICczMDAwJyB9XSB9LFxuICAgICAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleDogdXR4b2xpYlBzYnQudG9IZXgoKSB9LFxuICAgICAgICAgICAgd2FsbGV0OiB3YWxsZXQgYXMgdW5rbm93biBhcyBpbXBvcnQoJy4uLy4uL3NyYycpLlV0eG9XYWxsZXQsXG4gICAgICAgICAgfSksXG4gICAgICAgIC9mYWlsZWQgdG8gdmVyaWZ5IGN1c3RvbSBjaGFuZ2UgLioga2V5IHNpZ25hdHVyZS9cbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psbtDecode.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/impl/zec/psbtDecode.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
7
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
8
|
+
const util_1 = require("../../util");
|
|
9
|
+
/**
|
|
10
|
+
* Zec.decodeTransaction must deserialize both supported Zcash PSBT formats. `ZcashPsbt.fromBytes`
|
|
11
|
+
* reads the Zcash transaction version from the parsed metadata and dispatches to the
|
|
12
|
+
* format-specific implementation — `ZcashBitGoPsbt` for v4, `ZcashIronwoodBitGoPsbt` for v6 —
|
|
13
|
+
* so a shielded (v6 Ironwood) PSBT decodes to a parser that understands its orchard PCZT
|
|
14
|
+
* instead of silently degrading to the generic v4-shaped wrapper.
|
|
15
|
+
*/
|
|
16
|
+
describe('Zec PSBT decode (v4 + v6 Ironwood)', function () {
|
|
17
|
+
const zec = (0, util_1.getUtxoCoin)('zec');
|
|
18
|
+
const tzec = (0, util_1.getUtxoCoin)('tzec');
|
|
19
|
+
const { walletKeys } = (0, util_1.getDefaultWasmWalletKeys)();
|
|
20
|
+
function buildV4Psbt() {
|
|
21
|
+
const psbt = wasm_utxo_1.fixedScriptWallet.ZcashBitGoPsbt.createEmpty('zec', walletKeys, { blockHeight: 3146400 });
|
|
22
|
+
psbt.addWalletInput({ txid: '11'.repeat(32), vout: 0, value: 100000n }, walletKeys, {
|
|
23
|
+
scriptId: { chain: 0, index: 0 },
|
|
24
|
+
});
|
|
25
|
+
psbt.addWalletOutput(walletKeys, { chain: 1, index: 0, value: 90000n });
|
|
26
|
+
return psbt;
|
|
27
|
+
}
|
|
28
|
+
function buildV6Psbt() {
|
|
29
|
+
const psbt = wasm_utxo_1.fixedScriptWallet.ZcashIronwoodBitGoPsbt.createEmpty('tzec', walletKeys, { blockHeight: 4200000 });
|
|
30
|
+
psbt.addWalletInput({ txid: '33'.repeat(32), vout: 0, value: 100000n }, walletKeys, {
|
|
31
|
+
scriptId: { chain: 0, index: 0 },
|
|
32
|
+
});
|
|
33
|
+
psbt.addWalletOutput(walletKeys, { chain: 1, index: 0, value: 90000n });
|
|
34
|
+
return psbt;
|
|
35
|
+
}
|
|
36
|
+
it('decodes a v4 (Sapling-shaped) PSBT as a ZcashBitGoPsbt', function () {
|
|
37
|
+
const decoded = zec.decodeTransaction(Buffer.from(buildV4Psbt().serialize()));
|
|
38
|
+
strict_1.default.ok(decoded instanceof wasm_utxo_1.fixedScriptWallet.ZcashBitGoPsbt);
|
|
39
|
+
strict_1.default.ok(!(decoded instanceof wasm_utxo_1.fixedScriptWallet.ZcashIronwoodBitGoPsbt));
|
|
40
|
+
});
|
|
41
|
+
it('decodes a v6 (Ironwood) PSBT as a ZcashIronwoodBitGoPsbt', function () {
|
|
42
|
+
const decoded = tzec.decodeTransaction(Buffer.from(buildV6Psbt().serialize()));
|
|
43
|
+
strict_1.default.ok(decoded instanceof wasm_utxo_1.fixedScriptWallet.ZcashIronwoodBitGoPsbt);
|
|
44
|
+
strict_1.default.strictEqual(decoded.getVersion(), 6);
|
|
45
|
+
});
|
|
46
|
+
it('decodes a v6 PSBT from a hex string', function () {
|
|
47
|
+
const hex = Buffer.from(buildV6Psbt().serialize()).toString('hex');
|
|
48
|
+
const decoded = tzec.decodeTransaction(hex);
|
|
49
|
+
strict_1.default.ok(decoded instanceof wasm_utxo_1.fixedScriptWallet.ZcashIronwoodBitGoPsbt);
|
|
50
|
+
});
|
|
51
|
+
it('decodes a v6 PSBT from a base64 string', function () {
|
|
52
|
+
const base64 = Buffer.from(buildV6Psbt().serialize()).toString('base64');
|
|
53
|
+
const decoded = tzec.decodeTransaction(base64);
|
|
54
|
+
strict_1.default.ok(decoded instanceof wasm_utxo_1.fixedScriptWallet.ZcashIronwoodBitGoPsbt);
|
|
55
|
+
});
|
|
56
|
+
it('decodeTransactionFromPrebuild decodes a v6 psbt hex', function () {
|
|
57
|
+
const hex = Buffer.from(buildV6Psbt().serialize()).toString('hex');
|
|
58
|
+
const decoded = tzec.decodeTransactionFromPrebuild({ txHex: hex });
|
|
59
|
+
strict_1.default.ok(decoded instanceof wasm_utxo_1.fixedScriptWallet.ZcashIronwoodBitGoPsbt);
|
|
60
|
+
});
|
|
61
|
+
it('throws the legacy-format error for a non-PSBT transaction', function () {
|
|
62
|
+
strict_1.default.throws(() => zec.decodeTransaction(Buffer.alloc(32)), /txFormat=legacy is deprecated/);
|
|
63
|
+
});
|
|
64
|
+
it('propagates deserializer errors for malformed PSBT bytes', function () {
|
|
65
|
+
// PSBT magic followed by junk.
|
|
66
|
+
strict_1.default.throws(() => zec.decodeTransaction(Buffer.from('70736274ff00', 'hex')), /Failed to deserialize PSBT/);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidERlY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9pbXBsL3plYy9wc2J0RGVjb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0VBQXdDO0FBRXhDLGdEQUFxRDtBQUVyRCxxQ0FBbUU7QUFFbkU7Ozs7OztHQU1HO0FBQ0gsUUFBUSxDQUFDLG9DQUFvQyxFQUFFO0lBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUEsa0JBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixNQUFNLElBQUksR0FBRyxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUEsK0JBQXdCLEdBQUUsQ0FBQztJQUVsRCxTQUFTLFdBQVc7UUFDbEIsTUFBTSxJQUFJLEdBQUcsNkJBQWlCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRTtZQUNsRixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxXQUFXO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLDZCQUFpQixDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRTtZQUNsRixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsRUFBRSxDQUFDLHdEQUF3RCxFQUFFO1FBQzNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RSxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLFlBQVksNkJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0QsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sWUFBWSw2QkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUU7UUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9FLGdCQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sWUFBWSw2QkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3ZFLGdCQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRTtRQUN4QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLFlBQVksNkJBQWlCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN6RSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLFlBQVksNkJBQWlCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN6RSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRTtRQUN4RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLGdCQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sWUFBWSw2QkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJEQUEyRCxFQUFFO1FBQzlELGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsK0JBQStCLENBQUMsQ0FBQztJQUNoRyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5REFBeUQsRUFBRTtRQUM1RCwrQkFBK0I7UUFDL0IsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztJQUMvRyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdub2RlOmFzc2VydC9zdHJpY3QnO1xuXG5pbXBvcnQgeyBmaXhlZFNjcmlwdFdhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBnZXRVdHhvQ29pbiwgZ2V0RGVmYXVsdFdhc21XYWxsZXRLZXlzIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbi8qKlxuICogWmVjLmRlY29kZVRyYW5zYWN0aW9uIG11c3QgZGVzZXJpYWxpemUgYm90aCBzdXBwb3J0ZWQgWmNhc2ggUFNCVCBmb3JtYXRzLiBgWmNhc2hQc2J0LmZyb21CeXRlc2BcbiAqIHJlYWRzIHRoZSBaY2FzaCB0cmFuc2FjdGlvbiB2ZXJzaW9uIGZyb20gdGhlIHBhcnNlZCBtZXRhZGF0YSBhbmQgZGlzcGF0Y2hlcyB0byB0aGVcbiAqIGZvcm1hdC1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiDigJQgYFpjYXNoQml0R29Qc2J0YCBmb3IgdjQsIGBaY2FzaElyb253b29kQml0R29Qc2J0YCBmb3IgdjYg4oCUXG4gKiBzbyBhIHNoaWVsZGVkICh2NiBJcm9ud29vZCkgUFNCVCBkZWNvZGVzIHRvIGEgcGFyc2VyIHRoYXQgdW5kZXJzdGFuZHMgaXRzIG9yY2hhcmQgUENaVFxuICogaW5zdGVhZCBvZiBzaWxlbnRseSBkZWdyYWRpbmcgdG8gdGhlIGdlbmVyaWMgdjQtc2hhcGVkIHdyYXBwZXIuXG4gKi9cbmRlc2NyaWJlKCdaZWMgUFNCVCBkZWNvZGUgKHY0ICsgdjYgSXJvbndvb2QpJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCB6ZWMgPSBnZXRVdHhvQ29pbignemVjJyk7XG4gIGNvbnN0IHR6ZWMgPSBnZXRVdHhvQ29pbigndHplYycpO1xuICBjb25zdCB7IHdhbGxldEtleXMgfSA9IGdldERlZmF1bHRXYXNtV2FsbGV0S2V5cygpO1xuXG4gIGZ1bmN0aW9uIGJ1aWxkVjRQc2J0KCk6IGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoQml0R29Qc2J0IHtcbiAgICBjb25zdCBwc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hCaXRHb1BzYnQuY3JlYXRlRW1wdHkoJ3plYycsIHdhbGxldEtleXMsIHsgYmxvY2tIZWlnaHQ6IDMxNDY0MDAgfSk7XG4gICAgcHNidC5hZGRXYWxsZXRJbnB1dCh7IHR4aWQ6ICcxMScucmVwZWF0KDMyKSwgdm91dDogMCwgdmFsdWU6IDEwMDAwMG4gfSwgd2FsbGV0S2V5cywge1xuICAgICAgc2NyaXB0SWQ6IHsgY2hhaW46IDAsIGluZGV4OiAwIH0sXG4gICAgfSk7XG4gICAgcHNidC5hZGRXYWxsZXRPdXRwdXQod2FsbGV0S2V5cywgeyBjaGFpbjogMSwgaW5kZXg6IDAsIHZhbHVlOiA5MDAwMG4gfSk7XG4gICAgcmV0dXJuIHBzYnQ7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZFY2UHNidCgpOiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaElyb253b29kQml0R29Qc2J0IHtcbiAgICBjb25zdCBwc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hJcm9ud29vZEJpdEdvUHNidC5jcmVhdGVFbXB0eSgndHplYycsIHdhbGxldEtleXMsIHsgYmxvY2tIZWlnaHQ6IDQyMDAwMDAgfSk7XG4gICAgcHNidC5hZGRXYWxsZXRJbnB1dCh7IHR4aWQ6ICczMycucmVwZWF0KDMyKSwgdm91dDogMCwgdmFsdWU6IDEwMDAwMG4gfSwgd2FsbGV0S2V5cywge1xuICAgICAgc2NyaXB0SWQ6IHsgY2hhaW46IDAsIGluZGV4OiAwIH0sXG4gICAgfSk7XG4gICAgcHNidC5hZGRXYWxsZXRPdXRwdXQod2FsbGV0S2V5cywgeyBjaGFpbjogMSwgaW5kZXg6IDAsIHZhbHVlOiA5MDAwMG4gfSk7XG4gICAgcmV0dXJuIHBzYnQ7XG4gIH1cblxuICBpdCgnZGVjb2RlcyBhIHY0IChTYXBsaW5nLXNoYXBlZCkgUFNCVCBhcyBhIFpjYXNoQml0R29Qc2J0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGRlY29kZWQgPSB6ZWMuZGVjb2RlVHJhbnNhY3Rpb24oQnVmZmVyLmZyb20oYnVpbGRWNFBzYnQoKS5zZXJpYWxpemUoKSkpO1xuICAgIGFzc2VydC5vayhkZWNvZGVkIGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hCaXRHb1BzYnQpO1xuICAgIGFzc2VydC5vayghKGRlY29kZWQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaElyb253b29kQml0R29Qc2J0KSk7XG4gIH0pO1xuXG4gIGl0KCdkZWNvZGVzIGEgdjYgKElyb253b29kKSBQU0JUIGFzIGEgWmNhc2hJcm9ud29vZEJpdEdvUHNidCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBkZWNvZGVkID0gdHplYy5kZWNvZGVUcmFuc2FjdGlvbihCdWZmZXIuZnJvbShidWlsZFY2UHNidCgpLnNlcmlhbGl6ZSgpKSk7XG4gICAgYXNzZXJ0Lm9rKGRlY29kZWQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaElyb253b29kQml0R29Qc2J0KTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb2RlZC5nZXRWZXJzaW9uKCksIDYpO1xuICB9KTtcblxuICBpdCgnZGVjb2RlcyBhIHY2IFBTQlQgZnJvbSBhIGhleCBzdHJpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaGV4ID0gQnVmZmVyLmZyb20oYnVpbGRWNlBzYnQoKS5zZXJpYWxpemUoKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IGRlY29kZWQgPSB0emVjLmRlY29kZVRyYW5zYWN0aW9uKGhleCk7XG4gICAgYXNzZXJ0Lm9rKGRlY29kZWQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaElyb253b29kQml0R29Qc2J0KTtcbiAgfSk7XG5cbiAgaXQoJ2RlY29kZXMgYSB2NiBQU0JUIGZyb20gYSBiYXNlNjQgc3RyaW5nJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJhc2U2NCA9IEJ1ZmZlci5mcm9tKGJ1aWxkVjZQc2J0KCkuc2VyaWFsaXplKCkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICBjb25zdCBkZWNvZGVkID0gdHplYy5kZWNvZGVUcmFuc2FjdGlvbihiYXNlNjQpO1xuICAgIGFzc2VydC5vayhkZWNvZGVkIGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hJcm9ud29vZEJpdEdvUHNidCk7XG4gIH0pO1xuXG4gIGl0KCdkZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZCBkZWNvZGVzIGEgdjYgcHNidCBoZXgnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaGV4ID0gQnVmZmVyLmZyb20oYnVpbGRWNlBzYnQoKS5zZXJpYWxpemUoKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IGRlY29kZWQgPSB0emVjLmRlY29kZVRyYW5zYWN0aW9uRnJvbVByZWJ1aWxkKHsgdHhIZXg6IGhleCB9KTtcbiAgICBhc3NlcnQub2soZGVjb2RlZCBpbnN0YW5jZW9mIGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoSXJvbndvb2RCaXRHb1BzYnQpO1xuICB9KTtcblxuICBpdCgndGhyb3dzIHRoZSBsZWdhY3ktZm9ybWF0IGVycm9yIGZvciBhIG5vbi1QU0JUIHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gemVjLmRlY29kZVRyYW5zYWN0aW9uKEJ1ZmZlci5hbGxvYygzMikpLCAvdHhGb3JtYXQ9bGVnYWN5IGlzIGRlcHJlY2F0ZWQvKTtcbiAgfSk7XG5cbiAgaXQoJ3Byb3BhZ2F0ZXMgZGVzZXJpYWxpemVyIGVycm9ycyBmb3IgbWFsZm9ybWVkIFBTQlQgYnl0ZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gUFNCVCBtYWdpYyBmb2xsb3dlZCBieSBqdW5rLlxuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gemVjLmRlY29kZVRyYW5zYWN0aW9uKEJ1ZmZlci5mcm9tKCc3MDczNjI3NGZmMDAnLCAnaGV4JykpLCAvRmFpbGVkIHRvIGRlc2VyaWFsaXplIFBTQlQvKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shieldedPrebuildAndSign.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/impl/zec/shieldedPrebuildAndSign.ts"],"names":[],"mappings":""}
|