@taquito/remote-signer 16.2.0 → 17.0.0-beta-RC.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/errors.js +49 -30
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/taquito-remote-signer.js +8 -30
- package/dist/lib/taquito-remote-signer.js.map +1 -1
- package/dist/lib/version.js +2 -2
- package/dist/lib/version.js.map +1 -1
- package/dist/taquito-remote-signer.es6.js +53 -57
- package/dist/taquito-remote-signer.es6.js.map +1 -1
- package/dist/taquito-remote-signer.umd.js +50 -55
- package/dist/taquito-remote-signer.umd.js.map +1 -1
- package/dist/types/errors.d.ts +30 -22
- package/dist/types/taquito-remote-signer.d.ts +0 -10
- package/package.json +6 -5
package/dist/lib/errors.js
CHANGED
|
@@ -1,59 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SignatureVerificationError = exports.PublicKeyVerificationError = exports.BadSigningDataError = exports.OperationNotAuthorizedError = exports.PublicKeyNotFoundError = void 0;
|
|
4
|
+
const core_1 = require("@taquito/core");
|
|
4
5
|
/**
|
|
5
6
|
* @category Error
|
|
6
|
-
* @description Error
|
|
7
|
+
* @description Error indicates a failure in grabbing the public key
|
|
7
8
|
*/
|
|
8
|
-
class
|
|
9
|
-
constructor(
|
|
10
|
-
super(
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
9
|
+
class PublicKeyNotFoundError extends core_1.TaquitoError {
|
|
10
|
+
constructor(pkh, cause) {
|
|
11
|
+
super();
|
|
12
|
+
this.pkh = pkh;
|
|
13
|
+
this.cause = cause;
|
|
13
14
|
this.name = 'KeyNotFoundError';
|
|
15
|
+
this.message = `Public key not found of this address "${pkh}".`;
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
|
-
exports.
|
|
18
|
+
exports.PublicKeyNotFoundError = PublicKeyNotFoundError;
|
|
17
19
|
/**
|
|
18
20
|
* @category Error
|
|
19
|
-
* @description Error
|
|
21
|
+
* @description Error indicates an unauthorized operation being attempted
|
|
20
22
|
*/
|
|
21
|
-
class OperationNotAuthorizedError extends
|
|
22
|
-
constructor(message,
|
|
23
|
-
super(
|
|
23
|
+
class OperationNotAuthorizedError extends core_1.PermissionDeniedError {
|
|
24
|
+
constructor(message, cause) {
|
|
25
|
+
super();
|
|
24
26
|
this.message = message;
|
|
25
|
-
this.
|
|
27
|
+
this.cause = cause;
|
|
26
28
|
this.name = 'OperationNotAuthorized';
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
exports.OperationNotAuthorizedError = OperationNotAuthorizedError;
|
|
30
32
|
/**
|
|
31
33
|
* @category Error
|
|
32
|
-
* @description Error
|
|
34
|
+
* @description Error indicates bad signing data
|
|
33
35
|
*/
|
|
34
|
-
class BadSigningDataError extends
|
|
35
|
-
constructor(
|
|
36
|
-
super(
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
39
|
-
this.data = data;
|
|
36
|
+
class BadSigningDataError extends core_1.TaquitoError {
|
|
37
|
+
constructor(cause, bytes, watermark) {
|
|
38
|
+
super();
|
|
39
|
+
this.cause = cause;
|
|
40
|
+
this.bytes = bytes;
|
|
40
41
|
this.name = 'BadSigningData';
|
|
42
|
+
this.message = watermark
|
|
43
|
+
? `Invalid signing data with watermark`
|
|
44
|
+
: `Invalid signing data: "${bytes}"`;
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
exports.BadSigningDataError = BadSigningDataError;
|
|
44
48
|
/**
|
|
45
49
|
* @category Error
|
|
46
|
-
* @description Error
|
|
50
|
+
* @description Error indicates a mismatch between the initialized and the requested public key
|
|
51
|
+
*/
|
|
52
|
+
class PublicKeyVerificationError extends core_1.TaquitoError {
|
|
53
|
+
constructor(requestedPk, requestedPkh, initializedPkh) {
|
|
54
|
+
super();
|
|
55
|
+
this.requestedPk = requestedPk;
|
|
56
|
+
this.requestedPkh = requestedPkh;
|
|
57
|
+
this.initializedPkh = initializedPkh;
|
|
58
|
+
this.name = 'PublicKeyVerificationFailedError';
|
|
59
|
+
this.message = `Requested pk "${requestedPk}" has pkh "${requestedPkh}" deesn't match initialized pkh "${initializedPkh}."`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.PublicKeyVerificationError = PublicKeyVerificationError;
|
|
63
|
+
/**
|
|
64
|
+
* @category Error
|
|
65
|
+
* @description Error
|
|
47
66
|
*/
|
|
48
|
-
class
|
|
49
|
-
constructor(
|
|
50
|
-
super(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
67
|
+
class SignatureVerificationError extends core_1.TaquitoError {
|
|
68
|
+
constructor(bytes, signature) {
|
|
69
|
+
super();
|
|
70
|
+
this.bytes = bytes;
|
|
71
|
+
this.signature = signature;
|
|
72
|
+
this.name = 'SignatureVerificationFailedError';
|
|
73
|
+
this.name = 'SignatureVerificationFailedError';
|
|
74
|
+
this.message = `Invalid signature of bytes failed verification agaisnt public key.`;
|
|
56
75
|
}
|
|
57
76
|
}
|
|
58
|
-
exports.
|
|
77
|
+
exports.SignatureVerificationError = SignatureVerificationError;
|
|
59
78
|
//# sourceMappingURL=errors.js.map
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,wCAAoE;AAEpE;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,mBAAY;IACtD,YAAmB,GAAW,EAAS,KAAU;QAC/C,KAAK,EAAE,CAAC;QADS,QAAG,GAAH,GAAG,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAK;QAE/C,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,yCAAyC,GAAG,IAAI,CAAC;IAClE,CAAC;CACF;AAND,wDAMC;AAED;;;GAGG;AACH,MAAa,2BAA4B,SAAQ,4BAAqB;IACpE,YAAmB,OAAe,EAAS,KAAU;QACnD,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAK;QAEnD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AALD,kEAKC;AAED;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,mBAAY;IACnD,YAAmB,KAAU,EAAS,KAAa,EAAE,SAAsB;QACzE,KAAK,EAAE,CAAC;QADS,UAAK,GAAL,KAAK,CAAK;QAAS,UAAK,GAAL,KAAK,CAAQ;QAEjD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,SAAS;YACtB,CAAC,CAAC,qCAAqC;YACvC,CAAC,CAAC,0BAA0B,KAAK,GAAG,CAAC;IACzC,CAAC;CACF;AARD,kDAQC;AAED;;;GAGG;AACH,MAAa,0BAA2B,SAAQ,mBAAY;IAC1D,YACS,WAAmB,EACnB,YAAoB,EACpB,cAAsB;QAE7B,KAAK,EAAE,CAAC;QAJD,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,mBAAc,GAAd,cAAc,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,iBAAiB,WAAW,cAAc,YAAY,oCAAoC,cAAc,IAAI,CAAC;IAC9H,CAAC;CACF;AAVD,gEAUC;AAED;;;GAGG;AACH,MAAa,0BAA2B,SAAQ,mBAAY;IAE1D,YAAmB,KAAa,EAAS,SAAiB;QACxD,KAAK,EAAE,CAAC;QADS,UAAK,GAAL,KAAK,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAQ;QADnD,SAAI,GAAG,kCAAkC,CAAC;QAG/C,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,oEAAoE,CAAC;IACtF,CAAC;CACF;AAPD,gEAOC"}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.RemoteSigner = exports.VERSION =
|
|
12
|
+
exports.RemoteSigner = exports.VERSION = void 0;
|
|
13
13
|
/**
|
|
14
14
|
* @packageDocumentation
|
|
15
15
|
* @module @taquito/remote-signer
|
|
@@ -20,25 +20,6 @@ const blake2b_1 = require("@stablelib/blake2b");
|
|
|
20
20
|
const typedarray_to_buffer_1 = require("typedarray-to-buffer");
|
|
21
21
|
const errors_1 = require("./errors");
|
|
22
22
|
const core_1 = require("@taquito/core");
|
|
23
|
-
/**
|
|
24
|
-
* @category Error
|
|
25
|
-
* @description Error
|
|
26
|
-
*/
|
|
27
|
-
class SignatureVerificationFailedError extends Error {
|
|
28
|
-
constructor(bytes, signature) {
|
|
29
|
-
super(`
|
|
30
|
-
Signature failed verification against public key:
|
|
31
|
-
{
|
|
32
|
-
bytes: ${bytes},
|
|
33
|
-
signature: ${signature}
|
|
34
|
-
}
|
|
35
|
-
`);
|
|
36
|
-
this.bytes = bytes;
|
|
37
|
-
this.signature = signature;
|
|
38
|
-
this.name = 'SignatureVerificationFailedError';
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.SignatureVerificationFailedError = SignatureVerificationFailedError;
|
|
42
23
|
var version_1 = require("./version");
|
|
43
24
|
Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
|
|
44
25
|
const pref = {
|
|
@@ -69,7 +50,7 @@ class RemoteSigner {
|
|
|
69
50
|
this.http = http;
|
|
70
51
|
const pkhValidation = utils_1.validateKeyHash(this.pkh);
|
|
71
52
|
if (pkhValidation !== utils_1.ValidationResult.VALID) {
|
|
72
|
-
throw new core_1.InvalidKeyHashError(this.pkh, utils_1.
|
|
53
|
+
throw new core_1.InvalidKeyHashError(this.pkh, utils_1.invalidDetail(pkhValidation));
|
|
73
54
|
}
|
|
74
55
|
}
|
|
75
56
|
publicKeyHash() {
|
|
@@ -94,7 +75,7 @@ class RemoteSigner {
|
|
|
94
75
|
catch (ex) {
|
|
95
76
|
if (ex instanceof http_utils_1.HttpResponseError) {
|
|
96
77
|
if (ex.status === http_utils_1.STATUS_CODE.NOT_FOUND) {
|
|
97
|
-
throw new errors_1.
|
|
78
|
+
throw new errors_1.PublicKeyNotFoundError(this.pkh, ex);
|
|
98
79
|
}
|
|
99
80
|
}
|
|
100
81
|
throw ex;
|
|
@@ -123,14 +104,14 @@ class RemoteSigner {
|
|
|
123
104
|
? signature.substring(0, 3)
|
|
124
105
|
: signature.substring(0, 5);
|
|
125
106
|
if (!utils_1.isValidPrefix(pref)) {
|
|
126
|
-
throw new core_1.InvalidSignatureError(signature, utils_1.
|
|
107
|
+
throw new core_1.InvalidSignatureError(signature, utils_1.invalidDetail(utils_1.ValidationResult.NO_PREFIX_MATCHED) + ` from a remote signer.`);
|
|
127
108
|
}
|
|
128
109
|
const decoded = utils_1.b58cdecode(signature, utils_1.prefix[pref]);
|
|
129
110
|
const pk = yield this.publicKey();
|
|
130
111
|
yield this.verifyPublicKey(pk);
|
|
131
112
|
const signatureVerified = utils_1.verifySignature(watermarkedBytes, pk, signature);
|
|
132
113
|
if (!signatureVerified) {
|
|
133
|
-
throw new
|
|
114
|
+
throw new errors_1.SignatureVerificationError(watermarkedBytes, signature);
|
|
134
115
|
}
|
|
135
116
|
return {
|
|
136
117
|
bytes,
|
|
@@ -142,16 +123,13 @@ class RemoteSigner {
|
|
|
142
123
|
catch (ex) {
|
|
143
124
|
if (ex instanceof http_utils_1.HttpResponseError) {
|
|
144
125
|
if (ex.status === http_utils_1.STATUS_CODE.NOT_FOUND) {
|
|
145
|
-
throw new errors_1.
|
|
126
|
+
throw new errors_1.PublicKeyNotFoundError(this.pkh, ex);
|
|
146
127
|
}
|
|
147
128
|
else if (ex.status === http_utils_1.STATUS_CODE.FORBIDDEN) {
|
|
148
129
|
throw new errors_1.OperationNotAuthorizedError('Signing Operation not authorized', ex);
|
|
149
130
|
}
|
|
150
131
|
else if (ex.status === http_utils_1.STATUS_CODE.BAD_REQUEST) {
|
|
151
|
-
throw new errors_1.BadSigningDataError(
|
|
152
|
-
bytes,
|
|
153
|
-
watermark,
|
|
154
|
-
});
|
|
132
|
+
throw new errors_1.BadSigningDataError(ex, bytes, watermark);
|
|
155
133
|
}
|
|
156
134
|
}
|
|
157
135
|
throw ex;
|
|
@@ -164,7 +142,7 @@ class RemoteSigner {
|
|
|
164
142
|
const _publicKey = utils_1.b58cdecode(publicKey, pref[curve].pk);
|
|
165
143
|
const publicKeyHash = utils_1.b58cencode(blake2b_1.hash(_publicKey, 20), pref[curve].pkh);
|
|
166
144
|
if (publicKeyHash !== this.pkh) {
|
|
167
|
-
throw new errors_1.
|
|
145
|
+
throw new errors_1.PublicKeyVerificationError(publicKey, publicKeyHash, this.pkh);
|
|
168
146
|
}
|
|
169
147
|
});
|
|
170
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-remote-signer.js","sourceRoot":"","sources":["../../src/taquito-remote-signer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;GAGG;AACH,oDAAkF;AAClF,0CAYwB;AACxB,gDAA0C;AAC1C,+DAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"taquito-remote-signer.js","sourceRoot":"","sources":["../../src/taquito-remote-signer.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/version.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
4
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
5
5
|
exports.VERSION = {
|
|
6
|
-
"commitHash": "
|
|
7
|
-
"version": "
|
|
6
|
+
"commitHash": "1169170fdbf4efd03283dc902bc03b9df5bb2fb1",
|
|
7
|
+
"version": "17.0.0-beta-RC.0"
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
package/dist/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AACA,2EAA2E;AAC9D,QAAA,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AACA,2EAA2E;AAC9D,QAAA,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,kBAAkB;CAChC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils';
|
|
2
|
-
import { prefix, validateKeyHash, ValidationResult,
|
|
2
|
+
import { prefix, validateKeyHash, ValidationResult, invalidDetail, hex2buf, mergebuf, buf2hex, isValidPrefix, b58cdecode, verifySignature, b58cencode } from '@taquito/utils';
|
|
3
3
|
import { hash } from '@stablelib/blake2b';
|
|
4
4
|
import toBuffer from 'typedarray-to-buffer';
|
|
5
|
-
import { InvalidKeyHashError, ProhibitedActionError, InvalidSignatureError } from '@taquito/core';
|
|
5
|
+
import { TaquitoError, PermissionDeniedError, InvalidKeyHashError, ProhibitedActionError, InvalidSignatureError } from '@taquito/core';
|
|
6
6
|
|
|
7
7
|
/******************************************************************************
|
|
8
8
|
Copyright (c) Microsoft Corporation.
|
|
@@ -31,80 +31,79 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* @category Error
|
|
34
|
-
* @description Error
|
|
34
|
+
* @description Error indicates a failure in grabbing the public key
|
|
35
35
|
*/
|
|
36
|
-
class
|
|
37
|
-
constructor(
|
|
38
|
-
super(
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
36
|
+
class PublicKeyNotFoundError extends TaquitoError {
|
|
37
|
+
constructor(pkh, cause) {
|
|
38
|
+
super();
|
|
39
|
+
this.pkh = pkh;
|
|
40
|
+
this.cause = cause;
|
|
41
41
|
this.name = 'KeyNotFoundError';
|
|
42
|
+
this.message = `Public key not found of this address "${pkh}".`;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
/**
|
|
45
46
|
* @category Error
|
|
46
|
-
* @description Error
|
|
47
|
+
* @description Error indicates an unauthorized operation being attempted
|
|
47
48
|
*/
|
|
48
|
-
class OperationNotAuthorizedError extends
|
|
49
|
-
constructor(message,
|
|
50
|
-
super(
|
|
49
|
+
class OperationNotAuthorizedError extends PermissionDeniedError {
|
|
50
|
+
constructor(message, cause) {
|
|
51
|
+
super();
|
|
51
52
|
this.message = message;
|
|
52
|
-
this.
|
|
53
|
+
this.cause = cause;
|
|
53
54
|
this.name = 'OperationNotAuthorized';
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
58
|
* @category Error
|
|
58
|
-
* @description Error
|
|
59
|
+
* @description Error indicates bad signing data
|
|
59
60
|
*/
|
|
60
|
-
class BadSigningDataError extends
|
|
61
|
-
constructor(
|
|
62
|
-
super(
|
|
63
|
-
this.
|
|
64
|
-
this.
|
|
65
|
-
this.data = data;
|
|
61
|
+
class BadSigningDataError extends TaquitoError {
|
|
62
|
+
constructor(cause, bytes, watermark) {
|
|
63
|
+
super();
|
|
64
|
+
this.cause = cause;
|
|
65
|
+
this.bytes = bytes;
|
|
66
66
|
this.name = 'BadSigningData';
|
|
67
|
+
this.message = watermark
|
|
68
|
+
? `Invalid signing data with watermark`
|
|
69
|
+
: `Invalid signing data: "${bytes}"`;
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
/**
|
|
70
73
|
* @category Error
|
|
71
|
-
* @description Error
|
|
74
|
+
* @description Error indicates a mismatch between the initialized and the requested public key
|
|
72
75
|
*/
|
|
73
|
-
class
|
|
74
|
-
constructor(
|
|
75
|
-
super(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
this.
|
|
80
|
-
this.
|
|
76
|
+
class PublicKeyVerificationError extends TaquitoError {
|
|
77
|
+
constructor(requestedPk, requestedPkh, initializedPkh) {
|
|
78
|
+
super();
|
|
79
|
+
this.requestedPk = requestedPk;
|
|
80
|
+
this.requestedPkh = requestedPkh;
|
|
81
|
+
this.initializedPkh = initializedPkh;
|
|
82
|
+
this.name = 'PublicKeyVerificationFailedError';
|
|
83
|
+
this.message = `Requested pk "${requestedPk}" has pkh "${requestedPkh}" deesn't match initialized pkh "${initializedPkh}."`;
|
|
81
84
|
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
85
|
-
const VERSION = {
|
|
86
|
-
"commitHash": "adc0f8c31492e8eb2f03b06ac36ba053e8ba6224",
|
|
87
|
-
"version": "16.2.0"
|
|
88
|
-
};
|
|
89
|
-
|
|
85
|
+
}
|
|
90
86
|
/**
|
|
91
87
|
* @category Error
|
|
92
88
|
* @description Error
|
|
93
89
|
*/
|
|
94
|
-
class
|
|
90
|
+
class SignatureVerificationError extends TaquitoError {
|
|
95
91
|
constructor(bytes, signature) {
|
|
96
|
-
super(
|
|
97
|
-
Signature failed verification against public key:
|
|
98
|
-
{
|
|
99
|
-
bytes: ${bytes},
|
|
100
|
-
signature: ${signature}
|
|
101
|
-
}
|
|
102
|
-
`);
|
|
92
|
+
super();
|
|
103
93
|
this.bytes = bytes;
|
|
104
94
|
this.signature = signature;
|
|
105
95
|
this.name = 'SignatureVerificationFailedError';
|
|
96
|
+
this.name = 'SignatureVerificationFailedError';
|
|
97
|
+
this.message = `Invalid signature of bytes failed verification agaisnt public key.`;
|
|
106
98
|
}
|
|
107
|
-
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
102
|
+
const VERSION = {
|
|
103
|
+
"commitHash": "1169170fdbf4efd03283dc902bc03b9df5bb2fb1",
|
|
104
|
+
"version": "17.0.0-beta-RC.0"
|
|
105
|
+
};
|
|
106
|
+
|
|
108
107
|
const pref = {
|
|
109
108
|
ed: {
|
|
110
109
|
pk: prefix['edpk'],
|
|
@@ -133,7 +132,7 @@ class RemoteSigner {
|
|
|
133
132
|
this.http = http;
|
|
134
133
|
const pkhValidation = validateKeyHash(this.pkh);
|
|
135
134
|
if (pkhValidation !== ValidationResult.VALID) {
|
|
136
|
-
throw new InvalidKeyHashError(this.pkh,
|
|
135
|
+
throw new InvalidKeyHashError(this.pkh, invalidDetail(pkhValidation));
|
|
137
136
|
}
|
|
138
137
|
}
|
|
139
138
|
publicKeyHash() {
|
|
@@ -158,7 +157,7 @@ class RemoteSigner {
|
|
|
158
157
|
catch (ex) {
|
|
159
158
|
if (ex instanceof HttpResponseError) {
|
|
160
159
|
if (ex.status === STATUS_CODE.NOT_FOUND) {
|
|
161
|
-
throw new
|
|
160
|
+
throw new PublicKeyNotFoundError(this.pkh, ex);
|
|
162
161
|
}
|
|
163
162
|
}
|
|
164
163
|
throw ex;
|
|
@@ -187,14 +186,14 @@ class RemoteSigner {
|
|
|
187
186
|
? signature.substring(0, 3)
|
|
188
187
|
: signature.substring(0, 5);
|
|
189
188
|
if (!isValidPrefix(pref)) {
|
|
190
|
-
throw new InvalidSignatureError(signature,
|
|
189
|
+
throw new InvalidSignatureError(signature, invalidDetail(ValidationResult.NO_PREFIX_MATCHED) + ` from a remote signer.`);
|
|
191
190
|
}
|
|
192
191
|
const decoded = b58cdecode(signature, prefix[pref]);
|
|
193
192
|
const pk = yield this.publicKey();
|
|
194
193
|
yield this.verifyPublicKey(pk);
|
|
195
194
|
const signatureVerified = verifySignature(watermarkedBytes, pk, signature);
|
|
196
195
|
if (!signatureVerified) {
|
|
197
|
-
throw new
|
|
196
|
+
throw new SignatureVerificationError(watermarkedBytes, signature);
|
|
198
197
|
}
|
|
199
198
|
return {
|
|
200
199
|
bytes,
|
|
@@ -206,16 +205,13 @@ class RemoteSigner {
|
|
|
206
205
|
catch (ex) {
|
|
207
206
|
if (ex instanceof HttpResponseError) {
|
|
208
207
|
if (ex.status === STATUS_CODE.NOT_FOUND) {
|
|
209
|
-
throw new
|
|
208
|
+
throw new PublicKeyNotFoundError(this.pkh, ex);
|
|
210
209
|
}
|
|
211
210
|
else if (ex.status === STATUS_CODE.FORBIDDEN) {
|
|
212
211
|
throw new OperationNotAuthorizedError('Signing Operation not authorized', ex);
|
|
213
212
|
}
|
|
214
213
|
else if (ex.status === STATUS_CODE.BAD_REQUEST) {
|
|
215
|
-
throw new BadSigningDataError(
|
|
216
|
-
bytes,
|
|
217
|
-
watermark,
|
|
218
|
-
});
|
|
214
|
+
throw new BadSigningDataError(ex, bytes, watermark);
|
|
219
215
|
}
|
|
220
216
|
}
|
|
221
217
|
throw ex;
|
|
@@ -228,11 +224,11 @@ class RemoteSigner {
|
|
|
228
224
|
const _publicKey = b58cdecode(publicKey, pref[curve].pk);
|
|
229
225
|
const publicKeyHash = b58cencode(hash(_publicKey, 20), pref[curve].pkh);
|
|
230
226
|
if (publicKeyHash !== this.pkh) {
|
|
231
|
-
throw new
|
|
227
|
+
throw new PublicKeyVerificationError(publicKey, publicKeyHash, this.pkh);
|
|
232
228
|
}
|
|
233
229
|
});
|
|
234
230
|
}
|
|
235
231
|
}
|
|
236
232
|
|
|
237
|
-
export { RemoteSigner,
|
|
233
|
+
export { RemoteSigner, VERSION };
|
|
238
234
|
//# sourceMappingURL=taquito-remote-signer.es6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-remote-signer.es6.js","sources":["../src/errors.ts","../src/version.ts","../src/taquito-remote-signer.ts"],"sourcesContent":["/**\n * @category Error\n * @description Error that indicates a failure in grabbing the public key\n */\nexport class KeyNotFoundError extends Error {\n public name = 'KeyNotFoundError';\n constructor(public message: string, public innerException: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unauthorized operation being attempted\n */\nexport class OperationNotAuthorizedError extends Error {\n public name = 'OperationNotAuthorized';\n constructor(public message: string, public innerException: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates bad signing data\n */\nexport class BadSigningDataError extends Error {\n public name = 'BadSigningData';\n constructor(public message: string, public innerException: any, public readonly data: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a mismatch between the initialized and the requested public key\n */\nexport class PublicKeyMismatch extends Error {\n public name = 'PublicKeyMismatch';\n constructor(public requested: string, initialized: string) {\n super(\n `Requested public key hash does not match the initialized public key hash: {\n requested: ${requested},\n initialized: ${initialized}\n }`\n );\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"adc0f8c31492e8eb2f03b06ac36ba053e8ba6224\",\n \"version\": \"16.2.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/remote-signer\n */\nimport { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils';\nimport {\n b58cdecode,\n b58cencode,\n buf2hex,\n hex2buf,\n isValidPrefix,\n mergebuf,\n prefix,\n verifySignature,\n validateKeyHash,\n ValidationResult,\n invalidErrorDetail,\n} from '@taquito/utils';\nimport { hash } from '@stablelib/blake2b';\nimport toBuffer from 'typedarray-to-buffer';\nimport {\n BadSigningDataError,\n KeyNotFoundError,\n OperationNotAuthorizedError,\n PublicKeyMismatch,\n} from './errors';\nimport { Signer } from '@taquito/taquito';\nimport { InvalidSignatureError, InvalidKeyHashError, ProhibitedActionError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error\n */\nexport class SignatureVerificationFailedError extends Error {\n public name = 'SignatureVerificationFailedError';\n constructor(public bytes: string, public signature: string) {\n super(\n `\n Signature failed verification against public key:\n {\n bytes: ${bytes},\n signature: ${signature}\n }\n `\n );\n }\n}\n\ninterface PublicKeyResponse {\n public_key: string;\n}\n\ninterface SignResponse {\n signature: string;\n}\n\ntype curves = 'ed' | 'p2' | 'sp';\n\nexport interface RemoteSignerOptions {\n headers?: { [key: string]: string };\n}\n\nexport { VERSION } from './version';\n\nconst pref = {\n ed: {\n pk: prefix['edpk'],\n sk: prefix['edsk'],\n pkh: prefix.tz1,\n sig: prefix.edsig,\n },\n p2: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n sp: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\nexport class RemoteSigner implements Signer {\n constructor(\n private pkh: string,\n private rootUrl: string,\n private options: RemoteSignerOptions = {},\n private http = new HttpBackend()\n ) {\n const pkhValidation = validateKeyHash(this.pkh);\n if (pkhValidation !== ValidationResult.VALID) {\n throw new InvalidKeyHashError(this.pkh, invalidErrorDetail(pkhValidation));\n }\n }\n\n async publicKeyHash(): Promise<string> {\n return this.pkh;\n }\n\n private createURL(path: string) {\n // Trim trailing slashes because it is assumed to be included in path\n return `${this.rootUrl.replace(/\\/+$/g, '')}${path}`;\n }\n\n async publicKey(): Promise<string> {\n try {\n const { public_key } = await this.http.createRequest<PublicKeyResponse>({\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'GET',\n headers: this.options.headers,\n });\n return public_key;\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new KeyNotFoundError(`Key not found: ${this.pkh}`, ex);\n }\n }\n throw ex;\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n try {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n const watermarkedBytes = buf2hex(toBuffer(bb));\n const { signature } = await this.http.createRequest<SignResponse>(\n {\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'POST',\n headers: this.options.headers,\n },\n watermarkedBytes\n );\n const pref = signature.startsWith('sig')\n ? signature.substring(0, 3)\n : signature.substring(0, 5);\n\n if (!isValidPrefix(pref)) {\n throw new InvalidSignatureError(\n signature,\n invalidErrorDetail(ValidationResult.NO_PREFIX_MATCHED) + ` from a remote signer.`\n );\n }\n\n const decoded = b58cdecode(signature, prefix[pref]);\n\n const pk = await this.publicKey();\n await this.verifyPublicKey(pk);\n const signatureVerified = verifySignature(watermarkedBytes, pk, signature);\n if (!signatureVerified) {\n throw new SignatureVerificationFailedError(watermarkedBytes, signature);\n }\n\n return {\n bytes,\n sig: b58cencode(decoded, prefix.sig),\n prefixSig: signature,\n sbytes: bytes + buf2hex(toBuffer(decoded)),\n };\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new KeyNotFoundError(`Key not found: ${this.pkh}`, ex);\n } else if (ex.status === STATUS_CODE.FORBIDDEN) {\n throw new OperationNotAuthorizedError('Signing Operation not authorized', ex);\n } else if (ex.status === STATUS_CODE.BAD_REQUEST) {\n throw new BadSigningDataError('Invalid data', ex, {\n bytes,\n watermark,\n });\n }\n }\n throw ex;\n }\n }\n\n async verifyPublicKey(publicKey: string) {\n const curve = publicKey.substring(0, 2) as curves;\n const _publicKey = b58cdecode(publicKey, pref[curve].pk);\n\n const publicKeyHash = b58cencode(hash(_publicKey, 20), pref[curve].pkh);\n if (publicKeyHash !== this.pkh) {\n throw new PublicKeyMismatch(publicKeyHash, this.pkh);\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-remote-signer.es6.js","sources":["../src/errors.ts","../src/version.ts","../src/taquito-remote-signer.ts"],"sourcesContent":["import { PermissionDeniedError, TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error indicates a failure in grabbing the public key\n */\nexport class PublicKeyNotFoundError extends TaquitoError {\n constructor(public pkh: string, public cause: any) {\n super();\n this.name = 'KeyNotFoundError';\n this.message = `Public key not found of this address \"${pkh}\".`;\n }\n}\n\n/**\n * @category Error\n * @description Error indicates an unauthorized operation being attempted\n */\nexport class OperationNotAuthorizedError extends PermissionDeniedError {\n constructor(public message: string, public cause: any) {\n super();\n this.name = 'OperationNotAuthorized';\n }\n}\n\n/**\n * @category Error\n * @description Error indicates bad signing data\n */\nexport class BadSigningDataError extends TaquitoError {\n constructor(public cause: any, public bytes: string, watermark?: Uint8Array) {\n super();\n this.name = 'BadSigningData';\n this.message = watermark\n ? `Invalid signing data with watermark`\n : `Invalid signing data: \"${bytes}\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error indicates a mismatch between the initialized and the requested public key\n */\nexport class PublicKeyVerificationError extends TaquitoError {\n constructor(\n public requestedPk: string,\n public requestedPkh: string,\n public initializedPkh: string\n ) {\n super();\n this.name = 'PublicKeyVerificationFailedError';\n this.message = `Requested pk \"${requestedPk}\" has pkh \"${requestedPkh}\" deesn't match initialized pkh \"${initializedPkh}.\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error\n */\nexport class SignatureVerificationError extends TaquitoError {\n public name = 'SignatureVerificationFailedError';\n constructor(public bytes: string, public signature: string) {\n super();\n this.name = 'SignatureVerificationFailedError';\n this.message = `Invalid signature of bytes failed verification agaisnt public key.`;\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"1169170fdbf4efd03283dc902bc03b9df5bb2fb1\",\n \"version\": \"17.0.0-beta-RC.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/remote-signer\n */\nimport { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils';\nimport {\n b58cdecode,\n b58cencode,\n buf2hex,\n hex2buf,\n isValidPrefix,\n mergebuf,\n prefix,\n verifySignature,\n validateKeyHash,\n ValidationResult,\n invalidDetail,\n} from '@taquito/utils';\nimport { hash } from '@stablelib/blake2b';\nimport toBuffer from 'typedarray-to-buffer';\nimport {\n BadSigningDataError,\n PublicKeyNotFoundError,\n OperationNotAuthorizedError,\n PublicKeyVerificationError,\n SignatureVerificationError,\n} from './errors';\nimport { Signer } from '@taquito/taquito';\nimport { InvalidSignatureError, InvalidKeyHashError, ProhibitedActionError } from '@taquito/core';\n\ninterface PublicKeyResponse {\n public_key: string;\n}\n\ninterface SignResponse {\n signature: string;\n}\n\ntype curves = 'ed' | 'p2' | 'sp';\n\nexport interface RemoteSignerOptions {\n headers?: { [key: string]: string };\n}\n\nexport { VERSION } from './version';\n\nconst pref = {\n ed: {\n pk: prefix['edpk'],\n sk: prefix['edsk'],\n pkh: prefix.tz1,\n sig: prefix.edsig,\n },\n p2: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n sp: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\nexport class RemoteSigner implements Signer {\n constructor(\n private pkh: string,\n private rootUrl: string,\n private options: RemoteSignerOptions = {},\n private http = new HttpBackend()\n ) {\n const pkhValidation = validateKeyHash(this.pkh);\n if (pkhValidation !== ValidationResult.VALID) {\n throw new InvalidKeyHashError(this.pkh, invalidDetail(pkhValidation));\n }\n }\n\n async publicKeyHash(): Promise<string> {\n return this.pkh;\n }\n\n private createURL(path: string) {\n // Trim trailing slashes because it is assumed to be included in path\n return `${this.rootUrl.replace(/\\/+$/g, '')}${path}`;\n }\n\n async publicKey(): Promise<string> {\n try {\n const { public_key } = await this.http.createRequest<PublicKeyResponse>({\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'GET',\n headers: this.options.headers,\n });\n return public_key;\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new PublicKeyNotFoundError(this.pkh, ex);\n }\n }\n throw ex;\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n try {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n const watermarkedBytes = buf2hex(toBuffer(bb));\n const { signature } = await this.http.createRequest<SignResponse>(\n {\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'POST',\n headers: this.options.headers,\n },\n watermarkedBytes\n );\n const pref = signature.startsWith('sig')\n ? signature.substring(0, 3)\n : signature.substring(0, 5);\n\n if (!isValidPrefix(pref)) {\n throw new InvalidSignatureError(\n signature,\n invalidDetail(ValidationResult.NO_PREFIX_MATCHED) + ` from a remote signer.`\n );\n }\n\n const decoded = b58cdecode(signature, prefix[pref]);\n\n const pk = await this.publicKey();\n await this.verifyPublicKey(pk);\n const signatureVerified = verifySignature(watermarkedBytes, pk, signature);\n if (!signatureVerified) {\n throw new SignatureVerificationError(watermarkedBytes, signature);\n }\n\n return {\n bytes,\n sig: b58cencode(decoded, prefix.sig),\n prefixSig: signature,\n sbytes: bytes + buf2hex(toBuffer(decoded)),\n };\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new PublicKeyNotFoundError(this.pkh, ex);\n } else if (ex.status === STATUS_CODE.FORBIDDEN) {\n throw new OperationNotAuthorizedError('Signing Operation not authorized', ex);\n } else if (ex.status === STATUS_CODE.BAD_REQUEST) {\n throw new BadSigningDataError(ex, bytes, watermark);\n }\n }\n throw ex;\n }\n }\n\n async verifyPublicKey(publicKey: string) {\n const curve = publicKey.substring(0, 2) as curves;\n const _publicKey = b58cdecode(publicKey, pref[curve].pk);\n\n const publicKeyHash = b58cencode(hash(_publicKey, 20), pref[curve].pkh);\n if (publicKeyHash !== this.pkh) {\n throw new PublicKeyVerificationError(publicKey, publicKeyHash, this.pkh);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;;AAGG;AACG,MAAO,sBAAuB,SAAQ,YAAY,CAAA;IACtD,WAAmB,CAAA,GAAW,EAAS,KAAU,EAAA;AAC/C,QAAA,KAAK,EAAE,CAAC;QADS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;AAE/C,QAAA,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAyC,sCAAA,EAAA,GAAG,IAAI,CAAC;KACjE;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,2BAA4B,SAAQ,qBAAqB,CAAA;IACpE,WAAmB,CAAA,OAAe,EAAS,KAAU,EAAA;AACnD,QAAA,KAAK,EAAE,CAAC;QADS,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;AAEnD,QAAA,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;KACtC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AACnD,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAa,EAAE,SAAsB,EAAA;AACzE,QAAA,KAAK,EAAE,CAAC;QADS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AAEjD,QAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,SAAS;AACtB,cAAE,CAAqC,mCAAA,CAAA;AACvC,cAAE,CAAA,uBAAA,EAA0B,KAAK,CAAA,CAAA,CAAG,CAAC;KACxC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,0BAA2B,SAAQ,YAAY,CAAA;AAC1D,IAAA,WAAA,CACS,WAAmB,EACnB,YAAoB,EACpB,cAAsB,EAAA;AAE7B,QAAA,KAAK,EAAE,CAAC;QAJD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACnB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAQ;QACpB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAQ;AAG7B,QAAA,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,CAAiB,cAAA,EAAA,WAAW,cAAc,YAAY,CAAA,iCAAA,EAAoC,cAAc,CAAA,EAAA,CAAI,CAAC;KAC7H;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,0BAA2B,SAAQ,YAAY,CAAA;IAE1D,WAAmB,CAAA,KAAa,EAAS,SAAiB,EAAA;AACxD,QAAA,KAAK,EAAE,CAAC;QADS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QAAS,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;QADnD,IAAI,CAAA,IAAA,GAAG,kCAAkC,CAAC;AAG/C,QAAA,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,kEAAA,CAAoE,CAAC;KACrF;AACF;;ACjED;AACa,MAAA,OAAO,GAAG;AACnB,IAAA,YAAY,EAAE,0CAA0C;AACxD,IAAA,SAAS,EAAE,kBAAkB;;;AC0CjC,MAAM,IAAI,GAAG;AACX,IAAA,EAAE,EAAE;AACF,QAAA,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;AAClB,QAAA,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,KAAK;AAClB,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;AAClB,QAAA,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,KAAK;AAClB,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;AAClB,QAAA,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,KAAK;AAClB,KAAA;CACF,CAAC;MAEW,YAAY,CAAA;IACvB,WACU,CAAA,GAAW,EACX,OAAe,EACf,OAAA,GAA+B,EAAE,EACjC,IAAA,GAAO,IAAI,WAAW,EAAE,EAAA;QAHxB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAO,CAAA,OAAA,GAAP,OAAO,CAA0B;QACjC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAoB;QAEhC,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,QAAA,IAAI,aAAa,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC5C,YAAA,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AACvE,SAAA;KACF;IAEK,aAAa,GAAA;;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC;SACjB,CAAA,CAAA;AAAA,KAAA;AAEO,IAAA,SAAS,CAAC,IAAY,EAAA;;AAE5B,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAG,EAAA,IAAI,EAAE,CAAC;KACtD;IAEK,SAAS,GAAA;;YACb,IAAI;gBACF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAoB;oBACtE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,GAAG,CAAA,CAAE,CAAC;AACxC,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;AAC9B,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;AAAC,YAAA,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,YAAY,iBAAiB,EAAE;AACnC,oBAAA,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,SAAS,EAAE;wBACvC,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAChD,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;IAEK,SAAS,GAAA;;AACb,YAAA,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,CAAC,CAAC;SACjE,CAAA,CAAA;AAAA,KAAA;IAEK,IAAI,CAAC,KAAa,EAAE,SAAsB,EAAA;;YAC9C,IAAI;AACF,gBAAA,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,gBAAA,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;AACpC,oBAAA,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9B,iBAAA;gBACD,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CACjD;oBACE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,GAAG,CAAA,CAAE,CAAC;AACxC,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;iBAC9B,EACD,gBAAgB,CACjB,CAAC;AACF,gBAAA,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;sBACpC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;sBACzB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9B,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACxB,oBAAA,MAAM,IAAI,qBAAqB,CAC7B,SAAS,EACT,aAAa,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAA,sBAAA,CAAwB,CAC7E,CAAC;AACH,iBAAA;gBAED,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAEpD,gBAAA,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AAClC,gBAAA,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC3E,IAAI,CAAC,iBAAiB,EAAE;AACtB,oBAAA,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACnE,iBAAA;gBAED,OAAO;oBACL,KAAK;oBACL,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;AACpC,oBAAA,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAC3C,CAAC;AACH,aAAA;AAAC,YAAA,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,YAAY,iBAAiB,EAAE;AACnC,oBAAA,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,SAAS,EAAE;wBACvC,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAChD,qBAAA;AAAM,yBAAA,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,SAAS,EAAE;AAC9C,wBAAA,MAAM,IAAI,2BAA2B,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;AAC/E,qBAAA;AAAM,yBAAA,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,WAAW,EAAE;wBAChD,MAAM,IAAI,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AACrD,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAEK,IAAA,eAAe,CAAC,SAAiB,EAAA;;YACrC,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;AAClD,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAEzD,YAAA,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACxE,YAAA,IAAI,aAAa,KAAK,IAAI,CAAC,GAAG,EAAE;gBAC9B,MAAM,IAAI,0BAA0B,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1E,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AACF;;;;"}
|
|
@@ -35,80 +35,79 @@
|
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* @category Error
|
|
38
|
-
* @description Error
|
|
38
|
+
* @description Error indicates a failure in grabbing the public key
|
|
39
39
|
*/
|
|
40
|
-
class
|
|
41
|
-
constructor(
|
|
42
|
-
super(
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
40
|
+
class PublicKeyNotFoundError extends core.TaquitoError {
|
|
41
|
+
constructor(pkh, cause) {
|
|
42
|
+
super();
|
|
43
|
+
this.pkh = pkh;
|
|
44
|
+
this.cause = cause;
|
|
45
45
|
this.name = 'KeyNotFoundError';
|
|
46
|
+
this.message = `Public key not found of this address "${pkh}".`;
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* @category Error
|
|
50
|
-
* @description Error
|
|
51
|
+
* @description Error indicates an unauthorized operation being attempted
|
|
51
52
|
*/
|
|
52
|
-
class OperationNotAuthorizedError extends
|
|
53
|
-
constructor(message,
|
|
54
|
-
super(
|
|
53
|
+
class OperationNotAuthorizedError extends core.PermissionDeniedError {
|
|
54
|
+
constructor(message, cause) {
|
|
55
|
+
super();
|
|
55
56
|
this.message = message;
|
|
56
|
-
this.
|
|
57
|
+
this.cause = cause;
|
|
57
58
|
this.name = 'OperationNotAuthorized';
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
/**
|
|
61
62
|
* @category Error
|
|
62
|
-
* @description Error
|
|
63
|
+
* @description Error indicates bad signing data
|
|
63
64
|
*/
|
|
64
|
-
class BadSigningDataError extends
|
|
65
|
-
constructor(
|
|
66
|
-
super(
|
|
67
|
-
this.
|
|
68
|
-
this.
|
|
69
|
-
this.data = data;
|
|
65
|
+
class BadSigningDataError extends core.TaquitoError {
|
|
66
|
+
constructor(cause, bytes, watermark) {
|
|
67
|
+
super();
|
|
68
|
+
this.cause = cause;
|
|
69
|
+
this.bytes = bytes;
|
|
70
70
|
this.name = 'BadSigningData';
|
|
71
|
+
this.message = watermark
|
|
72
|
+
? `Invalid signing data with watermark`
|
|
73
|
+
: `Invalid signing data: "${bytes}"`;
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
76
|
/**
|
|
74
77
|
* @category Error
|
|
75
|
-
* @description Error
|
|
78
|
+
* @description Error indicates a mismatch between the initialized and the requested public key
|
|
76
79
|
*/
|
|
77
|
-
class
|
|
78
|
-
constructor(
|
|
79
|
-
super(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
this.
|
|
84
|
-
this.
|
|
80
|
+
class PublicKeyVerificationError extends core.TaquitoError {
|
|
81
|
+
constructor(requestedPk, requestedPkh, initializedPkh) {
|
|
82
|
+
super();
|
|
83
|
+
this.requestedPk = requestedPk;
|
|
84
|
+
this.requestedPkh = requestedPkh;
|
|
85
|
+
this.initializedPkh = initializedPkh;
|
|
86
|
+
this.name = 'PublicKeyVerificationFailedError';
|
|
87
|
+
this.message = `Requested pk "${requestedPk}" has pkh "${requestedPkh}" deesn't match initialized pkh "${initializedPkh}."`;
|
|
85
88
|
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
89
|
-
const VERSION = {
|
|
90
|
-
"commitHash": "adc0f8c31492e8eb2f03b06ac36ba053e8ba6224",
|
|
91
|
-
"version": "16.2.0"
|
|
92
|
-
};
|
|
93
|
-
|
|
89
|
+
}
|
|
94
90
|
/**
|
|
95
91
|
* @category Error
|
|
96
92
|
* @description Error
|
|
97
93
|
*/
|
|
98
|
-
class
|
|
94
|
+
class SignatureVerificationError extends core.TaquitoError {
|
|
99
95
|
constructor(bytes, signature) {
|
|
100
|
-
super(
|
|
101
|
-
Signature failed verification against public key:
|
|
102
|
-
{
|
|
103
|
-
bytes: ${bytes},
|
|
104
|
-
signature: ${signature}
|
|
105
|
-
}
|
|
106
|
-
`);
|
|
96
|
+
super();
|
|
107
97
|
this.bytes = bytes;
|
|
108
98
|
this.signature = signature;
|
|
109
99
|
this.name = 'SignatureVerificationFailedError';
|
|
100
|
+
this.name = 'SignatureVerificationFailedError';
|
|
101
|
+
this.message = `Invalid signature of bytes failed verification agaisnt public key.`;
|
|
110
102
|
}
|
|
111
|
-
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
106
|
+
const VERSION = {
|
|
107
|
+
"commitHash": "1169170fdbf4efd03283dc902bc03b9df5bb2fb1",
|
|
108
|
+
"version": "17.0.0-beta-RC.0"
|
|
109
|
+
};
|
|
110
|
+
|
|
112
111
|
const pref = {
|
|
113
112
|
ed: {
|
|
114
113
|
pk: utils.prefix['edpk'],
|
|
@@ -137,7 +136,7 @@
|
|
|
137
136
|
this.http = http;
|
|
138
137
|
const pkhValidation = utils.validateKeyHash(this.pkh);
|
|
139
138
|
if (pkhValidation !== utils.ValidationResult.VALID) {
|
|
140
|
-
throw new core.InvalidKeyHashError(this.pkh, utils.
|
|
139
|
+
throw new core.InvalidKeyHashError(this.pkh, utils.invalidDetail(pkhValidation));
|
|
141
140
|
}
|
|
142
141
|
}
|
|
143
142
|
publicKeyHash() {
|
|
@@ -162,7 +161,7 @@
|
|
|
162
161
|
catch (ex) {
|
|
163
162
|
if (ex instanceof httpUtils.HttpResponseError) {
|
|
164
163
|
if (ex.status === httpUtils.STATUS_CODE.NOT_FOUND) {
|
|
165
|
-
throw new
|
|
164
|
+
throw new PublicKeyNotFoundError(this.pkh, ex);
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
167
|
throw ex;
|
|
@@ -191,14 +190,14 @@
|
|
|
191
190
|
? signature.substring(0, 3)
|
|
192
191
|
: signature.substring(0, 5);
|
|
193
192
|
if (!utils.isValidPrefix(pref)) {
|
|
194
|
-
throw new core.InvalidSignatureError(signature, utils.
|
|
193
|
+
throw new core.InvalidSignatureError(signature, utils.invalidDetail(utils.ValidationResult.NO_PREFIX_MATCHED) + ` from a remote signer.`);
|
|
195
194
|
}
|
|
196
195
|
const decoded = utils.b58cdecode(signature, utils.prefix[pref]);
|
|
197
196
|
const pk = yield this.publicKey();
|
|
198
197
|
yield this.verifyPublicKey(pk);
|
|
199
198
|
const signatureVerified = utils.verifySignature(watermarkedBytes, pk, signature);
|
|
200
199
|
if (!signatureVerified) {
|
|
201
|
-
throw new
|
|
200
|
+
throw new SignatureVerificationError(watermarkedBytes, signature);
|
|
202
201
|
}
|
|
203
202
|
return {
|
|
204
203
|
bytes,
|
|
@@ -210,16 +209,13 @@
|
|
|
210
209
|
catch (ex) {
|
|
211
210
|
if (ex instanceof httpUtils.HttpResponseError) {
|
|
212
211
|
if (ex.status === httpUtils.STATUS_CODE.NOT_FOUND) {
|
|
213
|
-
throw new
|
|
212
|
+
throw new PublicKeyNotFoundError(this.pkh, ex);
|
|
214
213
|
}
|
|
215
214
|
else if (ex.status === httpUtils.STATUS_CODE.FORBIDDEN) {
|
|
216
215
|
throw new OperationNotAuthorizedError('Signing Operation not authorized', ex);
|
|
217
216
|
}
|
|
218
217
|
else if (ex.status === httpUtils.STATUS_CODE.BAD_REQUEST) {
|
|
219
|
-
throw new BadSigningDataError(
|
|
220
|
-
bytes,
|
|
221
|
-
watermark,
|
|
222
|
-
});
|
|
218
|
+
throw new BadSigningDataError(ex, bytes, watermark);
|
|
223
219
|
}
|
|
224
220
|
}
|
|
225
221
|
throw ex;
|
|
@@ -232,14 +228,13 @@
|
|
|
232
228
|
const _publicKey = utils.b58cdecode(publicKey, pref[curve].pk);
|
|
233
229
|
const publicKeyHash = utils.b58cencode(blake2b.hash(_publicKey, 20), pref[curve].pkh);
|
|
234
230
|
if (publicKeyHash !== this.pkh) {
|
|
235
|
-
throw new
|
|
231
|
+
throw new PublicKeyVerificationError(publicKey, publicKeyHash, this.pkh);
|
|
236
232
|
}
|
|
237
233
|
});
|
|
238
234
|
}
|
|
239
235
|
}
|
|
240
236
|
|
|
241
237
|
exports.RemoteSigner = RemoteSigner;
|
|
242
|
-
exports.SignatureVerificationFailedError = SignatureVerificationFailedError;
|
|
243
238
|
exports.VERSION = VERSION;
|
|
244
239
|
|
|
245
240
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-remote-signer.umd.js","sources":["../src/errors.ts","../src/version.ts","../src/taquito-remote-signer.ts"],"sourcesContent":["/**\n * @category Error\n * @description Error that indicates a failure in grabbing the public key\n */\nexport class KeyNotFoundError extends Error {\n public name = 'KeyNotFoundError';\n constructor(public message: string, public innerException: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unauthorized operation being attempted\n */\nexport class OperationNotAuthorizedError extends Error {\n public name = 'OperationNotAuthorized';\n constructor(public message: string, public innerException: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates bad signing data\n */\nexport class BadSigningDataError extends Error {\n public name = 'BadSigningData';\n constructor(public message: string, public innerException: any, public readonly data: any) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a mismatch between the initialized and the requested public key\n */\nexport class PublicKeyMismatch extends Error {\n public name = 'PublicKeyMismatch';\n constructor(public requested: string, initialized: string) {\n super(\n `Requested public key hash does not match the initialized public key hash: {\n requested: ${requested},\n initialized: ${initialized}\n }`\n );\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"adc0f8c31492e8eb2f03b06ac36ba053e8ba6224\",\n \"version\": \"16.2.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/remote-signer\n */\nimport { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils';\nimport {\n b58cdecode,\n b58cencode,\n buf2hex,\n hex2buf,\n isValidPrefix,\n mergebuf,\n prefix,\n verifySignature,\n validateKeyHash,\n ValidationResult,\n invalidErrorDetail,\n} from '@taquito/utils';\nimport { hash } from '@stablelib/blake2b';\nimport toBuffer from 'typedarray-to-buffer';\nimport {\n BadSigningDataError,\n KeyNotFoundError,\n OperationNotAuthorizedError,\n PublicKeyMismatch,\n} from './errors';\nimport { Signer } from '@taquito/taquito';\nimport { InvalidSignatureError, InvalidKeyHashError, ProhibitedActionError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error\n */\nexport class SignatureVerificationFailedError extends Error {\n public name = 'SignatureVerificationFailedError';\n constructor(public bytes: string, public signature: string) {\n super(\n `\n Signature failed verification against public key:\n {\n bytes: ${bytes},\n signature: ${signature}\n }\n `\n );\n }\n}\n\ninterface PublicKeyResponse {\n public_key: string;\n}\n\ninterface SignResponse {\n signature: string;\n}\n\ntype curves = 'ed' | 'p2' | 'sp';\n\nexport interface RemoteSignerOptions {\n headers?: { [key: string]: string };\n}\n\nexport { VERSION } from './version';\n\nconst pref = {\n ed: {\n pk: prefix['edpk'],\n sk: prefix['edsk'],\n pkh: prefix.tz1,\n sig: prefix.edsig,\n },\n p2: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n sp: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\nexport class RemoteSigner implements Signer {\n constructor(\n private pkh: string,\n private rootUrl: string,\n private options: RemoteSignerOptions = {},\n private http = new HttpBackend()\n ) {\n const pkhValidation = validateKeyHash(this.pkh);\n if (pkhValidation !== ValidationResult.VALID) {\n throw new InvalidKeyHashError(this.pkh, invalidErrorDetail(pkhValidation));\n }\n }\n\n async publicKeyHash(): Promise<string> {\n return this.pkh;\n }\n\n private createURL(path: string) {\n // Trim trailing slashes because it is assumed to be included in path\n return `${this.rootUrl.replace(/\\/+$/g, '')}${path}`;\n }\n\n async publicKey(): Promise<string> {\n try {\n const { public_key } = await this.http.createRequest<PublicKeyResponse>({\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'GET',\n headers: this.options.headers,\n });\n return public_key;\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new KeyNotFoundError(`Key not found: ${this.pkh}`, ex);\n }\n }\n throw ex;\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n try {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n const watermarkedBytes = buf2hex(toBuffer(bb));\n const { signature } = await this.http.createRequest<SignResponse>(\n {\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'POST',\n headers: this.options.headers,\n },\n watermarkedBytes\n );\n const pref = signature.startsWith('sig')\n ? signature.substring(0, 3)\n : signature.substring(0, 5);\n\n if (!isValidPrefix(pref)) {\n throw new InvalidSignatureError(\n signature,\n invalidErrorDetail(ValidationResult.NO_PREFIX_MATCHED) + ` from a remote signer.`\n );\n }\n\n const decoded = b58cdecode(signature, prefix[pref]);\n\n const pk = await this.publicKey();\n await this.verifyPublicKey(pk);\n const signatureVerified = verifySignature(watermarkedBytes, pk, signature);\n if (!signatureVerified) {\n throw new SignatureVerificationFailedError(watermarkedBytes, signature);\n }\n\n return {\n bytes,\n sig: b58cencode(decoded, prefix.sig),\n prefixSig: signature,\n sbytes: bytes + buf2hex(toBuffer(decoded)),\n };\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new KeyNotFoundError(`Key not found: ${this.pkh}`, ex);\n } else if (ex.status === STATUS_CODE.FORBIDDEN) {\n throw new OperationNotAuthorizedError('Signing Operation not authorized', ex);\n } else if (ex.status === STATUS_CODE.BAD_REQUEST) {\n throw new BadSigningDataError('Invalid data', ex, {\n bytes,\n watermark,\n });\n }\n }\n throw ex;\n }\n }\n\n async verifyPublicKey(publicKey: string) {\n const curve = publicKey.substring(0, 2) as curves;\n const _publicKey = b58cdecode(publicKey, pref[curve].pk);\n\n const publicKeyHash = b58cencode(hash(_publicKey, 20), pref[curve].pkh);\n if (publicKeyHash !== this.pkh) {\n throw new PublicKeyMismatch(publicKeyHash, this.pkh);\n }\n }\n}\n"],"names":["prefix","HttpBackend","validateKeyHash","ValidationResult","InvalidKeyHashError","invalidErrorDetail","HttpResponseError","STATUS_CODE","ProhibitedActionError","hex2buf","mergebuf","buf2hex","toBuffer","isValidPrefix","InvalidSignatureError","b58cdecode","verifySignature","b58cencode","hash"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-remote-signer.umd.js","sources":["../src/errors.ts","../src/version.ts","../src/taquito-remote-signer.ts"],"sourcesContent":["import { PermissionDeniedError, TaquitoError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error indicates a failure in grabbing the public key\n */\nexport class PublicKeyNotFoundError extends TaquitoError {\n constructor(public pkh: string, public cause: any) {\n super();\n this.name = 'KeyNotFoundError';\n this.message = `Public key not found of this address \"${pkh}\".`;\n }\n}\n\n/**\n * @category Error\n * @description Error indicates an unauthorized operation being attempted\n */\nexport class OperationNotAuthorizedError extends PermissionDeniedError {\n constructor(public message: string, public cause: any) {\n super();\n this.name = 'OperationNotAuthorized';\n }\n}\n\n/**\n * @category Error\n * @description Error indicates bad signing data\n */\nexport class BadSigningDataError extends TaquitoError {\n constructor(public cause: any, public bytes: string, watermark?: Uint8Array) {\n super();\n this.name = 'BadSigningData';\n this.message = watermark\n ? `Invalid signing data with watermark`\n : `Invalid signing data: \"${bytes}\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error indicates a mismatch between the initialized and the requested public key\n */\nexport class PublicKeyVerificationError extends TaquitoError {\n constructor(\n public requestedPk: string,\n public requestedPkh: string,\n public initializedPkh: string\n ) {\n super();\n this.name = 'PublicKeyVerificationFailedError';\n this.message = `Requested pk \"${requestedPk}\" has pkh \"${requestedPkh}\" deesn't match initialized pkh \"${initializedPkh}.\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error\n */\nexport class SignatureVerificationError extends TaquitoError {\n public name = 'SignatureVerificationFailedError';\n constructor(public bytes: string, public signature: string) {\n super();\n this.name = 'SignatureVerificationFailedError';\n this.message = `Invalid signature of bytes failed verification agaisnt public key.`;\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"1169170fdbf4efd03283dc902bc03b9df5bb2fb1\",\n \"version\": \"17.0.0-beta-RC.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/remote-signer\n */\nimport { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils';\nimport {\n b58cdecode,\n b58cencode,\n buf2hex,\n hex2buf,\n isValidPrefix,\n mergebuf,\n prefix,\n verifySignature,\n validateKeyHash,\n ValidationResult,\n invalidDetail,\n} from '@taquito/utils';\nimport { hash } from '@stablelib/blake2b';\nimport toBuffer from 'typedarray-to-buffer';\nimport {\n BadSigningDataError,\n PublicKeyNotFoundError,\n OperationNotAuthorizedError,\n PublicKeyVerificationError,\n SignatureVerificationError,\n} from './errors';\nimport { Signer } from '@taquito/taquito';\nimport { InvalidSignatureError, InvalidKeyHashError, ProhibitedActionError } from '@taquito/core';\n\ninterface PublicKeyResponse {\n public_key: string;\n}\n\ninterface SignResponse {\n signature: string;\n}\n\ntype curves = 'ed' | 'p2' | 'sp';\n\nexport interface RemoteSignerOptions {\n headers?: { [key: string]: string };\n}\n\nexport { VERSION } from './version';\n\nconst pref = {\n ed: {\n pk: prefix['edpk'],\n sk: prefix['edsk'],\n pkh: prefix.tz1,\n sig: prefix.edsig,\n },\n p2: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n sp: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\nexport class RemoteSigner implements Signer {\n constructor(\n private pkh: string,\n private rootUrl: string,\n private options: RemoteSignerOptions = {},\n private http = new HttpBackend()\n ) {\n const pkhValidation = validateKeyHash(this.pkh);\n if (pkhValidation !== ValidationResult.VALID) {\n throw new InvalidKeyHashError(this.pkh, invalidDetail(pkhValidation));\n }\n }\n\n async publicKeyHash(): Promise<string> {\n return this.pkh;\n }\n\n private createURL(path: string) {\n // Trim trailing slashes because it is assumed to be included in path\n return `${this.rootUrl.replace(/\\/+$/g, '')}${path}`;\n }\n\n async publicKey(): Promise<string> {\n try {\n const { public_key } = await this.http.createRequest<PublicKeyResponse>({\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'GET',\n headers: this.options.headers,\n });\n return public_key;\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new PublicKeyNotFoundError(this.pkh, ex);\n }\n }\n throw ex;\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n try {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n const watermarkedBytes = buf2hex(toBuffer(bb));\n const { signature } = await this.http.createRequest<SignResponse>(\n {\n url: this.createURL(`/keys/${this.pkh}`),\n method: 'POST',\n headers: this.options.headers,\n },\n watermarkedBytes\n );\n const pref = signature.startsWith('sig')\n ? signature.substring(0, 3)\n : signature.substring(0, 5);\n\n if (!isValidPrefix(pref)) {\n throw new InvalidSignatureError(\n signature,\n invalidDetail(ValidationResult.NO_PREFIX_MATCHED) + ` from a remote signer.`\n );\n }\n\n const decoded = b58cdecode(signature, prefix[pref]);\n\n const pk = await this.publicKey();\n await this.verifyPublicKey(pk);\n const signatureVerified = verifySignature(watermarkedBytes, pk, signature);\n if (!signatureVerified) {\n throw new SignatureVerificationError(watermarkedBytes, signature);\n }\n\n return {\n bytes,\n sig: b58cencode(decoded, prefix.sig),\n prefixSig: signature,\n sbytes: bytes + buf2hex(toBuffer(decoded)),\n };\n } catch (ex) {\n if (ex instanceof HttpResponseError) {\n if (ex.status === STATUS_CODE.NOT_FOUND) {\n throw new PublicKeyNotFoundError(this.pkh, ex);\n } else if (ex.status === STATUS_CODE.FORBIDDEN) {\n throw new OperationNotAuthorizedError('Signing Operation not authorized', ex);\n } else if (ex.status === STATUS_CODE.BAD_REQUEST) {\n throw new BadSigningDataError(ex, bytes, watermark);\n }\n }\n throw ex;\n }\n }\n\n async verifyPublicKey(publicKey: string) {\n const curve = publicKey.substring(0, 2) as curves;\n const _publicKey = b58cdecode(publicKey, pref[curve].pk);\n\n const publicKeyHash = b58cencode(hash(_publicKey, 20), pref[curve].pkh);\n if (publicKeyHash !== this.pkh) {\n throw new PublicKeyVerificationError(publicKey, publicKeyHash, this.pkh);\n }\n }\n}\n"],"names":["TaquitoError","PermissionDeniedError","prefix","HttpBackend","validateKeyHash","ValidationResult","InvalidKeyHashError","invalidDetail","HttpResponseError","STATUS_CODE","ProhibitedActionError","hex2buf","mergebuf","buf2hex","toBuffer","isValidPrefix","InvalidSignatureError","b58cdecode","verifySignature","b58cencode","hash"],"mappings":"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"}
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -1,40 +1,48 @@
|
|
|
1
|
+
import { PermissionDeniedError, TaquitoError } from '@taquito/core';
|
|
1
2
|
/**
|
|
2
3
|
* @category Error
|
|
3
|
-
* @description Error
|
|
4
|
+
* @description Error indicates a failure in grabbing the public key
|
|
4
5
|
*/
|
|
5
|
-
export declare class
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor(message: string, innerException: any);
|
|
6
|
+
export declare class PublicKeyNotFoundError extends TaquitoError {
|
|
7
|
+
pkh: string;
|
|
8
|
+
cause: any;
|
|
9
|
+
constructor(pkh: string, cause: any);
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* @category Error
|
|
13
|
-
* @description Error
|
|
13
|
+
* @description Error indicates an unauthorized operation being attempted
|
|
14
14
|
*/
|
|
15
|
-
export declare class OperationNotAuthorizedError extends
|
|
15
|
+
export declare class OperationNotAuthorizedError extends PermissionDeniedError {
|
|
16
16
|
message: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
constructor(message: string, innerException: any);
|
|
17
|
+
cause: any;
|
|
18
|
+
constructor(message: string, cause: any);
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
21
|
* @category Error
|
|
23
|
-
* @description Error
|
|
22
|
+
* @description Error indicates bad signing data
|
|
24
23
|
*/
|
|
25
|
-
export declare class BadSigningDataError extends
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
export declare class BadSigningDataError extends TaquitoError {
|
|
25
|
+
cause: any;
|
|
26
|
+
bytes: string;
|
|
27
|
+
constructor(cause: any, bytes: string, watermark?: Uint8Array);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @category Error
|
|
31
|
+
* @description Error indicates a mismatch between the initialized and the requested public key
|
|
32
|
+
*/
|
|
33
|
+
export declare class PublicKeyVerificationError extends TaquitoError {
|
|
34
|
+
requestedPk: string;
|
|
35
|
+
requestedPkh: string;
|
|
36
|
+
initializedPkh: string;
|
|
37
|
+
constructor(requestedPk: string, requestedPkh: string, initializedPkh: string);
|
|
31
38
|
}
|
|
32
39
|
/**
|
|
33
40
|
* @category Error
|
|
34
|
-
* @description Error
|
|
41
|
+
* @description Error
|
|
35
42
|
*/
|
|
36
|
-
export declare class
|
|
37
|
-
|
|
43
|
+
export declare class SignatureVerificationError extends TaquitoError {
|
|
44
|
+
bytes: string;
|
|
45
|
+
signature: string;
|
|
38
46
|
name: string;
|
|
39
|
-
constructor(
|
|
47
|
+
constructor(bytes: string, signature: string);
|
|
40
48
|
}
|
|
@@ -4,16 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { HttpBackend } from '@taquito/http-utils';
|
|
6
6
|
import { Signer } from '@taquito/taquito';
|
|
7
|
-
/**
|
|
8
|
-
* @category Error
|
|
9
|
-
* @description Error
|
|
10
|
-
*/
|
|
11
|
-
export declare class SignatureVerificationFailedError extends Error {
|
|
12
|
-
bytes: string;
|
|
13
|
-
signature: string;
|
|
14
|
-
name: string;
|
|
15
|
-
constructor(bytes: string, signature: string);
|
|
16
|
-
}
|
|
17
7
|
export interface RemoteSignerOptions {
|
|
18
8
|
headers?: {
|
|
19
9
|
[key: string]: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taquito/remote-signer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.0.0-beta-RC.0",
|
|
4
4
|
"description": "Remote signer provider",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tezos",
|
|
@@ -63,9 +63,10 @@
|
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@stablelib/blake2b": "^1.0.1",
|
|
65
65
|
"@stablelib/ed25519": "^1.0.3",
|
|
66
|
-
"@taquito/
|
|
67
|
-
"@taquito/
|
|
68
|
-
"@taquito/
|
|
66
|
+
"@taquito/core": "^17.0.0-beta-RC.0",
|
|
67
|
+
"@taquito/http-utils": "^17.0.0-beta-RC.0",
|
|
68
|
+
"@taquito/taquito": "^17.0.0-beta-RC.0",
|
|
69
|
+
"@taquito/utils": "^17.0.0-beta-RC.0",
|
|
69
70
|
"typedarray-to-buffer": "^4.0.0"
|
|
70
71
|
},
|
|
71
72
|
"devDependencies": {
|
|
@@ -97,5 +98,5 @@
|
|
|
97
98
|
"ts-toolbelt": "^9.6.0",
|
|
98
99
|
"typescript": "~4.1.5"
|
|
99
100
|
},
|
|
100
|
-
"gitHead": "
|
|
101
|
+
"gitHead": "8acebfdf7b4361533d963eed87f03f8983dc679b"
|
|
101
102
|
}
|