From b8ced444341240ea7b27d37dd9e6d8fa5216db7e Mon Sep 17 00:00:00 2001 From: Nelson Taveras Date: Fri, 8 Sep 2023 12:57:23 +0200 Subject: [PATCH 1/7] feat: EURXOF config --- packages/helm-charts/oracle/EURXOF.yaml | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/helm-charts/oracle/EURXOF.yaml diff --git a/packages/helm-charts/oracle/EURXOF.yaml b/packages/helm-charts/oracle/EURXOF.yaml new file mode 100644 index 00000000000..579fde838f7 --- /dev/null +++ b/packages/helm-charts/oracle/EURXOF.yaml @@ -0,0 +1,26 @@ +oracle: + currencyPair: EURXOF + aggregation: + mid: + maxExchangeVolumeShare: 1 + maxPercentageDeviation: 0.01 + maxPercentageBidAskSpread: 0.005 + metrics: + enabled: true + prometheusPort: 9090 + apiRequestTimeoutMs: 5000 + circuitBreakerPriceChangeThreshold: 0.25 + gasPriceMultiplier: 1.5 + priceSources: "[ + [ + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false} + ], + [ + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false} + ] + ]" + minPriceSourceCount: 1 + reportStrategy: BLOCK_BASED + reporter: + blockBased: + minReportPriceChangeThreshold: 0.0005 # 0.05% From 59359b268f401bcbc7401bda7baff3006920f937 Mon Sep 17 00:00:00 2001 From: Nelson Taveras Date: Fri, 8 Sep 2023 13:13:54 +0200 Subject: [PATCH 2/7] feat: CELOXOF config --- packages/helm-charts/oracle/CELOXOF.yaml | 82 ++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 packages/helm-charts/oracle/CELOXOF.yaml diff --git a/packages/helm-charts/oracle/CELOXOF.yaml b/packages/helm-charts/oracle/CELOXOF.yaml new file mode 100644 index 00000000000..5d77c32bfc9 --- /dev/null +++ b/packages/helm-charts/oracle/CELOXOF.yaml @@ -0,0 +1,82 @@ +oracle: + currencyPair: CELOXOF + aggregation: + mid: + maxExchangeVolumeShare: 1 + maxPercentageDeviation: 0.025 + maxPercentageBidAskSpread: 0.015 + metrics: + enabled: true + prometheusPort: 9090 + apiRequestTimeoutMs: 5000 + circuitBreakerPriceChangeThreshold: 0.25 + gasPriceMultiplier: 1.5 + priceSources: "[ + [ + {exchange: 'BINANCE', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'BINANCE', symbol: 'EURUSDT', toInvert: true}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'BINANCE', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'BINANCE', symbol: 'EURUSDT', toInvert: true}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + + [ + {exchange: 'COINBASE', symbol: 'CELOUSD', toInvert: false}, + {exchange: 'COINBASE', symbol: 'USDTUSD', toInvert: true}, + {exchange: 'COINBASE', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'COINBASE', symbol: 'CELOUSD', toInvert: false}, + {exchange: 'COINBASE', symbol: 'USDTUSD', toInvert: true}, + {exchange: 'COINBASE', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + + [ + {exchange: 'OKX', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'BITSTAMP', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'OKX', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'BITSTAMP', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + + [ + {exchange: 'KUCOIN', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'KRAKEN', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'KUCOIN', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'KRAKEN', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + + [ + {exchange: 'BITGET', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'BITGET', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'BITGET', symbol: 'CELOUSDT', toInvert: false}, + {exchange: 'BITGET', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ] + ]" + # Additional sources missing adapters [ + # {exchange: 'UPBIT', symbol: 'CELOKRW', toInvert: false}, + # {exchange: 'UPBIT', symbol: 'BTCKRW', toInvert: true}, + # {exchange: 'KRAKEN', symbol: 'BTCEUR', toInvert: false}, + # {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + # ] + minPriceSourceCount: 6 + reportStrategy: BLOCK_BASED + reporter: + blockBased: + minReportPriceChangeThreshold: 0.005 From d2dc34a2083cbc8ca70ce3973322346f75634e1d Mon Sep 17 00:00:00 2001 From: Nelson Taveras Date: Fri, 8 Sep 2023 13:14:38 +0200 Subject: [PATCH 3/7] feat: EUROCXOF config --- packages/helm-charts/oracle/EUROCXOF.yaml | 50 +++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 packages/helm-charts/oracle/EUROCXOF.yaml diff --git a/packages/helm-charts/oracle/EUROCXOF.yaml b/packages/helm-charts/oracle/EUROCXOF.yaml new file mode 100644 index 00000000000..fdaf47aed19 --- /dev/null +++ b/packages/helm-charts/oracle/EUROCXOF.yaml @@ -0,0 +1,50 @@ +oracle: + currencyPair: EUROCXOF + aggregation: + mid: + maxExchangeVolumeShare: 1 + maxPercentageDeviation: 0.01 + maxPercentageBidAskSpread: 0.005 + metrics: + enabled: true + prometheusPort: 9090 + apiRequestTimeoutMs: 5000 + circuitBreakerPriceChangeThreshold: 0.25 + gasPriceMultiplier: 1.5 + priceSources: "[ + [ + {exchange: 'COINBASE', symbol: 'EUROCEUR', toInvert: false}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'COINBASE', symbol: 'EUROCEUR', toInvert: false}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + + [ + {exchange: 'COINBASE', symbol: 'EUROCUSD', toInvert: false}, + {exchange: 'COINBASE', symbol: 'USDTUSD', toInvert: true}, + {exchange: 'COINBASE', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'COINBASE', symbol: 'EUROCUSD', toInvert: false}, + {exchange: 'COINBASE', symbol: 'USDTUSD', toInvert: true}, + {exchange: 'COINBASE', symbol: 'USDTEUR', toInvert: false}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + + [ + {exchange: 'BITSTAMP', symbol: 'EUROCEUR', toInvert: false}, + {exchange: 'ALPHAVANTAGE', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ], + [ + {exchange: 'BITSTAMP', symbol: 'EUROCEUR', toInvert: false}, + {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false, ignoreVolume: true} + ] + ]" + minPriceSourceCount: 4 + reportStrategy: BLOCK_BASED + reporter: + blockBased: + minReportPriceChangeThreshold: 0.0005 # 0.05% From de307f34b78afffe9e9504241df86401859e38b9 Mon Sep 17 00:00:00 2001 From: Nelson Taveras Date: Fri, 8 Sep 2023 13:43:19 +0200 Subject: [PATCH 4/7] fix: bump price sources in EURXOF --- packages/helm-charts/oracle/EURXOF.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/helm-charts/oracle/EURXOF.yaml b/packages/helm-charts/oracle/EURXOF.yaml index 579fde838f7..53965c89910 100644 --- a/packages/helm-charts/oracle/EURXOF.yaml +++ b/packages/helm-charts/oracle/EURXOF.yaml @@ -19,7 +19,7 @@ oracle: {exchange: 'CURRENCYAPI', symbol: 'EURXOF', toInvert: false} ] ]" - minPriceSourceCount: 1 + minPriceSourceCount: 2 reportStrategy: BLOCK_BASED reporter: blockBased: From 95b3dac3cf8715b52231e7cdfd27be7d43719f02 Mon Sep 17 00:00:00 2001 From: Nelson Taveras Date: Fri, 8 Sep 2023 14:15:03 +0200 Subject: [PATCH 5/7] chore: add EURXOF to currencies in celotool --- packages/celotool/src/lib/oracle.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/celotool/src/lib/oracle.ts b/packages/celotool/src/lib/oracle.ts index 8a42599eb16..adee74a3de0 100644 --- a/packages/celotool/src/lib/oracle.ts +++ b/packages/celotool/src/lib/oracle.ts @@ -312,6 +312,7 @@ export function addCurrencyPairMiddleware(argv: yargs.Argv) { 'USDCBRL', 'CELOXOF', 'EUROCXOF', + 'EURXOF', 'EUROCEUR', ], description: 'Oracle deployment to target based on currency pair', From 099feff187bfb196b566858c9d6689b14fea7ca2 Mon Sep 17 00:00:00 2001 From: boqdan Date: Wed, 6 Sep 2023 17:43:37 +0200 Subject: [PATCH 6/7] feat: add url for light nodes --- packages/celotool/src/lib/endpoints.ts | 8 ++++++++ packages/celotool/src/lib/k8s-oracle/base.ts | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/celotool/src/lib/endpoints.ts b/packages/celotool/src/lib/endpoints.ts index a0d899c3685..6cf910396aa 100644 --- a/packages/celotool/src/lib/endpoints.ts +++ b/packages/celotool/src/lib/endpoints.ts @@ -39,3 +39,11 @@ export function getFullNodeHttpRpcInternalUrl(celoEnv: string) { export function getFullNodeWebSocketRpcInternalUrl(celoEnv: string) { return `ws://${celoEnv}-fullnodes-rpc.${celoEnv}.svc.cluster.local:8546` } + +export function getLightNodeHttpRpcInternalUrl(celoEnv: string) { + return `http://${celoEnv}-lightnodes-rpc.${celoEnv}.svc.cluster.local:8545` +} + +export function getLightNodeWebSocketRpcInternalUrl(celoEnv: string) { + return `ws://${celoEnv}-lightnodes-rpc.${celoEnv}.svc.cluster.local:8546` +} diff --git a/packages/celotool/src/lib/k8s-oracle/base.ts b/packages/celotool/src/lib/k8s-oracle/base.ts index a900f287305..0ee15ba31ac 100644 --- a/packages/celotool/src/lib/k8s-oracle/base.ts +++ b/packages/celotool/src/lib/k8s-oracle/base.ts @@ -1,8 +1,8 @@ import { getFornoUrl, getFornoWebSocketUrl, - getFullNodeHttpRpcInternalUrl, - getFullNodeWebSocketRpcInternalUrl, + getLightNodeHttpRpcInternalUrl, + getLightNodeWebSocketRpcInternalUrl, } from 'src/lib/endpoints' import { envVar, fetchEnv, fetchEnvOrFallback } from 'src/lib/env-utils' import { @@ -68,10 +68,10 @@ export abstract class BaseOracleDeployer { async helmParameters() { const httpRpcProviderUrl = this.deploymentConfig.useForno ? getFornoUrl(this.celoEnv) - : getFullNodeHttpRpcInternalUrl(this.celoEnv) + : getLightNodeHttpRpcInternalUrl(this.celoEnv) const wsRpcProviderUrl = this.deploymentConfig.useForno ? getFornoWebSocketUrl(this.celoEnv) - : getFullNodeWebSocketRpcInternalUrl(this.celoEnv) + : getLightNodeWebSocketRpcInternalUrl(this.celoEnv) return [ `--set oracle.api_keys=${fetchEnv(envVar.ORACLE_FX_ADAPTERS_API_KEYS)}`, `--set environment.name=${this.celoEnv}`, From 3c0e5a9a77dcf442d97ec6b915b8fc2a3dc8b160 Mon Sep 17 00:00:00 2001 From: Nelson Taveras Date: Fri, 8 Sep 2023 16:35:55 +0200 Subject: [PATCH 7/7] fix: use set-literal for api_keys --- packages/celotool/src/lib/k8s-oracle/base.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/celotool/src/lib/k8s-oracle/base.ts b/packages/celotool/src/lib/k8s-oracle/base.ts index 0ee15ba31ac..e6ef12c8a0d 100644 --- a/packages/celotool/src/lib/k8s-oracle/base.ts +++ b/packages/celotool/src/lib/k8s-oracle/base.ts @@ -73,7 +73,7 @@ export abstract class BaseOracleDeployer { ? getFornoWebSocketUrl(this.celoEnv) : getLightNodeWebSocketRpcInternalUrl(this.celoEnv) return [ - `--set oracle.api_keys=${fetchEnv(envVar.ORACLE_FX_ADAPTERS_API_KEYS)}`, + `--set-literal oracle.api_keys=${fetchEnv(envVar.ORACLE_FX_ADAPTERS_API_KEYS)}`, `--set environment.name=${this.celoEnv}`, `--set image.repository=${fetchEnv(envVar.ORACLE_DOCKER_IMAGE_REPOSITORY)}`, `--set image.tag=${fetchEnv(envVar.ORACLE_DOCKER_IMAGE_TAG)}`,