@taquito/utils 11.0.1 → 11.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,6 +16,7 @@ import { b58cdecode } from '@taquito/utils'; // Base58 decode a string and remov
16
16
  import { b58cencode } from '@taquito/utils'; // Base58 encode a string or a Uint8Array and append a prefix to it
17
17
  import { encodeOpHash } from '@taquito/utils'; // Return the operation hash of a signed operation
18
18
  import { encodeExpr } from '@taquito/utils'; // Hash a string using the BLAKE2b algorithm, base58 encode the hash obtained and appends the prefix 'expr' to it
19
+ import { getPkhfromPk } from '@taquito/utils'; // Returns Tezos address (PKH) of a given Public Key
19
20
  ```
20
21
 
21
22
  See the top-level [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) file for details on reporting issues, contributing and versioning.
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.bytes2Char = exports.char2Bytes = exports.buf2hex = exports.mic2arr = exports.mergebuf = exports.hex2buf = exports.encodeKeyHash = exports.encodeKey = exports.encodePubKey = exports.b58decode = exports.b58cdecode = exports.b58cencode = exports.encodeOpHash = exports.encodeExpr = exports.verifySignature = exports.prefixLength = exports.Prefix = exports.prefix = exports.VERSION = void 0;
17
+ exports.bytes2Char = exports.char2Bytes = exports.getPkhfromPk = exports.buf2hex = exports.mic2arr = exports.mergebuf = exports.hex2buf = exports.encodeKeyHash = exports.encodeKey = exports.encodePubKey = exports.b58decode = exports.b58cdecode = exports.b58cencode = exports.encodeOpHash = exports.encodeExpr = exports.validatePkAndExtractPrefix = exports.verifySignature = exports.prefixLength = exports.Prefix = exports.prefix = exports.VERSION = void 0;
18
18
  /*
19
19
  * Some code in this file is originally from sotez and eztz
20
20
  * Copyright (c) 2018 Andrew Kishino
@@ -22,6 +22,8 @@ exports.bytes2Char = exports.char2Bytes = exports.buf2hex = exports.mic2arr = ex
22
22
  */
23
23
  var buffer_1 = require("buffer");
24
24
  var constants_1 = require("./constants");
25
+ var verify_signature_1 = require("./verify-signature");
26
+ var blake2b_1 = require("@stablelib/blake2b");
25
27
  var blake = require('blakejs');
26
28
  var bs58check = require('bs58check');
27
29
  __exportStar(require("./validators"), exports);
@@ -31,8 +33,9 @@ var constants_2 = require("./constants");
31
33
  Object.defineProperty(exports, "prefix", { enumerable: true, get: function () { return constants_2.prefix; } });
32
34
  Object.defineProperty(exports, "Prefix", { enumerable: true, get: function () { return constants_2.Prefix; } });
33
35
  Object.defineProperty(exports, "prefixLength", { enumerable: true, get: function () { return constants_2.prefixLength; } });
34
- var verify_signature_1 = require("./verify-signature");
35
- Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return verify_signature_1.verifySignature; } });
36
+ var verify_signature_2 = require("./verify-signature");
37
+ Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return verify_signature_2.verifySignature; } });
38
+ Object.defineProperty(exports, "validatePkAndExtractPrefix", { enumerable: true, get: function () { return verify_signature_2.validatePkAndExtractPrefix; } });
36
39
  /**
37
40
  *
38
41
  * @description Hash a string using the BLAKE2b algorithm, base58 encode the hash obtained and appends the prefix 'expr' to it
@@ -256,6 +259,37 @@ var buf2hex = function (buffer) {
256
259
  return hexParts.join('');
257
260
  };
258
261
  exports.buf2hex = buf2hex;
262
+ /**
263
+ *
264
+ * @description Gets Tezos address (PKH) from Public Key
265
+ *
266
+ * @param publicKey Public Key
267
+ * @returns A string of the Tezos address (PKH) that was derived from the given Public Key
268
+ */
269
+ var getPkhfromPk = function (publicKey) {
270
+ var encodingPrefix;
271
+ var prefixLen;
272
+ var keyPrefix = verify_signature_1.validatePkAndExtractPrefix(publicKey);
273
+ var decoded = exports.b58cdecode(publicKey, constants_1.prefix[keyPrefix]);
274
+ switch (keyPrefix) {
275
+ case constants_1.Prefix.EDPK:
276
+ encodingPrefix = constants_1.prefix[constants_1.Prefix.TZ1];
277
+ prefixLen = constants_1.prefixLength[constants_1.Prefix.TZ1];
278
+ break;
279
+ case constants_1.Prefix.SPPK:
280
+ encodingPrefix = constants_1.prefix[constants_1.Prefix.TZ2];
281
+ prefixLen = constants_1.prefixLength[constants_1.Prefix.TZ2];
282
+ break;
283
+ case constants_1.Prefix.P2PK:
284
+ encodingPrefix = constants_1.prefix[constants_1.Prefix.TZ3];
285
+ prefixLen = constants_1.prefixLength[constants_1.Prefix.TZ3];
286
+ break;
287
+ }
288
+ var hashed = blake2b_1.hash(decoded, prefixLen);
289
+ var result = b58cencode(hashed, encodingPrefix);
290
+ return result;
291
+ };
292
+ exports.getPkhfromPk = getPkhfromPk;
259
293
  /**
260
294
  *
261
295
  * @description Convert a string to bytes
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-utils.js","sourceRoot":"","sources":["../../src/taquito-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taquito-utils.js","sourceRoot":"","sources":["../../src/taquito-utils.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.verifySignature = void 0;
19
+ exports.validatePkAndExtractPrefix = exports.verifySignature = void 0;
20
20
  var ed25519_1 = require("@stablelib/ed25519");
21
21
  var blake2b_1 = require("@stablelib/blake2b");
22
22
  var taquito_utils_1 = require("./taquito-utils");
@@ -69,7 +69,7 @@ function validateMessageNotEmpty(message) {
69
69
  }
70
70
  function validatePkAndExtractPrefix(publicKey) {
71
71
  if (publicKey === '') {
72
- throw new errors_1.InvalidPublicKeyError("The public key provided for verifying signature cannot be empty.");
72
+ throw new errors_1.InvalidPublicKeyError("The public key provided cannot be empty.");
73
73
  }
74
74
  var pkPrefix = publicKey.substring(0, 4);
75
75
  var validation = taquito_utils_1.validatePublicKey(publicKey);
@@ -86,6 +86,7 @@ function validatePkAndExtractPrefix(publicKey) {
86
86
  }
87
87
  return pkPrefix;
88
88
  }
89
+ exports.validatePkAndExtractPrefix = validatePkAndExtractPrefix;
89
90
  function validateSigAndExtractPrefix(signature) {
90
91
  var signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);
91
92
  var validation = taquito_utils_1.validateSignature(signature);
@@ -1 +1 @@
1
- {"version":3,"file":"verify-signature.js","sourceRoot":"","sources":["../../src/verify-signature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-signature.js","sourceRoot":"","sources":["../../src/verify-signature.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ exports.VERSION = void 0;
4
4
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
5
5
  /* tslint:disable */
6
6
  exports.VERSION = {
7
- "commitHash": "8d7ecc86ce608bff9ee8c6cf0cd7d795263b8bda",
8
- "version": "11.0.1"
7
+ "commitHash": "e4fb2f0ab9a459640e474bf65ae4578f4b948c63",
8
+ "version": "11.0.2"
9
9
  };
10
10
  /* tslint:enable */
11
11
  //# sourceMappingURL=version.js.map
@@ -129,6 +129,137 @@ function __spread() {
129
129
  return ar;
130
130
  }
131
131
 
132
+ var InvalidPublicKeyError = /** @class */ (function () {
133
+ function InvalidPublicKeyError(message) {
134
+ this.message = message;
135
+ this.name = 'InvalidPublicKeyError';
136
+ }
137
+ return InvalidPublicKeyError;
138
+ }());
139
+ var InvalidSignatureError = /** @class */ (function () {
140
+ function InvalidSignatureError(message) {
141
+ this.message = message;
142
+ this.name = 'InvalidSignatureError';
143
+ }
144
+ return InvalidSignatureError;
145
+ }());
146
+ var InvalidMessageError = /** @class */ (function () {
147
+ function InvalidMessageError(message) {
148
+ this.message = message;
149
+ this.name = 'InvalidMessageError';
150
+ }
151
+ return InvalidMessageError;
152
+ }());
153
+
154
+ /**
155
+ * @description Verify signature of a payload
156
+ *
157
+ * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)
158
+ * @param publicKey The public key to verify the signature against
159
+ * @param signature The signature to verify
160
+ * @returns A boolean indicating if the signature matches
161
+ *
162
+ * @example
163
+ * ```
164
+ * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';
165
+ * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';
166
+ * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'
167
+ *
168
+ * const response = verifySignature(message, pk, sig);
169
+ * ```
170
+ *
171
+ */
172
+ function verifySignature(messageBytes, publicKey, signature) {
173
+ var pkPrefix = validatePkAndExtractPrefix(publicKey);
174
+ var sigPrefix = validateSigAndExtractPrefix(signature);
175
+ var decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);
176
+ var decodedSig = b58cdecode(signature, prefix[sigPrefix]);
177
+ var bytesHash = hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);
178
+ if (pkPrefix === Prefix.EDPK) {
179
+ return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);
180
+ }
181
+ else if (pkPrefix === Prefix.SPPK) {
182
+ return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);
183
+ }
184
+ else if (pkPrefix === Prefix.P2PK) {
185
+ return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);
186
+ }
187
+ else {
188
+ return false;
189
+ }
190
+ }
191
+ function validateMessageNotEmpty(message) {
192
+ if (message === '') {
193
+ throw new InvalidMessageError("The message provided for verifying signature cannot be empty.");
194
+ }
195
+ return message;
196
+ }
197
+ function validatePkAndExtractPrefix(publicKey) {
198
+ if (publicKey === '') {
199
+ throw new InvalidPublicKeyError("The public key provided cannot be empty.");
200
+ }
201
+ var pkPrefix = publicKey.substring(0, 4);
202
+ var validation = validatePublicKey(publicKey);
203
+ if (validation !== ValidationResult.VALID) {
204
+ if (validation === ValidationResult.INVALID_CHECKSUM) {
205
+ throw new InvalidPublicKeyError("The public key provided has an invalid checksum: " + publicKey);
206
+ }
207
+ else if (validation === ValidationResult.INVALID_LENGTH) {
208
+ throw new InvalidPublicKeyError("The public key provided has an invalid length: " + publicKey);
209
+ }
210
+ else if (validation === ValidationResult.NO_PREFIX_MATCHED) {
211
+ throw new InvalidPublicKeyError("The public key provided has an unsupported prefix: " + pkPrefix);
212
+ }
213
+ }
214
+ return pkPrefix;
215
+ }
216
+ function validateSigAndExtractPrefix(signature) {
217
+ var signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);
218
+ var validation = validateSignature(signature);
219
+ if (validation !== ValidationResult.VALID) {
220
+ if (validation === ValidationResult.INVALID_CHECKSUM) {
221
+ throw new InvalidSignatureError("The signature provided has an invalid checksum: " + signature);
222
+ }
223
+ else if (validation === ValidationResult.INVALID_LENGTH) {
224
+ throw new InvalidSignatureError("The signature provided has an invalid length: " + signature);
225
+ }
226
+ else if (validation === ValidationResult.NO_PREFIX_MATCHED) {
227
+ throw new InvalidSignatureError("The signature provided has an unsupported prefix: " + signaturePrefix);
228
+ }
229
+ }
230
+ return signaturePrefix;
231
+ }
232
+ function verifyEdSignature(decodedSig, bytesHash, decodedPublicKey) {
233
+ try {
234
+ return verify(decodedPublicKey, bytesHash, decodedSig);
235
+ }
236
+ catch (e) {
237
+ return false;
238
+ }
239
+ }
240
+ function verifySpSignature(decodedSig, bytesHash, decodedPublicKey) {
241
+ var key = new elliptic.ec('secp256k1').keyFromPublic(decodedPublicKey);
242
+ return verifySpOrP2Sig(decodedSig, bytesHash, key);
243
+ }
244
+ function verifyP2Signature(decodedSig, bytesHash, decodedPublicKey) {
245
+ var key = new elliptic.ec('p256').keyFromPublic(decodedPublicKey);
246
+ return verifySpOrP2Sig(decodedSig, bytesHash, key);
247
+ }
248
+ function verifySpOrP2Sig(decodedSig, bytesHash, key) {
249
+ var hexSig = buf2hex(toBuffer(decodedSig));
250
+ var match = hexSig.match(/([a-f\d]{64})/gi);
251
+ if (match) {
252
+ try {
253
+ var _a = __read(match, 2), r = _a[0], s = _a[1];
254
+ return key.verify(bytesHash, { r: r, s: s });
255
+ }
256
+ catch (e) {
257
+ return false;
258
+ }
259
+ }
260
+ return false;
261
+ }
262
+
132
263
  var bs58check$1 = require('bs58check');
133
264
  var ValidationResult;
134
265
  (function (ValidationResult) {
@@ -294,142 +425,11 @@ function validatePublicKey(value) {
294
425
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
295
426
  /* tslint:disable */
296
427
  var VERSION = {
297
- "commitHash": "8d7ecc86ce608bff9ee8c6cf0cd7d795263b8bda",
298
- "version": "11.0.1"
428
+ "commitHash": "e4fb2f0ab9a459640e474bf65ae4578f4b948c63",
429
+ "version": "11.0.2"
299
430
  };
300
431
  /* tslint:enable */
301
432
 
302
- var InvalidPublicKeyError = /** @class */ (function () {
303
- function InvalidPublicKeyError(message) {
304
- this.message = message;
305
- this.name = 'InvalidPublicKeyError';
306
- }
307
- return InvalidPublicKeyError;
308
- }());
309
- var InvalidSignatureError = /** @class */ (function () {
310
- function InvalidSignatureError(message) {
311
- this.message = message;
312
- this.name = 'InvalidSignatureError';
313
- }
314
- return InvalidSignatureError;
315
- }());
316
- var InvalidMessageError = /** @class */ (function () {
317
- function InvalidMessageError(message) {
318
- this.message = message;
319
- this.name = 'InvalidMessageError';
320
- }
321
- return InvalidMessageError;
322
- }());
323
-
324
- /**
325
- * @description Verify signature of a payload
326
- *
327
- * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)
328
- * @param publicKey The public key to verify the signature against
329
- * @param signature The signature to verify
330
- * @returns A boolean indicating if the signature matches
331
- *
332
- * @example
333
- * ```
334
- * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';
335
- * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';
336
- * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'
337
- *
338
- * const response = verifySignature(message, pk, sig);
339
- * ```
340
- *
341
- */
342
- function verifySignature(messageBytes, publicKey, signature) {
343
- var pkPrefix = validatePkAndExtractPrefix(publicKey);
344
- var sigPrefix = validateSigAndExtractPrefix(signature);
345
- var decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);
346
- var decodedSig = b58cdecode(signature, prefix[sigPrefix]);
347
- var bytesHash = hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);
348
- if (pkPrefix === Prefix.EDPK) {
349
- return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);
350
- }
351
- else if (pkPrefix === Prefix.SPPK) {
352
- return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);
353
- }
354
- else if (pkPrefix === Prefix.P2PK) {
355
- return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);
356
- }
357
- else {
358
- return false;
359
- }
360
- }
361
- function validateMessageNotEmpty(message) {
362
- if (message === '') {
363
- throw new InvalidMessageError("The message provided for verifying signature cannot be empty.");
364
- }
365
- return message;
366
- }
367
- function validatePkAndExtractPrefix(publicKey) {
368
- if (publicKey === '') {
369
- throw new InvalidPublicKeyError("The public key provided for verifying signature cannot be empty.");
370
- }
371
- var pkPrefix = publicKey.substring(0, 4);
372
- var validation = validatePublicKey(publicKey);
373
- if (validation !== ValidationResult.VALID) {
374
- if (validation === ValidationResult.INVALID_CHECKSUM) {
375
- throw new InvalidPublicKeyError("The public key provided has an invalid checksum: " + publicKey);
376
- }
377
- else if (validation === ValidationResult.INVALID_LENGTH) {
378
- throw new InvalidPublicKeyError("The public key provided has an invalid length: " + publicKey);
379
- }
380
- else if (validation === ValidationResult.NO_PREFIX_MATCHED) {
381
- throw new InvalidPublicKeyError("The public key provided has an unsupported prefix: " + pkPrefix);
382
- }
383
- }
384
- return pkPrefix;
385
- }
386
- function validateSigAndExtractPrefix(signature) {
387
- var signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);
388
- var validation = validateSignature(signature);
389
- if (validation !== ValidationResult.VALID) {
390
- if (validation === ValidationResult.INVALID_CHECKSUM) {
391
- throw new InvalidSignatureError("The signature provided has an invalid checksum: " + signature);
392
- }
393
- else if (validation === ValidationResult.INVALID_LENGTH) {
394
- throw new InvalidSignatureError("The signature provided has an invalid length: " + signature);
395
- }
396
- else if (validation === ValidationResult.NO_PREFIX_MATCHED) {
397
- throw new InvalidSignatureError("The signature provided has an unsupported prefix: " + signaturePrefix);
398
- }
399
- }
400
- return signaturePrefix;
401
- }
402
- function verifyEdSignature(decodedSig, bytesHash, decodedPublicKey) {
403
- try {
404
- return verify(decodedPublicKey, bytesHash, decodedSig);
405
- }
406
- catch (e) {
407
- return false;
408
- }
409
- }
410
- function verifySpSignature(decodedSig, bytesHash, decodedPublicKey) {
411
- var key = new elliptic.ec('secp256k1').keyFromPublic(decodedPublicKey);
412
- return verifySpOrP2Sig(decodedSig, bytesHash, key);
413
- }
414
- function verifyP2Signature(decodedSig, bytesHash, decodedPublicKey) {
415
- var key = new elliptic.ec('p256').keyFromPublic(decodedPublicKey);
416
- return verifySpOrP2Sig(decodedSig, bytesHash, key);
417
- }
418
- function verifySpOrP2Sig(decodedSig, bytesHash, key) {
419
- var hexSig = buf2hex(toBuffer(decodedSig));
420
- var match = hexSig.match(/([a-f\d]{64})/gi);
421
- if (match) {
422
- try {
423
- var _a = __read(match, 2), r = _a[0], s = _a[1];
424
- return key.verify(bytesHash, { r: r, s: s });
425
- }
426
- catch (e) {
427
- return false;
428
- }
429
- }
430
- return false;
431
- }
432
-
433
433
  /**
434
434
  * @packageDocumentation
435
435
  * @module @taquito/utils
@@ -647,6 +647,36 @@ var buf2hex = function (buffer) {
647
647
  });
648
648
  return hexParts.join('');
649
649
  };
650
+ /**
651
+ *
652
+ * @description Gets Tezos address (PKH) from Public Key
653
+ *
654
+ * @param publicKey Public Key
655
+ * @returns A string of the Tezos address (PKH) that was derived from the given Public Key
656
+ */
657
+ var getPkhfromPk = function (publicKey) {
658
+ var encodingPrefix;
659
+ var prefixLen;
660
+ var keyPrefix = validatePkAndExtractPrefix(publicKey);
661
+ var decoded = b58cdecode(publicKey, prefix[keyPrefix]);
662
+ switch (keyPrefix) {
663
+ case Prefix.EDPK:
664
+ encodingPrefix = prefix[Prefix.TZ1];
665
+ prefixLen = prefixLength[Prefix.TZ1];
666
+ break;
667
+ case Prefix.SPPK:
668
+ encodingPrefix = prefix[Prefix.TZ2];
669
+ prefixLen = prefixLength[Prefix.TZ2];
670
+ break;
671
+ case Prefix.P2PK:
672
+ encodingPrefix = prefix[Prefix.TZ3];
673
+ prefixLen = prefixLength[Prefix.TZ3];
674
+ break;
675
+ }
676
+ var hashed = hash(decoded, prefixLen);
677
+ var result = b58cencode(hashed, encodingPrefix);
678
+ return result;
679
+ };
650
680
  /**
651
681
  *
652
682
  * @description Convert a string to bytes
@@ -666,5 +696,5 @@ function bytes2Char(hex) {
666
696
  return Buffer.from(hex2buf(hex)).toString('utf8');
667
697
  }
668
698
 
669
- export { Prefix, VERSION, ValidationResult, b58cdecode, b58cencode, b58decode, buf2hex, bytes2Char, char2Bytes, encodeExpr, encodeKey, encodeKeyHash, encodeOpHash, encodePubKey, hex2buf, isValidPrefix, mergebuf, mic2arr, prefix, prefixLength, validateAddress, validateChain, validateContractAddress, validateKeyHash, validatePublicKey, validateSignature, verifySignature };
699
+ export { Prefix, VERSION, ValidationResult, b58cdecode, b58cencode, b58decode, buf2hex, bytes2Char, char2Bytes, encodeExpr, encodeKey, encodeKeyHash, encodeOpHash, encodePubKey, getPkhfromPk, hex2buf, isValidPrefix, mergebuf, mic2arr, prefix, prefixLength, validateAddress, validateChain, validateContractAddress, validateKeyHash, validatePkAndExtractPrefix, validatePublicKey, validateSignature, verifySignature };
670
700
  //# sourceMappingURL=taquito-utils.es5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-utils.es5.js","sources":["../src/constants.ts","../src/validators.ts","../src/version.ts","../src/errors.ts","../src/verify-signature.ts","../src/taquito-utils.ts"],"sourcesContent":["export enum Prefix {\n TZ1 = 'tz1',\n TZ2 = 'tz2',\n TZ3 = 'tz3',\n KT = 'KT',\n KT1 = 'KT1',\n\n EDSK2 = 'edsk2',\n SPSK = 'spsk',\n P2SK = 'p2sk',\n\n EDPK = 'edpk',\n SPPK = 'sppk',\n P2PK = 'p2pk',\n\n EDESK = 'edesk',\n SPESK = 'spesk',\n P2ESK = 'p2esk',\n\n EDSK = 'edsk',\n EDSIG = 'edsig',\n SPSIG = 'spsig',\n P2SIG = 'p2sig',\n SIG = 'sig',\n\n NET = 'Net',\n NCE = 'nce',\n B = 'b',\n O = 'o',\n LO = 'Lo',\n LLO = 'LLo',\n P = 'P',\n CO = 'Co',\n ID = 'id',\n\n EXPR = 'expr',\n TZ = 'TZ',\n}\n\nexport const prefix = {\n [Prefix.TZ1]: new Uint8Array([6, 161, 159]),\n [Prefix.TZ2]: new Uint8Array([6, 161, 161]),\n [Prefix.TZ3]: new Uint8Array([6, 161, 164]),\n [Prefix.KT]: new Uint8Array([2, 90, 121]),\n [Prefix.KT1]: new Uint8Array([2, 90, 121]),\n\n [Prefix.EDSK]: new Uint8Array([43, 246, 78, 7]),\n [Prefix.EDSK2]: new Uint8Array([13, 15, 58, 7]),\n [Prefix.SPSK]: new Uint8Array([17, 162, 224, 201]),\n [Prefix.P2SK]: new Uint8Array([16, 81, 238, 189]),\n\n [Prefix.EDPK]: new Uint8Array([13, 15, 37, 217]),\n [Prefix.SPPK]: new Uint8Array([3, 254, 226, 86]),\n [Prefix.P2PK]: new Uint8Array([3, 178, 139, 127]),\n\n [Prefix.EDESK]: new Uint8Array([7, 90, 60, 179, 41]),\n [Prefix.SPESK]: new Uint8Array([0x09, 0xed, 0xf1, 0xae, 0x96]),\n [Prefix.P2ESK]: new Uint8Array([0x09, 0x30, 0x39, 0x73, 0xab]),\n\n [Prefix.EDSIG]: new Uint8Array([9, 245, 205, 134, 18]),\n [Prefix.SPSIG]: new Uint8Array([13, 115, 101, 19, 63]),\n [Prefix.P2SIG]: new Uint8Array([54, 240, 44, 52]),\n [Prefix.SIG]: new Uint8Array([4, 130, 43]),\n\n [Prefix.NET]: new Uint8Array([87, 82, 0]),\n [Prefix.NCE]: new Uint8Array([69, 220, 169]),\n [Prefix.B]: new Uint8Array([1, 52]),\n [Prefix.O]: new Uint8Array([5, 116]),\n [Prefix.LO]: new Uint8Array([133, 233]),\n [Prefix.LLO]: new Uint8Array([29, 159, 109]),\n [Prefix.P]: new Uint8Array([2, 170]),\n [Prefix.CO]: new Uint8Array([79, 179]),\n [Prefix.ID]: new Uint8Array([153, 103]),\n\n [Prefix.EXPR]: new Uint8Array([13, 44, 64, 27]),\n // Legacy prefix\n [Prefix.TZ]: new Uint8Array([2, 90, 121]),\n};\n\nexport const prefixLength: { [key: string]: number } = {\n [Prefix.TZ1]: 20,\n [Prefix.TZ2]: 20,\n [Prefix.TZ3]: 20,\n [Prefix.KT]: 20,\n [Prefix.KT1]: 20,\n [Prefix.EDPK]: 32,\n [Prefix.SPPK]: 33,\n [Prefix.P2PK]: 33,\n [Prefix.EDSIG]: 64,\n [Prefix.SPSIG]: 64,\n [Prefix.P2SIG]: 64,\n [Prefix.SIG]: 64,\n [Prefix.NET]: 4,\n [Prefix.B]: 32,\n [Prefix.P]: 32,\n [Prefix.O]: 32\n};\n","import { prefix, prefixLength, Prefix } from './constants';\n\nconst bs58check = require('bs58check');\n\nexport enum ValidationResult {\n NO_PREFIX_MATCHED,\n INVALID_CHECKSUM,\n INVALID_LENGTH,\n VALID,\n}\n\nexport function isValidPrefix(value: any): value is Prefix {\n if (typeof value !== 'string') {\n return false;\n }\n\n return value in prefix;\n}\n /**\n * @description This function is called by the validation functions ([[validateAddress]], [[validateChain]], [[validateContractAddress]], [[validateKeyHash]], [[validateSignature]], [[validatePublicKey]]).\n * Verify if the value has the right prefix or return `NO_PREFIX_MATCHED`,\n * decode the value using base58 and return `INVALID_CHECKSUM` if it fails,\n * check if the length of the value matches the prefix type or return `INVALID_LENGTH`.\n * If all checks pass, return `VALID`.\n *\n * @param value Value to validate\n * @param prefixes prefix the value should have\n */\nfunction validatePrefixedValue(value: any, prefixes: Prefix[]) {\n const match = new RegExp(`^(${prefixes.join('|')})`).exec(value);\n if (!match || match.length === 0) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n const prefixKey = match[0];\n\n if (!isValidPrefix(prefixKey)) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n // Remove annotation from contract address before doing the validation\n const contractAddress = /^(KT1\\w{33})(\\%(.*))?/.exec(value);\n if (contractAddress) {\n value = contractAddress[1];\n }\n\n // decodeUnsafe return undefined if decoding fail\n let decoded = bs58check.decodeUnsafe(value);\n if (!decoded) {\n return ValidationResult.INVALID_CHECKSUM;\n }\n\n decoded = decoded.slice(prefix[prefixKey].length);\n if (decoded.length !== prefixLength[prefixKey]) {\n return ValidationResult.INVALID_LENGTH;\n }\n\n return ValidationResult.VALID;\n}\n\nconst implicitPrefix = [Prefix.TZ1, Prefix.TZ2, Prefix.TZ3];\nconst contractPrefix = [Prefix.KT1];\nconst signaturePrefix = [Prefix.EDSIG, Prefix.P2SIG, Prefix.SPSIG, Prefix.SIG];\nconst pkPrefix = [Prefix.EDPK, Prefix.SPPK, Prefix.P2PK];\n\n /**\n * @description Used to check if an address or a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateAddress } from '@taquito/utils';\n * const pkh = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateAddress(pkh)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, [...implicitPrefix, ...contractPrefix]);\n}\n /**\n * @description Used to check if a chain id is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateChain } from '@taquito/utils';\n * const chainId = 'NetXdQprcVkpaWU'\n * const validation = validateChain(chainId)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateChain(value: any): ValidationResult {\n return validatePrefixedValue(value, [Prefix.NET]);\n}\n /**\n * @description Used to check if a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateContractAddress } from '@taquito/utils';\n * const contractAddress = 'KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC'\n * const validation = validateContractAddress(contractAddress)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateContractAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, contractPrefix);\n}\n /**\n * @description Used to check if a key hash is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateKeyHash } from '@taquito/utils';\n * const keyHashWithoutPrefix = '1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateKeyHash(keyHashWithoutPrefix)\n * console.log(validation)\n * // This example return 0 which correspond to NO_PREFIX_MATCHED\n * ```\n */\nexport function validateKeyHash(value: any): ValidationResult {\n return validatePrefixedValue(value, implicitPrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateSignature } from '@taquito/utils';\n * const signature = 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg'\n * const validation = validateSignature(signature)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateSignature(value: any): ValidationResult {\n return validatePrefixedValue(value, signaturePrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validatePublicKey } from '@taquito/utils';\n * const publicKey = 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g'\n * const validation = validatePublicKey(publicKey)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validatePublicKey(value: any): ValidationResult {\n return validatePrefixedValue(value, pkPrefix);\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\n/* tslint:disable */\nexport const VERSION = {\n \"commitHash\": \"8d7ecc86ce608bff9ee8c6cf0cd7d795263b8bda\",\n \"version\": \"11.0.1\"\n};\n/* tslint:enable */\n","export class InvalidPublicKeyError implements Error {\n public name: string = 'InvalidPublicKeyError';\n constructor(public message: string) {}\n }\n \n export class InvalidSignatureError implements Error {\n public name: string = 'InvalidSignatureError';\n constructor(public message: string) {}\n }\n \n export class InvalidMessageError implements Error {\n public name: string = 'InvalidMessageError';\n constructor(public message: string) {}\n }\n ","import { verify } from '@stablelib/ed25519';\nimport { hash } from '@stablelib/blake2b';\nimport {\n b58cdecode,\n buf2hex,\n hex2buf,\n Prefix,\n prefix,\n validatePublicKey,\n validateSignature,\n ValidationResult\n} from './taquito-utils';\nimport elliptic from 'elliptic';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidMessageError, InvalidPublicKeyError, InvalidSignatureError } from './errors';\n\ntype PkPrefix = Prefix.EDPK | Prefix.SPPK | Prefix.P2PK;\ntype SigPrefix = Prefix.EDSIG | Prefix.SPSIG | Prefix.P2SIG | Prefix.SIG;\n\n/**\n * @description Verify signature of a payload\n *\n * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)\n * @param publicKey The public key to verify the signature against\n * @param signature The signature to verify\n * @returns A boolean indicating if the signature matches\n *\n * @example \n * ```\n * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';\n * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';\n * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'\n * \n * const response = verifySignature(message, pk, sig);\n * ```\n *\n */\nexport function verifySignature(messageBytes: string, publicKey: string, signature: string): boolean {\n const pkPrefix = validatePkAndExtractPrefix(publicKey);\n const sigPrefix = validateSigAndExtractPrefix(signature);\n\n const decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);\n const decodedSig = b58cdecode(signature, prefix[sigPrefix]);\n const bytesHash = hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);\n\n if (pkPrefix === Prefix.EDPK) {\n return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.SPPK) {\n return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.P2PK) {\n return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);\n } else {\n return false;\n }\n}\n\nfunction validateMessageNotEmpty(message: string) {\n if (message === '') {\n throw new InvalidMessageError(`The message provided for verifying signature cannot be empty.`);\n }\n return message;\n}\n\nfunction validatePkAndExtractPrefix(publicKey: string): PkPrefix {\n if (publicKey === '') {\n throw new InvalidPublicKeyError(`The public key provided for verifying signature cannot be empty.`);\n }\n const pkPrefix = publicKey.substring(0, 4);\n const validation = validatePublicKey(publicKey);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid checksum: ${publicKey}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid length: ${publicKey}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidPublicKeyError(`The public key provided has an unsupported prefix: ${pkPrefix}`);\n }\n }\n return pkPrefix as PkPrefix;\n}\n\nfunction validateSigAndExtractPrefix(signature: string): SigPrefix {\n const signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);\n const validation = validateSignature(signature);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidSignatureError(`The signature provided has an invalid checksum: ${signature}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidSignatureError(`The signature provided has an invalid length: ${signature}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidSignatureError(`The signature provided has an unsupported prefix: ${signaturePrefix}`);\n }\n }\n return signaturePrefix as SigPrefix;\n}\n\nfunction verifyEdSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n try {\n return verify(decodedPublicKey, bytesHash, decodedSig);\n } catch (e) {\n return false;\n }\n}\n\nfunction verifySpSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('secp256k1').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifyP2Signature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('p256').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifySpOrP2Sig(decodedSig: Uint8Array, bytesHash: Uint8Array, key: elliptic.ec.KeyPair) {\n const hexSig = buf2hex(toBuffer(decodedSig));\n const match = hexSig.match(/([a-f\\d]{64})/gi);\n if (match) {\n try {\n const [r, s] = match;\n return key.verify(bytesHash, { r, s });\n } catch (e) {\n return false;\n }\n }\n return false;\n}\n","/**\n * @packageDocumentation\n * @module @taquito/utils\n */\n\n/*\n * Some code in this file is originally from sotez and eztz\n * Copyright (c) 2018 Andrew Kishino\n * Copyright (c) 2017 Stephen Andrews\n */\n\nimport { Buffer } from 'buffer';\nimport { prefix } from './constants';\nconst blake = require('blakejs');\nconst bs58check = require('bs58check');\n\nexport * from './validators';\nexport { VERSION } from './version';\n\nexport { prefix, Prefix, prefixLength } from './constants';\n\nexport { verifySignature } from './verify-signature';\n\n/**\n *\n * @description Hash a string using the BLAKE2b algorithm, base58 encode the hash obtained and appends the prefix 'expr' to it\n *\n * @param value Value in hex\n */\nexport function encodeExpr(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix['expr']);\n}\n\n/**\n *\n * @description Return the operation hash of a signed operation \n * @param value Value in hex of a signed operation\n */\n export function encodeOpHash(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix.o);\n}\n\n/**\n *\n * @description Base58 encode a string or a Uint8Array and append a prefix to it\n *\n * @param value Value to base58 encode\n * @param prefix prefix to append to the encoded string\n */\nexport function b58cencode(value: string | Uint8Array, prefix: Uint8Array) {\n const payloadAr = typeof value === 'string' ? Uint8Array.from(Buffer.from(value, 'hex')) : value;\n\n const n = new Uint8Array(prefix.length + payloadAr.length);\n n.set(prefix);\n n.set(payloadAr, prefix.length);\n\n return bs58check.encode(Buffer.from(n.buffer));\n}\n\n/**\n *\n * @description Base58 decode a string and remove the prefix from it\n *\n * @param value Value to base58 decode\n * @param prefix prefix to remove from the decoded string\n */\nexport const b58cdecode = (enc: string, prefixArg: Uint8Array): Uint8Array =>\n bs58check.decode(enc).slice(prefixArg.length);\n\n/**\n *\n * @description Base58 decode a string with predefined prefix\n *\n * @param value Value to base58 decode\n */\nexport function b58decode(payload: string) {\n const buf: Buffer = bs58check.decode(payload);\n\n const prefixMap = {\n [prefix.tz1.toString()]: '0000',\n [prefix.tz2.toString()]: '0001',\n [prefix.tz3.toString()]: '0002',\n };\n\n let pref = prefixMap[new Uint8Array(buf.slice(0, 3)).toString()];\n if (pref) {\n // tz addresses\n const hex = buf2hex(buf.slice(3));\n return pref + hex;\n } else {\n // other (kt addresses)\n return '01' + buf2hex(buf.slice(3, 42)) + '00';\n }\n}\n\n/**\n *\n * @description Base58 encode a public key using predefined prefix\n *\n * @param value Public Key to base58 encode\n */\nexport function encodePubKey(value: string) {\n if (value.substring(0, 2) === '00') {\n const pref: { [key: string]: Uint8Array } = {\n '0000': prefix.tz1,\n '0001': prefix.tz2,\n '0002': prefix.tz3,\n };\n\n return b58cencode(value.substring(4), pref[value.substring(0, 4)]);\n }\n\n return b58cencode(value.substring(2, 42), prefix.KT);\n}\n\n/**\n *\n * @description Base58 encode a key according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKey(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([13, 15, 37, 217]),\n '01': new Uint8Array([3, 254, 226, 86]),\n '02': new Uint8Array([3, 178, 139, 127]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Base58 encode a key hash according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKeyHash(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([6, 161, 159]),\n '01': new Uint8Array([6, 161, 161]),\n '02': new Uint8Array([6, 161, 164]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Convert an hex string to a Uint8Array\n *\n * @param hex Hex string to convert\n */\nexport const hex2buf = (hex: string): Uint8Array => {\n return new Uint8Array(hex.match(/[\\da-f]{2}/gi)!.map((h) => parseInt(h, 16)));\n};\n\n/**\n *\n * @description Merge 2 buffers together\n *\n * @param b1 First buffer\n * @param b2 Second buffer\n */\nexport const mergebuf = (b1: Uint8Array, b2: Uint8Array): Uint8Array => {\n const r = new Uint8Array(b1.length + b2.length);\n r.set(b1);\n r.set(b2, b1.length);\n return r;\n};\n\n/**\n *\n * @description Flatten a michelson json representation to an array\n *\n * @param s michelson json\n */\nexport const mic2arr = function me2(s: any): any {\n let ret: any = [];\n if (Object.prototype.hasOwnProperty.call(s, 'prim')) {\n if (s.prim === 'Pair') {\n ret.push(me2(s.args[0]));\n ret = ret.concat(me2(s.args[1]));\n } else if (s.prim === 'Elt') {\n ret = {\n key: me2(s.args[0]),\n val: me2(s.args[1]),\n };\n } else if (s.prim === 'True') {\n ret = true;\n } else if (s.prim === 'False') {\n ret = false;\n }\n } else if (Array.isArray(s)) {\n const sc = s.length;\n for (let i = 0; i < sc; i++) {\n const n = me2(s[i]);\n if (typeof n.key !== 'undefined') {\n if (Array.isArray(ret)) {\n ret = {\n keys: [],\n vals: [],\n };\n }\n ret.keys.push(n.key);\n ret.vals.push(n.val);\n } else {\n ret.push(n);\n }\n }\n } else if (Object.prototype.hasOwnProperty.call(s, 'string')) {\n ret = s.string;\n } else if (Object.prototype.hasOwnProperty.call(s, 'int')) {\n ret = parseInt(s.int, 10);\n } else {\n ret = s;\n }\n return ret;\n};\n\n/**\n *\n * @description Convert a buffer to an hex string\n *\n * @param buffer Buffer to convert\n */\nexport const buf2hex = (buffer: Buffer): string => {\n const byteArray = new Uint8Array(buffer);\n const hexParts: string[] = [];\n byteArray.forEach((byte: any) => {\n const hex = byte.toString(16);\n const paddedHex = `00${hex}`.slice(-2);\n hexParts.push(paddedHex);\n });\n return hexParts.join('');\n};\n\n/**\n *\n * @description Convert a string to bytes\n *\n * @param str String to convert\n */\nexport function char2Bytes(str: string) {\n return Buffer.from(str, 'utf8').toString('hex');\n}\n\n/**\n *\n * @description Convert bytes to a string\n *\n * @param str Bytes to convert\n */\nexport function bytes2Char(hex: string): string {\n return Buffer.from(hex2buf(hex)).toString('utf8');\n}\n"],"names":["bs58check"],"mappings":";;;;;;;IAAY;AAAZ,WAAY,MAAM;IAChB,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,mBAAS,CAAA;IACT,qBAAW,CAAA;IAEX,yBAAe,CAAA;IACf,uBAAa,CAAA;IACb,uBAAa,CAAA;IAEb,uBAAa,CAAA;IACb,uBAAa,CAAA;IACb,uBAAa,CAAA;IAEb,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,yBAAe,CAAA;IAEf,uBAAa,CAAA;IACb,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,qBAAW,CAAA;IAEX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,iBAAO,CAAA;IACP,iBAAO,CAAA;IACP,mBAAS,CAAA;IACT,qBAAW,CAAA;IACX,iBAAO,CAAA;IACP,mBAAS,CAAA;IACT,mBAAS,CAAA;IAET,uBAAa,CAAA;IACb,mBAAS,CAAA;AACX,CAAC,EArCW,MAAM,KAAN,MAAM,QAqCjB;IAEY,MAAM;IACjB,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACzC,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAE1C,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAChD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAChD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACpD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9D,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAE1C,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,GAAC,MAAM,CAAC,CAAC,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,GAAC,MAAM,CAAC,CAAC,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,GAAC,MAAM,CAAC,CAAC,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvC,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;;IAE/C,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACzC;IAEW,YAAY;IACvB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,EAAE,IAAG,EAAE;IACf,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,IAAI,IAAG,EAAE;IACjB,GAAC,MAAM,CAAC,IAAI,IAAG,EAAE;IACjB,GAAC,MAAM,CAAC,IAAI,IAAG,EAAE;IACjB,GAAC,MAAM,CAAC,KAAK,IAAG,EAAE;IAClB,GAAC,MAAM,CAAC,KAAK,IAAG,EAAE;IAClB,GAAC,MAAM,CAAC,KAAK,IAAG,EAAE;IAClB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,GAAG,IAAG,CAAC;IACf,GAAC,MAAM,CAAC,CAAC,IAAG,EAAE;IACd,GAAC,MAAM,CAAC,CAAC,IAAG,EAAE;IACd,GAAC,MAAM,CAAC,CAAC,IAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FhB,IAAMA,WAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3B;AAAZ,WAAY,gBAAgB;IAC1B,iFAAiB,CAAA;IACjB,+EAAgB,CAAA;IAChB,2EAAc,CAAA;IACd,yDAAK,CAAA;AACP,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;SAEe,aAAa,CAAC,KAAU;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,KAAK,IAAI,MAAM,CAAC;AACzB,CAAC;AACC;;;;;;;;;;AAUF,SAAS,qBAAqB,CAAC,KAAU,EAAE,QAAkB;IAC3D,IAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;KAC3C;IAED,IAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;KAC3C;;IAGD,IAAM,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,eAAe,EAAE;QACnB,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;KAC5B;;IAGD,IAAI,OAAO,GAAGA,WAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;KAC1C;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,CAAC,EAAE;QAC9C,OAAO,gBAAgB,CAAC,cAAc,CAAC;KACxC;IAED,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAChC,CAAC;AAED,IAAM,cAAc,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5D,IAAM,cAAc,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,IAAM,eAAe,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/E,IAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;SAec,eAAe,CAAC,KAAU;IACxC,OAAO,qBAAqB,CAAC,KAAK,WAAM,cAAc,EAAK,cAAc,EAAE,CAAC;AAC9E,CAAC;AACC;;;;;;;;;;;;;;;SAec,aAAa,CAAC,KAAU;IACtC,OAAO,qBAAqB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AACC;;;;;;;;;;;;;;;SAec,uBAAuB,CAAC,KAAU;IAChD,OAAO,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC;AACC;;;;;;;;;;;;;;;SAec,eAAe,CAAC,KAAU;IACxC,OAAO,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC;AACC;;;;;;;;;;;;;;;SAec,iBAAiB,CAAC,KAAU;IAC1C,OAAO,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC;AACC;;;;;;;;;;;;;;;SAec,iBAAiB,CAAC,KAAU;IAC1C,OAAO,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAChD;;AC3KA;AACA;IACa,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,QAAQ;EACrB;AACF;;ACPA;IAEI,+BAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAW,uBAAuB,CAAC;KACR;IACxC,4BAAC;AAAD,CAAC,IAAA;AAED;IAEE,+BAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAW,uBAAuB,CAAC;KACR;IACxC,4BAAC;AAAD,CAAC,IAAA;AAED;IAEE,6BAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAW,qBAAqB,CAAC;KACN;IACxC,0BAAC;AAAD,CAAC;;ACMH;;;;;;;;;;;;;;;;;;SAkBgB,eAAe,CAAC,YAAoB,EAAE,SAAiB,EAAE,SAAiB;IACtF,IAAM,QAAQ,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACvD,IAAM,SAAS,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,IAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3E,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;QAC1B,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;QACjC,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;QACjC,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC5C,IAAI,OAAO,KAAK,EAAE,EAAE;QAChB,MAAM,IAAI,mBAAmB,CAAC,+DAA+D,CAAC,CAAC;KAClG;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,0BAA0B,CAAC,SAAiB;IACjD,IAAI,SAAS,KAAK,EAAE,EAAE;QAClB,MAAM,IAAI,qBAAqB,CAAC,kEAAkE,CAAC,CAAC;KACvG;IACD,IAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,gBAAgB,CAAC,KAAK,EAAE;QACvC,IAAI,UAAU,KAAK,gBAAgB,CAAC,gBAAgB,EAAE;YAClD,MAAM,IAAI,qBAAqB,CAAC,sDAAoD,SAAW,CAAC,CAAC;SACpG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,cAAc,EAAE;YACvD,MAAM,IAAI,qBAAqB,CAAC,oDAAkD,SAAW,CAAC,CAAC;SAClG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,iBAAiB,EAAE;YAC1D,MAAM,IAAI,qBAAqB,CAAC,wDAAsD,QAAU,CAAC,CAAC;SACrG;KACJ;IACD,OAAO,QAAoB,CAAC;AAChC,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAiB;IAClD,IAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtG,IAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,gBAAgB,CAAC,KAAK,EAAE;QACvC,IAAI,UAAU,KAAK,gBAAgB,CAAC,gBAAgB,EAAE;YAClD,MAAM,IAAI,qBAAqB,CAAC,qDAAmD,SAAW,CAAC,CAAC;SACnG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,cAAc,EAAE;YACvD,MAAM,IAAI,qBAAqB,CAAC,mDAAiD,SAAW,CAAC,CAAC;SACjG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,iBAAiB,EAAE;YAC1D,MAAM,IAAI,qBAAqB,CAAC,uDAAqD,eAAiB,CAAC,CAAC;SAC3G;KACJ;IACD,OAAO,eAA4B,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsB,EAAE,SAAqB,EAAE,gBAA4B;IAClG,IAAI;QACA,OAAO,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;KAC1D;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsB,EAAE,SAAqB,EAAE,gBAA4B;IAClG,IAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzE,OAAO,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsB,EAAE,SAAqB,EAAE,gBAA4B;IAClG,IAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACpE,OAAO,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,UAAsB,EAAE,SAAqB,EAAE,GAAwB;IAC5F,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9C,IAAI,KAAK,EAAE;QACP,IAAI;YACM,IAAA,KAAA,OAAS,KAAK,IAAA,EAAb,CAAC,QAAA,EAAE,CAAC,QAAS,CAAC;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,KAAK,CAAC;AACjB;;AC9HA;;;;AAaA,IAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,IAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AASvC;;;;;;SAMgB,UAAU,CAAC,KAAa;IACtC,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;SAKiB,YAAY,CAAC,KAAa;IACzC,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;SAOgB,UAAU,CAAC,KAA0B,EAAE,MAAkB;IACvE,IAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAEjG,IAAM,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACd,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEhC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;IAOa,UAAU,GAAG,UAAC,GAAW,EAAE,SAAqB;IAC3D,OAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAA7C,EAA8C;AAEhD;;;;;;SAMgB,SAAS,CAAC,OAAe;;IACvC,IAAM,GAAG,GAAW,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAM,SAAS;QACb,GAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAG,MAAM;QAC/B,GAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAG,MAAM;QAC/B,GAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAG,MAAM;WAChC,CAAC;IAEF,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,IAAI,IAAI,EAAE;;QAER,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,GAAG,GAAG,CAAC;KACnB;SAAM;;QAEL,OAAO,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;KAChD;AACH,CAAC;AAED;;;;;;SAMgB,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QAClC,IAAM,IAAI,GAAkC;YAC1C,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC,GAAG;SACnB,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;SAMgB,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACpB,IAAM,IAAI,GAAkC;YAC1C,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACzC,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;AACH,CAAC;AAED;;;;;;SAMgB,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACpB,IAAM,IAAI,GAAkC;YAC1C,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACpC,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;AACH,CAAC;AAED;;;;;;IAMa,OAAO,GAAG,UAAC,GAAW;IACjC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAE,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAA,CAAC,CAAC,CAAC;AAChF,EAAE;AAEF;;;;;;;IAOa,QAAQ,GAAG,UAAC,EAAc,EAAE,EAAc;IACrD,IAAM,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACV,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC;AACX,EAAE;AAEF;;;;;;IAMa,OAAO,GAAG,SAAS,GAAG,CAAC,CAAM;IACxC,IAAI,GAAG,GAAQ,EAAE,CAAC;IAClB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;QACnD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YACrB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;YAC3B,GAAG,GAAG;gBACJ,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB,CAAC;SACH;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YAC5B,GAAG,GAAG,IAAI,CAAC;SACZ;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;YAC7B,GAAG,GAAG,KAAK,CAAC;SACb;KACF;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3B,IAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;gBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACtB,GAAG,GAAG;wBACJ,IAAI,EAAE,EAAE;wBACR,IAAI,EAAE,EAAE;qBACT,CAAC;iBACH;gBACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACtB;iBAAM;gBACL,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb;SACF;KACF;SAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC5D,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;KAChB;SAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;QACzD,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;KAC3B;SAAM;QACL,GAAG,GAAG,CAAC,CAAC;KACT;IACD,OAAO,GAAG,CAAC;AACb,EAAE;AAEF;;;;;;IAMa,OAAO,GAAG,UAAC,MAAc;IACpC,IAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,IAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,SAAS,CAAC,OAAO,CAAC,UAAC,IAAS;QAC1B,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAM,SAAS,GAAG,CAAA,OAAK,GAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC1B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,EAAE;AAEF;;;;;;SAMgB,UAAU,CAAC,GAAW;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;SAMgB,UAAU,CAAC,GAAW;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD;;;;"}
1
+ {"version":3,"file":"taquito-utils.es5.js","sources":["../src/constants.ts","../src/errors.ts","../src/verify-signature.ts","../src/validators.ts","../src/version.ts","../src/taquito-utils.ts"],"sourcesContent":["export enum Prefix {\n TZ1 = 'tz1',\n TZ2 = 'tz2',\n TZ3 = 'tz3',\n KT = 'KT',\n KT1 = 'KT1',\n\n EDSK2 = 'edsk2',\n SPSK = 'spsk',\n P2SK = 'p2sk',\n\n EDPK = 'edpk',\n SPPK = 'sppk',\n P2PK = 'p2pk',\n\n EDESK = 'edesk',\n SPESK = 'spesk',\n P2ESK = 'p2esk',\n\n EDSK = 'edsk',\n EDSIG = 'edsig',\n SPSIG = 'spsig',\n P2SIG = 'p2sig',\n SIG = 'sig',\n\n NET = 'Net',\n NCE = 'nce',\n B = 'b',\n O = 'o',\n LO = 'Lo',\n LLO = 'LLo',\n P = 'P',\n CO = 'Co',\n ID = 'id',\n\n EXPR = 'expr',\n TZ = 'TZ',\n}\n\nexport const prefix = {\n [Prefix.TZ1]: new Uint8Array([6, 161, 159]),\n [Prefix.TZ2]: new Uint8Array([6, 161, 161]),\n [Prefix.TZ3]: new Uint8Array([6, 161, 164]),\n [Prefix.KT]: new Uint8Array([2, 90, 121]),\n [Prefix.KT1]: new Uint8Array([2, 90, 121]),\n\n [Prefix.EDSK]: new Uint8Array([43, 246, 78, 7]),\n [Prefix.EDSK2]: new Uint8Array([13, 15, 58, 7]),\n [Prefix.SPSK]: new Uint8Array([17, 162, 224, 201]),\n [Prefix.P2SK]: new Uint8Array([16, 81, 238, 189]),\n\n [Prefix.EDPK]: new Uint8Array([13, 15, 37, 217]),\n [Prefix.SPPK]: new Uint8Array([3, 254, 226, 86]),\n [Prefix.P2PK]: new Uint8Array([3, 178, 139, 127]),\n\n [Prefix.EDESK]: new Uint8Array([7, 90, 60, 179, 41]),\n [Prefix.SPESK]: new Uint8Array([0x09, 0xed, 0xf1, 0xae, 0x96]),\n [Prefix.P2ESK]: new Uint8Array([0x09, 0x30, 0x39, 0x73, 0xab]),\n\n [Prefix.EDSIG]: new Uint8Array([9, 245, 205, 134, 18]),\n [Prefix.SPSIG]: new Uint8Array([13, 115, 101, 19, 63]),\n [Prefix.P2SIG]: new Uint8Array([54, 240, 44, 52]),\n [Prefix.SIG]: new Uint8Array([4, 130, 43]),\n\n [Prefix.NET]: new Uint8Array([87, 82, 0]),\n [Prefix.NCE]: new Uint8Array([69, 220, 169]),\n [Prefix.B]: new Uint8Array([1, 52]),\n [Prefix.O]: new Uint8Array([5, 116]),\n [Prefix.LO]: new Uint8Array([133, 233]),\n [Prefix.LLO]: new Uint8Array([29, 159, 109]),\n [Prefix.P]: new Uint8Array([2, 170]),\n [Prefix.CO]: new Uint8Array([79, 179]),\n [Prefix.ID]: new Uint8Array([153, 103]),\n\n [Prefix.EXPR]: new Uint8Array([13, 44, 64, 27]),\n // Legacy prefix\n [Prefix.TZ]: new Uint8Array([2, 90, 121]),\n};\n\nexport const prefixLength: { [key: string]: number } = {\n [Prefix.TZ1]: 20,\n [Prefix.TZ2]: 20,\n [Prefix.TZ3]: 20,\n [Prefix.KT]: 20,\n [Prefix.KT1]: 20,\n [Prefix.EDPK]: 32,\n [Prefix.SPPK]: 33,\n [Prefix.P2PK]: 33,\n [Prefix.EDSIG]: 64,\n [Prefix.SPSIG]: 64,\n [Prefix.P2SIG]: 64,\n [Prefix.SIG]: 64,\n [Prefix.NET]: 4,\n [Prefix.B]: 32,\n [Prefix.P]: 32,\n [Prefix.O]: 32\n};\n","export class InvalidPublicKeyError implements Error {\n public name: string = 'InvalidPublicKeyError';\n constructor(public message: string) {}\n }\n \n export class InvalidSignatureError implements Error {\n public name: string = 'InvalidSignatureError';\n constructor(public message: string) {}\n }\n \n export class InvalidMessageError implements Error {\n public name: string = 'InvalidMessageError';\n constructor(public message: string) {}\n }\n ","import { verify } from '@stablelib/ed25519';\nimport { hash } from '@stablelib/blake2b';\nimport {\n b58cdecode,\n buf2hex,\n hex2buf,\n Prefix,\n prefix,\n validatePublicKey,\n validateSignature,\n ValidationResult\n} from './taquito-utils';\nimport elliptic from 'elliptic';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidMessageError, InvalidPublicKeyError, InvalidSignatureError } from './errors';\n\ntype PkPrefix = Prefix.EDPK | Prefix.SPPK | Prefix.P2PK;\ntype SigPrefix = Prefix.EDSIG | Prefix.SPSIG | Prefix.P2SIG | Prefix.SIG;\n\n/**\n * @description Verify signature of a payload\n *\n * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)\n * @param publicKey The public key to verify the signature against\n * @param signature The signature to verify\n * @returns A boolean indicating if the signature matches\n *\n * @example \n * ```\n * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';\n * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';\n * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'\n * \n * const response = verifySignature(message, pk, sig);\n * ```\n *\n */\nexport function verifySignature(messageBytes: string, publicKey: string, signature: string): boolean {\n const pkPrefix = validatePkAndExtractPrefix(publicKey);\n const sigPrefix = validateSigAndExtractPrefix(signature);\n\n const decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);\n const decodedSig = b58cdecode(signature, prefix[sigPrefix]);\n const bytesHash = hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);\n\n if (pkPrefix === Prefix.EDPK) {\n return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.SPPK) {\n return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.P2PK) {\n return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);\n } else {\n return false;\n }\n}\n\nfunction validateMessageNotEmpty(message: string) {\n if (message === '') {\n throw new InvalidMessageError(`The message provided for verifying signature cannot be empty.`);\n }\n return message;\n}\n\nexport function validatePkAndExtractPrefix(publicKey: string): PkPrefix {\n if (publicKey === '') {\n throw new InvalidPublicKeyError(`The public key provided cannot be empty.`);\n }\n const pkPrefix = publicKey.substring(0, 4);\n const validation = validatePublicKey(publicKey);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid checksum: ${publicKey}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid length: ${publicKey}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidPublicKeyError(`The public key provided has an unsupported prefix: ${pkPrefix}`);\n }\n }\n return pkPrefix as PkPrefix;\n}\n\nfunction validateSigAndExtractPrefix(signature: string): SigPrefix {\n const signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);\n const validation = validateSignature(signature);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidSignatureError(`The signature provided has an invalid checksum: ${signature}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidSignatureError(`The signature provided has an invalid length: ${signature}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidSignatureError(`The signature provided has an unsupported prefix: ${signaturePrefix}`);\n }\n }\n return signaturePrefix as SigPrefix;\n}\n\nfunction verifyEdSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n try {\n return verify(decodedPublicKey, bytesHash, decodedSig);\n } catch (e) {\n return false;\n }\n}\n\nfunction verifySpSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('secp256k1').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifyP2Signature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('p256').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifySpOrP2Sig(decodedSig: Uint8Array, bytesHash: Uint8Array, key: elliptic.ec.KeyPair) {\n const hexSig = buf2hex(toBuffer(decodedSig));\n const match = hexSig.match(/([a-f\\d]{64})/gi);\n if (match) {\n try {\n const [r, s] = match;\n return key.verify(bytesHash, { r, s });\n } catch (e) {\n return false;\n }\n }\n return false;\n}\n","import { prefix, prefixLength, Prefix } from './constants';\n\nconst bs58check = require('bs58check');\n\nexport enum ValidationResult {\n NO_PREFIX_MATCHED,\n INVALID_CHECKSUM,\n INVALID_LENGTH,\n VALID,\n}\n\nexport function isValidPrefix(value: any): value is Prefix {\n if (typeof value !== 'string') {\n return false;\n }\n\n return value in prefix;\n}\n /**\n * @description This function is called by the validation functions ([[validateAddress]], [[validateChain]], [[validateContractAddress]], [[validateKeyHash]], [[validateSignature]], [[validatePublicKey]]).\n * Verify if the value has the right prefix or return `NO_PREFIX_MATCHED`,\n * decode the value using base58 and return `INVALID_CHECKSUM` if it fails,\n * check if the length of the value matches the prefix type or return `INVALID_LENGTH`.\n * If all checks pass, return `VALID`.\n *\n * @param value Value to validate\n * @param prefixes prefix the value should have\n */\nfunction validatePrefixedValue(value: any, prefixes: Prefix[]) {\n const match = new RegExp(`^(${prefixes.join('|')})`).exec(value);\n if (!match || match.length === 0) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n const prefixKey = match[0];\n\n if (!isValidPrefix(prefixKey)) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n // Remove annotation from contract address before doing the validation\n const contractAddress = /^(KT1\\w{33})(\\%(.*))?/.exec(value);\n if (contractAddress) {\n value = contractAddress[1];\n }\n\n // decodeUnsafe return undefined if decoding fail\n let decoded = bs58check.decodeUnsafe(value);\n if (!decoded) {\n return ValidationResult.INVALID_CHECKSUM;\n }\n\n decoded = decoded.slice(prefix[prefixKey].length);\n if (decoded.length !== prefixLength[prefixKey]) {\n return ValidationResult.INVALID_LENGTH;\n }\n\n return ValidationResult.VALID;\n}\n\nconst implicitPrefix = [Prefix.TZ1, Prefix.TZ2, Prefix.TZ3];\nconst contractPrefix = [Prefix.KT1];\nconst signaturePrefix = [Prefix.EDSIG, Prefix.P2SIG, Prefix.SPSIG, Prefix.SIG];\nconst pkPrefix = [Prefix.EDPK, Prefix.SPPK, Prefix.P2PK];\n\n /**\n * @description Used to check if an address or a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateAddress } from '@taquito/utils';\n * const pkh = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateAddress(pkh)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, [...implicitPrefix, ...contractPrefix]);\n}\n /**\n * @description Used to check if a chain id is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateChain } from '@taquito/utils';\n * const chainId = 'NetXdQprcVkpaWU'\n * const validation = validateChain(chainId)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateChain(value: any): ValidationResult {\n return validatePrefixedValue(value, [Prefix.NET]);\n}\n /**\n * @description Used to check if a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateContractAddress } from '@taquito/utils';\n * const contractAddress = 'KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC'\n * const validation = validateContractAddress(contractAddress)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateContractAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, contractPrefix);\n}\n /**\n * @description Used to check if a key hash is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateKeyHash } from '@taquito/utils';\n * const keyHashWithoutPrefix = '1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateKeyHash(keyHashWithoutPrefix)\n * console.log(validation)\n * // This example return 0 which correspond to NO_PREFIX_MATCHED\n * ```\n */\nexport function validateKeyHash(value: any): ValidationResult {\n return validatePrefixedValue(value, implicitPrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateSignature } from '@taquito/utils';\n * const signature = 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg'\n * const validation = validateSignature(signature)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateSignature(value: any): ValidationResult {\n return validatePrefixedValue(value, signaturePrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validatePublicKey } from '@taquito/utils';\n * const publicKey = 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g'\n * const validation = validatePublicKey(publicKey)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validatePublicKey(value: any): ValidationResult {\n return validatePrefixedValue(value, pkPrefix);\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\n/* tslint:disable */\nexport const VERSION = {\n \"commitHash\": \"e4fb2f0ab9a459640e474bf65ae4578f4b948c63\",\n \"version\": \"11.0.2\"\n};\n/* tslint:enable */\n","/**\n * @packageDocumentation\n * @module @taquito/utils\n */\n\n/*\n * Some code in this file is originally from sotez and eztz\n * Copyright (c) 2018 Andrew Kishino\n * Copyright (c) 2017 Stephen Andrews\n */\n\nimport { Buffer } from 'buffer';\nimport { Prefix, prefix, prefixLength } from './constants';\nimport { validatePkAndExtractPrefix } from './verify-signature'\nimport { hash } from '@stablelib/blake2b'\nconst blake = require('blakejs');\nconst bs58check = require('bs58check');\n\nexport * from './validators';\nexport { VERSION } from './version';\n\nexport { prefix, Prefix, prefixLength } from './constants';\n\nexport { verifySignature, validatePkAndExtractPrefix} from './verify-signature';\n\n/**\n *\n * @description Hash a string using the BLAKE2b algorithm, base58 encode the hash obtained and appends the prefix 'expr' to it\n *\n * @param value Value in hex\n */\nexport function encodeExpr(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix['expr']);\n}\n\n/**\n *\n * @description Return the operation hash of a signed operation \n * @param value Value in hex of a signed operation\n */\n export function encodeOpHash(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix.o);\n}\n\n/**\n *\n * @description Base58 encode a string or a Uint8Array and append a prefix to it\n *\n * @param value Value to base58 encode\n * @param prefix prefix to append to the encoded string\n */\nexport function b58cencode(value: string | Uint8Array, prefix: Uint8Array) {\n const payloadAr = typeof value === 'string' ? Uint8Array.from(Buffer.from(value, 'hex')) : value;\n\n const n = new Uint8Array(prefix.length + payloadAr.length);\n n.set(prefix);\n n.set(payloadAr, prefix.length);\n\n return bs58check.encode(Buffer.from(n.buffer));\n}\n\n/**\n *\n * @description Base58 decode a string and remove the prefix from it\n *\n * @param value Value to base58 decode\n * @param prefix prefix to remove from the decoded string\n */\nexport const b58cdecode = (enc: string, prefixArg: Uint8Array): Uint8Array =>\n bs58check.decode(enc).slice(prefixArg.length);\n\n/**\n *\n * @description Base58 decode a string with predefined prefix\n *\n * @param value Value to base58 decode\n */\nexport function b58decode(payload: string) {\n const buf: Buffer = bs58check.decode(payload);\n\n const prefixMap = {\n [prefix.tz1.toString()]: '0000',\n [prefix.tz2.toString()]: '0001',\n [prefix.tz3.toString()]: '0002',\n };\n\n let pref = prefixMap[new Uint8Array(buf.slice(0, 3)).toString()];\n if (pref) {\n // tz addresses\n const hex = buf2hex(buf.slice(3));\n return pref + hex;\n } else {\n // other (kt addresses)\n return '01' + buf2hex(buf.slice(3, 42)) + '00';\n }\n}\n\n/**\n *\n * @description Base58 encode a public key using predefined prefix\n *\n * @param value Public Key to base58 encode\n */\nexport function encodePubKey(value: string) {\n if (value.substring(0, 2) === '00') {\n const pref: { [key: string]: Uint8Array } = {\n '0000': prefix.tz1,\n '0001': prefix.tz2,\n '0002': prefix.tz3,\n };\n\n return b58cencode(value.substring(4), pref[value.substring(0, 4)]);\n }\n\n return b58cencode(value.substring(2, 42), prefix.KT);\n}\n\n/**\n *\n * @description Base58 encode a key according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKey(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([13, 15, 37, 217]),\n '01': new Uint8Array([3, 254, 226, 86]),\n '02': new Uint8Array([3, 178, 139, 127]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Base58 encode a key hash according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKeyHash(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([6, 161, 159]),\n '01': new Uint8Array([6, 161, 161]),\n '02': new Uint8Array([6, 161, 164]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Convert an hex string to a Uint8Array\n *\n * @param hex Hex string to convert\n */\nexport const hex2buf = (hex: string): Uint8Array => {\n return new Uint8Array(hex.match(/[\\da-f]{2}/gi)!.map((h) => parseInt(h, 16)));\n};\n\n/**\n *\n * @description Merge 2 buffers together\n *\n * @param b1 First buffer\n * @param b2 Second buffer\n */\nexport const mergebuf = (b1: Uint8Array, b2: Uint8Array): Uint8Array => {\n const r = new Uint8Array(b1.length + b2.length);\n r.set(b1);\n r.set(b2, b1.length);\n return r;\n};\n\n/**\n *\n * @description Flatten a michelson json representation to an array\n *\n * @param s michelson json\n */\nexport const mic2arr = function me2(s: any): any {\n let ret: any = [];\n if (Object.prototype.hasOwnProperty.call(s, 'prim')) {\n if (s.prim === 'Pair') {\n ret.push(me2(s.args[0]));\n ret = ret.concat(me2(s.args[1]));\n } else if (s.prim === 'Elt') {\n ret = {\n key: me2(s.args[0]),\n val: me2(s.args[1]),\n };\n } else if (s.prim === 'True') {\n ret = true;\n } else if (s.prim === 'False') {\n ret = false;\n }\n } else if (Array.isArray(s)) {\n const sc = s.length;\n for (let i = 0; i < sc; i++) {\n const n = me2(s[i]);\n if (typeof n.key !== 'undefined') {\n if (Array.isArray(ret)) {\n ret = {\n keys: [],\n vals: [],\n };\n }\n ret.keys.push(n.key);\n ret.vals.push(n.val);\n } else {\n ret.push(n);\n }\n }\n } else if (Object.prototype.hasOwnProperty.call(s, 'string')) {\n ret = s.string;\n } else if (Object.prototype.hasOwnProperty.call(s, 'int')) {\n ret = parseInt(s.int, 10);\n } else {\n ret = s;\n }\n return ret;\n};\n\n/**\n *\n * @description Convert a buffer to an hex string\n *\n * @param buffer Buffer to convert\n */\nexport const buf2hex = (buffer: Buffer): string => {\n const byteArray = new Uint8Array(buffer);\n const hexParts: string[] = [];\n byteArray.forEach((byte: any) => {\n const hex = byte.toString(16);\n const paddedHex = `00${hex}`.slice(-2);\n hexParts.push(paddedHex);\n });\n return hexParts.join('');\n};\n\n/**\n * \n * @description Gets Tezos address (PKH) from Public Key\n * \n * @param publicKey Public Key\n * @returns A string of the Tezos address (PKH) that was derived from the given Public Key\n */\n export const getPkhfromPk = (publicKey: string): string => {\n let encodingPrefix;\n let prefixLen;\n\n const keyPrefix = validatePkAndExtractPrefix(publicKey);\n const decoded = b58cdecode(publicKey, prefix[keyPrefix]);\n\n switch (keyPrefix) {\n case Prefix.EDPK:\n encodingPrefix = prefix[Prefix.TZ1];\n prefixLen = prefixLength[Prefix.TZ1];\n break;\n case Prefix.SPPK:\n encodingPrefix = prefix[Prefix.TZ2];\n prefixLen = prefixLength[Prefix.TZ2];\n break;\n case Prefix.P2PK:\n encodingPrefix = prefix[Prefix.TZ3];\n prefixLen = prefixLength[Prefix.TZ3];\n break;\n }\n\n const hashed = hash(decoded, prefixLen);\n const result = b58cencode(hashed, encodingPrefix);\n\n return result;\n}\n\n/**\n *\n * @description Convert a string to bytes\n *\n * @param str String to convert\n */\nexport function char2Bytes(str: string) {\n return Buffer.from(str, 'utf8').toString('hex');\n}\n\n/**\n *\n * @description Convert bytes to a string\n *\n * @param str Bytes to convert\n */\nexport function bytes2Char(hex: string): string {\n return Buffer.from(hex2buf(hex)).toString('utf8');\n}\n"],"names":["bs58check"],"mappings":";;;;;;;IAAY;AAAZ,WAAY,MAAM;IAChB,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,mBAAS,CAAA;IACT,qBAAW,CAAA;IAEX,yBAAe,CAAA;IACf,uBAAa,CAAA;IACb,uBAAa,CAAA;IAEb,uBAAa,CAAA;IACb,uBAAa,CAAA;IACb,uBAAa,CAAA;IAEb,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,yBAAe,CAAA;IAEf,uBAAa,CAAA;IACb,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,qBAAW,CAAA;IAEX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,iBAAO,CAAA;IACP,iBAAO,CAAA;IACP,mBAAS,CAAA;IACT,qBAAW,CAAA;IACX,iBAAO,CAAA;IACP,mBAAS,CAAA;IACT,mBAAS,CAAA;IAET,uBAAa,CAAA;IACb,mBAAS,CAAA;AACX,CAAC,EArCW,MAAM,KAAN,MAAM,QAqCjB;IAEY,MAAM;IACjB,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACzC,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAE1C,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAChD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAChD,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACpD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9D,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,GAAC,MAAM,CAAC,KAAK,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAE1C,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,GAAC,MAAM,CAAC,CAAC,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,GAAC,MAAM,CAAC,CAAC,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,GAAC,MAAM,CAAC,GAAG,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,GAAC,MAAM,CAAC,CAAC,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvC,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;;IAE/C,GAAC,MAAM,CAAC,EAAE,IAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACzC;IAEW,YAAY;IACvB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,EAAE,IAAG,EAAE;IACf,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,IAAI,IAAG,EAAE;IACjB,GAAC,MAAM,CAAC,IAAI,IAAG,EAAE;IACjB,GAAC,MAAM,CAAC,IAAI,IAAG,EAAE;IACjB,GAAC,MAAM,CAAC,KAAK,IAAG,EAAE;IAClB,GAAC,MAAM,CAAC,KAAK,IAAG,EAAE;IAClB,GAAC,MAAM,CAAC,KAAK,IAAG,EAAE;IAClB,GAAC,MAAM,CAAC,GAAG,IAAG,EAAE;IAChB,GAAC,MAAM,CAAC,GAAG,IAAG,CAAC;IACf,GAAC,MAAM,CAAC,CAAC,IAAG,EAAE;IACd,GAAC,MAAM,CAAC,CAAC,IAAG,EAAE;IACd,GAAC,MAAM,CAAC,CAAC,IAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/FhB;IAEI,+BAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAW,uBAAuB,CAAC;KACR;IACxC,4BAAC;AAAD,CAAC,IAAA;AAED;IAEE,+BAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAW,uBAAuB,CAAC;KACR;IACxC,4BAAC;AAAD,CAAC,IAAA;AAED;IAEE,6BAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAD3B,SAAI,GAAW,qBAAqB,CAAC;KACN;IACxC,0BAAC;AAAD,CAAC;;ACMH;;;;;;;;;;;;;;;;;;SAkBgB,eAAe,CAAC,YAAoB,EAAE,SAAiB,EAAE,SAAiB;IACtF,IAAM,QAAQ,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACvD,IAAM,SAAS,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,IAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3E,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;QAC1B,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;QACjC,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;QACjC,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC5C,IAAI,OAAO,KAAK,EAAE,EAAE;QAChB,MAAM,IAAI,mBAAmB,CAAC,+DAA+D,CAAC,CAAC;KAClG;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;SAEe,0BAA0B,CAAC,SAAiB;IACxD,IAAI,SAAS,KAAK,EAAE,EAAE;QAClB,MAAM,IAAI,qBAAqB,CAAC,0CAA0C,CAAC,CAAC;KAC/E;IACD,IAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,gBAAgB,CAAC,KAAK,EAAE;QACvC,IAAI,UAAU,KAAK,gBAAgB,CAAC,gBAAgB,EAAE;YAClD,MAAM,IAAI,qBAAqB,CAAC,sDAAoD,SAAW,CAAC,CAAC;SACpG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,cAAc,EAAE;YACvD,MAAM,IAAI,qBAAqB,CAAC,oDAAkD,SAAW,CAAC,CAAC;SAClG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,iBAAiB,EAAE;YAC1D,MAAM,IAAI,qBAAqB,CAAC,wDAAsD,QAAU,CAAC,CAAC;SACrG;KACJ;IACD,OAAO,QAAoB,CAAC;AAChC,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAiB;IAClD,IAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtG,IAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,gBAAgB,CAAC,KAAK,EAAE;QACvC,IAAI,UAAU,KAAK,gBAAgB,CAAC,gBAAgB,EAAE;YAClD,MAAM,IAAI,qBAAqB,CAAC,qDAAmD,SAAW,CAAC,CAAC;SACnG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,cAAc,EAAE;YACvD,MAAM,IAAI,qBAAqB,CAAC,mDAAiD,SAAW,CAAC,CAAC;SACjG;aAAM,IAAI,UAAU,KAAK,gBAAgB,CAAC,iBAAiB,EAAE;YAC1D,MAAM,IAAI,qBAAqB,CAAC,uDAAqD,eAAiB,CAAC,CAAC;SAC3G;KACJ;IACD,OAAO,eAA4B,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsB,EAAE,SAAqB,EAAE,gBAA4B;IAClG,IAAI;QACA,OAAO,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;KAC1D;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsB,EAAE,SAAqB,EAAE,gBAA4B;IAClG,IAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzE,OAAO,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsB,EAAE,SAAqB,EAAE,gBAA4B;IAClG,IAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACpE,OAAO,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,UAAsB,EAAE,SAAqB,EAAE,GAAwB;IAC5F,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9C,IAAI,KAAK,EAAE;QACP,IAAI;YACM,IAAA,KAAA,OAAS,KAAK,IAAA,EAAb,CAAC,QAAA,EAAE,CAAC,QAAS,CAAC;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,KAAK,CAAC;AACjB;;AC5HA,IAAMA,WAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3B;AAAZ,WAAY,gBAAgB;IAC1B,iFAAiB,CAAA;IACjB,+EAAgB,CAAA;IAChB,2EAAc,CAAA;IACd,yDAAK,CAAA;AACP,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;SAEe,aAAa,CAAC,KAAU;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,KAAK,IAAI,MAAM,CAAC;AACzB,CAAC;AACC;;;;;;;;;;AAUF,SAAS,qBAAqB,CAAC,KAAU,EAAE,QAAkB;IAC3D,IAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;KAC3C;IAED,IAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;KAC3C;;IAGD,IAAM,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,eAAe,EAAE;QACnB,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;KAC5B;;IAGD,IAAI,OAAO,GAAGA,WAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;KAC1C;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,CAAC,EAAE;QAC9C,OAAO,gBAAgB,CAAC,cAAc,CAAC;KACxC;IAED,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAChC,CAAC;AAED,IAAM,cAAc,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5D,IAAM,cAAc,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,IAAM,eAAe,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/E,IAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;SAec,eAAe,CAAC,KAAU;IACxC,OAAO,qBAAqB,CAAC,KAAK,WAAM,cAAc,EAAK,cAAc,EAAE,CAAC;AAC9E,CAAC;AACC;;;;;;;;;;;;;;;SAec,aAAa,CAAC,KAAU;IACtC,OAAO,qBAAqB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AACC;;;;;;;;;;;;;;;SAec,uBAAuB,CAAC,KAAU;IAChD,OAAO,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC;AACC;;;;;;;;;;;;;;;SAec,eAAe,CAAC,KAAU;IACxC,OAAO,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC;AACC;;;;;;;;;;;;;;;SAec,iBAAiB,CAAC,KAAU;IAC1C,OAAO,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC;AACC;;;;;;;;;;;;;;;SAec,iBAAiB,CAAC,KAAU;IAC1C,OAAO,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAChD;;AC3KA;AACA;IACa,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,QAAQ;EACrB;AACF;;ACPA;;;;AAeA,IAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,IAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AASvC;;;;;;SAMgB,UAAU,CAAC,KAAa;IACtC,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;SAKiB,YAAY,CAAC,KAAa;IACzC,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;SAOgB,UAAU,CAAC,KAA0B,EAAE,MAAkB;IACvE,IAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAEjG,IAAM,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACd,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEhC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;IAOa,UAAU,GAAG,UAAC,GAAW,EAAE,SAAqB;IAC3D,OAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAA7C,EAA8C;AAEhD;;;;;;SAMgB,SAAS,CAAC,OAAe;;IACvC,IAAM,GAAG,GAAW,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAM,SAAS;QACb,GAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAG,MAAM;QAC/B,GAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAG,MAAM;QAC/B,GAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAG,MAAM;WAChC,CAAC;IAEF,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,IAAI,IAAI,EAAE;;QAER,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,GAAG,GAAG,CAAC;KACnB;SAAM;;QAEL,OAAO,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;KAChD;AACH,CAAC;AAED;;;;;;SAMgB,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QAClC,IAAM,IAAI,GAAkC;YAC1C,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC,GAAG;SACnB,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;SAMgB,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACpB,IAAM,IAAI,GAAkC;YAC1C,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACzC,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;AACH,CAAC;AAED;;;;;;SAMgB,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACpB,IAAM,IAAI,GAAkC;YAC1C,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACpC,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;AACH,CAAC;AAED;;;;;;IAMa,OAAO,GAAG,UAAC,GAAW;IACjC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAE,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAA,CAAC,CAAC,CAAC;AAChF,EAAE;AAEF;;;;;;;IAOa,QAAQ,GAAG,UAAC,EAAc,EAAE,EAAc;IACrD,IAAM,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACV,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC;AACX,EAAE;AAEF;;;;;;IAMa,OAAO,GAAG,SAAS,GAAG,CAAC,CAAM;IACxC,IAAI,GAAG,GAAQ,EAAE,CAAC;IAClB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;QACnD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YACrB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;YAC3B,GAAG,GAAG;gBACJ,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB,CAAC;SACH;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YAC5B,GAAG,GAAG,IAAI,CAAC;SACZ;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;YAC7B,GAAG,GAAG,KAAK,CAAC;SACb;KACF;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3B,IAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;gBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACtB,GAAG,GAAG;wBACJ,IAAI,EAAE,EAAE;wBACR,IAAI,EAAE,EAAE;qBACT,CAAC;iBACH;gBACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACtB;iBAAM;gBACL,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb;SACF;KACF;SAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC5D,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;KAChB;SAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;QACzD,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;KAC3B;SAAM;QACL,GAAG,GAAG,CAAC,CAAC;KACT;IACD,OAAO,GAAG,CAAC;AACb,EAAE;AAEF;;;;;;IAMa,OAAO,GAAG,UAAC,MAAc;IACpC,IAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,IAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,SAAS,CAAC,OAAO,CAAC,UAAC,IAAS;QAC1B,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAM,SAAS,GAAG,CAAA,OAAK,GAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC1B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,EAAE;AAEF;;;;;;;IAOc,YAAY,GAAG,UAAC,SAAiB;IAC5C,IAAI,cAAc,CAAC;IACnB,IAAI,SAAS,CAAC;IAEf,IAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACxD,IAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,QAAQ,SAAS;QACf,KAAK,MAAM,CAAC,IAAI;YACd,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,MAAM,CAAC,IAAI;YACd,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,MAAM,CAAC,IAAI;YACd,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM;KACT;IAED,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC;AAChB,EAAC;AAED;;;;;;SAMgB,UAAU,CAAC,GAAW;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;SAMgB,UAAU,CAAC,GAAW;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD;;;;"}
@@ -134,6 +134,137 @@
134
134
  return ar;
135
135
  }
136
136
 
137
+ var InvalidPublicKeyError = /** @class */ (function () {
138
+ function InvalidPublicKeyError(message) {
139
+ this.message = message;
140
+ this.name = 'InvalidPublicKeyError';
141
+ }
142
+ return InvalidPublicKeyError;
143
+ }());
144
+ var InvalidSignatureError = /** @class */ (function () {
145
+ function InvalidSignatureError(message) {
146
+ this.message = message;
147
+ this.name = 'InvalidSignatureError';
148
+ }
149
+ return InvalidSignatureError;
150
+ }());
151
+ var InvalidMessageError = /** @class */ (function () {
152
+ function InvalidMessageError(message) {
153
+ this.message = message;
154
+ this.name = 'InvalidMessageError';
155
+ }
156
+ return InvalidMessageError;
157
+ }());
158
+
159
+ /**
160
+ * @description Verify signature of a payload
161
+ *
162
+ * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)
163
+ * @param publicKey The public key to verify the signature against
164
+ * @param signature The signature to verify
165
+ * @returns A boolean indicating if the signature matches
166
+ *
167
+ * @example
168
+ * ```
169
+ * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';
170
+ * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';
171
+ * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'
172
+ *
173
+ * const response = verifySignature(message, pk, sig);
174
+ * ```
175
+ *
176
+ */
177
+ function verifySignature(messageBytes, publicKey, signature) {
178
+ var pkPrefix = validatePkAndExtractPrefix(publicKey);
179
+ var sigPrefix = validateSigAndExtractPrefix(signature);
180
+ var decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);
181
+ var decodedSig = b58cdecode(signature, prefix[sigPrefix]);
182
+ var bytesHash = blake2b.hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);
183
+ if (pkPrefix === exports.Prefix.EDPK) {
184
+ return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);
185
+ }
186
+ else if (pkPrefix === exports.Prefix.SPPK) {
187
+ return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);
188
+ }
189
+ else if (pkPrefix === exports.Prefix.P2PK) {
190
+ return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);
191
+ }
192
+ else {
193
+ return false;
194
+ }
195
+ }
196
+ function validateMessageNotEmpty(message) {
197
+ if (message === '') {
198
+ throw new InvalidMessageError("The message provided for verifying signature cannot be empty.");
199
+ }
200
+ return message;
201
+ }
202
+ function validatePkAndExtractPrefix(publicKey) {
203
+ if (publicKey === '') {
204
+ throw new InvalidPublicKeyError("The public key provided cannot be empty.");
205
+ }
206
+ var pkPrefix = publicKey.substring(0, 4);
207
+ var validation = validatePublicKey(publicKey);
208
+ if (validation !== exports.ValidationResult.VALID) {
209
+ if (validation === exports.ValidationResult.INVALID_CHECKSUM) {
210
+ throw new InvalidPublicKeyError("The public key provided has an invalid checksum: " + publicKey);
211
+ }
212
+ else if (validation === exports.ValidationResult.INVALID_LENGTH) {
213
+ throw new InvalidPublicKeyError("The public key provided has an invalid length: " + publicKey);
214
+ }
215
+ else if (validation === exports.ValidationResult.NO_PREFIX_MATCHED) {
216
+ throw new InvalidPublicKeyError("The public key provided has an unsupported prefix: " + pkPrefix);
217
+ }
218
+ }
219
+ return pkPrefix;
220
+ }
221
+ function validateSigAndExtractPrefix(signature) {
222
+ var signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);
223
+ var validation = validateSignature(signature);
224
+ if (validation !== exports.ValidationResult.VALID) {
225
+ if (validation === exports.ValidationResult.INVALID_CHECKSUM) {
226
+ throw new InvalidSignatureError("The signature provided has an invalid checksum: " + signature);
227
+ }
228
+ else if (validation === exports.ValidationResult.INVALID_LENGTH) {
229
+ throw new InvalidSignatureError("The signature provided has an invalid length: " + signature);
230
+ }
231
+ else if (validation === exports.ValidationResult.NO_PREFIX_MATCHED) {
232
+ throw new InvalidSignatureError("The signature provided has an unsupported prefix: " + signaturePrefix);
233
+ }
234
+ }
235
+ return signaturePrefix;
236
+ }
237
+ function verifyEdSignature(decodedSig, bytesHash, decodedPublicKey) {
238
+ try {
239
+ return ed25519.verify(decodedPublicKey, bytesHash, decodedSig);
240
+ }
241
+ catch (e) {
242
+ return false;
243
+ }
244
+ }
245
+ function verifySpSignature(decodedSig, bytesHash, decodedPublicKey) {
246
+ var key = new elliptic__default['default'].ec('secp256k1').keyFromPublic(decodedPublicKey);
247
+ return verifySpOrP2Sig(decodedSig, bytesHash, key);
248
+ }
249
+ function verifyP2Signature(decodedSig, bytesHash, decodedPublicKey) {
250
+ var key = new elliptic__default['default'].ec('p256').keyFromPublic(decodedPublicKey);
251
+ return verifySpOrP2Sig(decodedSig, bytesHash, key);
252
+ }
253
+ function verifySpOrP2Sig(decodedSig, bytesHash, key) {
254
+ var hexSig = buf2hex(toBuffer__default['default'](decodedSig));
255
+ var match = hexSig.match(/([a-f\d]{64})/gi);
256
+ if (match) {
257
+ try {
258
+ var _a = __read(match, 2), r = _a[0], s = _a[1];
259
+ return key.verify(bytesHash, { r: r, s: s });
260
+ }
261
+ catch (e) {
262
+ return false;
263
+ }
264
+ }
265
+ return false;
266
+ }
267
+
137
268
  var bs58check$1 = require('bs58check');
138
269
  exports.ValidationResult = void 0;
139
270
  (function (ValidationResult) {
@@ -299,142 +430,11 @@
299
430
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
300
431
  /* tslint:disable */
301
432
  var VERSION = {
302
- "commitHash": "8d7ecc86ce608bff9ee8c6cf0cd7d795263b8bda",
303
- "version": "11.0.1"
433
+ "commitHash": "e4fb2f0ab9a459640e474bf65ae4578f4b948c63",
434
+ "version": "11.0.2"
304
435
  };
305
436
  /* tslint:enable */
306
437
 
307
- var InvalidPublicKeyError = /** @class */ (function () {
308
- function InvalidPublicKeyError(message) {
309
- this.message = message;
310
- this.name = 'InvalidPublicKeyError';
311
- }
312
- return InvalidPublicKeyError;
313
- }());
314
- var InvalidSignatureError = /** @class */ (function () {
315
- function InvalidSignatureError(message) {
316
- this.message = message;
317
- this.name = 'InvalidSignatureError';
318
- }
319
- return InvalidSignatureError;
320
- }());
321
- var InvalidMessageError = /** @class */ (function () {
322
- function InvalidMessageError(message) {
323
- this.message = message;
324
- this.name = 'InvalidMessageError';
325
- }
326
- return InvalidMessageError;
327
- }());
328
-
329
- /**
330
- * @description Verify signature of a payload
331
- *
332
- * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)
333
- * @param publicKey The public key to verify the signature against
334
- * @param signature The signature to verify
335
- * @returns A boolean indicating if the signature matches
336
- *
337
- * @example
338
- * ```
339
- * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';
340
- * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';
341
- * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'
342
- *
343
- * const response = verifySignature(message, pk, sig);
344
- * ```
345
- *
346
- */
347
- function verifySignature(messageBytes, publicKey, signature) {
348
- var pkPrefix = validatePkAndExtractPrefix(publicKey);
349
- var sigPrefix = validateSigAndExtractPrefix(signature);
350
- var decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);
351
- var decodedSig = b58cdecode(signature, prefix[sigPrefix]);
352
- var bytesHash = blake2b.hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);
353
- if (pkPrefix === exports.Prefix.EDPK) {
354
- return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);
355
- }
356
- else if (pkPrefix === exports.Prefix.SPPK) {
357
- return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);
358
- }
359
- else if (pkPrefix === exports.Prefix.P2PK) {
360
- return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);
361
- }
362
- else {
363
- return false;
364
- }
365
- }
366
- function validateMessageNotEmpty(message) {
367
- if (message === '') {
368
- throw new InvalidMessageError("The message provided for verifying signature cannot be empty.");
369
- }
370
- return message;
371
- }
372
- function validatePkAndExtractPrefix(publicKey) {
373
- if (publicKey === '') {
374
- throw new InvalidPublicKeyError("The public key provided for verifying signature cannot be empty.");
375
- }
376
- var pkPrefix = publicKey.substring(0, 4);
377
- var validation = validatePublicKey(publicKey);
378
- if (validation !== exports.ValidationResult.VALID) {
379
- if (validation === exports.ValidationResult.INVALID_CHECKSUM) {
380
- throw new InvalidPublicKeyError("The public key provided has an invalid checksum: " + publicKey);
381
- }
382
- else if (validation === exports.ValidationResult.INVALID_LENGTH) {
383
- throw new InvalidPublicKeyError("The public key provided has an invalid length: " + publicKey);
384
- }
385
- else if (validation === exports.ValidationResult.NO_PREFIX_MATCHED) {
386
- throw new InvalidPublicKeyError("The public key provided has an unsupported prefix: " + pkPrefix);
387
- }
388
- }
389
- return pkPrefix;
390
- }
391
- function validateSigAndExtractPrefix(signature) {
392
- var signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);
393
- var validation = validateSignature(signature);
394
- if (validation !== exports.ValidationResult.VALID) {
395
- if (validation === exports.ValidationResult.INVALID_CHECKSUM) {
396
- throw new InvalidSignatureError("The signature provided has an invalid checksum: " + signature);
397
- }
398
- else if (validation === exports.ValidationResult.INVALID_LENGTH) {
399
- throw new InvalidSignatureError("The signature provided has an invalid length: " + signature);
400
- }
401
- else if (validation === exports.ValidationResult.NO_PREFIX_MATCHED) {
402
- throw new InvalidSignatureError("The signature provided has an unsupported prefix: " + signaturePrefix);
403
- }
404
- }
405
- return signaturePrefix;
406
- }
407
- function verifyEdSignature(decodedSig, bytesHash, decodedPublicKey) {
408
- try {
409
- return ed25519.verify(decodedPublicKey, bytesHash, decodedSig);
410
- }
411
- catch (e) {
412
- return false;
413
- }
414
- }
415
- function verifySpSignature(decodedSig, bytesHash, decodedPublicKey) {
416
- var key = new elliptic__default['default'].ec('secp256k1').keyFromPublic(decodedPublicKey);
417
- return verifySpOrP2Sig(decodedSig, bytesHash, key);
418
- }
419
- function verifyP2Signature(decodedSig, bytesHash, decodedPublicKey) {
420
- var key = new elliptic__default['default'].ec('p256').keyFromPublic(decodedPublicKey);
421
- return verifySpOrP2Sig(decodedSig, bytesHash, key);
422
- }
423
- function verifySpOrP2Sig(decodedSig, bytesHash, key) {
424
- var hexSig = buf2hex(toBuffer__default['default'](decodedSig));
425
- var match = hexSig.match(/([a-f\d]{64})/gi);
426
- if (match) {
427
- try {
428
- var _a = __read(match, 2), r = _a[0], s = _a[1];
429
- return key.verify(bytesHash, { r: r, s: s });
430
- }
431
- catch (e) {
432
- return false;
433
- }
434
- }
435
- return false;
436
- }
437
-
438
438
  /**
439
439
  * @packageDocumentation
440
440
  * @module @taquito/utils
@@ -652,6 +652,36 @@
652
652
  });
653
653
  return hexParts.join('');
654
654
  };
655
+ /**
656
+ *
657
+ * @description Gets Tezos address (PKH) from Public Key
658
+ *
659
+ * @param publicKey Public Key
660
+ * @returns A string of the Tezos address (PKH) that was derived from the given Public Key
661
+ */
662
+ var getPkhfromPk = function (publicKey) {
663
+ var encodingPrefix;
664
+ var prefixLen;
665
+ var keyPrefix = validatePkAndExtractPrefix(publicKey);
666
+ var decoded = b58cdecode(publicKey, prefix[keyPrefix]);
667
+ switch (keyPrefix) {
668
+ case exports.Prefix.EDPK:
669
+ encodingPrefix = prefix[exports.Prefix.TZ1];
670
+ prefixLen = prefixLength[exports.Prefix.TZ1];
671
+ break;
672
+ case exports.Prefix.SPPK:
673
+ encodingPrefix = prefix[exports.Prefix.TZ2];
674
+ prefixLen = prefixLength[exports.Prefix.TZ2];
675
+ break;
676
+ case exports.Prefix.P2PK:
677
+ encodingPrefix = prefix[exports.Prefix.TZ3];
678
+ prefixLen = prefixLength[exports.Prefix.TZ3];
679
+ break;
680
+ }
681
+ var hashed = blake2b.hash(decoded, prefixLen);
682
+ var result = b58cencode(hashed, encodingPrefix);
683
+ return result;
684
+ };
655
685
  /**
656
686
  *
657
687
  * @description Convert a string to bytes
@@ -683,6 +713,7 @@
683
713
  exports.encodeKeyHash = encodeKeyHash;
684
714
  exports.encodeOpHash = encodeOpHash;
685
715
  exports.encodePubKey = encodePubKey;
716
+ exports.getPkhfromPk = getPkhfromPk;
686
717
  exports.hex2buf = hex2buf;
687
718
  exports.isValidPrefix = isValidPrefix;
688
719
  exports.mergebuf = mergebuf;
@@ -693,6 +724,7 @@
693
724
  exports.validateChain = validateChain;
694
725
  exports.validateContractAddress = validateContractAddress;
695
726
  exports.validateKeyHash = validateKeyHash;
727
+ exports.validatePkAndExtractPrefix = validatePkAndExtractPrefix;
696
728
  exports.validatePublicKey = validatePublicKey;
697
729
  exports.validateSignature = validateSignature;
698
730
  exports.verifySignature = verifySignature;
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-utils.umd.js","sources":["../src/constants.ts","../src/validators.ts","../src/version.ts","../src/errors.ts","../src/verify-signature.ts","../src/taquito-utils.ts"],"sourcesContent":["export enum Prefix {\n TZ1 = 'tz1',\n TZ2 = 'tz2',\n TZ3 = 'tz3',\n KT = 'KT',\n KT1 = 'KT1',\n\n EDSK2 = 'edsk2',\n SPSK = 'spsk',\n P2SK = 'p2sk',\n\n EDPK = 'edpk',\n SPPK = 'sppk',\n P2PK = 'p2pk',\n\n EDESK = 'edesk',\n SPESK = 'spesk',\n P2ESK = 'p2esk',\n\n EDSK = 'edsk',\n EDSIG = 'edsig',\n SPSIG = 'spsig',\n P2SIG = 'p2sig',\n SIG = 'sig',\n\n NET = 'Net',\n NCE = 'nce',\n B = 'b',\n O = 'o',\n LO = 'Lo',\n LLO = 'LLo',\n P = 'P',\n CO = 'Co',\n ID = 'id',\n\n EXPR = 'expr',\n TZ = 'TZ',\n}\n\nexport const prefix = {\n [Prefix.TZ1]: new Uint8Array([6, 161, 159]),\n [Prefix.TZ2]: new Uint8Array([6, 161, 161]),\n [Prefix.TZ3]: new Uint8Array([6, 161, 164]),\n [Prefix.KT]: new Uint8Array([2, 90, 121]),\n [Prefix.KT1]: new Uint8Array([2, 90, 121]),\n\n [Prefix.EDSK]: new Uint8Array([43, 246, 78, 7]),\n [Prefix.EDSK2]: new Uint8Array([13, 15, 58, 7]),\n [Prefix.SPSK]: new Uint8Array([17, 162, 224, 201]),\n [Prefix.P2SK]: new Uint8Array([16, 81, 238, 189]),\n\n [Prefix.EDPK]: new Uint8Array([13, 15, 37, 217]),\n [Prefix.SPPK]: new Uint8Array([3, 254, 226, 86]),\n [Prefix.P2PK]: new Uint8Array([3, 178, 139, 127]),\n\n [Prefix.EDESK]: new Uint8Array([7, 90, 60, 179, 41]),\n [Prefix.SPESK]: new Uint8Array([0x09, 0xed, 0xf1, 0xae, 0x96]),\n [Prefix.P2ESK]: new Uint8Array([0x09, 0x30, 0x39, 0x73, 0xab]),\n\n [Prefix.EDSIG]: new Uint8Array([9, 245, 205, 134, 18]),\n [Prefix.SPSIG]: new Uint8Array([13, 115, 101, 19, 63]),\n [Prefix.P2SIG]: new Uint8Array([54, 240, 44, 52]),\n [Prefix.SIG]: new Uint8Array([4, 130, 43]),\n\n [Prefix.NET]: new Uint8Array([87, 82, 0]),\n [Prefix.NCE]: new Uint8Array([69, 220, 169]),\n [Prefix.B]: new Uint8Array([1, 52]),\n [Prefix.O]: new Uint8Array([5, 116]),\n [Prefix.LO]: new Uint8Array([133, 233]),\n [Prefix.LLO]: new Uint8Array([29, 159, 109]),\n [Prefix.P]: new Uint8Array([2, 170]),\n [Prefix.CO]: new Uint8Array([79, 179]),\n [Prefix.ID]: new Uint8Array([153, 103]),\n\n [Prefix.EXPR]: new Uint8Array([13, 44, 64, 27]),\n // Legacy prefix\n [Prefix.TZ]: new Uint8Array([2, 90, 121]),\n};\n\nexport const prefixLength: { [key: string]: number } = {\n [Prefix.TZ1]: 20,\n [Prefix.TZ2]: 20,\n [Prefix.TZ3]: 20,\n [Prefix.KT]: 20,\n [Prefix.KT1]: 20,\n [Prefix.EDPK]: 32,\n [Prefix.SPPK]: 33,\n [Prefix.P2PK]: 33,\n [Prefix.EDSIG]: 64,\n [Prefix.SPSIG]: 64,\n [Prefix.P2SIG]: 64,\n [Prefix.SIG]: 64,\n [Prefix.NET]: 4,\n [Prefix.B]: 32,\n [Prefix.P]: 32,\n [Prefix.O]: 32\n};\n","import { prefix, prefixLength, Prefix } from './constants';\n\nconst bs58check = require('bs58check');\n\nexport enum ValidationResult {\n NO_PREFIX_MATCHED,\n INVALID_CHECKSUM,\n INVALID_LENGTH,\n VALID,\n}\n\nexport function isValidPrefix(value: any): value is Prefix {\n if (typeof value !== 'string') {\n return false;\n }\n\n return value in prefix;\n}\n /**\n * @description This function is called by the validation functions ([[validateAddress]], [[validateChain]], [[validateContractAddress]], [[validateKeyHash]], [[validateSignature]], [[validatePublicKey]]).\n * Verify if the value has the right prefix or return `NO_PREFIX_MATCHED`,\n * decode the value using base58 and return `INVALID_CHECKSUM` if it fails,\n * check if the length of the value matches the prefix type or return `INVALID_LENGTH`.\n * If all checks pass, return `VALID`.\n *\n * @param value Value to validate\n * @param prefixes prefix the value should have\n */\nfunction validatePrefixedValue(value: any, prefixes: Prefix[]) {\n const match = new RegExp(`^(${prefixes.join('|')})`).exec(value);\n if (!match || match.length === 0) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n const prefixKey = match[0];\n\n if (!isValidPrefix(prefixKey)) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n // Remove annotation from contract address before doing the validation\n const contractAddress = /^(KT1\\w{33})(\\%(.*))?/.exec(value);\n if (contractAddress) {\n value = contractAddress[1];\n }\n\n // decodeUnsafe return undefined if decoding fail\n let decoded = bs58check.decodeUnsafe(value);\n if (!decoded) {\n return ValidationResult.INVALID_CHECKSUM;\n }\n\n decoded = decoded.slice(prefix[prefixKey].length);\n if (decoded.length !== prefixLength[prefixKey]) {\n return ValidationResult.INVALID_LENGTH;\n }\n\n return ValidationResult.VALID;\n}\n\nconst implicitPrefix = [Prefix.TZ1, Prefix.TZ2, Prefix.TZ3];\nconst contractPrefix = [Prefix.KT1];\nconst signaturePrefix = [Prefix.EDSIG, Prefix.P2SIG, Prefix.SPSIG, Prefix.SIG];\nconst pkPrefix = [Prefix.EDPK, Prefix.SPPK, Prefix.P2PK];\n\n /**\n * @description Used to check if an address or a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateAddress } from '@taquito/utils';\n * const pkh = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateAddress(pkh)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, [...implicitPrefix, ...contractPrefix]);\n}\n /**\n * @description Used to check if a chain id is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateChain } from '@taquito/utils';\n * const chainId = 'NetXdQprcVkpaWU'\n * const validation = validateChain(chainId)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateChain(value: any): ValidationResult {\n return validatePrefixedValue(value, [Prefix.NET]);\n}\n /**\n * @description Used to check if a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateContractAddress } from '@taquito/utils';\n * const contractAddress = 'KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC'\n * const validation = validateContractAddress(contractAddress)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateContractAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, contractPrefix);\n}\n /**\n * @description Used to check if a key hash is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateKeyHash } from '@taquito/utils';\n * const keyHashWithoutPrefix = '1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateKeyHash(keyHashWithoutPrefix)\n * console.log(validation)\n * // This example return 0 which correspond to NO_PREFIX_MATCHED\n * ```\n */\nexport function validateKeyHash(value: any): ValidationResult {\n return validatePrefixedValue(value, implicitPrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateSignature } from '@taquito/utils';\n * const signature = 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg'\n * const validation = validateSignature(signature)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateSignature(value: any): ValidationResult {\n return validatePrefixedValue(value, signaturePrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validatePublicKey } from '@taquito/utils';\n * const publicKey = 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g'\n * const validation = validatePublicKey(publicKey)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validatePublicKey(value: any): ValidationResult {\n return validatePrefixedValue(value, pkPrefix);\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\n/* tslint:disable */\nexport const VERSION = {\n \"commitHash\": \"8d7ecc86ce608bff9ee8c6cf0cd7d795263b8bda\",\n \"version\": \"11.0.1\"\n};\n/* tslint:enable */\n","export class InvalidPublicKeyError implements Error {\n public name: string = 'InvalidPublicKeyError';\n constructor(public message: string) {}\n }\n \n export class InvalidSignatureError implements Error {\n public name: string = 'InvalidSignatureError';\n constructor(public message: string) {}\n }\n \n export class InvalidMessageError implements Error {\n public name: string = 'InvalidMessageError';\n constructor(public message: string) {}\n }\n ","import { verify } from '@stablelib/ed25519';\nimport { hash } from '@stablelib/blake2b';\nimport {\n b58cdecode,\n buf2hex,\n hex2buf,\n Prefix,\n prefix,\n validatePublicKey,\n validateSignature,\n ValidationResult\n} from './taquito-utils';\nimport elliptic from 'elliptic';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidMessageError, InvalidPublicKeyError, InvalidSignatureError } from './errors';\n\ntype PkPrefix = Prefix.EDPK | Prefix.SPPK | Prefix.P2PK;\ntype SigPrefix = Prefix.EDSIG | Prefix.SPSIG | Prefix.P2SIG | Prefix.SIG;\n\n/**\n * @description Verify signature of a payload\n *\n * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)\n * @param publicKey The public key to verify the signature against\n * @param signature The signature to verify\n * @returns A boolean indicating if the signature matches\n *\n * @example \n * ```\n * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';\n * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';\n * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'\n * \n * const response = verifySignature(message, pk, sig);\n * ```\n *\n */\nexport function verifySignature(messageBytes: string, publicKey: string, signature: string): boolean {\n const pkPrefix = validatePkAndExtractPrefix(publicKey);\n const sigPrefix = validateSigAndExtractPrefix(signature);\n\n const decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);\n const decodedSig = b58cdecode(signature, prefix[sigPrefix]);\n const bytesHash = hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);\n\n if (pkPrefix === Prefix.EDPK) {\n return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.SPPK) {\n return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.P2PK) {\n return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);\n } else {\n return false;\n }\n}\n\nfunction validateMessageNotEmpty(message: string) {\n if (message === '') {\n throw new InvalidMessageError(`The message provided for verifying signature cannot be empty.`);\n }\n return message;\n}\n\nfunction validatePkAndExtractPrefix(publicKey: string): PkPrefix {\n if (publicKey === '') {\n throw new InvalidPublicKeyError(`The public key provided for verifying signature cannot be empty.`);\n }\n const pkPrefix = publicKey.substring(0, 4);\n const validation = validatePublicKey(publicKey);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid checksum: ${publicKey}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid length: ${publicKey}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidPublicKeyError(`The public key provided has an unsupported prefix: ${pkPrefix}`);\n }\n }\n return pkPrefix as PkPrefix;\n}\n\nfunction validateSigAndExtractPrefix(signature: string): SigPrefix {\n const signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);\n const validation = validateSignature(signature);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidSignatureError(`The signature provided has an invalid checksum: ${signature}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidSignatureError(`The signature provided has an invalid length: ${signature}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidSignatureError(`The signature provided has an unsupported prefix: ${signaturePrefix}`);\n }\n }\n return signaturePrefix as SigPrefix;\n}\n\nfunction verifyEdSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n try {\n return verify(decodedPublicKey, bytesHash, decodedSig);\n } catch (e) {\n return false;\n }\n}\n\nfunction verifySpSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('secp256k1').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifyP2Signature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('p256').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifySpOrP2Sig(decodedSig: Uint8Array, bytesHash: Uint8Array, key: elliptic.ec.KeyPair) {\n const hexSig = buf2hex(toBuffer(decodedSig));\n const match = hexSig.match(/([a-f\\d]{64})/gi);\n if (match) {\n try {\n const [r, s] = match;\n return key.verify(bytesHash, { r, s });\n } catch (e) {\n return false;\n }\n }\n return false;\n}\n","/**\n * @packageDocumentation\n * @module @taquito/utils\n */\n\n/*\n * Some code in this file is originally from sotez and eztz\n * Copyright (c) 2018 Andrew Kishino\n * Copyright (c) 2017 Stephen Andrews\n */\n\nimport { Buffer } from 'buffer';\nimport { prefix } from './constants';\nconst blake = require('blakejs');\nconst bs58check = require('bs58check');\n\nexport * from './validators';\nexport { VERSION } from './version';\n\nexport { prefix, Prefix, prefixLength } from './constants';\n\nexport { verifySignature } from './verify-signature';\n\n/**\n *\n * @description Hash a string using the BLAKE2b algorithm, base58 encode the hash obtained and appends the prefix 'expr' to it\n *\n * @param value Value in hex\n */\nexport function encodeExpr(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix['expr']);\n}\n\n/**\n *\n * @description Return the operation hash of a signed operation \n * @param value Value in hex of a signed operation\n */\n export function encodeOpHash(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix.o);\n}\n\n/**\n *\n * @description Base58 encode a string or a Uint8Array and append a prefix to it\n *\n * @param value Value to base58 encode\n * @param prefix prefix to append to the encoded string\n */\nexport function b58cencode(value: string | Uint8Array, prefix: Uint8Array) {\n const payloadAr = typeof value === 'string' ? Uint8Array.from(Buffer.from(value, 'hex')) : value;\n\n const n = new Uint8Array(prefix.length + payloadAr.length);\n n.set(prefix);\n n.set(payloadAr, prefix.length);\n\n return bs58check.encode(Buffer.from(n.buffer));\n}\n\n/**\n *\n * @description Base58 decode a string and remove the prefix from it\n *\n * @param value Value to base58 decode\n * @param prefix prefix to remove from the decoded string\n */\nexport const b58cdecode = (enc: string, prefixArg: Uint8Array): Uint8Array =>\n bs58check.decode(enc).slice(prefixArg.length);\n\n/**\n *\n * @description Base58 decode a string with predefined prefix\n *\n * @param value Value to base58 decode\n */\nexport function b58decode(payload: string) {\n const buf: Buffer = bs58check.decode(payload);\n\n const prefixMap = {\n [prefix.tz1.toString()]: '0000',\n [prefix.tz2.toString()]: '0001',\n [prefix.tz3.toString()]: '0002',\n };\n\n let pref = prefixMap[new Uint8Array(buf.slice(0, 3)).toString()];\n if (pref) {\n // tz addresses\n const hex = buf2hex(buf.slice(3));\n return pref + hex;\n } else {\n // other (kt addresses)\n return '01' + buf2hex(buf.slice(3, 42)) + '00';\n }\n}\n\n/**\n *\n * @description Base58 encode a public key using predefined prefix\n *\n * @param value Public Key to base58 encode\n */\nexport function encodePubKey(value: string) {\n if (value.substring(0, 2) === '00') {\n const pref: { [key: string]: Uint8Array } = {\n '0000': prefix.tz1,\n '0001': prefix.tz2,\n '0002': prefix.tz3,\n };\n\n return b58cencode(value.substring(4), pref[value.substring(0, 4)]);\n }\n\n return b58cencode(value.substring(2, 42), prefix.KT);\n}\n\n/**\n *\n * @description Base58 encode a key according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKey(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([13, 15, 37, 217]),\n '01': new Uint8Array([3, 254, 226, 86]),\n '02': new Uint8Array([3, 178, 139, 127]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Base58 encode a key hash according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKeyHash(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([6, 161, 159]),\n '01': new Uint8Array([6, 161, 161]),\n '02': new Uint8Array([6, 161, 164]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Convert an hex string to a Uint8Array\n *\n * @param hex Hex string to convert\n */\nexport const hex2buf = (hex: string): Uint8Array => {\n return new Uint8Array(hex.match(/[\\da-f]{2}/gi)!.map((h) => parseInt(h, 16)));\n};\n\n/**\n *\n * @description Merge 2 buffers together\n *\n * @param b1 First buffer\n * @param b2 Second buffer\n */\nexport const mergebuf = (b1: Uint8Array, b2: Uint8Array): Uint8Array => {\n const r = new Uint8Array(b1.length + b2.length);\n r.set(b1);\n r.set(b2, b1.length);\n return r;\n};\n\n/**\n *\n * @description Flatten a michelson json representation to an array\n *\n * @param s michelson json\n */\nexport const mic2arr = function me2(s: any): any {\n let ret: any = [];\n if (Object.prototype.hasOwnProperty.call(s, 'prim')) {\n if (s.prim === 'Pair') {\n ret.push(me2(s.args[0]));\n ret = ret.concat(me2(s.args[1]));\n } else if (s.prim === 'Elt') {\n ret = {\n key: me2(s.args[0]),\n val: me2(s.args[1]),\n };\n } else if (s.prim === 'True') {\n ret = true;\n } else if (s.prim === 'False') {\n ret = false;\n }\n } else if (Array.isArray(s)) {\n const sc = s.length;\n for (let i = 0; i < sc; i++) {\n const n = me2(s[i]);\n if (typeof n.key !== 'undefined') {\n if (Array.isArray(ret)) {\n ret = {\n keys: [],\n vals: [],\n };\n }\n ret.keys.push(n.key);\n ret.vals.push(n.val);\n } else {\n ret.push(n);\n }\n }\n } else if (Object.prototype.hasOwnProperty.call(s, 'string')) {\n ret = s.string;\n } else if (Object.prototype.hasOwnProperty.call(s, 'int')) {\n ret = parseInt(s.int, 10);\n } else {\n ret = s;\n }\n return ret;\n};\n\n/**\n *\n * @description Convert a buffer to an hex string\n *\n * @param buffer Buffer to convert\n */\nexport const buf2hex = (buffer: Buffer): string => {\n const byteArray = new Uint8Array(buffer);\n const hexParts: string[] = [];\n byteArray.forEach((byte: any) => {\n const hex = byte.toString(16);\n const paddedHex = `00${hex}`.slice(-2);\n hexParts.push(paddedHex);\n });\n return hexParts.join('');\n};\n\n/**\n *\n * @description Convert a string to bytes\n *\n * @param str String to convert\n */\nexport function char2Bytes(str: string) {\n return Buffer.from(str, 'utf8').toString('hex');\n}\n\n/**\n *\n * @description Convert bytes to a string\n *\n * @param str Bytes to convert\n */\nexport function bytes2Char(hex: string): string {\n return Buffer.from(hex2buf(hex)).toString('utf8');\n}\n"],"names":["Prefix","bs58check","ValidationResult","hash","verify","elliptic","toBuffer","Buffer"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-utils.umd.js","sources":["../src/constants.ts","../src/errors.ts","../src/verify-signature.ts","../src/validators.ts","../src/version.ts","../src/taquito-utils.ts"],"sourcesContent":["export enum Prefix {\n TZ1 = 'tz1',\n TZ2 = 'tz2',\n TZ3 = 'tz3',\n KT = 'KT',\n KT1 = 'KT1',\n\n EDSK2 = 'edsk2',\n SPSK = 'spsk',\n P2SK = 'p2sk',\n\n EDPK = 'edpk',\n SPPK = 'sppk',\n P2PK = 'p2pk',\n\n EDESK = 'edesk',\n SPESK = 'spesk',\n P2ESK = 'p2esk',\n\n EDSK = 'edsk',\n EDSIG = 'edsig',\n SPSIG = 'spsig',\n P2SIG = 'p2sig',\n SIG = 'sig',\n\n NET = 'Net',\n NCE = 'nce',\n B = 'b',\n O = 'o',\n LO = 'Lo',\n LLO = 'LLo',\n P = 'P',\n CO = 'Co',\n ID = 'id',\n\n EXPR = 'expr',\n TZ = 'TZ',\n}\n\nexport const prefix = {\n [Prefix.TZ1]: new Uint8Array([6, 161, 159]),\n [Prefix.TZ2]: new Uint8Array([6, 161, 161]),\n [Prefix.TZ3]: new Uint8Array([6, 161, 164]),\n [Prefix.KT]: new Uint8Array([2, 90, 121]),\n [Prefix.KT1]: new Uint8Array([2, 90, 121]),\n\n [Prefix.EDSK]: new Uint8Array([43, 246, 78, 7]),\n [Prefix.EDSK2]: new Uint8Array([13, 15, 58, 7]),\n [Prefix.SPSK]: new Uint8Array([17, 162, 224, 201]),\n [Prefix.P2SK]: new Uint8Array([16, 81, 238, 189]),\n\n [Prefix.EDPK]: new Uint8Array([13, 15, 37, 217]),\n [Prefix.SPPK]: new Uint8Array([3, 254, 226, 86]),\n [Prefix.P2PK]: new Uint8Array([3, 178, 139, 127]),\n\n [Prefix.EDESK]: new Uint8Array([7, 90, 60, 179, 41]),\n [Prefix.SPESK]: new Uint8Array([0x09, 0xed, 0xf1, 0xae, 0x96]),\n [Prefix.P2ESK]: new Uint8Array([0x09, 0x30, 0x39, 0x73, 0xab]),\n\n [Prefix.EDSIG]: new Uint8Array([9, 245, 205, 134, 18]),\n [Prefix.SPSIG]: new Uint8Array([13, 115, 101, 19, 63]),\n [Prefix.P2SIG]: new Uint8Array([54, 240, 44, 52]),\n [Prefix.SIG]: new Uint8Array([4, 130, 43]),\n\n [Prefix.NET]: new Uint8Array([87, 82, 0]),\n [Prefix.NCE]: new Uint8Array([69, 220, 169]),\n [Prefix.B]: new Uint8Array([1, 52]),\n [Prefix.O]: new Uint8Array([5, 116]),\n [Prefix.LO]: new Uint8Array([133, 233]),\n [Prefix.LLO]: new Uint8Array([29, 159, 109]),\n [Prefix.P]: new Uint8Array([2, 170]),\n [Prefix.CO]: new Uint8Array([79, 179]),\n [Prefix.ID]: new Uint8Array([153, 103]),\n\n [Prefix.EXPR]: new Uint8Array([13, 44, 64, 27]),\n // Legacy prefix\n [Prefix.TZ]: new Uint8Array([2, 90, 121]),\n};\n\nexport const prefixLength: { [key: string]: number } = {\n [Prefix.TZ1]: 20,\n [Prefix.TZ2]: 20,\n [Prefix.TZ3]: 20,\n [Prefix.KT]: 20,\n [Prefix.KT1]: 20,\n [Prefix.EDPK]: 32,\n [Prefix.SPPK]: 33,\n [Prefix.P2PK]: 33,\n [Prefix.EDSIG]: 64,\n [Prefix.SPSIG]: 64,\n [Prefix.P2SIG]: 64,\n [Prefix.SIG]: 64,\n [Prefix.NET]: 4,\n [Prefix.B]: 32,\n [Prefix.P]: 32,\n [Prefix.O]: 32\n};\n","export class InvalidPublicKeyError implements Error {\n public name: string = 'InvalidPublicKeyError';\n constructor(public message: string) {}\n }\n \n export class InvalidSignatureError implements Error {\n public name: string = 'InvalidSignatureError';\n constructor(public message: string) {}\n }\n \n export class InvalidMessageError implements Error {\n public name: string = 'InvalidMessageError';\n constructor(public message: string) {}\n }\n ","import { verify } from '@stablelib/ed25519';\nimport { hash } from '@stablelib/blake2b';\nimport {\n b58cdecode,\n buf2hex,\n hex2buf,\n Prefix,\n prefix,\n validatePublicKey,\n validateSignature,\n ValidationResult\n} from './taquito-utils';\nimport elliptic from 'elliptic';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidMessageError, InvalidPublicKeyError, InvalidSignatureError } from './errors';\n\ntype PkPrefix = Prefix.EDPK | Prefix.SPPK | Prefix.P2PK;\ntype SigPrefix = Prefix.EDSIG | Prefix.SPSIG | Prefix.P2SIG | Prefix.SIG;\n\n/**\n * @description Verify signature of a payload\n *\n * @param messageBytes The forged message including the magic byte (1 for block, 2 for endorsement, 3 for generic, 5 for the PACK format of michelson)\n * @param publicKey The public key to verify the signature against\n * @param signature The signature to verify\n * @returns A boolean indicating if the signature matches\n *\n * @example \n * ```\n * const message = '03d0c10e3ed11d7c6e3357f6ef335bab9e8f2bd54d0ce20c482e241191a6e4b8ce6c01be917311d9ac46959750e405d57e268e2ed9e174a80794fbd504e12a4a000141eb3781afed2f69679ff2bbe1c5375950b0e40d00ff000000005e05050505050507070100000024747a32526773486e74516b72794670707352466261313652546656503539684b72654a4d07070100000024747a315a6672455263414c42776d4171776f6e525859565142445439426a4e6a42484a750001';\n * const pk = 'sppk7c7hkPj47yjYFEHX85q46sFJGw6RBrqoVSHwAJAT4e14KJwzoey';\n * const sig = 'spsig1cdLkp1RLgUHAp13aRFkZ6MQDPp7xCnjAExGL3MBSdMDmT6JgQSX8cufyDgJRM3sinFtiCzLbsyP6d365EHoNevxhT47nx'\n * \n * const response = verifySignature(message, pk, sig);\n * ```\n *\n */\nexport function verifySignature(messageBytes: string, publicKey: string, signature: string): boolean {\n const pkPrefix = validatePkAndExtractPrefix(publicKey);\n const sigPrefix = validateSigAndExtractPrefix(signature);\n\n const decodedPublicKey = b58cdecode(publicKey, prefix[pkPrefix]);\n const decodedSig = b58cdecode(signature, prefix[sigPrefix]);\n const bytesHash = hash(hex2buf(validateMessageNotEmpty(messageBytes)), 32);\n\n if (pkPrefix === Prefix.EDPK) {\n return verifyEdSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.SPPK) {\n return verifySpSignature(decodedSig, bytesHash, decodedPublicKey);\n } else if (pkPrefix === Prefix.P2PK) {\n return verifyP2Signature(decodedSig, bytesHash, decodedPublicKey);\n } else {\n return false;\n }\n}\n\nfunction validateMessageNotEmpty(message: string) {\n if (message === '') {\n throw new InvalidMessageError(`The message provided for verifying signature cannot be empty.`);\n }\n return message;\n}\n\nexport function validatePkAndExtractPrefix(publicKey: string): PkPrefix {\n if (publicKey === '') {\n throw new InvalidPublicKeyError(`The public key provided cannot be empty.`);\n }\n const pkPrefix = publicKey.substring(0, 4);\n const validation = validatePublicKey(publicKey);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid checksum: ${publicKey}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidPublicKeyError(`The public key provided has an invalid length: ${publicKey}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidPublicKeyError(`The public key provided has an unsupported prefix: ${pkPrefix}`);\n }\n }\n return pkPrefix as PkPrefix;\n}\n\nfunction validateSigAndExtractPrefix(signature: string): SigPrefix {\n const signaturePrefix = signature.startsWith('sig') ? signature.substr(0, 3) : signature.substr(0, 5);\n const validation = validateSignature(signature);\n if (validation !== ValidationResult.VALID) {\n if (validation === ValidationResult.INVALID_CHECKSUM) {\n throw new InvalidSignatureError(`The signature provided has an invalid checksum: ${signature}`);\n } else if (validation === ValidationResult.INVALID_LENGTH) {\n throw new InvalidSignatureError(`The signature provided has an invalid length: ${signature}`);\n } else if (validation === ValidationResult.NO_PREFIX_MATCHED) {\n throw new InvalidSignatureError(`The signature provided has an unsupported prefix: ${signaturePrefix}`);\n }\n }\n return signaturePrefix as SigPrefix;\n}\n\nfunction verifyEdSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n try {\n return verify(decodedPublicKey, bytesHash, decodedSig);\n } catch (e) {\n return false;\n }\n}\n\nfunction verifySpSignature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('secp256k1').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifyP2Signature(decodedSig: Uint8Array, bytesHash: Uint8Array, decodedPublicKey: Uint8Array) {\n const key = new elliptic.ec('p256').keyFromPublic(decodedPublicKey);\n return verifySpOrP2Sig(decodedSig, bytesHash, key)\n}\n\nfunction verifySpOrP2Sig(decodedSig: Uint8Array, bytesHash: Uint8Array, key: elliptic.ec.KeyPair) {\n const hexSig = buf2hex(toBuffer(decodedSig));\n const match = hexSig.match(/([a-f\\d]{64})/gi);\n if (match) {\n try {\n const [r, s] = match;\n return key.verify(bytesHash, { r, s });\n } catch (e) {\n return false;\n }\n }\n return false;\n}\n","import { prefix, prefixLength, Prefix } from './constants';\n\nconst bs58check = require('bs58check');\n\nexport enum ValidationResult {\n NO_PREFIX_MATCHED,\n INVALID_CHECKSUM,\n INVALID_LENGTH,\n VALID,\n}\n\nexport function isValidPrefix(value: any): value is Prefix {\n if (typeof value !== 'string') {\n return false;\n }\n\n return value in prefix;\n}\n /**\n * @description This function is called by the validation functions ([[validateAddress]], [[validateChain]], [[validateContractAddress]], [[validateKeyHash]], [[validateSignature]], [[validatePublicKey]]).\n * Verify if the value has the right prefix or return `NO_PREFIX_MATCHED`,\n * decode the value using base58 and return `INVALID_CHECKSUM` if it fails,\n * check if the length of the value matches the prefix type or return `INVALID_LENGTH`.\n * If all checks pass, return `VALID`.\n *\n * @param value Value to validate\n * @param prefixes prefix the value should have\n */\nfunction validatePrefixedValue(value: any, prefixes: Prefix[]) {\n const match = new RegExp(`^(${prefixes.join('|')})`).exec(value);\n if (!match || match.length === 0) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n const prefixKey = match[0];\n\n if (!isValidPrefix(prefixKey)) {\n return ValidationResult.NO_PREFIX_MATCHED;\n }\n\n // Remove annotation from contract address before doing the validation\n const contractAddress = /^(KT1\\w{33})(\\%(.*))?/.exec(value);\n if (contractAddress) {\n value = contractAddress[1];\n }\n\n // decodeUnsafe return undefined if decoding fail\n let decoded = bs58check.decodeUnsafe(value);\n if (!decoded) {\n return ValidationResult.INVALID_CHECKSUM;\n }\n\n decoded = decoded.slice(prefix[prefixKey].length);\n if (decoded.length !== prefixLength[prefixKey]) {\n return ValidationResult.INVALID_LENGTH;\n }\n\n return ValidationResult.VALID;\n}\n\nconst implicitPrefix = [Prefix.TZ1, Prefix.TZ2, Prefix.TZ3];\nconst contractPrefix = [Prefix.KT1];\nconst signaturePrefix = [Prefix.EDSIG, Prefix.P2SIG, Prefix.SPSIG, Prefix.SIG];\nconst pkPrefix = [Prefix.EDPK, Prefix.SPPK, Prefix.P2PK];\n\n /**\n * @description Used to check if an address or a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateAddress } from '@taquito/utils';\n * const pkh = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateAddress(pkh)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, [...implicitPrefix, ...contractPrefix]);\n}\n /**\n * @description Used to check if a chain id is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateChain } from '@taquito/utils';\n * const chainId = 'NetXdQprcVkpaWU'\n * const validation = validateChain(chainId)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateChain(value: any): ValidationResult {\n return validatePrefixedValue(value, [Prefix.NET]);\n}\n /**\n * @description Used to check if a contract address is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateContractAddress } from '@taquito/utils';\n * const contractAddress = 'KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC'\n * const validation = validateContractAddress(contractAddress)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateContractAddress(value: any): ValidationResult {\n return validatePrefixedValue(value, contractPrefix);\n}\n /**\n * @description Used to check if a key hash is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateKeyHash } from '@taquito/utils';\n * const keyHashWithoutPrefix = '1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'\n * const validation = validateKeyHash(keyHashWithoutPrefix)\n * console.log(validation)\n * // This example return 0 which correspond to NO_PREFIX_MATCHED\n * ```\n */\nexport function validateKeyHash(value: any): ValidationResult {\n return validatePrefixedValue(value, implicitPrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validateSignature } from '@taquito/utils';\n * const signature = 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg'\n * const validation = validateSignature(signature)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validateSignature(value: any): ValidationResult {\n return validatePrefixedValue(value, signaturePrefix);\n}\n /**\n * @description Used to check if a signature is valid.\n *\n * @returns\n * 0 (NO_PREFIX_MATCHED), 1 (INVALID_CHECKSUM), 2 (INVALID_LENGTH) or 3 (VALID).\n *\n * @example\n * ```\n * import { validatePublicKey } from '@taquito/utils';\n * const publicKey = 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g'\n * const validation = validatePublicKey(publicKey)\n * console.log(validation)\n * // This example return 3 which correspond to VALID\n * ```\n */\nexport function validatePublicKey(value: any): ValidationResult {\n return validatePrefixedValue(value, pkPrefix);\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\n/* tslint:disable */\nexport const VERSION = {\n \"commitHash\": \"e4fb2f0ab9a459640e474bf65ae4578f4b948c63\",\n \"version\": \"11.0.2\"\n};\n/* tslint:enable */\n","/**\n * @packageDocumentation\n * @module @taquito/utils\n */\n\n/*\n * Some code in this file is originally from sotez and eztz\n * Copyright (c) 2018 Andrew Kishino\n * Copyright (c) 2017 Stephen Andrews\n */\n\nimport { Buffer } from 'buffer';\nimport { Prefix, prefix, prefixLength } from './constants';\nimport { validatePkAndExtractPrefix } from './verify-signature'\nimport { hash } from '@stablelib/blake2b'\nconst blake = require('blakejs');\nconst bs58check = require('bs58check');\n\nexport * from './validators';\nexport { VERSION } from './version';\n\nexport { prefix, Prefix, prefixLength } from './constants';\n\nexport { verifySignature, validatePkAndExtractPrefix} from './verify-signature';\n\n/**\n *\n * @description Hash a string using the BLAKE2b algorithm, base58 encode the hash obtained and appends the prefix 'expr' to it\n *\n * @param value Value in hex\n */\nexport function encodeExpr(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix['expr']);\n}\n\n/**\n *\n * @description Return the operation hash of a signed operation \n * @param value Value in hex of a signed operation\n */\n export function encodeOpHash(value: string) {\n const blakeHash = blake.blake2b(hex2buf(value), null, 32);\n return b58cencode(blakeHash, prefix.o);\n}\n\n/**\n *\n * @description Base58 encode a string or a Uint8Array and append a prefix to it\n *\n * @param value Value to base58 encode\n * @param prefix prefix to append to the encoded string\n */\nexport function b58cencode(value: string | Uint8Array, prefix: Uint8Array) {\n const payloadAr = typeof value === 'string' ? Uint8Array.from(Buffer.from(value, 'hex')) : value;\n\n const n = new Uint8Array(prefix.length + payloadAr.length);\n n.set(prefix);\n n.set(payloadAr, prefix.length);\n\n return bs58check.encode(Buffer.from(n.buffer));\n}\n\n/**\n *\n * @description Base58 decode a string and remove the prefix from it\n *\n * @param value Value to base58 decode\n * @param prefix prefix to remove from the decoded string\n */\nexport const b58cdecode = (enc: string, prefixArg: Uint8Array): Uint8Array =>\n bs58check.decode(enc).slice(prefixArg.length);\n\n/**\n *\n * @description Base58 decode a string with predefined prefix\n *\n * @param value Value to base58 decode\n */\nexport function b58decode(payload: string) {\n const buf: Buffer = bs58check.decode(payload);\n\n const prefixMap = {\n [prefix.tz1.toString()]: '0000',\n [prefix.tz2.toString()]: '0001',\n [prefix.tz3.toString()]: '0002',\n };\n\n let pref = prefixMap[new Uint8Array(buf.slice(0, 3)).toString()];\n if (pref) {\n // tz addresses\n const hex = buf2hex(buf.slice(3));\n return pref + hex;\n } else {\n // other (kt addresses)\n return '01' + buf2hex(buf.slice(3, 42)) + '00';\n }\n}\n\n/**\n *\n * @description Base58 encode a public key using predefined prefix\n *\n * @param value Public Key to base58 encode\n */\nexport function encodePubKey(value: string) {\n if (value.substring(0, 2) === '00') {\n const pref: { [key: string]: Uint8Array } = {\n '0000': prefix.tz1,\n '0001': prefix.tz2,\n '0002': prefix.tz3,\n };\n\n return b58cencode(value.substring(4), pref[value.substring(0, 4)]);\n }\n\n return b58cencode(value.substring(2, 42), prefix.KT);\n}\n\n/**\n *\n * @description Base58 encode a key according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKey(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([13, 15, 37, 217]),\n '01': new Uint8Array([3, 254, 226, 86]),\n '02': new Uint8Array([3, 178, 139, 127]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Base58 encode a key hash according to its prefix\n *\n * @param value Key to base58 encode\n */\nexport function encodeKeyHash(value: string) {\n if (value[0] === '0') {\n const pref: { [key: string]: Uint8Array } = {\n '00': new Uint8Array([6, 161, 159]),\n '01': new Uint8Array([6, 161, 161]),\n '02': new Uint8Array([6, 161, 164]),\n };\n\n return b58cencode(value.substring(2), pref[value.substring(0, 2)]);\n }\n}\n\n/**\n *\n * @description Convert an hex string to a Uint8Array\n *\n * @param hex Hex string to convert\n */\nexport const hex2buf = (hex: string): Uint8Array => {\n return new Uint8Array(hex.match(/[\\da-f]{2}/gi)!.map((h) => parseInt(h, 16)));\n};\n\n/**\n *\n * @description Merge 2 buffers together\n *\n * @param b1 First buffer\n * @param b2 Second buffer\n */\nexport const mergebuf = (b1: Uint8Array, b2: Uint8Array): Uint8Array => {\n const r = new Uint8Array(b1.length + b2.length);\n r.set(b1);\n r.set(b2, b1.length);\n return r;\n};\n\n/**\n *\n * @description Flatten a michelson json representation to an array\n *\n * @param s michelson json\n */\nexport const mic2arr = function me2(s: any): any {\n let ret: any = [];\n if (Object.prototype.hasOwnProperty.call(s, 'prim')) {\n if (s.prim === 'Pair') {\n ret.push(me2(s.args[0]));\n ret = ret.concat(me2(s.args[1]));\n } else if (s.prim === 'Elt') {\n ret = {\n key: me2(s.args[0]),\n val: me2(s.args[1]),\n };\n } else if (s.prim === 'True') {\n ret = true;\n } else if (s.prim === 'False') {\n ret = false;\n }\n } else if (Array.isArray(s)) {\n const sc = s.length;\n for (let i = 0; i < sc; i++) {\n const n = me2(s[i]);\n if (typeof n.key !== 'undefined') {\n if (Array.isArray(ret)) {\n ret = {\n keys: [],\n vals: [],\n };\n }\n ret.keys.push(n.key);\n ret.vals.push(n.val);\n } else {\n ret.push(n);\n }\n }\n } else if (Object.prototype.hasOwnProperty.call(s, 'string')) {\n ret = s.string;\n } else if (Object.prototype.hasOwnProperty.call(s, 'int')) {\n ret = parseInt(s.int, 10);\n } else {\n ret = s;\n }\n return ret;\n};\n\n/**\n *\n * @description Convert a buffer to an hex string\n *\n * @param buffer Buffer to convert\n */\nexport const buf2hex = (buffer: Buffer): string => {\n const byteArray = new Uint8Array(buffer);\n const hexParts: string[] = [];\n byteArray.forEach((byte: any) => {\n const hex = byte.toString(16);\n const paddedHex = `00${hex}`.slice(-2);\n hexParts.push(paddedHex);\n });\n return hexParts.join('');\n};\n\n/**\n * \n * @description Gets Tezos address (PKH) from Public Key\n * \n * @param publicKey Public Key\n * @returns A string of the Tezos address (PKH) that was derived from the given Public Key\n */\n export const getPkhfromPk = (publicKey: string): string => {\n let encodingPrefix;\n let prefixLen;\n\n const keyPrefix = validatePkAndExtractPrefix(publicKey);\n const decoded = b58cdecode(publicKey, prefix[keyPrefix]);\n\n switch (keyPrefix) {\n case Prefix.EDPK:\n encodingPrefix = prefix[Prefix.TZ1];\n prefixLen = prefixLength[Prefix.TZ1];\n break;\n case Prefix.SPPK:\n encodingPrefix = prefix[Prefix.TZ2];\n prefixLen = prefixLength[Prefix.TZ2];\n break;\n case Prefix.P2PK:\n encodingPrefix = prefix[Prefix.TZ3];\n prefixLen = prefixLength[Prefix.TZ3];\n break;\n }\n\n const hashed = hash(decoded, prefixLen);\n const result = b58cencode(hashed, encodingPrefix);\n\n return result;\n}\n\n/**\n *\n * @description Convert a string to bytes\n *\n * @param str String to convert\n */\nexport function char2Bytes(str: string) {\n return Buffer.from(str, 'utf8').toString('hex');\n}\n\n/**\n *\n * @description Convert bytes to a string\n *\n * @param str Bytes to convert\n */\nexport function bytes2Char(hex: string): string {\n return Buffer.from(hex2buf(hex)).toString('utf8');\n}\n"],"names":["Prefix","hash","ValidationResult","verify","elliptic","toBuffer","bs58check","Buffer"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { Buffer } from 'buffer';
6
6
  export * from './validators';
7
7
  export { VERSION } from './version';
8
8
  export { prefix, Prefix, prefixLength } from './constants';
9
- export { verifySignature } from './verify-signature';
9
+ export { verifySignature, validatePkAndExtractPrefix } from './verify-signature';
10
10
  /**
11
11
  *
12
12
  * @description Hash a string using the BLAKE2b algorithm, base58 encode the hash obtained and appends the prefix 'expr' to it
@@ -93,6 +93,14 @@ export declare const mic2arr: (s: any) => any;
93
93
  * @param buffer Buffer to convert
94
94
  */
95
95
  export declare const buf2hex: (buffer: Buffer) => string;
96
+ /**
97
+ *
98
+ * @description Gets Tezos address (PKH) from Public Key
99
+ *
100
+ * @param publicKey Public Key
101
+ * @returns A string of the Tezos address (PKH) that was derived from the given Public Key
102
+ */
103
+ export declare const getPkhfromPk: (publicKey: string) => string;
96
104
  /**
97
105
  *
98
106
  * @description Convert a string to bytes
@@ -1,3 +1,5 @@
1
+ import { Prefix } from './taquito-utils';
2
+ declare type PkPrefix = Prefix.EDPK | Prefix.SPPK | Prefix.P2PK;
1
3
  /**
2
4
  * @description Verify signature of a payload
3
5
  *
@@ -17,3 +19,5 @@
17
19
  *
18
20
  */
19
21
  export declare function verifySignature(messageBytes: string, publicKey: string, signature: string): boolean;
22
+ export declare function validatePkAndExtractPrefix(publicKey: string): PkPrefix;
23
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taquito/utils",
3
- "version": "11.0.1",
3
+ "version": "11.0.2",
4
4
  "description": "converts michelson data and types into convenient JS/TS objects",
5
5
  "keywords": [
6
6
  "tezos",
@@ -101,5 +101,5 @@
101
101
  "typedoc": "^0.20.36",
102
102
  "typescript": "~4.1.5"
103
103
  },
104
- "gitHead": "d09ecc8f28d454067553c9e94c85142409f90722"
104
+ "gitHead": "791bf6aec6c0694b755ecf22b01b3e09a5206b76"
105
105
  }