lisk-framework
Version:
Lisk blockchain application platform
146 lines • 5.07 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.areHeadersContradictingRequestSchema = exports.validatorsHashInputSchema = exports.bftVotesSchema = exports.bftParametersSchema = void 0;
const constants_1 = require("./constants");
exports.bftParametersSchema = {
$id: '/modules/bft/bftParameters',
type: 'object',
required: [
'prevoteThreshold',
'precommitThreshold',
'certificateThreshold',
'validators',
'validatorsHash',
],
properties: {
prevoteThreshold: {
dataType: 'uint64',
fieldNumber: 1,
},
precommitThreshold: {
dataType: 'uint64',
fieldNumber: 2,
},
certificateThreshold: {
dataType: 'uint64',
fieldNumber: 3,
},
validators: {
type: 'array',
fieldNumber: 4,
items: {
type: 'object',
required: ['address', 'bftWeight', 'generatorKey', 'blsKey'],
properties: {
address: {
dataType: 'bytes',
format: 'lisk32',
fieldNumber: 1,
},
bftWeight: {
dataType: 'uint64',
fieldNumber: 2,
},
generatorKey: {
dataType: 'bytes',
fieldNumber: 3,
minLength: constants_1.ED25519_PUBLIC_KEY_LENGTH,
maxLength: constants_1.ED25519_PUBLIC_KEY_LENGTH,
},
blsKey: {
dataType: 'bytes',
fieldNumber: 4,
minLength: constants_1.BLS_PUBLIC_KEY_LENGTH,
maxLength: constants_1.BLS_PUBLIC_KEY_LENGTH,
},
},
},
},
validatorsHash: {
dataType: 'bytes',
fieldNumber: 5,
},
},
};
exports.bftVotesSchema = {
$id: '/modules/bft/bftVotes',
type: 'object',
required: [
'maxHeightPrevoted',
'maxHeightPrecommitted',
'maxHeightCertified',
'blockBFTInfos',
'activeValidatorsVoteInfo',
],
properties: {
maxHeightPrevoted: { dataType: 'uint32', fieldNumber: 1 },
maxHeightPrecommitted: { dataType: 'uint32', fieldNumber: 2 },
maxHeightCertified: { dataType: 'uint32', fieldNumber: 3 },
blockBFTInfos: {
type: 'array',
fieldNumber: 4,
items: {
type: 'object',
required: [
'height',
'generatorAddress',
'maxHeightGenerated',
'maxHeightPrevoted',
'prevoteWeight',
'precommitWeight',
],
properties: {
height: { dataType: 'uint32', fieldNumber: 1 },
generatorAddress: { dataType: 'bytes', fieldNumber: 2 },
maxHeightGenerated: { dataType: 'uint32', fieldNumber: 3 },
maxHeightPrevoted: { dataType: 'uint32', fieldNumber: 4 },
prevoteWeight: { dataType: 'uint64', fieldNumber: 5 },
precommitWeight: { dataType: 'uint64', fieldNumber: 6 },
},
},
},
activeValidatorsVoteInfo: {
type: 'array',
fieldNumber: 5,
items: {
type: 'object',
required: ['address', 'minActiveHeight', 'largestHeightPrecommit'],
properties: {
address: { dataType: 'bytes', fieldNumber: 1 },
minActiveHeight: { dataType: 'uint32', fieldNumber: 2 },
largestHeightPrecommit: { dataType: 'uint32', fieldNumber: 3 },
},
},
},
},
};
exports.validatorsHashInputSchema = {
$id: '/modules/bft/validatorsHashInput',
type: 'object',
required: ['activeValidators', 'certificateThreshold'],
properties: {
activeValidators: {
type: 'array',
fieldNumber: 1,
items: {
type: 'object',
required: ['blsKey', 'bftWeight'],
properties: {
blsKey: { dataType: 'bytes', fieldNumber: 1 },
bftWeight: { dataType: 'uint64', fieldNumber: 2 },
},
},
},
certificateThreshold: { dataType: 'uint64', fieldNumber: 2 },
},
};
exports.areHeadersContradictingRequestSchema = {
$id: '/modules/bft/areHeadersContradictingRequest',
type: 'object',
required: ['header1', 'header2'],
properties: {
header1: { type: 'string', format: 'hex' },
header2: { type: 'string', format: 'hex' },
},
};
//# sourceMappingURL=schemas.js.map