Git Product home page Git Product logo

0x-tracker-client's People

Contributors

cbovis avatar dennissimon avatar lesha1201 avatar lyaunzbe avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

0x-tracker-client's Issues

Handle missing makerFee/takerFee gracefully

Description

Fills created by the v3 exchange contract will have a fees property rather than makerFee and takerFee properties. This means the existing fields on fill pages will display empty due to no data being returned by the API for them.

Fill pages will need to be updated to ensure the fields are removed if no data is returned for them by the API. Support for the fees field will be added to replace them in issue #675

Implement error boundaries

Currently there are no error boundaries in the application. This means any error within the React component tree will unmount the entire application, leaving the user with a blank screen.

Error boundaries should be implemented in the following components,

  • Application root (src/index.js)
  • AppLayout, surrounding the children
  • Every chart component

Each error boundary should display a message relevant to the type of component. For example:

  • There was a problem loading the page, please reload or come back later.
  • There was a problem loading this chart, please try again or come back later.

Each error boundary should provide an option for reloading which re-attempts mounting of the wrapped component.

Relayer volume in "Top Relayers" skewed?..

Some relayers in the current top 5 - e.g. DDEX, Paradex, possibly STAR BIT - act as a middle-man between parties in trades, creating an order with themselves to match both sides (on-chain).

For example, here is Paradex:

(Fee recipient is set to 0x00..00.)

This was a single trade where an equivalent of ~71.975 USD changed hands, but the two fills contribute ~143.95 USD to Paradex's volume ticker.

Paradex is (probably) doing this to lift the requirement of maker needing unwrapped ether; and also to have a tighter control on transaction fees - both sides need only provide a signed message.

In the "Recent Fills" list, these fills (understandably) appear in pairs.


Here's an example of a fill via RadarRelay, which doesn't seem to be doing this (at least yet). Sides are matched atomically, fee recipient is set to RR's account address.


Or is this operational difference covered in 0xtracker, and I simply can't find it?..

Introduce Network Overview page

Summary

Before adding protocol version charts to the site there will need to be somewhere to display them. This will be achieved by introducing a network overview page. The network overview page will be designed to pack many more charts than the homepage (which is focused on key insights).

Requirements

Introduce a network overview page which lets users see an overview of network activity for a customisable time period. This page should include:

  • Title: Network Overview
  • URL: /overview
  • Time Period Filter: The same filter used on tokens, relayers etc. pages
  • Stats Widgets: Fill Volume, Trade Volume, Fill Count, Trade Count
  • Charts: Fill Volume, Fill Count, Top Tokens, Top Relayers

The page should look very similar to the homepage with the key difference being that users can customise an overall time period and there will be room for additional charts.

Add filters to the traders page

Description

Wire up the existing TradersFilters component on the traders page, allowing users to filter traders by type. Additionally, remove the NoUnusedFiles config related to the TradersFilters component.

Remove charts related to fees in preparation for v3

Description

The v3 exchange contract update will introduce a more complex fees data structure which will likely be difficult to support initially. Because of this there may be a period where the fees charts are actually incorrect.

The fee charts provide little value at the moment because so few fees are being collected by relayers. Removing the charts until better support can be built will therefore not be a problem.

Stop background API calls when the tab is not active

Description

0x Tracker fetches new data from the API every 30 seconds even when the tab is inactive. This creates lots of unnecessary API requests, increasing bandwidth usage and obscuring usage analytics.

A Page Visibility API is available which can help prevent these unnecessary requests. The app should subscribe to visibility changes and:

  • Stop reloading when hidden
  • Start reloading when visible
  • Immediately force a reload when visible

Dependency deprecation warning: loadable-components (npm)

On registry https://registry.npmjs.org/, the "latest" version (v2.2.3) of dependency loadable-components has the following deprecation notice:

Please use @loadable/component

Marking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.

Affected package file(s): package.json

If you don't care about this, you can close this issue and not be warned about loadable-components's deprecation again. If you would like to completely disable all future deprecation warnings then add the following to your config:

"suppressNotifications": ["deprecationWarningIssues"]

Token names not displaying correctly

Project setup

Hi Team,

I am facing the following issue while doing the code setup. I have ran the following commands in my terminal npm install and npm run start

Error: val is not a non-empty string or a valid number. val=undefined
./node_modules/ms/index.js.module.exports
./node_modules/ms/index.js:34
setTimer
./src/features/auto-reload/configure.js:10
7 | timer = setTimeout(() => {
8 | store.dispatch.autoReload.trigger();
9 | setTimer(store);

10 | }, ms(process.env.REACT_APP_AUTO_RELOAD_INTERVAL));
11 | };
12 |

Could you please help.

Remove fees column from fill listings

Description

The V3 exchange contract will introduce the potential for much more complex fee taking scenarios. Supporting these in the fills table will be difficult so this column should be removed until a better solution (such as a localised total fee) is built.

Most existing fills actually have zero fees associated with them anyway so this is likely to have little affect on users.

Improve contrast of tabs ChartsContainer component

Description

The contrast between active and inactive tabs in the ChartsContainer component isn't strong enough. The contrast should be increased so that users can easily see at a glance which chart is currently displayed.

Build a "complex" time picker control

A more complex time picker control will need to be built to support searching over fills. The time picker will provide the usual "last 24 hours", "last week" etc. options but will also provide the option to manually select a date range.

The control can be implemented as a ComplexTimePeriodSelector which would be used instead of the existing TimePeriodSelector when the option to choose a custom date range is available. The ComplexTimePeriodSelector would display the selected period and launch a ComplexTimePeriodSelectorDialog from which the user can change their selection.

Notes

Can be implemented using:
http://react-day-picker.js.org/

Inspiration for design:
Screenshot 2019-12-06 at 14 51 43

Display v3 fees on fill pages

Description

The API will begin exposing a fees field on all v3 fills to support the new fee structure in the v3 exchange contract. This field should be consumed on fill pages so that users can understand what fees were charged for any given v3 fill.

Notes

Since the fees field structure will be similar to the assets field it should be possible to build a similar UI to the assets list. Potentially components could be reused to make this possible.

Add "active traders" stat to homepage

Description

Add an active traders stat widget to the homepage which allows users to understand the number of active traders (makers or takers) in the last 24 hours.

To make room for the new widget, "fill volume" will need to be removed. The "fill count" widget should be replaced with a "trade count" widget. This means there will be "trade volume", "trade count", "active traders", "zrx price" widgets in that order.

Persist homepage tabs between browser sessions

On the homepage it's possible to switch between tabs in the chart containers. The selection should be persisted across sessions to accommodate users who prefer a different set of defaults.

I'd recommend implementing via the preferences model which already gets persisted using redux-persist.

Add filters to the fills page

The fills page at https://0xtracker.com/fills would be much more useful to people interested in exploring the data set if there were filters available.

A good set of initial filters would be:

  • Relayer(s)
  • Protocol Version
  • Token(s)
  • Date Range

The API will need updating to support these options when fetching fills before this can be implemented.

Design Inspiration

filters

Dependency deprecation warning: loadable-components (nvm)

On registry https://registry.npmjs.org, the "latest" version (v2.2.3) of dependency loadable-components has the following deprecation notice:

Please use @loadable/component

Marking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.

Please take the actions necessary to rename or substitute this deprecated package and commit to your base branch. If you wish to ignore this deprecation warning and continue using loadable-components as-is, please add it to your ignoreDeps array in Renovate config before closing this issue, otherwise another issue will be recreated the next time Renovate runs.

Affected package file(s): package.json

Add parameters to fills page URL for filtering

The fills page should have the ability to filter fills by parameters passed in the querystring. These new parameters can then be used to build a filter UI on the fills page.

Parameters to be added:

  • dateFrom
  • dateTo
  • status
  • protocolVersion
  • token
  • relayer

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.