UNPKG

@swaptoshi/governance-module

Version:

Klayr governance on-chain module

39 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.encodeConfigProposalValue = encodeConfigProposalValue; exports.decodeConfigProposalValue = decodeConfigProposalValue; exports.encodeConfigProposalPayload = encodeConfigProposalPayload; exports.decodeConfigProposalPayload = decodeConfigProposalPayload; const codec_1 = require("@klayr/codec"); const utils_1 = require("@swaptoshi/utils"); const schema_1 = require("../schema"); function buildConfigPayloadValueSchema(schema, path) { const configValueSchema = { $id: `configProposalPayload_${schema.$id}_${path}`, type: 'object', properties: { value: { ...utils_1.object.getSchemaByPath(schema, path), fieldNumber: 1 } }, }; return configValueSchema; } function encodeConfigProposalValue(configSchema, path, value) { const configValueSchema = buildConfigPayloadValueSchema(configSchema, path); return codec_1.codec.encode(utils_1.object.removeProperty(configValueSchema, ['governable']), { value }); } function decodeConfigProposalValue(configSchema, payload) { const configValueSchema = buildConfigPayloadValueSchema(configSchema, payload.paramPath); const configObject = codec_1.codec.decode(utils_1.object.removeProperty(configValueSchema, ['governable']), payload.value); return configObject.value; } function encodeConfigProposalPayload(configSchema, moduleName, paramPath, configValue) { const configPayload = { moduleName, paramPath, value: encodeConfigProposalValue(configSchema, paramPath, configValue), }; return codec_1.codec.encode(schema_1.configActionPayloadSchema, configPayload); } function decodeConfigProposalPayload(encodedPayload) { const decodedPayload = codec_1.codec.decode(schema_1.configActionPayloadSchema, encodedPayload); return decodedPayload; } //# sourceMappingURL=payload.js.map