in middleware/utils/encoding.js [48:80]
function applyDeltaEncoding(data) {
if (!data || !Array.isArray(data) || data.length === 0) {
return {
startEpoch: 0,
startVolume: 0,
timeMultiplier: TIME_MULTIPLIER,
epochs: [],
volumes: []
};
}
// First element becomes the base reference
const startEpoch = data[0].epoch;
const startVolume = data[0].volume;
// For each subsequent element, store deltas from previous
const epochs = [];
const volumes = [];
for (let i = 1; i < data.length; i++) {
// Store epoch deltas normalized to reduce zeros
epochs.push((data[i].epoch - data[i-1].epoch) / TIME_MULTIPLIER);
volumes.push(data[i].volume - data[i-1].volume);
}
return {
startEpoch: startEpoch / TIME_MULTIPLIER,
startVolume,
timeMultiplier: TIME_MULTIPLIER,
epochs,
volumes
};
}