ssv-keys
Version:
Tool for splitting a validator key into a predefined threshold of shares via Shamir-Secret-Sharing (SSS), and encrypt them with a set of operator keys.
44 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PublicKeyValidator = exports.PublicKeyValidatorConstraint = void 0;
const tslib_1 = require("tslib");
const BLS_1 = tslib_1.__importDefault(require("../../../BLS"));
const class_validator_1 = require("class-validator");
const bls_1 = require("../../../exceptions/bls");
/* Try to BLS deserialize validator public key. */
let PublicKeyValidatorConstraint = class PublicKeyValidatorConstraint {
async validate(value) {
try {
if (typeof value === 'string') {
BLS_1.default.deserializeHexStrToPublicKey(value.replace('0x', ''));
}
else {
value.forEach((item) => BLS_1.default.deserializeHexStrToPublicKey(item.replace('0x', '')));
}
}
catch (e) {
throw new bls_1.BLSDeserializeError(value, 'Failed to BLS deserialize validator public key');
}
return true;
}
defaultMessage() {
return 'Invalid public key';
}
};
PublicKeyValidatorConstraint = tslib_1.__decorate([
(0, class_validator_1.ValidatorConstraint)({ name: 'publicKey', async: true })
], PublicKeyValidatorConstraint);
exports.PublicKeyValidatorConstraint = PublicKeyValidatorConstraint;
function PublicKeyValidator(validationOptions) {
return function (object, propertyName) {
(0, class_validator_1.registerDecorator)({
target: object.constructor,
propertyName,
options: validationOptions,
constraints: [],
validator: PublicKeyValidatorConstraint,
});
};
}
exports.PublicKeyValidator = PublicKeyValidator;
//# sourceMappingURL=public-key.js.map