@bitgo-beta/utxo-ord 1.0.1-beta.1 → 1.0.1-beta.3

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.
@@ -2,20 +2,6 @@ import { OrdOutput } from './OrdOutput';
2
2
  /**
3
3
  * A range constraint
4
4
  */
5
- export declare class Constraint {
6
- minValue: bigint;
7
- maxValue: bigint;
8
- /**
9
- * @param minValue - inclusive
10
- * @param maxValue - inclusive
11
- */
12
- constructor(minValue: bigint, maxValue: bigint);
13
- /** @return true iff value satisfies constraint */
14
- check(v: bigint): boolean;
15
- static ZERO: Constraint;
16
- /** infinity for all practical purposes */
17
- static MAXSAT: bigint;
18
- }
19
5
  declare type Parameters<T> = {
20
6
  /** Padding preceding the inscription output */
21
7
  firstChangeOutput: T;
@@ -42,24 +28,20 @@ export declare function getOrdOutputsForLayout(inscriptionInput: OrdOutput, layo
42
28
  /**
43
29
  * High-level constraints for output layout
44
30
  */
45
- export declare type SearchParams = {
31
+ export declare type Constraints = {
46
32
  minChangeOutput: bigint;
47
- maxChangeOutput: bigint;
48
33
  minInscriptionOutput: bigint;
49
34
  maxInscriptionOutput: bigint;
50
35
  feeFixed: bigint;
51
36
  feePerOutput: bigint;
37
+ satPos: bigint;
38
+ total: bigint;
52
39
  };
53
40
  /**
54
41
  * @param inscriptionInput
55
- * @param minChangeOutput
56
- * @param maxChangeOutput
57
- * @param minInscriptionOutput
58
- * @param maxInscriptionOutput
59
- * @param feeFixed
60
- * @param feePerOutput
42
+ * @param search
61
43
  * @return a solution that satisfies constraints. If no solution can be found, return `undefined`.
62
44
  */
63
- export declare function findOutputLayout(inscriptionInput: OrdOutput, { minChangeOutput, maxChangeOutput, minInscriptionOutput, maxInscriptionOutput, feeFixed, feePerOutput }: SearchParams): OutputLayout | undefined;
45
+ export declare function findOutputLayout(inscriptionInput: OrdOutput, search: Omit<Constraints, 'satPos' | 'total'>): OutputLayout | undefined;
64
46
  export {};
65
47
  //# sourceMappingURL=OutputLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OutputLayout.d.ts","sourceRoot":"","sources":["../../src/OutputLayout.ts"],"names":[],"mappings":"AAoGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;GAEG;AACH,qBAAa,UAAU;IAKF,QAAQ,EAAE,MAAM;IAAS,QAAQ,EAAE,MAAM;IAJ5D;;;OAGG;gBACgB,QAAQ,EAAE,MAAM,EAAS,QAAQ,EAAE,MAAM;IAM5D,kDAAkD;IAClD,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,IAAI,aAAwC;IACnD,0CAA0C;IAC1C,MAAM,CAAC,MAAM,SAAiB;CAC/B;AAED,aAAK,UAAU,CAAC,CAAC,IAAI;IACnB,+CAA+C;IAC/C,iBAAiB,EAAE,CAAC,CAAC;IACrB,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,CAAC;IACrB,+CAA+C;IAC/C,kBAAkB,EAAE,CAAC,CAAC;IACtB,4DAA4D;IAC5D,SAAS,EAAE,CAAC,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEzD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,iBAAiB,EAAE,CAAC,EACpB,iBAAiB,EAAE,CAAC,EACpB,kBAAkB,EAAE,CAAC,EACrB,SAAS,EAAE,CAAC,GACX,UAAU,CAAC,CAAC,CAAC,CAOf;AAED,+BAA+B;AAC/B,oBAAY,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,SAAS,EAC3B,MAAM,EAAE,YAAY,GACnB,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAO9B;AA+DD;;GAEG;AACH,oBAAY,YAAY,GAAG;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,SAAS,EAC3B,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,YAAY,GACrH,YAAY,GAAG,SAAS,CAkC1B"}
1
+ {"version":3,"file":"OutputLayout.d.ts","sourceRoot":"","sources":["../../src/OutputLayout.ts"],"names":[],"mappings":"AAkGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBxC;;GAEG;AACH,aAAK,UAAU,CAAC,CAAC,IAAI;IACnB,+CAA+C;IAC/C,iBAAiB,EAAE,CAAC,CAAC;IACrB,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,CAAC;IACrB,+CAA+C;IAC/C,kBAAkB,EAAE,CAAC,CAAC;IACtB,4DAA4D;IAC5D,SAAS,EAAE,CAAC,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEzD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,iBAAiB,EAAE,CAAC,EACpB,iBAAiB,EAAE,CAAC,EACpB,kBAAkB,EAAE,CAAC,EACrB,SAAS,EAAE,CAAC,GACX,UAAU,CAAC,CAAC,CAAC,CAOf;AAED,+BAA+B;AAC/B,oBAAY,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,SAAS,EAC3B,MAAM,EAAE,YAAY,GACnB,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAO9B;AA0BD;;GAEG;AACH,oBAAY,WAAW,GAAG;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA2DF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,SAAS,EAC3B,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,GAC5C,YAAY,GAAG,SAAS,CAkC1B"}
@@ -52,7 +52,6 @@ Broadly speaking, there are four scenarios:
52
52
 
53
53
  (3) Large inscription input with inscription close to end of input.
54
54
  Change output padding start followed by inscription output.
55
- (TODO)
56
55
 
57
56
  ┌────────┬────────┐
58
57
  │ │ u0 │
@@ -76,7 +75,6 @@ Broadly speaking, there are four scenarios:
76
75
 
77
76
  (4) Large inscription input with inscription in the middle.
78
77
  Inscription input (u1) with padding on both sides (u0 and u2)
79
- (TODO)
80
78
 
81
79
  ┌────────┬────────┐
82
80
  │ │ u0 │
@@ -99,32 +97,18 @@ Broadly speaking, there are four scenarios:
99
97
  └────────┘
100
98
  */
101
99
  Object.defineProperty(exports, "__esModule", { value: true });
102
- exports.findOutputLayout = exports.getOrdOutputsForLayout = exports.toParameters = exports.toArray = exports.Constraint = void 0;
103
- const SatRange_1 = require("./SatRange");
104
- /**
105
- * A range constraint
106
- */
107
- class Constraint {
108
- /**
109
- * @param minValue - inclusive
110
- * @param maxValue - inclusive
111
- */
112
- constructor(minValue, maxValue) {
113
- this.minValue = minValue;
114
- this.maxValue = maxValue;
115
- if (minValue < 0 || maxValue < minValue) {
116
- throw new Error(`invalid constraint [${minValue}, ${maxValue}]`);
117
- }
118
- }
119
- /** @return true iff value satisfies constraint */
120
- check(v) {
121
- return new SatRange_1.SatRange(this.minValue, this.maxValue).isSupersetOf(v);
122
- }
100
+ exports.findOutputLayout = exports.getOrdOutputsForLayout = exports.toParameters = exports.toArray = void 0;
101
+ const ZERO = BigInt(0);
102
+ const ONE = BigInt(1);
103
+ function max(a, b) {
104
+ return a < b ? b : a;
105
+ }
106
+ function min(a, b) {
107
+ return a < b ? a : b;
108
+ }
109
+ function sum(arr) {
110
+ return arr.reduce((a, b) => a + b, ZERO);
123
111
  }
124
- exports.Constraint = Constraint;
125
- Constraint.ZERO = new Constraint(BigInt(0), BigInt(0));
126
- /** infinity for all practical purposes */
127
- Constraint.MAXSAT = BigInt(21e14);
128
112
  /** @return canonical sequence of parameters */
129
113
  function toArray(p) {
130
114
  return [p.firstChangeOutput, p.inscriptionOutput, p.secondChangeOutput, p.feeOutput];
@@ -155,100 +139,110 @@ function getOrdOutputsForLayout(inscriptionInput, layout) {
155
139
  }
156
140
  exports.getOrdOutputsForLayout = getOrdOutputsForLayout;
157
141
  /**
158
- * @param layout
159
- * @return output sum (including fee output) for layout.
160
- */
161
- function getLayoutSum(layout) {
162
- return toArray(layout).reduce((a, b) => a + b, BigInt(0));
163
- }
164
- /**
142
+ * @param constraints
165
143
  * @param inscriptionInput
166
144
  * @param layout
167
- * @param constraints
168
145
  * @return true iff layout satisfies constraints
169
146
  */
170
- function check(inscriptionInput, layout, constraints) {
147
+ function check(constraints, inscriptionInput, layout) {
171
148
  var _a;
172
- if (constraints.firstChangeOutput.check(layout.firstChangeOutput) &&
173
- constraints.inscriptionOutput.check(layout.inscriptionOutput) &&
174
- constraints.secondChangeOutput.check(layout.secondChangeOutput) &&
175
- constraints.feeOutput.check(layout.feeOutput) &&
176
- getLayoutSum(layout) === inscriptionInput.value) {
149
+ if ((layout.firstChangeOutput === ZERO || constraints.minChangeOutput <= layout.firstChangeOutput) &&
150
+ (layout.secondChangeOutput === ZERO || constraints.minChangeOutput <= layout.secondChangeOutput) &&
151
+ constraints.minInscriptionOutput <= layout.inscriptionOutput &&
152
+ layout.inscriptionOutput <= constraints.maxInscriptionOutput &&
153
+ getFeeForOutputs(constraints, [layout.firstChangeOutput, layout.inscriptionOutput, layout.secondChangeOutput]) <=
154
+ layout.feeOutput &&
155
+ sum(toArray(layout)) === inscriptionInput.value) {
177
156
  /* make sure inscription actually lies on the inscriptionOutput */
178
157
  const outputs = getOrdOutputsForLayout(inscriptionInput, layout);
179
158
  return ((_a = outputs.inscriptionOutput) === null || _a === void 0 ? void 0 : _a.ordinals.length) === 1;
180
159
  }
181
160
  return false;
182
161
  }
183
- /**
184
- * Solves the constraints defined in _p_ to produce a layout by expanding a parameter.
185
- * Currently only works with one expandable parameter.
186
- * @param total - the total input sum
187
- * @param p - the constraint parameters.
188
- * @return OutputLayout
189
- */
190
- function toOutputLayout(total, p) {
191
- const fixed = Object.values(p).filter((v) => v.minValue === v.maxValue);
192
- const expandable = Object.values(p).filter((v) => v.minValue !== v.maxValue);
193
- if (expandable.length === 0) {
194
- return Object.fromEntries(Object.entries(p).map(([k, v]) => [k, v.minValue]));
195
- }
196
- if (expandable.length === 1) {
197
- const sumFixed = fixed.reduce((sum, e) => sum + e.minValue, BigInt(0));
198
- const remainder = total - sumFixed;
199
- if (remainder < 0) {
200
- return;
201
- }
202
- for (const k in p) {
203
- if (p[k] === expandable[0]) {
204
- return toOutputLayout(total, { ...p, [k]: new Constraint(remainder, remainder) });
205
- }
206
- }
207
- throw new Error(`illegal state`);
208
- }
209
- throw new Error(`cannot expand more than one constraint`);
162
+ function getFeeForOutputs(p, outputs) {
163
+ return outputs.reduce((sum, oValue) => sum + (oValue === ZERO ? ZERO : p.feePerOutput), p.feeFixed);
164
+ }
165
+ function getStartChangeOutput(c) {
166
+ // we don't need a change padding output
167
+ if (c.satPos < c.maxInscriptionOutput) {
168
+ return ZERO;
169
+ }
170
+ if (c.minChangeOutput <= c.satPos) {
171
+ return c.satPos;
172
+ }
173
+ return null;
174
+ }
175
+ function getInscriptionOutput(c, startChangeOutput) {
176
+ const result = min(c.maxInscriptionOutput, max(c.minInscriptionOutput, c.satPos - startChangeOutput + ONE));
177
+ if (c.satPos < startChangeOutput || startChangeOutput + result < c.satPos) {
178
+ return null;
179
+ }
180
+ // if is not worth creating an end change output, let's maximize the inscription output
181
+ if (getEndChangeOutput(c, startChangeOutput, result) === ZERO) {
182
+ const remainder = c.total - startChangeOutput - getFeeForOutputs(c, [startChangeOutput, result]);
183
+ return min(remainder, c.maxInscriptionOutput);
184
+ }
185
+ return result;
186
+ }
187
+ function getEndChangeOutput(c, startChangeOutput, inscriptionOutput) {
188
+ const remainder = c.total - sum([startChangeOutput, inscriptionOutput]);
189
+ const minFeeWithoutSecondOutput = getFeeForOutputs(c, [startChangeOutput, inscriptionOutput]);
190
+ const minFeeWithSecondOutput = getFeeForOutputs(c, [startChangeOutput, inscriptionOutput, c.minChangeOutput]);
191
+ if (remainder < minFeeWithoutSecondOutput) {
192
+ // We cannot even pay the fee for the output(s) we have so far.
193
+ return null;
194
+ }
195
+ if (remainder - minFeeWithSecondOutput < c.minChangeOutput) {
196
+ // The remainder is too small to pay for the end change output. Let's skip it and pay a higher fee.
197
+ return ZERO;
198
+ }
199
+ // let's use as much as we can for fee while leaving enough for fee
200
+ return remainder - minFeeWithSecondOutput;
201
+ }
202
+ function getFeeOutput(c, startChangeOutput, inscriptionOutput, endChangeOutput) {
203
+ const minFee = getFeeForOutputs(c, [startChangeOutput, inscriptionOutput, endChangeOutput]);
204
+ const remainder = c.total - sum([startChangeOutput, inscriptionOutput, endChangeOutput]);
205
+ if (remainder < minFee) {
206
+ return null;
207
+ }
208
+ return remainder;
210
209
  }
211
210
  /**
212
211
  * @param inscriptionInput
213
- * @param minChangeOutput
214
- * @param maxChangeOutput
215
- * @param minInscriptionOutput
216
- * @param maxInscriptionOutput
217
- * @param feeFixed
218
- * @param feePerOutput
212
+ * @param search
219
213
  * @return a solution that satisfies constraints. If no solution can be found, return `undefined`.
220
214
  */
221
- function findOutputLayout(inscriptionInput, { minChangeOutput, maxChangeOutput, minInscriptionOutput, maxInscriptionOutput, feeFixed, feePerOutput }) {
215
+ function findOutputLayout(inscriptionInput, search) {
222
216
  if (inscriptionInput.ordinals.length !== 1) {
223
217
  throw new Error(`unexpected ordinal count`);
224
218
  }
225
- if (inscriptionInput.ordinals[0].size() !== BigInt(1)) {
219
+ if (inscriptionInput.ordinals[0].size() !== ONE) {
226
220
  throw new Error(`only single-satoshi inscriptions are supported`);
227
221
  }
228
- function feeConstraintForOutputCount(n) {
229
- const fee = feeFixed + feePerOutput * BigInt(n);
230
- return new Constraint(fee, fee);
231
- }
232
- const fixedZero = Constraint.ZERO;
233
- const expandableChangePadding = new Constraint(minChangeOutput, maxChangeOutput);
234
- const expandableInscriptionConstraint = new Constraint(minInscriptionOutput, maxInscriptionOutput);
235
- const fixedMinInscriptionConstraint = new Constraint(minInscriptionOutput, minInscriptionOutput);
236
- const fixedMaxInscriptionConstraint = new Constraint(maxInscriptionOutput, maxInscriptionOutput);
237
- const candidates = [
238
- toParameters(fixedZero, expandableInscriptionConstraint, fixedZero, feeConstraintForOutputCount(1)),
239
- toParameters(fixedZero, fixedMinInscriptionConstraint, expandableChangePadding, feeConstraintForOutputCount(2)),
240
- toParameters(fixedZero, fixedMaxInscriptionConstraint, expandableChangePadding, feeConstraintForOutputCount(2)),
241
- /* TODO(BG-68135): search solution space with change padding at the start */
242
- ];
243
- for (const candidate of candidates) {
244
- const result = toOutputLayout(inscriptionInput.value, candidate);
245
- if (!result) {
246
- continue;
247
- }
248
- if (check(inscriptionInput, result, candidate)) {
249
- return result;
250
- }
222
+ const satPos = inscriptionInput.ordinals[0].start;
223
+ const total = inscriptionInput.value;
224
+ const constraints = { ...search, satPos, total };
225
+ const startChangeOutput = getStartChangeOutput(constraints);
226
+ if (startChangeOutput === null) {
227
+ return;
228
+ }
229
+ const inscriptionOutput = getInscriptionOutput(constraints, startChangeOutput);
230
+ if (inscriptionOutput === null) {
231
+ return;
232
+ }
233
+ const endChangeOutput = getEndChangeOutput(constraints, startChangeOutput, inscriptionOutput);
234
+ if (endChangeOutput === null) {
235
+ return;
236
+ }
237
+ const feeOutput = getFeeOutput(constraints, startChangeOutput, inscriptionOutput, endChangeOutput);
238
+ if (feeOutput === null) {
239
+ return;
240
+ }
241
+ const result = toParameters(startChangeOutput, inscriptionOutput, endChangeOutput, feeOutput);
242
+ if (!check(constraints, inscriptionInput, result)) {
243
+ throw new Error(`invalid result`);
251
244
  }
245
+ return result;
252
246
  }
253
247
  exports.findOutputLayout = findOutputLayout;
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0TGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL091dHB1dExheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0dHOzs7QUFHSCx5Q0FBc0M7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLFVBQVU7SUFDckI7OztPQUdHO0lBQ0gsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQjtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUMxRCxJQUFJLFFBQVEsR0FBRyxDQUFDLElBQUksUUFBUSxHQUFHLFFBQVEsRUFBRTtZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixRQUFRLEtBQUssUUFBUSxHQUFHLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsS0FBSyxDQUFDLENBQVM7UUFDYixPQUFPLElBQUksbUJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7QUFkSCxnQ0FtQkM7QUFIUSxlQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25ELDBDQUEwQztBQUNuQyxpQkFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQWNoQywrQ0FBK0M7QUFDL0MsU0FBZ0IsT0FBTyxDQUFJLENBQWdCO0lBQ3pDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrQkFBa0Is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QUNqRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsU0FBUztTQUNWO1FBQ0QsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQzlDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7S0FDRjtBQUNILENBQUM7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuVGhpcyBmaWxlIGNvbnRhaW5zIGNvZGUgZm9yIGNyZWF0aW5nIGFuIG91dHB1dCBsYXlvdXRzIGZvciB0cmFuc2FjdGlvbnMgdGhhdCBwYXNzIG9uIGluc2NyaXB0aW9ucy5cblxuV2hlbiBwYXNzaW5nIG9uIGFuIGluc2NyaXB0aW9uLCB3ZSB3YW50IHRvIHNhdGlzZnkgYSBmZXcgY29uc3RyYWludHM6XG5cbiogQWxsIG91dHB1dHMgc2hvdWxkIGJlIGxhcmdlciB0aGFuIGEgbWluaW1hbCB2YWx1ZSAoZHVzdCBsaW1pdClcbiogVGhlIHN1bSBvZiBhbGwgb3V0cHV0IHZhbHVlcyBuZWVkcyB0byBiZSBsZXNzIHRoYW4gdGhlIGlucHV0IHRvIGNvdmVyIHRoZSB0cmFuc2FjdGlvbiBmZWUuXG4qIFRoZSBvdXRwdXQgY29udGFpbmluZyB0aGUgaW5zY3JpcHRpb24gc2hvdWxkIGJlIGFzIHNtYWxsIGFzIHBvc3NpYmxlLCBidXQgbGFyZ2UgZW5vdWdoIHRvXG4gIGNvbnRhaW4gdGhlIGluc2NyaXB0aW9uLlxuXG5UbyBrZWVwIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgc21hbGwsIHdlIGNhbiBwYWQgdGhlIHNhdG9zaGkgcmFuZ2UgcHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgdGhlIHJhbmdlXG53aXRoIGNoYW5nZSBvdXRwdXRzLCB3aGljaCBoYXZlIGEgbWluaW1hbCBzaXplIGFuZCBpbmN1ciBhIGZlZSBjb3N0LlxuXG5cbkJyb2FkbHkgc3BlYWtpbmcsIHRoZXJlIGFyZSBmb3VyIHNjZW5hcmlvczpcblxuKDEpIFNtYWxsIGluc2NyaXB0aW9uIGlucHV0IHRoYXQgaGFzIGp1c3QgZW5vdWdoIHZhbHVlIHRvIHBheSBmb3IgZmVlIGFuZCBhIHNpbmdsZSBpbnNjcmlwdGlvblxuICAgIG91dHB1dCAodTApLiBObyBwYWRkaW5nIG91dHB1dHMuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCIGZlZVxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuXG5cbigyKSBMYXJnZSBpbnNjcmlwdGlvbiBpbnB1dCB3aXRoIGluc2NyaXB0aW9uIGNsb3NlIHRvIHN0YXJ0IG9mIGlucHV0LlxuICAgIEluc2NyaXB0aW9uIG91dHB1dCBmb2xsb3dlZCBieSBjaGFuZ2Ugb3V0cHV0ICh1MSkgcGFkZGluZyB0aGUgcmVtYWluaW5nIHZhbHVlLlxuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpFxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oMykgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBjbG9zZSB0byBlbmQgb2YgaW5wdXQuXG4gICAgQ2hhbmdlIG91dHB1dCBwYWRkaW5nIHN0YXJ0IGZvbGxvd2VkIGJ5IGluc2NyaXB0aW9uIG91dHB1dC5cbiAgICAoVE9ETylcblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oNCkgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBpbiB0aGUgbWlkZGxlLlxuICAgIEluc2NyaXB0aW9uIGlucHV0ICh1MSkgd2l0aCBwYWRkaW5nIG9uIGJvdGggc2lkZXMgKHUwIGFuZCB1MilcbiAgICAoVE9ETylcblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAgICDilIIgICAgICAgIOKUgiB1MSAgICAg4pSCXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgICDilIIgdTIgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiBmZWVcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICovXG5cbmltcG9ydCB7IE9yZE91dHB1dCB9IGZyb20gJy4vT3JkT3V0cHV0JztcbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5cbi8qKlxuICogQSByYW5nZSBjb25zdHJhaW50XG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zdHJhaW50IHtcbiAgLyoqXG4gICAqIEBwYXJhbSBtaW5WYWx1ZSAtIGluY2x1c2l2ZVxuICAgKiBAcGFyYW0gbWF4VmFsdWUgLSBpbmNsdXNpdmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtaW5WYWx1ZTogYmlnaW50LCBwdWJsaWMgbWF4VmFsdWU6IGJpZ2ludCkge1xuICAgIGlmIChtaW5WYWx1ZSA8IDAgfHwgbWF4VmFsdWUgPCBtaW5WYWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGNvbnN0cmFpbnQgWyR7bWluVmFsdWV9LCAke21heFZhbHVlfV1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybiB0cnVlIGlmZiB2YWx1ZSBzYXRpc2ZpZXMgY29uc3RyYWludCAqL1xuICBjaGVjayh2OiBiaWdpbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmV3IFNhdFJhbmdlKHRoaXMubWluVmFsdWUsIHRoaXMubWF4VmFsdWUpLmlzU3VwZXJzZXRPZih2KTtcbiAgfVxuXG4gIHN0YXRpYyBaRVJPID0gbmV3IENvbnN0cmFpbnQoQmlnSW50KDApLCBCaWdJbnQoMCkpO1xuICAvKiogaW5maW5pdHkgZm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMgKi9cbiAgc3RhdGljIE1BWFNBVCA9IEJpZ0ludCgyMWUxNCk7XG59XG5cbnR5cGUgUGFyYW1ldGVyczxUPiA9IHtcbiAgLyoqIFBhZGRpbmcgcHJlY2VkaW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgZmlyc3RDaGFuZ2VPdXRwdXQ6IFQ7XG4gIC8qKiBUaGUgaW5zY3JpcHRpb24gb3V0cHV0IHRoYXQgd2lsbCBpbmhlcml0IHRoZSBpbnB1dCBpbnNjcmlwdGlvbiAqL1xuICBpbnNjcmlwdGlvbk91dHB1dDogVDtcbiAgLyoqIFBhZGRpbmcgZm9sbG93aW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBUO1xuICAvKiogTm90IGEgcmVhbCBvdXRwdXQsIHVzZWQgb25seSB0byBzaW1wbGlmeSBjYWxjdWxhdGlvbnMgKi9cbiAgZmVlT3V0cHV0OiBUO1xufTtcblxuLyoqIEByZXR1cm4gY2Fub25pY2FsIHNlcXVlbmNlIG9mIHBhcmFtZXRlcnMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FycmF5PFQ+KHA6IFBhcmFtZXRlcnM8VD4pOiBbVCwgVCwgVCwgVF0ge1xuICByZXR1cm4gW3AuZmlyc3RDaGFuZ2VPdXRwdXQsIHAuaW5zY3JpcHRpb25PdXRwdXQsIHAuc2Vjb25kQ2hhbmdlT3V0cHV0LCBwLmZlZU91dHB1dF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlcnM8VD4oXG4gIGZpcnN0Q2hhbmdlT3V0cHV0OiBULFxuICBpbnNjcmlwdGlvbk91dHB1dDogVCxcbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBULFxuICBmZWVPdXRwdXQ6IFRcbik6IFBhcmFtZXRlcnM8VD4ge1xuICByZXR1cm4ge1xuICAgIGZpcnN0Q2hhbmdlT3V0cHV0LFxuICAgIGluc2NyaXB0aW9uT3V0cHV0LFxuICAgIHNlY29uZENoYW5nZU91dHB1dCxcbiAgICBmZWVPdXRwdXQsXG4gIH07XG59XG5cbi8qKiBBIGZpbmlzaGVkIG91dHB1dCBsYXlvdXQgKi9cbmV4cG9ydCB0eXBlIE91dHB1dExheW91dCA9IFBhcmFtZXRlcnM8YmlnaW50PjtcblxuLyoqXG4gKiBUcmFuc2xhdGVzIGEgbGF5b3V0IGludG8gT3JkT3V0cHV0cy4gQWJzZW50IG91dHB1dHMgYXJlIHNldCB0byBgbnVsbGAuXG4gKlxuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBsYXlvdXRcbiAqIEByZXR1cm4gT3JkT3V0cHV0cyBmb3IgbGF5b3V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KFxuICBpbnNjcmlwdGlvbklucHV0OiBPcmRPdXRwdXQsXG4gIGxheW91dDogT3V0cHV0TGF5b3V0XG4pOiBQYXJhbWV0ZXJzPE9yZE91dHB1dCB8IG51bGw+IHtcbiAgY29uc3Qgb3V0cHV0cyA9IGluc2NyaXB0aW9uSW5wdXQuc3BsaXRBbGxXaXRoUGFyYW1zKHRvQXJyYXkobGF5b3V0KSwgeyBleGFjdDogdHJ1ZSwgYWxsb3daZXJvOiB0cnVlIH0pO1xuICBpZiAob3V0cHV0cy5sZW5ndGggIT09IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcmVzdWx0YCk7XG4gIH1cbiAgdHlwZSBUID0gT3JkT3V0cHV0IHwgbnVsbDtcbiAgcmV0dXJuIHRvUGFyYW1ldGVycyguLi4ob3V0cHV0cyBhcyBbVCwgVCwgVCwgVF0pKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gbGF5b3V0XG4gKiBAcmV0dXJuIG91dHB1dCBzdW0gKGluY2x1ZGluZyBmZWUgb3V0cHV0KSBmb3IgbGF5b3V0LlxuICovXG5mdW5jdGlvbiBnZXRMYXlvdXRTdW0obGF5b3V0OiBPdXRwdXRMYXlvdXQpOiBiaWdpbnQge1xuICByZXR1cm4gdG9BcnJheShsYXlvdXQpLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIEJpZ0ludCgwKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBsYXlvdXRcbiAqIEBwYXJhbSBjb25zdHJhaW50c1xuICogQHJldHVybiB0cnVlIGlmZiBsYXlvdXQgc2F0aXNmaWVzIGNvbnN0cmFpbnRzXG4gKi9cbmZ1bmN0aW9uIGNoZWNrKGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCwgbGF5b3V0OiBPdXRwdXRMYXlvdXQsIGNvbnN0cmFpbnRzOiBQYXJhbWV0ZXJzPENvbnN0cmFpbnQ+KTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBjb25zdHJhaW50cy5maXJzdENoYW5nZU91dHB1dC5jaGVjayhsYXlvdXQuZmlyc3RDaGFuZ2VPdXRwdXQpICYmXG4gICAgY29uc3RyYWludHMuaW5zY3JpcHRpb25PdXRwdXQuY2hlY2sobGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0KSAmJlxuICAgIGNvbnN0cmFpbnRzLnNlY29uZENoYW5nZU91dHB1dC5jaGVjayhsYXlvdXQuc2Vjb25kQ2hhbmdlT3V0cHV0KSAmJlxuICAgIGNvbnN0cmFpbnRzLmZlZU91dHB1dC5jaGVjayhsYXlvdXQuZmVlT3V0cHV0KSAmJlxuICAgIGdldExheW91dFN1bShsYXlvdXQpID09PSBpbnNjcmlwdGlvbklucHV0LnZhbHVlXG4gICkge1xuICAgIC8qIG1ha2Ugc3VyZSBpbnNjcmlwdGlvbiBhY3R1YWxseSBsaWVzIG9uIHRoZSBpbnNjcmlwdGlvbk91dHB1dCAqL1xuICAgIGNvbnN0IG91dHB1dHMgPSBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KGluc2NyaXB0aW9uSW5wdXQsIGxheW91dCk7XG4gICAgcmV0dXJuIG91dHB1dHMuaW5zY3JpcHRpb25PdXRwdXQ/Lm9yZGluYWxzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBTb2x2ZXMgdGhlIGNvbnN0cmFpbnRzIGRlZmluZWQgaW4gX3BfIHRvIHByb2R1Y2UgYSBsYXlvdXQgYnkgZXhwYW5kaW5nIGEgcGFyYW1ldGVyLlxuICogQ3VycmVudGx5IG9ubHkgd29ya3Mgd2l0aCBvbmUgZXhwYW5kYWJsZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gdG90YWwgLSB0aGUgdG90YWwgaW5wdXQgc3VtXG4gKiBAcGFyYW0gcCAtIHRoZSBjb25zdHJhaW50IHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJuIE91dHB1dExheW91dFxuICovXG5mdW5jdGlvbiB0b091dHB1dExheW91dCh0b3RhbDogYmlnaW50LCBwOiBQYXJhbWV0ZXJzPENvbnN0cmFpbnQ+KTogT3V0cHV0TGF5b3V0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZml4ZWQgPSBPYmplY3QudmFsdWVzKHApLmZpbHRlcigodikgPT4gdi5taW5WYWx1ZSA9PT0gdi5tYXhWYWx1ZSk7XG4gIGNvbnN0IGV4cGFuZGFibGUgPSBPYmplY3QudmFsdWVzKHApLmZpbHRlcigodikgPT4gdi5taW5WYWx1ZSAhPT0gdi5tYXhWYWx1ZSk7XG4gIGlmIChleHBhbmRhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocCkubWFwKChbaywgdl0pID0+IFtrLCB2Lm1pblZhbHVlXSkpIGFzIE91dHB1dExheW91dDtcbiAgfVxuXG4gIGlmIChleHBhbmRhYmxlLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IHN1bUZpeGVkID0gZml4ZWQucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUubWluVmFsdWUsIEJpZ0ludCgwKSk7XG4gICAgY29uc3QgcmVtYWluZGVyID0gdG90YWwgLSBzdW1GaXhlZDtcbiAgICBpZiAocmVtYWluZGVyIDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGsgaW4gcCkge1xuICAgICAgaWYgKHBbayBhcyBrZXlvZiBQYXJhbWV0ZXJzPHVua25vd24+XSA9PT0gZXhwYW5kYWJsZVswXSkge1xuICAgICAgICByZXR1cm4gdG9PdXRwdXRMYXlvdXQodG90YWwsIHsgLi4ucCwgW2tdOiBuZXcgQ29uc3RyYWludChyZW1haW5kZXIsIHJlbWFpbmRlcikgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgaWxsZWdhbCBzdGF0ZWApO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZXhwYW5kIG1vcmUgdGhhbiBvbmUgY29uc3RyYWludGApO1xufVxuXG4vKipcbiAqIEhpZ2gtbGV2ZWwgY29uc3RyYWludHMgZm9yIG91dHB1dCBsYXlvdXRcbiAqL1xuZXhwb3J0IHR5cGUgU2VhcmNoUGFyYW1zID0ge1xuICBtaW5DaGFuZ2VPdXRwdXQ6IGJpZ2ludDtcbiAgbWF4Q2hhbmdlT3V0cHV0OiBiaWdpbnQ7XG4gIG1pbkluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIGZlZUZpeGVkOiBiaWdpbnQ7XG4gIGZlZVBlck91dHB1dDogYmlnaW50O1xufTtcblxuLyoqXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25JbnB1dFxuICogQHBhcmFtIG1pbkNoYW5nZU91dHB1dFxuICogQHBhcmFtIG1heENoYW5nZU91dHB1dFxuICogQHBhcmFtIG1pbkluc2NyaXB0aW9uT3V0cHV0XG4gKiBAcGFyYW0gbWF4SW5zY3JpcHRpb25PdXRwdXRcbiAqIEBwYXJhbSBmZWVGaXhlZFxuICogQHBhcmFtIGZlZVBlck91dHB1dFxuICogQHJldHVybiBhIHNvbHV0aW9uIHRoYXQgc2F0aXNmaWVzIGNvbnN0cmFpbnRzLiBJZiBubyBzb2x1dGlvbiBjYW4gYmUgZm91bmQsIHJldHVybiBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXQoXG4gIGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCxcbiAgeyBtaW5DaGFuZ2VPdXRwdXQsIG1heENoYW5nZU91dHB1dCwgbWluSW5zY3JpcHRpb25PdXRwdXQsIG1heEluc2NyaXB0aW9uT3V0cHV0LCBmZWVGaXhlZCwgZmVlUGVyT3V0cHV0IH06IFNlYXJjaFBhcmFtc1xuKTogT3V0cHV0TGF5b3V0IHwgdW5kZWZpbmVkIHtcbiAgaWYgKGluc2NyaXB0aW9uSW5wdXQub3JkaW5hbHMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIG9yZGluYWwgY291bnRgKTtcbiAgfVxuICBpZiAoaW5zY3JpcHRpb25JbnB1dC5vcmRpbmFsc1swXS5zaXplKCkgIT09IEJpZ0ludCgxKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgb25seSBzaW5nbGUtc2F0b3NoaSBpbnNjcmlwdGlvbnMgYXJlIHN1cHBvcnRlZGApO1xuICB9XG4gIGZ1bmN0aW9uIGZlZUNvbnN0cmFpbnRGb3JPdXRwdXRDb3VudChuOiBudW1iZXIpIHtcbiAgICBjb25zdCBmZWUgPSBmZWVGaXhlZCArIGZlZVBlck91dHB1dCAqIEJpZ0ludChuKTtcbiAgICByZXR1cm4gbmV3IENvbnN0cmFpbnQoZmVlLCBmZWUpO1xuICB9XG5cbiAgY29uc3QgZml4ZWRaZXJvID0gQ29uc3RyYWludC5aRVJPO1xuICBjb25zdCBleHBhbmRhYmxlQ2hhbmdlUGFkZGluZyA9IG5ldyBDb25zdHJhaW50KG1pbkNoYW5nZU91dHB1dCwgbWF4Q2hhbmdlT3V0cHV0KTtcbiAgY29uc3QgZXhwYW5kYWJsZUluc2NyaXB0aW9uQ29uc3RyYWludCA9IG5ldyBDb25zdHJhaW50KG1pbkluc2NyaXB0aW9uT3V0cHV0LCBtYXhJbnNjcmlwdGlvbk91dHB1dCk7XG4gIGNvbnN0IGZpeGVkTWluSW5zY3JpcHRpb25Db25zdHJhaW50ID0gbmV3IENvbnN0cmFpbnQobWluSW5zY3JpcHRpb25PdXRwdXQsIG1pbkluc2NyaXB0aW9uT3V0cHV0KTtcbiAgY29uc3QgZml4ZWRNYXhJbnNjcmlwdGlvbkNvbnN0cmFpbnQgPSBuZXcgQ29uc3RyYWludChtYXhJbnNjcmlwdGlvbk91dHB1dCwgbWF4SW5zY3JpcHRpb25PdXRwdXQpO1xuXG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgdG9QYXJhbWV0ZXJzKGZpeGVkWmVybywgZXhwYW5kYWJsZUluc2NyaXB0aW9uQ29uc3RyYWludCwgZml4ZWRaZXJvLCBmZWVDb25zdHJhaW50Rm9yT3V0cHV0Q291bnQoMSkpLFxuICAgIHRvUGFyYW1ldGVycyhmaXhlZFplcm8sIGZpeGVkTWluSW5zY3JpcHRpb25Db25zdHJhaW50LCBleHBhbmRhYmxlQ2hhbmdlUGFkZGluZywgZmVlQ29uc3RyYWludEZvck91dHB1dENvdW50KDIpKSxcbiAgICB0b1BhcmFtZXRlcnMoZml4ZWRaZXJvLCBmaXhlZE1heEluc2NyaXB0aW9uQ29uc3RyYWludCwgZXhwYW5kYWJsZUNoYW5nZVBhZGRpbmcsIGZlZUNvbnN0cmFpbnRGb3JPdXRwdXRDb3VudCgyKSksXG4gICAgLyogVE9ETyhCRy02ODEzNSk6IHNlYXJjaCBzb2x1dGlvbiBzcGFjZSB3aXRoIGNoYW5nZSBwYWRkaW5nIGF0IHRoZSBzdGFydCAqL1xuICBdO1xuXG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0b091dHB1dExheW91dChpbnNjcmlwdGlvbklucHV0LnZhbHVlLCBjYW5kaWRhdGUpO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGNoZWNrKGluc2NyaXB0aW9uSW5wdXQsIHJlc3VsdCwgY2FuZGlkYXRlKSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0TGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL091dHB1dExheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdHRzs7O0FBSUgsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV0QixTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxHQUFhO0lBQ3hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQWdCRCwrQ0FBK0M7QUFDL0MsU0FBZ0IsT0FBTyxDQUFJLENBQWdCO0lBQ3pDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUZELDBCQUVDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixpQkFBb0IsRUFDcEIsaUJBQW9C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RCxJQUFJLGlCQUFpQixLQUFLLElBQUksRUFBRTtRQUM5QixPQUFPO0tBQ1I7SUFDRCxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9FLElBQUksaUJBQWlCLEtBQUssSUFBSSxFQUFFO1FBQzlCLE9BQU87S0FDUjtJQUNELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlGLElBQUksZUFBZSxLQUFLLElBQUksRUFBRTtRQUM1QixPQUFPO0tBQ1I7SUFDRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25HLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtRQUN0QixPQUFPO0tBQ1I7SUFDRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNuQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuVGhpcyBmaWxlIGNvbnRhaW5zIGNvZGUgZm9yIGNyZWF0aW5nIGFuIG91dHB1dCBsYXlvdXRzIGZvciB0cmFuc2FjdGlvbnMgdGhhdCBwYXNzIG9uIGluc2NyaXB0aW9ucy5cblxuV2hlbiBwYXNzaW5nIG9uIGFuIGluc2NyaXB0aW9uLCB3ZSB3YW50IHRvIHNhdGlzZnkgYSBmZXcgY29uc3RyYWludHM6XG5cbiogQWxsIG91dHB1dHMgc2hvdWxkIGJlIGxhcmdlciB0aGFuIGEgbWluaW1hbCB2YWx1ZSAoZHVzdCBsaW1pdClcbiogVGhlIHN1bSBvZiBhbGwgb3V0cHV0IHZhbHVlcyBuZWVkcyB0byBiZSBsZXNzIHRoYW4gdGhlIGlucHV0IHRvIGNvdmVyIHRoZSB0cmFuc2FjdGlvbiBmZWUuXG4qIFRoZSBvdXRwdXQgY29udGFpbmluZyB0aGUgaW5zY3JpcHRpb24gc2hvdWxkIGJlIGFzIHNtYWxsIGFzIHBvc3NpYmxlLCBidXQgbGFyZ2UgZW5vdWdoIHRvXG4gIGNvbnRhaW4gdGhlIGluc2NyaXB0aW9uLlxuXG5UbyBrZWVwIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgc21hbGwsIHdlIGNhbiBwYWQgdGhlIHNhdG9zaGkgcmFuZ2UgcHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgdGhlIHJhbmdlXG53aXRoIGNoYW5nZSBvdXRwdXRzLCB3aGljaCBoYXZlIGEgbWluaW1hbCBzaXplIGFuZCBpbmN1ciBhIGZlZSBjb3N0LlxuXG5cbkJyb2FkbHkgc3BlYWtpbmcsIHRoZXJlIGFyZSBmb3VyIHNjZW5hcmlvczpcblxuKDEpIFNtYWxsIGluc2NyaXB0aW9uIGlucHV0IHRoYXQgaGFzIGp1c3QgZW5vdWdoIHZhbHVlIHRvIHBheSBmb3IgZmVlIGFuZCBhIHNpbmdsZSBpbnNjcmlwdGlvblxuICAgIG91dHB1dCAodTApLiBObyBwYWRkaW5nIG91dHB1dHMuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCIGZlZVxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuXG5cbigyKSBMYXJnZSBpbnNjcmlwdGlvbiBpbnB1dCB3aXRoIGluc2NyaXB0aW9uIGNsb3NlIHRvIHN0YXJ0IG9mIGlucHV0LlxuICAgIEluc2NyaXB0aW9uIG91dHB1dCBmb2xsb3dlZCBieSBjaGFuZ2Ugb3V0cHV0ICh1MSkgcGFkZGluZyB0aGUgcmVtYWluaW5nIHZhbHVlLlxuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpFxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oMykgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBjbG9zZSB0byBlbmQgb2YgaW5wdXQuXG4gICAgQ2hhbmdlIG91dHB1dCBwYWRkaW5nIHN0YXJ0IGZvbGxvd2VkIGJ5IGluc2NyaXB0aW9uIG91dHB1dC5cblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oNCkgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBpbiB0aGUgbWlkZGxlLlxuICAgIEluc2NyaXB0aW9uIGlucHV0ICh1MSkgd2l0aCBwYWRkaW5nIG9uIGJvdGggc2lkZXMgKHUwIGFuZCB1MilcblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAgICDilIIgICAgICAgIOKUgiB1MSAgICAg4pSCXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgICDilIIgdTIgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiBmZWVcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICovXG5cbmltcG9ydCB7IE9yZE91dHB1dCB9IGZyb20gJy4vT3JkT3V0cHV0JztcblxuY29uc3QgWkVSTyA9IEJpZ0ludCgwKTtcbmNvbnN0IE9ORSA9IEJpZ0ludCgxKTtcblxuZnVuY3Rpb24gbWF4KGE6IGJpZ2ludCwgYjogYmlnaW50KTogYmlnaW50IHtcbiAgcmV0dXJuIGEgPCBiID8gYiA6IGE7XG59XG5cbmZ1bmN0aW9uIG1pbihhOiBiaWdpbnQsIGI6IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBhIDwgYiA/IGEgOiBiO1xufVxuXG5mdW5jdGlvbiBzdW0oYXJyOiBiaWdpbnRbXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgWkVSTyk7XG59XG5cbi8qKlxuICogQSByYW5nZSBjb25zdHJhaW50XG4gKi9cbnR5cGUgUGFyYW1ldGVyczxUPiA9IHtcbiAgLyoqIFBhZGRpbmcgcHJlY2VkaW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgZmlyc3RDaGFuZ2VPdXRwdXQ6IFQ7XG4gIC8qKiBUaGUgaW5zY3JpcHRpb24gb3V0cHV0IHRoYXQgd2lsbCBpbmhlcml0IHRoZSBpbnB1dCBpbnNjcmlwdGlvbiAqL1xuICBpbnNjcmlwdGlvbk91dHB1dDogVDtcbiAgLyoqIFBhZGRpbmcgZm9sbG93aW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBUO1xuICAvKiogTm90IGEgcmVhbCBvdXRwdXQsIHVzZWQgb25seSB0byBzaW1wbGlmeSBjYWxjdWxhdGlvbnMgKi9cbiAgZmVlT3V0cHV0OiBUO1xufTtcblxuLyoqIEByZXR1cm4gY2Fub25pY2FsIHNlcXVlbmNlIG9mIHBhcmFtZXRlcnMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FycmF5PFQ+KHA6IFBhcmFtZXRlcnM8VD4pOiBbVCwgVCwgVCwgVF0ge1xuICByZXR1cm4gW3AuZmlyc3RDaGFuZ2VPdXRwdXQsIHAuaW5zY3JpcHRpb25PdXRwdXQsIHAuc2Vjb25kQ2hhbmdlT3V0cHV0LCBwLmZlZU91dHB1dF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlcnM8VD4oXG4gIGZpcnN0Q2hhbmdlT3V0cHV0OiBULFxuICBpbnNjcmlwdGlvbk91dHB1dDogVCxcbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBULFxuICBmZWVPdXRwdXQ6IFRcbik6IFBhcmFtZXRlcnM8VD4ge1xuICByZXR1cm4ge1xuICAgIGZpcnN0Q2hhbmdlT3V0cHV0LFxuICAgIGluc2NyaXB0aW9uT3V0cHV0LFxuICAgIHNlY29uZENoYW5nZU91dHB1dCxcbiAgICBmZWVPdXRwdXQsXG4gIH07XG59XG5cbi8qKiBBIGZpbmlzaGVkIG91dHB1dCBsYXlvdXQgKi9cbmV4cG9ydCB0eXBlIE91dHB1dExheW91dCA9IFBhcmFtZXRlcnM8YmlnaW50PjtcblxuLyoqXG4gKiBUcmFuc2xhdGVzIGEgbGF5b3V0IGludG8gT3JkT3V0cHV0cy4gQWJzZW50IG91dHB1dHMgYXJlIHNldCB0byBgbnVsbGAuXG4gKlxuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBsYXlvdXRcbiAqIEByZXR1cm4gT3JkT3V0cHV0cyBmb3IgbGF5b3V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KFxuICBpbnNjcmlwdGlvbklucHV0OiBPcmRPdXRwdXQsXG4gIGxheW91dDogT3V0cHV0TGF5b3V0XG4pOiBQYXJhbWV0ZXJzPE9yZE91dHB1dCB8IG51bGw+IHtcbiAgY29uc3Qgb3V0cHV0cyA9IGluc2NyaXB0aW9uSW5wdXQuc3BsaXRBbGxXaXRoUGFyYW1zKHRvQXJyYXkobGF5b3V0KSwgeyBleGFjdDogdHJ1ZSwgYWxsb3daZXJvOiB0cnVlIH0pO1xuICBpZiAob3V0cHV0cy5sZW5ndGggIT09IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcmVzdWx0YCk7XG4gIH1cbiAgdHlwZSBUID0gT3JkT3V0cHV0IHwgbnVsbDtcbiAgcmV0dXJuIHRvUGFyYW1ldGVycyguLi4ob3V0cHV0cyBhcyBbVCwgVCwgVCwgVF0pKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gY29uc3RyYWludHNcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbklucHV0XG4gKiBAcGFyYW0gbGF5b3V0XG4gKiBAcmV0dXJuIHRydWUgaWZmIGxheW91dCBzYXRpc2ZpZXMgY29uc3RyYWludHNcbiAqL1xuZnVuY3Rpb24gY2hlY2soY29uc3RyYWludHM6IENvbnN0cmFpbnRzLCBpbnNjcmlwdGlvbklucHV0OiBPcmRPdXRwdXQsIGxheW91dDogT3V0cHV0TGF5b3V0KTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICAobGF5b3V0LmZpcnN0Q2hhbmdlT3V0cHV0ID09PSBaRVJPIHx8IGNvbnN0cmFpbnRzLm1pbkNoYW5nZU91dHB1dCA8PSBsYXlvdXQuZmlyc3RDaGFuZ2VPdXRwdXQpICYmXG4gICAgKGxheW91dC5zZWNvbmRDaGFuZ2VPdXRwdXQgPT09IFpFUk8gfHwgY29uc3RyYWludHMubWluQ2hhbmdlT3V0cHV0IDw9IGxheW91dC5zZWNvbmRDaGFuZ2VPdXRwdXQpICYmXG4gICAgY29uc3RyYWludHMubWluSW5zY3JpcHRpb25PdXRwdXQgPD0gbGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0ICYmXG4gICAgbGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0IDw9IGNvbnN0cmFpbnRzLm1heEluc2NyaXB0aW9uT3V0cHV0ICYmXG4gICAgZ2V0RmVlRm9yT3V0cHV0cyhjb25zdHJhaW50cywgW2xheW91dC5maXJzdENoYW5nZU91dHB1dCwgbGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0LCBsYXlvdXQuc2Vjb25kQ2hhbmdlT3V0cHV0XSkgPD1cbiAgICAgIGxheW91dC5mZWVPdXRwdXQgJiZcbiAgICBzdW0odG9BcnJheShsYXlvdXQpKSA9PT0gaW5zY3JpcHRpb25JbnB1dC52YWx1ZVxuICApIHtcbiAgICAvKiBtYWtlIHN1cmUgaW5zY3JpcHRpb24gYWN0dWFsbHkgbGllcyBvbiB0aGUgaW5zY3JpcHRpb25PdXRwdXQgKi9cbiAgICBjb25zdCBvdXRwdXRzID0gZ2V0T3JkT3V0cHV0c0ZvckxheW91dChpbnNjcmlwdGlvbklucHV0LCBsYXlvdXQpO1xuICAgIHJldHVybiBvdXRwdXRzLmluc2NyaXB0aW9uT3V0cHV0Py5vcmRpbmFscy5sZW5ndGggPT09IDE7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogSGlnaC1sZXZlbCBjb25zdHJhaW50cyBmb3Igb3V0cHV0IGxheW91dFxuICovXG5leHBvcnQgdHlwZSBDb25zdHJhaW50cyA9IHtcbiAgbWluQ2hhbmdlT3V0cHV0OiBiaWdpbnQ7XG4gIG1pbkluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIGZlZUZpeGVkOiBiaWdpbnQ7XG4gIGZlZVBlck91dHB1dDogYmlnaW50O1xuICBzYXRQb3M6IGJpZ2ludDtcbiAgdG90YWw6IGJpZ2ludDtcbn07XG5cbmZ1bmN0aW9uIGdldEZlZUZvck91dHB1dHMocDogeyBmZWVQZXJPdXRwdXQ6IGJpZ2ludDsgZmVlRml4ZWQ6IGJpZ2ludCB9LCBvdXRwdXRzOiBiaWdpbnRbXSk6IGJpZ2ludCB7XG4gIHJldHVybiBvdXRwdXRzLnJlZHVjZSgoc3VtLCBvVmFsdWUpOiBiaWdpbnQgPT4gc3VtICsgKG9WYWx1ZSA9PT0gWkVSTyA/IFpFUk8gOiBwLmZlZVBlck91dHB1dCksIHAuZmVlRml4ZWQpO1xufVxuZnVuY3Rpb24gZ2V0U3RhcnRDaGFuZ2VPdXRwdXQoYzogQ29uc3RyYWludHMpOiBiaWdpbnQgfCBudWxsIHtcbiAgLy8gd2UgZG9uJ3QgbmVlZCBhIGNoYW5nZSBwYWRkaW5nIG91dHB1dFxuICBpZiAoYy5zYXRQb3MgPCBjLm1heEluc2NyaXB0aW9uT3V0cHV0KSB7XG4gICAgcmV0dXJuIFpFUk87XG4gIH1cbiAgaWYgKGMubWluQ2hhbmdlT3V0cHV0IDw9IGMuc2F0UG9zKSB7XG4gICAgcmV0dXJuIGMuc2F0UG9zO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRJbnNjcmlwdGlvbk91dHB1dChjOiBDb25zdHJhaW50cywgc3RhcnRDaGFuZ2VPdXRwdXQ6IGJpZ2ludCk6IGJpZ2ludCB8IG51bGwge1xuICBjb25zdCByZXN1bHQgPSBtaW4oYy5tYXhJbnNjcmlwdGlvbk91dHB1dCwgbWF4KGMubWluSW5zY3JpcHRpb25PdXRwdXQsIGMuc2F0UG9zIC0gc3RhcnRDaGFuZ2VPdXRwdXQgKyBPTkUpKTtcbiAgaWYgKGMuc2F0UG9zIDwgc3RhcnRDaGFuZ2VPdXRwdXQgfHwgc3RhcnRDaGFuZ2VPdXRwdXQgKyByZXN1bHQgPCBjLnNhdFBvcykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIGlmIGlzIG5vdCB3b3J0aCBjcmVhdGluZyBhbiBlbmQgY2hhbmdlIG91dHB1dCwgbGV0J3MgbWF4aW1pemUgdGhlIGluc2NyaXB0aW9uIG91dHB1dFxuICBpZiAoZ2V0RW5kQ2hhbmdlT3V0cHV0KGMsIHN0YXJ0Q2hhbmdlT3V0cHV0LCByZXN1bHQpID09PSBaRVJPKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gYy50b3RhbCAtIHN0YXJ0Q2hhbmdlT3V0cHV0IC0gZ2V0RmVlRm9yT3V0cHV0cyhjLCBbc3RhcnRDaGFuZ2VPdXRwdXQsIHJlc3VsdF0pO1xuICAgIHJldHVybiBtaW4ocmVtYWluZGVyLCBjLm1heEluc2NyaXB0aW9uT3V0cHV0KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBnZXRFbmRDaGFuZ2VPdXRwdXQoYzogQ29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0OiBiaWdpbnQsIGluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQpOiBiaWdpbnQgfCBudWxsIHtcbiAgY29uc3QgcmVtYWluZGVyID0gYy50b3RhbCAtIHN1bShbc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0XSk7XG4gIGNvbnN0IG1pbkZlZVdpdGhvdXRTZWNvbmRPdXRwdXQgPSBnZXRGZWVGb3JPdXRwdXRzKGMsIFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXRdKTtcbiAgY29uc3QgbWluRmVlV2l0aFNlY29uZE91dHB1dCA9IGdldEZlZUZvck91dHB1dHMoYywgW3N0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCwgYy5taW5DaGFuZ2VPdXRwdXRdKTtcbiAgaWYgKHJlbWFpbmRlciA8IG1pbkZlZVdpdGhvdXRTZWNvbmRPdXRwdXQpIHtcbiAgICAvLyBXZSBjYW5ub3QgZXZlbiBwYXkgdGhlIGZlZSBmb3IgdGhlIG91dHB1dChzKSB3ZSBoYXZlIHNvIGZhci5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAocmVtYWluZGVyIC0gbWluRmVlV2l0aFNlY29uZE91dHB1dCA8IGMubWluQ2hhbmdlT3V0cHV0KSB7XG4gICAgLy8gVGhlIHJlbWFpbmRlciBpcyB0b28gc21hbGwgdG8gcGF5IGZvciB0aGUgZW5kIGNoYW5nZSBvdXRwdXQuIExldCdzIHNraXAgaXQgYW5kIHBheSBhIGhpZ2hlciBmZWUuXG4gICAgcmV0dXJuIFpFUk87XG4gIH1cbiAgLy8gbGV0J3MgdXNlIGFzIG11Y2ggYXMgd2UgY2FuIGZvciBmZWUgd2hpbGUgbGVhdmluZyBlbm91Z2ggZm9yIGZlZVxuICByZXR1cm4gcmVtYWluZGVyIC0gbWluRmVlV2l0aFNlY29uZE91dHB1dDtcbn1cblxuZnVuY3Rpb24gZ2V0RmVlT3V0cHV0KFxuICBjOiBDb25zdHJhaW50cyxcbiAgc3RhcnRDaGFuZ2VPdXRwdXQ6IGJpZ2ludCxcbiAgaW5zY3JpcHRpb25PdXRwdXQ6IGJpZ2ludCxcbiAgZW5kQ2hhbmdlT3V0cHV0OiBiaWdpbnRcbik6IGJpZ2ludCB8IG51bGwge1xuICBjb25zdCBtaW5GZWUgPSBnZXRGZWVGb3JPdXRwdXRzKGMsIFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQsIGVuZENoYW5nZU91dHB1dF0pO1xuICBjb25zdCByZW1haW5kZXIgPSBjLnRvdGFsIC0gc3VtKFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQsIGVuZENoYW5nZU91dHB1dF0pO1xuICBpZiAocmVtYWluZGVyIDwgbWluRmVlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIHJlbWFpbmRlcjtcbn1cblxuLyoqXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25JbnB1dFxuICogQHBhcmFtIHNlYXJjaFxuICogQHJldHVybiBhIHNvbHV0aW9uIHRoYXQgc2F0aXNmaWVzIGNvbnN0cmFpbnRzLiBJZiBubyBzb2x1dGlvbiBjYW4gYmUgZm91bmQsIHJldHVybiBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXQoXG4gIGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCxcbiAgc2VhcmNoOiBPbWl0PENvbnN0cmFpbnRzLCAnc2F0UG9zJyB8ICd0b3RhbCc+XG4pOiBPdXRwdXRMYXlvdXQgfCB1bmRlZmluZWQge1xuICBpZiAoaW5zY3JpcHRpb25JbnB1dC5vcmRpbmFscy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgb3JkaW5hbCBjb3VudGApO1xuICB9XG4gIGlmIChpbnNjcmlwdGlvbklucHV0Lm9yZGluYWxzWzBdLnNpemUoKSAhPT0gT05FKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBvbmx5IHNpbmdsZS1zYXRvc2hpIGluc2NyaXB0aW9ucyBhcmUgc3VwcG9ydGVkYCk7XG4gIH1cblxuICBjb25zdCBzYXRQb3MgPSBpbnNjcmlwdGlvbklucHV0Lm9yZGluYWxzWzBdLnN0YXJ0O1xuICBjb25zdCB0b3RhbCA9IGluc2NyaXB0aW9uSW5wdXQudmFsdWU7XG5cbiAgY29uc3QgY29uc3RyYWludHM6IENvbnN0cmFpbnRzID0geyAuLi5zZWFyY2gsIHNhdFBvcywgdG90YWwgfTtcblxuICBjb25zdCBzdGFydENoYW5nZU91dHB1dCA9IGdldFN0YXJ0Q2hhbmdlT3V0cHV0KGNvbnN0cmFpbnRzKTtcbiAgaWYgKHN0YXJ0Q2hhbmdlT3V0cHV0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGluc2NyaXB0aW9uT3V0cHV0ID0gZ2V0SW5zY3JpcHRpb25PdXRwdXQoY29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0KTtcbiAgaWYgKGluc2NyaXB0aW9uT3V0cHV0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGVuZENoYW5nZU91dHB1dCA9IGdldEVuZENoYW5nZU91dHB1dChjb25zdHJhaW50cywgc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0KTtcbiAgaWYgKGVuZENoYW5nZU91dHB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBmZWVPdXRwdXQgPSBnZXRGZWVPdXRwdXQoY29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCwgZW5kQ2hhbmdlT3V0cHV0KTtcbiAgaWYgKGZlZU91dHB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB0b1BhcmFtZXRlcnMoc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0LCBlbmRDaGFuZ2VPdXRwdXQsIGZlZU91dHB1dCk7XG4gIGlmICghY2hlY2soY29uc3RyYWludHMsIGluc2NyaXB0aW9uSW5wdXQsIHJlc3VsdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgcmVzdWx0YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
@@ -1,9 +1,36 @@
1
1
  /// <reference types="node" />
2
+ import { Network, Transaction } from '@bitgo-beta/utxo-lib';
3
+ import { TapLeafScript } from 'bip174/src/lib/interfaces';
4
+ export declare type PreparedInscriptionRevealData = {
5
+ address: string;
6
+ revealTransactionVSize: number;
7
+ tapLeafScript: TapLeafScript;
8
+ };
2
9
  /**
3
- * @param userPubkey
10
+ * @returns PreparedInscriptionRevealData
11
+ * @param pubkey
12
+ * @param contentType
13
+ * @param inscriptionData
14
+ * @param network
15
+ */
16
+ export declare function createInscriptionRevealData(pubkey: Buffer, contentType: string, inscriptionData: Buffer, network: Network): PreparedInscriptionRevealData;
17
+ /**
18
+ * @param pubkey
4
19
  * @param contentType
5
20
  * @param inscriptionData
6
21
  * @returns inscription address
7
22
  */
8
- export declare function createOutputScriptForInscription(userPubkey: Buffer, contentType: string, inscriptionData: Buffer): Buffer;
23
+ export declare function createOutputScriptForInscription(pubkey: Buffer, contentType: string, inscriptionData: Buffer): Buffer;
24
+ /**
25
+ *
26
+ * @param privateKey
27
+ * @param tapLeafScript
28
+ * @param commitTxnHash
29
+ * @param commitAddress
30
+ * @param vout
31
+ * @param network
32
+ *
33
+ * @return a fully signed reveal transaction
34
+ */
35
+ export declare function signRevealTransaction(privateKey: Buffer, tapLeafScript: TapLeafScript, commitAddress: string, commitTxnHash: string, vout: number, network: Network): Transaction<bigint>;
9
36
  //# sourceMappingURL=inscriptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inscriptions.d.ts","sourceRoot":"","sources":["../../src/inscriptions.ts"],"names":[],"mappings":";AA4BA;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACtB,MAAM,CAyBR"}
1
+ {"version":3,"file":"inscriptions.d.ts","sourceRoot":"","sources":["../../src/inscriptions.ts"],"names":[],"mappings":";AAOA,OAAO,EAKL,OAAO,EAKP,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAoG1D,oBAAY,6BAA6B,GAAG;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,OAAO,GACf,6BAA6B,CAuB/B;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAKrH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,MAAM,CAAC,CAmBrB"}
@@ -5,7 +5,7 @@ Functions for dealing with inscriptions.
5
5
  See https://docs.ordinals.com/inscriptions.html
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.createOutputScriptForInscription = void 0;
8
+ exports.signRevealTransaction = exports.createOutputScriptForInscription = exports.createInscriptionRevealData = void 0;
9
9
  const assert = require("assert");
10
10
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
11
11
  const OPS = utxo_lib_1.script.OPS;
@@ -25,15 +25,16 @@ function splitBuffer(inscriptionData, chunkSize) {
25
25
  return pushDataBuffers;
26
26
  }
27
27
  /**
28
- * @param userPubkey
28
+ *
29
+ * @returns inscription payment object
30
+ * @param pubkey
29
31
  * @param contentType
30
32
  * @param inscriptionData
31
- * @returns inscription address
32
33
  */
33
- function createOutputScriptForInscription(userPubkey, contentType, inscriptionData) {
34
+ function createPaymentForInscription(pubkey, contentType, inscriptionData) {
34
35
  const dataPushBuffers = splitBuffer(inscriptionData, MAX_LENGTH_TAP_DATA_PUSH);
35
36
  const uncompiledScript = [
36
- userPubkey,
37
+ pubkey,
37
38
  OPS.OP_CHECKSIG,
38
39
  OPS.OP_FALSE,
39
40
  OPS.OP_IF,
@@ -49,9 +50,112 @@ function createOutputScriptForInscription(userPubkey, contentType, inscriptionDa
49
50
  output: compiledScript,
50
51
  depth: 0,
51
52
  };
52
- const payment = utxo_lib_1.p2trPayments.p2tr({ redeems: [redeem] }, { eccLib: utxo_lib_1.ecc });
53
+ return utxo_lib_1.p2trPayments.p2tr({ redeems: [redeem], redeemIndex: 0 }, { eccLib: utxo_lib_1.ecc });
54
+ }
55
+ /**
56
+ * @param payment
57
+ * @param controlBlock
58
+ * @param commitOutput
59
+ * @param network
60
+ * @return virtual size of a transaction with a single inscription reveal input and a single commitOutput
61
+ */
62
+ function getInscriptionRevealSize(payment, controlBlock, commitOutput, network) {
63
+ var _a, _b;
64
+ const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network });
65
+ const parsedControlBlock = utxo_lib_1.taproot.parseControlBlock(utxo_lib_1.ecc, controlBlock);
66
+ const leafHash = utxo_lib_1.taproot.getTapleafHash(utxo_lib_1.ecc, parsedControlBlock, (_a = payment.redeem) === null || _a === void 0 ? void 0 : _a.output);
67
+ psbt.addInput({
68
+ hash: Buffer.alloc(32),
69
+ index: 0,
70
+ witnessUtxo: { script: commitOutput, value: BigInt(100000) },
71
+ tapLeafScript: [
72
+ {
73
+ controlBlock,
74
+ script: (_b = payment.redeem) === null || _b === void 0 ? void 0 : _b.output,
75
+ leafVersion: utxo_lib_1.taproot.INITIAL_TAPSCRIPT_VERSION,
76
+ },
77
+ ],
78
+ });
79
+ psbt.addOutput({ script: commitOutput, value: BigInt(10000) });
80
+ psbt.signTaprootInput(0, {
81
+ publicKey: Buffer.alloc(32),
82
+ signSchnorr(hash) {
83
+ // dummy schnorr-sized signature
84
+ return Buffer.alloc(64);
85
+ },
86
+ }, [leafHash]);
87
+ psbt.finalizeTapInputWithSingleLeafScriptAndSignature(0);
88
+ return psbt.extractTransaction(/* disableFeeCheck */ true).virtualSize();
89
+ }
90
+ /**
91
+ * @returns PreparedInscriptionRevealData
92
+ * @param pubkey
93
+ * @param contentType
94
+ * @param inscriptionData
95
+ * @param network
96
+ */
97
+ function createInscriptionRevealData(pubkey, contentType, inscriptionData, network) {
98
+ var _a, _b;
99
+ const payment = createPaymentForInscription(pubkey, contentType, inscriptionData);
100
+ const { output: commitOutput, controlBlock } = payment;
101
+ assert(commitOutput);
102
+ assert(controlBlock);
103
+ assert((_a = payment.redeem) === null || _a === void 0 ? void 0 : _a.output);
104
+ const commitAddress = utxo_lib_1.address.fromOutputScript(commitOutput, network);
105
+ const tapLeafScript = [
106
+ {
107
+ controlBlock,
108
+ script: (_b = payment.redeem) === null || _b === void 0 ? void 0 : _b.output,
109
+ leafVersion: utxo_lib_1.taproot.INITIAL_TAPSCRIPT_VERSION,
110
+ },
111
+ ];
112
+ const revealTransactionVSize = getInscriptionRevealSize(payment, controlBlock, commitOutput, network);
113
+ return {
114
+ address: commitAddress,
115
+ revealTransactionVSize,
116
+ tapLeafScript: tapLeafScript[0],
117
+ };
118
+ }
119
+ exports.createInscriptionRevealData = createInscriptionRevealData;
120
+ /**
121
+ * @param pubkey
122
+ * @param contentType
123
+ * @param inscriptionData
124
+ * @returns inscription address
125
+ */
126
+ function createOutputScriptForInscription(pubkey, contentType, inscriptionData) {
127
+ const payment = createPaymentForInscription(pubkey, contentType, inscriptionData);
53
128
  assert(payment.output, 'Failed to create inscription output script');
54
129
  return payment.output;
55
130
  }
56
131
  exports.createOutputScriptForInscription = createOutputScriptForInscription;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTs7O0FBRUYsaUNBQWlDO0FBQ2pDLG1EQUEyRztBQUUzRyxNQUFNLEdBQUcsR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQztBQUN4QixNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxlQUF1QixFQUFFLFNBQWlCO0lBQzdELE1BQU0sZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFO1FBQzFELGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDL0Q7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixnQ0FBZ0MsQ0FDOUMsVUFBa0IsRUFDbEIsV0FBbUIsRUFDbkIsZUFBdUI7SUFFdkIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sZ0JBQWdCLEdBQUc7UUFDdkIsVUFBVTtRQUNWLEdBQUcsQ0FBQyxXQUFXO1FBQ2YsR0FBRyxDQUFDLFFBQVE7UUFDWixHQUFHLENBQUMsS0FBSztRQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztRQUMzQixHQUFHLENBQUMsSUFBSTtRQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQztRQUNqQyxHQUFHLENBQUMsSUFBSTtRQUNSLEdBQUcsZUFBZTtRQUNsQixHQUFHLENBQUMsS0FBSztLQUNWLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxpQkFBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFZO1FBQ3RCLE1BQU0sRUFBRSxjQUFjO1FBQ3RCLEtBQUssRUFBRSxDQUFDO0tBQ1QsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUFHLHVCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBTixjQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWpFLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7SUFDckUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQ3hCLENBQUM7QUE3QkQsNEVBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkZ1bmN0aW9ucyBmb3IgZGVhbGluZyB3aXRoIGluc2NyaXB0aW9ucy5cblxuU2VlIGh0dHBzOi8vZG9jcy5vcmRpbmFscy5jb20vaW5zY3JpcHRpb25zLmh0bWxcbiovXG5cbmltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgcDJ0clBheW1lbnRzIGFzIHBheW1lbnRzLCBlY2MgYXMgZWNjTGliLCBzY3JpcHQgYXMgYnNjcmlwdCwgUGF5bWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuY29uc3QgT1BTID0gYnNjcmlwdC5PUFM7XG5jb25zdCBNQVhfTEVOR1RIX1RBUF9EQVRBX1BVU0ggPSA1MjA7XG5cbi8qKlxuICogVGhlIG1heCBzaXplIG9mIGFuIGluZGl2aWR1YWwgT1BfUFVTSCBpbiBhIFRhcHJvb3Qgc2NyaXB0IGlzIDUyMCBieXRlcy4gVGhpc1xuICogZnVuY3Rpb24gc3BsaXRzIGluc2NyaXB0aW9uRGF0YSBpbnRvIGFuIGFycmF5IGJ1ZmZlciBvZiA1MjAgYnl0ZXMgbGVuZ3RoLlxuICogaHR0cHM6Ly9kb2NzLm9yZGluYWxzLmNvbS9pbnNjcmlwdGlvbnMuaHRtbFxuICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICogQHBhcmFtIGNodW5rU2l6ZVxuICovXG5mdW5jdGlvbiBzcGxpdEJ1ZmZlcihpbnNjcmlwdGlvbkRhdGE6IEJ1ZmZlciwgY2h1bmtTaXplOiBudW1iZXIpIHtcbiAgY29uc3QgcHVzaERhdGFCdWZmZXJzOiBCdWZmZXJbXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGluc2NyaXB0aW9uRGF0YS5sZW5ndGg7IGkgKz0gY2h1bmtTaXplKSB7XG4gICAgcHVzaERhdGFCdWZmZXJzLnB1c2goaW5zY3JpcHRpb25EYXRhLnNsaWNlKGksIGkgKyBjaHVua1NpemUpKTtcbiAgfVxuXG4gIHJldHVybiBwdXNoRGF0YUJ1ZmZlcnM7XG59XG5cbi8qKlxuICogQHBhcmFtIHVzZXJQdWJrZXlcbiAqIEBwYXJhbSBjb250ZW50VHlwZVxuICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICogQHJldHVybnMgaW5zY3JpcHRpb24gYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3V0cHV0U2NyaXB0Rm9ySW5zY3JpcHRpb24oXG4gIHVzZXJQdWJrZXk6IEJ1ZmZlcixcbiAgY29udGVudFR5cGU6IHN0cmluZyxcbiAgaW5zY3JpcHRpb25EYXRhOiBCdWZmZXJcbik6IEJ1ZmZlciB7XG4gIGNvbnN0IGRhdGFQdXNoQnVmZmVycyA9IHNwbGl0QnVmZmVyKGluc2NyaXB0aW9uRGF0YSwgTUFYX0xFTkdUSF9UQVBfREFUQV9QVVNIKTtcblxuICBjb25zdCB1bmNvbXBpbGVkU2NyaXB0ID0gW1xuICAgIHVzZXJQdWJrZXksXG4gICAgT1BTLk9QX0NIRUNLU0lHLFxuICAgIE9QUy5PUF9GQUxTRSxcbiAgICBPUFMuT1BfSUYsXG4gICAgQnVmZmVyLmZyb20oJ29yZCcsICdhc2NpaScpLFxuICAgIE9QUy5PUF8xLFxuICAgIEJ1ZmZlci5mcm9tKGNvbnRlbnRUeXBlLCAnYXNjaWknKSxcbiAgICBPUFMuT1BfMCxcbiAgICAuLi5kYXRhUHVzaEJ1ZmZlcnMsXG4gICAgT1BTLkVORElGLFxuICBdO1xuXG4gIGNvbnN0IGNvbXBpbGVkU2NyaXB0ID0gYnNjcmlwdC5jb21waWxlKHVuY29tcGlsZWRTY3JpcHQpO1xuICBjb25zdCByZWRlZW06IFBheW1lbnQgPSB7XG4gICAgb3V0cHV0OiBjb21waWxlZFNjcmlwdCxcbiAgICBkZXB0aDogMCxcbiAgfTtcbiAgY29uc3QgcGF5bWVudCA9IHBheW1lbnRzLnAydHIoeyByZWRlZW1zOiBbcmVkZWVtXSB9LCB7IGVjY0xpYiB9KTtcblxuICBhc3NlcnQocGF5bWVudC5vdXRwdXQsICdGYWlsZWQgdG8gY3JlYXRlIGluc2NyaXB0aW9uIG91dHB1dCBzY3JpcHQnKTtcbiAgcmV0dXJuIHBheW1lbnQub3V0cHV0O1xufVxuIl19
132
+ /**
133
+ *
134
+ * @param privateKey
135
+ * @param tapLeafScript
136
+ * @param commitTxnHash
137
+ * @param commitAddress
138
+ * @param vout
139
+ * @param network
140
+ *
141
+ * @return a fully signed reveal transaction
142
+ */
143
+ function signRevealTransaction(privateKey, tapLeafScript, commitAddress, commitTxnHash, vout, network) {
144
+ const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network });
145
+ const commitOutput = utxo_lib_1.address.toOutputScript(commitAddress, network);
146
+ psbt.addInput({
147
+ hash: commitTxnHash,
148
+ index: vout,
149
+ witnessUtxo: { script: commitOutput, value: BigInt(100000) },
150
+ tapLeafScript: [tapLeafScript],
151
+ });
152
+ psbt.addOutput({ script: commitOutput, value: BigInt(10000) });
153
+ const signer = utxo_lib_1.ECPair.fromPrivateKey(privateKey);
154
+ const parsedControlBlock = utxo_lib_1.taproot.parseControlBlock(utxo_lib_1.ecc, tapLeafScript.controlBlock);
155
+ const leafHash = utxo_lib_1.taproot.getTapleafHash(utxo_lib_1.ecc, parsedControlBlock, tapLeafScript.script);
156
+ psbt.signTaprootInput(0, signer, [leafHash]);
157
+ psbt.finalizeTapInputWithSingleLeafScriptAndSignature(0);
158
+ return psbt.extractTransaction(/* disableFeeCheck*/ true);
159
+ }
160
+ exports.signRevealTransaction = signRevealTransaction;
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTs7O0FBRUYsaUNBQWlDO0FBQ2pDLG1EQVc4QjtBQUc5QixNQUFNLEdBQUcsR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQztBQUN4QixNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxlQUF1QixFQUFFLFNBQWlCO0lBQzdELE1BQU0sZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFO1FBQzFELGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDL0Q7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUywyQkFBMkIsQ0FBQyxNQUFjLEVBQUUsV0FBbUIsRUFBRSxlQUF1QjtJQUMvRixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFFL0UsTUFBTSxnQkFBZ0IsR0FBRztRQUN2QixNQUFNO1FBQ04sR0FBRyxDQUFDLFdBQVc7UUFDZixHQUFHLENBQUMsUUFBUTtRQUNaLEdBQUcsQ0FBQyxLQUFLO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1FBQzNCLEdBQUcsQ0FBQyxJQUFJO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxJQUFJO1FBQ1IsR0FBRyxlQUFlO1FBQ2xCLEdBQUcs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QUU7UUFDN0QsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDO0tBQy9CLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sTUFBTSxHQUFHLGlCQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sa0JBQWtCLEdBQUcsa0JBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFNLEVBQUUsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sUUFBUSxHQUFHLGtCQUFPLENBQUMsY0FBYyxDQUFDLGNBQU0sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUMsTUFBZ0IsQ0FBQyxDQUFDO0lBQ3BHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQTFCRCxzREEwQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuRnVuY3Rpb25zIGZvciBkZWFsaW5nIHdpdGggaW5zY3JpcHRpb25zLlxuXG5TZWUgaHR0cHM6Ly9kb2NzLm9yZGluYWxzLmNvbS9pbnNjcmlwdGlvbnMuaHRtbFxuKi9cblxuaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICBwMnRyUGF5bWVudHMgYXMgcGF5bWVudHMsXG4gIGVjYyBhcyBlY2NMaWIsXG4gIHNjcmlwdCBhcyBic2NyaXB0LFxuICBQYXltZW50LFxuICBOZXR3b3JrLFxuICBiaXRnbyxcbiAgYWRkcmVzcyxcbiAgdGFwcm9vdCxcbiAgRUNQYWlyLFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgVGFwTGVhZlNjcmlwdCB9IGZyb20gJ2JpcDE3NC9zcmMvbGliL2ludGVyZmFjZXMnO1xuXG5jb25zdCBPUFMgPSBic2NyaXB0Lk9QUztcbmNvbnN0IE1BWF9MRU5HVEhfVEFQX0RBVEFfUFVTSCA9IDUyMDtcblxuLyoqXG4gKiBUaGUgbWF4IHNpemUgb2YgYW4gaW5kaXZpZHVhbCBPUF9QVVNIIGluIGEgVGFwcm9vdCBzY3JpcHQgaXMgNTIwIGJ5dGVzLiBUaGlzXG4gKiBmdW5jdGlvbiBzcGxpdHMgaW5zY3JpcHRpb25EYXRhIGludG8gYW4gYXJyYXkgYnVmZmVyIG9mIDUyMCBieXRlcyBsZW5ndGguXG4gKiBodHRwczovL2RvY3Mub3JkaW5hbHMuY29tL2luc2NyaXB0aW9ucy5odG1sXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gKiBAcGFyYW0gY2h1bmtTaXplXG4gKi9cbmZ1bmN0aW9uIHNwbGl0QnVmZmVyKGluc2NyaXB0aW9uRGF0YTogQnVmZmVyLCBjaHVua1NpemU6IG51bWJlcikge1xuICBjb25zdCBwdXNoRGF0YUJ1ZmZlcnM6IEJ1ZmZlcltdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5zY3JpcHRpb25EYXRhLmxlbmd0aDsgaSArPSBjaHVua1NpemUpIHtcbiAgICBwdXNoRGF0YUJ1ZmZlcnMucHVzaChpbnNjcmlwdGlvbkRhdGEuc2xpY2UoaSwgaSArIGNodW5rU2l6ZSkpO1xuICB9XG5cbiAgcmV0dXJuIHB1c2hEYXRhQnVmZmVycztcbn1cblxuLyoqXG4gKlxuICogQHJldHVybnMgaW5zY3JpcHRpb24gcGF5bWVudCBvYmplY3RcbiAqIEBwYXJhbSBwdWJrZXlcbiAqIEBwYXJhbSBjb250ZW50VHlwZVxuICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICovXG5mdW5jdGlvbiBjcmVhdGVQYXltZW50Rm9ySW5zY3JpcHRpb24ocHVia2V5OiBCdWZmZXIsIGNvbnRlbnRUeXBlOiBzdHJpbmcsIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyKTogUGF5bWVudCB7XG4gIGNvbnN0IGRhdGFQdXNoQnVmZmVycyA9IHNwbGl0QnVmZmVyKGluc2NyaXB0aW9uRGF0YSwgTUFYX0xFTkdUSF9UQVBfREFUQV9QVVNIKTtcblxuICBjb25zdCB1bmNvbXBpbGVkU2NyaXB0ID0gW1xuICAgIHB1YmtleSxcbiAgICBPUFMuT1BfQ0hFQ0tTSUcsXG4gICAgT1BTLk9QX0ZBTFNFLFxuICAgIE9QUy5PUF9JRixcbiAgICBCdWZmZXIuZnJvbSgnb3JkJywgJ2FzY2lpJyksXG4gICAgT1BTLk9QXzEsXG4gICAgQnVmZmVyLmZyb20oY29udGVudFR5cGUsICdhc2NpaScpLFxuICAgIE9QUy5PUF8wLFxuICAgIC4uLmRhdGFQdXNoQnVmZmVycyxcbiAgICBPUFMuRU5ESUYsXG4gIF07XG5cbiAgY29uc3QgY29tcGlsZWRTY3JpcHQgPSBic2NyaXB0LmNvbXBpbGUodW5jb21waWxlZFNjcmlwdCk7XG4gIGNvbnN0IHJlZGVlbTogUGF5bWVudCA9IHtcbiAgICBvdXRwdXQ6IGNvbXBpbGVkU2NyaXB0LFxuICAgIGRlcHRoOiAwLFxuICB9O1xuXG4gIHJldHVybiBwYXltZW50cy5wMnRyKHsgcmVkZWVtczogW3JlZGVlbV0sIHJlZGVlbUluZGV4OiAwIH0sIHsgZWNjTGliIH0pO1xufVxuXG4vKipcbiAqIEBwYXJhbSBwYXltZW50XG4gKiBAcGFyYW0gY29udHJvbEJsb2NrXG4gKiBAcGFyYW0gY29tbWl0T3V0cHV0XG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHJldHVybiB2aXJ0dWFsIHNpemUgb2YgYSB0cmFuc2FjdGlvbiB3aXRoIGEgc2luZ2xlIGluc2NyaXB0aW9uIHJldmVhbCBpbnB1dCBhbmQgYSBzaW5nbGUgY29tbWl0T3V0cHV0XG4gKi9cbmZ1bmN0aW9uIGdldEluc2NyaXB0aW9uUmV2ZWFsU2l6ZShcbiAgcGF5bWVudDogUGF5bWVudCxcbiAgY29udHJvbEJsb2NrOiBCdWZmZXIsXG4gIGNvbW1pdE91dHB1dDogQnVmZmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrXG4pOiBudW1iZXIge1xuICBjb25zdCBwc2J0ID0gYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrIH0pO1xuICBjb25zdCBwYXJzZWRDb250cm9sQmxvY2sgPSB0YXByb290LnBhcnNlQ29udHJvbEJsb2NrKGVjY0xpYiwgY29udHJvbEJsb2NrKTtcbiAgY29uc3QgbGVhZkhhc2ggPSB0YXByb290LmdldFRhcGxlYWZIYXNoKGVjY0xpYiwgcGFyc2VkQ29udHJvbEJsb2NrLCBwYXltZW50LnJlZGVlbT8ub3V0cHV0IGFzIEJ1ZmZlcik7XG5cbiAgcHNidC5hZGRJbnB1dCh7XG4gICAgaGFzaDogQnVmZmVyLmFsbG9jKDMyKSxcbiAgICBpbmRleDogMCxcbiAgICB3aXRuZXNzVXR4bzogeyBzY3JpcHQ6IGNvbW1pdE91dHB1dCwgdmFsdWU6IEJpZ0ludCgxMDBfMDAwKSB9LFxuICAgIHRhcExlYWZTY3JpcHQ6IFtcbiAgICAgIHtcbiAgICAgICAgY29udHJvbEJsb2NrLFxuICAgICAgICBzY3JpcHQ6IHBheW1lbnQucmVkZWVtPy5vdXRwdXQgYXMgQnVmZmVyLFxuICAgICAgICBsZWFmVmVyc2lvbjogdGFwcm9vdC5JTklUSUFMX1RBUFNDUklQVF9WRVJTSU9OLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcbiAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQ6IGNvbW1pdE91dHB1dCwgdmFsdWU6IEJpZ0ludCgxMF8wMDApIH0pO1xuXG4gIHBzYnQuc2lnblRhcHJvb3RJbnB1dChcbiAgICAwLFxuICAgIHtcbiAgICAgIHB1YmxpY0tleTogQnVmZmVyLmFsbG9jKDMyKSxcbiAgICAgIHNpZ25TY2hub3JyKGhhc2g6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gICAgICAgIC8vIGR1bW15IHNjaG5vcnItc2l6ZWQgc2lnbmF0dXJlXG4gICAgICAgIHJldHVybiBCdWZmZXIuYWxsb2MoNjQpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIFtsZWFmSGFzaF1cbiAgKTtcblxuICBwc2J0LmZpbmFsaXplVGFwSW5wdXRXaXRoU2luZ2xlTGVhZlNjcmlwdEFuZFNpZ25hdHVyZSgwKTtcbiAgcmV0dXJuIHBzYnQuZXh0cmFjdFRyYW5zYWN0aW9uKC8qIGRpc2FibGVGZWVDaGVjayAqLyB0cnVlKS52aXJ0dWFsU2l6ZSgpO1xufVxuXG5leHBvcnQgdHlwZSBQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YSA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICByZXZlYWxUcmFuc2FjdGlvblZTaXplOiBudW1iZXI7XG4gIHRhcExlYWZTY3JpcHQ6IFRhcExlYWZTY3JpcHQ7XG59O1xuXG4vKipcbiAqIEByZXR1cm5zIFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhXG4gKiBAcGFyYW0gcHVia2V5XG4gKiBAcGFyYW0gY29udGVudFR5cGVcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGFcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnNjcmlwdGlvblJldmVhbERhdGEoXG4gIHB1YmtleTogQnVmZmVyLFxuICBjb250ZW50VHlwZTogc3RyaW5nLFxuICBpbnNjcmlwdGlvbkRhdGE6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29ya1xuKTogUHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGEge1xuICBjb25zdCBwYXltZW50ID0gY3JlYXRlUGF5bWVudEZvckluc2NyaXB0aW9uKHB1YmtleSwgY29udGVudFR5cGUsIGluc2NyaXB0aW9uRGF0YSk7XG5cbiAgY29uc3QgeyBvdXRwdXQ6IGNvbW1pdE91dHB1dCwgY29udHJvbEJsb2NrIH0gPSBwYXltZW50O1xuICBhc3NlcnQoY29tbWl0T3V0cHV0KTtcbiAgYXNzZXJ0KGNvbnRyb2xCbG9jayk7XG4gIGFzc2VydChwYXltZW50LnJlZGVlbT8ub3V0cHV0KTtcbiAgY29uc3QgY29tbWl0QWRkcmVzcyA9IGFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChjb21taXRPdXRwdXQsIG5ldHdvcmspO1xuXG4gIGNvbnN0IHRhcExlYWZTY3JpcHQ6IFRhcExlYWZTY3JpcHRbXSA9IFtcbiAgICB7XG4gICAgICBjb250cm9sQmxvY2ssXG4gICAgICBzY3JpcHQ6IHBheW1lbnQucmVkZWVtPy5vdXRwdXQsXG4gICAgICBsZWFmVmVyc2lvbjogdGFwcm9vdC5JTklUSUFMX1RBUFNDUklQVF9WRVJTSU9OLFxuICAgIH0sXG4gIF07XG4gIGNvbnN0IHJldmVhbFRyYW5zYWN0aW9uVlNpemUgPSBnZXRJbnNjcmlwdGlvblJldmVhbFNpemUocGF5bWVudCwgY29udHJvbEJsb2NrLCBjb21taXRPdXRwdXQsIG5ldHdvcmspO1xuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogY29tbWl0QWRkcmVzcyxcbiAgICByZXZlYWxUcmFuc2FjdGlvblZTaXplLFxuICAgIHRhcExlYWZTY3JpcHQ6IHRhcExlYWZTY3JpcHRbMF0sXG4gIH07XG59XG5cbi8qKlxuICogQHBhcmFtIHB1YmtleVxuICogQHBhcmFtIGNvbnRlbnRUeXBlXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gKiBAcmV0dXJucyBpbnNjcmlwdGlvbiBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPdXRwdXRTY3JpcHRGb3JJbnNjcmlwdGlvbihwdWJrZXk6IEJ1ZmZlciwgY29udGVudFR5cGU6IHN0cmluZywgaW5zY3JpcHRpb25EYXRhOiBCdWZmZXIpOiBCdWZmZXIge1xuICBjb25zdCBwYXltZW50ID0gY3JlYXRlUGF5bWVudEZvckluc2NyaXB0aW9uKHB1YmtleSwgY29udGVudFR5cGUsIGluc2NyaXB0aW9uRGF0YSk7XG5cbiAgYXNzZXJ0KHBheW1lbnQub3V0cHV0LCAnRmFpbGVkIHRvIGNyZWF0ZSBpbnNjcmlwdGlvbiBvdXRwdXQgc2NyaXB0Jyk7XG4gIHJldHVybiBwYXltZW50Lm91dHB1dDtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHByaXZhdGVLZXlcbiAqIEBwYXJhbSB0YXBMZWFmU2NyaXB0XG4gKiBAcGFyYW0gY29tbWl0VHhuSGFzaFxuICogQHBhcmFtIGNvbW1pdEFkZHJlc3NcbiAqIEBwYXJhbSB2b3V0XG4gKiBAcGFyYW0gbmV0d29ya1xuICpcbiAqIEByZXR1cm4gYSBmdWxseSBzaWduZWQgcmV2ZWFsIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduUmV2ZWFsVHJhbnNhY3Rpb24oXG4gIHByaXZhdGVLZXk6IEJ1ZmZlcixcbiAgdGFwTGVhZlNjcmlwdDogVGFwTGVhZlNjcmlwdCxcbiAgY29tbWl0QWRkcmVzczogc3RyaW5nLFxuICBjb21taXRUeG5IYXNoOiBzdHJpbmcsXG4gIHZvdXQ6IG51bWJlcixcbiAgbmV0d29yazogTmV0d29ya1xuKTogVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIGNvbnN0IGNvbW1pdE91dHB1dCA9IGFkZHJlc3MudG9PdXRwdXRTY3JpcHQoY29tbWl0QWRkcmVzcywgbmV0d29yayk7XG4gIHBzYnQuYWRkSW5wdXQoe1xuICAgIGhhc2g6IGNvbW1pdFR4bkhhc2gsXG4gICAgaW5kZXg6IHZvdXQsXG4gICAgd2l0bmVzc1V0eG86IHsgc2NyaXB0OiBjb21taXRPdXRwdXQsIHZhbHVlOiBCaWdJbnQoMTAwXzAwMCkgfSxcbiAgICB0YXBMZWFmU2NyaXB0OiBbdGFwTGVhZlNjcmlwdF0sXG4gIH0pO1xuXG4gIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0OiBjb21taXRPdXRwdXQsIHZhbHVlOiBCaWdJbnQoMTBfMDAwKSB9KTtcblxuICBjb25zdCBzaWduZXIgPSBFQ1BhaXIuZnJvbVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gIGNvbnN0IHBhcnNlZENvbnRyb2xCbG9jayA9IHRhcHJvb3QucGFyc2VDb250cm9sQmxvY2soZWNjTGliLCB0YXBMZWFmU2NyaXB0LmNvbnRyb2xCbG9jayk7XG4gIGNvbnN0IGxlYWZIYXNoID0gdGFwcm9vdC5nZXRUYXBsZWFmSGFzaChlY2NMaWIsIHBhcnNlZENvbnRyb2xCbG9jaywgdGFwTGVhZlNjcmlwdC5zY3JpcHQgYXMgQnVmZmVyKTtcbiAgcHNidC5zaWduVGFwcm9vdElucHV0KDAsIHNpZ25lciwgW2xlYWZIYXNoXSk7XG4gIHBzYnQuZmluYWxpemVUYXBJbnB1dFdpdGhTaW5nbGVMZWFmU2NyaXB0QW5kU2lnbmF0dXJlKDApO1xuXG4gIHJldHVybiBwc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigvKiBkaXNhYmxlRmVlQ2hlY2sqLyB0cnVlKTtcbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { Network, bitgo } from '@bitgo-beta/utxo-lib';
3
- import { OutputLayout, SatPoint } from './index';
3
+ import { SatPoint } from './SatPoint';
4
+ import { OutputLayout } from './OutputLayout';
4
5
  export declare type WalletOutputPath = {
5
6
  chain: bitgo.ChainCode;
6
7
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAGL,YAAY,EAEZ,QAAQ,EAKT,MAAM,SAAS,CAAC;AAEjB,oBAAY,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,YAAY,GACzB,KAAK,CAAC,QAAQ,CA+ChB;AAWD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,YAAY,GAAG,SAAS,CAiC1B;AAED,wBAAgB,gDAAgD,CAC9D,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,KAAK,CAAC,QAAQ,CAMhB"}
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAA0B,YAAY,EAA6B,MAAM,gBAAgB,CAAC;AAEjG,oBAAY,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,YAAY,GACzB,KAAK,CAAC,QAAQ,CA+ChB;AAWD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,YAAY,GAAG,SAAS,CA+B1B;AAED,wBAAgB,gDAAgD,CAC9D,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,KAAK,CAAC,QAAQ,CAMhB"}
package/dist/src/psbt.js CHANGED
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createPsbtForSingleInscriptionPassingTransaction = exports.findOutputLayoutForWalletUnspents = exports.createPsbtFromOutputLayout = void 0;
4
4
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
5
5
  const unspents_1 = require("@bitgo-beta/unspents");
6
- const index_1 = require("./index");
6
+ const OrdOutput_1 = require("./OrdOutput");
7
+ const SatPoint_1 = require("./SatPoint");
8
+ const SatRange_1 = require("./SatRange");
9
+ const OutputLayout_1 = require("./OutputLayout");
7
10
  function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, outputLayout) {
8
11
  const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network: network });
9
12
  if (unspents.length !== 1) {
@@ -11,8 +14,8 @@ function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, ou
11
14
  }
12
15
  unspents.forEach((u) => utxo_lib_1.bitgo.addWalletUnspentToPsbt(psbt, u, inputBuilder.walletKeys, inputBuilder.signer, inputBuilder.cosigner, psbt.network));
13
16
  const [input] = unspents;
14
- const ordOutputs = index_1.getOrdOutputsForLayout(new index_1.OrdOutput(input.value), outputLayout);
15
- index_1.toArray(ordOutputs).forEach((ordOutput) => {
17
+ const ordOutputs = OutputLayout_1.getOrdOutputsForLayout(new OrdOutput_1.OrdOutput(input.value), outputLayout);
18
+ OutputLayout_1.toArray(ordOutputs).forEach((ordOutput) => {
16
19
  if (ordOutput === null) {
17
20
  return;
18
21
  }
@@ -44,8 +47,8 @@ function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, ou
44
47
  }
45
48
  exports.createPsbtFromOutputLayout = createPsbtFromOutputLayout;
46
49
  function toSatRange(p) {
47
- const { offset } = index_1.parseSatPoint(p);
48
- return new index_1.SatRange(offset, offset);
50
+ const { offset } = SatPoint_1.parseSatPoint(p);
51
+ return new SatRange_1.SatRange(offset, offset);
49
52
  }
50
53
  function getFee(vsize, rateSatPerKB) {
51
54
  return BigInt(Math.ceil((vsize * rateSatPerKB) / 1000));
@@ -58,12 +61,11 @@ function findOutputLayoutForWalletUnspents(inputs, satPoint, outputs, constraint
58
61
  // otherwise our fee calc is too complicated
59
62
  throw new Error(`wallet outputs must be on same chain`);
60
63
  }
61
- const { minChangeOutput = BigInt(10000), maxChangeOutput = index_1.Constraint.MAXSAT, minInscriptionOutput = BigInt(10000), maxInscriptionOutput = BigInt(20000), } = constraints;
64
+ const { minChangeOutput = BigInt(10000), minInscriptionOutput = BigInt(10000), maxInscriptionOutput = BigInt(20000), } = constraints;
62
65
  const [input] = inputs;
63
- const inscriptionOutput = new index_1.OrdOutput(input.value, [toSatRange(satPoint)]);
64
- return index_1.findOutputLayout(inscriptionOutput, {
66
+ const inscriptionOutput = new OrdOutput_1.OrdOutput(input.value, [toSatRange(satPoint)]);
67
+ return OutputLayout_1.findOutputLayout(inscriptionOutput, {
65
68
  minChangeOutput,
66
- maxChangeOutput,
67
69
  minInscriptionOutput,
68
70
  maxInscriptionOutput,
69
71
  feeFixed: getFee(unspents_1.VirtualSizes.txSegOverheadVSize + unspents_1.Dimensions.fromUnspents(inputs).getInputsVSize(), constraints.feeRateSatKB),
@@ -79,4 +81,4 @@ function createPsbtForSingleInscriptionPassingTransaction(network, inputBuilder,
79
81
  return createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, layout);
80
82
  }
81
83
  exports.createPsbtForSingleInscriptionPassingTransaction = createPsbtForSingleInscriptionPassingTransaction;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRDtBQUMvRCxtREFBZ0U7QUFFaEUsbUNBVWlCO0FBMEJqQixTQUFnQiwwQkFBMEIsQ0FDeEMsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsT0FBMkIsRUFDM0IsWUFBMEI7SUFFMUIsTUFBTSxJQUFJLEdBQUcsZ0JBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLGdCQUFLLENBQUMsc0JBQXNCLENBQzFCLElBQUksRUFDSixDQUFDLEVBQ0QsWUFBWSxDQUFDLFVBQVUsRUFDdkIsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLFFBQVEsRUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLDhCQUFzQixDQUFDLElBQUksaUJBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsZUFBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQ3hDLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtZQUN0QixPQUFPO1NBQ1I7UUFDRCxRQUFRLFNBQVMsRUFBRTtZQUNqQixnREFBZ0Q7WUFDaEQsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLFVBQVUsQ0FBQyxTQUFTO2dCQUN2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QyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFDbEYsV0FBVyxDQUFDLFlBQVksQ0FDekI7UUFDRCxZQUFZLEVBQUUsTUFBTSxDQUNsQixxQkFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQzlFLFdBQVcsQ0FBQyxZQUFZLENBQ3pCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXRDRCw4RUFzQ0M7QUFFRCxTQUFnQixnREFBZ0QsQ0FDOUQsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsUUFBa0IsRUFDbEIsT0FBMkIsRUFDM0IsV0FBOEM7SUFFOUMsTUFBTSxNQUFNLEdBQUcsaUNBQWlDLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0YsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztLQUNoRjtJQUNELE9BQU8sMEJBQTBCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFiRCw0R0FhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5ldHdvcmssIGJpdGdvLCBhZGRyZXNzIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRGltZW5zaW9ucywgVmlydHVhbFNpemVzIH0gZnJvbSAnQGJpdGdvLWJldGEvdW5zcGVudHMnO1xuXG5pbXBvcnQge1xuICBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0LFxuICBPcmRPdXRwdXQsXG4gIE91dHB1dExheW91dCxcbiAgdG9BcnJheSxcbiAgU2F0UG9pbnQsXG4gIGZpbmRPdXRwdXRMYXlvdXQsXG4gIENvbnN0cmFpbnQsXG4gIHBhcnNlU2F0UG9pbnQsXG4gIFNhdFJhbmdlLFxufSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHR5cGUgV2FsbGV0T3V0cHV0UGF0aCA9IHtcbiAgY2hhaW46IGJpdGdvLkNoYWluQ29kZTtcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFdhbGxldElucHV0QnVpbGRlciA9IHtcbiAgd2FsbGV0S2V5czogYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHNpZ25lcjogYml0Z28uS2V5TmFtZTtcbiAgY29zaWduZXI6IGJpdGdvLktleU5hbWU7XG59O1xuXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvbk91dHB1dHMgPSB7XG4gIGluc2NyaXB0aW9uUmVjaXBpZW50OiBzdHJpbmcgfCBCdWZmZXI7XG4gIGNoYW5nZU91dHB1dHM6IFtXYWxsZXRPdXRwdXRQYXRoLCBXYWxsZXRPdXRwdXRQYXRoXTtcbn07XG5cbmV4cG9ydCB0eXBlIEluc2NyaXB0aW9uVHJhbnNhY3Rpb25Db25zdHJhaW50cyA9IHtcbiAgZmVlUmF0ZVNhdEtCOiBudW1iZXI7XG4gIG1pbkNoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgbWF4Q2hhbmdlT3V0cHV0PzogYmlnaW50O1xuICBtaW5JbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgbWF4SW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21PdXRwdXRMYXlvdXQoXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyxcbiAgb3V0cHV0TGF5b3V0OiBPdXRwdXRMYXlvdXRcbik6IGJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgcHNidCA9IGJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yazogbmV0d29yayB9KTtcbiAgaWYgKHVuc3BlbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbXVsdGlwbGUgdW5zcGVudHMgbm90IHN1cHBvcnRlZCB5ZXRgKTtcbiAgfVxuICB1bnNwZW50cy5mb3JFYWNoKCh1KSA9PlxuICAgIGJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQoXG4gICAgICBwc2J0LFxuICAgICAgdSxcbiAgICAgIGlucHV0QnVpbGRlci53YWxsZXRLZXlzLFxuICAgICAgaW5wdXRCdWlsZGVyLnNpZ25lcixcbiAgICAgIGlucHV0QnVpbGRlci5jb3NpZ25lcixcbiAgICAgIHBzYnQubmV0d29ya1xuICAgIClcbiAgKTtcbiAgY29uc3QgW2lucHV0XSA9IHVuc3BlbnRzO1xuICBjb25zdCBvcmRPdXRwdXRzID0gZ2V0T3JkT3V0cHV0c0ZvckxheW91dChuZXcgT3JkT3V0cHV0KGlucHV0LnZhbHVlKSwgb3V0cHV0TGF5b3V0KTtcbiAgdG9BcnJheShvcmRPdXRwdXRzKS5mb3JFYWNoKChvcmRPdXRwdXQpID0+IHtcbiAgICBpZiAob3JkT3V0cHV0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAob3JkT3V0cHV0KSB7XG4gICAgICAvLyBza2lwIHBhZGRpbmcgb3V0cHV0cyBhbmQgZmVlIG91dHB1dCAodmlydHVhbClcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5mZWVPdXRwdXQ6XG4gICAgICAgIHJldHVybjtcbiAgICAgIC8vIGFkZCBwYWRkaW5nIG91dHB1dHNcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5maXJzdENoYW5nZU91dHB1dDpcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5zZWNvbmRDaGFuZ2VPdXRwdXQ6XG4gICAgICAgIGNvbnN0IHsgY2hhaW4sIGluZGV4IH0gPVxuICAgICAgICAgIG9yZE91dHB1dCA9PT0gb3JkT3V0cHV0cy5maXJzdENoYW5nZU91dHB1dCA/IG91dHB1dHMuY2hhbmdlT3V0cHV0c1swXSA6IG91dHB1dHMuY2hhbmdlT3V0cHV0c1sxXTtcbiAgICAgICAgYml0Z28uYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KHBzYnQsIGlucHV0QnVpbGRlci53YWxsZXRLZXlzLCBjaGFpbiwgaW5kZXgsIG9yZE91dHB1dC52YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gYWRkIGFjdHVhbCBpbnNjcmlwdGlvbiBvdXRwdXRcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5pbnNjcmlwdGlvbk91dHB1dDpcbiAgICAgICAgbGV0IHsgaW5zY3JpcHRpb25SZWNpcGllbnQgfSA9IG91dHB1dHM7XG4gICAgICAgIGlmICh0eXBlb2YgaW5zY3JpcHRpb25SZWNpcGllbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaW5zY3JpcHRpb25SZWNpcGllbnQgPSBhZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGluc2NyaXB0aW9uUmVjaXBpZW50LCBuZXR3b3JrKTtcbiAgICAgICAgfVxuICAgICAgICBwc2J0LmFkZE91dHB1dCh7XG4gICAgICAgICAgc2NyaXB0OiBpbnNjcmlwdGlvblJlY2lwaWVudCxcbiAgICAgICAgICB2YWx1ZTogb3JkT3V0cHV0LnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHBzYnQ7XG59XG5cbmZ1bmN0aW9uIHRvU2F0UmFuZ2UocDogU2F0UG9pbnQpIHtcbiAgY29uc3QgeyBvZmZzZXQgfSA9IHBhcnNlU2F0UG9pbnQocCk7XG4gIHJldHVybiBuZXcgU2F0UmFuZ2Uob2Zmc2V0LCBvZmZzZXQpO1xufVxuXG5mdW5jdGlvbiBnZXRGZWUodnNpemU6IG51bWJlciwgcmF0ZVNhdFBlcktCOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gQmlnSW50KE1hdGguY2VpbCgodnNpemUgKiByYXRlU2F0UGVyS0IpIC8gMTAwMCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKFxuICBpbnB1dHM6IGJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBzYXRQb2ludDogU2F0UG9pbnQsXG4gIG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyxcbiAgY29uc3RyYWludHM6IEluc2NyaXB0aW9uVHJhbnNhY3Rpb25Db25zdHJhaW50c1xuKTogT3V0cHV0TGF5b3V0IHwgdW5kZWZpbmVkIHtcbiAgaWYgKGlucHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG9ubHkgc2luZ2xlIGlucHV0IHN1cHBvcnRlZCBjdXJyZW50bHlgKTtcbiAgfVxuXG4gIGlmIChvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4gIT09IG91dHB1dHMuY2hhbmdlT3V0cHV0c1sxXS5jaGFpbikge1xuICAgIC8vIG90aGVyd2lzZSBvdXIgZmVlIGNhbGMgaXMgdG9vIGNvbXBsaWNhdGVkXG4gICAgdGhyb3cgbmV3IEVycm9yKGB3YWxsZXQgb3V0cHV0cyBtdXN0IGJlIG9uIHNhbWUgY2hhaW5gKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBtaW5DaGFuZ2VPdXRwdXQgPSBCaWdJbnQoMTBfMDAwKSxcbiAgICBtYXhDaGFuZ2VPdXRwdXQgPSBDb25zdHJhaW50Lk1BWFNBVCxcbiAgICBtaW5JbnNjcmlwdGlvbk91dHB1dCA9IEJpZ0ludCgxMF8wMDApLFxuICAgIG1heEluc2NyaXB0aW9uT3V0cHV0ID0gQmlnSW50KDIwXzAwMCksXG4gIH0gPSBjb25zdHJhaW50cztcblxuICBjb25zdCBbaW5wdXRdID0gaW5wdXRzO1xuICBjb25zdCBpbnNjcmlwdGlvbk91dHB1dCA9IG5ldyBPcmRPdXRwdXQoaW5wdXQudmFsdWUsIFt0b1NhdFJhbmdlKHNhdFBvaW50KV0pO1xuICByZXR1cm4gZmluZE91dHB1dExheW91dChpbnNjcmlwdGlvbk91dHB1dCwge1xuICAgIG1pbkNoYW5nZU91dHB1dCxcbiAgICBtYXhDaGFuZ2VPdXRwdXQsXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQsXG4gICAgbWF4SW5zY3JpcHRpb25PdXRwdXQsXG4gICAgZmVlRml4ZWQ6IGdldEZlZShcbiAgICAgIFZpcnR1YWxTaXplcy50eFNlZ092ZXJoZWFkVlNpemUgKyBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhpbnB1dHMpLmdldElucHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICAgIGZlZVBlck91dHB1dDogZ2V0RmVlKFxuICAgICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0T25DaGFpbihvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4pLmdldE91dHB1dHNWU2l6ZSgpLFxuICAgICAgY29uc3RyYWludHMuZmVlUmF0ZVNhdEtCXG4gICAgKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzXG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IGxheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyh1bnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIGNvbnN0cmFpbnRzKTtcbiAgaWYgKCFsYXlvdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBvdXRwdXQgbGF5b3V0IGZvciBpbnNjcmlwdGlvbiBwYXNzaW5nIHRyYW5zYWN0aW9uYCk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KG5ldHdvcmssIGlucHV0QnVpbGRlciwgdW5zcGVudHMsIG91dHB1dHMsIGxheW91dCk7XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRDtBQUMvRCxtREFBZ0U7QUFFaEUsMkNBQXdDO0FBQ3hDLHlDQUFxRDtBQUNyRCx5Q0FBc0M7QUFDdEMsaURBQWlHO0FBMEJqRyxTQUFnQiwwQkFBMEIsQ0FDeEMsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsT0FBMkIsRUFDM0IsWUFBMEI7SUFFMUIsTUFBTSxJQUFJLEdBQUcsZ0JBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLGdCQUFLLENBQUMsc0JBQXNCLENBQzFCLElBQUksRUFDSixDQUFDLEVBQ0QsWUFBWSxDQUFDLFVBQVUsRUFDdkIsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLFFBQVEsRUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLHFDQUFzQixDQUFDLElBQUkscUJBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsc0JBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN4QyxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsUUFBUSxTQUFTLEVBQUU7WUFDakIsZ0RBQWdEO1lBQ2hELEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxVQUFVLENBQUMsU0FBUztnQkFDdkIsT0FBTztZQUNULHNCQUFzQjtZQUN0QixLQUFLLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztZQUNsQyxLQUFLLFVBQVUsQ0FBQyxrQkFBa0I7Z0JBQ2hDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQ3BCLFNBQVMsS0FBSyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25HLGdCQUFLLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFGLE1BQU07WUFDUixnQ0FBZ0M7WUFDaEMsS0FBSyxVQUFVLENBQUMsaUJBQWlCO2dCQUMvQixJQUFJLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBQ3ZDLElBQUksT0FBTyxvQkFBb0IsS0FBSyxRQUFRLEVBQUU7b0JBQzVDLG9CQUFvQixHQUFHLGtCQUFPLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUM5RTtnQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUNiLE1BQU0sRUFBRSxvQkFBb0I7b0JBQzVCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztpQkFDdkIsQ0FBQyxDQUFDO2dCQUNILE1BQU07U0FDVDtJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBckRELGdFQXFEQztBQUVELFNBQVMsVUFBVSxDQUFDLENBQVc7SUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLHdCQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsT0FBTyxJQUFJLG1CQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxLQUFhLEVBQUUsWUFBb0I7SUFDakQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFnQixpQ0FBaUMsQ0FDL0MsTUFBcUMsRUFDckMsUUFBa0IsRUFDbEIsT0FBMkIsRUFDM0IsV0FBOEM7SUFFOUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7S0FDMUQ7SUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO1FBQ3JFLDRDQUE0QztRQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDekQ7SUFFRCxNQUFNLEVBQ0osZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFNLENBQUMsRUFDaEMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEtBQU0sQ0FBQyxFQUNyQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBTSxDQUFDLEdBQ3RDLEdBQUcsV0FBVyxDQUFDO0lBRWhCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDdkIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLHFCQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTywrQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRTtRQUN6QyxlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixRQUFRLEVBQUUsTUFBTSxDQUNkLHVCQUFZLENBQUMsa0JBQWtCLEdBQUcscUJBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQ2xGLFdBQVcsQ0FBQyxZQUFZLENBQ3pCO1FBQ0QsWUFBWSxFQUFFLE1BQU0sQ0FDbEIscUJBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUM5RSxXQUFXLENBQUMsWUFBWSxDQUN6QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFwQ0QsOEVBb0NDO0FBRUQsU0FBZ0IsZ0RBQWdELENBQzlELE9BQWdCLEVBQ2hCLFlBQWdDLEVBQ2hDLFFBQXVDLEVBQ3ZDLFFBQWtCLEVBQ2xCLE9BQTJCLEVBQzNCLFdBQThDO0lBRTlDLE1BQU0sTUFBTSxHQUFHLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNGLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7S0FDaEY7SUFDRCxPQUFPLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBYkQsNEdBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrLCBiaXRnbywgYWRkcmVzcyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMsIFZpcnR1YWxTaXplcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Vuc3BlbnRzJztcblxuaW1wb3J0IHsgT3JkT3V0cHV0IH0gZnJvbSAnLi9PcmRPdXRwdXQnO1xuaW1wb3J0IHsgcGFyc2VTYXRQb2ludCwgU2F0UG9pbnQgfSBmcm9tICcuL1NhdFBvaW50JztcbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5pbXBvcnQgeyBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0LCBPdXRwdXRMYXlvdXQsIHRvQXJyYXksIGZpbmRPdXRwdXRMYXlvdXQgfSBmcm9tICcuL091dHB1dExheW91dCc7XG5cbmV4cG9ydCB0eXBlIFdhbGxldE91dHB1dFBhdGggPSB7XG4gIGNoYWluOiBiaXRnby5DaGFpbkNvZGU7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBXYWxsZXRJbnB1dEJ1aWxkZXIgPSB7XG4gIHdhbGxldEtleXM6IGJpdGdvLlJvb3RXYWxsZXRLZXlzO1xuICBzaWduZXI6IGJpdGdvLktleU5hbWU7XG4gIGNvc2lnbmVyOiBiaXRnby5LZXlOYW1lO1xufTtcblxuZXhwb3J0IHR5cGUgSW5zY3JpcHRpb25PdXRwdXRzID0ge1xuICBpbnNjcmlwdGlvblJlY2lwaWVudDogc3RyaW5nIHwgQnVmZmVyO1xuICBjaGFuZ2VPdXRwdXRzOiBbV2FsbGV0T3V0cHV0UGF0aCwgV2FsbGV0T3V0cHV0UGF0aF07XG59O1xuXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHMgPSB7XG4gIGZlZVJhdGVTYXRLQjogbnVtYmVyO1xuICBtaW5DaGFuZ2VPdXRwdXQ/OiBiaWdpbnQ7XG4gIG1heENoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBpbnB1dEJ1aWxkZXI6IFdhbGxldElucHV0QnVpbGRlcixcbiAgdW5zcGVudHM6IGJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIG91dHB1dExheW91dDogT3V0cHV0TGF5b3V0XG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcms6IG5ldHdvcmsgfSk7XG4gIGlmICh1bnNwZW50cy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11bHRpcGxlIHVuc3BlbnRzIG5vdCBzdXBwb3J0ZWQgeWV0YCk7XG4gIH1cbiAgdW5zcGVudHMuZm9yRWFjaCgodSkgPT5cbiAgICBiaXRnby5hZGRXYWxsZXRVbnNwZW50VG9Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIHUsXG4gICAgICBpbnB1dEJ1aWxkZXIud2FsbGV0S2V5cyxcbiAgICAgIGlucHV0QnVpbGRlci5zaWduZXIsXG4gICAgICBpbnB1dEJ1aWxkZXIuY29zaWduZXIsXG4gICAgICBwc2J0Lm5ldHdvcmtcbiAgICApXG4gICk7XG4gIGNvbnN0IFtpbnB1dF0gPSB1bnNwZW50cztcbiAgY29uc3Qgb3JkT3V0cHV0cyA9IGdldE9yZE91dHB1dHNGb3JMYXlvdXQobmV3IE9yZE91dHB1dChpbnB1dC52YWx1ZSksIG91dHB1dExheW91dCk7XG4gIHRvQXJyYXkob3JkT3V0cHV0cykuZm9yRWFjaCgob3JkT3V0cHV0KSA9PiB7XG4gICAgaWYgKG9yZE91dHB1dCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKG9yZE91dHB1dCkge1xuICAgICAgLy8gc2tpcCBwYWRkaW5nIG91dHB1dHMgYW5kIGZlZSBvdXRwdXQgKHZpcnR1YWwpXG4gICAgICBjYXNlIG51bGw6XG4gICAgICBjYXNlIG9yZE91dHB1dHMuZmVlT3V0cHV0OlxuICAgICAgICByZXR1cm47XG4gICAgICAvLyBhZGQgcGFkZGluZyBvdXRwdXRzXG4gICAgICBjYXNlIG9yZE91dHB1dHMuZmlyc3RDaGFuZ2VPdXRwdXQ6XG4gICAgICBjYXNlIG9yZE91dHB1dHMuc2Vjb25kQ2hhbmdlT3V0cHV0OlxuICAgICAgICBjb25zdCB7IGNoYWluLCBpbmRleCB9ID1cbiAgICAgICAgICBvcmRPdXRwdXQgPT09IG9yZE91dHB1dHMuZmlyc3RDaGFuZ2VPdXRwdXQgPyBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0gOiBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMV07XG4gICAgICAgIGJpdGdvLmFkZFdhbGxldE91dHB1dFRvUHNidChwc2J0LCBpbnB1dEJ1aWxkZXIud2FsbGV0S2V5cywgY2hhaW4sIGluZGV4LCBvcmRPdXRwdXQudmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGFkZCBhY3R1YWwgaW5zY3JpcHRpb24gb3V0cHV0XG4gICAgICBjYXNlIG9yZE91dHB1dHMuaW5zY3JpcHRpb25PdXRwdXQ6XG4gICAgICAgIGxldCB7IGluc2NyaXB0aW9uUmVjaXBpZW50IH0gPSBvdXRwdXRzO1xuICAgICAgICBpZiAodHlwZW9mIGluc2NyaXB0aW9uUmVjaXBpZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGluc2NyaXB0aW9uUmVjaXBpZW50ID0gYWRkcmVzcy50b091dHB1dFNjcmlwdChpbnNjcmlwdGlvblJlY2lwaWVudCwgbmV0d29yayk7XG4gICAgICAgIH1cbiAgICAgICAgcHNidC5hZGRPdXRwdXQoe1xuICAgICAgICAgIHNjcmlwdDogaW5zY3JpcHRpb25SZWNpcGllbnQsXG4gICAgICAgICAgdmFsdWU6IG9yZE91dHB1dC52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBwc2J0O1xufVxuXG5mdW5jdGlvbiB0b1NhdFJhbmdlKHA6IFNhdFBvaW50KSB7XG4gIGNvbnN0IHsgb2Zmc2V0IH0gPSBwYXJzZVNhdFBvaW50KHApO1xuICByZXR1cm4gbmV3IFNhdFJhbmdlKG9mZnNldCwgb2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gZ2V0RmVlKHZzaXplOiBudW1iZXIsIHJhdGVTYXRQZXJLQjogbnVtYmVyKTogYmlnaW50IHtcbiAgcmV0dXJuIEJpZ0ludChNYXRoLmNlaWwoKHZzaXplICogcmF0ZVNhdFBlcktCKSAvIDEwMDApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhcbiAgaW5wdXRzOiBiaXRnby5XYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIGNvbnN0cmFpbnRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHNcbik6IE91dHB1dExheW91dCB8IHVuZGVmaW5lZCB7XG4gIGlmIChpbnB1dHMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBvbmx5IHNpbmdsZSBpbnB1dCBzdXBwb3J0ZWQgY3VycmVudGx5YCk7XG4gIH1cblxuICBpZiAob3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzBdLmNoYWluICE9PSBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMV0uY2hhaW4pIHtcbiAgICAvLyBvdGhlcndpc2Ugb3VyIGZlZSBjYWxjIGlzIHRvbyBjb21wbGljYXRlZFxuICAgIHRocm93IG5ldyBFcnJvcihgd2FsbGV0IG91dHB1dHMgbXVzdCBiZSBvbiBzYW1lIGNoYWluYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbWluQ2hhbmdlT3V0cHV0ID0gQmlnSW50KDEwXzAwMCksXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQgPSBCaWdJbnQoMTBfMDAwKSxcbiAgICBtYXhJbnNjcmlwdGlvbk91dHB1dCA9IEJpZ0ludCgyMF8wMDApLFxuICB9ID0gY29uc3RyYWludHM7XG5cbiAgY29uc3QgW2lucHV0XSA9IGlucHV0cztcbiAgY29uc3QgaW5zY3JpcHRpb25PdXRwdXQgPSBuZXcgT3JkT3V0cHV0KGlucHV0LnZhbHVlLCBbdG9TYXRSYW5nZShzYXRQb2ludCldKTtcbiAgcmV0dXJuIGZpbmRPdXRwdXRMYXlvdXQoaW5zY3JpcHRpb25PdXRwdXQsIHtcbiAgICBtaW5DaGFuZ2VPdXRwdXQsXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQsXG4gICAgbWF4SW5zY3JpcHRpb25PdXRwdXQsXG4gICAgZmVlRml4ZWQ6IGdldEZlZShcbiAgICAgIFZpcnR1YWxTaXplcy50eFNlZ092ZXJoZWFkVlNpemUgKyBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhpbnB1dHMpLmdldElucHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICAgIGZlZVBlck91dHB1dDogZ2V0RmVlKFxuICAgICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0T25DaGFpbihvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4pLmdldE91dHB1dHNWU2l6ZSgpLFxuICAgICAgY29uc3RyYWludHMuZmVlUmF0ZVNhdEtCXG4gICAgKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzXG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IGxheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyh1bnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIGNvbnN0cmFpbnRzKTtcbiAgaWYgKCFsYXlvdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBvdXRwdXQgbGF5b3V0IGZvciBpbnNjcmlwdGlvbiBwYXNzaW5nIHRyYW5zYWN0aW9uYCk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KG5ldHdvcmssIGlucHV0QnVpbGRlciwgdW5zcGVudHMsIG91dHB1dHMsIGxheW91dCk7XG59XG4iXX0=
@@ -177,8 +177,8 @@
177
177
  "affectsGlobalScope": false
178
178
  },
179
179
  "../src/OutputLayout.ts": {
180
- "version": "9dcf7d6761221dc39fd1a7dc0a6d0016e3cb2569999232f18a53cadc42262da9",
181
- "signature": "a2f5890666bb18ee48ac533c85bd392a8621242ba9d4558e9ef91716546f7bd8",
180
+ "version": "d8ff61eaf081dace4a4615b64ea5dc8d3feb567e935209d61e880b7836023cfe",
181
+ "signature": "d624331002a568970dc020a299ff4bc351f4723474503f9ff585a9f0e05e5787",
182
182
  "affectsGlobalScope": false
183
183
  },
184
184
  "../../../node_modules/@types/node/globals.d.ts": {
@@ -411,7 +411,7 @@
411
411
  "signature": "f491f3939bf1c85ad2ebe4cdd99d09c2efda9589f5405256bcdd8ff8492f662b",
412
412
  "affectsGlobalScope": false
413
413
  },
414
- "../../../node_modules/bip174/src/lib/interfaces.d.ts": {
414
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts": {
415
415
  "version": "3e1f9b3c69152720aee400a26c71cf57f0a7e3190a8b237d8398dc7b3e510b42",
416
416
  "signature": "3e1f9b3c69152720aee400a26c71cf57f0a7e3190a8b237d8398dc7b3e510b42",
417
417
  "affectsGlobalScope": false
@@ -511,7 +511,7 @@
511
511
  "signature": "83a8c6dbc3c4a5eac6e4e0328bd9e30fdaf53e02eeac194442c2f6aded8f6c3c",
512
512
  "affectsGlobalScope": false
513
513
  },
514
- "../../../node_modules/bip174/src/lib/psbt.d.ts": {
514
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts": {
515
515
  "version": "9010bcd6fb2da0e3d050d2bdc99772bc65f0aded76b88cdef97cae19ff1b7111",
516
516
  "signature": "9010bcd6fb2da0e3d050d2bdc99772bc65f0aded76b88cdef97cae19ff1b7111",
517
517
  "affectsGlobalScope": false
@@ -582,8 +582,8 @@
582
582
  "affectsGlobalScope": false
583
583
  },
584
584
  "../../utxo-lib/dist/src/bitgo/outputScripts.d.ts": {
585
- "version": "34cba3eb6072200725810fde53e56e7265845871a5c807de894c87ab748f7692",
586
- "signature": "34cba3eb6072200725810fde53e56e7265845871a5c807de894c87ab748f7692",
585
+ "version": "0efff6f2d71ce3b922e4d30791ad749b6b017dd87f8e8266f1a47ce5921bc57f",
586
+ "signature": "0efff6f2d71ce3b922e4d30791ad749b6b017dd87f8e8266f1a47ce5921bc57f",
587
587
  "affectsGlobalScope": false
588
588
  },
589
589
  "../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts": {
@@ -596,9 +596,14 @@
596
596
  "signature": "7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10",
597
597
  "affectsGlobalScope": false
598
598
  },
599
+ "../../utxo-lib/node_modules/bip174/src/lib/proprietaryKeyVal.d.ts": {
600
+ "version": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
601
+ "signature": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
602
+ "affectsGlobalScope": false
603
+ },
599
604
  "../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts": {
600
- "version": "ee91840c3aa8e337252896a9c3d157dd9bd22ba69ff5ef05bdc325673d959b3c",
601
- "signature": "ee91840c3aa8e337252896a9c3d157dd9bd22ba69ff5ef05bdc325673d959b3c",
605
+ "version": "b0eb7cc7e2c34ed49a3e0c1f1859b81e32de1ed58c3f7c34ed133716698f7ad4",
606
+ "signature": "b0eb7cc7e2c34ed49a3e0c1f1859b81e32de1ed58c3f7c34ed133716698f7ad4",
602
607
  "affectsGlobalScope": false
603
608
  },
604
609
  "../../utxo-lib/dist/src/bitgo/dash/DashPsbt.d.ts": {
@@ -732,8 +737,8 @@
732
737
  "affectsGlobalScope": false
733
738
  },
734
739
  "../../utxo-lib/dist/src/taproot.d.ts": {
735
- "version": "f29caf343c476ea1584d8554083c7d2218bf007ea44a6e7bb23c3ee09fb167f3",
736
- "signature": "f29caf343c476ea1584d8554083c7d2218bf007ea44a6e7bb23c3ee09fb167f3",
740
+ "version": "2b23e7449684e04c3f9d6a9f8248ff02601326156d35dd069eca92ff3848e836",
741
+ "signature": "2b23e7449684e04c3f9d6a9f8248ff02601326156d35dd069eca92ff3848e836",
737
742
  "affectsGlobalScope": false
738
743
  },
739
744
  "../../utxo-lib/dist/src/testutil/keys.d.ts": {
@@ -812,13 +817,18 @@
812
817
  "affectsGlobalScope": false
813
818
  },
814
819
  "../src/psbt.ts": {
815
- "version": "9bdc4c80282d6ee5c9c4c5fa87be32f21f5d78a075f2a958fc1a04beeb397314",
816
- "signature": "cfd416e7e98553fef660b3477f5522328d5db38cc96f16f8ab91b53240bbc5e6",
820
+ "version": "3795f0dbb4fbc8584f8a0b15bcc711b0b9ad17f70c9e47ed09f94120cf78103b",
821
+ "signature": "776d7926a0b7aeed1f326d1e07837031e8b1421b36f3998b5d3b2738daf5a959",
822
+ "affectsGlobalScope": false
823
+ },
824
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts": {
825
+ "version": "3e1f9b3c69152720aee400a26c71cf57f0a7e3190a8b237d8398dc7b3e510b42",
826
+ "signature": "3e1f9b3c69152720aee400a26c71cf57f0a7e3190a8b237d8398dc7b3e510b42",
817
827
  "affectsGlobalScope": false
818
828
  },
819
829
  "../src/inscriptions.ts": {
820
- "version": "09bf07f8b0523e9814504f2df1c1f763a90d0bee3030851aad47bc9f0f7d1a59",
821
- "signature": "edaa8f6df6bf14a6c16381f8089f5146512654cb866d068c7c407bb67b34c514",
830
+ "version": "0dcd5a2aaaedaa776143c741dca00132740675bd04a54176daa1ba38c927dfdc",
831
+ "signature": "ded74231fd6b9a6cd4bb18e4ec19cf24991a4fbee2967642985a6716969be094",
822
832
  "affectsGlobalScope": false
823
833
  },
824
834
  "../src/index.ts": {
@@ -1440,10 +1450,11 @@
1440
1450
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
1441
1451
  ],
1442
1452
  "../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts": [
1443
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
1444
1453
  "../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts",
1445
1454
  "../../utxo-lib/dist/src/index.d.ts",
1446
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
1455
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
1456
+ "../../utxo-lib/node_modules/bip174/src/lib/proprietaryKeyVal.d.ts",
1457
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts"
1447
1458
  ],
1448
1459
  "../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts": [
1449
1460
  "../../utxo-lib/dist/src/networks.d.ts",
@@ -1466,11 +1477,11 @@
1466
1477
  "../../utxo-lib/dist/src/bitgo/bitcoincash/address.d.ts"
1467
1478
  ],
1468
1479
  "../../utxo-lib/dist/src/bitgo/dash/DashPsbt.d.ts": [
1469
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
1470
1480
  "../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts",
1471
1481
  "../../utxo-lib/dist/src/bitgo/dash/DashTransaction.d.ts",
1472
1482
  "../../utxo-lib/dist/src/networks.d.ts",
1473
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
1483
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
1484
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts"
1474
1485
  ],
1475
1486
  "../../utxo-lib/dist/src/bitgo/dash/DashTransaction.d.ts": [
1476
1487
  "../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts",
@@ -1602,11 +1613,11 @@
1602
1613
  "../../utxo-lib/dist/src/bitgo/wallet/chains.d.ts"
1603
1614
  ],
1604
1615
  "../../utxo-lib/dist/src/bitgo/zcash/ZcashPsbt.d.ts": [
1605
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
1606
1616
  "../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts",
1607
1617
  "../../utxo-lib/dist/src/bitgo/zcash/ZcashTransaction.d.ts",
1608
1618
  "../../utxo-lib/dist/src/index.d.ts",
1609
1619
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
1620
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts",
1610
1621
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/psbt.d.ts"
1611
1622
  ],
1612
1623
  "../../utxo-lib/dist/src/bitgo/zcash/ZcashTransaction.d.ts": [
@@ -1658,8 +1669,9 @@
1658
1669
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
1659
1670
  ],
1660
1671
  "../../utxo-lib/dist/src/taproot.d.ts": [
1661
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
1662
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
1672
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
1673
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
1674
+ "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
1663
1675
  ],
1664
1676
  "../../utxo-lib/dist/src/testutil/index.d.ts": [
1665
1677
  "../../utxo-lib/dist/src/testutil/keys.d.ts",
@@ -1679,6 +1691,16 @@
1679
1691
  "../../utxo-lib/dist/src/index.d.ts",
1680
1692
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
1681
1693
  ],
1694
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts": [
1695
+ "../../../node_modules/@types/node/index.d.ts"
1696
+ ],
1697
+ "../../utxo-lib/node_modules/bip174/src/lib/proprietaryKeyVal.d.ts": [
1698
+ "../../../node_modules/@types/node/index.d.ts"
1699
+ ],
1700
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts": [
1701
+ "../../../node_modules/@types/node/index.d.ts",
1702
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts"
1703
+ ],
1682
1704
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/address.d.ts": [
1683
1705
  "../../../node_modules/@types/node/index.d.ts",
1684
1706
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts"
@@ -1708,7 +1730,7 @@
1708
1730
  ],
1709
1731
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/index.d.ts": [
1710
1732
  "../../../node_modules/@types/node/index.d.ts",
1711
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
1733
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
1712
1734
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts",
1713
1735
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/embed.d.ts",
1714
1736
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/lazy.d.ts",
@@ -1748,8 +1770,8 @@
1748
1770
  ],
1749
1771
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/psbt.d.ts": [
1750
1772
  "../../../node_modules/@types/node/index.d.ts",
1751
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
1752
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
1773
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
1774
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts",
1753
1775
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts",
1754
1776
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/transaction.d.ts"
1755
1777
  ],
@@ -1768,7 +1790,7 @@
1768
1790
  ],
1769
1791
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/taproot.d.ts": [
1770
1792
  "../../../node_modules/@types/node/index.d.ts",
1771
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
1793
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
1772
1794
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/types.d.ts"
1773
1795
  ],
1774
1796
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/transaction.d.ts": [
@@ -1781,8 +1803,7 @@
1781
1803
  "../src/SatRange.ts"
1782
1804
  ],
1783
1805
  "../src/OutputLayout.ts": [
1784
- "../src/OrdOutput.ts",
1785
- "../src/SatRange.ts"
1806
+ "../src/OrdOutput.ts"
1786
1807
  ],
1787
1808
  "../src/SatPoint.ts": [
1788
1809
  "../../utxo-lib/dist/src/index.d.ts"
@@ -1797,12 +1818,16 @@
1797
1818
  ],
1798
1819
  "../src/inscriptions.ts": [
1799
1820
  "../../../node_modules/@types/node/assert.d.ts",
1821
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
1800
1822
  "../../utxo-lib/dist/src/index.d.ts"
1801
1823
  ],
1802
1824
  "../src/psbt.ts": [
1803
1825
  "../../unspents/dist/index.d.ts",
1804
1826
  "../../utxo-lib/dist/src/index.d.ts",
1805
- "../src/index.ts"
1827
+ "../src/OrdOutput.ts",
1828
+ "../src/OutputLayout.ts",
1829
+ "../src/SatPoint.ts",
1830
+ "../src/SatRange.ts"
1806
1831
  ],
1807
1832
  "../../../node_modules/@types/bn.js/index.d.ts": [
1808
1833
  "../../../node_modules/@types/node/index.d.ts"
@@ -2464,10 +2489,6 @@
2464
2489
  "../../../node_modules/bip174/src/lib/interfaces.d.ts": [
2465
2490
  "../../../node_modules/@types/node/index.d.ts"
2466
2491
  ],
2467
- "../../../node_modules/bip174/src/lib/psbt.d.ts": [
2468
- "../../../node_modules/@types/node/index.d.ts",
2469
- "../../../node_modules/bip174/src/lib/interfaces.d.ts"
2470
- ],
2471
2492
  "../../../node_modules/bip32/types/bip32.d.ts": [
2472
2493
  "../../../node_modules/@types/node/index.d.ts"
2473
2494
  ],
@@ -2513,10 +2534,11 @@
2513
2534
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
2514
2535
  ],
2515
2536
  "../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts": [
2516
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
2517
2537
  "../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts",
2518
2538
  "../../utxo-lib/dist/src/index.d.ts",
2519
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
2539
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
2540
+ "../../utxo-lib/node_modules/bip174/src/lib/proprietaryKeyVal.d.ts",
2541
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts"
2520
2542
  ],
2521
2543
  "../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts": [
2522
2544
  "../../utxo-lib/dist/src/networks.d.ts",
@@ -2539,11 +2561,11 @@
2539
2561
  "../../utxo-lib/dist/src/bitgo/bitcoincash/address.d.ts"
2540
2562
  ],
2541
2563
  "../../utxo-lib/dist/src/bitgo/dash/DashPsbt.d.ts": [
2542
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
2543
2564
  "../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts",
2544
2565
  "../../utxo-lib/dist/src/bitgo/dash/DashTransaction.d.ts",
2545
2566
  "../../utxo-lib/dist/src/networks.d.ts",
2546
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
2567
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
2568
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts"
2547
2569
  ],
2548
2570
  "../../utxo-lib/dist/src/bitgo/dash/DashTransaction.d.ts": [
2549
2571
  "../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts",
@@ -2675,11 +2697,11 @@
2675
2697
  "../../utxo-lib/dist/src/bitgo/wallet/chains.d.ts"
2676
2698
  ],
2677
2699
  "../../utxo-lib/dist/src/bitgo/zcash/ZcashPsbt.d.ts": [
2678
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
2679
2700
  "../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts",
2680
2701
  "../../utxo-lib/dist/src/bitgo/zcash/ZcashTransaction.d.ts",
2681
2702
  "../../utxo-lib/dist/src/index.d.ts",
2682
2703
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
2704
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts",
2683
2705
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/psbt.d.ts"
2684
2706
  ],
2685
2707
  "../../utxo-lib/dist/src/bitgo/zcash/ZcashTransaction.d.ts": [
@@ -2731,8 +2753,9 @@
2731
2753
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
2732
2754
  ],
2733
2755
  "../../utxo-lib/dist/src/taproot.d.ts": [
2734
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2735
- "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
2756
+ "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
2757
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
2758
+ "../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
2736
2759
  ],
2737
2760
  "../../utxo-lib/dist/src/testutil/index.d.ts": [
2738
2761
  "../../utxo-lib/dist/src/testutil/keys.d.ts",
@@ -2752,6 +2775,16 @@
2752
2775
  "../../utxo-lib/dist/src/index.d.ts",
2753
2776
  "../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
2754
2777
  ],
2778
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts": [
2779
+ "../../../node_modules/@types/node/index.d.ts"
2780
+ ],
2781
+ "../../utxo-lib/node_modules/bip174/src/lib/proprietaryKeyVal.d.ts": [
2782
+ "../../../node_modules/@types/node/index.d.ts"
2783
+ ],
2784
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts": [
2785
+ "../../../node_modules/@types/node/index.d.ts",
2786
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts"
2787
+ ],
2755
2788
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/address.d.ts": [
2756
2789
  "../../../node_modules/@types/node/index.d.ts",
2757
2790
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts"
@@ -2781,7 +2814,7 @@
2781
2814
  ],
2782
2815
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/index.d.ts": [
2783
2816
  "../../../node_modules/@types/node/index.d.ts",
2784
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2817
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
2785
2818
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts",
2786
2819
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/embed.d.ts",
2787
2820
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/lazy.d.ts",
@@ -2821,8 +2854,8 @@
2821
2854
  ],
2822
2855
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/psbt.d.ts": [
2823
2856
  "../../../node_modules/@types/node/index.d.ts",
2824
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2825
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
2857
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
2858
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts",
2826
2859
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts",
2827
2860
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/transaction.d.ts"
2828
2861
  ],
@@ -2841,7 +2874,7 @@
2841
2874
  ],
2842
2875
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/taproot.d.ts": [
2843
2876
  "../../../node_modules/@types/node/index.d.ts",
2844
- "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2877
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
2845
2878
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/types.d.ts"
2846
2879
  ],
2847
2880
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/transaction.d.ts": [
@@ -2864,9 +2897,14 @@
2864
2897
  "../src/inscriptions.ts",
2865
2898
  "../src/psbt.ts"
2866
2899
  ],
2900
+ "../src/inscriptions.ts": [
2901
+ "../../../node_modules/bip174/src/lib/interfaces.d.ts",
2902
+ "../../utxo-lib/dist/src/index.d.ts"
2903
+ ],
2867
2904
  "../src/psbt.ts": [
2868
2905
  "../../utxo-lib/dist/src/index.d.ts",
2869
- "../src/index.ts"
2906
+ "../src/OutputLayout.ts",
2907
+ "../src/SatPoint.ts"
2870
2908
  ],
2871
2909
  "../../../node_modules/@types/bn.js/index.d.ts": [
2872
2910
  "../../../node_modules/@types/node/index.d.ts"
@@ -3528,10 +3566,6 @@
3528
3566
  "../../../node_modules/bip174/src/lib/interfaces.d.ts": [
3529
3567
  "../../../node_modules/@types/node/index.d.ts"
3530
3568
  ],
3531
- "../../../node_modules/bip174/src/lib/psbt.d.ts": [
3532
- "../../../node_modules/@types/node/index.d.ts",
3533
- "../../../node_modules/bip174/src/lib/interfaces.d.ts"
3534
- ],
3535
3569
  "../../../node_modules/bip32/types/bip32.d.ts": [
3536
3570
  "../../../node_modules/@types/node/index.d.ts"
3537
3571
  ],
@@ -3596,6 +3630,9 @@
3596
3630
  "../../utxo-lib/dist/src/testutil/keys.d.ts",
3597
3631
  "../../utxo-lib/dist/src/testutil/mock.d.ts",
3598
3632
  "../../utxo-lib/dist/src/transaction_builder.d.ts",
3633
+ "../../utxo-lib/node_modules/bip174/src/lib/interfaces.d.ts",
3634
+ "../../utxo-lib/node_modules/bip174/src/lib/proprietaryKeyVal.d.ts",
3635
+ "../../utxo-lib/node_modules/bip174/src/lib/psbt.d.ts",
3599
3636
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/address.d.ts",
3600
3637
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/block.d.ts",
3601
3638
  "../../utxo-lib/node_modules/bitcoinjs-lib/src/crypto.d.ts",
@@ -3781,7 +3818,6 @@
3781
3818
  "../../../node_modules/@types/yargs/index.d.ts",
3782
3819
  "../../../node_modules/base-x/src/index.d.ts",
3783
3820
  "../../../node_modules/bip174/src/lib/interfaces.d.ts",
3784
- "../../../node_modules/bip174/src/lib/psbt.d.ts",
3785
3821
  "../../../node_modules/bip32/types/bip32.d.ts",
3786
3822
  "../../../node_modules/bip32/types/index.d.ts",
3787
3823
  "../../../node_modules/buffer/index.d.ts",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-ord",
3
3
  "description": "Utilities for building ordinals with BitGo utxo-lib",
4
- "version": "1.0.1-beta.1",
4
+ "version": "1.0.1-beta.3",
5
5
  "files": [
6
6
  "dist/**/*"
7
7
  ],
@@ -26,8 +26,9 @@
26
26
  "directory": "modules/utxo-ord"
27
27
  },
28
28
  "dependencies": {
29
- "@bitgo-beta/unspents": "0.8.4-beta.162",
30
- "@bitgo-beta/utxo-lib": "2.4.2-beta.162"
29
+ "@bitgo-beta/unspents": "0.8.4-beta.164",
30
+ "@bitgo-beta/utxo-lib": "2.4.2-beta.164",
31
+ "bip174": "npm:@bitgo-forks/bip174@3.0.0-rc.1"
31
32
  },
32
33
  "lint-staged": {
33
34
  "*.{js,ts}": [
@@ -39,5 +40,5 @@
39
40
  "access": "public"
40
41
  },
41
42
  "license": "MIT",
42
- "gitHead": "c1a8af7e451fa6ba41a2ce387b7933b3eede74b1"
43
+ "gitHead": "1379cb9ee37bab4b2e4febd7fc33123aeef273fb"
43
44
  }