From 89e20265a92636b6b33e07f7afaa5cbbcb853712 Mon Sep 17 00:00:00 2001 From: tommytrg Date: Wed, 18 Aug 2021 18:46:09 +0200 Subject: [PATCH] fix(api): improve error handler --- packages/api/src/web3Middleware/index.ts | 58 ++++++++++++------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/packages/api/src/web3Middleware/index.ts b/packages/api/src/web3Middleware/index.ts index c972831d..0498777f 100644 --- a/packages/api/src/web3Middleware/index.ts +++ b/packages/api/src/web3Middleware/index.ts @@ -126,13 +126,9 @@ export class Web3Middleware { drTxHash: toHex(drTxHash).slice(2) } } catch (err) { - console.log('[ERROR]', err) - return { - lastPrice: null, - lastTimestamp: null, - lastRequestId: null, - drTxHash: null - } + throw new Error( + `Error reading contract state` + ) } } @@ -144,28 +140,32 @@ export class Web3Middleware { address: string } ) { - const { - drTxHash, - lastPrice, - lastRequestId, - lastTimestamp - }: ContractsState = await this.readContractsState(contracts) - const address = feed.address - const lastStoredResult = this.lastStoredResult[address] - - const isAlreadyStored = lastStoredResult?.timestamp === lastTimestamp - const isDrSolved = drTxHash !== '0' - if (!isAlreadyStored && isDrSolved) { - const result = await this.repositories.resultRequestRepository.insert({ - feedId: feed.id.toString(), - result: lastPrice, - timestamp: lastTimestamp, - requestId: lastRequestId, - address: feed.address, - drTxHash: drTxHash, - label: feed.label - }) - this.lastStoredResult[feed.address] = result + try { + const { + drTxHash, + lastPrice, + lastRequestId, + lastTimestamp + }: ContractsState = await this.readContractsState(contracts) + const address = feed.address + const lastStoredResult = this.lastStoredResult[address] + + const isAlreadyStored = lastStoredResult?.timestamp === lastTimestamp + const isDrSolved = drTxHash !== '0' + if (!isAlreadyStored && isDrSolved) { + const result = await this.repositories.resultRequestRepository.insert({ + feedId: feed.id.toString(), + result: lastPrice, + timestamp: lastTimestamp, + requestId: lastRequestId, + address: feed.address, + drTxHash: drTxHash, + label: feed.label + }) + this.lastStoredResult[feed.address] = result + } + } catch (error) { + console.error(`Error reading contracts state: ${feed}`) } } }