diff --git a/src/ORM/client-statistics/client-statistics.entity.ts b/src/ORM/client-statistics/client-statistics.entity.ts index 0ea8985..1852ac0 100644 --- a/src/ORM/client-statistics/client-statistics.entity.ts +++ b/src/ORM/client-statistics/client-statistics.entity.ts @@ -26,6 +26,9 @@ export class ClientStatisticsEntity extends TrackedEntity { @Column({ type: 'real' }) shares: number; + @Column({ default: 0, type: 'integer' }) + acceptedCount: number; + diff --git a/src/ORM/client-statistics/client-statistics.service.ts b/src/ORM/client-statistics/client-statistics.service.ts index 439dde0..58c293f 100644 --- a/src/ORM/client-statistics/client-statistics.service.ts +++ b/src/ORM/client-statistics/client-statistics.service.ts @@ -21,7 +21,8 @@ export class ClientStatisticsService { const res1 = await this.clientStatisticsRepository.createQueryBuilder() .update(ClientStatisticsEntity) .set({ - shares: () => `"shares" + ${clientStatistic.shares}` // Use the actual value of shares here + shares: () => `"shares" + ${clientStatistic.shares}`, // Use the actual value of shares here + acceptedCount: () => `"acceptedCount" + 1` }) .where('address = :address AND clientName = :clientName AND sessionId = :sessionId AND time = :time', { address: clientStatistic.address, clientName: clientStatistic.clientName, sessionId: clientStatistic.sessionId, time: clientStatistic.time }) .execute(); diff --git a/src/models/StratumV1Client.ts b/src/models/StratumV1Client.ts index 5b81602..f173cda 100644 --- a/src/models/StratumV1Client.ts +++ b/src/models/StratumV1Client.ts @@ -340,15 +340,6 @@ export class StratumV1Client { } - this.entity = await this.clientService.insert({ - sessionId: this.extraNonceAndSessionId, - address: this.clientAuthorization.address, - clientName: this.clientAuthorization.worker, - userAgent: this.clientSubscription.userAgent, - startTime: new Date(), - bestDifficulty: 0 - }); - this.stratumSubscription = this.stratumV1JobsService.newMiningJob$.pipe( ).subscribe(async (jobTemplate) => { try { @@ -410,6 +401,18 @@ export class StratumV1Client { private async handleMiningSubmission(submission: MiningSubmitMessage) { + if (this.entity == null) { + this.entity = await this.clientService.insert({ + sessionId: this.extraNonceAndSessionId, + address: this.clientAuthorization.address, + clientName: this.clientAuthorization.worker, + userAgent: this.clientSubscription.userAgent, + startTime: new Date(), + bestDifficulty: 0 + }); + } + + const job = this.stratumV1JobsService.getJobById(submission.jobId); // a miner may submit a job that doesn't exist anymore if it was removed by a new block notification