From b7d86e773025f4085573a73b96ee888b1ed8aa4b Mon Sep 17 00:00:00 2001 From: Ben Wilson Date: Sun, 16 Jul 2023 17:05:40 -0400 Subject: [PATCH] stratum service should be singleton --- src/app.module.ts | 4 +++- src/services/stratum-v1-jobs.service.ts | 2 ++ src/services/stratum-v1.service.ts | 7 +++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/app.module.ts b/src/app.module.ts index 8983c75..e456dae 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -17,6 +17,7 @@ import { BitcoinRpcService } from './services/bitcoin-rpc.service'; import { CleanupService } from './services/cleanup.service'; import { DiscordService } from './services/discord.service'; import { NotificationService } from './services/notification.service'; +import { StratumV1JobsService } from './services/stratum-v1-jobs.service'; import { StratumV1Service } from './services/stratum-v1.service'; import { TelegramService } from './services/telegram.service'; @@ -56,7 +57,8 @@ const ORMModules = [ TelegramService, BitcoinRpcService, NotificationService, - BitcoinAddressValidator + BitcoinAddressValidator, + StratumV1JobsService ], }) export class AppModule { diff --git a/src/services/stratum-v1-jobs.service.ts b/src/services/stratum-v1-jobs.service.ts index a43abe2..c70622d 100644 --- a/src/services/stratum-v1-jobs.service.ts +++ b/src/services/stratum-v1-jobs.service.ts @@ -1,3 +1,4 @@ +import { Injectable } from '@nestjs/common'; import * as bitcoinjs from 'bitcoinjs-lib'; import * as merkle from 'merkle-lib'; import * as merkleProof from 'merkle-lib/proof'; @@ -20,6 +21,7 @@ export interface IJobTemplate { }; } +@Injectable() export class StratumV1JobsService { private lastIntervalCount: number; diff --git a/src/services/stratum-v1.service.ts b/src/services/stratum-v1.service.ts index b091eac..86e1559 100644 --- a/src/services/stratum-v1.service.ts +++ b/src/services/stratum-v1.service.ts @@ -15,14 +15,17 @@ import { StratumV1JobsService } from './stratum-v1-jobs.service'; @Injectable() export class StratumV1Service implements OnModuleInit { + private constructor( private readonly bitcoinRpcService: BitcoinRpcService, private readonly clientService: ClientService, private readonly clientStatisticsService: ClientStatisticsService, private readonly notificationService: NotificationService, private readonly blocksService: BlocksService, - private readonly configService: ConfigService + private readonly configService: ConfigService, + private readonly stratumV1JobsService: StratumV1JobsService ) { + } @@ -41,7 +44,7 @@ export class StratumV1Service implements OnModuleInit { const client = new StratumV1Client( promiseSocket, - new StratumV1JobsService(this.bitcoinRpcService), + this.stratumV1JobsService, this.bitcoinRpcService, this.clientService, this.clientStatisticsService,