witnet / data-feeds-explorer Goto Github PK
View Code? Open in Web Editor NEWCatalog of Witnet-powered public data feeds and price feeds available on Ethereum, Conflux, Boba, Celo and other networks
Catalog of Witnet-powered public data feeds and price feeds available on Ethereum, Conflux, Boba, Celo and other networks
While displaying the feed chart in mobile devices, the right side part with the amounts is not shown (or is outside).
This feed is breaking the explorer. Check why and fix! :)
MongoDB really shows a huge boost in performance when indexes are properly defined over collections.
Take this query as an example:
https://github.com/witnet/data-feed-app/blob/a9d6058994f3036ef064b18d0a902ca826f77a77/packages/api/src/repository/Feed.ts#L21-L27
Unless address
is defined as an index, every time this query is executed, it needs to crawl the entire feed
collection, and execute the filter on every each of the entries it finds there.
Ok that's not big of a concern, because we won't have a thousand feeds anyway. But look at this other example:
Unless feedId
is defined as an index, this really needs to iterate over the entire result_request
collection, which even this early, probably contains hundreds if not thousands of entries already.
So, as a rule of thumb, we should make sure that we create indexes for every field in a collection that can be subject of being used for filtering in a query.
Indexes are often created using the MongoDB console. Indexes for these examples can be easily created like this:
db.feed.createIndex( { address: 1 } )
db.result_request.createIndex( { feedId: 1, timestamp: -1 } )
(Note that the result_request
index not only covers the feedId
attribute that will be used for filtering, but also the timestamp
field that will be used for sorting. This is specially convenient and efficient, as it leverages the fact that indexed collections are stored by WiredTiger in a sorted order, so no in-memory sorting is needed that way.)
Add pagination to data feeds grid view
Every time the app restarts, feeds are scheduled to be checked for updates after their configured period.
This makes it quite difficult to check whether a specific price feed is being correctly read from,
It would be really nice to immediately check for updates upon starting the service. That is, adding a setTimeout
in addition to the setInterval
.
To avoid overload, a small random delay can be added to each of the different feeds.
Deploy latest changes.
All Etherscan links are pointing to Rinkeby. Let's use the right link interpolation for each network.
Allow inserting new data to the same price feed using a different address.
Build the missing Dockerfiles and docker compose scripts.
To avoid make a PR and rebuild the docker image, we have to add a block explorer template and the network color for each data feed in the configuration file
To avoid update the configuration every time a change is made in the feeds configuration, we can read the configuration file directly instead of update by hand
Update contract methods to get the timestamp
and the transactionHash
Add new deployed feeds in the config file
Add new feeds SVG if necessary
Load times are much slower than expected, apparently because of some slow operation on the API side.
Add lightweight charts period selector
Generate ids in feeds and requests repository through MongoDB config.
The switch allowed the user to show day, weeks and months. It was removed as the price feeds were only a few days old and there was not sense in including this feature. :)
Change testnet price feed's addresses in the config file.
Implement the new UI designed in Figma
Implement pagination in the server, DB, and add a component in UI
Add specific typescript rules, specifically enable explicit-retun-type.
The current implementation of the data feed charts uses the data point index instead of the date. This results in an incorrect time scale, because some days are missing and some days are duplicated. For example, in this screenshot you can see that it goes 22, 23, 25, 25, 26:
There are two data points in day 25, and their dates are:
1 day 22 hrs ago link
2 days 8 hrs ago link
They differ by 10 hours, but in the chart the points are drawn the same distance apart, as if they were 24 hours apart. The same happens in days 17 and 19.
The expected behavior would be to draw the points using the full date, so that any gaps can be clearly seen in the chart.
Add Celo price feed in config file and implement icon
We won't be polling XAU feeds anymore. Please remove from default feeds config file.
It would be nice to have a config file (e.g. json
) with all data required for defining data feeds (instead of the dataFeeds.ts
).
The main goal is to avoid having to re-build the docker images for adding new data feeds.
Additionally, and most probably it should be another issue, it would be nice to show only those price feeds that are included in that json
file. For example, to remove some old data feed that was stored into the database but that is not working anymore.
Originally posted by aesedepece June 7, 2021
We may need to get on the same page on the naming of this product and repo, before it's too late and we get used to something not so catchy.
For those who don't know, this repo contains the source code for the front end and back end of a little website that will allow smart contract developers to discover different publicly available data feeds on multiple chains. Initially, these feeds may be operated by Witnet Foundation, but there's no reason for listing feeds created by others.
Redesign website to have a better UX.
Update conflux addresses and add them to the config json file. It is also needed to find a way to make it work without running locally the gateway.
Add conflux constants to show the price feed
Transactions / feed updates are currently ordered from oldest to newest.
The correct order is from newest to oldest.
This is the right URL: https://tally.so/r/wMZDAn
It would be nice to have the etherscan link of the data feed price data, so that the user could check the Ethereum transaction in which the data point was reported.
Depending on the price feed itself, data request might be designed to use integers with a factor (to provide precision). Then, data feed explorer should show that information accordingly with decimals.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.