@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;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,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,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,CAgB/B"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0JBLDBFQW1CQztBQS9DRCx1Q0FBNkQ7QUE0QjdELFNBQWdCLCtCQUErQixDQUM3QyxNQUE4QixFQUM5QixhQUE0QjtJQUU1QixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvRSxNQUFNLE1BQU0sR0FBRyxJQUFBLDBDQUFnQyxFQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLE1BQU0sQ0FBQyxjQUFjLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ25CLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixVQUFVLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7S0FDakUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuaW1wb3J0IHsgY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IgfSBmcm9tICcuL2FkZHJlc3MnO1xuXG5leHBvcnQgdHlwZSBPdXRwdXQgPSB7XG4gIHNjcmlwdDogQnVmZmVyO1xuICB2YWx1ZTogYmlnaW50O1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aERlc2NyaXB0b3I8VD4gPSBUICYge1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aE9wdERlc2NyaXB0b3I8VD4gPSBUICYge1xuICBkZXNjcmlwdG9yPzogRGVzY3JpcHRvcjtcbn07XG5cbmV4cG9ydCB0eXBlIFByZXZPdXRwdXQgPSB7XG4gIGhhc2g6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgd2l0bmVzc1V0eG86IE91dHB1dDtcbn07XG5cbmV4cG9ydCB0eXBlIERlc2NyaXB0b3JXYWxsZXRPdXRwdXQgPSBQcmV2T3V0cHV0ICYge1xuICBkZXNjcmlwdG9yTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdG9ySW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0ID0gV2l0aERlc2NyaXB0b3I8UHJldk91dHB1dD47XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Rlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0KFxuICBvdXRwdXQ6IERlc2NyaXB0b3JXYWxsZXRPdXRwdXQsXG4gIGRlc2NyaXB0b3JNYXA6IERlc2NyaXB0b3JNYXBcbik6IERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0IHtcbiAgY29uc3QgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JNYXAuZ2V0KG91dHB1dC5kZXNjcmlwdG9yTmFtZSk7XG4gIGlmICghZGVzY3JpcHRvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRGVzY3JpcHRvciBub3QgZm91bmQ6ICR7b3V0cHV0LmRlc2NyaXB0b3JOYW1lfWApO1xuICB9XG4gIGNvbnN0IGRlcml2ZWREZXNjcmlwdG9yID0gZGVzY3JpcHRvci5hdERlcml2YXRpb25JbmRleChvdXRwdXQuZGVzY3JpcHRvckluZGV4KTtcbiAgY29uc3Qgc2NyaXB0ID0gY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVyaXZlZERlc2NyaXB0b3IpO1xuICBpZiAoIXNjcmlwdC5lcXVhbHMob3V0cHV0LndpdG5lc3NVdHhvLnNjcmlwdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNjcmlwdCBtaXNtYXRjaDogZGVzY3JpcHRvciAke291dHB1dC5kZXNjcmlwdG9yTmFtZX0gJHtkZXNjcmlwdG9yLnRvU3RyaW5nKCl9IHNjcmlwdD0ke3NjcmlwdH1gKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGhhc2g6IG91dHB1dC5oYXNoLFxuICAgIGluZGV4OiBvdXRwdXQuaW5kZXgsXG4gICAgd2l0bmVzc1V0eG86IG91dHB1dC53aXRuZXNzVXR4byxcbiAgICBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KG91dHB1dC5kZXNjcmlwdG9ySW5kZXgpLFxuICB9O1xufVxuIl19
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.26",
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.715",
55
- "@bitgo-beta/utxo-lib": "8.0.3-beta.716",
56
- "@bitgo/wasm-miniscript": "^2.0.0-beta.4",
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": "2bba22ce8e67b0b78f73a254f6bb16326aa73e85"
59
+ "gitHead": "bd26ae41d16df63b0fa3ad50122b876aeeb94256"
60
60
  }