@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 +1 -0
- package/dist/lib/taquito-utils.js +37 -3
- package/dist/lib/taquito-utils.js.map +1 -1
- package/dist/lib/verify-signature.js +3 -2
- package/dist/lib/verify-signature.js.map +1 -1
- package/dist/lib/version.js +2 -2
- package/dist/taquito-utils.es5.js +164 -134
- package/dist/taquito-utils.es5.js.map +1 -1
- package/dist/taquito-utils.umd.js +165 -133
- package/dist/taquito-utils.umd.js.map +1 -1
- package/dist/types/taquito-utils.d.ts +9 -1
- package/dist/types/verify-signature.d.ts +4 -0
- package/package.json +2 -2
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
|
|
35
|
-
Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return
|
|
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":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH;;;;GAIG;AAEH,iCAAgC;AAChC,
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;AAAA,8CAA4C;AAC5C,8CAA0C;AAC1C,iDASyB;AACzB,qCAAgC;AAChC,6DAA4C;AAC5C,mCAA6F;AAK7F;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,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,0BAAU,CAAC,SAAS,EAAE,sBAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,IAAM,UAAU,GAAG,0BAAU,CAAC,SAAS,EAAE,sBAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,IAAM,SAAS,GAAG,cAAI,CAAC,uBAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3E,IAAI,QAAQ,KAAK,sBAAM,CAAC,IAAI,EAAE;QAC1B,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM,IAAI,QAAQ,KAAK,sBAAM,CAAC,IAAI,EAAE;QACjC,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM,IAAI,QAAQ,KAAK,sBAAM,CAAC,IAAI,EAAE;QACjC,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;KACrE;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAjBD,0CAiBC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC5C,IAAI,OAAO,KAAK,EAAE,EAAE;QAChB,MAAM,IAAI,4BAAmB,CAAC,+DAA+D,CAAC,CAAC;KAClG;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"verify-signature.js","sourceRoot":"","sources":["../../src/verify-signature.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/version.js
CHANGED
|
@@ -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": "
|
|
8
|
-
"version": "11.0.
|
|
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": "
|
|
298
|
-
"version": "11.0.
|
|
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":"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"}
|
|
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": "
|
|
303
|
-
"version": "11.0.
|
|
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.
|
|
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": "
|
|
104
|
+
"gitHead": "791bf6aec6c0694b755ecf22b01b3e09a5206b76"
|
|
105
105
|
}
|