@bitgo-beta/sdk-coin-kaspa 0.0.1-alpha.6 → 0.0.1-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/lib/transaction.d.ts +28 -0
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +56 -1
- package/dist/src/lib/transactionBuilder.d.ts +17 -1
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +18 -1
- package/dist/src/lib/transactionBuilderFactory.d.ts +8 -3
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +14 -4
- package/dist/test/unit/transaction.test.js +86 -1
- package/dist/test/unit/transactionBuilder.test.js +42 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -6,6 +6,34 @@ export declare class Transaction extends BaseTransaction {
|
|
|
6
6
|
/** @inheritDoc */
|
|
7
7
|
get id(): string;
|
|
8
8
|
get txData(): KaspaTransactionData;
|
|
9
|
+
/**
|
|
10
|
+
* Get the transaction fee in sompi.
|
|
11
|
+
* If fee was explicitly set, returns that. Otherwise computes from inputs - outputs.
|
|
12
|
+
*/
|
|
13
|
+
get getFee(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the signable payload for TSS/MPC signing.
|
|
16
|
+
*
|
|
17
|
+
* For Kaspa, each input has its own sighash (BIP-143-like scheme with Blake2b).
|
|
18
|
+
* This returns the sighash for the first input, which is what TSS signs.
|
|
19
|
+
* For multi-input transactions, all inputs share the same key so the same
|
|
20
|
+
* Schnorr signature is applied to each input's individual sighash in addSignature().
|
|
21
|
+
*
|
|
22
|
+
* @see ADA's Transaction.signablePayload for the equivalent pattern
|
|
23
|
+
*/
|
|
24
|
+
get signablePayload(): Buffer;
|
|
25
|
+
/**
|
|
26
|
+
* Apply a Schnorr signature produced by TSS/MPC signing to all inputs.
|
|
27
|
+
*
|
|
28
|
+
* In TSS flow, the keyserver signs the first input's sighash. Since each input
|
|
29
|
+
* has a different sighash, we re-sign each input individually using the
|
|
30
|
+
* x-only public key derived from the compressed public key.
|
|
31
|
+
*
|
|
32
|
+
* @param publicKey compressed secp256k1 public key (33 bytes hex)
|
|
33
|
+
* @param signature 64-byte Schnorr signature buffer (from TSS)
|
|
34
|
+
* @param sigHashType SigHash type (default: SIGHASH_ALL)
|
|
35
|
+
*/
|
|
36
|
+
addSignature(publicKey: string, signature: Buffer, sigHashType?: number): void;
|
|
9
37
|
/**
|
|
10
38
|
* Sign all inputs with the given private key using Schnorr signatures.
|
|
11
39
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGvE,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE5B,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB;IASvD,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,MAAM,IAAI,oBAAoB,CAEjC;IAED;;;;;OAKG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB,GAAG,IAAI;IAajE;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB,GAAG,OAAO;IAgBlG;;OAEG;IACH,kBAAkB,IAAI,sBAAsB;IA8B5C;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,MAAM,IAAI,oBAAoB;IAI9B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;IAKtD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,WAAW;IAK/E,kBAAkB;IAClB,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,kBAAkB;IAClB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAGhC"}
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGvE,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE5B,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB;IASvD,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,MAAM,IAAI,oBAAoB,CAEjC;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAanB;IAED;;;;;;;;;OASG;IACH,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED;;;;;;;;;;OAUG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB,GAAG,IAAI;IAY3F;;;;;OAKG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB,GAAG,IAAI;IAajE;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB,GAAG,OAAO;IAgBlG;;OAEG;IACH,kBAAkB,IAAI,sBAAsB;IA8B5C;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,MAAM,IAAI,oBAAoB;IAI9B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;IAKtD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,WAAW;IAK/E,kBAAkB;IAClB,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,kBAAkB;IAClB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAGhC"}
|
|
@@ -20,6 +20,61 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
20
20
|
get txData() {
|
|
21
21
|
return this._txData;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the transaction fee in sompi.
|
|
25
|
+
* If fee was explicitly set, returns that. Otherwise computes from inputs - outputs.
|
|
26
|
+
*/
|
|
27
|
+
get getFee() {
|
|
28
|
+
if (this._txData.fee) {
|
|
29
|
+
return this._txData.fee;
|
|
30
|
+
}
|
|
31
|
+
let totalIn = BigInt(0);
|
|
32
|
+
let totalOut = BigInt(0);
|
|
33
|
+
for (const input of this._txData.inputs) {
|
|
34
|
+
totalIn += BigInt(input.amount);
|
|
35
|
+
}
|
|
36
|
+
for (const output of this._txData.outputs) {
|
|
37
|
+
totalOut += BigInt(output.amount);
|
|
38
|
+
}
|
|
39
|
+
return (totalIn - totalOut).toString();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns the signable payload for TSS/MPC signing.
|
|
43
|
+
*
|
|
44
|
+
* For Kaspa, each input has its own sighash (BIP-143-like scheme with Blake2b).
|
|
45
|
+
* This returns the sighash for the first input, which is what TSS signs.
|
|
46
|
+
* For multi-input transactions, all inputs share the same key so the same
|
|
47
|
+
* Schnorr signature is applied to each input's individual sighash in addSignature().
|
|
48
|
+
*
|
|
49
|
+
* @see ADA's Transaction.signablePayload for the equivalent pattern
|
|
50
|
+
*/
|
|
51
|
+
get signablePayload() {
|
|
52
|
+
if (this._txData.inputs.length === 0) {
|
|
53
|
+
throw new Error('Cannot compute signablePayload: no inputs');
|
|
54
|
+
}
|
|
55
|
+
return (0, sighash_1.computeKaspaSigningHash)(this._txData, 0, sighash_1.SIGHASH_ALL);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Apply a Schnorr signature produced by TSS/MPC signing to all inputs.
|
|
59
|
+
*
|
|
60
|
+
* In TSS flow, the keyserver signs the first input's sighash. Since each input
|
|
61
|
+
* has a different sighash, we re-sign each input individually using the
|
|
62
|
+
* x-only public key derived from the compressed public key.
|
|
63
|
+
*
|
|
64
|
+
* @param publicKey compressed secp256k1 public key (33 bytes hex)
|
|
65
|
+
* @param signature 64-byte Schnorr signature buffer (from TSS)
|
|
66
|
+
* @param sigHashType SigHash type (default: SIGHASH_ALL)
|
|
67
|
+
*/
|
|
68
|
+
addSignature(publicKey, signature, sigHashType = sighash_1.SIGHASH_ALL) {
|
|
69
|
+
if (signature.length !== 64) {
|
|
70
|
+
throw new Error(`Expected 64-byte Schnorr signature, got ${signature.length}`);
|
|
71
|
+
}
|
|
72
|
+
for (let i = 0; i < this._txData.inputs.length; i++) {
|
|
73
|
+
// Each input gets the same signature format: 64-byte sig + sighash type byte
|
|
74
|
+
const sigWithType = Buffer.concat([signature, Buffer.from([sigHashType])]);
|
|
75
|
+
this._txData.inputs[i].signatureScript = sigWithType.toString('hex');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
23
78
|
/**
|
|
24
79
|
* Sign all inputs with the given private key using Schnorr signatures.
|
|
25
80
|
*
|
|
@@ -130,4 +185,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
130
185
|
}
|
|
131
186
|
}
|
|
132
187
|
exports.Transaction = Transaction;
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFpRjtBQUNqRixxREFBNEM7QUFFNUMsdUNBQWlFO0FBRWpFLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBRzlDLFlBQVksSUFBWSxFQUFFLE1BQTZCO1FBQ3JELEtBQUssQ0FBQyxFQUFFLElBQUksRUFBUyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLElBQUk7WUFDdkIsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsVUFBa0IsRUFBRSxjQUFzQixxQkFBVztRQUN4RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFBLGlDQUF1QixFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sR0FBRyxHQUFH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SUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLElBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUE5SUQsa0NBOElDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBlY2MgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgS2FzcGFUcmFuc2FjdGlvbkRhdGEsIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGNvbXB1dGVLYXNwYVNpZ25pbmdIYXNoLCBTSUdIQVNIX0FMTCB9IGZyb20gJy4vc2lnaGFzaCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfdHhEYXRhOiBLYXNwYVRyYW5zYWN0aW9uRGF0YTtcblxuICBjb25zdHJ1Y3Rvcihjb2luOiBzdHJpbmcsIHR4RGF0YT86IEthc3BhVHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgc3VwZXIoeyBjb2luIH0gYXMgYW55KTtcbiAgICB0aGlzLl90eERhdGEgPSB0eERhdGEgfHwge1xuICAgICAgdmVyc2lvbjogMCxcbiAgICAgIGlucHV0czogW10sXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eERhdGEuaWQgfHwgJyc7XG4gIH1cblxuICBnZXQgdHhEYXRhKCk6IEthc3BhVHJhbnNhY3Rpb25EYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fdHhEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYWxsIGlucHV0cyB3aXRoIHRoZSBnaXZlbiBwcml2YXRlIGtleSB1c2luZyBTY2hub3JyIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcml2YXRlS2V5IDMyLWJ5dGUgcHJpdmF0ZSBrZXkgYnVmZmVyXG4gICAqIEBwYXJhbSBzaWdIYXNoVHlwZSBTaWdIYXNoIHR5cGUgKGRlZmF1bHQ6IFNJR0hBU0hfQUxMID0gMHgwMSlcbiAgICovXG4gIHNpZ24ocHJpdmF0ZUtleTogQnVmZmVyLCBzaWdIYXNoVHlwZTogbnVtYmVyID0gU0lHSEFTSF9BTEwpOiB2b2lkIHtcbiAgICBpZiAocHJpdmF0ZUtleS5sZW5ndGggIT09IDMyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIDMyLWJ5dGUgcHJpdmF0ZSBrZXksIGdvdCAke3ByaXZhdGVLZXkubGVuZ3RofWApO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3R4RGF0YS5pbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHNpZ0hhc2ggPSBjb21wdXRlS2FzcGFTaWduaW5nSGFzaCh0aGlzLl90eERhdGEsIGksIHNpZ0hhc2hUeXBlKTtcbiAgICAgIGNvbnN0IHNpZyA9IGVjYy5zaWduU2Nobm9ycihzaWdIYXNoLCBwcml2YXRlS2V5KTtcbiAgICAgIC8vIDY1LWJ5dGUgc2lnbmF0dXJlOiA2NC1ieXRlIFNjaG5vcnIgc2lnICsgMS1ieXRlIHNpZ2hhc2ggdHlwZVxuICAgICAgY29uc3Qgc2lnV2l0aFR5cGUgPSBCdWZmZXIuY29uY2F0KFtCdWZmZXIuZnJvbShzaWcpLCBCdWZmZXIuZnJvbShbc2lnSGFzaFR5cGVdKV0pO1xuICAgICAgdGhpcy5fdHhEYXRhLmlucHV0c1tpXS5zaWduYXR1cmVTY3JpcHQgPSBzaWdXaXRoVHlwZS50b1N0cmluZygnaGV4Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmeSB0aGF0IGEgU2Nobm9yciBzaWduYXR1cmUgb24gYSBzcGVjaWZpYyBpbnB1dCBpcyB2YWxpZC5cbiAgICpcbiAgICogQHBhcmFtIHB1YmxpY0tleSAzMy1ieXRlIGNvbXByZXNzZWQgcHVibGljIGtleSAob3IgMzItYnl0ZSB4LW9ubHkpXG4gICAqIEBwYXJhbSBpbnB1dEluZGV4IEluZGV4IG9mIHRoZSBpbnB1dCB0byB2ZXJpZnlcbiAgICogQHBhcmFtIHNpZ0hhc2hUeXBlIFNpZ0hhc2ggdHlwZSB1c2VkIHdoZW4gc2lnbmluZ1xuICAgKi9cbiAgdmVyaWZ5U2lnbmF0dXJlKHB1YmxpY0tleTogQnVmZmVyLCBpbnB1dEluZGV4OiBudW1iZXIsIHNpZ0hhc2hUeXBlOiBudW1iZXIgPSBTSUdIQVNIX0FMTCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5fdHhEYXRhLmlucHV0c1tpbnB1dEluZGV4XTtcbiAgICBpZiAoIWlucHV0Py5zaWduYXR1cmVTY3JpcHQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qgc2lnQnl0ZXMgPSBCdWZmZXIuZnJvbShpbnB1dC5zaWduYXR1cmVTY3JpcHQsICdoZXgnKTtcbiAgICBpZiAoc2lnQnl0ZXMubGVuZ3RoIDwgNjUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qgc2lnID0gc2lnQnl0ZXMuc2xpY2UoMCwgNjQpO1xuICAgIGNvbnN0IHNpZ0hhc2ggPSBjb21wdXRlS2FzcGFTaWduaW5nSGFzaCh0aGlzLl90eERhdGEsIGlucHV0SW5kZXgsIHNpZ0hhc2hUeXBlKTtcbiAgICAvLyBBY2NlcHQgMzMtYnl0ZSBjb21wcmVzc2VkIG9yIDMyLWJ5dGUgeC1vbmx5XG4gICAgY29uc3QgeE9ubHlQdWIgPSBwdWJsaWNLZXkubGVuZ3RoID09PSAzMyA/IHB1YmxpY0tleS5zbGljZSgxKSA6IHB1YmxpY0tleTtcbiAgICByZXR1cm4gZWNjLnZlcmlmeVNjaG5vcnIoc2lnSGFzaCwgeE9ubHlQdWIsIHNpZyk7XG4gIH1cblxuICAvKipcbiAgICogRXhwbGFpbiB0aGUgdHJhbnNhY3Rpb24gaW4gYSBodW1hbi1yZWFkYWJsZSBmb3JtYXQuXG4gICAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgbGV0IHRvdGFsSW4gPSBCaWdJbnQoMCk7XG4gICAgbGV0IHRvdGFsT3V0ID0gQmlnSW50KDApO1xuXG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiB0aGlzLl90eERhdGEuaW5wdXRzKSB7XG4gICAgICB0b3RhbEluICs9IEJpZ0ludChpbnB1dC5hbW91bnQpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0aGlzLl90eERhdGEub3V0cHV0cykge1xuICAgICAgdG90YWxPdXQgKz0gQmlnSW50KG91dHB1dC5hbW91bnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGZlZSA9ICh0b3RhbEluIC0gdG90YWxPdXQpLnRvU3RyaW5nKCk7XG5cbiAgICBjb25zdCBvdXRwdXRzID0gdGhpcy5fdHhEYXRhLm91dHB1dHMubWFwKChvKSA9PiAoe1xuICAgICAgYWRkcmVzczogby5hZGRyZXNzLFxuICAgICAgYW1vdW50OiBvLmFtb3VudCxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX3R4RGF0YS5pZCB8fCAnJyxcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIG91dHB1dEFtb3VudDogdG90YWxPdXQudG9TdHJpbmcoKSxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBmZWU6IHsgZmVlOiB0aGlzLl90eERhdGEuZmVlIHx8IGZlZSB9LFxuICAgICAgaW5wdXRzOiB0aGlzLl90eERhdGEuaW5wdXRzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0cmFuc2FjdGlvbiB0byBhIEpTT04gc3RyaW5nIChicm9hZGNhc3QgZm9ybWF0KS5cbiAgICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuX3R4RGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRyYW5zYWN0aW9uIHRvIGhleCAoSlNPTi1lbmNvZGVkIHRoZW4gaGV4LWVuY29kZWQpLlxuICAgKi9cbiAgdG9IZXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20odGhpcy50b0Jyb2FkY2FzdEZvcm1hdCgpKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRyYW5zYWN0aW9uIGRhdGEgYXMgYSBwbGFpbiBvYmplY3QuXG4gICAqL1xuICB0b0pzb24oKTogS2FzcGFUcmFuc2FjdGlvbkRhdGEge1xuICAgIHJldHVybiB7IC4uLnRoaXMuX3R4RGF0YSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplIGZyb20gaGV4LlxuICAgKi9cbiAgc3RhdGljIGZyb21IZXgoY29pbjogc3RyaW5nLCBoZXg6IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShoZXgsICdoZXgnKS50b1N0cmluZygpKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKGNvaW4sIGpzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplIGZyb20gSlNPTiBzdHJpbmcgb3Igb2JqZWN0LlxuICAgKi9cbiAgc3RhdGljIGZyb21Kc29uKGNvaW46IHN0cmluZywgZGF0YTogc3RyaW5nIHwgS2FzcGFUcmFuc2FjdGlvbkRhdGEpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHhEYXRhOiBLYXNwYVRyYW5zYWN0aW9uRGF0YSA9IHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoZGF0YSkgOiBkYXRhO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oY29pbiwgdHhEYXRhKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXQgc2lnbmF0dXJlKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fdHhEYXRhLmlucHV0cy5tYXAoKGkpID0+IGkuc2lnbmF0dXJlU2NyaXB0IHx8ICcnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBjYW5TaWduKF9rZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFpRjtBQUNqRixxREFBNEM7QUFFNUMsdUNBQWlFO0FBRWpFLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBRzlDLFlBQVksSUFBWSxFQUFFLE1BQTZCO1FBQ3JELEtBQUssQ0FBQyxFQUFFLElBQUksRUFBUyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLElBQUk7WUFDdkIsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENB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LENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVksRUFBRSxJQUFtQztRQUMvRCxNQUFNLE1BQU0sR0FBeUIsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEYsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxJQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBek1ELGtDQXlNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VLZXksIEJhc2VUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZWNjIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCB7IEthc3BhVHJhbnNhY3Rpb25EYXRhLCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBjb21wdXRlS2FzcGFTaWduaW5nSGFzaCwgU0lHSEFTSF9BTEwgfSBmcm9tICcuL3NpZ2hhc2gnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcm90ZWN0ZWQgX3R4RGF0YTogS2FzcGFUcmFuc2FjdGlvbkRhdGE7XG5cbiAgY29uc3RydWN0b3IoY29pbjogc3RyaW5nLCB0eERhdGE/OiBLYXNwYVRyYW5zYWN0aW9uRGF0YSkge1xuICAgIHN1cGVyKHsgY29pbiB9IGFzIGFueSk7XG4gICAgdGhpcy5fdHhEYXRhID0gdHhEYXRhIHx8IHtcbiAgICAgIHZlcnNpb246IDAsXG4gICAgICBpbnB1dHM6IFtdLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHhEYXRhLmlkIHx8ICcnO1xuICB9XG5cbiAgZ2V0IHR4RGF0YSgpOiBLYXNwYVRyYW5zYWN0aW9uRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX3R4RGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGZlZSBpbiBzb21waS5cbiAgICogSWYgZmVlIHdhcyBleHBsaWNpdGx5IHNldCwgcmV0dXJucyB0aGF0LiBPdGhlcndpc2UgY29tcHV0ZXMgZnJvbSBpbnB1dHMgLSBvdXRwdXRzLlxuICAgKi9cbiAgZ2V0IGdldEZlZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl90eERhdGEuZmVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHhEYXRhLmZlZTtcbiAgICB9XG4gICAgbGV0IHRvdGFsSW4gPSBCaWdJbnQoMCk7XG4gICAgbGV0IHRvdGFsT3V0ID0gQmlnSW50KDApO1xuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy5fdHhEYXRhLmlucHV0cykge1xuICAgICAgdG90YWxJbiArPSBCaWdJbnQoaW5wdXQuYW1vdW50KTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdGhpcy5fdHhEYXRhLm91dHB1dHMpIHtcbiAgICAgIHRvdGFsT3V0ICs9IEJpZ0ludChvdXRwdXQuYW1vdW50KTtcbiAgICB9XG4gICAgcmV0dXJuICh0b3RhbEluIC0gdG90YWxPdXQpLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2lnbmFibGUgcGF5bG9hZCBmb3IgVFNTL01QQyBzaWduaW5nLlxuICAgKlxuICAgKiBGb3IgS2FzcGEsIGVhY2ggaW5wdXQgaGFzIGl0cyBvd24gc2lnaGFzaCAoQklQLTE0My1saWtlIHNjaGVtZSB3aXRoIEJsYWtlMmIpLlxuICAgKiBUaGlzIHJldHVybnMgdGhlIHNpZ2hhc2ggZm9yIHRoZSBmaXJzdCBpbnB1dCwgd2hpY2ggaXMgd2hhdCBUU1Mgc2lnbnMuXG4gICAqIEZvciBtdWx0aS1pbnB1dCB0cmFuc2FjdGlvbnMsIGFsbCBpbnB1dHMgc2hhcmUgdGhlIHNhbWUga2V5IHNvIHRoZSBzYW1lXG4gICAqIFNjaG5vcnIgc2lnbmF0dXJlIGlzIGFwcGxpZWQgdG8gZWFjaCBpbnB1dCdzIGluZGl2aWR1YWwgc2lnaGFzaCBpbiBhZGRTaWduYXR1cmUoKS5cbiAgICpcbiAgICogQHNlZSBBREEncyBUcmFuc2FjdGlvbi5zaWduYWJsZVBheWxvYWQgZm9yIHRoZSBlcXVpdmFsZW50IHBhdHRlcm5cbiAgICovXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy5fdHhEYXRhLmlucHV0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbXB1dGUgc2lnbmFibGVQYXlsb2FkOiBubyBpbnB1dHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXB1dGVLYXNwYVNpZ25pbmdIYXNoKHRoaXMuX3R4RGF0YSwgMCwgU0lHSEFTSF9BTEwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGEgU2Nobm9yciBzaWduYXR1cmUgcHJvZHVjZWQgYnkgVFNTL01QQyBzaWduaW5nIHRvIGFsbCBpbnB1dHMuXG4gICAqXG4gICAqIEluIFRTUyBmbG93LCB0aGUga2V5c2VydmVyIHNpZ25zIHRoZSBmaXJzdCBpbnB1dCdzIHNpZ2hhc2guIFNpbmNlIGVhY2ggaW5wdXRcbiAgICogaGFzIGEgZGlmZmVyZW50IHNpZ2hhc2gsIHdlIHJlLXNpZ24gZWFjaCBpbnB1dCBpbmRpdmlkdWFsbHkgdXNpbmcgdGhlXG4gICAqIHgtb25seSBwdWJsaWMga2V5IGRlcml2ZWQgZnJvbSB0aGUgY29tcHJlc3NlZCBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0gcHVibGljS2V5IGNvbXByZXNzZWQgc2VjcDI1NmsxIHB1YmxpYyBrZXkgKDMzIGJ5dGVzIGhleClcbiAgICogQHBhcmFtIHNpZ25hdHVyZSA2NC1ieXRlIFNjaG5vcnIgc2lnbmF0dXJlIGJ1ZmZlciAoZnJvbSBUU1MpXG4gICAqIEBwYXJhbSBzaWdIYXNoVHlwZSBTaWdIYXNoIHR5cGUgKGRlZmF1bHQ6IFNJR0hBU0hfQUxMKVxuICAgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogc3RyaW5nLCBzaWduYXR1cmU6IEJ1ZmZlciwgc2lnSGFzaFR5cGU6IG51bWJlciA9IFNJR0hBU0hfQUxMKTogdm9pZCB7XG4gICAgaWYgKHNpZ25hdHVyZS5sZW5ndGggIT09IDY0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIDY0LWJ5dGUgU2Nobm9yciBzaWduYXR1cmUsIGdvdCAke3NpZ25hdHVyZS5sZW5ndGh9YCk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl90eERhdGEuaW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBFYWNoIGlucHV0IGdldHMgdGhlIHNhbWUgc2lnbmF0dXJlIGZvcm1hdDogNjQtYnl0ZSBzaWcgKyBzaWdoYXNoIHR5cGUgYnl0ZVxuICAgICAgY29uc3Qgc2lnV2l0aFR5cGUgPSBCdWZmZXIuY29uY2F0KFtzaWduYXR1cmUsIEJ1ZmZlci5mcm9tKFtzaWdIYXNoVHlwZV0pXSk7XG4gICAgICB0aGlzLl90eERhdGEuaW5wdXRzW2ldLnNpZ25hdHVyZVNjcmlwdCA9IHNpZ1dpdGhUeXBlLnRvU3RyaW5nKCdoZXgnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhbGwgaW5wdXRzIHdpdGggdGhlIGdpdmVuIHByaXZhdGUga2V5IHVzaW5nIFNjaG5vcnIgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQHBhcmFtIHByaXZhdGVLZXkgMzItYnl0ZSBwcml2YXRlIGtleSBidWZmZXJcbiAgICogQHBhcmFtIHNpZ0hhc2hUeXBlIFNpZ0hhc2ggdHlwZSAoZGVmYXVsdDogU0lHSEFTSF9BTEwgPSAweDAxKVxuICAgKi9cbiAgc2lnbihwcml2YXRlS2V5OiBCdWZmZXIsIHNpZ0hhc2hUeXBlOiBudW1iZXIgPSBTSUdIQVNIX0FMTCk6IHZvaWQge1xuICAgIGlmIChwcml2YXRlS2V5Lmxlbmd0aCAhPT0gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgMzItYnl0ZSBwcml2YXRlIGtleSwgZ290ICR7cHJpdmF0ZUtleS5sZW5ndGh9YCk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fdHhEYXRhLmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qgc2lnSGFzaCA9IGNvbXB1dGVLYXNwYVNpZ25pbmdIYXNoKHRoaXMuX3R4RGF0YSwgaSwgc2lnSGFzaFR5cGUpO1xuICAgICAgY29uc3Qgc2lnID0gZWNjLnNpZ25TY2hub3JyKHNpZ0hhc2gsIHByaXZhdGVLZXkpO1xuICAgICAgLy8gNjUtYnl0ZSBzaWduYXR1cmU6IDY0LWJ5dGUgU2Nobm9yciBzaWcgKyAxLWJ5dGUgc2lnaGFzaCB0eXBlXG4gICAgICBjb25zdCBzaWdXaXRoVHlwZSA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKHNpZyksIEJ1ZmZlci5mcm9tKFtzaWdIYXNoVHlwZV0pXSk7XG4gICAgICB0aGlzLl90eERhdGEuaW5wdXRzW2ldLnNpZ25hdHVyZVNjcmlwdCA9IHNpZ1dpdGhUeXBlLnRvU3RyaW5nKCdoZXgnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgYSBTY2hub3JyIHNpZ25hdHVyZSBvbiBhIHNwZWNpZmljIGlucHV0IGlzIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0gcHVibGljS2V5IDMzLWJ5dGUgY29tcHJlc3NlZCBwdWJsaWMga2V5IChvciAzMi1ieXRlIHgtb25seSlcbiAgICogQHBhcmFtIGlucHV0SW5kZXggSW5kZXggb2YgdGhlIGlucHV0IHRvIHZlcmlmeVxuICAgKiBAcGFyYW0gc2lnSGFzaFR5cGUgU2lnSGFzaCB0eXBlIHVzZWQgd2hlbiBzaWduaW5nXG4gICAqL1xuICB2ZXJpZnlTaWduYXR1cmUocHVibGljS2V5OiBCdWZmZXIsIGlucHV0SW5kZXg6IG51bWJlciwgc2lnSGFzaFR5cGU6IG51bWJlciA9IFNJR0hBU0hfQUxMKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLl90eERhdGEuaW5wdXRzW2lucHV0SW5kZXhdO1xuICAgIGlmICghaW5wdXQ/LnNpZ25hdHVyZVNjcmlwdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBzaWdCeXRlcyA9IEJ1ZmZlci5mcm9tKGlucHV0LnNpZ25hdHVyZVNjcmlwdCwgJ2hleCcpO1xuICAgIGlmIChzaWdCeXRlcy5sZW5ndGggPCA2NSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBzaWcgPSBzaWdCeXRlcy5zbGljZSgwLCA2NCk7XG4gICAgY29uc3Qgc2lnSGFzaCA9IGNvbXB1dGVLYXNwYVNpZ25pbmdIYXNoKHRoaXMuX3R4RGF0YSwgaW5wdXRJbmRleCwgc2lnSGFzaFR5cGUpO1xuICAgIC8vIEFjY2VwdCAzMy1ieXRlIGNvbXByZXNzZWQgb3IgMzItYnl0ZSB4LW9ubHlcbiAgICBjb25zdCB4T25seVB1YiA9IHB1YmxpY0tleS5sZW5ndGggPT09IDMzID8gcHVibGljS2V5LnNsaWNlKDEpIDogcHVibGljS2V5O1xuICAgIHJldHVybiBlY2MudmVyaWZ5U2Nobm9ycihzaWdIYXNoLCB4T25seVB1Yiwgc2lnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBsYWluIHRoZSB0cmFuc2FjdGlvbiBpbiBhIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC5cbiAgICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBsZXQgdG90YWxJbiA9IEJpZ0ludCgwKTtcbiAgICBsZXQgdG90YWxPdXQgPSBCaWdJbnQoMCk7XG5cbiAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHRoaXMuX3R4RGF0YS5pbnB1dHMpIHtcbiAgICAgIHRvdGFsSW4gKz0gQmlnSW50KGlucHV0LmFtb3VudCk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRoaXMuX3R4RGF0YS5vdXRwdXRzKSB7XG4gICAgICB0b3RhbE91dCArPSBCaWdJbnQob3V0cHV0LmFtb3VudCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmVlID0gKHRvdGFsSW4gLSB0b3RhbE91dCkudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IG91dHB1dHMgPSB0aGlzLl90eERhdGEub3V0cHV0cy5tYXAoKG8pID0+ICh7XG4gICAgICBhZGRyZXNzOiBvLmFkZHJlc3MsXG4gICAgICBhbW91bnQ6IG8uYW1vdW50LFxuICAgIH0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5fdHhEYXRhLmlkIHx8ICcnLFxuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiB0b3RhbE91dC50b1N0cmluZygpLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6IHRoaXMuX3R4RGF0YS5mZWUgfHwgZmVlIH0sXG4gICAgICBpbnB1dHM6IHRoaXMuX3R4RGF0YS5pbnB1dHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhlIHRyYW5zYWN0aW9uIHRvIGEgSlNPTiBzdHJpbmcgKGJyb2FkY2FzdCBmb3JtYXQpLlxuICAgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5fdHhEYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdHJhbnNhY3Rpb24gdG8gaGV4IChKU09OLWVuY29kZWQgdGhlbiBoZXgtZW5jb2RlZCkuXG4gICAqL1xuICB0b0hleCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLnRvQnJvYWRjYXN0Rm9ybWF0KCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJhbnNhY3Rpb24gZGF0YSBhcyBhIHBsYWluIG9iamVjdC5cbiAgICovXG4gIHRvSnNvbigpOiBLYXNwYVRyYW5zYWN0aW9uRGF0YSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5fdHhEYXRhIH07XG4gIH1cblxuICAvKipcbiAgICogRGVzZXJpYWxpemUgZnJvbSBoZXguXG4gICAqL1xuICBzdGF0aWMgZnJvbUhleChjb2luOiBzdHJpbmcsIGhleDogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpLnRvU3RyaW5nKCkpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oY29pbiwganNvbik7XG4gIH1cblxuICAvKipcbiAgICogRGVzZXJpYWxpemUgZnJvbSBKU09OIHN0cmluZyBvciBvYmplY3QuXG4gICAqL1xuICBzdGF0aWMgZnJvbUpzb24oY29pbjogc3RyaW5nLCBkYXRhOiBzdHJpbmcgfCBLYXNwYVRyYW5zYWN0aW9uRGF0YSk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eERhdGE6IEthc3BhVHJhbnNhY3Rpb25EYXRhID0gdHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShkYXRhKSA6IGRhdGE7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbihjb2luLCB0eERhdGEpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldCBzaWduYXR1cmUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl90eERhdGEuaW5wdXRzLm1hcCgoaSkgPT4gaS5zaWduYXR1cmVTY3JpcHQgfHwgJycpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGNhblNpZ24oX2tleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import { BaseTransactionBuilder, BaseTransaction, BaseKey } from '@bitgo-beta/sdk-core';
|
|
1
|
+
import { BaseTransactionBuilder, BaseTransaction, BaseKey, PublicKey as BasePublicKey } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
3
|
import BigNumber from 'bignumber.js';
|
|
4
4
|
import { Transaction } from './transaction';
|
|
5
5
|
import { KaspaUtxoInput, KaspaTransactionOutput } from './iface';
|
|
6
|
+
interface KaspaSignature {
|
|
7
|
+
publicKey: BasePublicKey;
|
|
8
|
+
signature: Buffer;
|
|
9
|
+
}
|
|
6
10
|
export declare class TransactionBuilder extends BaseTransactionBuilder {
|
|
7
11
|
protected _transaction: Transaction;
|
|
8
12
|
protected _inputs: KaspaUtxoInput[];
|
|
9
13
|
protected _outputs: KaspaTransactionOutput[];
|
|
10
14
|
protected _fee: string;
|
|
11
15
|
protected _fromAddress: string;
|
|
16
|
+
protected _signatures: KaspaSignature[];
|
|
12
17
|
constructor(coinConfig: Readonly<CoinConfig>);
|
|
13
18
|
/** @inheritDoc */
|
|
14
19
|
protected get transaction(): BaseTransaction;
|
|
@@ -34,6 +39,16 @@ export declare class TransactionBuilder extends BaseTransactionBuilder {
|
|
|
34
39
|
* Add multiple UTXO inputs.
|
|
35
40
|
*/
|
|
36
41
|
addInputs(utxos: KaspaUtxoInput[]): this;
|
|
42
|
+
/**
|
|
43
|
+
* Add an externally-produced signature (from TSS/MPC signing) to the transaction.
|
|
44
|
+
* The signature will be applied to all inputs during build().
|
|
45
|
+
*
|
|
46
|
+
* This follows the same pattern as ADA's TransactionBuilder.addSignature().
|
|
47
|
+
*
|
|
48
|
+
* @param publicKey The compressed secp256k1 public key that produced the signature
|
|
49
|
+
* @param signature The 64-byte Schnorr signature buffer
|
|
50
|
+
*/
|
|
51
|
+
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
37
52
|
/** @inheritDoc */
|
|
38
53
|
protected fromImplementation(rawTransaction: string): Transaction;
|
|
39
54
|
/** @inheritDoc */
|
|
@@ -55,4 +70,5 @@ export declare class TransactionBuilder extends BaseTransactionBuilder {
|
|
|
55
70
|
/** @inheritDoc */
|
|
56
71
|
validateValue(value: BigNumber): void;
|
|
57
72
|
}
|
|
73
|
+
export {};
|
|
58
74
|
//# sourceMappingURL=transactionBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,OAAO,EACP,SAAS,IAAI,aAAa,EAE3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAwB,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAKvF,UAAU,cAAc;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAmB,SAAQ,sBAAsB;IAC5D,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAM;IACzC,SAAS,CAAC,QAAQ,EAAE,sBAAsB,EAAE,CAAM;IAClD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAe;IACrC,SAAS,CAAC,YAAY,SAAM;IAC5B,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,CAAM;gBAEjC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,eAAe,CAE3C;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,EAAE,EAAE,eAAe,EAE5C;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACH,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQzC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAQpC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAKxC;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IASjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;IAqB/D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,eAAe;IAU/D,kBAAkB;IAClB,mBAAmB,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,IAAI;IASzD,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIvC,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMnD,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAQpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAKtC"}
|
|
@@ -13,6 +13,7 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
13
13
|
this._outputs = [];
|
|
14
14
|
this._fee = constants_1.DEFAULT_FEE;
|
|
15
15
|
this._fromAddress = '';
|
|
16
|
+
this._signatures = [];
|
|
16
17
|
this._transaction = new transaction_1.Transaction(coinConfig.name);
|
|
17
18
|
}
|
|
18
19
|
/** @inheritDoc */
|
|
@@ -67,6 +68,18 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
67
68
|
utxos.forEach((u) => this.addInput(u));
|
|
68
69
|
return this;
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Add an externally-produced signature (from TSS/MPC signing) to the transaction.
|
|
73
|
+
* The signature will be applied to all inputs during build().
|
|
74
|
+
*
|
|
75
|
+
* This follows the same pattern as ADA's TransactionBuilder.addSignature().
|
|
76
|
+
*
|
|
77
|
+
* @param publicKey The compressed secp256k1 public key that produced the signature
|
|
78
|
+
* @param signature The 64-byte Schnorr signature buffer
|
|
79
|
+
*/
|
|
80
|
+
addSignature(publicKey, signature) {
|
|
81
|
+
this._signatures.push({ publicKey, signature });
|
|
82
|
+
}
|
|
70
83
|
/** @inheritDoc */
|
|
71
84
|
fromImplementation(rawTransaction) {
|
|
72
85
|
const tx = transaction_1.Transaction.fromHex(this._coinConfig?.name || 'kaspa', rawTransaction);
|
|
@@ -88,6 +101,10 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
88
101
|
payload: '',
|
|
89
102
|
};
|
|
90
103
|
this._transaction = new transaction_1.Transaction(this._coinConfig?.name || 'kaspa', txData);
|
|
104
|
+
// Apply any externally-produced signatures (from TSS/MPC)
|
|
105
|
+
for (const sig of this._signatures) {
|
|
106
|
+
this._transaction.addSignature(sig.publicKey.pub, sig.signature);
|
|
107
|
+
}
|
|
91
108
|
return this._transaction;
|
|
92
109
|
}
|
|
93
110
|
/** @inheritDoc */
|
|
@@ -136,4 +153,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
136
153
|
}
|
|
137
154
|
}
|
|
138
155
|
exports.TransactionBuilder = TransactionBuilder;
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXNHO0FBR3RHLCtDQUE0QztBQUU1QyxtQ0FBOEM7QUFDOUMsdUNBQW9DO0FBQ3BDLDJDQUFzRDtBQUV0RCxNQUFhLGtCQUFtQixTQUFRLGlDQUFzQjtJQU81RCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQU5WLFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBQy9CLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQ3hDLFNBQUksR0FBVyx1QkFBVyxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBSTFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLFdBQVcsQ0FBQyxFQUFtQjtRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQWlCLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQWU7UUFDcEIsSUFBSSxDQUFDLElBQUEsMkJBQW1CLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILEVBQUUsQ0FBQyxPQUFlLEVBQUUsTUFBYztRQUNoQyxJQUFJLENBQUMsSUFBQSwy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LENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpKRCxnREFpSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLCBCYXNlVHJhbnNhY3Rpb24sIEJhc2VLZXksIFNpZ25pbmdFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBLYXNwYVRyYW5zYWN0aW9uRGF0YSwgS2FzcGFVdHhvSW5wdXQsIEthc3BhVHJhbnNhY3Rpb25PdXRwdXQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGlzVmFsaWRLYXNwYUFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgREVGQVVMVF9GRUUsIFRYX1ZFUlNJT04gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfaW5wdXRzOiBLYXNwYVV0eG9JbnB1dFtdID0gW107XG4gIHByb3RlY3RlZCBfb3V0cHV0czogS2FzcGFUcmFuc2FjdGlvbk91dHB1dFtdID0gW107XG4gIHByb3RlY3RlZCBfZmVlOiBzdHJpbmcgPSBERUZBVUxUX0ZFRTtcbiAgcHJvdGVjdGVkIF9mcm9tQWRkcmVzcyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oY29pbkNvbmZpZy5uYW1lKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IEJhc2VUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHg6IEJhc2VUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHggYXMgVHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBzZW5kZXIgYWRkcmVzcy5cbiAgICovXG4gIHNlbmRlcihhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRLYXNwYUFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBLYXNwYSBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuICAgIHRoaXMuX2Zyb21BZGRyZXNzID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSByZWNpcGllbnQgb3V0cHV0LlxuICAgKi9cbiAgdG8oYWRkcmVzczogc3RyaW5nLCBhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZEthc3BhQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEthc3BhIHJlY2lwaWVudCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuICAgIHRoaXMuX291dHB1dHMucHVzaCh7IGFkZHJlc3MsIGFtb3VudCB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdHJhbnNhY3Rpb24gZmVlIGluIHNvbXBpLlxuICAgKi9cbiAgZmVlKGZlZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fZmVlID0gZmVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIFVUWE8gaW5wdXQuXG4gICAqL1xuICBhZGRJbnB1dCh1dHhvOiBLYXNwYVV0eG9JbnB1dCk6IHRoaXMge1xuICAgIGlmICghdXR4by50cmFuc2FjdGlvbklkIHx8IHV0eG8udHJhbnNhY3Rpb25JbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVVRYTzogbWlzc2luZyB0cmFuc2FjdGlvbklkIG9yIHRyYW5zYWN0aW9uSW5kZXgnKTtcbiAgICB9XG4gICAgdGhpcy5faW5wdXRzLnB1c2godXR4byk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG11bHRpcGxlIFVUWE8gaW5wdXRzLlxuICAgKi9cbiAgYWRkSW5wdXRzKHV0eG9zOiBLYXNwYVV0eG9JbnB1dFtdKTogdGhpcyB7XG4gICAgdXR4b3MuZm9yRWFjaCgodSkgPT4gdGhpcy5hZGRJbnB1dCh1KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb24uZnJvbUhleCgodGhpcyBhcyBhbnkpLl9jb2luQ29uZmlnPy5uYW1lIHx8ICdrYXNwYScsIHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX2lucHV0cyA9IHR4LnR4RGF0YS5pbnB1dHMgfHwgW107XG4gICAgdGhpcy5fb3V0cHV0cyA9IHR4LnR4RGF0YS5vdXRwdXRzIHx8IFtdO1xuICAgIHRoaXMuX2ZlZSA9IHR4LnR4RGF0YS5mZWUgfHwgREVGQVVMVF9GRUU7XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8QmFzZVRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHhEYXRhOiBLYXNwYVRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgIHZlcnNpb246IFRYX1ZFUlNJT04sXG4gICAgICBpbnB1dHM6IHRoaXMuX2lucHV0cyxcbiAgICAgIG91dHB1dHM6IHRoaXMuX291dHB1dHMsXG4gICAgICBmZWU6IHRoaXMuX2ZlZSxcbiAgICAgIGxvY2tUaW1lOiAnMCcsXG4gICAgICBzdWJuZXR3b3JrSWQ6ICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgIHBheWxvYWQ6ICcnLFxuICAgIH07XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbigodGhpcyBhcyBhbnkpLl9jb2luQ29uZmlnPy5uYW1lIHx8ICdrYXNwYScsIHR4RGF0YSk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oeyBrZXkgfTogQmFzZUtleSk6IEJhc2VUcmFuc2FjdGlvbiB7XG4gICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkgfSk7XG4gICAgY29uc3QgcHJpdmF0ZUtleSA9IGtleVBhaXIuZ2V0S2V5cygpLnBydjtcbiAgICBpZiAoIXByaXZhdGVLZXkpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uc2lnbihCdWZmZXIuZnJvbShwcml2YXRlS2V5LCAnaGV4JykpO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF90cmFuc2FjdGlvbj86IEJhc2VUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbnB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBVVFhPIGlucHV0IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9vdXRwdXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgb3V0cHV0IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogeyBrZXk6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgLy8gS2V5IHZhbGlkYXRpb24gaGFuZGxlZCBpbiBLZXlQYWlyXG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IHsgYWRkcmVzczogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICBpZiAoIWlzVmFsaWRLYXNwYUFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEthc3BhIGFkZHJlc3M6ICR7YWRkcmVzcy5hZGRyZXNzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgVHJhbnNhY3Rpb24uZnJvbUhleCgodGhpcyBhcyBhbnkpLl9jb2luQ29uZmlnPy5uYW1lIHx8ICdrYXNwYScsIHJhd1RyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByYXcgS2FzcGEgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVHJhbnNhY3Rpb24gdmFsdWUgY2Fubm90IGJlIG5lZ2F0aXZlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBTThCO0FBRzlCLCtDQUE0QztBQUU1QyxtQ0FBOEM7QUFDOUMsdUNBQW9DO0FBQ3BDLDJDQUFzRDtBQU90RCxNQUFhLGtCQUFtQixTQUFRLGlDQUFzQjtJQVE1RCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVBWLFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBQy9CLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQ3hDLFNBQUksR0FBVyx1QkFBVyxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQXFCLEVBQUUsQ0FBQztRQUkzQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLFdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXLENBQUMsRUFBbUI7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFpQixDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFlO1FBQ3BCLElBQUksQ0FBQyxJQUFBLDJCQUFtQixFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxFQUFFLENBQUMsT0FBZSxFQUFF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QUFzQixDQUFDLGNBQXNCO1FBQzNDLElBQUksQ0FBQztZQUNILHlCQUFXLENBQUMsT0FBTyxDQUFFLElBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGFBQWEsQ0FBQyxLQUFnQjtRQUM1QixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXJLRCxnREFxS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEJhc2VLZXksXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduaW5nRXJyb3IsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBLYXNwYVRyYW5zYWN0aW9uRGF0YSwgS2FzcGFVdHhvSW5wdXQsIEthc3BhVHJhbnNhY3Rpb25PdXRwdXQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGlzVmFsaWRLYXNwYUFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgREVGQVVMVF9GRUUsIFRYX1ZFUlNJT04gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmludGVyZmFjZSBLYXNwYVNpZ25hdHVyZSB7XG4gIHB1YmxpY0tleTogQmFzZVB1YmxpY0tleTtcbiAgc2lnbmF0dXJlOiBCdWZmZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfaW5wdXRzOiBLYXNwYVV0eG9JbnB1dFtdID0gW107XG4gIHByb3RlY3RlZCBfb3V0cHV0czogS2FzcGFUcmFuc2FjdGlvbk91dHB1dFtdID0gW107XG4gIHByb3RlY3RlZCBfZmVlOiBzdHJpbmcgPSBERUZBVUxUX0ZFRTtcbiAgcHJvdGVjdGVkIF9mcm9tQWRkcmVzcyA9ICcnO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IEthc3BhU2lnbmF0dXJlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcubmFtZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBCYXNlVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHR4OiBCYXNlVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4IGFzIFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc2VuZGVyIGFkZHJlc3MuXG4gICAqL1xuICBzZW5kZXIoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkS2FzcGFBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgS2FzcGEgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICB0aGlzLl9mcm9tQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcmVjaXBpZW50IG91dHB1dC5cbiAgICovXG4gIHRvKGFkZHJlc3M6IHN0cmluZywgYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRLYXNwYUFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBLYXNwYSByZWNpcGllbnQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICB0aGlzLl9vdXRwdXRzLnB1c2goeyBhZGRyZXNzLCBhbW91bnQgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRyYW5zYWN0aW9uIGZlZSBpbiBzb21waS5cbiAgICovXG4gIGZlZShmZWU6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX2ZlZSA9IGZlZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBVVFhPIGlucHV0LlxuICAgKi9cbiAgYWRkSW5wdXQodXR4bzogS2FzcGFVdHhvSW5wdXQpOiB0aGlzIHtcbiAgICBpZiAoIXV0eG8udHJhbnNhY3Rpb25JZCB8fCB1dHhvLnRyYW5zYWN0aW9uSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFVUWE86IG1pc3NpbmcgdHJhbnNhY3Rpb25JZCBvciB0cmFuc2FjdGlvbkluZGV4Jyk7XG4gICAgfVxuICAgIHRoaXMuX2lucHV0cy5wdXNoKHV0eG8pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBtdWx0aXBsZSBVVFhPIGlucHV0cy5cbiAgICovXG4gIGFkZElucHV0cyh1dHhvczogS2FzcGFVdHhvSW5wdXRbXSk6IHRoaXMge1xuICAgIHV0eG9zLmZvckVhY2goKHUpID0+IHRoaXMuYWRkSW5wdXQodSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBleHRlcm5hbGx5LXByb2R1Y2VkIHNpZ25hdHVyZSAoZnJvbSBUU1MvTVBDIHNpZ25pbmcpIHRvIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogVGhlIHNpZ25hdHVyZSB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGlucHV0cyBkdXJpbmcgYnVpbGQoKS5cbiAgICpcbiAgICogVGhpcyBmb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgQURBJ3MgVHJhbnNhY3Rpb25CdWlsZGVyLmFkZFNpZ25hdHVyZSgpLlxuICAgKlxuICAgKiBAcGFyYW0gcHVibGljS2V5IFRoZSBjb21wcmVzc2VkIHNlY3AyNTZrMSBwdWJsaWMga2V5IHRoYXQgcHJvZHVjZWQgdGhlIHNpZ25hdHVyZVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoZSA2NC1ieXRlIFNjaG5vcnIgc2lnbmF0dXJlIGJ1ZmZlclxuICAgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBUcmFuc2FjdGlvbi5mcm9tSGV4KCh0aGlzIGFzIGFueSkuX2NvaW5Db25maWc/Lm5hbWUgfHwgJ2thc3BhJywgcmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgdGhpcy5faW5wdXRzID0gdHgudHhEYXRhLmlucHV0cyB8fCBbXTtcbiAgICB0aGlzLl9vdXRwdXRzID0gdHgudHhEYXRhLm91dHB1dHMgfHwgW107XG4gICAgdGhpcy5fZmVlID0gdHgudHhEYXRhLmZlZSB8fCBERUZBVUxUX0ZFRTtcbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxCYXNlVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eERhdGE6IEthc3BhVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgdmVyc2lvbjogVFhfVkVSU0lPTixcbiAgICAgIGlucHV0czogdGhpcy5faW5wdXRzLFxuICAgICAgb3V0cHV0czogdGhpcy5fb3V0cHV0cyxcbiAgICAgIGZlZTogdGhpcy5fZmVlLFxuICAgICAgbG9ja1RpbWU6ICcwJyxcbiAgICAgIHN1Ym5ldHdvcmtJZDogJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgcGF5bG9hZDogJycsXG4gICAgfTtcblxuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKCh0aGlzIGFzIGFueSkuX2NvaW5Db25maWc/Lm5hbWUgfHwgJ2thc3BhJywgdHhEYXRhKTtcblxuICAgIC8vIEFwcGx5IGFueSBleHRlcm5hbGx5LXByb2R1Y2VkIHNpZ25hdHVyZXMgKGZyb20gVFNTL01QQylcbiAgICBmb3IgKGNvbnN0IHNpZyBvZiB0aGlzLl9zaWduYXR1cmVzKSB7XG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUoc2lnLnB1YmxpY0tleS5wdWIsIHNpZy5zaWduYXR1cmUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKHsga2V5IH06IEJhc2VLZXkpOiBCYXNlVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5IH0pO1xuICAgIGNvbnN0IHByaXZhdGVLZXkgPSBrZXlQYWlyLmdldEtleXMoKS5wcnY7XG4gICAgaWYgKCFwcml2YXRlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNpZ24oQnVmZmVyLmZyb20ocHJpdmF0ZUtleSwgJ2hleCcpKTtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbihfdHJhbnNhY3Rpb24/OiBCYXNlVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5wdXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgVVRYTyBpbnB1dCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3V0cHV0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIG91dHB1dCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IHsga2V5OiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIC8vIEtleSB2YWxpZGF0aW9uIGhhbmRsZWQgaW4gS2V5UGFpclxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiB7IGFkZHJlc3M6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgaWYgKCFpc1ZhbGlkS2FzcGFBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBLYXNwYSBhZGRyZXNzOiAke2FkZHJlc3MuYWRkcmVzc31gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIFRyYW5zYWN0aW9uLmZyb21IZXgoKHRoaXMgYXMgYW55KS5fY29pbkNvbmZpZz8ubmFtZSB8fCAna2FzcGEnLCByYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmF3IEthc3BhIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIHZhbHVlIGNhbm5vdCBiZSBuZWdhdGl2ZScpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
+
import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
|
|
1
2
|
import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
|
|
2
3
|
import { TransactionBuilder } from './transactionBuilder';
|
|
3
|
-
export declare class TransactionBuilderFactory {
|
|
4
|
-
protected _coinConfig: Readonly<StaticsBaseCoin>;
|
|
4
|
+
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
5
5
|
constructor(coinConfig: Readonly<StaticsBaseCoin>);
|
|
6
6
|
/**
|
|
7
7
|
* Get a base transaction builder for Kaspa transfers.
|
|
8
8
|
*/
|
|
9
9
|
getBuilder(): TransactionBuilder;
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
getTransferBuilder(): TransactionBuilder;
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* Kaspa does not have a wallet initialization transaction.
|
|
14
|
+
* @throws NotImplementedError
|
|
12
15
|
*/
|
|
16
|
+
getWalletInitializationBuilder(): never;
|
|
17
|
+
/** @inheritdoc */
|
|
13
18
|
from(rawTransaction: string): TransactionBuilder;
|
|
14
19
|
}
|
|
15
20
|
//# sourceMappingURL=transactionBuilderFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAuB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC;IAIjD;;OAEG;IACH,UAAU,IAAI,kBAAkB;IAIhC,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB;IAIxC;;;OAGG;IACH,8BAA8B,IAAI,KAAK;IAIvC,kBAAkB;IAClB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB;CAKjD"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TransactionBuilderFactory = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
4
5
|
const transactionBuilder_1 = require("./transactionBuilder");
|
|
5
|
-
class TransactionBuilderFactory {
|
|
6
|
+
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
6
7
|
constructor(coinConfig) {
|
|
7
|
-
|
|
8
|
+
super(coinConfig);
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
11
|
* Get a base transaction builder for Kaspa transfers.
|
|
@@ -12,9 +13,18 @@ class TransactionBuilderFactory {
|
|
|
12
13
|
getBuilder() {
|
|
13
14
|
return new transactionBuilder_1.TransactionBuilder(this._coinConfig);
|
|
14
15
|
}
|
|
16
|
+
/** @inheritdoc */
|
|
17
|
+
getTransferBuilder() {
|
|
18
|
+
return this.getBuilder();
|
|
19
|
+
}
|
|
15
20
|
/**
|
|
16
|
-
*
|
|
21
|
+
* Kaspa does not have a wallet initialization transaction.
|
|
22
|
+
* @throws NotImplementedError
|
|
17
23
|
*/
|
|
24
|
+
getWalletInitializationBuilder() {
|
|
25
|
+
throw new sdk_core_1.NotImplementedError('getWalletInitializationBuilder is not supported for Kaspa');
|
|
26
|
+
}
|
|
27
|
+
/** @inheritdoc */
|
|
18
28
|
from(rawTransaction) {
|
|
19
29
|
const builder = this.getBuilder();
|
|
20
30
|
builder.from(rawTransaction);
|
|
@@ -22,4 +32,4 @@ class TransactionBuilderFactory {
|
|
|
22
32
|
}
|
|
23
33
|
}
|
|
24
34
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBMEY7QUFFMUYsNkRBQTBEO0FBRTFELE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksVUFBcUM7UUFDL0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksdUNBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLDhCQUFtQixDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsY0FBc0I7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBL0JELDhEQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgYmFzZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBLYXNwYSB0cmFuc2ZlcnMuXG4gICAqL1xuICBnZXRCdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEthc3BhIGRvZXMgbm90IGhhdmUgYSB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24uXG4gICAqIEB0aHJvd3MgTm90SW1wbGVtZW50ZWRFcnJvclxuICAgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IG5ldmVyIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIEthc3BhJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKCk7XG4gICAgYnVpbGRlci5mcm9tKHJhd1RyYW5zYWN0aW9uKTtcbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxufVxuIl19
|