Giter VIP home page Giter VIP logo

fuel-explorer's Introduction

fuel-explorer's People

Contributors

arthurgeron avatar braqzen avatar helciofranco avatar liviudm avatar luizasfight avatar luizstacio avatar manav2808 avatar matt-user avatar pedronauck avatar rodrigobranas avatar rubyt0x avatar zm-moon 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  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fuel-explorer's Issues

Responsive fix on Bridge UI

some extra right space when using Iphone 12 in chrome inspector

problem happens when you are in a popup. If you remove the blur you can see the background layout is broken

Image

polishment on Bridge UI

Transaction popup

  • Big texts can break the UI
  • Increase size of table, its too tight

Transaction List

  • Loader its weird, one element comes, then others. needs to be clean
  • When the "Action Required" is on the list, the "days left" text gets disaligned

Create indexer for blocks

FRO-30

The client may contain the following information inside a block

Querying a block should contain the following

  • Block height
  • Previous block hash
  • Time
  • List of transactions

Write the indexer modules for the block explorer

Account Page -> Predicate

On the account page predicate tab, the user should be able to see a predicate's bytecode, abi, and signature. We should add a bytecode because we don't have predicate metadata yet.

We should not show the tab predicate if the address is not a predicate.
To know if an address is a predicate, we need to check inside the transaction history of the address and see if an input of type Coin, with the same address, contains a predicate, if yes address is considered a predicate. The bytecode to be shown is this predicate bytecode. This can be done on the GraphQL side and returns only the data in a structured way to the FE side.

Design: https://www.figma.com/file/VTWcuPxsUtKZDk0iKn3y7T/Fuel-Portal-Product-Board?type=design&node-id=2068-72528&mode=design&t=QvLFwOte6x138asK-4

createComponent performance issues

Currently we use createComponent as a base to enable a better development experience when developing the components for the UI library. But we notice that it creates some issues of performance that block the execution of the component.

This could be leading too many other issues like the problem where the components are not responsive for couple of milliseconds before render. By removing this from the root component it reduced a lot as the wrapper components if not well optimized can lead to multiple re-renders of all children components.

The use case to see the issue was the change on the Theme component. That was causing a issue where the theme was only loaded after couple of milliseconds (~1s) that was perceptible for the user.

The code for the theme previously using the createComponent was:

export const Theme = createComponent<ThemeProps, typeof RadixTheme>({
  id: 'Theme',
  baseElement: RadixTheme,
  render: (
    Comp,
    { iconSize = 20, iconColor = 'text-current', iconStroke = 1.2, ...props },
  ) => {
    return (
      <IconProvider
        value={{ size: iconSize, color: iconColor, stroke: iconStroke }}
      >
        <Comp {...props} />
      </IconProvider>
    );
  },
  defaultProps: {
    grayColor: 'slate',
    accentColor: 'grass',
    appearance: 'dark',
    radius: 'medium',
    panelBackground: 'translucent',
    scaling: '105%',
  },
});

And the version there is currently working that solved the issue looks like this;

    <RadixTheme>
      <IconProvider
        value={{ size: iconSize, color: iconColor, stroke: iconStroke }}
        {...props}
      >
        {children}
      </IconProvider>
    </RadixTheme>

## Request for New Blockchain Explorer Development

Description

As a developer actively working with the Fuel Network, I believe there is a significant need for a new blockchain explorer with enhanced features and a user-friendly interface, inspired by platforms like BlockScout.

Key Features Requested

  1. Developer-Friendly API: Ensure the availability of a well-documented and accessible API for developers to integrate with the explorer.
  2. Rich Transaction Details: Comprehensive information about transactions, blocks, and addresses for thorough analysis.
  3. Smart Contract Support: Robust integration for displaying details about tokens and smart contracts on the Fuel Network.
  4. Extensible Architecture: Develop the explorer with scalability and extensibility in mind to accommodate future enhancements.

Technical Considerations

  1. Preferred Technology Stack: If you have specific preferences for the technology stack, please mention them here.
  2. Open Source Contributions: I encourage the project to be open source, allowing the community to contribute and improve the explorer.

Purpose of the Request

The development of a new blockchain explorer is crucial for the developer community to enhance their experience when interacting with the Fuel Network. This will contribute to a more vibrant and engaged ecosystem.

Timeline and Collaboration

I would appreciate insights into the expected development timeline and whether there is an opportunity for community collaboration in this project.

Create means of monitoring block-explorer

  • This is a follow up to https://github.com/FuelLabs/block-explorer-backend/issues/3
  • I know we have various methods of monitoring prod failures (e.g., Slack pings)
  • Outside of the scope of ops monitoring, this issue is with regard to just general performance monitoring. Things like:
    • Requests to GraphQL API
    • Requests to fuel node (responses from Fuel node)
  • The basic gist is, outside of ops/infra context (i.e., "Is this thing up and running?") it would be nice to know how the service is actually performing .
    • This will help us diagnose potential issues (e.g., resource saturation and such)

Indexer GraphQL Schema Generator Implementation

FRO-25

User Story: As a developer, I shall have a GraphQL schema generator implemented on the indexer API to enable dynamic fetch schema generation and custom types implementation.

Acceptance Criteria:

  1. Implement a dynamic fetch schema generator within the indexer API, which enables the use of codegen-graphql.
  2. Develop a plugin for codegen-graphql that allows the implementation of custom types from the indexer.
  3. Leverage a PostgreSQL GraphQL library to fetch the structure from PostgreSQL and interpret primitive types to the types from the type schema created in the index project.

Contract Page -> Balances

On the contact page on the balances tab, the user should see all the balances a contract holds. The assets should use the same components as the assets of the user, which means summarize by assetId, in this case, contract balances don't have UTXOs. This way, we can remove the toggle option.

To query the contract balances we can use: contractBalances

Design: https://www.figma.com/file/VTWcuPxsUtKZDk0iKn3y7T/Fuel-Portal-Product-Board?type=design&node-id=2068-72575&mode=design&t=QvLFwOte6x138asK-4

Chrome & macOS slowing to a halt while the bridge is "working"

ProductName: macOS
ProductVersion: 14.3.1
BuildVersion: 23D60
Google Chrome: Version 122.0.6261.69 (Official Build) (x86_64)

image

While the Bridge is in the settlement phase (shown above) or the Confirm transaction phase while it's open and on the screen, it's using so many of my machine's resources that Chrome becomes unusable and eventually the whole machine becomes unusable.

Let me know if you need more information.

Create infrastructure to test block-explorer tests and automate it on CI

FRO-34

User Story: As a developer, I want to create an infrastructure that allows testing the block explorer and automating these tests on the CI pipeline to ensure consistency and quality.

Acceptance Criteria:

  1. Set up a testing environment for the block explorer, including the required services and dependencies.
  2. Create and maintain a comprehensive suite of tests for the block explorer for end-to-end tests.
  3. Integrate the testing suite into the CI pipeline to run tests automatically on each PR.
  4. Provide clear and concise reporting of test results and failures, allowing developers to identify and fix issues quickly.

Additional:

  1. We can use either TypeScript or Rust to write the end-to-end tests.
  2. As we aim to do E2E, the tests should spin up an indexer linked to a fuel-core with data pre-loaded and then execute all queries.

Navigation issue (404) in explorer UI

we keep getting this screen sometimes

two situations I was able to simulate:

  • being on bridge, and click on "explorer" link on menu
  • being on explorer home, and click on first "mint" transaction of the list

Image

Infrastructure for Live Block Explorer Indexer

FRO-35

User Story: As a developer, I want to create a reliable and scalable infrastructure for the live block explorer indexer, ensuring that it processes and indexes blockchain data efficiently and effectively.

Acceptance Criteria:

  1. Set up a production-ready environment for the block explorer indexer, including necessary services and dependencies.
  2. Ensure that the infrastructure is scalable to handle increased data loads and traffic as the blockchain grows.
  3. Implement monitoring and logging solutions to track the performance and health of the indexer, enabling quick identification and resolution of issues.

Account Page -> Transactions

The account page transactions tab should show the users all the transactions made by the user, sorted by the newer ones to the old ones. Once the user clicks on the transaction, it should open the transaction page.

Notes;

  • Fuel-core returns the transactions from an owner out of order, we can sort the data on the GraphQL side.
  • Fuel-core does not support pagination on the transactions by owner we could right now, just return the first 200 transactions.

Design: https://www.figma.com/file/VTWcuPxsUtKZDk0iKn3y7T/Fuel-Portal-Product-Board?type=design&node-id=2068-72496&mode=design&t=QvLFwOte6x138asK-4

Block Page -> Transactions

On the block page, transactions tab, the user should see a list of the transactions in the block.

  • Pagination is not required as we currently do not have support for pagination on the inner data of a block.
    We should query just the minimal info required to display on the list to avoid the query failing, as a block can contain multiple transactions with lots of data.
  • When clicking on a Transaction Item, it should open the transaction page.

Design: https://www.figma.com/file/VTWcuPxsUtKZDk0iKn3y7T/Fuel-Portal-Product-Board?type=design&node-id=2529-37680&mode=design&t=S2Jr6aSBRekhoQju-4

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.