From af36b2fbb1826d03a4dadec6c7abb17cd58c540a Mon Sep 17 00:00:00 2001 From: tommytrg Date: Wed, 18 Aug 2021 18:39:31 +0200 Subject: [PATCH] feat(api): add BOBA price feeds --- packages/api/sample.env | 1 + packages/api/src/dataFeeds.json | 35 ++++++++++++++++++++- packages/api/src/types.ts | 3 +- packages/api/src/web3Middleware/index.ts | 1 + packages/api/src/web3Middleware/provider.ts | 6 ++-- packages/ui/assets/svg/omgbtc.svg | 8 +++++ packages/ui/assets/svg/omgeth.svg | 8 +++++ packages/ui/assets/svg/omgusdt.svg | 8 +++++ packages/ui/components/Chart.vue | 2 +- sample.env | 1 + 10 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 packages/ui/assets/svg/omgbtc.svg create mode 100644 packages/ui/assets/svg/omgeth.svg create mode 100644 packages/ui/assets/svg/omgusdt.svg diff --git a/packages/api/sample.env b/packages/api/sample.env index 3e469888..4fdb0630 100644 --- a/packages/api/sample.env +++ b/packages/api/sample.env @@ -11,4 +11,5 @@ ETHEREUM_RINKEBY_PROVIDER=https://rinkeby.infura.io/v3/ ETHEREUM_MAINNET_PROVIDER=https://mainnet.infura.io/v3/ CONFLUX_MAINNET_PROVIDER=url CONFLUX_TESTNET_PROVIDER=url +BOBA_RINKEBY_PROVIDER=url DATA_FEED_CONFIG_PATH=/dataFeeds.json \ No newline at end of file diff --git a/packages/api/src/dataFeeds.json b/packages/api/src/dataFeeds.json index e894719b..f2b7ec5a 100644 --- a/packages/api/src/dataFeeds.json +++ b/packages/api/src/dataFeeds.json @@ -86,5 +86,38 @@ "pollingPeriod": 15000, "color": "#be4141de", "blockExplorer": "https://testnet.confluxscan.io/address/{address}" + }, + { + "feedFullName": "boba-rinkeby_omg-btc_9", + "abi": "./src/abi/PriceFeed.json", + "address": "0x74fcc16D8d17BCF9D2b5028a345b398449BEe63f", + "network": "boba-rinkeby", + "name": "omg/btc", + "label": "$", + "pollingPeriod": 120000, + "color": "#1cd8d2", + "blockExplorer": "https://blockexplorer.rinkeby.boba.network/address/{address}/transactions" + }, + { + "feedFullName": "boba-rinkeby_omg-eth_9", + "abi": "./src/abi/PriceFeed.json", + "address": "0x904D5786ab5C21726e7b324487a4Adf57BC9Cd1c", + "network": "boba-rinkeby", + "name": "omg/eth", + "label": "$", + "pollingPeriod": 120000, + "color": "#1cd8d2", + "blockExplorer": "https://blockexplorer.rinkeby.boba.network/address/{address}/transactions" + }, + { + "feedFullName": "boba-rinkeby_omg-usdt_6", + "abi": "./src/abi/PriceFeed.json", + "address": "0x1553c2F110C443FA485E233DAa611243fC2f4A47", + "network": "boba-rinkeby", + "name": "omg/usdt", + "label": "$", + "pollingPeriod": 120000, + "color": "#1cd8d2", + "blockExplorer": "https://blockexplorer.rinkeby.boba.network/address/{address}/transactions" } -] +] \ No newline at end of file diff --git a/packages/api/src/types.ts b/packages/api/src/types.ts index b98c8e7c..f4b439a3 100644 --- a/packages/api/src/types.ts +++ b/packages/api/src/types.ts @@ -27,7 +27,8 @@ export enum Network { EthereumKovan = 'ethereum-kovan', EthereumRinkeby = 'ethereum-rinkeby', ConfluxTestnet = 'conflux-testnet', - ConfluxMainnet = 'conflux-mainnet' + ConfluxMainnet = 'conflux-mainnet', + BobaRinkeby = 'boba-rinkeby' } export type FeedInfoGeneric = { diff --git a/packages/api/src/web3Middleware/index.ts b/packages/api/src/web3Middleware/index.ts index 8d37be8a..fd7e5773 100644 --- a/packages/api/src/web3Middleware/index.ts +++ b/packages/api/src/web3Middleware/index.ts @@ -99,6 +99,7 @@ export class Web3Middleware { listenToDataFeed (feedInfo: FeedInfo, feedId: ObjectId) { const provider = getProvider(feedInfo.network) + console.log('provider', provider) const web3 = new this.Web3(provider) const feedContract = new web3.eth.Contract(feedInfo.abi, feedInfo.address) const interval = setInterval(async () => { diff --git a/packages/api/src/web3Middleware/provider.ts b/packages/api/src/web3Middleware/provider.ts index 3889f73f..f37b6f40 100644 --- a/packages/api/src/web3Middleware/provider.ts +++ b/packages/api/src/web3Middleware/provider.ts @@ -1,14 +1,16 @@ import { Network } from './../types' export function getProvider (network: Network) { + console.log('network', network) const providers: Record = { [Network.EthereumMainnet]: process.env.ETHEREUM_MAINNET_PROVIDER, [Network.EthereumGoerli]: process.env.ETHEREUM_GOERLI_PROVIDER, [Network.EthereumKovan]: process.env.ETHEREUM_KOVAN_PROVIDER, [Network.EthereumRinkeby]: process.env.ETHEREUM_RINKEBY_PROVIDER, [Network.ConfluxTestnet]: process.env.CONFLUX_TESTNET_PROVIDER, - [Network.ConfluxMainnet]: process.env.CONFLUX_MAINNET_PROVIDER + [Network.ConfluxMainnet]: process.env.CONFLUX_MAINNET_PROVIDER, + [Network.BobaRinkeby]: process.env.BOBA_RINKEBY_PROVIDER } - + console.log('provider', network, providers[network]) return providers[network] } diff --git a/packages/ui/assets/svg/omgbtc.svg b/packages/ui/assets/svg/omgbtc.svg new file mode 100644 index 00000000..7f87b76c --- /dev/null +++ b/packages/ui/assets/svg/omgbtc.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/ui/assets/svg/omgeth.svg b/packages/ui/assets/svg/omgeth.svg new file mode 100644 index 00000000..7f87b76c --- /dev/null +++ b/packages/ui/assets/svg/omgeth.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/ui/assets/svg/omgusdt.svg b/packages/ui/assets/svg/omgusdt.svg new file mode 100644 index 00000000..7f87b76c --- /dev/null +++ b/packages/ui/assets/svg/omgusdt.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/ui/components/Chart.vue b/packages/ui/components/Chart.vue index 113ef022..322c35ed 100644 --- a/packages/ui/components/Chart.vue +++ b/packages/ui/components/Chart.vue @@ -39,7 +39,7 @@ export default { required: true, }, decimals: { - type: Number, + type: String, required: true, }, }, diff --git a/sample.env b/sample.env index e43ba493..d36f175f 100644 --- a/sample.env +++ b/sample.env @@ -14,4 +14,5 @@ ETHEREUM_RINKEBY_PROVIDER=https://rinkeby.infura.io/v3/ ETHEREUM_MAINNET_PROVIDER=https://mainnet.infura.io/v3/ CONFLUX_MAINNET_PROVIDER=url CONFLUX_MAINNET_TESTNET=url +BOBA_RINKEBY_PROVIDER=url API_ENDPOINT="http://api:4000" \ No newline at end of file