@bitgo/abstract-utxo 13.0.0 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/impl/zec/index.d.ts +1 -0
- package/dist/cjs/src/impl/zec/index.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/index.js +2 -1
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.js +51 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.js +57 -0
- package/dist/cjs/src/impl/zec/zec.d.ts +16 -2
- package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/zec.js +38 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +7 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +32 -20
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +9 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +18 -9
- package/dist/cjs/src/transaction/signTransaction.d.ts +12 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/signTransaction.js +16 -7
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.js +142 -1
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.js +57 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/impl/zec/index.d.ts +1 -0
- package/dist/esm/impl/zec/index.d.ts.map +1 -1
- package/dist/esm/impl/zec/index.js +2 -1
- package/dist/esm/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/esm/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/esm/impl/zec/shieldedAddress.js +48 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.js +50 -0
- package/dist/esm/impl/zec/zec.d.ts +16 -2
- package/dist/esm/impl/zec/zec.d.ts.map +1 -1
- package/dist/esm/impl/zec/zec.js +36 -2
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +7 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +30 -20
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +9 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.js +17 -9
- package/dist/esm/transaction/signTransaction.d.ts +12 -0
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/signTransaction.js +15 -8
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './zec';
|
|
2
2
|
export * from './tzec';
|
|
3
|
+
export * from './shieldedAddress';
|
|
3
4
|
export * from './address';
|
|
4
5
|
export * from './recipients';
|
|
5
6
|
export * from './types';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW1wbC96ZWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vemVjJztcbmV4cG9ydCAqIGZyb20gJy4vdHplYyc7XG5leHBvcnQgKiBmcm9tICcuL3NoaWVsZGVkQWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWNpcGllbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { UtxoCoinName } from '../../names';
|
|
2
|
+
/**
|
|
3
|
+
* Platform-reported shielded address details (wallet-platform
|
|
4
|
+
* `coinSpecific.shielded` for Zcash Orchard/Ironwood addresses).
|
|
5
|
+
*/
|
|
6
|
+
export interface ShieldedAddressDetails {
|
|
7
|
+
/** Receiver type, e.g. 'ironwood'. */
|
|
8
|
+
type?: string;
|
|
9
|
+
/** 11-byte hex diversifier. */
|
|
10
|
+
diversifier?: string;
|
|
11
|
+
/** 32-byte hex `pk_d`. */
|
|
12
|
+
pkD?: string;
|
|
13
|
+
/** Wallet address index the diversifier was derived from. */
|
|
14
|
+
diversifierIndex?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Verify a Zcash shielded (Orchard/Ironwood) wallet address returned by the platform.
|
|
18
|
+
*
|
|
19
|
+
* Shielded custodial wallets use RedPallas threshold keys whose keychains carry no
|
|
20
|
+
* secp256k1 xpubs, so the address cannot be locally rederived the way fixed-script
|
|
21
|
+
* (transparent) addresses are (`assertFixedScriptWalletAddress` would throw reading
|
|
22
|
+
* `pub`). Instead, this checks the address is a well-formed Orchard Unified Address
|
|
23
|
+
* whose 43-byte receiver matches the diversifier and `pk_d` the platform reports in
|
|
24
|
+
* `coinSpecific.shielded` — i.e. the UA really encodes the reported shielded receiver.
|
|
25
|
+
*
|
|
26
|
+
* @throws {UnexpectedAddressError} if the address is not a valid Orchard UA, the
|
|
27
|
+
* platform-reported data is missing/malformed, or the UA's Orchard receiver does
|
|
28
|
+
* not match the reported diversifier/`pk_d`
|
|
29
|
+
*/
|
|
30
|
+
export declare function assertShieldedWalletAddress(coinName: UtxoCoinName, params: {
|
|
31
|
+
address: string;
|
|
32
|
+
coinSpecific?: {
|
|
33
|
+
shielded?: ShieldedAddressDetails;
|
|
34
|
+
};
|
|
35
|
+
}): void;
|
|
36
|
+
//# sourceMappingURL=shieldedAddress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shieldedAddress.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/shieldedAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,sBAAsB,CAAA;KAAE,CAAC;CACtD,GACA,IAAI,CAoCN"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { UnexpectedAddressError } from '@bitgo/sdk-core';
|
|
3
|
+
/**
|
|
4
|
+
* Verify a Zcash shielded (Orchard/Ironwood) wallet address returned by the platform.
|
|
5
|
+
*
|
|
6
|
+
* Shielded custodial wallets use RedPallas threshold keys whose keychains carry no
|
|
7
|
+
* secp256k1 xpubs, so the address cannot be locally rederived the way fixed-script
|
|
8
|
+
* (transparent) addresses are (`assertFixedScriptWalletAddress` would throw reading
|
|
9
|
+
* `pub`). Instead, this checks the address is a well-formed Orchard Unified Address
|
|
10
|
+
* whose 43-byte receiver matches the diversifier and `pk_d` the platform reports in
|
|
11
|
+
* `coinSpecific.shielded` — i.e. the UA really encodes the reported shielded receiver.
|
|
12
|
+
*
|
|
13
|
+
* @throws {UnexpectedAddressError} if the address is not a valid Orchard UA, the
|
|
14
|
+
* platform-reported data is missing/malformed, or the UA's Orchard receiver does
|
|
15
|
+
* not match the reported diversifier/`pk_d`
|
|
16
|
+
*/
|
|
17
|
+
export function assertShieldedWalletAddress(coinName, params) {
|
|
18
|
+
const shielded = params.coinSpecific?.shielded;
|
|
19
|
+
if (!shielded?.diversifier || !shielded.pkD) {
|
|
20
|
+
throw new UnexpectedAddressError('address validation failure: shielded address missing diversifier or pkD');
|
|
21
|
+
}
|
|
22
|
+
const diversifier = Buffer.from(shielded.diversifier, 'hex');
|
|
23
|
+
const pkD = Buffer.from(shielded.pkD, 'hex');
|
|
24
|
+
if (diversifier.length !== 11) {
|
|
25
|
+
throw new UnexpectedAddressError(`address validation failure: invalid diversifier length ${diversifier.length}`);
|
|
26
|
+
}
|
|
27
|
+
if (pkD.length !== 32) {
|
|
28
|
+
throw new UnexpectedAddressError(`address validation failure: invalid pkD length ${pkD.length}`);
|
|
29
|
+
}
|
|
30
|
+
// Only zec/tzec produce shielded addresses, so the name is always a valid ZcashNetworkName.
|
|
31
|
+
const network = coinName;
|
|
32
|
+
let ua;
|
|
33
|
+
try {
|
|
34
|
+
ua = fixedScriptWallet.ZcashUnifiedAddress.parse(params.address, network);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
throw new UnexpectedAddressError(`address validation failure: not a valid unified address: ${params.address}`);
|
|
38
|
+
}
|
|
39
|
+
const orchard = ua.orchardReceiver;
|
|
40
|
+
if (!orchard || orchard.length !== 43) {
|
|
41
|
+
throw new UnexpectedAddressError('address validation failure: unified address carries no Orchard receiver');
|
|
42
|
+
}
|
|
43
|
+
const expectedReceiver = Buffer.concat([diversifier, pkD]);
|
|
44
|
+
if (!Buffer.from(orchard).equals(expectedReceiver)) {
|
|
45
|
+
throw new UnexpectedAddressError('address validation failure: unified address Orchard receiver does not match shielded coinSpecific');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpZWxkZWRBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvemVjL3NoaWVsZGVkQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQW1CekQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsUUFBc0IsRUFDdEIsTUFHQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBQy9DLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksc0JBQXNCLENBQUMsMERBQTBELFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLHNCQUFzQixDQUFDLGtEQUFrRCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsNEZBQTRGO0lBQzVGLE1BQU0sT0FBTyxHQUFHLFFBQThDLENBQUM7SUFFL0QsSUFBSSxFQUF5QyxDQUFDO0lBQzlDLElBQUksQ0FBQztRQUNILEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyw0REFBNEQsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDbkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIsbUdBQW1HLENBQ3BHLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5pbXBvcnQgeyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi9uYW1lcyc7XG5cbi8qKlxuICogUGxhdGZvcm0tcmVwb3J0ZWQgc2hpZWxkZWQgYWRkcmVzcyBkZXRhaWxzICh3YWxsZXQtcGxhdGZvcm1cbiAqIGBjb2luU3BlY2lmaWMuc2hpZWxkZWRgIGZvciBaY2FzaCBPcmNoYXJkL0lyb253b29kIGFkZHJlc3NlcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hpZWxkZWRBZGRyZXNzRGV0YWlscyB7XG4gIC8qKiBSZWNlaXZlciB0eXBlLCBlLmcuICdpcm9ud29vZCcuICovXG4gIHR5cGU/OiBzdHJpbmc7XG4gIC8qKiAxMS1ieXRlIGhleCBkaXZlcnNpZmllci4gKi9cbiAgZGl2ZXJzaWZpZXI/OiBzdHJpbmc7XG4gIC8qKiAzMi1ieXRlIGhleCBgcGtfZGAuICovXG4gIHBrRD86IHN0cmluZztcbiAgLyoqIFdhbGxldCBhZGRyZXNzIGluZGV4IHRoZSBkaXZlcnNpZmllciB3YXMgZGVyaXZlZCBmcm9tLiAqL1xuICBkaXZlcnNpZmllckluZGV4PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFZlcmlmeSBhIFpjYXNoIHNoaWVsZGVkIChPcmNoYXJkL0lyb253b29kKSB3YWxsZXQgYWRkcmVzcyByZXR1cm5lZCBieSB0aGUgcGxhdGZvcm0uXG4gKlxuICogU2hpZWxkZWQgY3VzdG9kaWFsIHdhbGxldHMgdXNlIFJlZFBhbGxhcyB0aHJlc2hvbGQga2V5cyB3aG9zZSBrZXljaGFpbnMgY2Fycnkgbm9cbiAqIHNlY3AyNTZrMSB4cHVicywgc28gdGhlIGFkZHJlc3MgY2Fubm90IGJlIGxvY2FsbHkgcmVkZXJpdmVkIHRoZSB3YXkgZml4ZWQtc2NyaXB0XG4gKiAodHJhbnNwYXJlbnQpIGFkZHJlc3NlcyBhcmUgKGBhc3NlcnRGaXhlZFNjcmlwdFdhbGxldEFkZHJlc3NgIHdvdWxkIHRocm93IHJlYWRpbmdcbiAqIGBwdWJgKS4gSW5zdGVhZCwgdGhpcyBjaGVja3MgdGhlIGFkZHJlc3MgaXMgYSB3ZWxsLWZvcm1lZCBPcmNoYXJkIFVuaWZpZWQgQWRkcmVzc1xuICogd2hvc2UgNDMtYnl0ZSByZWNlaXZlciBtYXRjaGVzIHRoZSBkaXZlcnNpZmllciBhbmQgYHBrX2RgIHRoZSBwbGF0Zm9ybSByZXBvcnRzIGluXG4gKiBgY29pblNwZWNpZmljLnNoaWVsZGVkYCDigJQgaS5lLiB0aGUgVUEgcmVhbGx5IGVuY29kZXMgdGhlIHJlcG9ydGVkIHNoaWVsZGVkIHJlY2VpdmVyLlxuICpcbiAqIEB0aHJvd3Mge1VuZXhwZWN0ZWRBZGRyZXNzRXJyb3J9IGlmIHRoZSBhZGRyZXNzIGlzIG5vdCBhIHZhbGlkIE9yY2hhcmQgVUEsIHRoZVxuICogICBwbGF0Zm9ybS1yZXBvcnRlZCBkYXRhIGlzIG1pc3NpbmcvbWFsZm9ybWVkLCBvciB0aGUgVUEncyBPcmNoYXJkIHJlY2VpdmVyIGRvZXNcbiAqICAgbm90IG1hdGNoIHRoZSByZXBvcnRlZCBkaXZlcnNpZmllci9gcGtfZGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFNoaWVsZGVkV2FsbGV0QWRkcmVzcyhcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZSxcbiAgcGFyYW1zOiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIGNvaW5TcGVjaWZpYz86IHsgc2hpZWxkZWQ/OiBTaGllbGRlZEFkZHJlc3NEZXRhaWxzIH07XG4gIH1cbik6IHZvaWQge1xuICBjb25zdCBzaGllbGRlZCA9IHBhcmFtcy5jb2luU3BlY2lmaWM/LnNoaWVsZGVkO1xuICBpZiAoIXNoaWVsZGVkPy5kaXZlcnNpZmllciB8fCAhc2hpZWxkZWQucGtEKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoJ2FkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiBzaGllbGRlZCBhZGRyZXNzIG1pc3NpbmcgZGl2ZXJzaWZpZXIgb3IgcGtEJyk7XG4gIH1cblxuICBjb25zdCBkaXZlcnNpZmllciA9IEJ1ZmZlci5mcm9tKHNoaWVsZGVkLmRpdmVyc2lmaWVyLCAnaGV4Jyk7XG4gIGNvbnN0IHBrRCA9IEJ1ZmZlci5mcm9tKHNoaWVsZGVkLnBrRCwgJ2hleCcpO1xuICBpZiAoZGl2ZXJzaWZpZXIubGVuZ3RoICE9PSAxMSkge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKGBhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogaW52YWxpZCBkaXZlcnNpZmllciBsZW5ndGggJHtkaXZlcnNpZmllci5sZW5ndGh9YCk7XG4gIH1cbiAgaWYgKHBrRC5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiBpbnZhbGlkIHBrRCBsZW5ndGggJHtwa0QubGVuZ3RofWApO1xuICB9XG5cbiAgLy8gT25seSB6ZWMvdHplYyBwcm9kdWNlIHNoaWVsZGVkIGFkZHJlc3Nlcywgc28gdGhlIG5hbWUgaXMgYWx3YXlzIGEgdmFsaWQgWmNhc2hOZXR3b3JrTmFtZS5cbiAgY29uc3QgbmV0d29yayA9IGNvaW5OYW1lIGFzIGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoTmV0d29ya05hbWU7XG5cbiAgbGV0IHVhOiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaFVuaWZpZWRBZGRyZXNzO1xuICB0cnkge1xuICAgIHVhID0gZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hVbmlmaWVkQWRkcmVzcy5wYXJzZShwYXJhbXMuYWRkcmVzcywgbmV0d29yayk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFkZHJlc3NFcnJvcihgYWRkcmVzcyB2YWxpZGF0aW9uIGZhaWx1cmU6IG5vdCBhIHZhbGlkIHVuaWZpZWQgYWRkcmVzczogJHtwYXJhbXMuYWRkcmVzc31gKTtcbiAgfVxuXG4gIGNvbnN0IG9yY2hhcmQgPSB1YS5vcmNoYXJkUmVjZWl2ZXI7XG4gIGlmICghb3JjaGFyZCB8fCBvcmNoYXJkLmxlbmd0aCAhPT0gNDMpIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFkZHJlc3NFcnJvcignYWRkcmVzcyB2YWxpZGF0aW9uIGZhaWx1cmU6IHVuaWZpZWQgYWRkcmVzcyBjYXJyaWVzIG5vIE9yY2hhcmQgcmVjZWl2ZXInKTtcbiAgfVxuXG4gIGNvbnN0IGV4cGVjdGVkUmVjZWl2ZXIgPSBCdWZmZXIuY29uY2F0KFtkaXZlcnNpZmllciwgcGtEXSk7XG4gIGlmICghQnVmZmVyLmZyb20ob3JjaGFyZCkuZXF1YWxzKGV4cGVjdGVkUmVjZWl2ZXIpKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoXG4gICAgICAnYWRkcmVzcyB2YWxpZGF0aW9uIGZhaWx1cmU6IHVuaWZpZWQgYWRkcmVzcyBPcmNoYXJkIHJlY2VpdmVyIGRvZXMgbm90IG1hdGNoIHNoaWVsZGVkIGNvaW5TcGVjaWZpYydcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BIP32, fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { SignTransactionOptions } from '../../abstractUtxoCoin';
|
|
3
|
+
import { ReplayProtectionKeys } from '../../transaction/fixedScript/signPsbtWasm';
|
|
4
|
+
import type { Zec } from './zec';
|
|
5
|
+
/**
|
|
6
|
+
* Sign all transparent inputs of a v6 (Ironwood) Zcash PSBT and verify the signatures.
|
|
7
|
+
*
|
|
8
|
+
* v6 PSBTs override `sign(key)` to require the wallet root keys: on the first signing round —
|
|
9
|
+
* which the wasm enforces to be the user's root key — they derive the wallet ovk (the ECDH
|
|
10
|
+
* agreement of `rootWalletKeys.bitgoKey()` and the user root key) and finalize the shielded
|
|
11
|
+
* output's out_ciphertext before computing any transparent sighash. Later rounds no-op that
|
|
12
|
+
* step, so rootWalletKeys is passed unconditionally. Transparent inputs are signed with
|
|
13
|
+
* ordinary ECDSA over the ZIP-244 sighash either way.
|
|
14
|
+
*
|
|
15
|
+
* The generic `signAndVerifyPsbtWasm` cannot provide this: its `tx.sign(wasmSigner)` call does
|
|
16
|
+
* not satisfy the v6 override's rootWalletKeys requirement. Verification and signed-with
|
|
17
|
+
* metadata are shared with the generic path.
|
|
18
|
+
*/
|
|
19
|
+
export declare function signAndVerifyIronwoodPsbt(tx: fixedScriptWallet.ZcashIronwoodBitGoPsbt, signerKeychain: BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, { writeSignedWith }?: {
|
|
20
|
+
writeSignedWith?: boolean;
|
|
21
|
+
}): fixedScriptWallet.ZcashIronwoodBitGoPsbt;
|
|
22
|
+
/**
|
|
23
|
+
* Sign a v6 (Ironwood) Zcash prebuild. Called from `Zec.signTransaction` once the decoded
|
|
24
|
+
* prebuild is known to be an Ironwood PSBT; every other prebuild keeps the generic path.
|
|
25
|
+
*/
|
|
26
|
+
export declare function signIronwoodTransaction<TNumber extends number | bigint = number>(coin: Zec, tx: fixedScriptWallet.ZcashIronwoodBitGoPsbt, params: SignTransactionOptions<TNumber>): {
|
|
27
|
+
txHex: string;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=signIronwoodTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signIronwoodTransaction.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/signIronwoodTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,EACL,oBAAoB,EAGrB,MAAM,4CAA4C,CAAC;AAGpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,iBAAiB,CAAC,sBAAsB,EAC5C,cAAc,EAAE,KAAK,EACrB,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,EAAE,eAAuB,EAAE,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,iBAAiB,CAAC,sBAAsB,CAc1C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC9E,IAAI,EAAE,GAAG,EACT,EAAE,EAAE,iBAAiB,CAAC,sBAAsB,EAC5C,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBnB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import assert from 'assert';
|
|
2
|
+
import { isTriple } from '@bitgo/sdk-core';
|
|
3
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
4
|
+
import { getReplayProtectionPubkeys } from '../../transaction/fixedScript/replayProtection';
|
|
5
|
+
import { BulkSigningError } from '../../transaction/fixedScript/SigningError';
|
|
6
|
+
import { finalizeSignedPsbt } from '../../transaction/fixedScript/signTransaction';
|
|
7
|
+
import { verifyPsbtSignaturesWasm, writeWasmUtxoSignedWithKv, } from '../../transaction/fixedScript/signPsbtWasm';
|
|
8
|
+
import { getSignerKeychain, toSignTransactionResult } from '../../transaction/signTransaction';
|
|
9
|
+
/**
|
|
10
|
+
* Sign all transparent inputs of a v6 (Ironwood) Zcash PSBT and verify the signatures.
|
|
11
|
+
*
|
|
12
|
+
* v6 PSBTs override `sign(key)` to require the wallet root keys: on the first signing round —
|
|
13
|
+
* which the wasm enforces to be the user's root key — they derive the wallet ovk (the ECDH
|
|
14
|
+
* agreement of `rootWalletKeys.bitgoKey()` and the user root key) and finalize the shielded
|
|
15
|
+
* output's out_ciphertext before computing any transparent sighash. Later rounds no-op that
|
|
16
|
+
* step, so rootWalletKeys is passed unconditionally. Transparent inputs are signed with
|
|
17
|
+
* ordinary ECDSA over the ZIP-244 sighash either way.
|
|
18
|
+
*
|
|
19
|
+
* The generic `signAndVerifyPsbtWasm` cannot provide this: its `tx.sign(wasmSigner)` call does
|
|
20
|
+
* not satisfy the v6 override's rootWalletKeys requirement. Verification and signed-with
|
|
21
|
+
* metadata are shared with the generic path.
|
|
22
|
+
*/
|
|
23
|
+
export function signAndVerifyIronwoodPsbt(tx, signerKeychain, rootWalletKeys, replayProtection, { writeSignedWith = false } = {}) {
|
|
24
|
+
try {
|
|
25
|
+
tx.sign(signerKeychain, rootWalletKeys);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
throw new BulkSigningError(e);
|
|
29
|
+
}
|
|
30
|
+
verifyPsbtSignaturesWasm(tx, signerKeychain, rootWalletKeys, replayProtection);
|
|
31
|
+
if (writeSignedWith) {
|
|
32
|
+
writeWasmUtxoSignedWithKv(tx);
|
|
33
|
+
}
|
|
34
|
+
return tx;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Sign a v6 (Ironwood) Zcash prebuild. Called from `Zec.signTransaction` once the decoded
|
|
38
|
+
* prebuild is known to be an Ironwood PSBT; every other prebuild keeps the generic path.
|
|
39
|
+
*/
|
|
40
|
+
export function signIronwoodTransaction(coin, tx, params) {
|
|
41
|
+
const signerKeychain = getSignerKeychain('prv' in params ? params.prv : undefined);
|
|
42
|
+
assert(signerKeychain, 'missing signer keychain');
|
|
43
|
+
assert(params.pubs, 'pubs are required for fixed script signing');
|
|
44
|
+
assert(isTriple(params.pubs), 'pubs must be a triple');
|
|
45
|
+
const rootWalletKeys = fixedScriptWallet.RootWalletKeys.fromXpubs(params.pubs);
|
|
46
|
+
const signedPsbt = signAndVerifyIronwoodPsbt(tx, signerKeychain, rootWalletKeys, { publicKeys: getReplayProtectionPubkeys(coin.wasmName) }, { writeSignedWith: params.writeSignedWith });
|
|
47
|
+
const signedTx = finalizeSignedPsbt(signedPsbt, params);
|
|
48
|
+
return toSignTransactionResult(signedTx, params);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbklyb253b29kVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW1wbC96ZWMvc2lnbklyb253b29kVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQVMsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUMxQixNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSS9GOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLEVBQTRDLEVBQzVDLGNBQXFCLEVBQ3JCLGNBQWdELEVBQ2hELGdCQUFzQyxFQUN0QyxFQUFFLGVBQWUsR0FBRyxLQUFLLEtBQW9DLEVBQUU7SUFFL0QsSUFBSSxDQUFDO1FBQ0gsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHdCQUF3QixDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFL0UsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQix5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUFTLEVBQ1QsRUFBNEMsRUFDNUMsTUFBdUM7SUFFdkMsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkYsTUFBTSxDQUFDLGNBQWMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBRWxELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7SUFDbEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN2RCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUvRSxNQUFNLFVBQVUsR0FBRyx5QkFBeUIsQ0FDMUMsRUFBRSxFQUNGLGNBQWMsRUFDZCxjQUFjLEVBQ2QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQ3pELEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FDNUMsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxPQUFPLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBpc1RyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0UmVwbGF5UHJvdGVjdGlvblB1YmtleXMgfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9yZXBsYXlQcm90ZWN0aW9uJztcbmltcG9ydCB7IEJ1bGtTaWduaW5nRXJyb3IgfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9TaWduaW5nRXJyb3InO1xuaW1wb3J0IHsgZmluYWxpemVTaWduZWRQc2J0IH0gZnJvbSAnLi4vLi4vdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblRyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIFJlcGxheVByb3RlY3Rpb25LZXlzLFxuICB2ZXJpZnlQc2J0U2lnbmF0dXJlc1dhc20sXG4gIHdyaXRlV2FzbVV0eG9TaWduZWRXaXRoS3YsXG59IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbSc7XG5pbXBvcnQgeyBnZXRTaWduZXJLZXljaGFpbiwgdG9TaWduVHJhbnNhY3Rpb25SZXN1bHQgfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi9zaWduVHJhbnNhY3Rpb24nO1xuXG5pbXBvcnQgdHlwZSB7IFplYyB9IGZyb20gJy4vemVjJztcblxuLyoqXG4gKiBTaWduIGFsbCB0cmFuc3BhcmVudCBpbnB1dHMgb2YgYSB2NiAoSXJvbndvb2QpIFpjYXNoIFBTQlQgYW5kIHZlcmlmeSB0aGUgc2lnbmF0dXJlcy5cbiAqXG4gKiB2NiBQU0JUcyBvdmVycmlkZSBgc2lnbihrZXkpYCB0byByZXF1aXJlIHRoZSB3YWxsZXQgcm9vdCBrZXlzOiBvbiB0aGUgZmlyc3Qgc2lnbmluZyByb3VuZCDigJRcbiAqIHdoaWNoIHRoZSB3YXNtIGVuZm9yY2VzIHRvIGJlIHRoZSB1c2VyJ3Mgcm9vdCBrZXkg4oCUIHRoZXkgZGVyaXZlIHRoZSB3YWxsZXQgb3ZrICh0aGUgRUNESFxuICogYWdyZWVtZW50IG9mIGByb290V2FsbGV0S2V5cy5iaXRnb0tleSgpYCBhbmQgdGhlIHVzZXIgcm9vdCBrZXkpIGFuZCBmaW5hbGl6ZSB0aGUgc2hpZWxkZWRcbiAqIG91dHB1dCdzIG91dF9jaXBoZXJ0ZXh0IGJlZm9yZSBjb21wdXRpbmcgYW55IHRyYW5zcGFyZW50IHNpZ2hhc2guIExhdGVyIHJvdW5kcyBuby1vcCB0aGF0XG4gKiBzdGVwLCBzbyByb290V2FsbGV0S2V5cyBpcyBwYXNzZWQgdW5jb25kaXRpb25hbGx5LiBUcmFuc3BhcmVudCBpbnB1dHMgYXJlIHNpZ25lZCB3aXRoXG4gKiBvcmRpbmFyeSBFQ0RTQSBvdmVyIHRoZSBaSVAtMjQ0IHNpZ2hhc2ggZWl0aGVyIHdheS5cbiAqXG4gKiBUaGUgZ2VuZXJpYyBgc2lnbkFuZFZlcmlmeVBzYnRXYXNtYCBjYW5ub3QgcHJvdmlkZSB0aGlzOiBpdHMgYHR4LnNpZ24od2FzbVNpZ25lcilgIGNhbGwgZG9lc1xuICogbm90IHNhdGlzZnkgdGhlIHY2IG92ZXJyaWRlJ3Mgcm9vdFdhbGxldEtleXMgcmVxdWlyZW1lbnQuIFZlcmlmaWNhdGlvbiBhbmQgc2lnbmVkLXdpdGhcbiAqIG1ldGFkYXRhIGFyZSBzaGFyZWQgd2l0aCB0aGUgZ2VuZXJpYyBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeUlyb253b29kUHNidChcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoSXJvbndvb2RCaXRHb1BzYnQsXG4gIHNpZ25lcktleWNoYWluOiBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyxcbiAgeyB3cml0ZVNpZ25lZFdpdGggPSBmYWxzZSB9OiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfSA9IHt9XG4pOiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaElyb253b29kQml0R29Qc2J0IHtcbiAgdHJ5IHtcbiAgICB0eC5zaWduKHNpZ25lcktleWNoYWluLCByb290V2FsbGV0S2V5cyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgQnVsa1NpZ25pbmdFcnJvcihlKTtcbiAgfVxuXG4gIHZlcmlmeVBzYnRTaWduYXR1cmVzV2FzbSh0eCwgc2lnbmVyS2V5Y2hhaW4sIHJvb3RXYWxsZXRLZXlzLCByZXBsYXlQcm90ZWN0aW9uKTtcblxuICBpZiAod3JpdGVTaWduZWRXaXRoKSB7XG4gICAgd3JpdGVXYXNtVXR4b1NpZ25lZFdpdGhLdih0eCk7XG4gIH1cblxuICByZXR1cm4gdHg7XG59XG5cbi8qKlxuICogU2lnbiBhIHY2IChJcm9ud29vZCkgWmNhc2ggcHJlYnVpbGQuIENhbGxlZCBmcm9tIGBaZWMuc2lnblRyYW5zYWN0aW9uYCBvbmNlIHRoZSBkZWNvZGVkXG4gKiBwcmVidWlsZCBpcyBrbm93biB0byBiZSBhbiBJcm9ud29vZCBQU0JUOyBldmVyeSBvdGhlciBwcmVidWlsZCBrZWVwcyB0aGUgZ2VuZXJpYyBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbklyb253b29kVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGNvaW46IFplYyxcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoSXJvbndvb2RCaXRHb1BzYnQsXG4gIHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuKTogeyB0eEhleDogc3RyaW5nIH0ge1xuICBjb25zdCBzaWduZXJLZXljaGFpbiA9IGdldFNpZ25lcktleWNoYWluKCdwcnYnIGluIHBhcmFtcyA/IHBhcmFtcy5wcnYgOiB1bmRlZmluZWQpO1xuICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4sICdtaXNzaW5nIHNpZ25lciBrZXljaGFpbicpO1xuXG4gIGFzc2VydChwYXJhbXMucHVicywgJ3B1YnMgYXJlIHJlcXVpcmVkIGZvciBmaXhlZCBzY3JpcHQgc2lnbmluZycpO1xuICBhc3NlcnQoaXNUcmlwbGUocGFyYW1zLnB1YnMpLCAncHVicyBtdXN0IGJlIGEgdHJpcGxlJyk7XG4gIGNvbnN0IHJvb3RXYWxsZXRLZXlzID0gZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMuZnJvbVhwdWJzKHBhcmFtcy5wdWJzKTtcblxuICBjb25zdCBzaWduZWRQc2J0ID0gc2lnbkFuZFZlcmlmeUlyb253b29kUHNidChcbiAgICB0eCxcbiAgICBzaWduZXJLZXljaGFpbixcbiAgICByb290V2FsbGV0S2V5cyxcbiAgICB7IHB1YmxpY0tleXM6IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzKGNvaW4ud2FzbU5hbWUpIH0sXG4gICAgeyB3cml0ZVNpZ25lZFdpdGg6IHBhcmFtcy53cml0ZVNpZ25lZFdpdGggfVxuICApO1xuXG4gIGNvbnN0IHNpZ25lZFR4ID0gZmluYWxpemVTaWduZWRQc2J0KHNpZ25lZFBzYnQsIHBhcmFtcyk7XG4gIHJldHVybiB0b1NpZ25UcmFuc2FjdGlvblJlc3VsdChzaWduZWRUeCwgcGFyYW1zKTtcbn1cbiJdfQ==
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @prettier
|
|
3
3
|
*/
|
|
4
4
|
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
5
|
-
import { BitGoBase, ExtraPrebuildParamsOptions, MPCAlgorithm, Wallet } from '@bitgo/sdk-core';
|
|
6
|
-
import { AbstractUtxoCoin, ParseTransactionOptions } from '../../abstractUtxoCoin';
|
|
5
|
+
import { BitGoBase, ExtraPrebuildParamsOptions, HalfSignedUtxoTransaction, IWallet, MPCAlgorithm, SignedTransaction, Wallet } from '@bitgo/sdk-core';
|
|
6
|
+
import { AbstractUtxoCoin, ParseTransactionOptions, SignTransactionOptions, UtxoCoinSpecific, VerifyAddressOptions } from '../../abstractUtxoCoin';
|
|
7
7
|
import type { ParsedTransaction } from '../../transaction/types';
|
|
8
8
|
import { UtxoCoinName } from '../../names';
|
|
9
9
|
import { ZecAddressCodec } from './address';
|
|
@@ -20,6 +20,14 @@ export declare class Zec extends AbstractUtxoCoin {
|
|
|
20
20
|
getMPCAlgorithm(): MPCAlgorithm;
|
|
21
21
|
static createInstance(bitgo: BitGoBase): Zec;
|
|
22
22
|
get addressCodec(): ZecAddressCodec;
|
|
23
|
+
/**
|
|
24
|
+
* Shielded (Orchard/Ironwood) addresses are returned with `coinSpecific.shielded` and
|
|
25
|
+
* cannot be locally rederived from secp256k1 xpubs (RedPallas keychains carry none), so
|
|
26
|
+
* verify them against the platform-reported diversifier/pkD instead of the fixed-script
|
|
27
|
+
* transparent derivation the base class performs.
|
|
28
|
+
* @inheritdoc
|
|
29
|
+
*/
|
|
30
|
+
isWalletAddress(params: VerifyAddressOptions<UtxoCoinSpecific>, wallet?: IWallet): Promise<boolean>;
|
|
23
31
|
isValidAddress(address: string, param?: {
|
|
24
32
|
anyFormat?: boolean;
|
|
25
33
|
allowLightning?: boolean;
|
|
@@ -39,6 +47,12 @@ export declare class Zec extends AbstractUtxoCoin {
|
|
|
39
47
|
allowedInputScriptTypes?: ("p2sh" | "p2wsh" | "p2shP2wsh" | "p2trMusig2" | "p2tr")[];
|
|
40
48
|
}>;
|
|
41
49
|
decodeTransaction(input: Buffer | string): fixedScriptWallet.BitGoPsbt;
|
|
50
|
+
/**
|
|
51
|
+
* Route v6 (Ironwood) prebuilds to the Ironwood signing path — its `sign` override requires
|
|
52
|
+
* the wallet root keys to derive the ovk on the user's first signing round — and keep every
|
|
53
|
+
* other prebuild (v4 and non-PSBT) on the generic path.
|
|
54
|
+
*/
|
|
55
|
+
signTransaction<TNumber extends number | bigint = number>(params: SignTransactionOptions<TNumber>): Promise<SignedTransaction | HalfSignedUtxoTransaction>;
|
|
42
56
|
resolveRecipientsFromPsbt(input: Buffer | string, walletKeys: fixedScriptWallet.RootWalletKeys): PsbtRecipient[];
|
|
43
57
|
}
|
|
44
58
|
//# sourceMappingURL=zec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zec.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/zec.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAA8B,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,YAAY,EACZ,MAAM,EAEP,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"zec.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/zec.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAA8B,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,yBAAyB,EACzB,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,MAAM,EAEP,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAyB,aAAa,EAAE,MAAM,cAAc,CAAC;AAIpE,qBAAa,GAAI,SAAQ,gBAAgB;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAS;gBAExB,KAAK,EAAE,SAAS;IAI5B;;;;;OAKG;IACH,eAAe,IAAI,YAAY;IAI/B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG;IAI5C,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED;;;;;;OAMG;IACY,eAAe,CAAC,MAAM,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,OAAO;IAI7G,OAAO,CAAC,+BAA+B;IAyBxB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACtE,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACvC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IASvB,sBAAsB,CAAC,WAAW,EAAE,0BAA0B,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;IASzF,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC,SAAS;IAQ/E;;;;OAIG;IACY,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrE,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,iBAAiB,GAAG,yBAAyB,CAAC;IAYzD,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,cAAc,GAAG,aAAa,EAAE;CAOjH"}
|
package/dist/esm/impl/zec/zec.js
CHANGED
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
* @prettier
|
|
3
3
|
*/
|
|
4
4
|
import { fixedScriptWallet, hasPsbtMagic, zcashAddress } from '@bitgo/wasm-utxo';
|
|
5
|
-
import
|
|
5
|
+
import _ from 'lodash';
|
|
6
|
+
import { AbstractUtxoCoin, } from '../../abstractUtxoCoin';
|
|
6
7
|
import { stringToBufferTryFormats } from '../../transaction/decode';
|
|
7
8
|
import { toWasmUtxoCoinName } from '../../names';
|
|
8
9
|
import { AddressCodec } from '../../transaction/recipient';
|
|
9
10
|
import { ZecAddressCodec } from './address';
|
|
11
|
+
import { signIronwoodTransaction } from './signIronwoodTransaction';
|
|
10
12
|
import { resolvePsbtRecipients } from './recipients';
|
|
13
|
+
import { assertShieldedWalletAddress } from './shieldedAddress';
|
|
11
14
|
export class Zec extends AbstractUtxoCoin {
|
|
12
15
|
constructor(bitgo) {
|
|
13
16
|
super(bitgo);
|
|
@@ -28,6 +31,20 @@ export class Zec extends AbstractUtxoCoin {
|
|
|
28
31
|
get addressCodec() {
|
|
29
32
|
return new ZecAddressCodec(this.name, this.wasmName);
|
|
30
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Shielded (Orchard/Ironwood) addresses are returned with `coinSpecific.shielded` and
|
|
36
|
+
* cannot be locally rederived from secp256k1 xpubs (RedPallas keychains carry none), so
|
|
37
|
+
* verify them against the platform-reported diversifier/pkD instead of the fixed-script
|
|
38
|
+
* transparent derivation the base class performs.
|
|
39
|
+
* @inheritdoc
|
|
40
|
+
*/
|
|
41
|
+
async isWalletAddress(params, wallet) {
|
|
42
|
+
if (params.coinSpecific?.shielded) {
|
|
43
|
+
assertShieldedWalletAddress(this.name, params);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return super.isWalletAddress(params, wallet);
|
|
47
|
+
}
|
|
31
48
|
isValidAddress(address, param) {
|
|
32
49
|
return this.addressCodec.isValidAddress(address);
|
|
33
50
|
}
|
|
@@ -72,6 +89,23 @@ export class Zec extends AbstractUtxoCoin {
|
|
|
72
89
|
}
|
|
73
90
|
return fixedScriptWallet.ZcashPsbt.fromBytes(buffer, toWasmUtxoCoinName(this.name));
|
|
74
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Route v6 (Ironwood) prebuilds to the Ironwood signing path — its `sign` override requires
|
|
94
|
+
* the wallet root keys to derive the ovk on the user's first signing round — and keep every
|
|
95
|
+
* other prebuild (v4 and non-PSBT) on the generic path.
|
|
96
|
+
*/
|
|
97
|
+
async signTransaction(params) {
|
|
98
|
+
const txPrebuild = params?.txPrebuild;
|
|
99
|
+
if (!_.isObject(txPrebuild)) {
|
|
100
|
+
// Defer to the base path for its standard missing/malformed-prebuild validation errors.
|
|
101
|
+
return super.signTransaction(params);
|
|
102
|
+
}
|
|
103
|
+
const tx = this.decodeTransactionFromPrebuild(txPrebuild);
|
|
104
|
+
if (!(tx instanceof fixedScriptWallet.ZcashIronwoodBitGoPsbt)) {
|
|
105
|
+
return super.signTransaction(params);
|
|
106
|
+
}
|
|
107
|
+
return signIronwoodTransaction(this, tx, params);
|
|
108
|
+
}
|
|
75
109
|
resolveRecipientsFromPsbt(input, walletKeys) {
|
|
76
110
|
const psbt = this.decodeTransaction(input);
|
|
77
111
|
if (!(psbt instanceof fixedScriptWallet.ZcashBitGoPsbt)) {
|
|
@@ -80,4 +114,4 @@ export class Zec extends AbstractUtxoCoin {
|
|
|
80
114
|
return resolvePsbtRecipients(psbt, walletKeys, this.addressCodec);
|
|
81
115
|
}
|
|
82
116
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvemVjL3plYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFTakYsT0FBTyxFQUFFLGdCQUFnQixFQUEyQixNQUFNLHdCQUF3QixDQUFDO0FBRW5GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFpQixNQUFNLGNBQWMsQ0FBQztBQUdwRSxNQUFNLE9BQU8sR0FBSSxTQUFRLGdCQUFnQjtJQUd2QyxZQUFZLEtBQWdCO1FBQzFCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUhOLFNBQUksR0FBaUIsS0FBSyxDQUFDO0lBSXBDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWU7UUFDYixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUNwQyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLFlBQVk7UUFDdkIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWUsRUFBRSxLQUFtRTtRQUNqRyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENB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QUM1RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCBoYXNQc2J0TWFnaWMsIHpjYXNoQWRkcmVzcyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuaW1wb3J0IHtcbiAgQml0R29CYXNlLFxuICBFeHRyYVByZWJ1aWxkUGFyYW1zT3B0aW9ucyxcbiAgTVBDQWxnb3JpdGhtLFxuICBXYWxsZXQsXG4gIFVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL3R5cGVzJztcbmltcG9ydCB7IHN0cmluZ1RvQnVmZmVyVHJ5Rm9ybWF0cyB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL2RlY29kZSc7XG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUsIHRvV2FzbVV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcbmltcG9ydCB7IEFkZHJlc3NDb2RlYyB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL3JlY2lwaWVudCc7XG5cbmltcG9ydCB7IFplY0FkZHJlc3NDb2RlYyB9IGZyb20gJy4vYWRkcmVzcyc7XG5pbXBvcnQgeyByZXNvbHZlUHNidFJlY2lwaWVudHMsIFBzYnRSZWNpcGllbnQgfSBmcm9tICcuL3JlY2lwaWVudHMnO1xuaW1wb3J0IHR5cGUgeyBaY2FzaENvaW5OYW1lIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBaZWMgZXh0ZW5kcyBBYnN0cmFjdFV0eG9Db2luIHtcbiAgcmVhZG9ubHkgbmFtZTogVXR4b0NvaW5OYW1lID0gJ3plYyc7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSkge1xuICAgIHN1cGVyKGJpdGdvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBaRUMgc2hpZWxkZWQgKE9yY2hhcmQvSXJvbndvb2QpIGN1c3RvZGlhbCB3YWxsZXRzIHVzZSBSZWRQYWxsYXMgdGhyZXNob2xkIGtleXMuXG4gICAqIFRyYW5zcGFyZW50IChzZWNwMjU2azEgbXVsdGlzaWcpIGZsb3dzIGFyZSB1bmFmZmVjdGVkOiBNUENBbGdvcml0aG0gaXMgb25seVxuICAgKiBjb25zdWx0ZWQgb24gdGhlIFRTUyBjdXN0b2RpYWwgd2FsbGV0LWNyZWF0aW9uIHBhdGguXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ3JlZHBhbGxhcyc7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSk6IFplYyB7XG4gICAgcmV0dXJuIG5ldyBaZWMoYml0Z28pO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IGFkZHJlc3NDb2RlYygpOiBaZWNBZGRyZXNzQ29kZWMge1xuICAgIHJldHVybiBuZXcgWmVjQWRkcmVzc0NvZGVjKHRoaXMubmFtZSwgdGhpcy53YXNtTmFtZSk7XG4gIH1cblxuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHBhcmFtPzogeyBhbnlGb3JtYXQ/OiBib29sZWFuOyBhbGxvd0xpZ2h0bmluZz86IGJvb2xlYW4gfSB8IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hZGRyZXNzQ29kZWMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cblxuICBwcml2YXRlIGluZmVyVW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UoXG4gICAgcmVjaXBpZW50czogeyBhZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQgfVtdIHwgdW5kZWZpbmVkXG4gICk6IFVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzaGllbGRlZG5lc3MgPSAocmVjaXBpZW50cyA/PyBbXSkubWFwKChyZWNpcGllbnQpOiBVbmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gcmVjaXBpZW50LmFkZHJlc3M7XG4gICAgICBpZiAoYWRkcmVzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAndHJhbnNwYXJlbnQnO1xuICAgICAgfVxuICAgICAgaWYgKEFkZHJlc3NDb2RlYy5pc1NjcmlwdFJlY2lwaWVudChhZGRyZXNzKSkge1xuICAgICAgICByZXR1cm4gJ3RyYW5zcGFyZW50JztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc1RyYW5zcGFyZW50UmVjZWl2ZXIgPSB6Y2FzaEFkZHJlc3MuaGFzVHJhbnNwYXJlbnRSZWNlaXZlcihhZGRyZXNzLCB0aGlzLndhc21OYW1lKTtcbiAgICAgIGNvbnN0IGhhc09yY2hhcmRSZWNlaXZlciA9IHpjYXNoQWRkcmVzcy5oYXNPcmNoYXJkUmVjZWl2ZXIoYWRkcmVzcywgdGhpcy53YXNtTmFtZSk7XG4gICAgICByZXR1cm4gaGFzT3JjaGFyZFJlY2VpdmVyICYmICFoYXNUcmFuc3BhcmVudFJlY2VpdmVyXG4gICAgICAgID8gJ3NoaWVsZGVkJ1xuICAgICAgICA6IGhhc1RyYW5zcGFyZW50UmVjZWl2ZXJcbiAgICAgICAgPyAndHJhbnNwYXJlbnQnXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIGlmIChzaGllbGRlZG5lc3MuaW5jbHVkZXMoJ3NoaWVsZGVkJykgJiYgc2hpZWxkZWRuZXNzLmluY2x1ZGVzKCd0cmFuc3BhcmVudCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01peGVkIHNoaWVsZGVkIGFuZCB0cmFuc3BhcmVudCByZWNpcGllbnRzIGFyZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBzaGllbGRlZG5lc3MuaW5jbHVkZXMoJ3NoaWVsZGVkJykgPyAnc2hpZWxkZWQnIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcGFyc2VUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgICBwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4gICk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb248VE51bWJlcj4+IHtcbiAgICBjb25zdCBwcmVmZXJlbmNlID1cbiAgICAgIHBhcmFtcy50eFBhcmFtcy51bmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSA/PyB0aGlzLmluZmVyVW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UocGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMpO1xuICAgIHJldHVybiB0aGlzLnBhcnNlVHJhbnNhY3Rpb25XaXRoQWRkcmVzc0NvZGVjKFxuICAgICAgcGFyYW1zLFxuICAgICAgbmV3IFplY0FkZHJlc3NDb2RlYyh0aGlzLm5hbWUsIHRoaXMud2FzbU5hbWUsIHByZWZlcmVuY2UgPz8gJ3RyYW5zcGFyZW50JylcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ2V0RXh0cmFQcmVidWlsZFBhcmFtcyhidWlsZFBhcmFtczogRXh0cmFQcmVidWlsZFBhcmFtc09wdGlvbnMgJiB7IHdhbGxldDogV2FsbGV0IH0pIHtcbiAgICBjb25zdCBleHRyYVBhcmFtcyA9IGF3YWl0IHN1cGVyLmdldEV4dHJhUHJlYnVpbGRQYXJhbXMoYnVpbGRQYXJhbXMpO1xuICAgIGNvbnN0IHsgdW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UgfSA9IGJ1aWxkUGFyYW1zO1xuICAgIGlmICh1bmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXh0cmFQYXJhbXM7XG4gICAgfVxuICAgIHJldHVybiB7IC4uLmV4dHJhUGFyYW1zLCB1bmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgZGVjb2RlVHJhbnNhY3Rpb24oaW5wdXQ6IEJ1ZmZlciB8IHN0cmluZyk6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gICAgY29uc3QgYnVmZmVyID0gdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyA/IHN0cmluZ1RvQnVmZmVyVHJ5Rm9ybWF0cyhpbnB1dCwgWydoZXgnLCAnYmFzZTY0J10pIDogaW5wdXQ7XG4gICAgaWYgKCFoYXNQc2J0TWFnaWMoYnVmZmVyKSkge1xuICAgICAgcmV0dXJuIHN1cGVyLmRlY29kZVRyYW5zYWN0aW9uKGlucHV0KTtcbiAgICB9XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoUHNidC5mcm9tQnl0ZXMoYnVmZmVyLCB0b1dhc21VdHhvQ29pbk5hbWUodGhpcy5uYW1lKSBhcyBaY2FzaENvaW5OYW1lKTtcbiAgfVxuICByZXNvbHZlUmVjaXBpZW50c0Zyb21Qc2J0KGlucHV0OiBCdWZmZXIgfCBzdHJpbmcsIHdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzKTogUHNidFJlY2lwaWVudFtdIHtcbiAgICBjb25zdCBwc2J0ID0gdGhpcy5kZWNvZGVUcmFuc2FjdGlvbihpbnB1dCk7XG4gICAgaWYgKCEocHNidCBpbnN0YW5jZW9mIGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoQml0R29Qc2J0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBhIFpjYXNoIFBTQlQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVQc2J0UmVjaXBpZW50cyhwc2J0LCB3YWxsZXRLZXlzLCB0aGlzLmFkZHJlc3NDb2RlYyk7XG4gIH1cbn1cbiJdfQ==
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvemVjL3plYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFXakYsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxnQkFBZ0IsR0FLakIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBaUIsTUFBTSxjQUFjLENBQUM7QUFDcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEUsTUFBTSxPQUFPLEdBQUksU0FBUSxnQkFBZ0I7SUFHdkMsWUFBWSxLQUFnQjtRQUMxQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITixTQUFJLEdBQWlCLEtBQUssQ0FBQztJQUlwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlO1FBQ2IsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxZQUFZO1FBQ3ZCLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMs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LENBQUMsQ0FBQyxJQUFJLFlBQVksaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8scUJBQXFCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgZml4ZWRTY3JpcHRXYWxsZXQsIGhhc1BzYnRNYWdpYywgemNhc2hBZGRyZXNzIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5pbXBvcnQge1xuICBCaXRHb0Jhc2UsXG4gIEV4dHJhUHJlYnVpbGRQYXJhbXNPcHRpb25zLFxuICBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uLFxuICBJV2FsbGV0LFxuICBNUENBbGdvcml0aG0sXG4gIFNpZ25lZFRyYW5zYWN0aW9uLFxuICBXYWxsZXQsXG4gIFVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RVdHhvQ29pbixcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFV0eG9Db2luU3BlY2lmaWMsXG4gIFZlcmlmeUFkZHJlc3NPcHRpb25zLFxufSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB0eXBlIHsgUGFyc2VkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi90eXBlcyc7XG5pbXBvcnQgeyBzdHJpbmdUb0J1ZmZlclRyeUZvcm1hdHMgfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi9kZWNvZGUnO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lLCB0b1dhc21VdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi9uYW1lcyc7XG5pbXBvcnQgeyBBZGRyZXNzQ29kZWMgfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi9yZWNpcGllbnQnO1xuXG5pbXBvcnQgeyBaZWNBZGRyZXNzQ29kZWMgfSBmcm9tICcuL2FkZHJlc3MnO1xuaW1wb3J0IHsgc2lnbklyb253b29kVHJhbnNhY3Rpb24gfSBmcm9tICcuL3NpZ25Jcm9ud29vZFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IHJlc29sdmVQc2J0UmVjaXBpZW50cywgUHNidFJlY2lwaWVudCB9IGZyb20gJy4vcmVjaXBpZW50cyc7XG5pbXBvcnQgeyBhc3NlcnRTaGllbGRlZFdhbGxldEFkZHJlc3MgfSBmcm9tICcuL3NoaWVsZGVkQWRkcmVzcyc7XG5pbXBvcnQgdHlwZSB7IFpjYXNoQ29pbk5hbWUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFplYyBleHRlbmRzIEFic3RyYWN0VXR4b0NvaW4ge1xuICByZWFkb25seSBuYW1lOiBVdHhvQ29pbk5hbWUgPSAnemVjJztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlKSB7XG4gICAgc3VwZXIoYml0Z28pO1xuICB9XG5cbiAgLyoqXG4gICAqIFpFQyBzaGllbGRlZCAoT3JjaGFyZC9Jcm9ud29vZCkgY3VzdG9kaWFsIHdhbGxldHMgdXNlIFJlZFBhbGxhcyB0aHJlc2hvbGQga2V5cy5cbiAgICogVHJhbnNwYXJlbnQgKHNlY3AyNTZrMSBtdWx0aXNpZykgZmxvd3MgYXJlIHVuYWZmZWN0ZWQ6IE1QQ0FsZ29yaXRobSBpcyBvbmx5XG4gICAqIGNvbnN1bHRlZCBvbiB0aGUgVFNTIGN1c3RvZGlhbCB3YWxsZXQtY3JlYXRpb24gcGF0aC5cbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAncmVkcGFsbGFzJztcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlKTogWmVjIHtcbiAgICByZXR1cm4gbmV3IFplYyhiaXRnbyk7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgYWRkcmVzc0NvZGVjKCk6IFplY0FkZHJlc3NDb2RlYyB7XG4gICAgcmV0dXJuIG5ldyBaZWNBZGRyZXNzQ29kZWModGhpcy5uYW1lLCB0aGlzLndhc21OYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGllbGRlZCAoT3JjaGFyZC9Jcm9ud29vZCkgYWRkcmVzc2VzIGFyZSByZXR1cm5lZCB3aXRoIGBjb2luU3BlY2lmaWMuc2hpZWxkZWRgIGFuZFxuICAgKiBjYW5ub3QgYmUgbG9jYWxseSByZWRlcml2ZWQgZnJvbSBzZWNwMjU2azEgeHB1YnMgKFJlZFBhbGxhcyBrZXljaGFpbnMgY2Fycnkgbm9uZSksIHNvXG4gICAqIHZlcmlmeSB0aGVtIGFnYWluc3QgdGhlIHBsYXRmb3JtLXJlcG9ydGVkIGRpdmVyc2lmaWVyL3BrRCBpbnN0ZWFkIG9mIHRoZSBmaXhlZC1zY3JpcHRcbiAgICogdHJhbnNwYXJlbnQgZGVyaXZhdGlvbiB0aGUgYmFzZSBjbGFzcyBwZXJmb3Jtcy5cbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zPFV0eG9Db2luU3BlY2lmaWM+LCB3YWxsZXQ/OiBJV2FsbGV0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHBhcmFtcy5jb2luU3BlY2lmaWM/LnNoaWVsZGVkKSB7XG4gICAgICBhc3NlcnRTaGllbGRlZFdhbGxldEFkZHJlc3ModGhpcy5uYW1lLCBwYXJhbXMpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5pc1dhbGxldEFkZHJlc3MocGFyYW1zLCB3YWxsZXQpO1xuICB9XG5cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBwYXJhbT86IHsgYW55Rm9ybWF0PzogYm9vbGVhbjsgYWxsb3dMaWdodG5pbmc/OiBib29sZWFuIH0gfCBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzc0NvZGVjLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmZlclVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlKFxuICAgIHJlY2lwaWVudHM6IHsgYWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkIH1bXSB8IHVuZGVmaW5lZFxuICApOiBVbmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc2hpZWxkZWRuZXNzID0gKHJlY2lwaWVudHMgPz8gW10pLm1hcCgocmVjaXBpZW50KTogVW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UgfCB1bmRlZmluZWQgPT4ge1xuICAgICAgY29uc3QgYWRkcmVzcyA9IHJlY2lwaWVudC5hZGRyZXNzO1xuICAgICAgaWYgKGFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gJ3RyYW5zcGFyZW50JztcbiAgICAgIH1cbiAgICAgIGlmIChBZGRyZXNzQ29kZWMuaXNTY3JpcHRSZWNpcGllbnQoYWRkcmVzcykpIHtcbiAgICAgICAgcmV0dXJuICd0cmFuc3BhcmVudCc7XG4gICAgICB9XG4gICAgICBjb25zdCBoYXNUcmFuc3BhcmVudFJlY2VpdmVyID0gemNhc2hBZGRyZXNzLmhhc1RyYW5zcGFyZW50UmVjZWl2ZXIoYWRkcmVzcywgdGhpcy53YXNtTmFtZSk7XG4gICAgICBjb25zdCBoYXNPcmNoYXJkUmVjZWl2ZXIgPSB6Y2FzaEFkZHJlc3MuaGFzT3JjaGFyZFJlY2VpdmVyKGFkZHJlc3MsIHRoaXMud2FzbU5hbWUpO1xuICAgICAgcmV0dXJuIGhhc09yY2hhcmRSZWNlaXZlciAmJiAhaGFzVHJhbnNwYXJlbnRSZWNlaXZlclxuICAgICAgICA/ICdzaGllbGRlZCdcbiAgICAgICAgOiBoYXNUcmFuc3BhcmVudFJlY2VpdmVyXG4gICAgICAgID8gJ3RyYW5zcGFyZW50J1xuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgICBpZiAoc2hpZWxkZWRuZXNzLmluY2x1ZGVzKCdzaGllbGRlZCcpICYmIHNoaWVsZGVkbmVzcy5pbmNsdWRlcygndHJhbnNwYXJlbnQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXhlZCBzaGllbGRlZCBhbmQgdHJhbnNwYXJlbnQgcmVjaXBpZW50cyBhcmUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gc2hpZWxkZWRuZXNzLmluY2x1ZGVzKCdzaGllbGRlZCcpID8gJ3NoaWVsZGVkJyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuICApOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXI+PiB7XG4gICAgY29uc3QgcHJlZmVyZW5jZSA9XG4gICAgICBwYXJhbXMudHhQYXJhbXMudW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UgPz8gdGhpcy5pbmZlclVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlKHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZVRyYW5zYWN0aW9uV2l0aEFkZHJlc3NDb2RlYyhcbiAgICAgIHBhcmFtcyxcbiAgICAgIG5ldyBaZWNBZGRyZXNzQ29kZWModGhpcy5uYW1lLCB0aGlzLndhc21OYW1lLCBwcmVmZXJlbmNlID8/ICd0cmFuc3BhcmVudCcpXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldEV4dHJhUHJlYnVpbGRQYXJhbXMoYnVpbGRQYXJhbXM6IEV4dHJhUHJlYnVpbGRQYXJhbXNPcHRpb25zICYgeyB3YWxsZXQ6IFdhbGxldCB9KSB7XG4gICAgY29uc3QgZXh0cmFQYXJhbXMgPSBhd2FpdCBzdXBlci5nZXRFeHRyYVByZWJ1aWxkUGFyYW1zKGJ1aWxkUGFyYW1zKTtcbiAgICBjb25zdCB7IHVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlIH0gPSBidWlsZFBhcmFtcztcbiAgICBpZiAodW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV4dHJhUGFyYW1zO1xuICAgIH1cbiAgICByZXR1cm4geyAuLi5leHRyYVBhcmFtcywgdW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UgfTtcbiAgfVxuXG4gIG92ZXJyaWRlIGRlY29kZVRyYW5zYWN0aW9uKGlucHV0OiBCdWZmZXIgfCBzdHJpbmcpOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICAgIGNvbnN0IGJ1ZmZlciA9IHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgPyBzdHJpbmdUb0J1ZmZlclRyeUZvcm1hdHMoaW5wdXQsIFsnaGV4JywgJ2Jhc2U2NCddKSA6IGlucHV0O1xuICAgIGlmICghaGFzUHNidE1hZ2ljKGJ1ZmZlcikpIHtcbiAgICAgIHJldHVybiBzdXBlci5kZWNvZGVUcmFuc2FjdGlvbihpbnB1dCk7XG4gICAgfVxuICAgIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaFBzYnQuZnJvbUJ5dGVzKGJ1ZmZlciwgdG9XYXNtVXR4b0NvaW5OYW1lKHRoaXMubmFtZSkgYXMgWmNhc2hDb2luTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogUm91dGUgdjYgKElyb253b29kKSBwcmVidWlsZHMgdG8gdGhlIElyb253b29kIHNpZ25pbmcgcGF0aCDigJQgaXRzIGBzaWduYCBvdmVycmlkZSByZXF1aXJlc1xuICAgKiB0aGUgd2FsbGV0IHJvb3Qga2V5cyB0byBkZXJpdmUgdGhlIG92ayBvbiB0aGUgdXNlcidzIGZpcnN0IHNpZ25pbmcgcm91bmQg4oCUIGFuZCBrZWVwIGV2ZXJ5XG4gICAqIG90aGVyIHByZWJ1aWxkICh2NCBhbmQgbm9uLVBTQlQpIG9uIHRoZSBnZW5lcmljIHBhdGguXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyBzaWduVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4gICk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24gfCBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHhQcmVidWlsZCA9IHBhcmFtcz8udHhQcmVidWlsZDtcbiAgICBpZiAoIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICAgIC8vIERlZmVyIHRvIHRoZSBiYXNlIHBhdGggZm9yIGl0cyBzdGFuZGFyZCBtaXNzaW5nL21hbGZvcm1lZC1wcmVidWlsZCB2YWxpZGF0aW9uIGVycm9ycy5cbiAgICAgIHJldHVybiBzdXBlci5zaWduVHJhbnNhY3Rpb24ocGFyYW1zKTtcbiAgICB9XG4gICAgY29uc3QgdHggPSB0aGlzLmRlY29kZVRyYW5zYWN0aW9uRnJvbVByZWJ1aWxkKHR4UHJlYnVpbGQpO1xuICAgIGlmICghKHR4IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hJcm9ud29vZEJpdEdvUHNidCkpIHtcbiAgICAgIHJldHVybiBzdXBlci5zaWduVHJhbnNhY3Rpb24ocGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25Jcm9ud29vZFRyYW5zYWN0aW9uKHRoaXMsIHR4LCBwYXJhbXMpO1xuICB9XG4gIHJlc29sdmVSZWNpcGllbnRzRnJvbVBzYnQoaW5wdXQ6IEJ1ZmZlciB8IHN0cmluZywgd2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMpOiBQc2J0UmVjaXBpZW50W10ge1xuICAgIGNvbnN0IHBzYnQgPSB0aGlzLmRlY29kZVRyYW5zYWN0aW9uKGlucHV0KTtcbiAgICBpZiAoIShwc2J0IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hCaXRHb1BzYnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGEgWmNhc2ggUFNCVCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZVBzYnRSZWNpcGllbnRzKHBzYnQsIHdhbGxldEtleXMsIHRoaXMuYWRkcmVzc0NvZGVjKTtcbiAgfVxufVxuIl19
|
|
@@ -3,6 +3,13 @@ import { Musig2Participant } from './musig2';
|
|
|
3
3
|
export type ReplayProtectionKeys = {
|
|
4
4
|
publicKeys: (Uint8Array | ECPair)[];
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Verify signatures on all signed inputs, per-input for granular error reporting.
|
|
8
|
+
* Shared by the generic wasm signing path and Zec's Ironwood (v6) signing path.
|
|
9
|
+
*/
|
|
10
|
+
export declare function verifyPsbtSignaturesWasm(tx: fixedScriptWallet.BitGoPsbt, wasmSigner: BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys): void;
|
|
11
|
+
/** Embed the wasm-utxo version metadata into the signed PSBT. Shared by all wasm signing paths. */
|
|
12
|
+
export declare function writeWasmUtxoSignedWithKv(tx: fixedScriptWallet.BitGoPsbt): void;
|
|
6
13
|
/**
|
|
7
14
|
* Sign all inputs of a PSBT and verify signatures after signing.
|
|
8
15
|
* Uses bulk signing for performance (signs all matching inputs in one pass).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signPsbtWasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAsB,MAAM,kBAAkB,CAAC;AAG/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACrC,CAAC;AAmBF;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,EAAE,eAAuB,EAAE,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,iBAAiB,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"signPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signPsbtWasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAsB,MAAM,kBAAkB,CAAC;AAG/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACrC,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,UAAU,EAAE,KAAK,EACjB,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,GACrC,IAAI,CAyBN;AAED,mGAAmG;AACnG,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAS/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,EAAE,eAAuB,EAAE,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,iBAAiB,CAAC,SAAS,CAiB7B;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,MAAM,EAAE;IACN,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAmDtC"}
|
|
@@ -16,20 +16,10 @@ function hasKeyPathSpendInput(tx, rootWalletKeys, replayProtection) {
|
|
|
16
16
|
return parsed.inputs.some((input) => input.scriptType === 'p2trMusig2KeyPath');
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* Collects and logs signing errors and verification errors, throws error in the end if any of them failed.
|
|
19
|
+
* Verify signatures on all signed inputs, per-input for granular error reporting.
|
|
20
|
+
* Shared by the generic wasm signing path and Zec's Ironwood (v6) signing path.
|
|
22
21
|
*/
|
|
23
|
-
export function
|
|
24
|
-
const wasmSigner = toWasmBIP32(signerKeychain);
|
|
25
|
-
// Bulk sign all wallet inputs (ECDSA + MuSig2) - much faster than per-input signing
|
|
26
|
-
try {
|
|
27
|
-
tx.sign(wasmSigner);
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
throw new BulkSigningError(e);
|
|
31
|
-
}
|
|
32
|
-
// Verify signatures for all signed inputs (still per-input for granular error reporting)
|
|
22
|
+
export function verifyPsbtSignaturesWasm(tx, wasmSigner, rootWalletKeys, replayProtection) {
|
|
33
23
|
const parsed = tx.parseTransactionWithWalletKeys(rootWalletKeys, { replayProtection });
|
|
34
24
|
const verifyErrors = [];
|
|
35
25
|
parsed.inputs.forEach((input, inputIndex) => {
|
|
@@ -50,13 +40,33 @@ export function signAndVerifyPsbtWasm(tx, signerKeychain, rootWalletKeys, replay
|
|
|
50
40
|
if (verifyErrors.length) {
|
|
51
41
|
throw new TransactionSigningError([], verifyErrors);
|
|
52
42
|
}
|
|
43
|
+
}
|
|
44
|
+
/** Embed the wasm-utxo version metadata into the signed PSBT. Shared by all wasm signing paths. */
|
|
45
|
+
export function writeWasmUtxoSignedWithKv(tx) {
|
|
46
|
+
const versionInfo = getWasmUtxoVersion();
|
|
47
|
+
const versionPayload = new TextEncoder().encode(JSON.stringify({
|
|
48
|
+
version: versionInfo.version,
|
|
49
|
+
gitHash: versionInfo.gitHash,
|
|
50
|
+
}));
|
|
51
|
+
tx.setKV({ type: 'bitgo', subtype: fixedScriptWallet.BitGoKeySubtype.WasmUtxoSignedWith }, versionPayload);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Sign all inputs of a PSBT and verify signatures after signing.
|
|
55
|
+
* Uses bulk signing for performance (signs all matching inputs in one pass).
|
|
56
|
+
* Collects and logs signing errors and verification errors, throws error in the end if any of them failed.
|
|
57
|
+
*/
|
|
58
|
+
export function signAndVerifyPsbtWasm(tx, signerKeychain, rootWalletKeys, replayProtection, { writeSignedWith = false } = {}) {
|
|
59
|
+
const wasmSigner = toWasmBIP32(signerKeychain);
|
|
60
|
+
// Bulk sign all wallet inputs (ECDSA + MuSig2) - much faster than per-input signing
|
|
61
|
+
try {
|
|
62
|
+
tx.sign(wasmSigner);
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
throw new BulkSigningError(e);
|
|
66
|
+
}
|
|
67
|
+
verifyPsbtSignaturesWasm(tx, wasmSigner, rootWalletKeys, replayProtection);
|
|
53
68
|
if (writeSignedWith) {
|
|
54
|
-
|
|
55
|
-
const versionPayload = new TextEncoder().encode(JSON.stringify({
|
|
56
|
-
version: versionInfo.version,
|
|
57
|
-
gitHash: versionInfo.gitHash,
|
|
58
|
-
}));
|
|
59
|
-
tx.setKV({ type: 'bitgo', subtype: fixedScriptWallet.BitGoKeySubtype.WasmUtxoSignedWith }, versionPayload);
|
|
69
|
+
writeWasmUtxoSignedWithKv(tx);
|
|
60
70
|
}
|
|
61
71
|
return tx;
|
|
62
72
|
}
|
|
@@ -108,4 +118,4 @@ export async function signPsbtWithMusig2ParticipantWasm(coin, tx, signerKeychain
|
|
|
108
118
|
writeSignedWith: params.writeSignedWith,
|
|
109
119
|
});
|
|
110
120
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLEtBQUssRUFBaUIsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RixTQUFTLFdBQVcsQ0FBQyxHQUFpQztJQUNwRCxPQUFPLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBTUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztBQUV2RSxTQUFTLG9CQUFvQixDQUMzQixFQUErQixFQUMvQixjQUFnRCxFQUNoRCxnQkFBc0M7SUFFdEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN2RixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLG1CQUFtQixDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEVBQStCLEVBQy9CLGNBQTRDLEVBQzVDLGNBQWdELEVBQ2hELGdCQUFzQyxFQUN0QyxFQUFFLGVBQWUsR0FBRyxLQUFLLEtBQW9DLEVBQUU7SUFFL0QsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9DLG9GQUFvRjtJQUNwRixJQUFJLENBQUM7UUFDSCxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx5RkFBeUY7SUFDekYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN2RixNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO0lBRXJELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO1FBQzFDLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNwQyxnRUFBZ0U7WUFDaEUsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELFlBQVksQ0FBQyxJQUFJLENBQ2YsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQ3RHLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQVMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksdUJBQXVCLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFDekMsTUFBTSxjQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQzdDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87WUFDNUIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1NBQzdCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGlDQUFpQyxDQUNyRCxJQUFvRCxFQUNwRCxFQUErQixFQUMvQixjQUFnRCxFQUNoRCxjQUFnRCxFQUNoRCxNQUtDO0lBRUQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUU1RSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUN0RSxRQUFRLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixLQUFLLGFBQWE7Z0JBQ2hCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDbkIsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLENBQUM7WUFDWixLQUFLLGVBQWU7Z0JBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7Z0JBQ3ZFLE9BQU8sTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxDQUNKLFVBQVUsRUFDViw0Q0FBNEMsZUFBZSxDQUFDLElBQUk7bUlBQ3lELENBQzFILENBQUM7Z0JBQ0YsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxFQUFFLEdBQUcsVUFBVSxDQUFDO2dCQUNoQixNQUFNO1lBQ1IsQ0FBQztZQUNEO2dCQUNFLDBDQUEwQztnQkFDMUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsNkNBQTZDLENBQUMsQ0FBQztnQkFDdkUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNuQixFQUFFLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pDLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLGVBQWU7Z0JBQ2xCOzs7bUJBR0c7Z0JBQ0gsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QixPQUFPLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtRQUN4RixlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7S0FDeEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgQklQMzIsIGJpcDMyLCBFQ1BhaXIsIGZpeGVkU2NyaXB0V2FsbGV0LCBnZXRXYXNtVXR4b1ZlcnNpb24gfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgQnVsa1NpZ25pbmdFcnJvciwgSW5wdXRTaWduaW5nRXJyb3IsIFRyYW5zYWN0aW9uU2lnbmluZ0Vycm9yIH0gZnJvbSAnLi9TaWduaW5nRXJyb3InO1xuaW1wb3J0IHsgTXVzaWcyUGFydGljaXBhbnQgfSBmcm9tICcuL211c2lnMic7XG5cbmZ1bmN0aW9uIHRvV2FzbUJJUDMyKGtleTogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMik6IEJJUDMyIHtcbiAgcmV0dXJuIGtleSBpbnN0YW5jZW9mIEJJUDMyID8ga2V5IDogQklQMzIuZnJvbUJhc2U1OChrZXkudG9CYXNlNTgoKSk7XG59XG5cbmV4cG9ydCB0eXBlIFJlcGxheVByb3RlY3Rpb25LZXlzID0ge1xuICBwdWJsaWNLZXlzOiAoVWludDhBcnJheSB8IEVDUGFpcilbXTtcbn07XG5cbi8qKlxuICogS2V5IFZhbHVlOiBVbnNpZ25lZCB0eCBpZCA9PiBQU0JUXG4gKiBJdCBpcyB1c2VkIHRvIGNhY2hlIFBTQlRzIHdpdGggdGFwcm9vdCBrZXkgcGF0aCAoTXVTaWcyKSBpbnB1dHMgZHVyaW5nIGV4dGVybmFsIGV4cHJlc3Mgc2lnbmVyIGlzIGFjdGl2YXRlZC5cbiAqIFJlYXNvbjogTXVTaWcyIHNpZ25lciBzZWN1cmUgbm9uY2UgaXMgY2FjaGVkIGluIHRoZSBCaXRHb1BzYnQgb2JqZWN0LiBJdCB3aWxsIGJlIHJlcXVpcmVkIGR1cmluZyB0aGUgc2lnbmluZyBzdGVwLlxuICogRm9yIG1vcmUgaW5mbywgY2hlY2sgU2lnblRyYW5zYWN0aW9uT3B0aW9ucy5zaWduaW5nU3RlcFxuICovXG5jb25zdCBQU0JUX0NBQ0hFX1dBU00gPSBuZXcgTWFwPHN0cmluZywgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PigpO1xuXG5mdW5jdGlvbiBoYXNLZXlQYXRoU3BlbmRJbnB1dChcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhcnNlZCA9IHR4LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgeyByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICByZXR1cm4gcGFyc2VkLmlucHV0cy5zb21lKChpbnB1dCkgPT4gaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzJLZXlQYXRoJyk7XG59XG5cbi8qKlxuICogU2lnbiBhbGwgaW5wdXRzIG9mIGEgUFNCVCBhbmQgdmVyaWZ5IHNpZ25hdHVyZXMgYWZ0ZXIgc2lnbmluZy5cbiAqIFVzZXMgYnVsayBzaWduaW5nIGZvciBwZXJmb3JtYW5jZSAoc2lnbnMgYWxsIG1hdGNoaW5nIGlucHV0cyBpbiBvbmUgcGFzcykuXG4gKiBDb2xsZWN0cyBhbmQgbG9ncyBzaWduaW5nIGVycm9ycyBhbmQgdmVyaWZpY2F0aW9uIGVycm9ycywgdGhyb3dzIGVycm9yIGluIHRoZSBlbmQgaWYgYW55IG9mIHRoZW0gZmFpbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyxcbiAgeyB3cml0ZVNpZ25lZFdpdGggPSBmYWxzZSB9OiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfSA9IHt9XG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCB3YXNtU2lnbmVyID0gdG9XYXNtQklQMzIoc2lnbmVyS2V5Y2hhaW4pO1xuXG4gIC8vIEJ1bGsgc2lnbiBhbGwgd2FsbGV0IGlucHV0cyAoRUNEU0EgKyBNdVNpZzIpIC0gbXVjaCBmYXN0ZXIgdGhhbiBwZXItaW5wdXQgc2lnbmluZ1xuICB0cnkge1xuICAgIHR4LnNpZ24od2FzbVNpZ25lcik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgQnVsa1NpZ25pbmdFcnJvcihlKTtcbiAgfVxuXG4gIC8vIFZlcmlmeSBzaWduYXR1cmVzIGZvciBhbGwgc2lnbmVkIGlucHV0cyAoc3RpbGwgcGVyLWlucHV0IGZvciBncmFudWxhciBlcnJvciByZXBvcnRpbmcpXG4gIGNvbnN0IHBhcnNlZCA9IHR4LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgeyByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICBjb25zdCB2ZXJpZnlFcnJvcnM6IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD5bXSA9IFtdO1xuXG4gIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgLy8gU2tpcCByZXBsYXkgcHJvdGVjdGlvbiBpbnB1dHMgLSB0aGV5IGFyZSBwbGF0Zm9ybSBzaWduZWQgb25seVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dElkID0gYCR7aW5wdXQucHJldmlvdXNPdXRwdXQudHhpZH06JHtpbnB1dC5wcmV2aW91c091dHB1dC52b3V0fWA7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdHgudmVyaWZ5U2lnbmF0dXJlKGlucHV0SW5kZXgsIHdhc21TaWduZXIpKSB7XG4gICAgICAgIHZlcmlmeUVycm9ycy5wdXNoKFxuICAgICAgICAgIG5ldyBJbnB1dFNpZ25pbmdFcnJvcihpbnB1dEluZGV4LCBpbnB1dC5zY3JpcHRUeXBlLCB7IGlkOiBvdXRwdXRJZCB9LCBuZXcgRXJyb3IoJ2ludmFsaWQgc2lnbmF0dXJlJykpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdmVyaWZ5RXJyb3JzLnB1c2gobmV3IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD4oaW5wdXRJbmRleCwgaW5wdXQuc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgZSkpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHZlcmlmeUVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IoW10sIHZlcmlmeUVycm9ycyk7XG4gIH1cblxuICBpZiAod3JpdGVTaWduZWRXaXRoKSB7XG4gICAgY29uc3QgdmVyc2lvbkluZm8gPSBnZXRXYXNtVXR4b1ZlcnNpb24oKTtcbiAgICBjb25zdCB2ZXJzaW9uUGF5bG9hZCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbkluZm8udmVyc2lvbixcbiAgICAgICAgZ2l0SGFzaDogdmVyc2lvbkluZm8uZ2l0SGFzaCxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0eC5zZXRLVih7IHR5cGU6ICdiaXRnbycsIHN1YnR5cGU6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvS2V5U3VidHlwZS5XYXNtVXR4b1NpZ25lZFdpdGggfSwgdmVyc2lvblBheWxvYWQpO1xuICB9XG5cbiAgcmV0dXJuIHR4O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRXYXNtKFxuICBjb2luOiBNdXNpZzJQYXJ0aWNpcGFudDxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+LFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcGFyYW1zOiB7XG4gICAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXM7XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW47XG4gIH1cbik6IFByb21pc2U8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PiB7XG4gIGNvbnN0IHdhc21TaWduZXIgPSBzaWduZXJLZXljaGFpbiA/IHRvV2FzbUJJUDMyKHNpZ25lcktleWNoYWluKSA6IHVuZGVmaW5lZDtcblxuICBpZiAoaGFzS2V5UGF0aFNwZW5kSW5wdXQodHgsIHJvb3RXYWxsZXRLZXlzLCBwYXJhbXMucmVwbGF5UHJvdGVjdGlvbikpIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy5zaWduaW5nU3RlcCkge1xuICAgICAgY2FzZSAnc2lnbmVyTm9uY2UnOlxuICAgICAgICBhc3NlcnQod2FzbVNpZ25lcik7XG4gICAgICAgIHR4LmdlbmVyYXRlTXVzaWcyTm9uY2VzKHdhc21TaWduZXIpO1xuICAgICAgICBQU0JUX0NBQ0hFX1dBU00uc2V0KHR4LnVuc2lnbmVkVHhJZCgpLCB0eCk7XG4gICAgICAgIHJldHVybiB0eDtcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICBhc3NlcnQocGFyYW1zLndhbGxldElkLCAnd2FsbGV0SWQgaXMgcmVxdWlyZWQgZm9yIE11U2lnMiBiaXRnbyBub25jZScpO1xuICAgICAgICByZXR1cm4gYXdhaXQgY29pbi5nZXRNdXNpZzJOb25jZXModHgsIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICBjYXNlICdzaWduZXJTaWduYXR1cmUnOiB7XG4gICAgICAgIGNvbnN0IHR4SWQgPSB0eC51bnNpZ25lZFR4SWQoKTtcbiAgICAgICAgY29uc3QgY2FjaGVkUHNidCA9IFBTQlRfQ0FDSEVfV0FTTS5nZXQodHhJZCk7XG4gICAgICAgIGFzc2VydChcbiAgICAgICAgICBjYWNoZWRQc2J0LFxuICAgICAgICAgIGBQc2J0IGlzIG1pc3NpbmcgZnJvbSB0eENhY2hlIChjYWNoZSBzaXplICR7UFNCVF9DQUNIRV9XQVNNLnNpemV9KS5cbiAgICAgICAgICAgIFRoaXMgbWF5IGJlIGR1ZSB0byB0aGUgcmVxdWVzdCBiZWluZyByb3V0ZWQgdG8gYSBkaWZmZXJlbnQgQml0R28tRXhwcmVzcyBpbnN0YW5jZSB0aGF0IGZvciBzaWduaW5nIHN0ZXAgJ3NpZ25lck5vbmNlJy5gXG4gICAgICAgICk7XG4gICAgICAgIFBTQlRfQ0FDSEVfV0FTTS5kZWxldGUodHhJZCk7XG4gICAgICAgIGNhY2hlZFBzYnQuY29tYmluZU11c2lnMk5vbmNlcyh0eCk7XG4gICAgICAgIHR4ID0gY2FjaGVkUHNidDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyB0aGlzIGluc3RhbmNlIGlzIG5vdCBhbiBleHRlcm5hbCBzaWduZXJcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgYXNzZXJ0KHdhc21TaWduZXIpO1xuICAgICAgICB0eC5nZW5lcmF0ZU11c2lnMk5vbmNlcyh3YXNtU2lnbmVyKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb2luLmdldE11c2lnMk5vbmNlcyh0eCwgcGFyYW1zLndhbGxldElkKTtcbiAgICAgICAgdHguY29tYmluZU11c2lnMk5vbmNlcyhyZXNwb25zZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy5zaWduaW5nU3RlcCkge1xuICAgICAgY2FzZSAnc2lnbmVyTm9uY2UnOlxuICAgICAgY2FzZSAnY29zaWduZXJOb25jZSc6XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbiBjZXJ0YWluIGNhc2VzLCB0aGUgY2FsbGVyIG9mIHRoaXMgbWV0aG9kIG1heSBub3Qga25vdyB3aGV0aGVyIHRoZSB0eEhleCBjb250YWlucyBhIHBzYnQgd2l0aCB0YXByb290IGtleSBwYXRoIHNwZW5kIGlucHV0KHMpLlxuICAgICAgICAgKiBJbnN0ZWFkIG9mIHRocm93aW5nIGVycm9yLCBuby1vcCBhbmQgcmV0dXJuIHRoZSB0eEhleC4gU28gdGhhdCB0aGUgY2FsbGVyIGNhbiBjYWxsIHRoaXMgbWV0aG9kIGluIHRoZSBzYW1lIHNlcXVlbmNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHR4O1xuICAgIH1cbiAgfVxuXG4gIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gIHJldHVybiBzaWduQW5kVmVyaWZ5UHNidFdhc20odHgsIHNpZ25lcktleWNoYWluLCByb290V2FsbGV0S2V5cywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24sIHtcbiAgICB3cml0ZVNpZ25lZFdpdGg6IHBhcmFtcy53cml0ZVNpZ25lZFdpdGgsXG4gIH0pO1xufVxuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLEtBQUssRUFBaUIsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RixTQUFTLFdBQVcsQ0FBQyxHQUFpQztJQUNwRCxPQUFPLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBTUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztBQUV2RSxTQUFTLG9CQUFvQixDQUMzQixFQUErQixFQUMvQixjQUFnRCxFQUNoRCxnQkFBc0M7SUFFdEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN2RixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLG1CQUFtQixDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsRUFBK0IsRUFDL0IsVUFBaUIsRUFDakIsY0FBZ0QsRUFDaEQsZ0JBQXNDO0lBRXRDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxjQUFjLEVB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QUFDO2dCQUN2RSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25CLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakMsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLEtBQUssYUFBYSxDQUFDO1lBQ25CLEtBQUssZUFBZTtnQkFDbEI7OzttQkFHRztnQkFDSCxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8scUJBQXFCLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1FBQ3hGLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtLQUN4QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCSVAzMiwgYmlwMzIsIEVDUGFpciwgZml4ZWRTY3JpcHRXYWxsZXQsIGdldFdhc21VdHhvVmVyc2lvbiB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBCdWxrU2lnbmluZ0Vycm9yLCBJbnB1dFNpZ25pbmdFcnJvciwgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IgfSBmcm9tICcuL1NpZ25pbmdFcnJvcic7XG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCB9IGZyb20gJy4vbXVzaWcyJztcblxuZnVuY3Rpb24gdG9XYXNtQklQMzIoa2V5OiBiaXAzMi5CSVAzMkludGVyZmFjZSB8IEJJUDMyKTogQklQMzIge1xuICByZXR1cm4ga2V5IGluc3RhbmNlb2YgQklQMzIgPyBrZXkgOiBCSVAzMi5mcm9tQmFzZTU4KGtleS50b0Jhc2U1OCgpKTtcbn1cblxuZXhwb3J0IHR5cGUgUmVwbGF5UHJvdGVjdGlvbktleXMgPSB7XG4gIHB1YmxpY0tleXM6IChVaW50OEFycmF5IHwgRUNQYWlyKVtdO1xufTtcblxuLyoqXG4gKiBLZXkgVmFsdWU6IFVuc2lnbmVkIHR4IGlkID0+IFBTQlRcbiAqIEl0IGlzIHVzZWQgdG8gY2FjaGUgUFNCVHMgd2l0aCB0YXByb290IGtleSBwYXRoIChNdVNpZzIpIGlucHV0cyBkdXJpbmcgZXh0ZXJuYWwgZXhwcmVzcyBzaWduZXIgaXMgYWN0aXZhdGVkLlxuICogUmVhc29uOiBNdVNpZzIgc2lnbmVyIHNlY3VyZSBub25jZSBpcyBjYWNoZWQgaW4gdGhlIEJpdEdvUHNidCBvYmplY3QuIEl0IHdpbGwgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSBzaWduaW5nIHN0ZXAuXG4gKiBGb3IgbW9yZSBpbmZvLCBjaGVjayBTaWduVHJhbnNhY3Rpb25PcHRpb25zLnNpZ25pbmdTdGVwXG4gKi9cbmNvbnN0IFBTQlRfQ0FDSEVfV0FTTSA9IG5ldyBNYXA8c3RyaW5nLCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+KCk7XG5cbmZ1bmN0aW9uIGhhc0tleVBhdGhTcGVuZElucHV0KFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcGFyc2VkID0gdHgucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHJvb3RXYWxsZXRLZXlzLCB7IHJlcGxheVByb3RlY3Rpb24gfSk7XG4gIHJldHVybiBwYXJzZWQuaW5wdXRzLnNvbWUoKGlucHV0KSA9PiBpbnB1dC5zY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMktleVBhdGgnKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgc2lnbmF0dXJlcyBvbiBhbGwgc2lnbmVkIGlucHV0cywgcGVyLWlucHV0IGZvciBncmFudWxhciBlcnJvciByZXBvcnRpbmcuXG4gKiBTaGFyZWQgYnkgdGhlIGdlbmVyaWMgd2FzbSBzaWduaW5nIHBhdGggYW5kIFplYydzIElyb253b29kICh2Nikgc2lnbmluZyBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5UHNidFNpZ25hdHVyZXNXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB3YXNtU2lnbmVyOiBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogdm9pZCB7XG4gIGNvbnN0IHBhcnNlZCA9IHR4LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgeyByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICBjb25zdCB2ZXJpZnlFcnJvcnM6IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD5bXSA9IFtdO1xuXG4gIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgLy8gU2tpcCByZXBsYXkgcHJvdGVjdGlvbiBpbnB1dHMgLSB0aGV5IGFyZSBwbGF0Zm9ybSBzaWduZWQgb25seVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dElkID0gYCR7aW5wdXQucHJldmlvdXNPdXRwdXQudHhpZH06JHtpbnB1dC5wcmV2aW91c091dHB1dC52b3V0fWA7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdHgudmVyaWZ5U2lnbmF0dXJlKGlucHV0SW5kZXgsIHdhc21TaWduZXIpKSB7XG4gICAgICAgIHZlcmlmeUVycm9ycy5wdXNoKFxuICAgICAgICAgIG5ldyBJbnB1dFNpZ25pbmdFcnJvcihpbnB1dEluZGV4LCBpbnB1dC5zY3JpcHRUeXBlLCB7IGlkOiBvdXRwdXRJZCB9LCBuZXcgRXJyb3IoJ2ludmFsaWQgc2lnbmF0dXJlJykpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdmVyaWZ5RXJyb3JzLnB1c2gobmV3IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD4oaW5wdXRJbmRleCwgaW5wdXQuc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgZSkpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHZlcmlmeUVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IoW10sIHZlcmlmeUVycm9ycyk7XG4gIH1cbn1cblxuLyoqIEVtYmVkIHRoZSB3YXNtLXV0eG8gdmVyc2lvbiBtZXRhZGF0YSBpbnRvIHRoZSBzaWduZWQgUFNCVC4gU2hhcmVkIGJ5IGFsbCB3YXNtIHNpZ25pbmcgcGF0aHMuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVXYXNtVXR4b1NpZ25lZFdpdGhLdih0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KTogdm9pZCB7XG4gIGNvbnN0IHZlcnNpb25JbmZvID0gZ2V0V2FzbVV0eG9WZXJzaW9uKCk7XG4gIGNvbnN0IHZlcnNpb25QYXlsb2FkID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIHZlcnNpb246IHZlcnNpb25JbmZvLnZlcnNpb24sXG4gICAgICBnaXRIYXNoOiB2ZXJzaW9uSW5mby5naXRIYXNoLFxuICAgIH0pXG4gICk7XG4gIHR4LnNldEtWKHsgdHlwZTogJ2JpdGdvJywgc3VidHlwZTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29LZXlTdWJ0eXBlLldhc21VdHhvU2lnbmVkV2l0aCB9LCB2ZXJzaW9uUGF5bG9hZCk7XG59XG5cbi8qKlxuICogU2lnbiBhbGwgaW5wdXRzIG9mIGEgUFNCVCBhbmQgdmVyaWZ5IHNpZ25hdHVyZXMgYWZ0ZXIgc2lnbmluZy5cbiAqIFVzZXMgYnVsayBzaWduaW5nIGZvciBwZXJmb3JtYW5jZSAoc2lnbnMgYWxsIG1hdGNoaW5nIGlucHV0cyBpbiBvbmUgcGFzcykuXG4gKiBDb2xsZWN0cyBhbmQgbG9ncyBzaWduaW5nIGVycm9ycyBhbmQgdmVyaWZpY2F0aW9uIGVycm9ycywgdGhyb3dzIGVycm9yIGluIHRoZSBlbmQgaWYgYW55IG9mIHRoZW0gZmFpbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyxcbiAgeyB3cml0ZVNpZ25lZFdpdGggPSBmYWxzZSB9OiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfSA9IHt9XG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCB3YXNtU2lnbmVyID0gdG9XYXNtQklQMzIoc2lnbmVyS2V5Y2hhaW4pO1xuXG4gIC8vIEJ1bGsgc2lnbiBhbGwgd2FsbGV0IGlucHV0cyAoRUNEU0EgKyBNdVNpZzIpIC0gbXVjaCBmYXN0ZXIgdGhhbiBwZXItaW5wdXQgc2lnbmluZ1xuICB0cnkge1xuICAgIHR4LnNpZ24od2FzbVNpZ25lcik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgQnVsa1NpZ25pbmdFcnJvcihlKTtcbiAgfVxuXG4gIHZlcmlmeVBzYnRTaWduYXR1cmVzV2FzbSh0eCwgd2FzbVNpZ25lciwgcm9vdFdhbGxldEtleXMsIHJlcGxheVByb3RlY3Rpb24pO1xuXG4gIGlmICh3cml0ZVNpZ25lZFdpdGgpIHtcbiAgICB3cml0ZVdhc21VdHhvU2lnbmVkV2l0aEt2KHR4KTtcbiAgfVxuXG4gIHJldHVybiB0eDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbShcbiAgY29pbjogTXVzaWcyUGFydGljaXBhbnQ8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PixcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IGJpcDMyLkJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHBhcmFtczoge1xuICAgIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzO1xuICAgIHNpZ25pbmdTdGVwOiAnc2lnbmVyTm9uY2UnIHwgJ2Nvc2lnbmVyTm9uY2UnIHwgJ3NpZ25lclNpZ25hdHVyZScgfCB1bmRlZmluZWQ7XG4gICAgd2FsbGV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB3cml0ZVNpZ25lZFdpdGg/OiBib29sZWFuO1xuICB9XG4pOiBQcm9taXNlPGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4ge1xuICBjb25zdCB3YXNtU2lnbmVyID0gc2lnbmVyS2V5Y2hhaW4gPyB0b1dhc21CSVAzMihzaWduZXJLZXljaGFpbikgOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGhhc0tleVBhdGhTcGVuZElucHV0KHR4LCByb290V2FsbGV0S2V5cywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24pKSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHdhc21TaWduZXIpO1xuICAgICAgICB0eC5nZW5lcmF0ZU11c2lnMk5vbmNlcyh3YXNtU2lnbmVyKTtcbiAgICAgICAgUFNCVF9DQUNIRV9XQVNNLnNldCh0eC51bnNpZ25lZFR4SWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4gdHg7XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvaW4uZ2V0TXVzaWcyTm9uY2VzKHR4LCBwYXJhbXMud2FsbGV0SWQpO1xuICAgICAgY2FzZSAnc2lnbmVyU2lnbmF0dXJlJzoge1xuICAgICAgICBjb25zdCB0eElkID0gdHgudW5zaWduZWRUeElkKCk7XG4gICAgICAgIGNvbnN0IGNhY2hlZFBzYnQgPSBQU0JUX0NBQ0hFX1dBU00uZ2V0KHR4SWQpO1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgY2FjaGVkUHNidCxcbiAgICAgICAgICBgUHNidCBpcyBtaXNzaW5nIGZyb20gdHhDYWNoZSAoY2FjaGUgc2l6ZSAke1BTQlRfQ0FDSEVfV0FTTS5zaXplfSkuXG4gICAgICAgICAgICBUaGlzIG1heSBiZSBkdWUgdG8gdGhlIHJlcXVlc3QgYmVpbmcgcm91dGVkIHRvIGEgZGlmZmVyZW50IEJpdEdvLUV4cHJlc3MgaW5zdGFuY2UgdGhhdCBmb3Igc2lnbmluZyBzdGVwICdzaWduZXJOb25jZScuYFxuICAgICAgICApO1xuICAgICAgICBQU0JUX0NBQ0hFX1dBU00uZGVsZXRlKHR4SWQpO1xuICAgICAgICBjYWNoZWRQc2J0LmNvbWJpbmVNdXNpZzJOb25jZXModHgpO1xuICAgICAgICB0eCA9IGNhY2hlZFBzYnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gdGhpcyBpbnN0YW5jZSBpcyBub3QgYW4gZXh0ZXJuYWwgc2lnbmVyXG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIGFzc2VydCh3YXNtU2lnbmVyKTtcbiAgICAgICAgdHguZ2VuZXJhdGVNdXNpZzJOb25jZXMod2FzbVNpZ25lcik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29pbi5nZXRNdXNpZzJOb25jZXModHgsIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICAgIHR4LmNvbWJpbmVNdXNpZzJOb25jZXMocmVzcG9uc2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICAvKipcbiAgICAgICAgICogSW4gY2VydGFpbiBjYXNlcywgdGhlIGNhbGxlciBvZiB0aGlzIG1ldGhvZCBtYXkgbm90IGtub3cgd2hldGhlciB0aGUgdHhIZXggY29udGFpbnMgYSBwc2J0IHdpdGggdGFwcm9vdCBrZXkgcGF0aCBzcGVuZCBpbnB1dChzKS5cbiAgICAgICAgICogSW5zdGVhZCBvZiB0aHJvd2luZyBlcnJvciwgbm8tb3AgYW5kIHJldHVybiB0aGUgdHhIZXguIFNvIHRoYXQgdGhlIGNhbGxlciBjYW4gY2FsbCB0aGlzIG1ldGhvZCBpbiB0aGUgc2FtZSBzZXF1ZW5jZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0eDtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHR4LCBzaWduZXJLZXljaGFpbiwgcm9vdFdhbGxldEtleXMsIHBhcmFtcy5yZXBsYXlQcm90ZWN0aW9uLCB7XG4gICAgd3JpdGVTaWduZWRXaXRoOiBwYXJhbXMud3JpdGVTaWduZWRXaXRoLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -6,6 +6,15 @@ import { ReplayProtectionKeys } from './signPsbtWasm';
|
|
|
6
6
|
export declare function signAndVerifyPsbt(psbt: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, options?: {
|
|
7
7
|
writeSignedWith?: boolean;
|
|
8
8
|
}): fixedScriptWallet.BitGoPsbt;
|
|
9
|
+
/**
|
|
10
|
+
* Finalize a signed PSBT into its final form: the extracted transaction bytes on the last
|
|
11
|
+
* signature round (unless the caller asked to keep the PSBT), otherwise the signed PSBT itself.
|
|
12
|
+
* Shared by the generic signing path and Zec's Ironwood (v6) signing path.
|
|
13
|
+
*/
|
|
14
|
+
export declare function finalizeSignedPsbt(signedPsbt: fixedScriptWallet.BitGoPsbt, { isLastSignature, extractTransaction }: {
|
|
15
|
+
isLastSignature?: boolean;
|
|
16
|
+
extractTransaction?: boolean;
|
|
17
|
+
}): fixedScriptWallet.BitGoPsbt | Buffer;
|
|
9
18
|
export declare function signTransaction(coin: Musig2Participant<fixedScriptWallet.BitGoPsbt>, tx: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | undefined, coinName: UtxoCoinName | WasmUtxoCoinName, params: {
|
|
10
19
|
walletId: string | undefined;
|
|
11
20
|
txInfo: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,iBAAiB,CAAC,SAAS,CAI7B;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EACzC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,iBAAiB,CAAC,SAAS,CAI7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,CAAC,SAAS,EACvC,EAAE,eAAuB,EAAE,kBAAyB,EAAE,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GAClH,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAStC;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EACzC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,CAqB/C"}
|