Move block audit cache to apiService

This commit is contained in:
natsoni 2024-07-12 16:00:51 +09:00
parent 99ea1ad0a0
commit c3b9828d42
No known key found for this signature in database
GPG key ID: C65917583181743B
5 changed files with 13 additions and 13 deletions

View file

@ -295,7 +295,6 @@ export class BlockComponent implements OnInit, OnDestroy {
),
!this.isAuditAvailableFromBlockHeight(block.height) ? of(null) : this.apiService.getBlockAudit$(block.id)
.pipe(
tap(() => this.cacheService.setBlockAuditLoaded(block.id)),
catchError((err) => {
this.overviewError = err;
return of(null);

View file

@ -322,7 +322,6 @@ export class TrackerComponent implements OnInit, OnDestroy {
})
),
fetchAudit ? this.apiService.getBlockAudit$(hash).pipe(
tap((blockAudit) => this.cacheService.setBlockAuditLoaded(hash)),
map(audit => {
const isAdded = audit.addedTxs.includes(txid);
const isPrioritized = audit.prioritizedTxs.includes(txid);

View file

@ -366,7 +366,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
const fetchAudit = auditAvailable && !isCoinbase;
if (fetchAudit) {
// If block audit is already cached, use it to get transaction audit
const blockAuditLoaded = this.cacheService.getBlockAuditLoaded(hash);
const blockAuditLoaded = this.apiService.getBlockAuditLoaded(hash);
if (blockAuditLoaded) {
return this.apiService.getBlockAudit$(hash).pipe(
map(audit => {

View file

@ -18,6 +18,7 @@ export class ApiService {
private apiBasePath: string; // network path is /testnet, etc. or '' for mainnet
private requestCache = new Map<string, { subject: BehaviorSubject<any>, expiry: number }>;
public blockAuditLoaded: { [hash: string]: boolean } = {};
constructor(
private httpClient: HttpClient,
@ -370,6 +371,7 @@ export class ApiService {
}
getBlockAudit$(hash: string) : Observable<BlockAudit> {
this.setBlockAuditLoaded(hash);
return this.httpClient.get<BlockAudit>(
this.apiBaseUrl + this.apiBasePath + `/api/v1/block/${hash}/audit-summary`
);
@ -533,4 +535,13 @@ export class ApiService {
this.apiBaseUrl + this.apiBasePath + '/api/v1/accelerations/total' + (queryString?.length ? '?' + queryString : '')
);
}
// Cache methods
async setBlockAuditLoaded(hash: string) {
this.blockAuditLoaded[hash] = true;
}
getBlockAuditLoaded(hash) {
return this.blockAuditLoaded[hash];
}
}

View file

@ -20,7 +20,6 @@ export class CacheService {
network: string;
blockHashCache: { [hash: string]: BlockExtended } = {};
blockCache: { [height: number]: BlockExtended } = {};
blockAuditLoaded: { [hash: string]: boolean } = {};
blockLoading: { [height: number]: boolean } = {};
copiesInBlockQueue: { [height: number]: number } = {};
blockPriorities: number[] = [];
@ -98,10 +97,6 @@ export class CacheService {
}
}
async setBlockAuditLoaded(hash: string) {
this.blockAuditLoaded[hash] = true;
}
// increase the priority of a block, to delay removal
bumpBlockPriority(height) {
this.blockPriorities.push(height);
@ -129,7 +124,7 @@ export class CacheService {
resetBlockCache() {
this.blockHashCache = {};
this.blockCache = {};
this.blockAuditLoaded = {};
this.apiService.blockAuditLoaded = {};
this.blockLoading = {};
this.copiesInBlockQueue = {};
this.blockPriorities = [];
@ -138,8 +133,4 @@ export class CacheService {
getCachedBlock(height) {
return this.blockCache[height];
}
getBlockAuditLoaded(hash) {
return this.blockAuditLoaded[hash];
}
}