From d1ecffdea3be1c86a6faf759653d52d02dbe4608 Mon Sep 17 00:00:00 2001 From: Ben Wilson Date: Tue, 25 Jul 2023 22:45:14 -0400 Subject: [PATCH] shares --- .../address-settings.entity.ts | 5 ++++- .../address-settings.service.ts | 18 ++++++++++++++++++ src/models/StratumV1Client.ts | 6 ++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/ORM/address-settings/address-settings.entity.ts b/src/ORM/address-settings/address-settings.entity.ts index 0a15730..bf1fcf3 100644 --- a/src/ORM/address-settings/address-settings.entity.ts +++ b/src/ORM/address-settings/address-settings.entity.ts @@ -8,8 +8,11 @@ export class AddressSettingsEntity extends TrackedEntity { @PrimaryColumn({ length: 62, type: 'varchar' }) address: string; + @Column({ default: 0 }) + shares: number; + @Column({ type: 'real', default: 0 }) - bestDifficulty: number + bestDifficulty: number; @Column({ nullable: true }) miscCoinbaseScriptData: string; diff --git a/src/ORM/address-settings/address-settings.service.ts b/src/ORM/address-settings/address-settings.service.ts index b72ff8f..16b5ce6 100644 --- a/src/ORM/address-settings/address-settings.service.ts +++ b/src/ORM/address-settings/address-settings.service.ts @@ -29,4 +29,22 @@ export class AddressSettingsService { public async createNew(address: string) { return await this.addressSettingsRepository.save({ address }); } + + public async addShares(address: string, shares: number) { + return await this.addressSettingsRepository.createQueryBuilder() + .update(AddressSettingsEntity) + .set({ + shares: () => `"shares" + :shares` + }) + .where('address = :address', { address }) + .setParameter('shares', shares) + .execute(); + } + + public async resetBestDifficultyAndShares() { + return await this.addressSettingsRepository.update({}, { + shares: 0, + bestDifficulty: 0 + }); + } } \ No newline at end of file diff --git a/src/models/StratumV1Client.ts b/src/models/StratumV1Client.ts index dbc9340..3e5f3f6 100644 --- a/src/models/StratumV1Client.ts +++ b/src/models/StratumV1Client.ts @@ -387,10 +387,16 @@ export class StratumV1Client extends EasyUnsubscribe { sessionId: this.extraNonceAndSessionId, blockData: blockHex }); + await this.notificationService.notifySubscribersBlockFound(this.clientAuthorization.address, jobTemplate.blockData.height, updatedJobBlock, result); + //success + if (result == null) { + await this.addressSettingsService.resetBestDifficultyAndShares(); + } } try { await this.statistics.addSubmission(this.entity, submissionHash, this.sessionDifficulty); + await this.addressSettingsService.addShares(this.clientAuthorization.address, this.sessionDifficulty); } catch (e) { console.log(e); const err = new StratumErrorMessage(