1// Copyright (C) 2021 Storj Labs, Inc. 2// See LICENSE for copying information. 3 4/** 5 * Stats encapsulates node reputation data. 6 */ 7export class Stats { 8 public constructor( 9 public nodeId: string, 10 public nodeName: string, 11 public audit: Audit, 12 public onlineScore: number, 13 public disqualifiedAt: Date, 14 public suspendedAt: Date, 15 public offlineSuspendedAt: Date, 16 public offlineUnderReviewAt: Date, 17 public updatedAt: Date, 18 public joinedAt: Date, 19 ) {} 20} 21 22/** 23 * Audit contains audit reputation metrics. 24 */ 25export class Audit { 26 public constructor( 27 public totalCount: number, 28 public successCount: number, 29 public alpha: number, 30 public beta: number, 31 public unknownAlpha: number, 32 public unknownBeta: number, 33 public score: number, 34 public suspensionScore: number, 35 public history: AuditWindow[], 36 ) {} 37} 38 39/** 40 * AuditWindow contains audit count for particular time frame. 41 */ 42export class AuditWindow { 43 public constructor( 44 public windowStart: Date, 45 public totalCount: number, 46 public onlineCount: number, 47 ) {} 48} 49