@taquito/michelson-encoder 17.1.0-beta-RC.0 → 17.1.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/michelson-map.js +56 -22
- package/dist/lib/michelson-map.js.map +1 -1
- package/dist/lib/schema/errors.js +128 -0
- package/dist/lib/schema/errors.js.map +1 -0
- package/dist/lib/schema/parameter.js +49 -9
- package/dist/lib/schema/parameter.js.map +1 -1
- package/dist/lib/schema/storage.js +52 -40
- package/dist/lib/schema/storage.js.map +1 -1
- package/dist/lib/schema/view-schema.js +20 -13
- package/dist/lib/schema/view-schema.js.map +1 -1
- package/dist/lib/taquito-michelson-encoder.js +1 -1
- package/dist/lib/taquito-michelson-encoder.js.map +1 -1
- package/dist/lib/tokens/bigmap.js +18 -12
- package/dist/lib/tokens/bigmap.js.map +1 -1
- package/dist/lib/tokens/bls12-381-fr.js +18 -13
- package/dist/lib/tokens/bls12-381-fr.js.map +1 -1
- package/dist/lib/tokens/bls12-381-g1.js +18 -13
- package/dist/lib/tokens/bls12-381-g1.js.map +1 -1
- package/dist/lib/tokens/bls12-381-g2.js +18 -13
- package/dist/lib/tokens/bls12-381-g2.js.map +1 -1
- package/dist/lib/tokens/chain-id.js +17 -11
- package/dist/lib/tokens/chain-id.js.map +1 -1
- package/dist/lib/tokens/chest-key.js +18 -13
- package/dist/lib/tokens/chest-key.js.map +1 -1
- package/dist/lib/tokens/chest.js +19 -14
- package/dist/lib/tokens/chest.js.map +1 -1
- package/dist/lib/tokens/comparable/address.js +25 -13
- package/dist/lib/tokens/comparable/address.js.map +1 -1
- package/dist/lib/tokens/comparable/bytes.js +18 -13
- package/dist/lib/tokens/comparable/bytes.js.map +1 -1
- package/dist/lib/tokens/comparable/int.js +17 -13
- package/dist/lib/tokens/comparable/int.js.map +1 -1
- package/dist/lib/tokens/comparable/key_hash.js +17 -11
- package/dist/lib/tokens/comparable/key_hash.js.map +1 -1
- package/dist/lib/tokens/comparable/mutez.js +17 -13
- package/dist/lib/tokens/comparable/mutez.js.map +1 -1
- package/dist/lib/tokens/comparable/nat.js +19 -15
- package/dist/lib/tokens/comparable/nat.js.map +1 -1
- package/dist/lib/tokens/comparable/tx_rollup_l2_address.js +25 -9
- package/dist/lib/tokens/comparable/tx_rollup_l2_address.js.map +1 -1
- package/dist/lib/tokens/constant.js +17 -0
- package/dist/lib/tokens/constant.js.map +1 -1
- package/dist/lib/tokens/contract.js +21 -11
- package/dist/lib/tokens/contract.js.map +1 -1
- package/dist/lib/tokens/createToken.js +8 -2
- package/dist/lib/tokens/createToken.js.map +1 -1
- package/dist/lib/tokens/key.js +17 -11
- package/dist/lib/tokens/key.js.map +1 -1
- package/dist/lib/tokens/list.js +22 -16
- package/dist/lib/tokens/list.js.map +1 -1
- package/dist/lib/tokens/map.js +18 -12
- package/dist/lib/tokens/map.js.map +1 -1
- package/dist/lib/tokens/never.js +16 -3
- package/dist/lib/tokens/never.js.map +1 -1
- package/dist/lib/tokens/or.js +6 -2
- package/dist/lib/tokens/or.js.map +1 -1
- package/dist/lib/tokens/pair.js +12 -4
- package/dist/lib/tokens/pair.js.map +1 -1
- package/dist/lib/tokens/sapling-state.js +15 -2
- package/dist/lib/tokens/sapling-state.js.map +1 -1
- package/dist/lib/tokens/sapling-transaction-deprecated.js +12 -2
- package/dist/lib/tokens/sapling-transaction-deprecated.js.map +1 -1
- package/dist/lib/tokens/sapling-transaction.js +12 -2
- package/dist/lib/tokens/sapling-transaction.js.map +1 -1
- package/dist/lib/tokens/set.js +18 -12
- package/dist/lib/tokens/set.js.map +1 -1
- package/dist/lib/tokens/signature.js +17 -11
- package/dist/lib/tokens/signature.js.map +1 -1
- package/dist/lib/tokens/ticket-deprecated.js +10 -2
- package/dist/lib/tokens/ticket-deprecated.js.map +1 -1
- package/dist/lib/tokens/ticket.js +10 -2
- package/dist/lib/tokens/ticket.js.map +1 -1
- package/dist/lib/tokens/token.js +3 -2
- package/dist/lib/tokens/token.js.map +1 -1
- package/dist/lib/version.js +2 -2
- package/dist/lib/version.js.map +1 -1
- package/dist/taquito-michelson-encoder.es6.js +720 -399
- package/dist/taquito-michelson-encoder.es6.js.map +1 -1
- package/dist/taquito-michelson-encoder.umd.js +724 -405
- package/dist/taquito-michelson-encoder.umd.js.map +1 -1
- package/dist/types/michelson-map.d.ts +14 -6
- package/dist/types/schema/errors.d.ts +83 -0
- package/dist/types/schema/parameter.d.ts +31 -0
- package/dist/types/schema/storage.d.ts +24 -2
- package/dist/types/schema/view-schema.d.ts +6 -1
- package/dist/types/taquito-michelson-encoder.d.ts +1 -1
- package/dist/types/tokens/bigmap.d.ts +14 -1
- package/dist/types/tokens/bls12-381-fr.d.ts +14 -1
- package/dist/types/tokens/bls12-381-g1.d.ts +14 -1
- package/dist/types/tokens/bls12-381-g2.d.ts +14 -1
- package/dist/types/tokens/chain-id.d.ts +14 -1
- package/dist/types/tokens/chest-key.d.ts +14 -1
- package/dist/types/tokens/chest.d.ts +14 -1
- package/dist/types/tokens/comparable/address.d.ts +20 -1
- package/dist/types/tokens/comparable/bytes.d.ts +14 -1
- package/dist/types/tokens/comparable/int.d.ts +14 -1
- package/dist/types/tokens/comparable/key_hash.d.ts +14 -1
- package/dist/types/tokens/comparable/mutez.d.ts +14 -1
- package/dist/types/tokens/comparable/nat.d.ts +14 -1
- package/dist/types/tokens/comparable/tx_rollup_l2_address.d.ts +20 -1
- package/dist/types/tokens/constant.d.ts +17 -0
- package/dist/types/tokens/contract.d.ts +17 -1
- package/dist/types/tokens/createToken.d.ts +7 -1
- package/dist/types/tokens/key.d.ts +14 -1
- package/dist/types/tokens/list.d.ts +17 -1
- package/dist/types/tokens/map.d.ts +14 -1
- package/dist/types/tokens/never.d.ts +13 -0
- package/dist/types/tokens/or.d.ts +5 -1
- package/dist/types/tokens/pair.d.ts +6 -2
- package/dist/types/tokens/sapling-state.d.ts +13 -0
- package/dist/types/tokens/sapling-transaction-deprecated.d.ts +10 -0
- package/dist/types/tokens/sapling-transaction.d.ts +10 -0
- package/dist/types/tokens/set.d.ts +14 -1
- package/dist/types/tokens/signature.d.ts +14 -1
- package/dist/types/tokens/ticket-deprecated.d.ts +8 -1
- package/dist/types/tokens/ticket.d.ts +8 -1
- package/dist/types/tokens/token.d.ts +4 -3
- package/package.json +4 -4
- package/dist/lib/schema/error.js +0 -120
- package/dist/lib/schema/error.js.map +0 -1
- package/dist/types/schema/error.d.ts +0 -86
|
@@ -4,14 +4,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.MichelsonMap = exports.MapTypecheckError = exports.InvalidMapTypeError = void 0;
|
|
5
5
|
const storage_1 = require("./schema/storage");
|
|
6
6
|
const fast_json_stable_stringify_1 = require("fast-json-stable-stringify");
|
|
7
|
+
const core_1 = require("@taquito/core");
|
|
7
8
|
/**
|
|
8
9
|
* @category Error
|
|
9
10
|
* @description Error that indicates an invalid map type being passed or used
|
|
10
11
|
*/
|
|
11
|
-
class InvalidMapTypeError extends
|
|
12
|
-
constructor(mapType) {
|
|
13
|
-
super(
|
|
12
|
+
class InvalidMapTypeError extends core_1.TaquitoError {
|
|
13
|
+
constructor(mapType, reason) {
|
|
14
|
+
super();
|
|
14
15
|
this.mapType = mapType;
|
|
16
|
+
this.reason = reason;
|
|
17
|
+
this.message = `The map type '${JSON.stringify(mapType)}' is invalid. Reason: ${reason}.`;
|
|
15
18
|
this.name = 'InvalidMapTypeError';
|
|
16
19
|
}
|
|
17
20
|
}
|
|
@@ -19,18 +22,39 @@ exports.InvalidMapTypeError = InvalidMapTypeError;
|
|
|
19
22
|
// Retrieve a unique symbol associated with the key from the environment
|
|
20
23
|
// Used in order to identify all object that are of type MichelsonMap even if they come from different module
|
|
21
24
|
const michelsonMapTypeSymbol = Symbol.for('taquito-michelson-map-type-symbol');
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @throws {@link InvalidMapTypeError} when the argument passed to mapType is not a valid map type
|
|
28
|
+
*/
|
|
29
|
+
function validateMapType(value) {
|
|
30
|
+
if (!('prim' in value)) {
|
|
31
|
+
throw new InvalidMapTypeError(value, `Missing 'prim' field`);
|
|
32
|
+
}
|
|
33
|
+
if (!['map', 'big_map'].includes(value.prim)) {
|
|
34
|
+
throw new InvalidMapTypeError(value, `The prim field should be 'map' or 'big_map'`);
|
|
35
|
+
}
|
|
36
|
+
if (!('args' in value)) {
|
|
37
|
+
throw new InvalidMapTypeError(value, `Missing 'args' field`);
|
|
38
|
+
}
|
|
39
|
+
if (!Array.isArray(value.args)) {
|
|
40
|
+
throw new InvalidMapTypeError(value, `The 'args' field should be an array`);
|
|
41
|
+
}
|
|
42
|
+
if (value.args.length !== 2) {
|
|
43
|
+
throw new InvalidMapTypeError(value, `The 'args' field should have 2 elements`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
25
46
|
/**
|
|
26
47
|
* @category Error
|
|
27
48
|
* @description Error that indicates a map type mismatch, where an attempt to set a key or value in a Map doesn't match the defined type of the Map
|
|
28
49
|
*/
|
|
29
|
-
class MapTypecheckError extends
|
|
30
|
-
constructor(value, type,
|
|
31
|
-
super(
|
|
50
|
+
class MapTypecheckError extends core_1.TaquitoError {
|
|
51
|
+
constructor(value, type, objectType, reason) {
|
|
52
|
+
super();
|
|
32
53
|
this.value = value;
|
|
33
54
|
this.type = type;
|
|
55
|
+
this.reason = reason;
|
|
56
|
+
this.name = 'MapTypecheckError';
|
|
57
|
+
this.message = `The ${objectType} provided: ${JSON.stringify(value)} is not compatible with the expected michelson type: ${JSON.stringify(type)}. Reason: ${JSON.stringify(reason)}.`;
|
|
34
58
|
this.name = 'MapTypecheckError';
|
|
35
59
|
}
|
|
36
60
|
}
|
|
@@ -59,9 +83,7 @@ class MichelsonMap {
|
|
|
59
83
|
return obj && obj[michelsonMapTypeSymbol] === true;
|
|
60
84
|
}
|
|
61
85
|
setType(mapType) {
|
|
62
|
-
|
|
63
|
-
throw new InvalidMapTypeError(mapType.toString());
|
|
64
|
-
}
|
|
86
|
+
validateMapType(mapType);
|
|
65
87
|
this.keySchema = new storage_1.Schema(mapType.args[0]);
|
|
66
88
|
this.valueSchema = new storage_1.Schema(mapType.args[1]);
|
|
67
89
|
}
|
|
@@ -77,25 +99,37 @@ class MichelsonMap {
|
|
|
77
99
|
return map;
|
|
78
100
|
}
|
|
79
101
|
typecheckKey(key) {
|
|
80
|
-
if (this.keySchema) {
|
|
81
|
-
return
|
|
102
|
+
if (!this.keySchema) {
|
|
103
|
+
return;
|
|
82
104
|
}
|
|
83
|
-
|
|
105
|
+
this.keySchema.Typecheck(key);
|
|
84
106
|
}
|
|
85
107
|
typecheckValue(value) {
|
|
86
|
-
if (this.valueSchema) {
|
|
87
|
-
return
|
|
108
|
+
if (!this.valueSchema) {
|
|
109
|
+
return;
|
|
88
110
|
}
|
|
89
|
-
|
|
111
|
+
this.valueSchema.Typecheck(value);
|
|
90
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* @throws {@link MapTypecheckError} when the argument passed does not match the expected schema for value
|
|
115
|
+
*/
|
|
91
116
|
assertTypecheckValue(value) {
|
|
92
|
-
|
|
93
|
-
|
|
117
|
+
try {
|
|
118
|
+
this.typecheckValue(value);
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
throw new MapTypecheckError(value, this.valueSchema, 'value', e);
|
|
94
122
|
}
|
|
95
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* @throws {@link MapTypecheckError} when the argument passed does not match the expected schema for key
|
|
126
|
+
*/
|
|
96
127
|
assertTypecheckKey(key) {
|
|
97
|
-
|
|
98
|
-
|
|
128
|
+
try {
|
|
129
|
+
this.typecheckKey(key);
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
throw new MapTypecheckError(key, this.keySchema, 'key', e);
|
|
99
133
|
}
|
|
100
134
|
}
|
|
101
135
|
serializeDeterministically(key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"michelson-map.js","sourceRoot":"","sources":["../../src/michelson-map.ts"],"names":[],"mappings":";;;;AACA,8CAA0C;AAC1C,2EAAmD;
|
|
1
|
+
{"version":3,"file":"michelson-map.js","sourceRoot":"","sources":["../../src/michelson-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.MissingArgumentError = exports.StorageEncodingError = exports.BigMapEncodingError = exports.InvalidBigMapDiffError = exports.InvalidBigMapSchemaError = exports.InvalidRpcResponseError = exports.InvalidScriptError = exports.ParameterEncodingError = void 0;
|
|
5
|
+
const core_1 = require("@taquito/core");
|
|
6
|
+
/**
|
|
7
|
+
* @category Error
|
|
8
|
+
* @description Error that indicates a failure when encoding (transforming JS parameter into JSON Michelson) the parameter of the view
|
|
9
|
+
*/
|
|
10
|
+
class ParameterEncodingError extends core_1.InvalidViewParameterError {
|
|
11
|
+
constructor(viewName, sigs, args, cause) {
|
|
12
|
+
super(viewName, sigs, args, cause);
|
|
13
|
+
this.viewName = viewName;
|
|
14
|
+
this.sigs = sigs;
|
|
15
|
+
this.args = args;
|
|
16
|
+
this.cause = cause;
|
|
17
|
+
this.name = 'ParameterEncodingError';
|
|
18
|
+
this.message = `Could not encode parameter ${JSON.stringify(args)} received for name "${viewName}" expecting one of the following signatures ${JSON.stringify(sigs)}`;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ParameterEncodingError = ParameterEncodingError;
|
|
22
|
+
/**
|
|
23
|
+
* @category Error
|
|
24
|
+
* @description Error that indicates an invalid on-chain view found on the script
|
|
25
|
+
*/
|
|
26
|
+
class InvalidScriptError extends core_1.TaquitoError {
|
|
27
|
+
constructor(script, reason) {
|
|
28
|
+
super();
|
|
29
|
+
this.script = script;
|
|
30
|
+
this.reason = reason;
|
|
31
|
+
this.name = 'InvalidScriptError';
|
|
32
|
+
let message = `Invalid on-chain view found in the following script.`;
|
|
33
|
+
if (reason) {
|
|
34
|
+
message += ` Reason: ${reason}.`;
|
|
35
|
+
}
|
|
36
|
+
message += `Script: ${JSON.stringify(script)}`;
|
|
37
|
+
this.message = message;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.InvalidScriptError = InvalidScriptError;
|
|
41
|
+
/**
|
|
42
|
+
* @category Error
|
|
43
|
+
* @description Error that indicates an invalid RPC response being passed or used
|
|
44
|
+
*/
|
|
45
|
+
class InvalidRpcResponseError extends core_1.TaquitoError {
|
|
46
|
+
constructor(script, reason) {
|
|
47
|
+
super();
|
|
48
|
+
this.script = script;
|
|
49
|
+
this.reason = reason;
|
|
50
|
+
this.name = 'InvalidRpcResponseError';
|
|
51
|
+
let message = `Invalid RPC response passed as argument(s).`;
|
|
52
|
+
if (reason) {
|
|
53
|
+
message += ` Reason: ${reason}.`;
|
|
54
|
+
}
|
|
55
|
+
message += ` Received: ${JSON.stringify(script)}`;
|
|
56
|
+
this.message = message;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.InvalidRpcResponseError = InvalidRpcResponseError;
|
|
60
|
+
/**
|
|
61
|
+
* @category Error
|
|
62
|
+
* @description Error that indicates an invalid big map schema being passed or used
|
|
63
|
+
*/
|
|
64
|
+
class InvalidBigMapSchemaError extends core_1.TaquitoError {
|
|
65
|
+
constructor(message) {
|
|
66
|
+
super(message);
|
|
67
|
+
this.message = message;
|
|
68
|
+
this.name = 'InvalidBigMapSchemaError';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.InvalidBigMapSchemaError = InvalidBigMapSchemaError;
|
|
72
|
+
/**
|
|
73
|
+
* @category Error
|
|
74
|
+
* @description Error that indicates an invalid big map diff being passed or used
|
|
75
|
+
*/
|
|
76
|
+
class InvalidBigMapDiffError extends core_1.TaquitoError {
|
|
77
|
+
constructor(message, value) {
|
|
78
|
+
super(message);
|
|
79
|
+
this.message = message;
|
|
80
|
+
this.value = value;
|
|
81
|
+
this.name = 'InvalidBigMapDiffError';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.InvalidBigMapDiffError = InvalidBigMapDiffError;
|
|
85
|
+
/**
|
|
86
|
+
* @category Error
|
|
87
|
+
* @description Error that indicates a failure when trying to encode big maps
|
|
88
|
+
*/
|
|
89
|
+
class BigMapEncodingError extends core_1.TaquitoError {
|
|
90
|
+
constructor(obj, details, schema, value) {
|
|
91
|
+
super();
|
|
92
|
+
this.details = details;
|
|
93
|
+
this.schema = schema;
|
|
94
|
+
this.value = value;
|
|
95
|
+
this.name = 'BigMapEncodingError';
|
|
96
|
+
this.message = `Unable to encode the big map ${obj}. Schema is: ${JSON.stringify(schema)}. The ${obj} is: ${JSON.stringify(value)}. Error details: ${details}`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.BigMapEncodingError = BigMapEncodingError;
|
|
100
|
+
/**
|
|
101
|
+
* @category Error
|
|
102
|
+
* @description Error that indicates a failure when trying to encode storage
|
|
103
|
+
*/
|
|
104
|
+
class StorageEncodingError extends core_1.TaquitoError {
|
|
105
|
+
constructor(obj, details, schema, value, semantics) {
|
|
106
|
+
super();
|
|
107
|
+
this.details = details;
|
|
108
|
+
this.schema = schema;
|
|
109
|
+
this.value = value;
|
|
110
|
+
this.semantics = semantics;
|
|
111
|
+
this.name = 'StorageEncodingError';
|
|
112
|
+
this.message = `Unable to encode ${obj}. The schema is: ${JSON.stringify(schema)}, the value is: ${JSON.stringify(value)}.${semantics ? `And the semantic is: ${JSON.stringify(semantics)}` : ''}. Error details: ${details}`;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.StorageEncodingError = StorageEncodingError;
|
|
116
|
+
/**
|
|
117
|
+
* @category Error
|
|
118
|
+
* @description General error that indicates a function not being passed a necessary argument
|
|
119
|
+
*/
|
|
120
|
+
class MissingArgumentError extends core_1.TaquitoError {
|
|
121
|
+
constructor(message) {
|
|
122
|
+
super(message);
|
|
123
|
+
this.message = message;
|
|
124
|
+
this.name = 'MissingArgumentError';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.MissingArgumentError = MissingArgumentError;
|
|
128
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/schema/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,28 +5,55 @@ const createToken_1 = require("../tokens/createToken");
|
|
|
5
5
|
const token_1 = require("../tokens/token");
|
|
6
6
|
const or_1 = require("../tokens/or");
|
|
7
7
|
const option_1 = require("../tokens/option");
|
|
8
|
-
const
|
|
8
|
+
const errors_1 = require("./errors");
|
|
9
9
|
/**
|
|
10
10
|
* @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.
|
|
11
11
|
*/
|
|
12
12
|
class ParameterSchema {
|
|
13
|
+
/**
|
|
14
|
+
* @description Return the schema of the parameter of a specific entry point
|
|
15
|
+
* @throws {@link InvalidTokenError}
|
|
16
|
+
*/
|
|
13
17
|
constructor(val) {
|
|
14
18
|
this.root = createToken_1.createToken(val, 0);
|
|
15
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @description Create an instance of ParameterSchema from a contract script
|
|
23
|
+
*
|
|
24
|
+
* @param val contract script obtained from the RPC
|
|
25
|
+
* @returns ParameterSchema
|
|
26
|
+
* @throws {InvalidRpcResponseError} If the RPC response is invalid
|
|
27
|
+
*/
|
|
16
28
|
static fromRPCResponse(val) {
|
|
17
|
-
|
|
18
|
-
val
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
29
|
+
if (!val) {
|
|
30
|
+
throw new errors_1.InvalidRpcResponseError(val, 'the RPC response is empty');
|
|
31
|
+
}
|
|
32
|
+
if (!val.script) {
|
|
33
|
+
throw new errors_1.InvalidRpcResponseError(val, 'the RPC response has no script');
|
|
34
|
+
}
|
|
35
|
+
if (!Array.isArray(val.script.code)) {
|
|
36
|
+
throw new errors_1.InvalidRpcResponseError(val, 'The response.script.code should be an array');
|
|
37
|
+
}
|
|
38
|
+
const parameter = val.script.code.find((x) => 'prim' in x && x.prim === 'parameter');
|
|
39
|
+
if (!parameter) {
|
|
40
|
+
throw new errors_1.InvalidRpcResponseError(val, `The response.script.code should have an element of type {prim: "parameter"}`);
|
|
41
|
+
}
|
|
42
|
+
if (!Array.isArray(parameter.args)) {
|
|
43
|
+
throw new errors_1.InvalidRpcResponseError(val, `The response.script.code has an element of type {prim: "parameter"}, but its args is not an array`);
|
|
23
44
|
}
|
|
24
45
|
return new ParameterSchema(parameter.args[0]);
|
|
25
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* @description Check if the Contract parameter is multiple entry point or not
|
|
49
|
+
*/
|
|
26
50
|
get isMultipleEntryPoint() {
|
|
27
51
|
return (this.root instanceof or_1.OrToken ||
|
|
28
52
|
(this.root instanceof option_1.OptionToken && this.root.subToken() instanceof or_1.OrToken));
|
|
29
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* @description Check if the Contract parameter has an annotation or not
|
|
56
|
+
*/
|
|
30
57
|
get hasAnnotation() {
|
|
31
58
|
if (this.isMultipleEntryPoint) {
|
|
32
59
|
return Object.keys(this.ExtractSchema())[0] !== '0';
|
|
@@ -35,9 +62,17 @@ class ParameterSchema {
|
|
|
35
62
|
return true;
|
|
36
63
|
}
|
|
37
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* @description Returns the javascript object equivalent of the Micheline value provided
|
|
67
|
+
*/
|
|
38
68
|
Execute(val, semantics) {
|
|
39
69
|
return this.root.Execute(val, semantics);
|
|
40
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* @description Returns a micheline formatted object for the values provided
|
|
73
|
+
* @throws {@link TokenValidationError}
|
|
74
|
+
* @throws {@link ParameterEncodingError}
|
|
75
|
+
*/
|
|
41
76
|
Encode(...args) {
|
|
42
77
|
try {
|
|
43
78
|
return this.root.Encode(args.reverse());
|
|
@@ -46,9 +81,14 @@ class ParameterSchema {
|
|
|
46
81
|
if (ex instanceof token_1.TokenValidationError) {
|
|
47
82
|
throw ex;
|
|
48
83
|
}
|
|
49
|
-
throw new
|
|
84
|
+
throw new errors_1.ParameterEncodingError('Unable to encode parameter', this.root, args, ex);
|
|
50
85
|
}
|
|
51
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* @description Returns a micheline formatted object for the javascript object provided
|
|
89
|
+
* @throws {@link TokenValidationError}
|
|
90
|
+
* @throws {@link ParameterEncodingError}
|
|
91
|
+
*/
|
|
52
92
|
EncodeObject(value, semantics) {
|
|
53
93
|
try {
|
|
54
94
|
return this.root.EncodeObject(value, semantics);
|
|
@@ -57,7 +97,7 @@ class ParameterSchema {
|
|
|
57
97
|
if (ex instanceof token_1.TokenValidationError) {
|
|
58
98
|
throw ex;
|
|
59
99
|
}
|
|
60
|
-
throw new
|
|
100
|
+
throw new errors_1.ParameterEncodingError('Unable to encode parameter object', this.root, value, ex);
|
|
61
101
|
}
|
|
62
102
|
}
|
|
63
103
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../../src/schema/parameter.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AACpD,2CAA0F;AAC1F,qCAAuC;AACvC,6CAA+C;AAG/C,
|
|
1
|
+
{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../../src/schema/parameter.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AACpD,2CAA0F;AAC1F,qCAAuC;AACvC,6CAA+C;AAG/C,qCAA2E;AAE3E;;GAEG;AACH,MAAa,eAAe;IA4D1B;;;OAGG;IACH,YAAY,GAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,yBAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IA/DD;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,GAA+B;QACpD,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,gCAAuB,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;SACrE;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,gCAAuB,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;SAC1E;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACnC,MAAM,IAAI,gCAAuB,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC;SACvF;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CACZ,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,gCAAuB,CAC/B,GAAG,EACH,6EAA6E,CAC9E,CAAC;SACH;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,gCAAuB,CAC/B,GAAG,EACH,mGAAmG,CACpG,CAAC;SACH;QACD,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,oBAAoB;QACtB,OAAO,CACL,IAAI,CAAC,IAAI,YAAY,YAAO;YAC5B,CAAC,IAAI,CAAC,IAAI,YAAY,oBAAW,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,YAAO,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;SACrD;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAUD;;OAEG;IACH,OAAO,CAAC,GAAQ,EAAE,SAAoB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,GAAG,IAAW;QACnB,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACzC;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY,4BAAoB,EAAE;gBACtC,MAAM,EAAE,CAAC;aACV;YACD,MAAM,IAAI,+BAAsB,CAAC,4BAA4B,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SACrF;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAAW,EAAE,SAA4B;QACpD,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACjD;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY,4BAAoB,EAAE;gBACtC,MAAM,EAAE,CAAC;aACV;YACD,MAAM,IAAI,+BAAsB,CAAC,mCAAmC,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;SAC7F;IACH,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;CACF;AA7HD,0CA6HC"}
|
|
@@ -10,7 +10,7 @@ const pair_1 = require("../tokens/pair");
|
|
|
10
10
|
const ticket_1 = require("../tokens/ticket");
|
|
11
11
|
const ticket_deprecated_1 = require("../tokens/ticket-deprecated");
|
|
12
12
|
const token_1 = require("../tokens/token");
|
|
13
|
-
const
|
|
13
|
+
const errors_1 = require("./errors");
|
|
14
14
|
const schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol');
|
|
15
15
|
// collapse comb pair
|
|
16
16
|
function collapse(val, prim = pair_1.PairToken.prim) {
|
|
@@ -53,7 +53,7 @@ function deepEqual(a, b) {
|
|
|
53
53
|
}
|
|
54
54
|
exports.deepEqual = deepEqual;
|
|
55
55
|
/**
|
|
56
|
-
* @warn Our current smart contract abstraction feature is currently in preview.
|
|
56
|
+
* @warn Our current smart contract abstraction feature is currently in preview. Its API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.
|
|
57
57
|
*/
|
|
58
58
|
class Schema {
|
|
59
59
|
constructor(val) {
|
|
@@ -73,27 +73,26 @@ class Schema {
|
|
|
73
73
|
static isSchema(obj) {
|
|
74
74
|
return obj && obj[schemaTypeSymbol] === true;
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* @throws {@link InvalidRpcResponseError}
|
|
78
|
+
*/
|
|
76
79
|
static fromRPCResponse(val) {
|
|
77
|
-
|
|
78
|
-
val
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// storage passed along as original storage value
|
|
92
|
-
this.fromRPCResponse({ script: { code: x, storage: val.script.storage } });
|
|
93
|
-
}
|
|
94
|
-
});
|
|
80
|
+
if (!val) {
|
|
81
|
+
throw new errors_1.InvalidRpcResponseError(val, 'the RPC response is empty');
|
|
82
|
+
}
|
|
83
|
+
if (!val.script) {
|
|
84
|
+
throw new errors_1.InvalidRpcResponseError(val, 'the RPC response has no script');
|
|
85
|
+
}
|
|
86
|
+
if (!Array.isArray(val.script.code)) {
|
|
87
|
+
throw new errors_1.InvalidRpcResponseError(val, 'The response.script.code should be an array');
|
|
88
|
+
}
|
|
89
|
+
let code = val.script.code;
|
|
90
|
+
while (code.length === 1 && Array.isArray(code[0])) {
|
|
91
|
+
code = code[0];
|
|
92
|
+
}
|
|
93
|
+
const storage = code.find((x) => 'prim' in x && x.prim === 'storage');
|
|
95
94
|
if (!storage || !Array.isArray(storage.args)) {
|
|
96
|
-
throw new
|
|
95
|
+
throw new errors_1.InvalidRpcResponseError(val, 'The response.script.code has an element of type {prim: "storage"}, but its args is not an array');
|
|
97
96
|
}
|
|
98
97
|
return new Schema(storage.args[0]);
|
|
99
98
|
}
|
|
@@ -115,52 +114,61 @@ class Schema {
|
|
|
115
114
|
}
|
|
116
115
|
Typecheck(val) {
|
|
117
116
|
if (this.root instanceof bigmap_1.BigMapToken && Number.isInteger(Number(val))) {
|
|
118
|
-
return
|
|
117
|
+
return;
|
|
119
118
|
}
|
|
120
119
|
if (this.root instanceof ticket_1.TicketToken && val.ticketer && val.value && val.amount) {
|
|
121
|
-
return
|
|
120
|
+
return;
|
|
122
121
|
}
|
|
123
122
|
if (this.root instanceof ticket_deprecated_1.TicketDeprecatedToken && val.ticketer && val.value && val.amount) {
|
|
124
|
-
return
|
|
123
|
+
return;
|
|
125
124
|
}
|
|
126
125
|
if (this.root instanceof map_1.MapToken && this.root.ValueSchema instanceof bigmap_1.BigMapToken) {
|
|
127
|
-
return
|
|
128
|
-
}
|
|
129
|
-
try {
|
|
130
|
-
this.root.EncodeObject(val);
|
|
131
|
-
return true;
|
|
132
|
-
}
|
|
133
|
-
catch (ex) {
|
|
134
|
-
return false;
|
|
126
|
+
return;
|
|
135
127
|
}
|
|
128
|
+
this.root.EncodeObject(val);
|
|
136
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* @throws {@link InvalidBigMapSchemaError}
|
|
132
|
+
* @throws {@link InvalidBigMapDiffError}
|
|
133
|
+
*/
|
|
137
134
|
ExecuteOnBigMapDiff(diff, semantics) {
|
|
138
135
|
if (!this.bigMap) {
|
|
139
|
-
throw new
|
|
136
|
+
throw new errors_1.InvalidBigMapSchemaError('Big map schema is undefined');
|
|
140
137
|
}
|
|
141
138
|
if (!Array.isArray(diff)) {
|
|
142
|
-
throw new
|
|
139
|
+
throw new errors_1.InvalidBigMapDiffError(`Big map diff must be an array, got: ${JSON.stringify(diff)}`, diff);
|
|
143
140
|
}
|
|
144
141
|
const eltFormat = diff.map(({ key, value }) => ({ args: [key, value] }));
|
|
145
142
|
return this.bigMap.Execute(eltFormat, semantics);
|
|
146
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* @throws {@link InvalidBigMapSchemaError}
|
|
146
|
+
*/
|
|
147
147
|
ExecuteOnBigMapValue(key, semantics) {
|
|
148
148
|
if (!this.bigMap) {
|
|
149
|
-
throw new
|
|
149
|
+
throw new errors_1.InvalidBigMapSchemaError('Big map schema is undefined');
|
|
150
150
|
}
|
|
151
151
|
return this.bigMap.ValueSchema.Execute(key, semantics);
|
|
152
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* @throws {@link InvalidBigMapSchemaError}
|
|
155
|
+
* @throws {@link BigMapEncodingError}
|
|
156
|
+
*/
|
|
153
157
|
EncodeBigMapKey(key) {
|
|
154
158
|
if (!this.bigMap) {
|
|
155
|
-
throw new
|
|
159
|
+
throw new errors_1.InvalidBigMapSchemaError('Big map schema is undefined');
|
|
156
160
|
}
|
|
157
161
|
try {
|
|
158
162
|
return this.bigMap.KeySchema.ToBigMapKey(key);
|
|
159
163
|
}
|
|
160
164
|
catch (ex) {
|
|
161
|
-
throw new
|
|
165
|
+
throw new errors_1.BigMapEncodingError('key', ex, this.bigMap.KeySchema, key);
|
|
162
166
|
}
|
|
163
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* @throws {@link TokenValidationError}
|
|
170
|
+
* @throws {@link StorageEncodingError}
|
|
171
|
+
*/
|
|
164
172
|
Encode(value, semantics) {
|
|
165
173
|
try {
|
|
166
174
|
return this.root.EncodeObject(value, semantics);
|
|
@@ -169,7 +177,7 @@ class Schema {
|
|
|
169
177
|
if (ex instanceof token_1.TokenValidationError) {
|
|
170
178
|
throw ex;
|
|
171
179
|
}
|
|
172
|
-
throw new
|
|
180
|
+
throw new errors_1.StorageEncodingError('storage object', ex, this.root, value, semantics);
|
|
173
181
|
}
|
|
174
182
|
}
|
|
175
183
|
/**
|
|
@@ -188,10 +196,11 @@ class Schema {
|
|
|
188
196
|
}
|
|
189
197
|
/**
|
|
190
198
|
* @deprecated
|
|
199
|
+
* @throws {@link InvalidBigMapSchemaError}
|
|
191
200
|
*/
|
|
192
201
|
ComputeState(tx, state) {
|
|
193
202
|
if (!this.bigMap) {
|
|
194
|
-
throw new
|
|
203
|
+
throw new errors_1.InvalidBigMapSchemaError('Big map schema is undefined');
|
|
195
204
|
}
|
|
196
205
|
const bigMap = tx.reduce((prev, current) => {
|
|
197
206
|
return Object.assign(Object.assign({}, prev), this.ExecuteOnBigMapDiff(current.contents[0].metadata.operation_result.big_map_diff));
|
|
@@ -211,6 +220,9 @@ class Schema {
|
|
|
211
220
|
return this.findValue(this.root['val'], storage, valueType);
|
|
212
221
|
}
|
|
213
222
|
// TODO check these type casts
|
|
223
|
+
/**
|
|
224
|
+
* @throws {@link MissingArgumentError}
|
|
225
|
+
*/
|
|
214
226
|
findValue(schema, storage, valueToFind) {
|
|
215
227
|
if (deepEqual(valueToFind, schema)) {
|
|
216
228
|
return storage;
|
|
@@ -219,7 +231,7 @@ class Schema {
|
|
|
219
231
|
const sch = collapse(schema);
|
|
220
232
|
const strg = collapse(storage, 'Pair');
|
|
221
233
|
if (sch.args === undefined || strg.args === undefined) {
|
|
222
|
-
throw new
|
|
234
|
+
throw new errors_1.MissingArgumentError('Tokens have no arguments'); // unlikely
|
|
223
235
|
}
|
|
224
236
|
if (sch.args[0])
|
|
225
237
|
return (
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/schema/storage.ts"],"names":[],"mappings":";;;;AAMA,6CAA+C;AAC/C,uDAAoD;AACpD,uCAAyC;AACzC,qCAAuC;AACvC,yCAA2C;AAC3C,6CAA+C;AAC/C,mEAAoE;AACpE,2CAMyB;AACzB,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/schema/storage.ts"],"names":[],"mappings":"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"}
|