ldpos-chain
Version:
LDPoS chain module
35 lines (32 loc) • 1.06 kB
JavaScript
const {
validatePublicKey,
validateKeyIndex,
validateSignature,
validateSignatureHash
} = require('./primitives');
function validateSigTransactionSchema(sigTransaction, fullCheck) {
if (!sigTransaction) {
throw new Error('Sig transaction was not specified');
}
validatePublicKey('sigPublicKey', sigTransaction);
validatePublicKey('nextSigPublicKey', sigTransaction);
validateKeyIndex('nextSigKeyIndex', sigTransaction);
if (fullCheck) {
validateSignature('senderSignature', sigTransaction);
if (sigTransaction.senderSignatureHash) {
throw new Error(
`Sig transaction had a senderSignatureHash property which is not allowed during a full check`
);
}
} else {
validateSignatureHash('senderSignatureHash', sigTransaction);
if (sigTransaction.senderSignature) {
throw new Error(
`Sig transaction had a senderSignature property which is not allowed during a partial check`
);
}
}
}
module.exports = {
validateSigTransactionSchema
};