@swaptoshi/governance-module
Version:
Klayr governance on-chain module
39 lines • 1.89 kB
JavaScript
;
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