Skip to content

Commit c95e27e

Browse files
chore(randomness-monitor): move viem client declaration to constructor
1 parent d689d8d commit c95e27e

1 file changed

Lines changed: 36 additions & 31 deletions

File tree

apps/randomness-monitor/src/index.ts

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,36 +12,26 @@ import { getUrlProtocol } from "./utils/getUrlProtocol"
1212
*/
1313
export class MonitoringService {
1414
private readonly monitoringRepository: MonitoringRepository
15-
private viemClient!: PublicClient
15+
private readonly viemClient: PublicClient
16+
private readonly protocol: "http" | "websocket"
1617

1718
private latestBlockchainBlockNumber: bigint | undefined
1819
private latestMonitoringBlockNumber: bigint | undefined
1920
private isProcessing = false
2021

2122
constructor() {
2223
this.monitoringRepository = new MonitoringRepository()
23-
}
2424

25-
/**
26-
* Initialize and start the monitoring service
27-
*/
28-
async start(): Promise<void> {
29-
await this.initializeClient()
30-
await this.initializeMonitoring()
31-
}
25+
const protocolResult = getUrlProtocol(env.RPC_URL)
3226

33-
/**
34-
* Initialize the blockchain client
35-
*/
36-
private async initializeClient(): Promise<void> {
37-
const protocol = getUrlProtocol(env.RPC_URL)
38-
39-
if (protocol.isErr()) {
40-
throw protocol.error
27+
if (protocolResult.isErr()) {
28+
throw protocolResult.error
4129
}
4230

31+
this.protocol = protocolResult.value
32+
4333
let transport: Transport
44-
if (protocol.value === "http") {
34+
if (this.protocol === "http") {
4535
transport = http(env.RPC_URL)
4636
} else {
4737
transport = webSocket(env.RPC_URL)
@@ -57,8 +47,8 @@ export class MonitoringService {
5747
name: "Unknown",
5848
rpcUrls: {
5949
default: {
60-
http: protocol.value === "http" ? [env.RPC_URL] : [],
61-
webSocket: protocol.value === "websocket" ? [env.RPC_URL] : [],
50+
http: this.protocol === "http" ? [env.RPC_URL] : [],
51+
webSocket: this.protocol === "websocket" ? [env.RPC_URL] : [],
6252
},
6353
},
6454
nativeCurrency: {
@@ -72,10 +62,23 @@ export class MonitoringService {
7262
transport,
7363
chain,
7464
})
65+
}
7566

67+
/**
68+
* Initialize and start the monitoring service
69+
*/
70+
async start(): Promise<void> {
71+
await this.initializeClient()
72+
await this.initializeMonitoring()
73+
}
74+
75+
/**
76+
* Initialize the blockchain client
77+
*/
78+
private async initializeClient(): Promise<void> {
7679
await this.viemClient.watchBlocks({
7780
onBlock: this.onBlock.bind(this),
78-
...(protocol.value === "http" ? { pollingInterval: 250 } : {}),
81+
...(this.protocol === "http" ? { pollingInterval: 250 } : {}),
7982
onError: (error) => {
8083
console.error("Error in watching blocks:", error)
8184
process.exit(1)
@@ -181,11 +184,13 @@ export class MonitoringService {
181184
functionName: "random",
182185
blockNumber,
183186
})
184-
await this.monitoringRepository.saveMonitoring(
185-
new Monitoring(blockNumber, block.timestamp, MonitoringResult.Success, undefined, random),
186-
).catch((error) => {
187-
console.error("Error in saving monitoring:", error)
188-
})
187+
await this.monitoringRepository
188+
.saveMonitoring(
189+
new Monitoring(blockNumber, block.timestamp, MonitoringResult.Success, undefined, random),
190+
)
191+
.catch((error) => {
192+
console.error("Error in saving monitoring:", error)
193+
})
189194
} catch (err: unknown) {
190195
let errorMessage: string | undefined
191196

@@ -195,11 +200,11 @@ export class MonitoringService {
195200
errorMessage = JSON.stringify(err, bigIntReplacer)
196201
}
197202

198-
await this.monitoringRepository.saveMonitoring(
199-
new Monitoring(blockNumber, block.timestamp, MonitoringResult.Failure, errorMessage),
200-
).catch((error) => {
201-
console.error("Error in saving monitoring:", error)
202-
})
203+
await this.monitoringRepository
204+
.saveMonitoring(new Monitoring(blockNumber, block.timestamp, MonitoringResult.Failure, errorMessage))
205+
.catch((error) => {
206+
console.error("Error in saving monitoring:", error)
207+
})
203208
}
204209

205210
return ok(undefined)

0 commit comments

Comments
 (0)