From 6a6b2c32bf04e6955c64c3998fd675bf588022ca Mon Sep 17 00:00:00 2001 From: Ben Wilson Date: Sun, 16 Jul 2023 18:48:53 -0400 Subject: [PATCH] cleanup --- src/models/MiningJob.ts | 9 +-------- src/models/StratumV1Client.ts | 6 +++--- src/services/stratum-v1-jobs.service.ts | 9 ++++++--- src/services/stratum-v1.service.ts | 1 - 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/models/MiningJob.ts b/src/models/MiningJob.ts index c8a73eb..50ce6ae 100644 --- a/src/models/MiningJob.ts +++ b/src/models/MiningJob.ts @@ -15,24 +15,17 @@ export class MiningJob { private coinbasePart1: string; private coinbasePart2: string; - // private merkle_branch: string[]; // List of hashes, will be used for calculation of merkle root. This is not a list of all transactions, it only contains prepared hashes of steps of merkle tree algorithm. - - public jobId: string; // ID of the job. Use this ID while submitting share generated from this job. public jobTemplateId: string; - //public block: bitcoinjs.Block = new bitcoinjs.Block(); public networkDifficulty: number; - - constructor( private network: bitcoinjs.networks.Network, - id: string, + public jobId: string, payoutInformation: AddressObject[], jobTemplate: IJobTemplate ) { - this.jobId = id; this.jobTemplateId = jobTemplate.blockData.id, this.coinbaseTransaction = this.createCoinbaseTransaction(payoutInformation, jobTemplate.blockData.coinbasevalue); diff --git a/src/models/StratumV1Client.ts b/src/models/StratumV1Client.ts index 268f0ae..a17deee 100644 --- a/src/models/StratumV1Client.ts +++ b/src/models/StratumV1Client.ts @@ -356,18 +356,18 @@ export class StratumV1Client extends EasyUnsubscribe { if (submissionDifficulty >= this.sessionDifficulty) { - if (submissionDifficulty >= job.networkDifficulty) { + if (submissionDifficulty >= jobTemplate.blockData.networkDifficulty) { console.log('!!! BLOCK FOUND !!!'); const blockHex = updatedJobBlock.toHex(false); const result = await this.bitcoinRpcService.SUBMIT_BLOCK(blockHex); await this.blocksService.save({ - height: jobTemplate.height, + height: jobTemplate.blockData.height, minerAddress: this.clientAuthorization.address, worker: this.clientAuthorization.worker, sessionId: this.extraNonceAndSessionId, blockData: blockHex }); - await this.notificationService.notifySubscribersBlockFound(this.clientAuthorization.address, jobTemplate.height, updatedJobBlock, result); + await this.notificationService.notifySubscribersBlockFound(this.clientAuthorization.address, jobTemplate.blockData.height, updatedJobBlock, result); } try { await this.statistics.addSubmission(this.entity, submissionHash, this.sessionDifficulty); diff --git a/src/services/stratum-v1-jobs.service.ts b/src/services/stratum-v1-jobs.service.ts index 30e8724..92de707 100644 --- a/src/services/stratum-v1-jobs.service.ts +++ b/src/services/stratum-v1-jobs.service.ts @@ -17,6 +17,7 @@ export interface IJobTemplate { littleEndianBlockHeight: Buffer; coinbasevalue: number; networkDifficulty: number; + height: number; clearJobs: boolean; }; } @@ -75,11 +76,12 @@ export class StratumV1JobsService { coinbasevalue: blockTemplate.coinbasevalue, timestamp: Math.floor(new Date().getTime() / 1000), networkDifficulty: this.calculateNetworkDifficulty(parseInt(blockTemplate.bits, 16)), - clearJobs + clearJobs, + height: blockTemplate.height }; }), filter(next => next != null), - map(({ version, bits, prevHash, transactions, timestamp, littleEndianBlockHeight, coinbasevalue, networkDifficulty, clearJobs }) => { + map(({ version, bits, prevHash, transactions, timestamp, littleEndianBlockHeight, coinbasevalue, networkDifficulty, clearJobs, height }) => { const block = new bitcoinjs.Block(); //create an empty coinbase tx @@ -119,6 +121,7 @@ export class StratumV1JobsService { littleEndianBlockHeight, coinbasevalue, networkDifficulty, + height, clearJobs } } @@ -151,7 +154,7 @@ export class StratumV1JobsService { return bytes; } - public getJobTemplateById(jobTemplateId: string) { + public getJobTemplateById(jobTemplateId: string): IJobTemplate { return this.blocks[jobTemplateId]; } diff --git a/src/services/stratum-v1.service.ts b/src/services/stratum-v1.service.ts index 86e1559..602de54 100644 --- a/src/services/stratum-v1.service.ts +++ b/src/services/stratum-v1.service.ts @@ -15,7 +15,6 @@ import { StratumV1JobsService } from './stratum-v1-jobs.service'; @Injectable() export class StratumV1Service implements OnModuleInit { - private constructor( private readonly bitcoinRpcService: BitcoinRpcService, private readonly clientService: ClientService,