From e43ed299f34ce241072723d3a62ad0b0b14ed32a Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 13:19:09 +0900 Subject: [PATCH 1/9] fix: update error handling --- api/adapter/controller.go | 11 ++++++----- api/aggregator/controller.go | 15 ++++++++------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/api/adapter/controller.go b/api/adapter/controller.go index 4018d877a..0c59043c9 100644 --- a/api/adapter/controller.go +++ b/api/adapter/controller.go @@ -1,12 +1,13 @@ package adapter import ( - "bisonai.com/orakl/api/feed" - "bisonai.com/orakl/api/utils" "encoding/json" "fmt" "strconv" + "bisonai.com/orakl/api/feed" + "bisonai.com/orakl/api/utils" + "github.com/ethereum/go-ethereum/crypto" "github.com/go-playground/validator/v10" "github.com/gofiber/fiber/v2" @@ -58,7 +59,7 @@ func insert(c *fiber.Ctx) error { err := computeAdapterHash(payload, true) if err != nil { - panic(err) + return c.Status(fiber.StatusInternalServerError).SendString("failed to compute adapter hash: " + err.Error()) } row, err := utils.QueryRow[AdapterIdModel](c, InsertAdapter, map[string]any{ @@ -105,7 +106,7 @@ func hash(c *fiber.Ctx) error { err = computeAdapterHash(&payload, verify) if err != nil { - panic(err) + return c.Status(fiber.StatusInternalServerError).SendString("failed to compute adapter hash: " + err.Error()) } return c.JSON(payload) } @@ -152,7 +153,7 @@ func computeAdapterHash(data *AdapterInsertModel, verify bool) error { out, err := json.Marshal(input) if err != nil { - panic(err) + return err } hash := crypto.Keccak256Hash([]byte(out)) diff --git a/api/aggregator/controller.go b/api/aggregator/controller.go index 1bd288776..b68863fe5 100644 --- a/api/aggregator/controller.go +++ b/api/aggregator/controller.go @@ -1,13 +1,14 @@ package aggregator import ( + "encoding/json" + "fmt" + "strconv" + "bisonai.com/orakl/api/adapter" "bisonai.com/orakl/api/chain" "bisonai.com/orakl/api/feed" "bisonai.com/orakl/api/utils" - "encoding/json" - "fmt" - "strconv" "github.com/ethereum/go-ethereum/crypto" "github.com/go-playground/validator/v10" @@ -118,7 +119,7 @@ func insert(c *fiber.Ctx) error { } err = computeAggregatorHash(&hashComputeParam, true) if err != nil { - panic(err) + return c.Status(fiber.StatusInternalServerError).SendString("failed to compute aggregator hash: " + err.Error()) } insertParam := _AggregatorInsertModel{ @@ -207,7 +208,7 @@ func hash(c *fiber.Ctx) error { err = computeAggregatorHash(&hashComputeParam, verify) if err != nil { - panic(err) + return c.Status(fiber.StatusInternalServerError).SendString("failed to compute aggregator hash: " + err.Error()) } return c.JSON(hashComputeParam) @@ -313,13 +314,13 @@ func computeAggregatorHash(data *AggregatorHashComputeInputModel, verify bool) e processData := input.AggregatorHashComputeProcessModel out, err := json.Marshal(processData) if err != nil { - panic(err) + return err } hash := crypto.Keccak256Hash([]byte(out)) hashString := fmt.Sprintf("0x%x", hash) if verify && data.AggregatorHash != hashString { - panic(err) + return fmt.Errorf("hashes do not match!\nexpected %s, received %s", hashString, data.AdapterHash) } data.AggregatorHash = hashString From 8d33f97d439ea96ed7a8c23efa6eef90a63365af Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 13:33:57 +0900 Subject: [PATCH 2/9] fix: update err msg handling from cli --- cli/src/adapter.ts | 4 ++-- cli/src/aggregator.ts | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cli/src/adapter.ts b/cli/src/adapter.ts index 0ad701825..9882470a0 100644 --- a/cli/src/adapter.ts +++ b/cli/src/adapter.ts @@ -119,9 +119,9 @@ export function hashHandler() { return adapterWithCorrectHash } catch (e) { console.error('Adapter hash could not be computed. Reason:') - const errMsg = e?.response?.data?.message ? e.response.data.message : e.message + const errMsg = e?.response?.data ? e.response.data : e.message - console.error(errMsg) + console.error(e.response.data) return errMsg } } diff --git a/cli/src/aggregator.ts b/cli/src/aggregator.ts index b00850617..a557f355e 100644 --- a/cli/src/aggregator.ts +++ b/cli/src/aggregator.ts @@ -232,8 +232,9 @@ export function hashHandler() { return aggregatorWithCorrectHash } catch (e) { console.error('Aggregator hash could not be computed. Reason:') - const errMsg = e?.response?.data?.message ? e.response.data.message : e.message - console.error(errMsg) + const errMsg = e?.response?.data ? e.response.data : e.message + + console.error(e.response.data) return errMsg } } From 041d60eb43c1332240958174b1caca9ccc67035b Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 13:39:33 +0900 Subject: [PATCH 3/9] fix: fix jest library reference error --- cli/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/package.json b/cli/package.json index cb47a29fc..92f498361 100644 --- a/cli/package.json +++ b/cli/package.json @@ -23,7 +23,7 @@ "build": "yarn clean && tsc", "cli": "node --no-warnings --import=specifier-resolution-node/register --experimental-json-modules dist/index.js", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"", - "test": "node --no-warnings --experimental-vm-modules node_modules/jest/bin/jest.js --testPathIgnorePatterns mockData.ts --silent" + "test": "node --no-warnings --experimental-vm-modules node_modules/.bin/jest --testPathIgnorePatterns mockData.ts --silent" }, "bin": { "cli": "dist/index.js" From f377b2b8d4c09970c6b4bbeb2728e34bdcf4de02 Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 13:45:07 +0900 Subject: [PATCH 4/9] fix: fix data src url for updated orakl-config --- cli/test/mockData.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/test/mockData.ts b/cli/test/mockData.ts index d8cf67dc9..b2054f51e 100644 --- a/cli/test/mockData.ts +++ b/cli/test/mockData.ts @@ -83,7 +83,7 @@ export const VRF_1 = { export const DATAFEED_BULK_0 = { bulk: [ { - adapterSource: 'https://config.orakl.network/adapter/ada-usdt.adapter.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/ada-usdt.adapter.json', aggregatorSource: 'https://config.orakl.network/aggregator/baobab/ada-usdt.aggregator.json', reporter: { walletAddress: '0xa', @@ -91,7 +91,7 @@ export const DATAFEED_BULK_0 = { } }, { - adapterSource: 'https://config.orakl.network/adapter/atom-usdt.adapter.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/atom-usdt.adapter.json', aggregatorSource: 'https://config.orakl.network/aggregator/baobab/atom-usdt.aggregator.json', reporter: { walletAddress: '0xc', @@ -99,7 +99,7 @@ export const DATAFEED_BULK_0 = { } }, { - adapterSource: 'https://config.orakl.network/adapter/avax-usdt.adapter.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/avax-usdt.adapter.json', aggregatorSource: 'https://config.orakl.network/aggregator/baobab/avax-usdt.aggregator.json', reporter: { walletAddress: '0xe', @@ -117,7 +117,7 @@ export const DATAFEED_BULK_1 = { eventName: 'NewRoundV2', bulk: [ { - adapterSource: 'https://config.orakl.network/adapter/bnb-usdt.adapter.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/bnb-usdt.adapter.json', aggregatorSource: 'https://config.orakl.network/aggregator/baobab/bnb-usdt.aggregator.json', reporter: { walletAddress: '0x0', @@ -125,7 +125,7 @@ export const DATAFEED_BULK_1 = { } }, { - adapterSource: 'https://config.orakl.network/adapter/bora-krw.adapter.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/bora-krw.adapter.json', aggregatorSource: 'https://config.orakl.network/aggregator/baobab/bora-krw.aggregator.json', reporter: { walletAddress: '0x2', @@ -133,7 +133,7 @@ export const DATAFEED_BULK_1 = { } }, { - adapterSource: 'https://config.orakl.network/adapter/eth-usdt.adapter.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/eth-usdt.adapter.json', aggregatorSource: 'https://config.orakl.network/aggregator/baobab/eth-usdt.aggregator.json', reporter: { walletAddress: '0x4', From 5d79fe5a1fbc2eb853b89904217d73abe821dd05 Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 13:57:14 +0900 Subject: [PATCH 5/9] fix: bug fix to return empty arr --- api/adapter/controller.go | 4 ++++ api/aggregator/controller.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/api/adapter/controller.go b/api/adapter/controller.go index 0c59043c9..5e731b0f8 100644 --- a/api/adapter/controller.go +++ b/api/adapter/controller.go @@ -117,6 +117,10 @@ func get(c *fiber.Ctx) error { panic(err) } + if results == nil { + results = []AdapterModel{} + } + return c.JSON(results) } diff --git a/api/aggregator/controller.go b/api/aggregator/controller.go index b68863fe5..8a4040f5f 100644 --- a/api/aggregator/controller.go +++ b/api/aggregator/controller.go @@ -231,6 +231,10 @@ func get(c *fiber.Ctx) error { panic(err) } + if results == nil { + results = []AggregatorResultModel{} + } + return c.JSON(results) } From 824447bea12ecbd570f19eea7e492a414207923d Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 14:19:58 +0900 Subject: [PATCH 6/9] fix: update utils for parsing db with multiple rows --- api/adapter/controller.go | 4 ---- api/aggregator/controller.go | 4 ---- api/utils/utils.go | 4 ++-- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/api/adapter/controller.go b/api/adapter/controller.go index 5e731b0f8..0c59043c9 100644 --- a/api/adapter/controller.go +++ b/api/adapter/controller.go @@ -117,10 +117,6 @@ func get(c *fiber.Ctx) error { panic(err) } - if results == nil { - results = []AdapterModel{} - } - return c.JSON(results) } diff --git a/api/aggregator/controller.go b/api/aggregator/controller.go index 8a4040f5f..b68863fe5 100644 --- a/api/aggregator/controller.go +++ b/api/aggregator/controller.go @@ -231,10 +231,6 @@ func get(c *fiber.Ctx) error { panic(err) } - if results == nil { - results = []AggregatorResultModel{} - } - return c.JSON(results) } diff --git a/api/utils/utils.go b/api/utils/utils.go index b02b949cd..1b815f9e2 100644 --- a/api/utils/utils.go +++ b/api/utils/utils.go @@ -123,8 +123,8 @@ func QueryRows[T any](c *fiber.Ctx, query string, args map[string]any) ([]T, err } results, err = pgx.CollectRows(rows, pgx.RowToStructByName[T]) - if errors.Is(err, pgx.ErrNoRows) { - return results, nil + if errors.Is(err, pgx.ErrNoRows) || (results == nil && err == nil) { + return []T{}, nil } return results, err } From 333d629a790548f8bb698ab71780eb41f08e0176 Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 14:23:06 +0900 Subject: [PATCH 7/9] fix: use variable declared --- cli/src/adapter.ts | 2 +- cli/src/aggregator.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/src/adapter.ts b/cli/src/adapter.ts index 9882470a0..b4b72b2fd 100644 --- a/cli/src/adapter.ts +++ b/cli/src/adapter.ts @@ -121,7 +121,7 @@ export function hashHandler() { console.error('Adapter hash could not be computed. Reason:') const errMsg = e?.response?.data ? e.response.data : e.message - console.error(e.response.data) + console.error(errMsg) return errMsg } } diff --git a/cli/src/aggregator.ts b/cli/src/aggregator.ts index a557f355e..c35def6e5 100644 --- a/cli/src/aggregator.ts +++ b/cli/src/aggregator.ts @@ -234,7 +234,7 @@ export function hashHandler() { console.error('Aggregator hash could not be computed. Reason:') const errMsg = e?.response?.data ? e.response.data : e.message - console.error(e.response.data) + console.error(errMsg) return errMsg } } From ea46572a1dbaa712335642485c50fc7ba7bcde0a Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 14:47:34 +0900 Subject: [PATCH 8/9] fix: update error handling based on feedback --- api/adapter/controller.go | 9 +++++---- api/aggregator/controller.go | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/api/adapter/controller.go b/api/adapter/controller.go index 0c59043c9..9d15a53ab 100644 --- a/api/adapter/controller.go +++ b/api/adapter/controller.go @@ -59,7 +59,7 @@ func insert(c *fiber.Ctx) error { err := computeAdapterHash(payload, true) if err != nil { - return c.Status(fiber.StatusInternalServerError).SendString("failed to compute adapter hash: " + err.Error()) + return c.Status(fiber.StatusInternalServerError).SendString(err.Error()) } row, err := utils.QueryRow[AdapterIdModel](c, InsertAdapter, map[string]any{ @@ -106,7 +106,7 @@ func hash(c *fiber.Ctx) error { err = computeAdapterHash(&payload, verify) if err != nil { - return c.Status(fiber.StatusInternalServerError).SendString("failed to compute adapter hash: " + err.Error()) + return c.Status(fiber.StatusInternalServerError).SendString(err.Error()) } return c.JSON(payload) } @@ -153,13 +153,14 @@ func computeAdapterHash(data *AdapterInsertModel, verify bool) error { out, err := json.Marshal(input) if err != nil { - return err + return fmt.Errorf("failed to compute adapter hash: %s", err.Error()) } hash := crypto.Keccak256Hash([]byte(out)) hashString := fmt.Sprintf("0x%x", hash) if verify && data.AdapterHash != hashString { - return fmt.Errorf("hashes do not match!\nexpected %s, received %s", hashString, data.AdapterHash) + hashComputeErr := fmt.Errorf("hashes do not match!\nexpected %s, received %s", hashString, data.AdapterHash) + return fmt.Errorf("failed to compute adapter hash: %s", hashComputeErr.Error()) } data.AdapterHash = hashString diff --git a/api/aggregator/controller.go b/api/aggregator/controller.go index b68863fe5..c8378d3df 100644 --- a/api/aggregator/controller.go +++ b/api/aggregator/controller.go @@ -119,7 +119,7 @@ func insert(c *fiber.Ctx) error { } err = computeAggregatorHash(&hashComputeParam, true) if err != nil { - return c.Status(fiber.StatusInternalServerError).SendString("failed to compute aggregator hash: " + err.Error()) + return c.Status(fiber.StatusInternalServerError).SendString(err.Error()) } insertParam := _AggregatorInsertModel{ @@ -208,7 +208,7 @@ func hash(c *fiber.Ctx) error { err = computeAggregatorHash(&hashComputeParam, verify) if err != nil { - return c.Status(fiber.StatusInternalServerError).SendString("failed to compute aggregator hash: " + err.Error()) + return c.Status(fiber.StatusInternalServerError).SendString(err.Error()) } return c.JSON(hashComputeParam) @@ -314,13 +314,14 @@ func computeAggregatorHash(data *AggregatorHashComputeInputModel, verify bool) e processData := input.AggregatorHashComputeProcessModel out, err := json.Marshal(processData) if err != nil { - return err + return fmt.Errorf("failed to compute adapter hash: %s", err.Error()) } hash := crypto.Keccak256Hash([]byte(out)) hashString := fmt.Sprintf("0x%x", hash) if verify && data.AggregatorHash != hashString { - return fmt.Errorf("hashes do not match!\nexpected %s, received %s", hashString, data.AdapterHash) + hashComputeErr := fmt.Errorf("hashes do not match!\nexpected %s, received %s", hashString, data.AggregatorHash) + return fmt.Errorf("failed to compute adapter hash: %s", hashComputeErr.Error()) } data.AggregatorHash = hashString From 1811580fa10cab832d3a319d79c5be0d7ff6583a Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 15 Mar 2024 15:15:55 +0900 Subject: [PATCH 9/9] fix: update mockdata --- cli/test/mockData.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/test/mockData.ts b/cli/test/mockData.ts index b2054f51e..98f33e099 100644 --- a/cli/test/mockData.ts +++ b/cli/test/mockData.ts @@ -117,24 +117,24 @@ export const DATAFEED_BULK_1 = { eventName: 'NewRoundV2', bulk: [ { - adapterSource: 'https://config.orakl.network/adapter/baobab/bnb-usdt.adapter.json', - aggregatorSource: 'https://config.orakl.network/aggregator/baobab/bnb-usdt.aggregator.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/btc-usdt.adapter.json', + aggregatorSource: 'https://config.orakl.network/aggregator/baobab/btc-usdt.aggregator.json', reporter: { walletAddress: '0x0', walletPrivateKey: '0x1' } }, { - adapterSource: 'https://config.orakl.network/adapter/baobab/bora-krw.adapter.json', - aggregatorSource: 'https://config.orakl.network/aggregator/baobab/bora-krw.aggregator.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/ltc-usdt.adapter.json', + aggregatorSource: 'https://config.orakl.network/aggregator/baobab/ltc-usdt.aggregator.json', reporter: { walletAddress: '0x2', walletPrivateKey: '0x3' } }, { - adapterSource: 'https://config.orakl.network/adapter/baobab/eth-usdt.adapter.json', - aggregatorSource: 'https://config.orakl.network/aggregator/baobab/eth-usdt.aggregator.json', + adapterSource: 'https://config.orakl.network/adapter/baobab/klay-usdt.adapter.json', + aggregatorSource: 'https://config.orakl.network/aggregator/baobab/klay-usdt.aggregator.json', reporter: { walletAddress: '0x4', walletPrivateKey: '0x5'