@airgap/serializer 0.13.45-beta.2 → 0.13.45-beta.3
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/index.js +8 -8
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/v2/inter-app-communication-protocol.d.ts +2 -2
- package/v2/inter-app-communication-protocol.js +57 -55
- package/v2/inter-app-communication-protocol.js.map +1 -1
- package/v2/interfaces.js +1 -1
- package/v2/interfaces.js.map +1 -1
- package/v2/message.d.ts +1 -2
- package/v2/message.js +51 -57
- package/v2/message.js.map +1 -1
- package/v2/payloads/chunked-payload.d.ts +0 -1
- package/v2/payloads/chunked-payload.js +17 -18
- package/v2/payloads/chunked-payload.js.map +1 -1
- package/v2/payloads/full-payload.d.ts +0 -1
- package/v2/payloads/full-payload.js +38 -33
- package/v2/payloads/full-payload.js.map +1 -1
- package/v2/schemas/definitions/hex-string.d.ts +1 -1
- package/v2/schemas/schema.d.ts +1 -1
- package/v2/schemas/schema.js +1 -1
- package/v2/schemas/schema.js.map +1 -1
- package/v2/serializer.js +70 -122
- package/v2/serializer.js.map +1 -1
- package/v2/utils/generateId.js +5 -6
- package/v2/utils/generateId.js.map +1 -1
- package/v2/utils/json-to-rlp.js +45 -52
- package/v2/utils/json-to-rlp.js.map +1 -1
- package/v2/utils/toBuffer.d.ts +1 -2
- package/v2/utils/toBuffer.js +2 -3
- package/v2/utils/toBuffer.js.map +1 -1
- package/v2/validators/validators.js +37 -79
- package/v2/validators/validators.js.map +1 -1
- package/v3/iac-message-wrapper.d.ts +3 -3
- package/v3/iac-message-wrapper.js +50 -43
- package/v3/iac-message-wrapper.js.map +1 -1
- package/v3/interfaces.d.ts +1 -1
- package/v3/interfaces.js +6 -6
- package/v3/interfaces.js.map +1 -1
- package/v3/message.d.ts +2 -2
- package/v3/message.js +53 -61
- package/v3/message.js.map +1 -1
- package/v3/payload.js +19 -25
- package/v3/payload.js.map +1 -1
- package/v3/schemas/definitions/hex-string.d.ts +1 -1
- package/v3/schemas/schema.d.ts +1 -1
- package/v3/schemas/schema.js +1 -1
- package/v3/schemas/schema.js.map +1 -1
- package/v3/serializer.js +69 -120
- package/v3/serializer.js.map +1 -1
- package/v3/utils/generateId.js +7 -8
- package/v3/utils/generateId.js.map +1 -1
- package/v3/utils/json-to-rlp.js +51 -58
- package/v3/utils/json-to-rlp.js.map +1 -1
- package/v3/utils/toBuffer.d.ts +1 -2
- package/v3/validators/validators.js +35 -77
- package/v3/validators/validators.js.map +1 -1
package/v3/utils/json-to-rlp.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
exports.getDefinitionByRefPath = getDefinitionByRefPath;
|
|
4
|
+
exports.unwrapSchema = unwrapSchema;
|
|
5
|
+
exports.jsonToArray = jsonToArray;
|
|
6
|
+
exports.rlpArrayToJson = rlpArrayToJson;
|
|
7
|
+
const errors_1 = require("@airgap/coinlib-core/errors");
|
|
8
|
+
const coinlib_error_1 = require("@airgap/coinlib-core/errors/coinlib-error");
|
|
9
|
+
const assert_1 = require("@airgap/coinlib-core/utils/assert");
|
|
10
|
+
const schema_1 = require("../schemas/schema");
|
|
11
|
+
const isHexString = (str) => {
|
|
12
|
+
const regexp = /^[0-9a-fA-F]+$/;
|
|
10
13
|
if (regexp.test(str)) {
|
|
11
14
|
return true;
|
|
12
15
|
}
|
|
@@ -22,30 +25,24 @@ var StringType;
|
|
|
22
25
|
StringType[StringType["HEX_WITH_PREFIX_ODD"] = 3] = "HEX_WITH_PREFIX_ODD";
|
|
23
26
|
StringType[StringType["HEX_WITHOUT_PREFIX_ODD"] = 4] = "HEX_WITHOUT_PREFIX_ODD";
|
|
24
27
|
})(StringType || (StringType = {}));
|
|
25
|
-
function log() {
|
|
26
|
-
|
|
27
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
28
|
-
args[_i] = arguments[_i];
|
|
29
|
-
}
|
|
30
|
-
var loggingEnabled = false;
|
|
28
|
+
function log(...args) {
|
|
29
|
+
const loggingEnabled = false;
|
|
31
30
|
if (loggingEnabled) {
|
|
32
31
|
// tslint:disable-next-line:no-console
|
|
33
|
-
console.log
|
|
32
|
+
console.log(...args);
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
function getDefinitionByRefPath(schema, refPath) {
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
const mainDefinitionName = refPath.split('/').slice(-1)[0];
|
|
37
|
+
const definitions = schema.definitions;
|
|
39
38
|
return definitions[mainDefinitionName];
|
|
40
39
|
}
|
|
41
|
-
exports.getDefinitionByRefPath = getDefinitionByRefPath;
|
|
42
40
|
function unwrapSchema(schema) {
|
|
43
41
|
log('UNWRAPPING SCHEMA', schema);
|
|
44
42
|
return getDefinitionByRefPath(schema, schema.$ref);
|
|
45
43
|
}
|
|
46
|
-
exports.unwrapSchema = unwrapSchema;
|
|
47
44
|
function typeError(key, expectedType, value) {
|
|
48
|
-
return new errors_1.InvalidSchemaType(
|
|
45
|
+
return new errors_1.InvalidSchemaType(`${key}: expected type "${expectedType}", but got "${typeof value}", value: ${typeof value === 'object' ? JSON.stringify(value) : value}`);
|
|
49
46
|
}
|
|
50
47
|
function checkType(key, expectedType, value, callback) {
|
|
51
48
|
if (expectedType === 'array' && Array.isArray(value)) {
|
|
@@ -59,19 +56,18 @@ function checkType(key, expectedType, value, callback) {
|
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
function getTypeFromSchemaDefinition(schema) {
|
|
62
|
-
|
|
63
|
-
return (_a = schema === null || schema === void 0 ? void 0 : schema.type) !== null && _a !== void 0 ? _a : schema_1.SchemaTypes.STRING;
|
|
59
|
+
return schema?.type ?? schema_1.SchemaTypes.STRING;
|
|
64
60
|
}
|
|
65
61
|
function jsonToArray(key, schema, value) {
|
|
66
|
-
|
|
62
|
+
const type = getTypeFromSchemaDefinition(schema);
|
|
67
63
|
switch (type) {
|
|
68
64
|
case schema_1.SchemaTypes.STRING:
|
|
69
|
-
return checkType(key, 'string', value,
|
|
70
|
-
log(
|
|
71
|
-
|
|
72
|
-
|
|
65
|
+
return checkType(key, 'string', value, (arg) => {
|
|
66
|
+
log(`Parsing key ${key} as string, which results in ${arg}`);
|
|
67
|
+
let buf;
|
|
68
|
+
let type;
|
|
73
69
|
if (arg.startsWith('0x')) {
|
|
74
|
-
|
|
70
|
+
const argWithoutPrefix = arg.slice(2);
|
|
75
71
|
if (isHexString(argWithoutPrefix)) {
|
|
76
72
|
if (argWithoutPrefix.length % 2 === 0) {
|
|
77
73
|
type = StringType.HEX_WITH_PREFIX_EVEN;
|
|
@@ -102,33 +98,33 @@ function jsonToArray(key, schema, value) {
|
|
|
102
98
|
return arg;
|
|
103
99
|
}
|
|
104
100
|
}
|
|
105
|
-
|
|
106
|
-
|
|
101
|
+
const typeBuffer = Buffer.from(type.toString(16).padStart(2, '0'), 'hex');
|
|
102
|
+
const concat = Buffer.concat([typeBuffer, buf]);
|
|
107
103
|
return concat;
|
|
108
104
|
});
|
|
109
105
|
case schema_1.SchemaTypes.NUMBER:
|
|
110
106
|
case schema_1.SchemaTypes.INTEGER:
|
|
111
|
-
return checkType(key, 'number', value,
|
|
112
|
-
log(
|
|
107
|
+
return checkType(key, 'number', value, (arg) => {
|
|
108
|
+
log(`Parsing key ${key} as number, which results in ${arg.toString()}`);
|
|
113
109
|
return arg;
|
|
114
110
|
});
|
|
115
111
|
case schema_1.SchemaTypes.BOOLEAN:
|
|
116
|
-
return checkType(key, 'boolean', value,
|
|
117
|
-
log(
|
|
112
|
+
return checkType(key, 'boolean', value, (arg) => {
|
|
113
|
+
log(`Parsing key ${key} as boolean, which results in ${arg ? '1' : '0'}`);
|
|
118
114
|
return arg;
|
|
119
115
|
});
|
|
120
116
|
case schema_1.SchemaTypes.NULL:
|
|
121
117
|
if (typeof value === 'undefined') {
|
|
122
|
-
log(
|
|
118
|
+
log(`Parsing key ${key} as undefined, which results in ''`);
|
|
123
119
|
return '';
|
|
124
120
|
}
|
|
125
121
|
else {
|
|
126
122
|
throw typeError(key, 'undefined', value);
|
|
127
123
|
}
|
|
128
124
|
case schema_1.SchemaTypes.ARRAY:
|
|
129
|
-
return checkType(key, 'array', value,
|
|
130
|
-
return arg.map(
|
|
131
|
-
|
|
125
|
+
return checkType(key, 'array', value, (arg) => {
|
|
126
|
+
return arg.map((element, index) => {
|
|
127
|
+
const items = schema.items;
|
|
132
128
|
if (Array.isArray(items)) {
|
|
133
129
|
return jsonToArray(key, items[index], element);
|
|
134
130
|
}
|
|
@@ -138,15 +134,14 @@ function jsonToArray(key, schema, value) {
|
|
|
138
134
|
});
|
|
139
135
|
});
|
|
140
136
|
case schema_1.SchemaTypes.OBJECT:
|
|
141
|
-
return checkType(key, 'object', value,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
for (
|
|
146
|
-
var propertyKey = keys_1[_i];
|
|
137
|
+
return checkType(key, 'object', value, (arg) => {
|
|
138
|
+
const properties = schema.properties;
|
|
139
|
+
const keys = Object.keys(properties).sort();
|
|
140
|
+
const out = [];
|
|
141
|
+
for (const propertyKey of keys) {
|
|
147
142
|
out.push(jsonToArray(propertyKey, properties[propertyKey], arg[propertyKey]));
|
|
148
143
|
}
|
|
149
|
-
log(
|
|
144
|
+
log(`Parsing key ${key} as object, which results in ${out}`);
|
|
150
145
|
return out;
|
|
151
146
|
});
|
|
152
147
|
default:
|
|
@@ -154,12 +149,11 @@ function jsonToArray(key, schema, value) {
|
|
|
154
149
|
throw new errors_1.InvalidSchemaType();
|
|
155
150
|
}
|
|
156
151
|
}
|
|
157
|
-
exports.jsonToArray = jsonToArray;
|
|
158
152
|
function decode(schemaItem, decoded) {
|
|
159
153
|
if (typeof decoded === 'undefined') {
|
|
160
154
|
throw new errors_1.InvalidPayloadError();
|
|
161
155
|
}
|
|
162
|
-
|
|
156
|
+
const type = getTypeFromSchemaDefinition(schemaItem);
|
|
163
157
|
switch (type) {
|
|
164
158
|
case schema_1.SchemaTypes.BOOLEAN:
|
|
165
159
|
if (decoded.toString() !== '') {
|
|
@@ -170,16 +164,16 @@ function decode(schemaItem, decoded) {
|
|
|
170
164
|
if (typeof decoded === 'string') {
|
|
171
165
|
return decoded;
|
|
172
166
|
}
|
|
173
|
-
|
|
167
|
+
const stringType = parseInt(decoded.slice(0, 1).toString('hex'), 16);
|
|
174
168
|
switch (stringType) {
|
|
175
169
|
case StringType.STRING_WITH_HEX_PREFIX:
|
|
176
|
-
return
|
|
170
|
+
return `0x${decoded.slice(1).toString()}`;
|
|
177
171
|
case StringType.HEX_WITH_PREFIX_EVEN:
|
|
178
|
-
return
|
|
172
|
+
return `0x${decoded.slice(1).toString('hex')}`;
|
|
179
173
|
case StringType.HEX_WITHOUT_PREFIX_EVEN:
|
|
180
174
|
return decoded.slice(1).toString('hex');
|
|
181
175
|
case StringType.HEX_WITH_PREFIX_ODD:
|
|
182
|
-
return
|
|
176
|
+
return `0x${decoded.slice(1).toString('hex').slice(1)}`;
|
|
183
177
|
case StringType.HEX_WITHOUT_PREFIX_ODD:
|
|
184
178
|
return decoded.slice(1).toString('hex').slice(1);
|
|
185
179
|
default:
|
|
@@ -195,8 +189,8 @@ function decode(schemaItem, decoded) {
|
|
|
195
189
|
case schema_1.SchemaTypes.NULL:
|
|
196
190
|
return undefined;
|
|
197
191
|
case schema_1.SchemaTypes.ARRAY:
|
|
198
|
-
return decoded.map(
|
|
199
|
-
|
|
192
|
+
return decoded.map((decodedElement, index) => {
|
|
193
|
+
const items = schemaItem.items;
|
|
200
194
|
if (Array.isArray(items)) {
|
|
201
195
|
return decode(items[index], decodedElement);
|
|
202
196
|
}
|
|
@@ -212,9 +206,9 @@ function decode(schemaItem, decoded) {
|
|
|
212
206
|
}
|
|
213
207
|
}
|
|
214
208
|
function rlpArrayToJson(schema, decoded) {
|
|
215
|
-
|
|
209
|
+
const outObject = {};
|
|
216
210
|
if (schema.type === schema_1.SchemaTypes.OBJECT) {
|
|
217
|
-
|
|
211
|
+
const newShema = schema.properties;
|
|
218
212
|
if (newShema) {
|
|
219
213
|
return rlpArrayToJson(newShema, decoded);
|
|
220
214
|
}
|
|
@@ -222,14 +216,13 @@ function rlpArrayToJson(schema, decoded) {
|
|
|
222
216
|
throw new errors_1.NotFoundError(coinlib_error_1.Domain.SERIALIZER, 'Schema not available.');
|
|
223
217
|
}
|
|
224
218
|
}
|
|
225
|
-
|
|
219
|
+
const keys = Object.keys(schema).sort();
|
|
226
220
|
log(keys);
|
|
227
|
-
for (
|
|
228
|
-
|
|
221
|
+
for (let i = 0; i < keys.length; i++) {
|
|
222
|
+
const key = keys[i];
|
|
229
223
|
log(schema);
|
|
230
224
|
outObject[key] = decode(schema[key], decoded[i]);
|
|
231
225
|
}
|
|
232
226
|
return outObject;
|
|
233
227
|
}
|
|
234
|
-
exports.rlpArrayToJson = rlpArrayToJson;
|
|
235
228
|
//# sourceMappingURL=json-to-rlp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-to-rlp.js","sourceRoot":"","sources":["../../../src/v3/utils/json-to-rlp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json-to-rlp.js","sourceRoot":"","sources":["../../../src/v3/utils/json-to-rlp.ts"],"names":[],"mappings":"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"}
|
package/v3/utils/toBuffer.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare type CBORData = number | string | boolean | Buffer | CBORData[];
|
|
1
|
+
export type CBORData = number | string | boolean | Buffer | CBORData[];
|
|
@@ -1,48 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
4
|
};
|
|
41
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.validateSyncScheme =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
validate_1.validators.type =
|
|
6
|
+
exports.validateSyncScheme = validateSyncScheme;
|
|
7
|
+
const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
|
|
8
|
+
const validate_1 = require("@airgap/coinlib-core/dependencies/src/validate.js-0.13.1/validate");
|
|
9
|
+
validate_1.validators.type = (value, options, key, attributes) => {
|
|
46
10
|
// allow empty values by default (needs to be checked by "presence" check)
|
|
47
11
|
if (value === null || typeof value === 'undefined') {
|
|
48
12
|
return null;
|
|
@@ -54,12 +18,12 @@ validate_1.validators.type = function (value, options, key, attributes) {
|
|
|
54
18
|
}
|
|
55
19
|
*/
|
|
56
20
|
if (!validate_1.validators.type.checks[options]) {
|
|
57
|
-
throw new Error(
|
|
21
|
+
throw new Error(`Could not find validator for type ${options}`);
|
|
58
22
|
}
|
|
59
|
-
return validate_1.validators.type.checks[options](value) ? null :
|
|
23
|
+
return validate_1.validators.type.checks[options](value) ? null : `is not of type "${options}"`;
|
|
60
24
|
};
|
|
61
25
|
validate_1.validators.type.checks = {
|
|
62
|
-
Object
|
|
26
|
+
Object(value) {
|
|
63
27
|
return (0, validate_1.isObject)(value) && !(0, validate_1.isArray)(value);
|
|
64
28
|
},
|
|
65
29
|
Array: validate_1.isArray,
|
|
@@ -67,28 +31,28 @@ validate_1.validators.type.checks = {
|
|
|
67
31
|
Number: validate_1.isNumber,
|
|
68
32
|
String: validate_1.isString,
|
|
69
33
|
Date: validate_1.isDate,
|
|
70
|
-
Boolean
|
|
34
|
+
Boolean(value) {
|
|
71
35
|
return typeof value === 'boolean';
|
|
72
36
|
},
|
|
73
|
-
BigNumber
|
|
37
|
+
BigNumber(value) {
|
|
74
38
|
return bignumber_1.default.isBigNumber(value);
|
|
75
39
|
}
|
|
76
40
|
};
|
|
77
|
-
validate_1.validators.isHexStringWithPrefix =
|
|
41
|
+
validate_1.validators.isHexStringWithPrefix = (value) => {
|
|
78
42
|
if (typeof value !== 'string') {
|
|
79
43
|
return 'is not hex string';
|
|
80
44
|
}
|
|
81
45
|
if (!value.startsWith('0x')) {
|
|
82
46
|
return 'is not hex string';
|
|
83
47
|
}
|
|
84
|
-
|
|
48
|
+
const hexWithoutPrefix = value.substr(2);
|
|
85
49
|
if (hexWithoutPrefix.length === 0) {
|
|
86
50
|
// For ethereum, "0x" is valid
|
|
87
51
|
return null;
|
|
88
52
|
}
|
|
89
53
|
return /[0-9A-F]/gi.test(hexWithoutPrefix) ? null : 'is not hex string';
|
|
90
54
|
};
|
|
91
|
-
validate_1.validators.isPublicKey =
|
|
55
|
+
validate_1.validators.isPublicKey = (value) => {
|
|
92
56
|
if (typeof value !== 'string') {
|
|
93
57
|
return 'is not a valid public key: should be of type string';
|
|
94
58
|
}
|
|
@@ -97,36 +61,30 @@ validate_1.validators.isPublicKey = function (value) {
|
|
|
97
61
|
}
|
|
98
62
|
return /[0-9A-F]/gi.test(value) ? null : 'is not a valid public key: invalid characters';
|
|
99
63
|
};
|
|
100
|
-
function validateSyncScheme(syncScheme) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
return [2 /*return*/, (0, validate_1.validate)(syncScheme, constraints)];
|
|
126
|
-
});
|
|
127
|
-
});
|
|
64
|
+
async function validateSyncScheme(syncScheme) {
|
|
65
|
+
const constraints = {
|
|
66
|
+
version: {
|
|
67
|
+
presence: { allowEmpty: false },
|
|
68
|
+
numericality: { noStrings: true, onlyInteger: true, greaterThanOrEqualTo: 0 }
|
|
69
|
+
},
|
|
70
|
+
type: {
|
|
71
|
+
presence: { allowEmpty: false },
|
|
72
|
+
numericality: { noStrings: true, onlyInteger: true, greaterThanOrEqualTo: 0 }
|
|
73
|
+
},
|
|
74
|
+
protocol: {
|
|
75
|
+
presence: { allowEmpty: false },
|
|
76
|
+
type: 'String',
|
|
77
|
+
length: {
|
|
78
|
+
minimum: 1
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
payload: {
|
|
82
|
+
presence: { allowEmpty: false },
|
|
83
|
+
type: 'Array'
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
return (0, validate_1.validate)(syncScheme, constraints);
|
|
128
87
|
}
|
|
129
|
-
exports.validateSyncScheme = validateSyncScheme;
|
|
130
88
|
// tslint:disable-next-line
|
|
131
89
|
/*
|
|
132
90
|
function validateSerializationInput(from: string, fee: BigNumber, amount: BigNumber, publicKey: string, transaction: any) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/v3/validators/validators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/v3/validators/validators.ts"],"names":[],"mappings":"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"}
|