@ledgerhq/hw-app-btc 10.0.1 → 10.0.2-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/Btc.d.ts.map +1 -1
  3. package/lib/Btc.js +72 -97
  4. package/lib/Btc.js.map +1 -1
  5. package/lib/BtcNew.js +217 -313
  6. package/lib/BtcNew.js.map +1 -1
  7. package/lib/BtcOld.js +46 -106
  8. package/lib/BtcOld.js.map +1 -1
  9. package/lib/bip32.js +12 -12
  10. package/lib/bip32.js.map +1 -1
  11. package/lib/buffertools.js +66 -69
  12. package/lib/buffertools.js.map +1 -1
  13. package/lib/compressPublicKey.js +3 -3
  14. package/lib/compressPublicKey.js.map +1 -1
  15. package/lib/constants.js +1 -1
  16. package/lib/createTransaction.d.ts +1 -1
  17. package/lib/createTransaction.d.ts.map +1 -1
  18. package/lib/createTransaction.js +285 -398
  19. package/lib/createTransaction.js.map +1 -1
  20. package/lib/debug.js +11 -13
  21. package/lib/debug.js.map +1 -1
  22. package/lib/finalizeInput.js +23 -62
  23. package/lib/finalizeInput.js.map +1 -1
  24. package/lib/getAppAndVersion.d.ts +1 -1
  25. package/lib/getAppAndVersion.d.ts.map +1 -1
  26. package/lib/getAppAndVersion.js +29 -72
  27. package/lib/getAppAndVersion.js.map +1 -1
  28. package/lib/getTrustedInput.js +108 -251
  29. package/lib/getTrustedInput.js.map +1 -1
  30. package/lib/getTrustedInputBIP143.js +9 -10
  31. package/lib/getTrustedInputBIP143.js.map +1 -1
  32. package/lib/getWalletPublicKey.d.ts +1 -1
  33. package/lib/getWalletPublicKey.d.ts.map +1 -1
  34. package/lib/getWalletPublicKey.js +27 -73
  35. package/lib/getWalletPublicKey.js.map +1 -1
  36. package/lib/hashPublicKey.js +4 -4
  37. package/lib/hashPublicKey.js.map +1 -1
  38. package/lib/index.js +3 -3
  39. package/lib/index.js.map +1 -1
  40. package/lib/newops/accounttype.d.ts +2 -2
  41. package/lib/newops/accounttype.d.ts.map +1 -1
  42. package/lib/newops/accounttype.js +85 -125
  43. package/lib/newops/accounttype.js.map +1 -1
  44. package/lib/newops/appClient.js +98 -205
  45. package/lib/newops/appClient.js.map +1 -1
  46. package/lib/newops/clientCommands.js +122 -213
  47. package/lib/newops/clientCommands.js.map +1 -1
  48. package/lib/newops/merkelizedPsbt.js +28 -75
  49. package/lib/newops/merkelizedPsbt.js.map +1 -1
  50. package/lib/newops/merkle.js +38 -67
  51. package/lib/newops/merkle.js.map +1 -1
  52. package/lib/newops/merkleMap.js +11 -12
  53. package/lib/newops/merkleMap.js.map +1 -1
  54. package/lib/newops/policy.d.ts +1 -1
  55. package/lib/newops/policy.d.ts.map +1 -1
  56. package/lib/newops/policy.js +17 -18
  57. package/lib/newops/policy.js.map +1 -1
  58. package/lib/newops/psbtExtractor.js +9 -9
  59. package/lib/newops/psbtExtractor.js.map +1 -1
  60. package/lib/newops/psbtFinalizer.js +22 -22
  61. package/lib/newops/psbtFinalizer.js.map +1 -1
  62. package/lib/newops/psbtv2.d.ts +1 -1
  63. package/lib/newops/psbtv2.d.ts.map +1 -1
  64. package/lib/newops/psbtv2.js +227 -286
  65. package/lib/newops/psbtv2.js.map +1 -1
  66. package/lib/serializeTransaction.js +13 -15
  67. package/lib/serializeTransaction.js.map +1 -1
  68. package/lib/shouldUseTrustedInputForSegwit.js +4 -5
  69. package/lib/shouldUseTrustedInputForSegwit.js.map +1 -1
  70. package/lib/signMessage.js +47 -99
  71. package/lib/signMessage.js.map +1 -1
  72. package/lib/signP2SHTransaction.d.ts +1 -1
  73. package/lib/signP2SHTransaction.d.ts.map +1 -1
  74. package/lib/signP2SHTransaction.js +91 -187
  75. package/lib/signP2SHTransaction.js.map +1 -1
  76. package/lib/signTransaction.js +8 -9
  77. package/lib/signTransaction.js.map +1 -1
  78. package/lib/splitTransaction.js +50 -54
  79. package/lib/splitTransaction.js.map +1 -1
  80. package/lib/startUntrustedHashTransactionInput.js +65 -167
  81. package/lib/startUntrustedHashTransactionInput.js.map +1 -1
  82. package/lib/types.js +1 -1
  83. package/lib/varint.js +10 -10
  84. package/lib/varint.js.map +1 -1
  85. package/lib-es/Btc.d.ts.map +1 -1
  86. package/lib-es/Btc.js +58 -84
  87. package/lib-es/Btc.js.map +1 -1
  88. package/lib-es/BtcNew.js +205 -302
  89. package/lib-es/BtcNew.js.map +1 -1
  90. package/lib-es/BtcOld.js +35 -96
  91. package/lib-es/BtcOld.js.map +1 -1
  92. package/lib-es/bip32.js +7 -7
  93. package/lib-es/bip32.js.map +1 -1
  94. package/lib-es/buffertools.js +62 -67
  95. package/lib-es/buffertools.js.map +1 -1
  96. package/lib-es/compressPublicKey.js +2 -2
  97. package/lib-es/compressPublicKey.js.map +1 -1
  98. package/lib-es/constants.js +12 -12
  99. package/lib-es/constants.js.map +1 -1
  100. package/lib-es/createTransaction.d.ts +1 -1
  101. package/lib-es/createTransaction.d.ts.map +1 -1
  102. package/lib-es/createTransaction.js +271 -384
  103. package/lib-es/createTransaction.js.map +1 -1
  104. package/lib-es/debug.js +10 -12
  105. package/lib-es/debug.js.map +1 -1
  106. package/lib-es/finalizeInput.js +20 -59
  107. package/lib-es/finalizeInput.js.map +1 -1
  108. package/lib-es/getAppAndVersion.d.ts +1 -1
  109. package/lib-es/getAppAndVersion.d.ts.map +1 -1
  110. package/lib-es/getAppAndVersion.js +27 -70
  111. package/lib-es/getAppAndVersion.js.map +1 -1
  112. package/lib-es/getTrustedInput.js +104 -247
  113. package/lib-es/getTrustedInput.js.map +1 -1
  114. package/lib-es/getTrustedInputBIP143.js +5 -6
  115. package/lib-es/getTrustedInputBIP143.js.map +1 -1
  116. package/lib-es/getWalletPublicKey.d.ts +1 -1
  117. package/lib-es/getWalletPublicKey.d.ts.map +1 -1
  118. package/lib-es/getWalletPublicKey.js +25 -71
  119. package/lib-es/getWalletPublicKey.js.map +1 -1
  120. package/lib-es/newops/accounttype.d.ts +2 -2
  121. package/lib-es/newops/accounttype.d.ts.map +1 -1
  122. package/lib-es/newops/accounttype.js +79 -123
  123. package/lib-es/newops/accounttype.js.map +1 -1
  124. package/lib-es/newops/appClient.js +92 -200
  125. package/lib-es/newops/appClient.js.map +1 -1
  126. package/lib-es/newops/clientCommands.js +117 -214
  127. package/lib-es/newops/clientCommands.js.map +1 -1
  128. package/lib-es/newops/merkelizedPsbt.js +25 -73
  129. package/lib-es/newops/merkelizedPsbt.js.map +1 -1
  130. package/lib-es/newops/merkle.js +36 -66
  131. package/lib-es/newops/merkle.js.map +1 -1
  132. package/lib-es/newops/merkleMap.js +8 -10
  133. package/lib-es/newops/merkleMap.js.map +1 -1
  134. package/lib-es/newops/policy.d.ts +1 -1
  135. package/lib-es/newops/policy.d.ts.map +1 -1
  136. package/lib-es/newops/policy.js +12 -14
  137. package/lib-es/newops/policy.js.map +1 -1
  138. package/lib-es/newops/psbtExtractor.js +7 -7
  139. package/lib-es/newops/psbtExtractor.js.map +1 -1
  140. package/lib-es/newops/psbtFinalizer.js +19 -19
  141. package/lib-es/newops/psbtFinalizer.js.map +1 -1
  142. package/lib-es/newops/psbtv2.d.ts +1 -1
  143. package/lib-es/newops/psbtv2.d.ts.map +1 -1
  144. package/lib-es/newops/psbtv2.js +225 -286
  145. package/lib-es/newops/psbtv2.js.map +1 -1
  146. package/lib-es/serializeTransaction.js +11 -13
  147. package/lib-es/serializeTransaction.js.map +1 -1
  148. package/lib-es/shouldUseTrustedInputForSegwit.js +1 -2
  149. package/lib-es/shouldUseTrustedInputForSegwit.js.map +1 -1
  150. package/lib-es/signMessage.js +44 -96
  151. package/lib-es/signMessage.js.map +1 -1
  152. package/lib-es/signP2SHTransaction.d.ts +1 -1
  153. package/lib-es/signP2SHTransaction.d.ts.map +1 -1
  154. package/lib-es/signP2SHTransaction.js +84 -180
  155. package/lib-es/signP2SHTransaction.js.map +1 -1
  156. package/lib-es/signTransaction.js +6 -7
  157. package/lib-es/signTransaction.js.map +1 -1
  158. package/lib-es/splitTransaction.js +46 -50
  159. package/lib-es/splitTransaction.js.map +1 -1
  160. package/lib-es/startUntrustedHashTransactionInput.js +62 -164
  161. package/lib-es/startUntrustedHashTransactionInput.js.map +1 -1
  162. package/lib-es/varint.js +9 -9
  163. package/lib-es/varint.js.map +1 -1
  164. package/package.json +5 -6
  165. package/src/Btc.ts +28 -5
@@ -1,47 +1,27 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
1
  import { crypto } from "bitcoinjs-lib";
17
2
  import { pointAddScalar } from "tiny-secp256k1";
18
3
  import { BufferWriter } from "../buffertools";
19
4
  import { HASH_SIZE, OP_CHECKSIG, OP_DUP, OP_EQUAL, OP_EQUALVERIFY, OP_HASH160, } from "../constants";
20
5
  import { hashPublicKey } from "../hashPublicKey";
21
- var BaseAccount = /** @class */ (function () {
22
- function BaseAccount(psbt, masterFp) {
6
+ class BaseAccount {
7
+ constructor(psbt, masterFp) {
23
8
  this.psbt = psbt;
24
9
  this.masterFp = masterFp;
25
10
  }
26
- return BaseAccount;
27
- }());
11
+ }
28
12
  /**
29
13
  * Superclass for single signature accounts. This will make sure that the pubkey
30
14
  * arrays and path arrays in the method arguments contains exactly one element
31
15
  * and calls an abstract method to do the actual work.
32
16
  */
33
- var SingleKeyAccount = /** @class */ (function (_super) {
34
- __extends(SingleKeyAccount, _super);
35
- function SingleKeyAccount() {
36
- return _super !== null && _super.apply(this, arguments) || this;
37
- }
38
- SingleKeyAccount.prototype.spendingCondition = function (pubkeys) {
17
+ class SingleKeyAccount extends BaseAccount {
18
+ spendingCondition(pubkeys) {
39
19
  if (pubkeys.length != 1) {
40
20
  throw new Error("Expected single key, got " + pubkeys.length);
41
21
  }
42
22
  return this.singleKeyCondition(pubkeys[0]);
43
- };
44
- SingleKeyAccount.prototype.setInput = function (i, inputTx, spentOutput, pubkeys, pathElems) {
23
+ }
24
+ setInput(i, inputTx, spentOutput, pubkeys, pathElems) {
45
25
  if (pubkeys.length != 1) {
46
26
  throw new Error("Expected single key, got " + pubkeys.length);
47
27
  }
@@ -49,8 +29,8 @@ var SingleKeyAccount = /** @class */ (function (_super) {
49
29
  throw new Error("Expected single path, got " + pathElems.length);
50
30
  }
51
31
  this.setSingleKeyInput(i, inputTx, spentOutput, pubkeys[0], pathElems[0]);
52
- };
53
- SingleKeyAccount.prototype.setOwnOutput = function (i, cond, pubkeys, paths) {
32
+ }
33
+ setOwnOutput(i, cond, pubkeys, paths) {
54
34
  if (pubkeys.length != 1) {
55
35
  throw new Error("Expected single key, got " + pubkeys.length);
56
36
  }
@@ -58,73 +38,62 @@ var SingleKeyAccount = /** @class */ (function (_super) {
58
38
  throw new Error("Expected single path, got " + paths.length);
59
39
  }
60
40
  this.setSingleKeyOutput(i, cond, pubkeys[0], paths[0]);
61
- };
62
- return SingleKeyAccount;
63
- }(BaseAccount));
64
- var p2pkh = /** @class */ (function (_super) {
65
- __extends(p2pkh, _super);
66
- function p2pkh() {
67
- return _super !== null && _super.apply(this, arguments) || this;
68
- }
69
- p2pkh.prototype.singleKeyCondition = function (pubkey) {
70
- var buf = new BufferWriter();
71
- var pubkeyHash = hashPublicKey(pubkey);
41
+ }
42
+ }
43
+ export class p2pkh extends SingleKeyAccount {
44
+ singleKeyCondition(pubkey) {
45
+ const buf = new BufferWriter();
46
+ const pubkeyHash = hashPublicKey(pubkey);
72
47
  buf.writeSlice(Buffer.from([OP_DUP, OP_HASH160, HASH_SIZE]));
73
48
  buf.writeSlice(pubkeyHash);
74
49
  buf.writeSlice(Buffer.from([OP_EQUALVERIFY, OP_CHECKSIG]));
75
50
  return { scriptPubKey: buf.buffer() };
76
- };
77
- p2pkh.prototype.setSingleKeyInput = function (i, inputTx, _spentOutput, pubkey, path) {
51
+ }
52
+ setSingleKeyInput(i, inputTx, _spentOutput, pubkey, path) {
78
53
  if (!inputTx) {
79
54
  throw new Error("Full input base transaction required");
80
55
  }
81
56
  this.psbt.setInputNonWitnessUtxo(i, inputTx);
82
57
  this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);
83
- };
84
- p2pkh.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
58
+ }
59
+ setSingleKeyOutput(i, cond, pubkey, path) {
85
60
  this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);
86
- };
87
- p2pkh.prototype.getDescriptorTemplate = function () {
61
+ }
62
+ getDescriptorTemplate() {
88
63
  return "pkh(@0)";
89
- };
90
- return p2pkh;
91
- }(SingleKeyAccount));
92
- export { p2pkh };
93
- var p2tr = /** @class */ (function (_super) {
94
- __extends(p2tr, _super);
95
- function p2tr() {
96
- return _super !== null && _super.apply(this, arguments) || this;
97
- }
98
- p2tr.prototype.singleKeyCondition = function (pubkey) {
99
- var xonlyPubkey = pubkey.slice(1); // x-only pubkey
100
- var buf = new BufferWriter();
101
- var outputKey = this.getTaprootOutputKey(xonlyPubkey);
64
+ }
65
+ }
66
+ export class p2tr extends SingleKeyAccount {
67
+ singleKeyCondition(pubkey) {
68
+ const xonlyPubkey = pubkey.slice(1); // x-only pubkey
69
+ const buf = new BufferWriter();
70
+ const outputKey = this.getTaprootOutputKey(xonlyPubkey);
102
71
  buf.writeSlice(Buffer.from([0x51, 32])); // push1, pubkeylen
103
72
  buf.writeSlice(outputKey);
104
73
  return { scriptPubKey: buf.buffer() };
105
- };
106
- p2tr.prototype.setSingleKeyInput = function (i, _inputTx, spentOutput, pubkey, path) {
107
- var xonly = pubkey.slice(1);
74
+ }
75
+ setSingleKeyInput(i, _inputTx, spentOutput, pubkey, path) {
76
+ const xonly = pubkey.slice(1);
108
77
  this.psbt.setInputTapBip32Derivation(i, xonly, [], this.masterFp, path);
109
78
  this.psbt.setInputWitnessUtxo(i, spentOutput.amount, spentOutput.cond.scriptPubKey);
110
- };
111
- p2tr.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
112
- var xonly = pubkey.slice(1);
79
+ }
80
+ setSingleKeyOutput(i, cond, pubkey, path) {
81
+ const xonly = pubkey.slice(1);
113
82
  this.psbt.setOutputTapBip32Derivation(i, xonly, [], this.masterFp, path);
114
- };
115
- p2tr.prototype.getDescriptorTemplate = function () {
83
+ }
84
+ getDescriptorTemplate() {
116
85
  return "tr(@0)";
117
- };
86
+ }
118
87
  /*
119
88
  The following two functions are copied from wallet-btc and adapted.
120
89
  They should be moved to a library to avoid code reuse.
121
90
  */
122
- p2tr.prototype.hashTapTweak = function (x) {
91
+ hashTapTweak(x) {
123
92
  // hash_tag(x) = SHA256(SHA256(tag) || SHA256(tag) || x), see BIP340
124
93
  // See https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#specification
125
- var h = crypto.sha256(Buffer.from("TapTweak", "utf-8"));
94
+ const h = crypto.sha256(Buffer.from("TapTweak", "utf-8"));
126
95
  return crypto.sha256(Buffer.concat([h, h, x]));
127
- };
96
+ }
128
97
  /**
129
98
  * Calculates a taproot output key from an internal key. This output key will be
130
99
  * used as witness program in a taproot output. The internal key is tweaked
@@ -134,7 +103,7 @@ var p2tr = /** @class */ (function (_super) {
134
103
  * @param internalPubkey A 32 byte x-only taproot internal key
135
104
  * @returns The output key
136
105
  */
137
- p2tr.prototype.getTaprootOutputKey = function (internalPubkey) {
106
+ getTaprootOutputKey(internalPubkey) {
138
107
  if (internalPubkey.length != 32) {
139
108
  throw new Error("Expected 32 byte pubkey. Got " + internalPubkey.length);
140
109
  }
@@ -142,92 +111,79 @@ var p2tr = /** @class */ (function (_super) {
142
111
  // the first byte, which represent the oddness/evenness. In schnorr all
143
112
  // pubkeys are even.
144
113
  // https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#public-key-conversion
145
- var evenEcdsaPubkey = Buffer.concat([
114
+ const evenEcdsaPubkey = Buffer.concat([
146
115
  Buffer.from([0x02]),
147
116
  internalPubkey,
148
117
  ]);
149
- var tweak = this.hashTapTweak(internalPubkey);
118
+ const tweak = this.hashTapTweak(internalPubkey);
150
119
  // Q = P + int(hash_TapTweak(bytes(P)))G
151
- var outputEcdsaKey = Buffer.from(pointAddScalar(evenEcdsaPubkey, tweak));
120
+ const outputEcdsaKey = Buffer.from(pointAddScalar(evenEcdsaPubkey, tweak));
152
121
  // Convert to schnorr.
153
- var outputSchnorrKey = outputEcdsaKey.slice(1);
122
+ const outputSchnorrKey = outputEcdsaKey.slice(1);
154
123
  // Create address
155
124
  return outputSchnorrKey;
156
- };
157
- return p2tr;
158
- }(SingleKeyAccount));
159
- export { p2tr };
160
- var p2wpkhWrapped = /** @class */ (function (_super) {
161
- __extends(p2wpkhWrapped, _super);
162
- function p2wpkhWrapped() {
163
- return _super !== null && _super.apply(this, arguments) || this;
164
- }
165
- p2wpkhWrapped.prototype.singleKeyCondition = function (pubkey) {
166
- var buf = new BufferWriter();
167
- var redeemScript = this.createRedeemScript(pubkey);
168
- var scriptHash = hashPublicKey(redeemScript);
125
+ }
126
+ }
127
+ export class p2wpkhWrapped extends SingleKeyAccount {
128
+ singleKeyCondition(pubkey) {
129
+ const buf = new BufferWriter();
130
+ const redeemScript = this.createRedeemScript(pubkey);
131
+ const scriptHash = hashPublicKey(redeemScript);
169
132
  buf.writeSlice(Buffer.from([OP_HASH160, HASH_SIZE]));
170
133
  buf.writeSlice(scriptHash);
171
134
  buf.writeUInt8(OP_EQUAL);
172
135
  return { scriptPubKey: buf.buffer(), redeemScript: redeemScript };
173
- };
174
- p2wpkhWrapped.prototype.setSingleKeyInput = function (i, inputTx, spentOutput, pubkey, path) {
136
+ }
137
+ setSingleKeyInput(i, inputTx, spentOutput, pubkey, path) {
175
138
  if (!inputTx) {
176
139
  throw new Error("Full input base transaction required");
177
140
  }
178
141
  this.psbt.setInputNonWitnessUtxo(i, inputTx);
179
142
  this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);
180
- var userSuppliedRedeemScript = spentOutput.cond.redeemScript;
181
- var expectedRedeemScript = this.createRedeemScript(pubkey);
143
+ const userSuppliedRedeemScript = spentOutput.cond.redeemScript;
144
+ const expectedRedeemScript = this.createRedeemScript(pubkey);
182
145
  if (userSuppliedRedeemScript &&
183
146
  !expectedRedeemScript.equals(userSuppliedRedeemScript)) {
184
147
  // At what point might a user set the redeemScript on its own?
185
- throw new Error("User-supplied redeemScript ".concat(userSuppliedRedeemScript.toString("hex"), " doesn't\n match expected ").concat(expectedRedeemScript.toString("hex"), " for input ").concat(i));
148
+ throw new Error(`User-supplied redeemScript ${userSuppliedRedeemScript.toString("hex")} doesn't
149
+ match expected ${expectedRedeemScript.toString("hex")} for input ${i}`);
186
150
  }
187
151
  this.psbt.setInputRedeemScript(i, expectedRedeemScript);
188
152
  this.psbt.setInputWitnessUtxo(i, spentOutput.amount, spentOutput.cond.scriptPubKey);
189
- };
190
- p2wpkhWrapped.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
153
+ }
154
+ setSingleKeyOutput(i, cond, pubkey, path) {
191
155
  this.psbt.setOutputRedeemScript(i, cond.redeemScript);
192
156
  this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);
193
- };
194
- p2wpkhWrapped.prototype.getDescriptorTemplate = function () {
157
+ }
158
+ getDescriptorTemplate() {
195
159
  return "sh(wpkh(@0))";
196
- };
197
- p2wpkhWrapped.prototype.createRedeemScript = function (pubkey) {
198
- var pubkeyHash = hashPublicKey(pubkey);
160
+ }
161
+ createRedeemScript(pubkey) {
162
+ const pubkeyHash = hashPublicKey(pubkey);
199
163
  return Buffer.concat([Buffer.from("0014", "hex"), pubkeyHash]);
200
- };
201
- return p2wpkhWrapped;
202
- }(SingleKeyAccount));
203
- export { p2wpkhWrapped };
204
- var p2wpkh = /** @class */ (function (_super) {
205
- __extends(p2wpkh, _super);
206
- function p2wpkh() {
207
- return _super !== null && _super.apply(this, arguments) || this;
208
- }
209
- p2wpkh.prototype.singleKeyCondition = function (pubkey) {
210
- var buf = new BufferWriter();
211
- var pubkeyHash = hashPublicKey(pubkey);
164
+ }
165
+ }
166
+ export class p2wpkh extends SingleKeyAccount {
167
+ singleKeyCondition(pubkey) {
168
+ const buf = new BufferWriter();
169
+ const pubkeyHash = hashPublicKey(pubkey);
212
170
  buf.writeSlice(Buffer.from([0, HASH_SIZE]));
213
171
  buf.writeSlice(pubkeyHash);
214
172
  return { scriptPubKey: buf.buffer() };
215
- };
216
- p2wpkh.prototype.setSingleKeyInput = function (i, inputTx, spentOutput, pubkey, path) {
173
+ }
174
+ setSingleKeyInput(i, inputTx, spentOutput, pubkey, path) {
217
175
  if (!inputTx) {
218
176
  throw new Error("Full input base transaction required");
219
177
  }
220
178
  this.psbt.setInputNonWitnessUtxo(i, inputTx);
221
179
  this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);
222
180
  this.psbt.setInputWitnessUtxo(i, spentOutput.amount, spentOutput.cond.scriptPubKey);
223
- };
224
- p2wpkh.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
181
+ }
182
+ setSingleKeyOutput(i, cond, pubkey, path) {
225
183
  this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);
226
- };
227
- p2wpkh.prototype.getDescriptorTemplate = function () {
184
+ }
185
+ getDescriptorTemplate() {
228
186
  return "wpkh(@0)";
229
- };
230
- return p2wpkh;
231
- }(SingleKeyAccount));
232
- export { p2wpkh };
187
+ }
188
+ }
233
189
  //# sourceMappingURL=accounttype.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accounttype.js","sourceRoot":"","sources":["../../src/newops/accounttype.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,WAAW,EACX,MAAM,EACN,QAAQ,EACR,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAyEjD;IACE,qBAAsB,IAAY,EAAY,QAAgB;QAAxC,SAAI,GAAJ,IAAI,CAAQ;QAAY,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IACpE,kBAAC;AAAD,CAAC,AAFD,IAEC;AAED;;;;GAIG;AACH;IAAwC,oCAAW;IAAnD;;IAoDA,CAAC;IAnDC,4CAAiB,GAAjB,UAAkB,OAAiB;QACjC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAGD,mCAAQ,GAAR,UACE,CAAS,EACT,OAA2B,EAC3B,WAAwB,EACxB,OAAiB,EACjB,SAAqB;QAErB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IASD,uCAAY,GAAZ,UACE,CAAS,EACT,IAAuB,EACvB,OAAiB,EACjB,KAAiB;QAEjB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAOH,uBAAC;AAAD,CAAC,AApDD,CAAwC,WAAW,GAoDlD;AAED;IAA2B,yBAAgB;IAA3C;;IAoCA,CAAC;IAnCC,kCAAkB,GAAlB,UAAmB,MAAc;QAC/B,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,iCAAiB,GAAjB,UACE,CAAS,EACT,OAA2B,EAC3B,YAAyB,EACzB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,kCAAkB,GAAlB,UACE,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,qCAAqB,GAArB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,YAAC;AAAD,CAAC,AApCD,CAA2B,gBAAgB,GAoC1C;;AAED;IAA0B,wBAAgB;IAA1C;;IAiFA,CAAC;IAhFC,iCAAkB,GAAlB,UAAmB,MAAc;QAC/B,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QACrD,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACxD,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC5D,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,gCAAiB,GAAjB,UACE,CAAS,EACT,QAA4B,EAC5B,WAAwB,EACxB,MAAc,EACd,IAAc;QAEd,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC3B,CAAC,EACD,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAC9B,CAAC;IACJ,CAAC;IAED,iCAAkB,GAAlB,UACE,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,oCAAqB,GAArB;QACE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;MAGE;IACM,2BAAY,GAApB,UAAqB,CAAS;QAC5B,oEAAoE;QACpE,mFAAmF;QACnF,IAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACH,kCAAmB,GAAnB,UAAoB,cAAsB;QACxC,IAAI,cAAc,CAAC,MAAM,IAAI,EAAE,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;SAC1E;QACD,uEAAuE;QACvE,uEAAuE;QACvE,oBAAoB;QACpB,uFAAuF;QACvF,IAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACnB,cAAc;SACf,CAAC,CAAC;QACH,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEhD,wCAAwC;QACxC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,sBAAsB;QACtB,IAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjD,iBAAiB;QACjB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACH,WAAC;AAAD,CAAC,AAjFD,CAA0B,gBAAgB,GAiFzC;;AAED;IAAmC,iCAAgB;IAAnD;;IA8DA,CAAC;IA7DC,0CAAkB,GAAlB,UAAmB,MAAc;QAC/B,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACrD,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACpE,CAAC;IAED,yCAAiB,GAAjB,UACE,CAAS,EACT,OAA2B,EAC3B,WAAwB,EACxB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAElE,IAAM,wBAAwB,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/D,IAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7D,IACE,wBAAwB;YACxB,CAAC,oBAAoB,CAAC,MAAM,CAAC,wBAAwB,CAAC,EACtD;YACA,8DAA8D;YAC9D,MAAM,IAAI,KAAK,CAAC,qCAA8B,wBAAwB,CAAC,QAAQ,CAC7E,KAAK,CACN,6CACiB,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAc,CAAC,CAAE,CAAC,CAAC;SAC1E;QACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC3B,CAAC,EACD,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAC9B,CAAC;IACJ,CAAC;IAED,0CAAkB,GAAlB,UACE,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAa,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,6CAAqB,GAArB;QACE,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,0CAAkB,GAA1B,UAA2B,MAAc;QACvC,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,oBAAC;AAAD,CAAC,AA9DD,CAAmC,gBAAgB,GA8DlD;;AAED;IAA4B,0BAAgB;IAA5C;;IAwCA,CAAC;IAvCC,mCAAkB,GAAlB,UAAmB,MAAc;QAC/B,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5C,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3B,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,kCAAiB,GAAjB,UACE,CAAS,EACT,OAA2B,EAC3B,WAAwB,EACxB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC3B,CAAC,EACD,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAC9B,CAAC;IACJ,CAAC;IAED,mCAAkB,GAAlB,UACE,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,sCAAqB,GAArB;QACE,OAAO,UAAU,CAAC;IACpB,CAAC;IACH,aAAC;AAAD,CAAC,AAxCD,CAA4B,gBAAgB,GAwC3C"}
1
+ {"version":3,"file":"accounttype.js","sourceRoot":"","sources":["../../src/newops/accounttype.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,WAAW,EACX,MAAM,EACN,QAAQ,EACR,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAyEjD,MAAe,WAAW;IACxB,YAAsB,IAAY,EAAY,QAAgB;QAAxC,SAAI,GAAJ,IAAI,CAAQ;QAAY,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;CACnE;AAED;;;;GAIG;AACH,MAAe,gBAAiB,SAAQ,WAAW;IACjD,iBAAiB,CAAC,OAAiB;QACjC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAGD,QAAQ,CACN,CAAS,EACT,OAA2B,EAC3B,WAAwB,EACxB,OAAiB,EACjB,SAAqB;QAErB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IASD,YAAY,CACV,CAAS,EACT,IAAuB,EACvB,OAAiB,EACjB,KAAiB;QAEjB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;CAOF;AAED,MAAM,OAAO,KAAM,SAAQ,gBAAgB;IACzC,kBAAkB,CAAC,MAAc;QAC/B,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,iBAAiB,CACf,CAAS,EACT,OAA2B,EAC3B,YAAyB,EACzB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB,CAChB,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,qBAAqB;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,IAAK,SAAQ,gBAAgB;IACxC,kBAAkB,CAAC,MAAc;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QACrD,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACxD,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC5D,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,iBAAiB,CACf,CAAS,EACT,QAA4B,EAC5B,WAAwB,EACxB,MAAc,EACd,IAAc;QAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC3B,CAAC,EACD,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAC9B,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;MAGE;IACM,YAAY,CAAC,CAAS;QAC5B,oEAAoE;QACpE,mFAAmF;QACnF,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,cAAsB;QACxC,IAAI,cAAc,CAAC,MAAM,IAAI,EAAE,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;SAC1E;QACD,uEAAuE;QACvE,uEAAuE;QACvE,oBAAoB;QACpB,uFAAuF;QACvF,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACnB,cAAc;SACf,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEhD,wCAAwC;QACxC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,sBAAsB;QACtB,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjD,iBAAiB;QACjB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,kBAAkB,CAAC,MAAc;QAC/B,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACrD,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACpE,CAAC;IAED,iBAAiB,CACf,CAAS,EACT,OAA2B,EAC3B,WAAwB,EACxB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAElE,MAAM,wBAAwB,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7D,IACE,wBAAwB;YACxB,CAAC,oBAAoB,CAAC,MAAM,CAAC,wBAAwB,CAAC,EACtD;YACA,8DAA8D;YAC9D,MAAM,IAAI,KAAK,CAAC,8BAA8B,wBAAwB,CAAC,QAAQ,CAC7E,KAAK,CACN;wBACiB,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;SAC1E;QACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC3B,CAAC,EACD,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAC9B,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAa,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,qBAAqB;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,kBAAkB,CAAC,MAAc;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,gBAAgB;IAC1C,kBAAkB,CAAC,MAAc;QAC/B,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5C,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3B,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,iBAAiB,CACf,CAAS,EACT,OAA2B,EAC3B,WAAwB,EACxB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC3B,CAAC,EACD,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAC9B,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,CAAS,EACT,IAAuB,EACvB,MAAc,EACd,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,qBAAqB;QACnB,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}