UNPKG

@swaptoshi/governance-module

Version:

Klayr governance on-chain module

101 lines 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.governanceGenesisStoreSchema = void 0; const utils = require("@klayr/utils"); const stores_1 = require("./stores"); const genesisSchemaBuilder = (schema, keys) => { const { $id, ...rest } = utils.objects.cloneDeep(schema); const initialLength = Object.keys(schema.properties).length; for (let i = 0; i < keys.length; i += 1) { rest.required.push(keys[i].key); const properties = { fieldNumber: initialLength + 1 + i, dataType: keys[i].dataType, }; if (keys[i].format) { properties.format = keys[i].format; } rest.properties[keys[i].key] = properties; } return rest; }; exports.governanceGenesisStoreSchema = { $id: '/governance/module/genesis', type: 'object', required: [ 'boostedAccountSubstore', 'castedVoteSubstore', 'delegatedVoteSubstore', 'nextAvailableProposalIdSubstore', 'proposalVoterSubstore', 'proposalSubstore', 'queueSubstore', 'voteScoreSubstore', 'configRegistrySubstore', 'configSubstore', ], properties: { boostedAccountSubstore: { fieldNumber: 1, type: 'array', items: genesisSchemaBuilder(stores_1.boostedAccountStoreSchema, [{ key: 'address', dataType: 'bytes', format: 'klayr32' }]), }, castedVoteSubstore: { fieldNumber: 2, type: 'array', items: genesisSchemaBuilder(stores_1.castedVoteStoreSchema, [{ key: 'address', dataType: 'bytes', format: 'klayr32' }]), }, delegatedVoteSubstore: { fieldNumber: 3, type: 'array', items: genesisSchemaBuilder(stores_1.delegatedVoteStoreSchema, [{ key: 'address', dataType: 'bytes', format: 'klayr32' }]), }, nextAvailableProposalIdSubstore: { fieldNumber: 4, ...genesisSchemaBuilder(stores_1.nextAvailableProposalIdStoreSchema, []), }, proposalVoterSubstore: { fieldNumber: 5, type: 'array', items: genesisSchemaBuilder(stores_1.proposalVoterStoreSchema, [{ key: 'proposalId', dataType: 'uint32' }]), }, proposalSubstore: { fieldNumber: 6, type: 'array', items: genesisSchemaBuilder(stores_1.proposalStoreSchema, [{ key: 'proposalId', dataType: 'uint32' }]), }, queueSubstore: { fieldNumber: 7, type: 'array', items: genesisSchemaBuilder(stores_1.proposalQueueStoreSchema, [{ key: 'height', dataType: 'uint32' }]), }, voteScoreSubstore: { fieldNumber: 8, type: 'array', items: genesisSchemaBuilder(stores_1.voteScoreStoreSchema, [{ key: 'address', dataType: 'bytes', format: 'klayr32' }]), }, configRegistrySubstore: { fieldNumber: 9, ...genesisSchemaBuilder(stores_1.configRegistryStoreSchema, []), }, configSubstore: { fieldNumber: 10, type: 'array', items: { type: 'object', required: ['module', 'data'], properties: { module: { fieldNumber: 1, dataType: 'string', }, data: { fieldNumber: 2, dataType: 'bytes', }, }, }, }, }, }; //# sourceMappingURL=genesis.js.map