From 9af98d6485032296776c3fa8eb3bb126d95341c5 Mon Sep 17 00:00:00 2001 From: Justin Kaseman Date: Tue, 5 Jan 2021 17:57:47 -0600 Subject: [PATCH 1/6] Remove EA/requester logging response & moves more logs to debug --- 2-step/adapter.js | 6 +++--- bootstrap/src/index.ts | 5 +++-- coinpaprika/adapter.js | 2 +- composite/defi-pulse/src/symbols/index.ts | 2 +- external-adapter/src/requester.ts | 1 - orchid-bandwidth/test/adapter_test.js | 1 - 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/2-step/adapter.js b/2-step/adapter.js index 9310fba044..5e0e3cb64a 100644 --- a/2-step/adapter.js +++ b/2-step/adapter.js @@ -40,11 +40,11 @@ const execute = (input, callback) => { return callback(400, Requester.errored(jobRunID, 'invalid dividend')) } - logger.info('Getting value from contract: ' + contract) + logger.debug('Getting value from contract: ' + contract) getContractPrice(contract) .then((price) => { price = price / multiply - logger.info('Value: ' + price) + logger.debug('Value: ' + price) if (price <= 0) { return callback(500, Requester.errored(jobRunID, 'on-chain value equal or less than 0')) } @@ -55,7 +55,7 @@ const execute = (input, callback) => { } const result = transform(response.result, price, operator, dividend) - logger.info('New result: ' + result) + logger.debug('New result: ' + result) response.data.result = result response.result = result diff --git a/bootstrap/src/index.ts b/bootstrap/src/index.ts index 999c315b8b..fd62e6d029 100644 --- a/bootstrap/src/index.ts +++ b/bootstrap/src/index.ts @@ -10,6 +10,7 @@ import { AdapterRequest, ExecuteWrappedResponse, AdapterHealthCheck, + AdapterErrorResponse, } from '@chainlink/types' type Middleware = (execute: ExecuteWrappedResponse) => Promise @@ -42,9 +43,9 @@ const withStatusCode = (execute: ExecuteWrappedResponse) => async (data_: Adapte // Log adapter input & output data const withLogger = (execute: ExecuteWrappedResponse) => async (data: AdapterRequest) => { - logger.debug('Input: ', { input: data }) + logger.debug({ input: data }) const result = await execute(data) - logger.debug(`Output: [${result.statusCode}]: `, { output: result.data }) + logger.debug({ output: result.data }) return result } diff --git a/coinpaprika/adapter.js b/coinpaprika/adapter.js index cbb5f9e6d1..f3671c1b48 100644 --- a/coinpaprika/adapter.js +++ b/coinpaprika/adapter.js @@ -72,7 +72,7 @@ const dominance = (jobRunID, input, callback) => { const validator = new Validator(input, globalParams) if (validator.error) return callback(validator.error.statusCode, validator.errored) - const url = 'https://api.coinpaprika.com/v1/global' + const url = 'https://api.copaprika.com/v1/global' const config = { url } const symbol = validator.validated.data.market.toUpperCase() diff --git a/composite/defi-pulse/src/symbols/index.ts b/composite/defi-pulse/src/symbols/index.ts index 1b22be51be..3398a22536 100644 --- a/composite/defi-pulse/src/symbols/index.ts +++ b/composite/defi-pulse/src/symbols/index.ts @@ -29,7 +29,7 @@ const ERC20ABI_bytes32 = [ const getERC20Symbol = async (rpcUrl: string, address: string): Promise => { const provider = new ethers.providers.JsonRpcProvider(rpcUrl) const _symbol = (abi: any) => new ethers.Contract(address, abi, provider).symbol() - logger.info('Calling blockchain to get ERC20 token symbol...') + logger.debug('Calling blockchain to get ERC20 token symbol...') try { return await _symbol(ERC20ABI) } catch (ignoreable) { diff --git a/external-adapter/src/requester.ts b/external-adapter/src/requester.ts index e80b4802f4..3fae2ce602 100644 --- a/external-adapter/src/requester.ts +++ b/external-adapter/src/requester.ts @@ -54,7 +54,6 @@ export class Requester { } // Success - logger.info(`Received response: ${JSON.stringify(response.data)}`) return response } diff --git a/orchid-bandwidth/test/adapter_test.js b/orchid-bandwidth/test/adapter_test.js index 3d8d27d00f..8969e01f4f 100644 --- a/orchid-bandwidth/test/adapter_test.js +++ b/orchid-bandwidth/test/adapter_test.js @@ -14,7 +14,6 @@ describe('execute', () => { requests.forEach((req) => { it(`${req.name}`, (done) => { execute(req.testData, (statusCode, data) => { - console.log(JSON.stringify(data)) assertSuccess({ expected: 200, actual: statusCode }, data, jobID) assert.isAbove(data.result, 0) assert.isAbove(data.data.result, 0) From 82c51fed3dd8e1fb4911991c267345dc61282819 Mon Sep 17 00:00:00 2001 From: Justin Kaseman Date: Wed, 6 Jan 2021 17:00:46 -0600 Subject: [PATCH 2/6] Restores unneeded changes --- coinpaprika/adapter.js | 2 +- typings/@chainlink/index.d.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/coinpaprika/adapter.js b/coinpaprika/adapter.js index f3671c1b48..cbb5f9e6d1 100644 --- a/coinpaprika/adapter.js +++ b/coinpaprika/adapter.js @@ -72,7 +72,7 @@ const dominance = (jobRunID, input, callback) => { const validator = new Validator(input, globalParams) if (validator.error) return callback(validator.error.statusCode, validator.errored) - const url = 'https://api.copaprika.com/v1/global' + const url = 'https://api.coinpaprika.com/v1/global' const config = { url } const symbol = validator.validated.data.market.toUpperCase() diff --git a/typings/@chainlink/index.d.ts b/typings/@chainlink/index.d.ts index 64bbdef217..2afa6b78d7 100644 --- a/typings/@chainlink/index.d.ts +++ b/typings/@chainlink/index.d.ts @@ -56,6 +56,7 @@ declare module '@chainlink/types' { stack: string cause: string } + export type AdapterErrorResponse = { jobRunID: string status: string @@ -67,7 +68,7 @@ declare module '@chainlink/types' { // TODO: clean this ASAP export type WrappedAdapterResponse = { statusCode: number - data: AdapterResponse + data: AdapterResponse | AdapterErrorResponse } export type ExecuteWrappedResponse = (input: AdapterRequest) => Promise From cfa4c476f7a7840794414f691866795f1b4bdc78 Mon Sep 17 00:00:00 2001 From: Justin Kaseman Date: Thu, 7 Jan 2021 16:01:46 -0600 Subject: [PATCH 3/6] Re-adds response logging, but only for debug --- external-adapter/src/requester.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/external-adapter/src/requester.ts b/external-adapter/src/requester.ts index 3fae2ce602..71049f8526 100644 --- a/external-adapter/src/requester.ts +++ b/external-adapter/src/requester.ts @@ -54,6 +54,11 @@ export class Requester { } // Success + const { request: r, ...rest } = response + logger.debug({ + message: 'Received response', + ...rest, + }) return response } From 94a66067773d6db3d0a240e9d7752a419eb59c64 Mon Sep 17 00:00:00 2001 From: Justin Kaseman Date: Fri, 8 Jan 2021 17:51:21 -0600 Subject: [PATCH 4/6] More explicit errors when hitting internal errors thrown with node.js Error --- bootstrap/src/index.ts | 5 ++++- external-adapter/src/requester.ts | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bootstrap/src/index.ts b/bootstrap/src/index.ts index fd62e6d029..aa6ba5c986 100644 --- a/bootstrap/src/index.ts +++ b/bootstrap/src/index.ts @@ -78,7 +78,10 @@ const executeSync = (execute: ExecuteWrappedResponse): ExecuteSync => { return withMiddleware(execute) .then((executeWithMiddleware) => executeWithMiddleware(data)) .then((result) => callback(result.statusCode, result.data)) - .catch((error) => callback(error.statusCode || 500, Requester.errored(data.id, error))) + .catch((error) => { + logger.error(error.toString(), { stack: error.stack }) + callback(error.statusCode || 500, Requester.errored(data.id, error)) + }) } } diff --git a/external-adapter/src/requester.ts b/external-adapter/src/requester.ts index 71049f8526..d3fec977d5 100644 --- a/external-adapter/src/requester.ts +++ b/external-adapter/src/requester.ts @@ -98,7 +98,8 @@ export class Requester { jobRunID, statusCode, message: error.message, - cause: error, + name: error.name, + cause: error.stack, }).toJSONResponse() } return new AdapterError({ jobRunID, statusCode, message: error }).toJSONResponse() From 0cf74c8a2cec199d0b45de88f3b27fffddf7563b Mon Sep 17 00:00:00 2001 From: Justin Kaseman Date: Tue, 12 Jan 2021 18:05:28 -0600 Subject: [PATCH 5/6] Moves internal error logging to withLogger middleware --- bootstrap/src/index.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/bootstrap/src/index.ts b/bootstrap/src/index.ts index aa6ba5c986..196c7a6d6d 100644 --- a/bootstrap/src/index.ts +++ b/bootstrap/src/index.ts @@ -44,9 +44,14 @@ const withStatusCode = (execute: ExecuteWrappedResponse) => async (data_: Adapte // Log adapter input & output data const withLogger = (execute: ExecuteWrappedResponse) => async (data: AdapterRequest) => { logger.debug({ input: data }) - const result = await execute(data) - logger.debug({ output: result.data }) - return result + try { + const result = await execute(data) + logger.debug({ output: result.data }) + return result + } catch (error) { + logger.error(error.toString(), { stack: error.stack }) + throw error + } } const middleware = [withLogger, skipOnError(withCache), withStatusCode] @@ -78,10 +83,7 @@ const executeSync = (execute: ExecuteWrappedResponse): ExecuteSync => { return withMiddleware(execute) .then((executeWithMiddleware) => executeWithMiddleware(data)) .then((result) => callback(result.statusCode, result.data)) - .catch((error) => { - logger.error(error.toString(), { stack: error.stack }) - callback(error.statusCode || 500, Requester.errored(data.id, error)) - }) + .catch((error) => callback(error.statusCode || 500, Requester.errored(data.id, error))) } } From 0eb9cc9bec8dbb3ac995fd47eed98bcc5ae6b3e8 Mon Sep 17 00:00:00 2001 From: Justin Kaseman Date: Thu, 14 Jan 2021 12:24:41 -0600 Subject: [PATCH 6/6] Requested changes: reverts some changes --- bootstrap/src/index.ts | 5 ++--- external-adapter/src/requester.ts | 9 +++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bootstrap/src/index.ts b/bootstrap/src/index.ts index 196c7a6d6d..0fb621f101 100644 --- a/bootstrap/src/index.ts +++ b/bootstrap/src/index.ts @@ -10,7 +10,6 @@ import { AdapterRequest, ExecuteWrappedResponse, AdapterHealthCheck, - AdapterErrorResponse, } from '@chainlink/types' type Middleware = (execute: ExecuteWrappedResponse) => Promise @@ -43,10 +42,10 @@ const withStatusCode = (execute: ExecuteWrappedResponse) => async (data_: Adapte // Log adapter input & output data const withLogger = (execute: ExecuteWrappedResponse) => async (data: AdapterRequest) => { - logger.debug({ input: data }) + logger.debug('Input: ', { input: data }) try { const result = await execute(data) - logger.debug({ output: result.data }) + logger.debug(`Output: [${result.statusCode}]: `, { output: result.data }) return result } catch (error) { logger.error(error.toString(), { stack: error.stack }) diff --git a/external-adapter/src/requester.ts b/external-adapter/src/requester.ts index d3fec977d5..d33ced9445 100644 --- a/external-adapter/src/requester.ts +++ b/external-adapter/src/requester.ts @@ -54,10 +54,12 @@ export class Requester { } // Success - const { request: r, ...rest } = response + const { data, status, statusText } = response logger.debug({ message: 'Received response', - ...rest, + data, + status, + statusText, }) return response } @@ -98,8 +100,7 @@ export class Requester { jobRunID, statusCode, message: error.message, - name: error.name, - cause: error.stack, + cause: error, }).toJSONResponse() } return new AdapterError({ jobRunID, statusCode, message: error }).toJSONResponse()