@bitgo-beta/utxo-lib 8.0.3-beta.13 → 8.0.3-beta.1300
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/README.md +19 -16
- package/dist/src/address.d.ts +0 -1
- package/dist/src/address.d.ts.map +1 -1
- package/dist/src/address.js +10 -10
- package/dist/src/addressFormat.d.ts +1 -2
- package/dist/src/addressFormat.d.ts.map +1 -1
- package/dist/src/addressFormat.js +21 -26
- package/dist/src/bitgo/Musig2.d.ts +5 -11
- package/dist/src/bitgo/Musig2.d.ts.map +1 -1
- package/dist/src/bitgo/Musig2.js +75 -100
- package/dist/src/bitgo/ProprietaryKeyValUtils.d.ts +27 -0
- package/dist/src/bitgo/ProprietaryKeyValUtils.d.ts.map +1 -0
- package/dist/src/bitgo/ProprietaryKeyValUtils.js +74 -0
- package/dist/src/bitgo/PsbtUtil.d.ts +54 -0
- package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -0
- package/dist/src/bitgo/PsbtUtil.js +131 -0
- package/dist/src/bitgo/Unspent.d.ts +2 -3
- package/dist/src/bitgo/Unspent.d.ts.map +1 -1
- package/dist/src/bitgo/Unspent.js +14 -15
- package/dist/src/bitgo/UtxoPsbt.d.ts +40 -43
- package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoPsbt.js +235 -209
- package/dist/src/bitgo/UtxoTransaction.d.ts +0 -1
- package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoTransaction.js +14 -14
- package/dist/src/bitgo/UtxoTransactionBuilder.d.ts +0 -1
- package/dist/src/bitgo/UtxoTransactionBuilder.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoTransactionBuilder.js +1 -1
- package/dist/src/bitgo/bitcoincash/address.d.ts +0 -1
- package/dist/src/bitgo/bitcoincash/address.d.ts.map +1 -1
- package/dist/src/bitgo/bitcoincash/address.js +11 -12
- package/dist/src/bitgo/bitcoincash/index.js +6 -2
- package/dist/src/bitgo/dash/DashPsbt.d.ts +1 -1
- package/dist/src/bitgo/dash/DashPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/dash/DashPsbt.js +4 -1
- package/dist/src/bitgo/dash/DashTransaction.d.ts +0 -1
- package/dist/src/bitgo/dash/DashTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/dash/DashTransaction.js +3 -3
- package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts +0 -1
- package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts.map +1 -1
- package/dist/src/bitgo/dash/DashTransactionBuilder.js +1 -1
- package/dist/src/bitgo/dash/index.js +6 -2
- package/dist/src/bitgo/index.d.ts +11 -0
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +11 -3
- package/dist/src/bitgo/keyutil.d.ts +10 -2
- package/dist/src/bitgo/keyutil.d.ts.map +1 -1
- package/dist/src/bitgo/keyutil.js +27 -6
- package/dist/src/bitgo/legacysafe/index.d.ts +14 -0
- package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
- package/dist/src/bitgo/legacysafe/index.js +60 -0
- package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts +1 -1
- package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/litecoin/LitecoinPsbt.js +4 -1
- package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +1 -2
- package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/litecoin/LitecoinTransaction.js +2 -2
- package/dist/src/bitgo/litecoin/index.js +6 -2
- package/dist/src/bitgo/nonStandardHalfSigned.js +4 -5
- package/dist/src/bitgo/outputScripts.d.ts +12 -8
- package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
- package/dist/src/bitgo/outputScripts.js +68 -50
- package/dist/src/bitgo/parseInput.d.ts +7 -8
- package/dist/src/bitgo/parseInput.d.ts.map +1 -1
- package/dist/src/bitgo/parseInput.js +15 -16
- package/dist/src/bitgo/psbt/fromHalfSigned.d.ts +0 -1
- package/dist/src/bitgo/psbt/fromHalfSigned.d.ts.map +1 -1
- package/dist/src/bitgo/psbt/fromHalfSigned.js +7 -8
- package/dist/src/bitgo/psbt/scriptTypes.d.ts +0 -1
- package/dist/src/bitgo/psbt/scriptTypes.d.ts.map +1 -1
- package/dist/src/bitgo/psbt/scriptTypes.js +7 -8
- package/dist/src/bitgo/signature.d.ts +5 -6
- package/dist/src/bitgo/signature.d.ts.map +1 -1
- package/dist/src/bitgo/signature.js +37 -23
- package/dist/src/bitgo/tnumber.js +2 -3
- package/dist/src/bitgo/transaction.d.ts +31 -4
- package/dist/src/bitgo/transaction.d.ts.map +1 -1
- package/dist/src/bitgo/transaction.js +57 -27
- package/dist/src/bitgo/transactionAmounts.d.ts +9 -0
- package/dist/src/bitgo/transactionAmounts.d.ts.map +1 -0
- package/dist/src/bitgo/transactionAmounts.js +32 -0
- package/dist/src/bitgo/types.d.ts +8 -2
- package/dist/src/bitgo/types.d.ts.map +1 -1
- package/dist/src/bitgo/types.js +12 -4
- package/dist/src/bitgo/wallet/Psbt.d.ts +91 -27
- package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Psbt.js +246 -108
- package/dist/src/bitgo/wallet/ScriptId.d.ts +14 -0
- package/dist/src/bitgo/wallet/ScriptId.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/ScriptId.js +28 -0
- package/dist/src/bitgo/wallet/Unspent.d.ts +43 -10
- package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Unspent.js +174 -81
- package/dist/src/bitgo/wallet/WalletKeys.d.ts +2 -3
- package/dist/src/bitgo/wallet/WalletKeys.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/WalletKeys.js +3 -3
- package/dist/src/bitgo/wallet/WalletOutput.d.ts +70 -2
- package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/WalletOutput.js +179 -43
- package/dist/src/bitgo/wallet/WalletScripts.js +4 -5
- package/dist/src/bitgo/wallet/WalletUnspentSigner.d.ts +1 -1
- package/dist/src/bitgo/wallet/WalletUnspentSigner.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/WalletUnspentSigner.js +7 -7
- package/dist/src/bitgo/wallet/chains.d.ts +3 -3
- package/dist/src/bitgo/wallet/chains.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/chains.js +10 -10
- package/dist/src/bitgo/wallet/index.d.ts +3 -0
- package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/index.js +9 -2
- package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts +50 -0
- package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +85 -0
- package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts +32 -0
- package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/psbt/RootNodes.js +122 -0
- package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts +1 -2
- package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashBufferutils.js +15 -15
- package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +2 -6
- package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashPsbt.js +15 -26
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +5 -2
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashTransaction.js +48 -21
- package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts +0 -1
- package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +8 -4
- package/dist/src/bitgo/zcash/address.d.ts +0 -1
- package/dist/src/bitgo/zcash/address.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/address.js +7 -8
- package/dist/src/bitgo/zcash/hashZip0244.d.ts +1 -2
- package/dist/src/bitgo/zcash/hashZip0244.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/hashZip0244.js +9 -10
- package/dist/src/bitgo/zcash/index.js +6 -2
- package/dist/src/classify.d.ts +0 -1
- package/dist/src/classify.d.ts.map +1 -1
- package/dist/src/classify.js +5 -5
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -4
- package/dist/src/networks.d.ts +2 -2
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +67 -21
- package/dist/src/payments/p2tr.d.ts.map +1 -1
- package/dist/src/payments/p2tr.js +16 -28
- package/dist/src/payments/p2tr_ns.js +3 -5
- package/dist/src/taproot.d.ts +80 -6
- package/dist/src/taproot.d.ts.map +1 -1
- package/dist/src/taproot.js +132 -48
- package/dist/src/templates/multisig/input.d.ts +0 -1
- package/dist/src/templates/multisig/input.d.ts.map +1 -1
- package/dist/src/templates/multisig/input.js +2 -3
- package/dist/src/templates/multisig/output.d.ts +0 -1
- package/dist/src/templates/multisig/output.d.ts.map +1 -1
- package/dist/src/templates/multisig/output.js +2 -3
- package/dist/src/templates/nulldata.d.ts +0 -1
- package/dist/src/templates/nulldata.d.ts.map +1 -1
- package/dist/src/templates/nulldata.js +3 -3
- package/dist/src/templates/pubkey/input.d.ts +0 -1
- package/dist/src/templates/pubkey/input.d.ts.map +1 -1
- package/dist/src/templates/pubkey/input.js +2 -3
- package/dist/src/templates/pubkey/output.d.ts +0 -1
- package/dist/src/templates/pubkey/output.d.ts.map +1 -1
- package/dist/src/templates/pubkey/output.js +2 -3
- package/dist/src/templates/pubkeyhash/input.d.ts +0 -1
- package/dist/src/templates/pubkeyhash/input.d.ts.map +1 -1
- package/dist/src/templates/pubkeyhash/input.js +2 -3
- package/dist/src/templates/pubkeyhash/output.d.ts +0 -1
- package/dist/src/templates/pubkeyhash/output.d.ts.map +1 -1
- package/dist/src/templates/pubkeyhash/output.js +2 -3
- package/dist/src/templates/scripthash/input.d.ts +0 -1
- package/dist/src/templates/scripthash/input.d.ts.map +1 -1
- package/dist/src/templates/scripthash/input.js +2 -3
- package/dist/src/templates/scripthash/output.d.ts +0 -1
- package/dist/src/templates/scripthash/output.d.ts.map +1 -1
- package/dist/src/templates/scripthash/output.js +2 -3
- package/dist/src/templates/taproot/input.d.ts +0 -1
- package/dist/src/templates/taproot/input.d.ts.map +1 -1
- package/dist/src/templates/taproot/input.js +2 -3
- package/dist/src/templates/taproot/output.d.ts +0 -1
- package/dist/src/templates/taproot/output.d.ts.map +1 -1
- package/dist/src/templates/taproot/output.js +2 -3
- package/dist/src/templates/taprootnofn/input.d.ts +0 -1
- package/dist/src/templates/taprootnofn/input.d.ts.map +1 -1
- package/dist/src/templates/taprootnofn/input.js +2 -3
- package/dist/src/templates/taprootnofn/output.d.ts +0 -1
- package/dist/src/templates/taprootnofn/output.d.ts.map +1 -1
- package/dist/src/templates/taprootnofn/output.js +4 -5
- package/dist/src/templates/witnesscommitment/output.d.ts +0 -1
- package/dist/src/templates/witnesscommitment/output.d.ts.map +1 -1
- package/dist/src/templates/witnesscommitment/output.js +4 -5
- package/dist/src/templates/witnesspubkeyhash/input.d.ts +0 -1
- package/dist/src/templates/witnesspubkeyhash/input.d.ts.map +1 -1
- package/dist/src/templates/witnesspubkeyhash/input.js +2 -3
- package/dist/src/templates/witnesspubkeyhash/output.d.ts +0 -1
- package/dist/src/templates/witnesspubkeyhash/output.d.ts.map +1 -1
- package/dist/src/templates/witnesspubkeyhash/output.js +2 -3
- package/dist/src/templates/witnessscripthash/input.d.ts +0 -1
- package/dist/src/templates/witnessscripthash/input.d.ts.map +1 -1
- package/dist/src/templates/witnessscripthash/input.js +2 -3
- package/dist/src/templates/witnessscripthash/output.d.ts +0 -1
- package/dist/src/templates/witnessscripthash/output.d.ts.map +1 -1
- package/dist/src/templates/witnessscripthash/output.js +2 -3
- package/dist/src/testutil/index.d.ts +1 -0
- package/dist/src/testutil/index.d.ts.map +1 -1
- package/dist/src/testutil/index.js +7 -2
- package/dist/src/testutil/keys.d.ts +6 -4
- package/dist/src/testutil/keys.d.ts.map +1 -1
- package/dist/src/testutil/keys.js +25 -12
- package/dist/src/testutil/mock.d.ts +3 -4
- package/dist/src/testutil/mock.d.ts.map +1 -1
- package/dist/src/testutil/mock.js +37 -30
- package/dist/src/testutil/psbt.d.ts +41 -16
- package/dist/src/testutil/psbt.d.ts.map +1 -1
- package/dist/src/testutil/psbt.js +53 -41
- package/dist/src/testutil/transaction.d.ts +18 -7
- package/dist/src/testutil/transaction.d.ts.map +1 -1
- package/dist/src/testutil/transaction.js +35 -28
- package/dist/src/transaction_builder.d.ts +0 -1
- package/dist/src/transaction_builder.d.ts.map +1 -1
- package/dist/src/transaction_builder.js +27 -32
- package/package.json +10 -17
- package/dist/src/noble_ecc.d.ts +0 -28
- package/dist/src/noble_ecc.d.ts.map +0 -1
- package/dist/src/noble_ecc.js +0 -172
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/templates/witnessscripthash/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/templates/witnessscripthash/output.ts"],"names":[],"mappings":"AAKA,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAItE;yBAJe,KAAK;sBAKF,MAAM"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// OP_0 {scriptHash}
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.check =
|
|
4
|
+
exports.check = check;
|
|
5
5
|
const __1 = require("../../");
|
|
6
6
|
const __2 = require("../../");
|
|
7
7
|
function check(script) {
|
|
8
8
|
const buffer = __1.script.compile(script);
|
|
9
9
|
return buffer.length === 34 && buffer[0] === __2.opcodes.OP_0 && buffer[1] === 0x20;
|
|
10
10
|
}
|
|
11
|
-
exports.check = check;
|
|
12
11
|
check.toJSON = () => {
|
|
13
12
|
return 'Witness scriptHash output';
|
|
14
13
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RlbXBsYXRlcy93aXRuZXNzc2NyaXB0aGFzaC9vdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjs7QUFLcEIsc0JBSUM7QUFQRCw4QkFBMkM7QUFDM0MsOEJBQWlDO0FBRWpDLFNBQWdCLEtBQUssQ0FBQyxNQUF1QztJQUMzRCxNQUFNLE1BQU0sR0FBRyxVQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZDLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQU8sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztBQUNsRixDQUFDO0FBQ0QsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFXLEVBQUU7SUFDMUIsT0FBTywyQkFBMkIsQ0FBQztBQUNyQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBPUF8wIHtzY3JpcHRIYXNofVxuXG5pbXBvcnQgeyBzY3JpcHQgYXMgYnNjcmlwdCB9IGZyb20gJy4uLy4uLyc7XG5pbXBvcnQgeyBvcGNvZGVzIH0gZnJvbSAnLi4vLi4vJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrKHNjcmlwdDogQnVmZmVyIHwgQXJyYXk8bnVtYmVyIHwgQnVmZmVyPik6IGJvb2xlYW4ge1xuICBjb25zdCBidWZmZXIgPSBic2NyaXB0LmNvbXBpbGUoc2NyaXB0KTtcblxuICByZXR1cm4gYnVmZmVyLmxlbmd0aCA9PT0gMzQgJiYgYnVmZmVyWzBdID09PSBvcGNvZGVzLk9QXzAgJiYgYnVmZmVyWzFdID09PSAweDIwO1xufVxuY2hlY2sudG9KU09OID0gKCk6IHN0cmluZyA9PiB7XG4gIHJldHVybiAnV2l0bmVzcyBzY3JpcHRIYXNoIG91dHB1dCc7XG59O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testutil/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testutil/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -13,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
17
|
__exportStar(require("./keys"), exports);
|
|
14
18
|
__exportStar(require("./mock"), exports);
|
|
15
19
|
__exportStar(require("./psbt"), exports);
|
|
16
|
-
|
|
20
|
+
__exportStar(require("./transaction"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2Qix5Q0FBdUI7QUFDdkIseUNBQXVCO0FBQ3ZCLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4va2V5cyc7XG5leHBvcnQgKiBmcm9tICcuL21vY2snO1xuZXhwb3J0ICogZnJvbSAnLi9wc2J0JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuIl19
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
export
|
|
1
|
+
import { Triple } from '../bitgo/types';
|
|
2
|
+
import { RootWalletKeys } from '../bitgo/wallet/WalletKeys';
|
|
3
|
+
import { BIP32Interface, ECPairInterface } from '@bitgo-beta/secp256k1';
|
|
4
|
+
export type KeyTriple = Triple<BIP32Interface>;
|
|
5
|
+
export type UncompressedKeyTriple = Triple<ECPairInterface>;
|
|
5
6
|
export declare function getKey(seed: string): BIP32Interface;
|
|
6
7
|
export declare function getKeyTriple(seed: string): KeyTriple;
|
|
8
|
+
export declare function getUncompressedKeyTriple(inputs: Triple<number>): UncompressedKeyTriple;
|
|
7
9
|
export declare function getKeyName(triple: Triple<BIP32Interface>, k: BIP32Interface): string | undefined;
|
|
8
10
|
export declare function getDefaultCosigner<T>(keyset: Triple<T>, signer: T): T;
|
|
9
11
|
export declare function getDefaultWalletKeys(): RootWalletKeys;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/testutil/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/testutil/keys.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAA0B,cAAc,EAAe,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7G,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE5D,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAEpD;AAaD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAEtF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAEhG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAarE;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
|
|
@@ -1,23 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.getKey = getKey;
|
|
4
|
+
exports.getKeyTriple = getKeyTriple;
|
|
5
|
+
exports.getUncompressedKeyTriple = getUncompressedKeyTriple;
|
|
6
|
+
exports.getKeyName = getKeyName;
|
|
7
|
+
exports.getDefaultCosigner = getDefaultCosigner;
|
|
8
|
+
exports.getDefaultWalletKeys = getDefaultWalletKeys;
|
|
5
9
|
const crypto = require("crypto");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
10
|
+
const WalletKeys_1 = require("../bitgo/wallet/WalletKeys");
|
|
11
|
+
const secp256k1_1 = require("@bitgo-beta/secp256k1");
|
|
12
|
+
const networks_1 = require("../networks");
|
|
13
|
+
const bip32 = (0, secp256k1_1.BIP32Factory)(secp256k1_1.ecc);
|
|
9
14
|
function getKey(seed) {
|
|
10
15
|
return bip32.fromSeed(crypto.createHash('sha256').update(seed).digest());
|
|
11
16
|
}
|
|
12
|
-
exports.getKey = getKey;
|
|
13
17
|
function getKeyTriple(seed) {
|
|
14
18
|
return [getKey(seed + '.0'), getKey(seed + '.1'), getKey(seed + '.2')];
|
|
15
19
|
}
|
|
16
|
-
|
|
20
|
+
function getUncompressedKey(input) {
|
|
21
|
+
// Using input for deterministic randomness
|
|
22
|
+
return secp256k1_1.ECPair.makeRandom({
|
|
23
|
+
compressed: false,
|
|
24
|
+
network: networks_1.networks.testnet,
|
|
25
|
+
rng: () => {
|
|
26
|
+
return Buffer.alloc(32, input);
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function getUncompressedKeyTriple(inputs) {
|
|
31
|
+
return [getUncompressedKey(inputs[0]), getUncompressedKey(inputs[1]), getUncompressedKey(inputs[2])];
|
|
32
|
+
}
|
|
17
33
|
function getKeyName(triple, k) {
|
|
18
34
|
return ['user', 'backup', 'bitgo'][triple.indexOf(k)];
|
|
19
35
|
}
|
|
20
|
-
exports.getKeyName = getKeyName;
|
|
21
36
|
function getDefaultCosigner(keyset, signer) {
|
|
22
37
|
const eq = (a, b) => a === b || (Buffer.isBuffer(a) && Buffer.isBuffer(b) && a.equals(b));
|
|
23
38
|
const [user, backup, bitgo] = keyset;
|
|
@@ -32,9 +47,7 @@ function getDefaultCosigner(keyset, signer) {
|
|
|
32
47
|
}
|
|
33
48
|
throw new Error(`signer not in pubkeys`);
|
|
34
49
|
}
|
|
35
|
-
exports.getDefaultCosigner = getDefaultCosigner;
|
|
36
50
|
function getDefaultWalletKeys() {
|
|
37
|
-
return new
|
|
51
|
+
return new WalletKeys_1.RootWalletKeys(getKeyTriple('default'));
|
|
38
52
|
}
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUErRDtBQUMvRCxpQ0FBaUM7QUFHakMsb0NBQTBDO0FBQzFDLDRDQUFtQztBQUVuQyxNQUFNLEtBQUssR0FBYSxvQkFBWSxDQUFDLGVBQUcsQ0FBQyxDQUFDO0FBSTFDLFNBQWdCLE1BQU0sQ0FBQyxJQUFZO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFGRCx3QkFFQztBQUVELFNBQWdCLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFGRCxvQ0FFQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxNQUE4QixFQUFFLENBQWlCO0lBQzFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBSSxNQUFpQixFQUFFLE1BQVM7SUFDaEUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFJLEVBQUUsQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDckMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDdEIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNyQixPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFiRCxnREFhQztBQUVELFNBQWdCLG9CQUFvQjtJQUNsQyxPQUFPLElBQUksc0JBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRkQsb0RBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkFQSSwgQklQMzJGYWN0b3J5LCBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4uL2JpdGdvJztcbmltcG9ydCB7IGVjYyB9IGZyb20gJy4uL25vYmxlX2VjYyc7XG5cbmNvbnN0IGJpcDMyOiBCSVAzMkFQSSA9IEJJUDMyRmFjdG9yeShlY2MpO1xuXG5leHBvcnQgdHlwZSBLZXlUcmlwbGUgPSBUcmlwbGU8QklQMzJJbnRlcmZhY2U+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5KHNlZWQ6IHN0cmluZyk6IEJJUDMySW50ZXJmYWNlIHtcbiAgcmV0dXJuIGJpcDMyLmZyb21TZWVkKGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoc2VlZCkuZGlnZXN0KCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5VHJpcGxlKHNlZWQ6IHN0cmluZyk6IEtleVRyaXBsZSB7XG4gIHJldHVybiBbZ2V0S2V5KHNlZWQgKyAnLjAnKSwgZ2V0S2V5KHNlZWQgKyAnLjEnKSwgZ2V0S2V5KHNlZWQgKyAnLjInKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlOYW1lKHRyaXBsZTogVHJpcGxlPEJJUDMySW50ZXJmYWNlPiwgazogQklQMzJJbnRlcmZhY2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gWyd1c2VyJywgJ2JhY2t1cCcsICdiaXRnbyddW3RyaXBsZS5pbmRleE9mKGspXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRDb3NpZ25lcjxUPihrZXlzZXQ6IFRyaXBsZTxUPiwgc2lnbmVyOiBUKTogVCB7XG4gIGNvbnN0IGVxID0gKGE6IFQsIGI6IFQpID0+IGEgPT09IGIgfHwgKEJ1ZmZlci5pc0J1ZmZlcihhKSAmJiBCdWZmZXIuaXNCdWZmZXIoYikgJiYgYS5lcXVhbHMoYikpO1xuICBjb25zdCBbdXNlciwgYmFja3VwLCBiaXRnb10gPSBrZXlzZXQ7XG4gIGlmIChlcShzaWduZXIsIHVzZXIpKSB7XG4gICAgcmV0dXJuIGJpdGdvO1xuICB9XG4gIGlmIChlcShzaWduZXIsIGJhY2t1cCkpIHtcbiAgICByZXR1cm4gYml0Z287XG4gIH1cbiAgaWYgKGVxKHNpZ25lciwgYml0Z28pKSB7XG4gICAgcmV0dXJuIHVzZXI7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBzaWduZXIgbm90IGluIHB1YmtleXNgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRXYWxsZXRLZXlzKCk6IFJvb3RXYWxsZXRLZXlzIHtcbiAgcmV0dXJuIG5ldyBSb290V2FsbGV0S2V5cyhnZXRLZXlUcmlwbGUoJ2RlZmF1bHQnKSk7XG59XG4iXX0=
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsd0JBRUM7QUFFRCxvQ0FFQztBQWFELDREQUVDO0FBRUQsZ0NBRUM7QUFFRCxnREFhQztBQUVELG9EQUVDO0FBeERELGlDQUFpQztBQUdqQywyREFBNEQ7QUFDNUQscURBQTZHO0FBQzdHLDBDQUF1QztBQUV2QyxNQUFNLEtBQUssR0FBYSxJQUFBLHdCQUFZLEVBQUMsZUFBRyxDQUFDLENBQUM7QUFLMUMsU0FBZ0IsTUFBTSxDQUFDLElBQVk7SUFDakMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEtBQUs7SUFDL0IsMkNBQTJDO0lBQzNDLE9BQU8sa0JBQU0sQ0FBQyxVQUFVLENBQUM7UUFDdkIsVUFBVSxFQUFFLEtBQUs7UUFDakIsT0FBTyxFQUFFLG1CQUFRLENBQUMsT0FBTztRQUN6QixHQUFHLEVBQUUsR0FBVyxFQUFFO1lBQ2hCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFzQjtJQUM3RCxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLE1BQThCLEVBQUUsQ0FBaUI7SUFDMUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBSSxNQUFpQixFQUFFLE1BQVM7SUFDaEUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFJLEVBQUUsQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDckMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFnQixvQkFBb0I7SUFDbEMsT0FBTyxJQUFJLDJCQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi9iaXRnby90eXBlcyc7XG5pbXBvcnQgeyBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4uL2JpdGdvL3dhbGxldC9XYWxsZXRLZXlzJztcbmltcG9ydCB7IEJJUDMyQVBJLCBCSVAzMkZhY3RvcnksIEJJUDMySW50ZXJmYWNlLCBlY2MsIEVDUGFpciwgRUNQYWlySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCB7IG5ldHdvcmtzIH0gZnJvbSAnLi4vbmV0d29ya3MnO1xuXG5jb25zdCBiaXAzMjogQklQMzJBUEkgPSBCSVAzMkZhY3RvcnkoZWNjKTtcblxuZXhwb3J0IHR5cGUgS2V5VHJpcGxlID0gVHJpcGxlPEJJUDMySW50ZXJmYWNlPjtcbmV4cG9ydCB0eXBlIFVuY29tcHJlc3NlZEtleVRyaXBsZSA9IFRyaXBsZTxFQ1BhaXJJbnRlcmZhY2U+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5KHNlZWQ6IHN0cmluZyk6IEJJUDMySW50ZXJmYWNlIHtcbiAgcmV0dXJuIGJpcDMyLmZyb21TZWVkKGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoc2VlZCkuZGlnZXN0KCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5VHJpcGxlKHNlZWQ6IHN0cmluZyk6IEtleVRyaXBsZSB7XG4gIHJldHVybiBbZ2V0S2V5KHNlZWQgKyAnLjAnKSwgZ2V0S2V5KHNlZWQgKyAnLjEnKSwgZ2V0S2V5KHNlZWQgKyAnLjInKV07XG59XG5cbmZ1bmN0aW9uIGdldFVuY29tcHJlc3NlZEtleShpbnB1dCkge1xuICAvLyBVc2luZyBpbnB1dCBmb3IgZGV0ZXJtaW5pc3RpYyByYW5kb21uZXNzXG4gIHJldHVybiBFQ1BhaXIubWFrZVJhbmRvbSh7XG4gICAgY29tcHJlc3NlZDogZmFsc2UsXG4gICAgbmV0d29yazogbmV0d29ya3MudGVzdG5ldCxcbiAgICBybmc6ICgpOiBCdWZmZXIgPT4ge1xuICAgICAgcmV0dXJuIEJ1ZmZlci5hbGxvYygzMiwgaW5wdXQpO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5jb21wcmVzc2VkS2V5VHJpcGxlKGlucHV0czogVHJpcGxlPG51bWJlcj4pOiBVbmNvbXByZXNzZWRLZXlUcmlwbGUge1xuICByZXR1cm4gW2dldFVuY29tcHJlc3NlZEtleShpbnB1dHNbMF0pLCBnZXRVbmNvbXByZXNzZWRLZXkoaW5wdXRzWzFdKSwgZ2V0VW5jb21wcmVzc2VkS2V5KGlucHV0c1syXSldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5TmFtZSh0cmlwbGU6IFRyaXBsZTxCSVAzMkludGVyZmFjZT4sIGs6IEJJUDMySW50ZXJmYWNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXVt0cmlwbGUuaW5kZXhPZihrKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q29zaWduZXI8VD4oa2V5c2V0OiBUcmlwbGU8VD4sIHNpZ25lcjogVCk6IFQge1xuICBjb25zdCBlcSA9IChhOiBULCBiOiBUKSA9PiBhID09PSBiIHx8IChCdWZmZXIuaXNCdWZmZXIoYSkgJiYgQnVmZmVyLmlzQnVmZmVyKGIpICYmIGEuZXF1YWxzKGIpKTtcbiAgY29uc3QgW3VzZXIsIGJhY2t1cCwgYml0Z29dID0ga2V5c2V0O1xuICBpZiAoZXEoc2lnbmVyLCB1c2VyKSkge1xuICAgIHJldHVybiBiaXRnbztcbiAgfVxuICBpZiAoZXEoc2lnbmVyLCBiYWNrdXApKSB7XG4gICAgcmV0dXJuIGJpdGdvO1xuICB9XG4gIGlmIChlcShzaWduZXIsIGJpdGdvKSkge1xuICAgIHJldHVybiB1c2VyO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgc2lnbmVyIG5vdCBpbiBwdWJrZXlzYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0V2FsbGV0S2V5cygpOiBSb290V2FsbGV0S2V5cyB7XG4gIHJldHVybiBuZXcgUm9vdFdhbGxldEtleXMoZ2V0S2V5VHJpcGxlKCdkZWZhdWx0JykpO1xufVxuIl19
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import { BIP32Interface } from 'bip32';
|
|
1
|
+
import { BIP32Interface } from '@bitgo-beta/secp256k1';
|
|
3
2
|
import { Network } from '../networks';
|
|
4
3
|
import { ChainCode, NonWitnessWalletUnspent, outputScripts, RootWalletKeys, Unspent, UnspentWithPrevTx, UtxoTransaction, WalletUnspent } from '../bitgo';
|
|
5
|
-
export
|
|
4
|
+
export type InputType = outputScripts.ScriptType2Of3;
|
|
6
5
|
export declare function mockPrevTx(vout: number, outputScript: Buffer, value: bigint, network: Network): UtxoTransaction<bigint>;
|
|
7
6
|
export declare const replayProtectionKeyPair: BIP32Interface;
|
|
8
7
|
export declare function isReplayProtectionUnspent<TNumber extends bigint | number>(u: Unspent<TNumber>, network: Network): boolean;
|
|
@@ -17,5 +16,5 @@ export declare function mockWalletUnspent<TNumber extends number | bigint>(netwo
|
|
|
17
16
|
vout?: number;
|
|
18
17
|
id?: string;
|
|
19
18
|
}): WalletUnspent<TNumber> | NonWitnessWalletUnspent<TNumber>;
|
|
20
|
-
export declare function mockUnspents<TNumber extends number | bigint>(rootWalletKeys: RootWalletKeys, inputScriptTypes: InputType[], testOutputAmount: TNumber, network: Network): WalletUnspent<TNumber>[];
|
|
19
|
+
export declare function mockUnspents<TNumber extends number | bigint>(rootWalletKeys: RootWalletKeys, inputScriptTypes: (InputType | outputScripts.ScriptTypeP2shP2pk)[], testOutputAmount: TNumber, network: Network): (Unspent<TNumber> | WalletUnspent<TNumber>)[];
|
|
21
20
|
//# sourceMappingURL=mock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/testutil/mock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/testutil/mock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAc,OAAO,EAAY,MAAM,aAAa,CAAC;AAE5D,OAAO,EACL,SAAS,EAOT,uBAAuB,EACvB,aAAa,EACb,cAAc,EAEd,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,aAAa,EACd,MAAM,UAAU,CAAC;AAMlB,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC;AAErD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,eAAe,CAAC,MAAM,CAAC,CA6BzB;AAED,eAAO,MAAM,uBAAuB,gBAA8B,CAAC;AAGnE,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACvE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAET;AAED,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACzE,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,EAAE,GAA6B,EAAE,IAAQ,EAAE,GAAE;IAAE,GAAG,CAAC,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACxF,iBAAiB,CAAC,OAAO,CAAC,CAI5B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,EACE,KAAS,EACT,KAAS,EACT,IAA6B,EAC7B,IAAQ,EACR,EAAE,GACH,GAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/F,aAAa,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CA0B3D;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAClE,gBAAgB,EAAE,OAAO,EACzB,OAAO,EAAE,OAAO,GACf,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAgB/C"}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
exports.replayProtectionKeyPair = void 0;
|
|
4
|
+
exports.mockPrevTx = mockPrevTx;
|
|
5
|
+
exports.isReplayProtectionUnspent = isReplayProtectionUnspent;
|
|
6
|
+
exports.mockReplayProtectionUnspent = mockReplayProtectionUnspent;
|
|
7
|
+
exports.mockWalletUnspent = mockWalletUnspent;
|
|
8
|
+
exports.mockUnspents = mockUnspents;
|
|
9
|
+
const assert_1 = require("assert");
|
|
10
|
+
const __1 = require("..");
|
|
6
11
|
const networks_1 = require("../networks");
|
|
7
12
|
const bitgo_1 = require("../bitgo");
|
|
8
13
|
const address_1 = require("../address");
|
|
9
14
|
const outputScripts_1 = require("../bitgo/outputScripts");
|
|
10
15
|
const keys_1 = require("./keys");
|
|
11
16
|
function mockPrevTx(vout, outputScript, value, network) {
|
|
12
|
-
const psbtFromNetwork = bitgo_1.createPsbtForNetwork({ network });
|
|
13
|
-
const
|
|
14
|
-
const pubkey =
|
|
15
|
-
|
|
17
|
+
const psbtFromNetwork = (0, bitgo_1.createPsbtForNetwork)({ network });
|
|
18
|
+
const keypair = (0, keys_1.getKey)('mock-prev-tx');
|
|
19
|
+
const pubkey = keypair.publicKey;
|
|
20
|
+
(0, assert_1.ok)(keypair.privateKey);
|
|
21
|
+
const payment = __1.payments.p2pkh({ pubkey });
|
|
16
22
|
const destOutput = payment.output;
|
|
17
23
|
if (!destOutput)
|
|
18
24
|
throw new Error('Impossible, payment we just constructed has no output');
|
|
@@ -29,38 +35,35 @@ function mockPrevTx(vout, outputScript, value, network) {
|
|
|
29
35
|
index: 0,
|
|
30
36
|
witnessUtxo: { script: destOutput, value: value * (BigInt(vout) + BigInt(1)) + BigInt(1000) },
|
|
31
37
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
// Don't require the prevTx for signing and finalizing for non-segwit input
|
|
39
|
+
(0, bitgo_1.withUnsafeNonSegwit)(psbtFromNetwork, () => {
|
|
40
|
+
psbtFromNetwork.signInput(0, keypair);
|
|
41
|
+
psbtFromNetwork.validateSignaturesOfAllInputs();
|
|
42
|
+
psbtFromNetwork.finalizeAllInputs();
|
|
35
43
|
});
|
|
36
|
-
psbtFromNetwork.validateSignaturesOfAllInputs();
|
|
37
|
-
psbtFromNetwork.finalizeAllInputs();
|
|
38
44
|
return psbtFromNetwork.extractTransaction();
|
|
39
45
|
}
|
|
40
|
-
exports.
|
|
41
|
-
|
|
42
|
-
const replayProtectionScriptPubKey = outputScripts_1.createOutputScriptP2shP2pk(exports.replayProtectionKeyPair.publicKey).scriptPubKey;
|
|
46
|
+
exports.replayProtectionKeyPair = (0, keys_1.getKey)('replay-protection');
|
|
47
|
+
const replayProtectionScriptPubKey = (0, outputScripts_1.createOutputScriptP2shP2pk)(exports.replayProtectionKeyPair.publicKey).scriptPubKey;
|
|
43
48
|
function isReplayProtectionUnspent(u, network) {
|
|
44
|
-
return u.address === address_1.fromOutputScript(replayProtectionScriptPubKey, network);
|
|
49
|
+
return u.address === (0, address_1.fromOutputScript)(replayProtectionScriptPubKey, network);
|
|
45
50
|
}
|
|
46
|
-
exports.isReplayProtectionUnspent = isReplayProtectionUnspent;
|
|
47
51
|
function mockReplayProtectionUnspent(network, value, { key = exports.replayProtectionKeyPair, vout = 0 } = {}) {
|
|
48
|
-
const outputScript = outputScripts_1.createOutputScriptP2shP2pk(key.publicKey).scriptPubKey;
|
|
52
|
+
const outputScript = (0, outputScripts_1.createOutputScriptP2shP2pk)(key.publicKey).scriptPubKey;
|
|
49
53
|
const prevTransaction = mockPrevTx(vout, outputScript, BigInt(value), network);
|
|
50
|
-
return { ...bitgo_1.fromOutputWithPrevTx(prevTransaction, vout), value };
|
|
54
|
+
return { ...(0, bitgo_1.fromOutputWithPrevTx)(prevTransaction, vout), value };
|
|
51
55
|
}
|
|
52
|
-
|
|
53
|
-
function mockWalletUnspent(network, value, { chain = 0, index = 0, keys = keys_1.getDefaultWalletKeys(), vout = 0, id, } = {}) {
|
|
56
|
+
function mockWalletUnspent(network, value, { chain = 0, index = 0, keys = (0, keys_1.getDefaultWalletKeys)(), vout = 0, id, } = {}) {
|
|
54
57
|
const derivedKeys = keys.deriveForChainAndIndex(chain, index);
|
|
55
|
-
const address = address_1.fromOutputScript(outputScripts_1.createOutputScript2of3(derivedKeys.publicKeys, bitgo_1.scriptTypeForChain(chain)).scriptPubKey, network);
|
|
58
|
+
const address = (0, address_1.fromOutputScript)((0, outputScripts_1.createOutputScript2of3)(derivedKeys.publicKeys, (0, bitgo_1.scriptTypeForChain)(chain)).scriptPubKey, network);
|
|
56
59
|
if (id && typeof id === 'string') {
|
|
57
60
|
return { id, address, chain, index, value };
|
|
58
61
|
}
|
|
59
62
|
else {
|
|
60
|
-
const prevTransaction = mockPrevTx(vout, outputScripts_1.createOutputScript2of3(derivedKeys.publicKeys, bitgo_1.scriptTypeForChain(chain), network).scriptPubKey, BigInt(value), network);
|
|
61
|
-
const unspent = bitgo_1.isSegwit(chain) || networks_1.getMainnet(network) === networks_1.networks.zcash
|
|
62
|
-
? bitgo_1.fromOutput(prevTransaction, vout)
|
|
63
|
-
: bitgo_1.fromOutputWithPrevTx(prevTransaction, vout);
|
|
63
|
+
const prevTransaction = mockPrevTx(vout, (0, outputScripts_1.createOutputScript2of3)(derivedKeys.publicKeys, (0, bitgo_1.scriptTypeForChain)(chain), network).scriptPubKey, BigInt(value), network);
|
|
64
|
+
const unspent = (0, bitgo_1.isSegwit)(chain) || (0, networks_1.getMainnet)(network) === networks_1.networks.zcash
|
|
65
|
+
? (0, bitgo_1.fromOutput)(prevTransaction, vout)
|
|
66
|
+
: (0, bitgo_1.fromOutputWithPrevTx)(prevTransaction, vout);
|
|
64
67
|
return {
|
|
65
68
|
...unspent,
|
|
66
69
|
chain,
|
|
@@ -69,18 +72,22 @@ function mockWalletUnspent(network, value, { chain = 0, index = 0, keys = keys_1
|
|
|
69
72
|
};
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
|
-
exports.mockWalletUnspent = mockWalletUnspent;
|
|
73
75
|
function mockUnspents(rootWalletKeys, inputScriptTypes, testOutputAmount, network) {
|
|
74
76
|
return inputScriptTypes.map((t, i) => {
|
|
75
77
|
if (bitgo_1.outputScripts.isScriptType2Of3(t)) {
|
|
76
78
|
return mockWalletUnspent(network, testOutputAmount, {
|
|
77
79
|
keys: rootWalletKeys,
|
|
78
|
-
chain: bitgo_1.getExternalChainCode(t),
|
|
80
|
+
chain: (0, bitgo_1.getExternalChainCode)(t),
|
|
81
|
+
vout: i,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
else if (t === bitgo_1.outputScripts.scriptTypeP2shP2pk) {
|
|
85
|
+
return mockReplayProtectionUnspent(network, testOutputAmount, {
|
|
86
|
+
key: exports.replayProtectionKeyPair,
|
|
79
87
|
vout: i,
|
|
80
88
|
});
|
|
81
89
|
}
|
|
82
90
|
throw new Error(`invalid input type ${t}`);
|
|
83
91
|
});
|
|
84
92
|
}
|
|
85
|
-
exports.mockUnspents = mockUnspents;
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBDQUEwQztBQUMxQyw4QkFBOEI7QUFDOUIsMENBQTREO0FBRTVELG9DQWVrQjtBQUNsQix3Q0FBOEM7QUFDOUMsMERBQTRGO0FBRTVGLGlDQUFzRDtBQUl0RCxTQUFnQixVQUFVLENBQ3hCLElBQVksRUFDWixZQUFvQixFQUNwQixLQUFhLEVBQ2IsT0FBZ0I7SUFFaEIsTUFBTSxlQUFlLEdBQUcsNEJBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTFELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDbEMsSUFBSSxDQUFDLFVBQVU7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFFMUYsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM1RDthQUFNO1lBQ0wsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENB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VUFBVSxFQUFFLDBCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFDL0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUNiLE9BQU8sQ0FDUixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQ1gsZ0JBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxxQkFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLG1CQUFRLENBQUMsS0FBSztZQUN2RCxDQUFDLENBQUMsa0JBQVUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO1lBQ25DLENBQUMsQ0FBQyw0QkFBb0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsT0FBTztZQUNMLEdBQUcsT0FBTztZQUNWLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztTQUNOLENBQUM7S0FDSDtBQUNILENBQUM7QUFwQ0QsOENBb0NDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixjQUE4QixFQUM5QixnQkFBNkIsRUFDN0IsZ0JBQXlCLEVBQ3pCLE9BQWdCO0lBRWhCLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBMEIsRUFBRTtRQUMzRCxJQUFJLHFCQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckMsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2xELElBQUksRUFBRSxjQUFjO2dCQUNwQixLQUFLLEVBQUUsNEJBQW9CLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsQ0FBQzthQUNSLENBQUMsQ0FBQztTQUNKO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFoQkQsb0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdiaXAzMic7XG5pbXBvcnQgKiBhcyBub2JsZSBmcm9tICdAbm9ibGUvc2VjcDI1NmsxJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnLi4nO1xuaW1wb3J0IHsgZ2V0TWFpbm5ldCwgTmV0d29yaywgbmV0d29ya3MgfSBmcm9tICcuLi9uZXR3b3Jrcyc7XG5cbmltcG9ydCB7XG4gIENoYWluQ29kZSxcbiAgY3JlYXRlUHNidEZvck5ldHdvcmssXG4gIGZyb21PdXRwdXQsXG4gIGZyb21PdXRwdXRXaXRoUHJldlR4LFxuICBnZXRFeHRlcm5hbENoYWluQ29kZSxcbiAgaXNTZWd3aXQsXG4gIE5vbldpdG5lc3NXYWxsZXRVbnNwZW50LFxuICBvdXRwdXRTY3JpcHRzLFxuICBSb290V2FsbGV0S2V5cyxcbiAgc2NyaXB0VHlwZUZvckNoYWluLFxuICBVbnNwZW50LFxuICBVbnNwZW50V2l0aFByZXZUeCxcbiAgVXR4b1RyYW5zYWN0aW9uLFxuICBXYWxsZXRVbnNwZW50LFxufSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBmcm9tT3V0cHV0U2NyaXB0IH0gZnJvbSAnLi4vYWRkcmVzcyc7XG5pbXBvcnQgeyBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzLCBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayB9IGZyb20gJy4uL2JpdGdvL291dHB1dFNjcmlwdHMnO1xuXG5pbXBvcnQgeyBnZXREZWZhdWx0V2FsbGV0S2V5cywgZ2V0S2V5IH0gZnJvbSAnLi9rZXlzJztcblxuZXhwb3J0IHR5cGUgSW5wdXRUeXBlID0gb3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mMztcblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQcmV2VHgoXG4gIHZvdXQ6IG51bWJlcixcbiAgb3V0cHV0U2NyaXB0OiBCdWZmZXIsXG4gIHZhbHVlOiBiaWdpbnQsXG4gIG5ldHdvcms6IE5ldHdvcmtcbik6IFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+IHtcbiAgY29uc3QgcHNidEZyb21OZXR3b3JrID0gY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrIH0pO1xuXG4gIGNvbnN0IHByaXZLZXkgPSBub2JsZS51dGlscy5yYW5kb21Qcml2YXRlS2V5KCk7XG4gIGNvbnN0IHB1YmtleSA9IEJ1ZmZlci5mcm9tKG5vYmxlLmdldFB1YmxpY0tleShwcml2S2V5LCB0cnVlKSk7XG4gIGNvbnN0IHBheW1lbnQgPSB1dHhvbGliLnBheW1lbnRzLnAyd3BraCh7IHB1YmtleSB9KTtcbiAgY29uc3QgZGVzdE91dHB1dCA9IHBheW1lbnQub3V0cHV0O1xuICBpZiAoIWRlc3RPdXRwdXQpIHRocm93IG5ldyBFcnJvcignSW1wb3NzaWJsZSwgcGF5bWVudCB3ZSBqdXN0IGNvbnN0cnVjdGVkIGhhcyBubyBvdXRwdXQnKTtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDw9IHZvdXQ7IGluZGV4KyspIHtcbiAgICBpZiAoaW5kZXggPT09IHZvdXQpIHtcbiAgICAgIHBzYnRGcm9tTmV0d29yay5hZGRPdXRwdXQoeyBzY3JpcHQ6IG91dHB1dFNjcmlwdCwgdmFsdWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBzYnRGcm9tTmV0d29yay5hZGRPdXRwdXQoeyBzY3JpcHQ6IGRlc3RPdXRwdXQsIHZhbHVlIH0pO1xuICAgIH1cbiAgfVxuICBwc2J0RnJvbU5ldHdvcmsuYWRkSW5wdXQoe1xuICAgIGhhc2g6IEJ1ZmZlci5hbGxvYygzMiwgMHgwMSksXG4gICAgaW5kZXg6IDAsXG4gICAgd2l0bmVzc1V0eG86IHsgc2NyaXB0OiBkZXN0T3V0cHV0LCB2YWx1ZTogdmFsdWUgKiAoQmlnSW50KHZvdXQpICsgQmlnSW50KDEpKSArIEJpZ0ludCgxMDAwKSB9LFxuICB9KTtcbiAgcHNidEZyb21OZXR3b3JrLnNpZ25JbnB1dCgwLCB7XG4gICAgcHVibGljS2V5OiBwdWJrZXksXG4gICAgc2lnbjogKGhhc2g6IEJ1ZmZlciwgbG93Uj86IGJvb2xlYW4pID0+XG4gICAgICBCdWZmZXIuZnJvbShub2JsZS5zaWduU3luYyhoYXNoLCBwcml2S2V5LCB7IGNhbm9uaWNhbDogIWxvd1IsIGRlcjogZmFsc2UgfSkpLFxuICB9KTtcbiAgcHNidEZyb21OZXR3b3JrLnZhbGlkYXRlU2lnbmF0dXJlc09mQWxsSW5wdXRzKCk7XG4gIHBzYnRGcm9tTmV0d29yay5maW5hbGl6ZUFsbElucHV0cygpO1xuICByZXR1cm4gcHNidEZyb21OZXR3b3JrLmV4dHJhY3RUcmFuc2FjdGlvbigpIGFzIFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgcmVwbGF5UHJvdGVjdGlvbktleVBhaXIgPSBnZXRLZXkoJ3JlcGxheS1wcm90ZWN0aW9uJyk7XG5jb25zdCByZXBsYXlQcm90ZWN0aW9uU2NyaXB0UHViS2V5ID0gY3JlYXRlT3V0cHV0U2NyaXB0UDJzaFAycGsocmVwbGF5UHJvdGVjdGlvbktleVBhaXIucHVibGljS2V5KS5zY3JpcHRQdWJLZXk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcGxheVByb3RlY3Rpb25VbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBiaWdpbnQgfCBudW1iZXI+KFxuICB1OiBVbnNwZW50PFROdW1iZXI+LFxuICBuZXR3b3JrOiBOZXR3b3JrXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHUuYWRkcmVzcyA9PT0gZnJvbU91dHB1dFNjcmlwdChyZXBsYXlQcm90ZWN0aW9uU2NyaXB0UHViS2V5LCBuZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tSZXBsYXlQcm90ZWN0aW9uVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgbmV0d29yazogTmV0d29yayxcbiAgdmFsdWU6IFROdW1iZXIsXG4gIHsga2V5ID0gcmVwbGF5UHJvdGVjdGlvbktleVBhaXIsIHZvdXQgPSAwIH06IHsga2V5PzogQklQMzJJbnRlcmZhY2U7IHZvdXQ/OiBudW1iZXIgfSA9IHt9XG4pOiBVbnNwZW50V2l0aFByZXZUeDxUTnVtYmVyPiB7XG4gIGNvbnN0IG91dHB1dFNjcmlwdCA9IGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKGtleS5wdWJsaWNLZXkpLnNjcmlwdFB1YktleTtcbiAgY29uc3QgcHJldlRyYW5zYWN0aW9uID0gbW9ja1ByZXZUeCh2b3V0LCBvdXRwdXRTY3JpcHQsIEJpZ0ludCh2YWx1ZSksIG5ldHdvcmspO1xuICByZXR1cm4geyAuLi5mcm9tT3V0cHV0V2l0aFByZXZUeChwcmV2VHJhbnNhY3Rpb24sIHZvdXQpLCB2YWx1ZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1dhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHZhbHVlOiBUTnVtYmVyLFxuICB7XG4gICAgY2hhaW4gPSAwLFxuICAgIGluZGV4ID0gMCxcbiAgICBrZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKSxcbiAgICB2b3V0ID0gMCxcbiAgICBpZCxcbiAgfTogeyBjaGFpbj86IENoYWluQ29kZTsgaW5kZXg/OiBudW1iZXI7IGtleXM/OiBSb290V2FsbGV0S2V5czsgdm91dD86IG51bWJlcjsgaWQ/OiBzdHJpbmcgfSA9IHt9XG4pOiBXYWxsZXRVbnNwZW50PFROdW1iZXI+IHwgTm9uV2l0bmVzc1dhbGxldFVuc3BlbnQ8VE51bWJlcj4ge1xuICBjb25zdCBkZXJpdmVkS2V5cyA9IGtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpO1xuICBjb25zdCBhZGRyZXNzID0gZnJvbU91dHB1dFNjcmlwdChcbiAgICBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKGRlcml2ZWRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbikpLnNjcmlwdFB1YktleSxcbiAgICBuZXR3b3JrXG4gICk7XG4gIGlmIChpZCAmJiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHsgaWQsIGFkZHJlc3MsIGNoYWluLCBpbmRleCwgdmFsdWUgfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwcmV2VHJhbnNhY3Rpb24gPSBtb2NrUHJldlR4KFxuICAgICAgdm91dCxcbiAgICAgIGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoZGVyaXZlZEtleXMucHVibGljS2V5cywgc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKSwgbmV0d29yaykuc2NyaXB0UHViS2V5LFxuICAgICAgQmlnSW50KHZhbHVlKSxcbiAgICAgIG5ldHdvcmtcbiAgICApO1xuICAgIGNvbnN0IHVuc3BlbnQgPVxuICAgICAgaXNTZWd3aXQoY2hhaW4pIHx8IGdldE1haW5uZXQobmV0d29yaykgPT09IG5ldHdvcmtzLnpjYXNoXG4gICAgICAgID8gZnJvbU91dHB1dChwcmV2VHJhbnNhY3Rpb24sIHZvdXQpXG4gICAgICAgIDogZnJvbU91dHB1dFdpdGhQcmV2VHgocHJldlRyYW5zYWN0aW9uLCB2b3V0KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udW5zcGVudCxcbiAgICAgIGNoYWluLFxuICAgICAgaW5kZXgsXG4gICAgICB2YWx1ZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVW5zcGVudHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgaW5wdXRTY3JpcHRUeXBlczogSW5wdXRUeXBlW10sXG4gIHRlc3RPdXRwdXRBbW91bnQ6IFROdW1iZXIsXG4gIG5ldHdvcms6IE5ldHdvcmtcbik6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gIHJldHVybiBpbnB1dFNjcmlwdFR5cGVzLm1hcCgodCwgaSk6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj4gPT4ge1xuICAgIGlmIChvdXRwdXRTY3JpcHRzLmlzU2NyaXB0VHlwZTJPZjModCkpIHtcbiAgICAgIHJldHVybiBtb2NrV2FsbGV0VW5zcGVudChuZXR3b3JrLCB0ZXN0T3V0cHV0QW1vdW50LCB7XG4gICAgICAgIGtleXM6IHJvb3RXYWxsZXRLZXlzLFxuICAgICAgICBjaGFpbjogZ2V0RXh0ZXJuYWxDaGFpbkNvZGUodCksXG4gICAgICAgIHZvdXQ6IGksXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGlucHV0IHR5cGUgJHt0fWApO1xuICB9KTtcbn1cbiJdfQ==
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTZCQSxnQ0FrQ0M7QUFLRCw4REFLQztBQUVELGtFQVFDO0FBRUQsOENBb0NDO0FBRUQsb0NBcUJDO0FBaEpELG1DQUFzQztBQUV0QywwQkFBOEI7QUFDOUIsMENBQTREO0FBRTVELG9DQWdCa0I7QUFDbEIsd0NBQThDO0FBQzlDLDBEQUE0RjtBQUU1RixpQ0FBc0Q7QUFJdEQsU0FBZ0IsVUFBVSxDQUN4QixJQUFZLEVBQ1osWUFBb0IsRUFDcEIsS0FBYSxFQUNiLE9BQWdCO0lBRWhCLE1BQU0sZUFBZSxHQUFHLElBQUEsNEJBQW9CLEVBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTFELE1BQU0sT0FBTyxHQUFHLElBQUEsYUFBTSxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDakMsSUFBQSxXQUFNLEVBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sT0FBTyxHQUFHLFlBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDbEMsSUFBSSxDQUFDLFVBQVU7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFFMUYsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzNDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25CLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQzthQUFNLENB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TUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvayBhcyBhc3NlcnQgfSBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgcGF5bWVudHMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBnZXRNYWlubmV0LCBOZXR3b3JrLCBuZXR3b3JrcyB9IGZyb20gJy4uL25ldHdvcmtzJztcblxuaW1wb3J0IHtcbiAgQ2hhaW5Db2RlLFxuICB3aXRoVW5zYWZlTm9uU2Vnd2l0LFxuICBjcmVhdGVQc2J0Rm9yTmV0d29yayxcbiAgZnJvbU91dHB1dCxcbiAgZnJvbU91dHB1dFdpdGhQcmV2VHgsXG4gIGdldEV4dGVybmFsQ2hhaW5Db2RlLFxuICBpc1NlZ3dpdCxcbiAgTm9uV2l0bmVzc1dhbGxldFVuc3BlbnQsXG4gIG91dHB1dFNjcmlwdHMsXG4gIFJvb3RXYWxsZXRLZXlzLFxuICBzY3JpcHRUeXBlRm9yQ2hhaW4sXG4gIFVuc3BlbnQsXG4gIFVuc3BlbnRXaXRoUHJldlR4LFxuICBVdHhvVHJhbnNhY3Rpb24sXG4gIFdhbGxldFVuc3BlbnQsXG59IGZyb20gJy4uL2JpdGdvJztcbmltcG9ydCB7IGZyb21PdXRwdXRTY3JpcHQgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMsIGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrIH0gZnJvbSAnLi4vYml0Z28vb3V0cHV0U2NyaXB0cyc7XG5cbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRLZXlzLCBnZXRLZXkgfSBmcm9tICcuL2tleXMnO1xuXG5leHBvcnQgdHlwZSBJbnB1dFR5cGUgPSBvdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1ByZXZUeChcbiAgdm91dDogbnVtYmVyLFxuICBvdXRwdXRTY3JpcHQ6IEJ1ZmZlcixcbiAgdmFsdWU6IGJpZ2ludCxcbiAgbmV0d29yazogTmV0d29ya1xuKTogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4ge1xuICBjb25zdCBwc2J0RnJvbU5ldHdvcmsgPSBjcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG5cbiAgY29uc3Qga2V5cGFpciA9IGdldEtleSgnbW9jay1wcmV2LXR4Jyk7XG4gIGNvbnN0IHB1YmtleSA9IGtleXBhaXIucHVibGljS2V5O1xuICBhc3NlcnQoa2V5cGFpci5wcml2YXRlS2V5KTtcbiAgY29uc3QgcGF5bWVudCA9IHBheW1lbnRzLnAycGtoKHsgcHVia2V5IH0pO1xuICBjb25zdCBkZXN0T3V0cHV0ID0gcGF5bWVudC5vdXRwdXQ7XG4gIGlmICghZGVzdE91dHB1dCkgdGhyb3cgbmV3IEVycm9yKCdJbXBvc3NpYmxlLCBwYXltZW50IHdlIGp1c3QgY29uc3RydWN0ZWQgaGFzIG5vIG91dHB1dCcpO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPD0gdm91dDsgaW5kZXgrKykge1xuICAgIGlmIChpbmRleCA9PT0gdm91dCkge1xuICAgICAgcHNidEZyb21OZXR3b3JrLmFkZE91dHB1dCh7IHNjcmlwdDogb3V0cHV0U2NyaXB0LCB2YWx1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHNidEZyb21OZXR3b3JrLmFkZE91dHB1dCh7IHNjcmlwdDogZGVzdE91dHB1dCwgdmFsdWUgfSk7XG4gICAgfVxuICB9XG4gIHBzYnRGcm9tTmV0d29yay5hZGRJbnB1dCh7XG4gICAgaGFzaDogQnVmZmVyLmFsbG9jKDMyLCAweDAxKSxcbiAgICBpbmRleDogMCxcbiAgICB3aXRuZXNzVXR4bzogeyBzY3JpcHQ6IGRlc3RPdXRwdXQsIHZhbHVlOiB2YWx1ZSAqIChCaWdJbnQodm91dCkgKyBCaWdJbnQoMSkpICsgQmlnSW50KDEwMDApIH0sXG4gIH0pO1xuICAvLyBEb24ndCByZXF1aXJlIHRoZSBwcmV2VHggZm9yIHNpZ25pbmcgYW5kIGZpbmFsaXppbmcgZm9yIG5vbi1zZWd3aXQgaW5wdXRcbiAgd2l0aFVuc2FmZU5vblNlZ3dpdChwc2J0RnJvbU5ldHdvcmssICgpID0+IHtcbiAgICBwc2J0RnJvbU5ldHdvcmsuc2lnbklucHV0KDAsIGtleXBhaXIpO1xuICAgIHBzYnRGcm9tTmV0d29yay52YWxpZGF0ZVNpZ25hdHVyZXNPZkFsbElucHV0cygpO1xuICAgIHBzYnRGcm9tTmV0d29yay5maW5hbGl6ZUFsbElucHV0cygpO1xuICB9KTtcbiAgcmV0dXJuIHBzYnRGcm9tTmV0d29yay5leHRyYWN0VHJhbnNhY3Rpb24oKTtcbn1cblxuZXhwb3J0IGNvbnN0IHJlcGxheVByb3RlY3Rpb25LZXlQYWlyID0gZ2V0S2V5KCdyZXBsYXktcHJvdGVjdGlvbicpO1xuY29uc3QgcmVwbGF5UHJvdGVjdGlvblNjcmlwdFB1YktleSA9IGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHJlcGxheVByb3RlY3Rpb25LZXlQYWlyLnB1YmxpY0tleSkuc2NyaXB0UHViS2V5O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXBsYXlQcm90ZWN0aW9uVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgYmlnaW50IHwgbnVtYmVyPihcbiAgdTogVW5zcGVudDxUTnVtYmVyPixcbiAgbmV0d29yazogTmV0d29ya1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiB1LmFkZHJlc3MgPT09IGZyb21PdXRwdXRTY3JpcHQocmVwbGF5UHJvdGVjdGlvblNjcmlwdFB1YktleSwgbmV0d29yayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHZhbHVlOiBUTnVtYmVyLFxuICB7IGtleSA9IHJlcGxheVByb3RlY3Rpb25LZXlQYWlyLCB2b3V0ID0gMCB9OiB7IGtleT86IEJJUDMySW50ZXJmYWNlOyB2b3V0PzogbnVtYmVyIH0gPSB7fVxuKTogVW5zcGVudFdpdGhQcmV2VHg8VE51bWJlcj4ge1xuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayhrZXkucHVibGljS2V5KS5zY3JpcHRQdWJLZXk7XG4gIGNvbnN0IHByZXZUcmFuc2FjdGlvbiA9IG1vY2tQcmV2VHgodm91dCwgb3V0cHV0U2NyaXB0LCBCaWdJbnQodmFsdWUpLCBuZXR3b3JrKTtcbiAgcmV0dXJuIHsgLi4uZnJvbU91dHB1dFdpdGhQcmV2VHgocHJldlRyYW5zYWN0aW9uLCB2b3V0KSwgdmFsdWUgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tXYWxsZXRVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICB2YWx1ZTogVE51bWJlcixcbiAge1xuICAgIGNoYWluID0gMCxcbiAgICBpbmRleCA9IDAsXG4gICAga2V5cyA9IGdldERlZmF1bHRXYWxsZXRLZXlzKCksXG4gICAgdm91dCA9IDAsXG4gICAgaWQsXG4gIH06IHsgY2hhaW4/OiBDaGFpbkNvZGU7IGluZGV4PzogbnVtYmVyOyBrZXlzPzogUm9vdFdhbGxldEtleXM7IHZvdXQ/OiBudW1iZXI7IGlkPzogc3RyaW5nIH0gPSB7fVxuKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB8IE5vbldpdG5lc3NXYWxsZXRVbnNwZW50PFROdW1iZXI+IHtcbiAgY29uc3QgZGVyaXZlZEtleXMgPSBrZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KTtcbiAgY29uc3QgYWRkcmVzcyA9IGZyb21PdXRwdXRTY3JpcHQoXG4gICAgY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhkZXJpdmVkS2V5cy5wdWJsaWNLZXlzLCBzY3JpcHRUeXBlRm9yQ2hhaW4oY2hhaW4pKS5zY3JpcHRQdWJLZXksXG4gICAgbmV0d29ya1xuICApO1xuICBpZiAoaWQgJiYgdHlwZW9mIGlkID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7IGlkLCBhZGRyZXNzLCBjaGFpbiwgaW5kZXgsIHZhbHVlIH07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcHJldlRyYW5zYWN0aW9uID0gbW9ja1ByZXZUeChcbiAgICAgIHZvdXQsXG4gICAgICBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKGRlcml2ZWRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbiksIG5ldHdvcmspLnNjcmlwdFB1YktleSxcbiAgICAgIEJpZ0ludCh2YWx1ZSksXG4gICAgICBuZXR3b3JrXG4gICAgKTtcbiAgICBjb25zdCB1bnNwZW50ID1cbiAgICAgIGlzU2Vnd2l0KGNoYWluKSB8fCBnZXRNYWlubmV0KG5ldHdvcmspID09PSBuZXR3b3Jrcy56Y2FzaFxuICAgICAgICA/IGZyb21PdXRwdXQocHJldlRyYW5zYWN0aW9uLCB2b3V0KVxuICAgICAgICA6IGZyb21PdXRwdXRXaXRoUHJldlR4KHByZXZUcmFuc2FjdGlvbiwgdm91dCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnVuc3BlbnQsXG4gICAgICBjaGFpbixcbiAgICAgIGluZGV4LFxuICAgICAgdmFsdWUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1Vuc3BlbnRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIGlucHV0U2NyaXB0VHlwZXM6IChJbnB1dFR5cGUgfCBvdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGVQMnNoUDJwaylbXSxcbiAgdGVzdE91dHB1dEFtb3VudDogVE51bWJlcixcbiAgbmV0d29yazogTmV0d29ya1xuKTogKFVuc3BlbnQ8VE51bWJlcj4gfCBXYWxsZXRVbnNwZW50PFROdW1iZXI+KVtdIHtcbiAgcmV0dXJuIGlucHV0U2NyaXB0VHlwZXMubWFwKCh0LCBpKTogVW5zcGVudDxUTnVtYmVyPiA9PiB7XG4gICAgaWYgKG91dHB1dFNjcmlwdHMuaXNTY3JpcHRUeXBlMk9mMyh0KSkge1xuICAgICAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50KG5ldHdvcmssIHRlc3RPdXRwdXRBbW91bnQsIHtcbiAgICAgICAga2V5czogcm9vdFdhbGxldEtleXMsXG4gICAgICAgIGNoYWluOiBnZXRFeHRlcm5hbENoYWluQ29kZSh0KSxcbiAgICAgICAgdm91dDogaSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodCA9PT0gb3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlUDJzaFAycGspIHtcbiAgICAgIHJldHVybiBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQobmV0d29yaywgdGVzdE91dHB1dEFtb3VudCwge1xuICAgICAgICBrZXk6IHJlcGxheVByb3RlY3Rpb25LZXlQYWlyLFxuICAgICAgICB2b3V0OiBpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBpbnB1dCB0eXBlICR7dH1gKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import { ScriptType, ScriptType2Of3 } from '../bitgo/outputScripts';
|
|
2
|
-
import { KeyName, RootWalletKeys, Unspent, UtxoPsbt, UtxoTransaction
|
|
2
|
+
import { KeyName, RootWalletKeys, Unspent, UtxoPsbt, UtxoTransaction } from '../bitgo';
|
|
3
3
|
import { Network } from '../networks';
|
|
4
4
|
/**
|
|
5
5
|
* input script type and value.
|
|
6
6
|
* use p2trMusig2 for p2trMusig2 script path.
|
|
7
7
|
* use taprootKeyPathSpend for p2trMusig2 key path.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
10
|
-
export
|
|
9
|
+
export type InputScriptType = ScriptType | 'taprootKeyPathSpend';
|
|
10
|
+
export type OutputScriptType = ScriptType2Of3;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* input script type and value
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export type Input = {
|
|
15
15
|
scriptType: InputScriptType;
|
|
16
16
|
value: bigint;
|
|
17
|
-
}
|
|
17
|
+
};
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
* set isInternalAddress=true for internal output address
|
|
19
|
+
* Set isInternalAddress=true for internal output address
|
|
21
20
|
*/
|
|
22
|
-
export
|
|
23
|
-
address?: string;
|
|
24
|
-
scriptType?: OutputScriptType;
|
|
21
|
+
export type Output = {
|
|
25
22
|
value: bigint;
|
|
26
23
|
isInternalAddress?: boolean;
|
|
27
|
-
}
|
|
24
|
+
} & ({
|
|
25
|
+
scriptType: OutputScriptType;
|
|
26
|
+
} | {
|
|
27
|
+
address: string;
|
|
28
|
+
} | {
|
|
29
|
+
script: string;
|
|
30
|
+
});
|
|
28
31
|
/**
|
|
29
32
|
* array of supported input script types.
|
|
30
33
|
* use p2trMusig2 for p2trMusig2 script path.
|
|
@@ -53,19 +56,41 @@ export declare function getSigners(inputType: InputScriptType): {
|
|
|
53
56
|
* signs with first or second signature for single input.
|
|
54
57
|
* p2shP2pk is signed only with first sign.
|
|
55
58
|
*/
|
|
56
|
-
export declare function signPsbtInput(psbt: UtxoPsbt, input: Input, inputIndex: number, rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned'
|
|
59
|
+
export declare function signPsbtInput(psbt: UtxoPsbt, input: Input, inputIndex: number, rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned', params?: {
|
|
60
|
+
signers?: {
|
|
61
|
+
signerName: KeyName;
|
|
62
|
+
cosignerName?: KeyName;
|
|
63
|
+
};
|
|
64
|
+
deterministic?: boolean;
|
|
65
|
+
skipNonWitnessUtxo?: boolean;
|
|
66
|
+
}): void;
|
|
57
67
|
/**
|
|
58
68
|
* signs with first or second signature for all inputs.
|
|
59
69
|
* p2shP2pk is signed only with first sign.
|
|
60
70
|
*/
|
|
61
|
-
export declare function signAllPsbtInputs(psbt: UtxoPsbt, inputs: Input[], rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned'
|
|
71
|
+
export declare function signAllPsbtInputs(psbt: UtxoPsbt, inputs: Input[], rootWalletKeys: RootWalletKeys, sign: 'halfsigned' | 'fullsigned', params?: {
|
|
72
|
+
signers?: {
|
|
73
|
+
signerName: KeyName;
|
|
74
|
+
cosignerName?: KeyName;
|
|
75
|
+
};
|
|
76
|
+
deterministic?: boolean;
|
|
77
|
+
skipNonWitnessUtxo?: boolean;
|
|
78
|
+
}): void;
|
|
62
79
|
/**
|
|
63
80
|
* construct psbt for given inputs, outputs, network and root wallet keys.
|
|
64
81
|
*/
|
|
65
|
-
export declare function constructPsbt(inputs: Input[], outputs: Output[], network: Network, rootWalletKeys: RootWalletKeys, sign: 'unsigned' | 'halfsigned' | 'fullsigned'
|
|
82
|
+
export declare function constructPsbt(inputs: Input[], outputs: Output[], network: Network, rootWalletKeys: RootWalletKeys, sign: 'unsigned' | 'halfsigned' | 'fullsigned', params?: {
|
|
83
|
+
signers?: {
|
|
84
|
+
signerName: KeyName;
|
|
85
|
+
cosignerName?: KeyName;
|
|
86
|
+
};
|
|
87
|
+
deterministic?: boolean;
|
|
88
|
+
skipNonWitnessUtxo?: boolean;
|
|
89
|
+
addGlobalXPubs?: boolean;
|
|
90
|
+
}): UtxoPsbt;
|
|
66
91
|
/**
|
|
67
92
|
* Verifies signatures of fully signed tx (with taproot key path support).
|
|
68
93
|
* NOTE: taproot key path tx can only be built and signed with PSBT.
|
|
69
94
|
*/
|
|
70
|
-
export declare function verifyFullySignedSignatures(tx: UtxoTransaction<bigint>, unspents:
|
|
95
|
+
export declare function verifyFullySignedSignatures(tx: UtxoTransaction<bigint>, unspents: Unspent<bigint>[], walletKeys: RootWalletKeys, signer: KeyName, cosigner: KeyName): boolean;
|
|
71
96
|
//# sourceMappingURL=psbt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../src/testutil/psbt.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EACV,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../src/testutil/psbt.ts"],"names":[],"mappings":"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"}
|