@sotatech/nest-quickfix
Version:
A powerful NestJS implementation of the FIX (Financial Information eXchange) protocol. Provides high-performance, reliable messaging for financial trading applications with built-in session management, message validation, and recovery mechanisms.
28 lines • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChecksumValidator = void 0;
const fields_1 = require("../../fields");
class ChecksumValidator {
static validate(message) {
const checksum = message.getField(fields_1.Fields.CheckSum);
const calculatedChecksum = this.calculateChecksum(message);
return checksum === calculatedChecksum;
}
static calculateChecksum(message) {
let messageString = '';
message.getAllFields().forEach((value, field) => {
if (field !== fields_1.Fields.CheckSum) {
messageString += `${field}=${value}${this.SOH}`;
}
});
let sum = 0;
for (let i = 0; i < messageString.length; i++) {
sum += messageString.charCodeAt(i);
}
sum = sum % 256;
return sum.toString().padStart(3, '0');
}
}
exports.ChecksumValidator = ChecksumValidator;
ChecksumValidator.SOH = '\x01';
//# sourceMappingURL=checksum.validator.js.map