From 8834777a76cb05363dfa05bfb0ff419bf048e02d Mon Sep 17 00:00:00 2001 From: Grid Cat Date: Wed, 7 Jul 2021 09:31:22 +0200 Subject: [PATCH] feat: add auditsnapshotaccruals --- src/RPC/Developer.ts | 13 ++++++++++++- src/contracts/auditSnapshot.ts | 29 ++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/RPC/Developer.ts b/src/RPC/Developer.ts index 9d1e315..e60b564 100644 --- a/src/RPC/Developer.ts +++ b/src/RPC/Developer.ts @@ -1,4 +1,4 @@ -import { AuditSnapshot, AuditSnapshotDetailed } from '../contracts/auditSnapshot'; +import { AuditSnapshot, AuditSnapshotAccurals, AuditSnapshotDetailed } from '../contracts/auditSnapshot'; import { RPCBase } from '../RPCBase'; import { CPID } from '../types'; @@ -18,4 +18,15 @@ export class Developer extends RPCBase { public async auditSnapshotAccrual(cpid: CPID, detailed: boolean): Promise { return this.call('auditsnapshotaccrual', cpid, detailed); } + + /** + * Report accrual audit for entire population of CPIDs. + * + * @param {boolean} [mismatchedOnly] + * @returns {Promise} + * @memberof Developer + */ + public async auditSnapshotAccruals(mismatchedOnly?: boolean): Promise { + return this.call('auditsnapshotaccruals', mismatchedOnly); + } } diff --git a/src/contracts/auditSnapshot.ts b/src/contracts/auditSnapshot.ts index 3e37296..f2844a4 100644 --- a/src/contracts/auditSnapshot.ts +++ b/src/contracts/auditSnapshot.ts @@ -1,3 +1,5 @@ +import { CPID } from '../types'; + interface Audit { boundary: string; lowTime: number; @@ -17,7 +19,7 @@ interface BeaconTimestamp { } export interface AuditSnapshot { - cpid: string; + cpid: CPID; accrualAccountExists: boolean; latestBeaconTimestamp: BeaconTimestamp; originalBeaconTimestamp: BeaconTimestamp; @@ -32,3 +34,28 @@ export interface AuditSnapshotDetailed extends AuditSnapshot { beaconChain: BeaconTimestamp[]; audit: Audit[]; } + +interface AccuralMismatchDetails { + cpid: CPID; + match: { + cpid: CPID; + accrualAccountExists: true, + latestBeaconTimestamp: BeaconTimestamp; + originalBeaconTimestamp: BeaconTimestamp; + renewals: number; + accrualByAudit: number; + accrualByGetAccrual: number; + newbieCorrection: number; + accrualLastPeriod: number; + } +} + +export interface AuditSnapshotAccurals { + numberOfCpids: number; + numberOfMatches: number; + numberOfMismatches: number; + numberOfMismatchesLastPeriodOnly: number; + numberAccrualAccountsNotPresent: number; + numberNotPresent: number; + accrualMismatchDetails: AccuralMismatchDetails[]; +}