lisk-framework
Version:
Lisk blockchain application platform
234 lines • 6.76 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isSeedRevealValidResponseSchema = exports.isSeedRevealValidRequestSchema = exports.registeredHashOnionsStoreSchema = exports.blockHeaderAssetRandomModule = exports.randomModuleGeneratorConfig = exports.randomModuleConfig = exports.setHashOnionUsageRequest = exports.getHashOnionUsageResponse = exports.hasHashOnionResponseSchema = exports.addressSchema = exports.hashOnionSchema = void 0;
const constants_1 = require("./constants");
exports.hashOnionSchema = {
$id: 'lisk/random/setSeedRequestSchema',
type: 'object',
title: 'Random setSeed request',
required: ['address'],
properties: {
address: {
type: 'string',
format: 'lisk32',
},
seed: {
type: 'string',
format: 'hex',
minLength: constants_1.SEED_LENGTH * 2,
maxLength: constants_1.SEED_LENGTH * 2,
},
count: {
type: 'integer',
minimum: 1,
maximum: constants_1.MAX_HASH_COMPUTATION * 1000,
},
distance: {
type: 'integer',
minimum: 1,
},
hashes: {
type: 'array',
minItems: 1,
items: {
type: 'string',
format: 'hex',
minLength: constants_1.SEED_LENGTH * 2,
maxLength: constants_1.SEED_LENGTH * 2,
},
},
},
};
exports.addressSchema = {
$id: 'lisk/random/addressSchema',
type: 'object',
required: ['address'],
properties: {
address: {
type: 'string',
format: 'lisk32',
},
},
};
exports.hasHashOnionResponseSchema = {
$id: 'lisk/random/hasHashOnionResponseSchema',
type: 'object',
required: ['hasSeed', 'remaining'],
properties: {
hasSeed: {
type: 'boolean',
},
remaining: {
type: 'integer',
format: 'uint32',
},
},
};
exports.getHashOnionUsageResponse = {
$id: 'lisk/random/getHashOnionUsageResponse',
type: 'object',
required: ['usedHashOnions', 'seed'],
properties: {
usedHashOnions: {
type: 'array',
items: {
type: 'object',
required: ['count', 'height'],
properties: {
count: {
type: 'integer',
format: 'uint32',
},
height: {
type: 'integer',
format: 'uint32',
},
},
},
},
seed: {
type: 'string',
format: 'hex',
},
},
};
exports.setHashOnionUsageRequest = {
$id: 'lisk/random/setHashOnionUsageRequest',
type: 'object',
required: ['address', 'usedHashOnions'],
properties: {
address: {
type: 'string',
format: 'lisk32',
},
usedHashOnions: {
type: 'array',
items: {
type: 'object',
required: ['count', 'height'],
properties: {
count: {
type: 'integer',
format: 'uint32',
},
height: {
type: 'integer',
format: 'uint32',
},
},
},
},
},
};
exports.randomModuleConfig = {
$id: '/modules/random/config',
type: 'object',
required: ['maxLengthReveals'],
properties: {
maxLengthReveals: {
type: 'integer',
format: 'uint32',
},
},
};
exports.randomModuleGeneratorConfig = {
$id: '/modules/random/generator',
type: 'object',
required: [],
properties: {
hashOnions: {
type: 'array',
items: {
type: 'object',
required: ['address', 'hashOnion'],
properties: {
address: {
type: 'string',
format: 'lisk32',
},
hashOnion: {
type: 'object',
required: ['count', 'distance', 'hashes'],
properties: {
count: { type: 'integer' },
distance: { type: 'integer' },
hashes: {
type: 'array',
items: {
type: 'string',
format: 'hex',
},
},
},
},
},
},
},
},
};
exports.blockHeaderAssetRandomModule = {
$id: '/modules/random/block/header/asset',
type: 'object',
properties: {
seedReveal: {
dataType: 'bytes',
fieldNumber: 1,
minLength: constants_1.SEED_LENGTH,
maxLength: constants_1.SEED_LENGTH,
},
},
required: ['seedReveal'],
};
exports.registeredHashOnionsStoreSchema = {
title: 'Used hash onion',
$id: '/forger/registeredHashOnion',
type: 'object',
required: ['registeredHashOnions'],
properties: {
registeredHashOnions: {
type: 'array',
fieldNumber: 1,
items: {
type: 'object',
required: ['address', 'seedHash'],
properties: {
address: {
dataType: 'bytes',
format: 'lisk32',
fieldNumber: 1,
},
seedHash: {
dataType: 'bytes',
fieldNumber: 2,
},
},
},
},
},
};
exports.isSeedRevealValidRequestSchema = {
$id: '/modules/random/endpoint/isSeedRevealRequest',
type: 'object',
required: ['generatorAddress', 'seedReveal'],
properties: {
generatorAddress: {
type: 'string',
format: 'lisk32',
},
seedReveal: {
type: 'string',
format: 'hex',
},
},
};
exports.isSeedRevealValidResponseSchema = {
$id: '/modules/random/endpoint/isSeedRevealResponse',
type: 'object',
required: ['valid'],
properties: {
valid: {
type: 'boolean',
},
},
};
//# sourceMappingURL=schemas.js.map