Giter Club home page Giter Club logo

block-explorer-v2's People

Contributors

adlerjohn avatar alex-matthe avatar alexandrumatei36 avatar alicanc avatar jaywelsh avatar luizasfight avatar luizstacio avatar matt-user avatar quinnlee avatar

Stargazers

 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

block-explorer-v2's Issues

Add filters for Tx's to allow for easy queries of Tx's

Summary

As a user I would like to be able to filter the Tx's e.g. by a time range, address, interaction type, amount etc.
There aren't many fields there atm (ref screenshot) but more tags may be tracked and then used to filter

Screenshot

1

Bump `fuel-core` to `v0.10.x`

Bring up to speed on breaking changes. We need this done for testnet release, since we need a block explorer.

blocked by deploy of the testnet on a public domain

Clicking on index should go to indexed item

E.g. clicking on the witness index of an input should go to the indexed witness, and maybe highlight the box for that witness. Same for input index of a contract output. Should apply to anything linked.

Add missing tx fields

A number of fields have been added to txs, including initial storage slots and byte price. Add all missing fields.

Remove env prop for API URL being cached

Changing env prop GRAPHQL_API_ENDPOINT is not working if you have accessed the project previously, unless you clear localStorage data.

This code is causing it:
image

I think we should remove this code using API url saved in localStorage, unless I'm not seeing the use case for it

@luizstacio you see any problems on removing it?

Ref: #76

Transaction gas price

Q: Can we include something similar to gasUsed in the GraphQL API?

The schema of fuel-core GraphQL API returns only the gasPrice and the gasLimit of a Transaction. We need to display the transaction fee in the UI which would be something like gasPrice * gasUsed

Enable tests on CI

It should build and run the project in a subfolder to make sure that the version to be deployed on gh-pages didn't break;

# TODO: Uncomment this section when we have tests

The environment for this test should be;

PUBLIC_URL: "/block-explorer-v2"
REACT_APP_GRAPHQL_API_ENDPOINT: "https://dubai.swayswap.io/graphql"

No pagination for explorer

Summary

The explorer is limited to 10 Tx's. Pagination should be added to allow the user to view all of their Tx's. This is especially important since the Tx's are in the incorrect order atm. Ref #92

Screenshot

1

Change order of transactions

Summary

When a Tx is made it gets added to the Tx section at the bottom of the screen.
The problem is the order that it is added in is incorrect.
It currently leaves the oldest Tx at the top and the latest Tx at the bottom so if you want to see your latest Tx's you must scroll all the way down (and potentially switch via pagination if enough Tx's happen).

Change the order to have the latest Tx be at the top.

Screenshot

1

Unclear "coins" in address page

The address page includes a "Coins" in the top-right, but it's not clear what that means. UTXOs? Distinct assets?

I know we don't currently have help hovers, but until we do it may be worth it to just hide.

Sort transactions by time

Q: Is there a way to sort transactions by time?

On the homepage of the explorer we need to display the latest transactions.
It seems that the current implementation of the fuel-core GraphQL API returns the transactions sorted by id ⬇️

query GetHomeTransaction { 
  transactions(last: 5) {
    edges {
      node {
        id
        status {
          __typename
          ... on SubmittedStatus {
          	time
        	}
          ... on SuccessStatus {
          	time
        	}
        }
      }
    }
  }
}
{
  "data": {
    "transactions": {
      "edges": [
        {
          "node": {
            "id": "0x9a2d3313c7094b92ff0db567d885afa2c8715bd37561133caeeb2814cedcd9c4",
            "status": {
              "__typename": "SuccessStatus",
              "time": "2021-10-16T22:37:58.398421+00:00"
            }
          }
        },
        {
          "node": {
            "id": "0xb18249c26287c1ef6a137b2049d5e6f533d339ada9c7c0bce9f2c4a2aef72aff",
            "status": {
              "__typename": "SubmittedStatus",
              "time": "2021-10-16T22:52:03.083460+00:00"
            }
          }
        },
        {
          "node": {
            "id": "0xb56f197b4cfe2be75755ab51c199a07c0706a4997dcd0326e32f72f593b2a691",
            "status": {
              "__typename": "SuccessStatus",
              "time": "2021-10-16T22:56:25.717232+00:00"
            }
          }
        },
        {
          "node": {
            "id": "0xceb9d709f2d1ee57b13a5925cd0decdbcab20e9f68892362ae0187334bffc12a",
            "status": {
              "__typename": "SubmittedStatus",
              "time": "2021-10-16T21:55:32.358434+00:00"
            }
          }
        },
        {
          "node": {
            "id": "0xd1863025aa7408a30d733d704dfb798dcf8b7dfca3e289660f33e7da50c63f60",
            "status": {
              "__typename": "SuccessStatus",
              "time": "2021-10-16T22:58:35.213025+00:00"
            }
          }
        }
      ],
    }
  }
}

Submit transactions in the same block

Q: Is there a way to force 2 transactions to be included in the same block?

I tried to send a request to fuel-core GraphQL API with this mutation in order to make the submit calls as close as possible

mutation Mutation($tx1: String!, $tx2: String!) {
  first: submit(tx: $tx1)
  second: submit(tx: $tx2)
}

The transactions were mined in the same second, but included in 2 different blocks.

Screenshot 2021-10-17 at 03 17 41

Add semantic releases

Integrate Semantic Release for automating the release process. Git tags, version number, releases, changelog file edits, all of them will be handled automatically by parsing the commit messages which will to follow a specific format

Light theme

The current dark-with-dark-green theme isn't the most pleasing. We should have a light theme by default.

Filter transactions by address

The Account Page will display the transactions of a particular account. This means that the fuel GraphQL API needs to allow filtering the query transactions by account address. This was already discussed, just adding it here for tracking

Comma-separate thousands

For decimal numbers (especially gas price) comma-separate on thousands.

  • It's possible to use formatUnits and parseUnits from ethers lib.
  • Use 3 decimal units
    Refs.: FuelLabs/swayswap#81

Examples:
Screen Shot 2022-05-10 at 5 51 36 PM

Remove header links

Header links are specific to a hosted webpage, not a generic block explorer. The links can be added in a branded fork.

Interacting with block explorer

This is the current block due to wallet requirement;

  • Connect wallet
  • Execute transaction
  • Deploy contract
  • Call functions using method generated interface

Remove/Comment out all non-working functionalities / links

Examples

Screen Shot 2022-05-10 at 5 41 44 PM

Screen Shot 2022-05-10 at 5 41 53 PM

  • Remove link from coins
  • Remove link from contracts
  • Fix numbers on the detail transactions page
  • Fix numbers on the address page
  • Remove Fee(USD) address page
  • Remove "Ethereum block number" and "Number of addresses" on the block page
  • Fix "to", "value", "coin" and remove "fee (USD)" on the Block transactions list.

Account for gas price factor when showing gas price

The gas price as of #80 only accounts for base coin decimals, but not the gas price factor. The resultant value needs to be further divided by the gas price factor.

Tricky: this will be a very small number, e.g. 10^-15.

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.