@bitgo-beta/utxo-core 1.0.0-beta.26 → 1.0.0-beta.28
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.
|
@@ -1,15 +1,54 @@
|
|
|
1
1
|
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
2
2
|
import { DescriptorMap } from './DescriptorMap';
|
|
3
|
-
export type Output = {
|
|
3
|
+
export type Output<TValue = bigint> = {
|
|
4
4
|
script: Buffer;
|
|
5
|
+
value: TValue;
|
|
6
|
+
};
|
|
7
|
+
export type MaxOutput = Output<'max'>;
|
|
8
|
+
type ValueBigInt = {
|
|
5
9
|
value: bigint;
|
|
6
10
|
};
|
|
11
|
+
type ValueMax = {
|
|
12
|
+
value: 'max';
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @return true if the output is a max output
|
|
16
|
+
*/
|
|
17
|
+
export declare function isMaxOutput<A extends ValueBigInt, B extends ValueMax>(output: A | B): output is B;
|
|
18
|
+
/**
|
|
19
|
+
* @return the max output if there is one
|
|
20
|
+
* @throws if there are multiple max outputs
|
|
21
|
+
*/
|
|
22
|
+
export declare function getMaxOutput<A extends ValueBigInt, B extends ValueMax>(outputs: (A | B)[]): B | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* @return the sum of the outputs
|
|
25
|
+
*/
|
|
26
|
+
export declare function getOutputSum(outputs: ValueBigInt[]): bigint;
|
|
27
|
+
/**
|
|
28
|
+
* @return the sum of the outputs that are not 'max'
|
|
29
|
+
*/
|
|
30
|
+
export declare function getFixedOutputSum(outputs: (ValueBigInt | ValueMax)[]): bigint;
|
|
31
|
+
/**
|
|
32
|
+
* @param outputs
|
|
33
|
+
* @param params
|
|
34
|
+
* @return the outputs with the 'max' output replaced with the max amount
|
|
35
|
+
*/
|
|
36
|
+
export declare function toFixedOutputs<A extends ValueBigInt, B extends ValueMax>(outputs: (A | B)[], params: {
|
|
37
|
+
maxAmount: bigint;
|
|
38
|
+
}): A[];
|
|
7
39
|
export type WithDescriptor<T> = T & {
|
|
8
40
|
descriptor: Descriptor;
|
|
9
41
|
};
|
|
10
42
|
export type WithOptDescriptor<T> = T & {
|
|
11
43
|
descriptor?: Descriptor;
|
|
12
44
|
};
|
|
45
|
+
export declare function isInternalOutput<T extends object>(output: T | WithDescriptor<T>): output is WithDescriptor<T>;
|
|
46
|
+
export declare function isExternalOutput<T extends object>(output: T | WithDescriptor<T>): output is T;
|
|
47
|
+
/**
|
|
48
|
+
* @return the sum of the external outputs that are not 'max'
|
|
49
|
+
* @param outputs
|
|
50
|
+
*/
|
|
51
|
+
export declare function getExternalFixedAmount(outputs: WithOptDescriptor<Output | MaxOutput>[]): bigint;
|
|
13
52
|
export type PrevOutput = {
|
|
14
53
|
hash: string;
|
|
15
54
|
index: number;
|
|
@@ -21,4 +60,5 @@ export type DescriptorWalletOutput = PrevOutput & {
|
|
|
21
60
|
};
|
|
22
61
|
export type DerivedDescriptorWalletOutput = WithDescriptor<PrevOutput>;
|
|
23
62
|
export declare function toDerivedDescriptorWalletOutput(output: DescriptorWalletOutput, descriptorMap: DescriptorMap): DerivedDescriptorWalletOutput;
|
|
63
|
+
export {};
|
|
24
64
|
//# sourceMappingURL=Output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../src/descriptor/Output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,MAAM,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../src/descriptor/Output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,MAAM,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAEtC,KAAK,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACrC,KAAK,QAAQ,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjC;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,CAEjG;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CASzG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,CAAC,WAAW,GAAG,QAAQ,CAAC,EAAE,GAAG,MAAM,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,QAAQ,EACtE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAClB,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC5B,CAAC,EAAE,CAaL;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAClC,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,CAE7G;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAE7F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAE/F;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AAEvE,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,aAAa,GAC3B,6BAA6B,CAkB/B"}
|
|
@@ -1,7 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isMaxOutput = isMaxOutput;
|
|
4
|
+
exports.getMaxOutput = getMaxOutput;
|
|
5
|
+
exports.getOutputSum = getOutputSum;
|
|
6
|
+
exports.getFixedOutputSum = getFixedOutputSum;
|
|
7
|
+
exports.toFixedOutputs = toFixedOutputs;
|
|
8
|
+
exports.isInternalOutput = isInternalOutput;
|
|
9
|
+
exports.isExternalOutput = isExternalOutput;
|
|
10
|
+
exports.getExternalFixedAmount = getExternalFixedAmount;
|
|
3
11
|
exports.toDerivedDescriptorWalletOutput = toDerivedDescriptorWalletOutput;
|
|
4
12
|
const address_1 = require("./address");
|
|
13
|
+
/**
|
|
14
|
+
* @return true if the output is a max output
|
|
15
|
+
*/
|
|
16
|
+
function isMaxOutput(output) {
|
|
17
|
+
return output.value === 'max';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @return the max output if there is one
|
|
21
|
+
* @throws if there are multiple max outputs
|
|
22
|
+
*/
|
|
23
|
+
function getMaxOutput(outputs) {
|
|
24
|
+
const max = outputs.filter((isMaxOutput));
|
|
25
|
+
if (max.length === 0) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
if (max.length > 1) {
|
|
29
|
+
throw new Error('Multiple max outputs');
|
|
30
|
+
}
|
|
31
|
+
return max[0];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @return the sum of the outputs
|
|
35
|
+
*/
|
|
36
|
+
function getOutputSum(outputs) {
|
|
37
|
+
return outputs.reduce((sum, output) => sum + output.value, 0n);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @return the sum of the outputs that are not 'max'
|
|
41
|
+
*/
|
|
42
|
+
function getFixedOutputSum(outputs) {
|
|
43
|
+
return getOutputSum(outputs.filter((o) => !isMaxOutput(o)));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @param outputs
|
|
47
|
+
* @param params
|
|
48
|
+
* @return the outputs with the 'max' output replaced with the max amount
|
|
49
|
+
*/
|
|
50
|
+
function toFixedOutputs(outputs, params) {
|
|
51
|
+
// assert that there is at most one max output
|
|
52
|
+
const maxOutput = getMaxOutput(outputs);
|
|
53
|
+
return outputs.map((output) => {
|
|
54
|
+
if (isMaxOutput(output)) {
|
|
55
|
+
if (output !== maxOutput) {
|
|
56
|
+
throw new Error('illegal state');
|
|
57
|
+
}
|
|
58
|
+
return { ...output, value: params.maxAmount };
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
return output;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function isInternalOutput(output) {
|
|
66
|
+
return 'descriptor' in output && output.descriptor !== undefined;
|
|
67
|
+
}
|
|
68
|
+
function isExternalOutput(output) {
|
|
69
|
+
return !isInternalOutput(output);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @return the sum of the external outputs that are not 'max'
|
|
73
|
+
* @param outputs
|
|
74
|
+
*/
|
|
75
|
+
function getExternalFixedAmount(outputs) {
|
|
76
|
+
return getFixedOutputSum(outputs.filter(isExternalOutput));
|
|
77
|
+
}
|
|
5
78
|
function toDerivedDescriptorWalletOutput(output, descriptorMap) {
|
|
6
79
|
const descriptor = descriptorMap.get(output.descriptorName);
|
|
7
80
|
if (!descriptor) {
|
|
@@ -10,7 +83,7 @@ function toDerivedDescriptorWalletOutput(output, descriptorMap) {
|
|
|
10
83
|
const derivedDescriptor = descriptor.atDerivationIndex(output.descriptorIndex);
|
|
11
84
|
const script = (0, address_1.createScriptPubKeyFromDescriptor)(derivedDescriptor);
|
|
12
85
|
if (!script.equals(output.witnessUtxo.script)) {
|
|
13
|
-
throw new Error(`Script mismatch: descriptor ${output.descriptorName} ${descriptor.toString()} script=${script}`);
|
|
86
|
+
throw new Error(`Script mismatch: descriptor ${output.descriptorName} ${descriptor.toString()} script=${script.toString('hex')}`);
|
|
14
87
|
}
|
|
15
88
|
return {
|
|
16
89
|
hash: output.hash,
|
|
@@ -19,4 +92,4 @@ function toDerivedDescriptorWalletOutput(output, descriptorMap) {
|
|
|
19
92
|
descriptor: descriptor.atDerivationIndex(output.descriptorIndex),
|
|
20
93
|
};
|
|
21
94
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLGtDQUVDO0FBTUQsb0NBU0M7QUFLRCxvQ0FFQztBQUtELDhDQUVDO0FBT0Qsd0NBZ0JDO0FBVUQsNENBRUM7QUFFRCw0Q0FFQztBQU1ELHdEQUVDO0FBZUQsMEVBcUJDO0FBaklELHVDQUE2RDtBQVk3RDs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBNEMsTUFBYTtJQUNsRixPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO0FBQ2hDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixZQUFZLENBQTRDLE9BQWtCO0lBQ3hGLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQSxXQUFpQixDQUFBLENBQUMsQ0FBQztJQUM5QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxPQUFzQjtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxPQUFtQztJQUNuRSxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFlLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQzVCLE9BQWtCLEVBQ2xCLE1BQTZCO0lBRTdCLDhDQUE4QztJQUM5QyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQU8sT0FBTyxDQUFDLENBQUM7SUFDOUMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFLLEVBQUU7UUFDL0IsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBVUQsU0FBZ0IsZ0JBQWdCLENBQW1CLE1BQTZCO0lBQzlFLE9BQU8sWUFBWSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQW1CLE1BQTZCO0lBQzlFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBZ0Q7SUFDckYsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBZUQsU0FBZ0IsK0JBQStCLENBQzdDLE1BQThCLEVBQzlCLGFBQTRCO0lBRTVCLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9FLE1BQU0sTUFBTSxHQUFHLElBQUEsMENBQWdDLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQkFBK0IsTUFBTSxDQUFDLGNBQWMsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLFdBQVcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNqSCxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ25CLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixVQUFVLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7S0FDakUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuaW1wb3J0IHsgY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IgfSBmcm9tICcuL2FkZHJlc3MnO1xuXG5leHBvcnQgdHlwZSBPdXRwdXQ8VFZhbHVlID0gYmlnaW50PiA9IHtcbiAgc2NyaXB0OiBCdWZmZXI7XG4gIHZhbHVlOiBUVmFsdWU7XG59O1xuXG5leHBvcnQgdHlwZSBNYXhPdXRwdXQgPSBPdXRwdXQ8J21heCc+O1xuXG50eXBlIFZhbHVlQmlnSW50ID0geyB2YWx1ZTogYmlnaW50IH07XG50eXBlIFZhbHVlTWF4ID0geyB2YWx1ZTogJ21heCcgfTtcblxuLyoqXG4gKiBAcmV0dXJuIHRydWUgaWYgdGhlIG91dHB1dCBpcyBhIG1heCBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWF4T3V0cHV0PEEgZXh0ZW5kcyBWYWx1ZUJpZ0ludCwgQiBleHRlbmRzIFZhbHVlTWF4PihvdXRwdXQ6IEEgfCBCKTogb3V0cHV0IGlzIEIge1xuICByZXR1cm4gb3V0cHV0LnZhbHVlID09PSAnbWF4Jztcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRoZSBtYXggb3V0cHV0IGlmIHRoZXJlIGlzIG9uZVxuICogQHRocm93cyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgbWF4IG91dHB1dHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1heE91dHB1dDxBIGV4dGVuZHMgVmFsdWVCaWdJbnQsIEIgZXh0ZW5kcyBWYWx1ZU1heD4ob3V0cHV0czogKEEgfCBCKVtdKTogQiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1heCA9IG91dHB1dHMuZmlsdGVyKGlzTWF4T3V0cHV0PEEsIEI+KTtcbiAgaWYgKG1heC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChtYXgubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTXVsdGlwbGUgbWF4IG91dHB1dHMnKTtcbiAgfVxuICByZXR1cm4gbWF4WzBdO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdGhlIHN1bSBvZiB0aGUgb3V0cHV0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0cHV0U3VtKG91dHB1dHM6IFZhbHVlQmlnSW50W10pOiBiaWdpbnQge1xuICByZXR1cm4gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQudmFsdWUsIDBuKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRoZSBzdW0gb2YgdGhlIG91dHB1dHMgdGhhdCBhcmUgbm90ICdtYXgnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXhlZE91dHB1dFN1bShvdXRwdXRzOiAoVmFsdWVCaWdJbnQgfCBWYWx1ZU1heClbXSk6IGJpZ2ludCB7XG4gIHJldHVybiBnZXRPdXRwdXRTdW0ob3V0cHV0cy5maWx0ZXIoKG8pOiBvIGlzIE91dHB1dCA9PiAhaXNNYXhPdXRwdXQobykpKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gb3V0cHV0c1xuICogQHBhcmFtIHBhcmFtc1xuICogQHJldHVybiB0aGUgb3V0cHV0cyB3aXRoIHRoZSAnbWF4JyBvdXRwdXQgcmVwbGFjZWQgd2l0aCB0aGUgbWF4IGFtb3VudFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9GaXhlZE91dHB1dHM8QSBleHRlbmRzIFZhbHVlQmlnSW50LCBCIGV4dGVuZHMgVmFsdWVNYXg+KFxuICBvdXRwdXRzOiAoQSB8IEIpW10sXG4gIHBhcmFtczogeyBtYXhBbW91bnQ6IGJpZ2ludCB9XG4pOiBBW10ge1xuICAvLyBhc3NlcnQgdGhhdCB0aGVyZSBpcyBhdCBtb3N0IG9uZSBtYXggb3V0cHV0XG4gIGNvbnN0IG1heE91dHB1dCA9IGdldE1heE91dHB1dDxBLCBCPihvdXRwdXRzKTtcbiAgcmV0dXJuIG91dHB1dHMubWFwKChvdXRwdXQpOiBBID0+IHtcbiAgICBpZiAoaXNNYXhPdXRwdXQob3V0cHV0KSkge1xuICAgICAgaWYgKG91dHB1dCAhPT0gbWF4T3V0cHV0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaWxsZWdhbCBzdGF0ZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgLi4ub3V0cHV0LCB2YWx1ZTogcGFyYW1zLm1heEFtb3VudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFdpdGhEZXNjcmlwdG9yPFQ+ID0gVCAmIHtcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjtcbn07XG5cbmV4cG9ydCB0eXBlIFdpdGhPcHREZXNjcmlwdG9yPFQ+ID0gVCAmIHtcbiAgZGVzY3JpcHRvcj86IERlc2NyaXB0b3I7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlcm5hbE91dHB1dDxUIGV4dGVuZHMgb2JqZWN0PihvdXRwdXQ6IFQgfCBXaXRoRGVzY3JpcHRvcjxUPik6IG91dHB1dCBpcyBXaXRoRGVzY3JpcHRvcjxUPiB7XG4gIHJldHVybiAnZGVzY3JpcHRvcicgaW4gb3V0cHV0ICYmIG91dHB1dC5kZXNjcmlwdG9yICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsT3V0cHV0PFQgZXh0ZW5kcyBvYmplY3Q+KG91dHB1dDogVCB8IFdpdGhEZXNjcmlwdG9yPFQ+KTogb3V0cHV0IGlzIFQge1xuICByZXR1cm4gIWlzSW50ZXJuYWxPdXRwdXQob3V0cHV0KTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRoZSBzdW0gb2YgdGhlIGV4dGVybmFsIG91dHB1dHMgdGhhdCBhcmUgbm90ICdtYXgnXG4gKiBAcGFyYW0gb3V0cHV0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXh0ZXJuYWxGaXhlZEFtb3VudChvdXRwdXRzOiBXaXRoT3B0RGVzY3JpcHRvcjxPdXRwdXQgfCBNYXhPdXRwdXQ+W10pOiBiaWdpbnQge1xuICByZXR1cm4gZ2V0Rml4ZWRPdXRwdXRTdW0ob3V0cHV0cy5maWx0ZXIoaXNFeHRlcm5hbE91dHB1dCkpO1xufVxuXG5leHBvcnQgdHlwZSBQcmV2T3V0cHV0ID0ge1xuICBoYXNoOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHdpdG5lc3NVdHhvOiBPdXRwdXQ7XG59O1xuXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yV2FsbGV0T3V0cHV0ID0gUHJldk91dHB1dCAmIHtcbiAgZGVzY3JpcHRvck5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRvckluZGV4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dCA9IFdpdGhEZXNjcmlwdG9yPFByZXZPdXRwdXQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9EZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dChcbiAgb3V0cHV0OiBEZXNjcmlwdG9yV2FsbGV0T3V0cHV0LFxuICBkZXNjcmlwdG9yTWFwOiBEZXNjcmlwdG9yTWFwXG4pOiBEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dCB7XG4gIGNvbnN0IGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9yTWFwLmdldChvdXRwdXQuZGVzY3JpcHRvck5hbWUpO1xuICBpZiAoIWRlc2NyaXB0b3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERlc2NyaXB0b3Igbm90IGZvdW5kOiAke291dHB1dC5kZXNjcmlwdG9yTmFtZX1gKTtcbiAgfVxuICBjb25zdCBkZXJpdmVkRGVzY3JpcHRvciA9IGRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgob3V0cHV0LmRlc2NyaXB0b3JJbmRleCk7XG4gIGNvbnN0IHNjcmlwdCA9IGNyZWF0ZVNjcmlwdFB1YktleUZyb21EZXNjcmlwdG9yKGRlcml2ZWREZXNjcmlwdG9yKTtcbiAgaWYgKCFzY3JpcHQuZXF1YWxzKG91dHB1dC53aXRuZXNzVXR4by5zY3JpcHQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFNjcmlwdCBtaXNtYXRjaDogZGVzY3JpcHRvciAke291dHB1dC5kZXNjcmlwdG9yTmFtZX0gJHtkZXNjcmlwdG9yLnRvU3RyaW5nKCl9IHNjcmlwdD0ke3NjcmlwdC50b1N0cmluZygnaGV4Jyl9YFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBvdXRwdXQuaGFzaCxcbiAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgIHdpdG5lc3NVdHhvOiBvdXRwdXQud2l0bmVzc1V0eG8sXG4gICAgZGVzY3JpcHRvcjogZGVzY3JpcHRvci5hdERlcml2YXRpb25JbmRleChvdXRwdXQuZGVzY3JpcHRvckluZGV4KSxcbiAgfTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-core",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.28",
|
|
4
4
|
"description": "BitGo UTXO Core types",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -51,10 +51,10 @@
|
|
|
51
51
|
]
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@bitgo-beta/unspents": "0.13.2-beta.
|
|
55
|
-
"@bitgo-beta/utxo-lib": "8.0.3-beta.
|
|
56
|
-
"@bitgo/wasm-miniscript": "
|
|
54
|
+
"@bitgo-beta/unspents": "0.13.2-beta.717",
|
|
55
|
+
"@bitgo-beta/utxo-lib": "8.0.3-beta.718",
|
|
56
|
+
"@bitgo/wasm-miniscript": "2.0.0-beta.4",
|
|
57
57
|
"bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "bd26ae41d16df63b0fa3ad50122b876aeeb94256"
|
|
60
60
|
}
|