Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
);
}
if (getTransactionsByChannelIdCount > 0) {
console.log(`\ngetTransactionsByChannelId statistics`);
console.log(`average: ${simpleStatistics.mean(getTransactionsByChannelIdTimes)}`);
console.log(`median: ${simpleStatistics.median(getTransactionsByChannelIdTimes)}`);
console.log(`min: ${simpleStatistics.min(getTransactionsByChannelIdTimes)}`);
console.log(`max: ${simpleStatistics.max(getTransactionsByChannelIdTimes)}`);
console.log(
`standard deviation: ${simpleStatistics.standardDeviation(getTransactionsByChannelIdTimes)}`,
);
}
if (persistTransactionCount > 0) {
console.log(`\npersistTransaction statistics`);
console.log(`average: ${simpleStatistics.mean(persistTransactionTimes)}`);
console.log(`median: ${simpleStatistics.median(persistTransactionTimes)}`);
console.log(`min: ${simpleStatistics.min(persistTransactionTimes)}`);
console.log(`max: ${simpleStatistics.max(persistTransactionTimes)}`);
console.log(
`standard deviation: ${simpleStatistics.standardDeviation(persistTransactionTimes)}`,
);
}
});
console.log(`${persistTransactionCount} persistTransaction requests`);
if (getChannelsByTopicCount > 0) {
console.log(`\ngetChannelsByTopic statistics`);
console.log(`average: ${simpleStatistics.mean(getChannelsByTopicTimes)}`);
console.log(`median: ${simpleStatistics.median(getChannelsByTopicTimes)}`);
console.log(`min: ${simpleStatistics.min(getChannelsByTopicTimes)}`);
console.log(`max: ${simpleStatistics.max(getChannelsByTopicTimes)}`);
console.log(
`standard deviation: ${simpleStatistics.standardDeviation(getChannelsByTopicTimes)}`,
);
}
if (getTransactionsByChannelIdCount > 0) {
console.log(`\ngetTransactionsByChannelId statistics`);
console.log(`average: ${simpleStatistics.mean(getTransactionsByChannelIdTimes)}`);
console.log(`median: ${simpleStatistics.median(getTransactionsByChannelIdTimes)}`);
console.log(`min: ${simpleStatistics.min(getTransactionsByChannelIdTimes)}`);
console.log(`max: ${simpleStatistics.max(getTransactionsByChannelIdTimes)}`);
console.log(
`standard deviation: ${simpleStatistics.standardDeviation(getTransactionsByChannelIdTimes)}`,
);
}
if (persistTransactionCount > 0) {
console.log(`\npersistTransaction statistics`);
console.log(`average: ${simpleStatistics.mean(persistTransactionTimes)}`);
console.log(`median: ${simpleStatistics.median(persistTransactionTimes)}`);
console.log(`min: ${simpleStatistics.min(persistTransactionTimes)}`);
console.log(`max: ${simpleStatistics.max(persistTransactionTimes)}`);
console.log(
`standard deviation: ${simpleStatistics.standardDeviation(persistTransactionTimes)}`,
);
}
channels: nightlyToRelease.map((channel, i) => {
if (!evolutions[i]) {
return null;
}
const submissionsAvg = median(evolutions[i].map(date => date.submissions));
const countAvg = median(evolutions[i].map(date => date.count));
const cutoff = submissionsAvg * 0.5;
const dates = averageEvolution(
evolutions[i]
.map((histogram, j, date) => {
if (histogram.submissions < cutoff) {
return null;
}
return Object.assign(summarizeHistogram(histogram), {
date: moment(date).format('YYYY-MM-DD'),
});
})
.filter(entry => entry && entry.p50),
);
return {
channel: channel,
submissionsAvg: submissionsAvg,
update.valid[i] = true;
update.errors[i] = null;
update.rejectReason[i] = 0;
update.prices[i] = rate.rate.toNumber();
prices.push(update.prices[i]);
const lastPrice: number = update.lastPrice[i];
update.deltas[i] = lastPrice ? update.prices[i] - lastPrice : 0;
delta.push(update.deltas[i]);
});
this.report.data[_pair] = update;
const numValid = prices.length;
if (numValid < this.minNumberOfReliableSources) {
return null;
}
const medianPrice = ss.median(prices);
const medianDelta = ss.median(delta);
let numReliablePrices = 0;
let sum = 0;
const threshold = this.priceThreshold * medianPrice;
const deltaThreshold = this.deltaThreshold * medianPrice;
for (let i = 0; i < numValid; i++) {
const priceDeviation = Math.abs(prices[i] - medianPrice);
const gradDeviation = Math.abs(delta[i] - medianDelta);
if (priceDeviation >= threshold) {
update.rejectReason[i] = PRICE_DEVIATION_ERROR;
}
if (gradDeviation >= deltaThreshold) {
update.rejectReason[i] = PRICE_CHANGE_DEVIATION_ERROR;
}
if (priceDeviation < threshold && gradDeviation < deltaThreshold) {
numReliablePrices++;
sum += prices[i];
series.forEach((serie) => {
serie.value = median(serie.runs.map(entry => entry.value));
serie.time = median(serie.runs.map(entry => entry.time));
});
const runs = series.reduce((all, entry) => {
function computeSignatureRequestStats(signatureRequests, senderHome) {
const processingLogs = signatureRequests.filter(x => x.eventTransactionHash)
const txSentMap = senderHome
.filter(x => x.eventTransactionHash)
.reduce((acc, x) => {
acc[x.eventTransactionHash] = x
return acc
}, {})
const times = processingLogs.map(x => txSentMap[x.eventTransactionHash].time - x.time)
return {
count: times.length,
mean: mean(times),
median: median(times),
min: min(times),
max: max(times)
}
}
series.forEach((serie) => {
serie.value = median(serie.runs.map(entry => entry.value));
serie.time = median(serie.runs.map(entry => entry.time));
});
const runs = series.reduce((all, entry) => {
function computeCollectedSignaturesStats(collectedSignatures, senderForeign) {
const processingLogs = collectedSignatures.filter(x => x.eventTransactionHash)
const txSentMap = senderForeign
.filter(x => x.eventTransactionHash)
.reduce((acc, x) => {
acc[x.eventTransactionHash] = x
return acc
}, {})
const times = processingLogs.map(x => txSentMap[x.eventTransactionHash].time - x.time)
return {
count: times.length,
mean: mean(times),
median: median(times),
min: min(times),
max: max(times)
}
}