Git Product home page Git Product logo

hyperlane-explorer's Introduction

Hyperlane Explorer App

An interchain explorer for the Hyperlane protocol and network.

Setup

# Install dependencies
yarn

# Build source and generate types
yarn build

Development

# Start the Next dev server
yarn dev

Test

# Run all unit tests
yarn test

# Lint check code
yarn lint

Learn more

For more information, see the Hyperlane documentation.

hyperlane-explorer's People

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

Watchers

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

hyperlane-explorer's Issues

Improve scalability of PI message search

The PI search used to execute only on chains the user manually added to their local instance.
Now, the search executes on all PI chains from the registry, which will grow quickly.

Searching 20+ chains simultaneously will likely be untenable and we'll need a better solution for this.

Related: #43

Performance problem for some PI chains: explorer calls `eth_getLogs` with start block = 0 and end block = latest

We're running a Hyperlane PI on a custom EVM network (Axon ), whose RPC client is not capable of responding to eth_getLogs { startBlock = 0, endBlock = latest) quickly enough, and fails with a 504 gateway timeout. While we can request the performance improvement of the Axon clients, maybe a better solution would be if Hyperlane explorer could index logs by block ranges of 500-1000 blocks. With an all-blocks query, very popular Mailboxes will fail anyway (imagine 1M+ messages)

Possible bug: explorer saying recipient address is not a contract when the message just reverts

From https://discord.com/channels/935678348330434570/961710804011458621/1085799205391568906

Explorer told me that the recipient address is not a contract, but on Goerli network, this address is indeed a HyperERC721 contract "0xcb6ddab87576373cd973c5b6a01def668bb9cd69 "

The actual problem was that the message was reverting on the destination, which it seems was not correctly surfaced to the user. Not sure if there's a bug or what but we should do a quick poke around and see if anything stands out

Decode warp route messages

Problem

  • Warp route messages are opaque on the explorer

Solution

Nice to Have

  • Fetch warp route from registry and render additional metadata (eg collateral token metadata, chains connected, etc?)

`data` url query doesn't show deliveries or message content

Not 100% sure where the data query came from, but Mitosis was trying to see that Mode <-> Ethereum messages were being delivered using the following explorer links:

Mode -> Eth message: https://explorer.hyperlane.xyz/message/0xdd4bda8543ef00a9ced3d6d8e35dd93fd2d921407b7f17110148fa3cbd0e8349?data=eyJzdGF0dXMiOiJwZW5kaW5nIiwiaWQiOiIzMTc2NTAwIiwibXNnSWQiOiIweGRkNGJkYTg1NDNlZjAwYTljZWQzZDZkOGUzNWRkOTNmZDJkOTIxNDA3YjdmMTcxMTAxNDhmYTNjYmQwZTgzNDkiLCJub25jZSI6MCwic2VuZGVyIjoiMHg1ODcwMDZjNmJhN2NlMjY5OTFiZjdmZDY2OThhNzU2MTU3OGFjNThhIiwicmVjaXBpZW50IjoiMHgzNmZkYTk2NmNmZmZmOGE5Y2RjODE0ZjU0NmRiMGU2Mzc4YmZlZjM1Iiwib3JpZ2luQ2hhaW5JZCI6MzQ0NDMsIm9yaWdpbkRvbWFpbklkIjozNDQ0MywiZGVzdGluYXRpb25DaGFpbklkIjoxLCJkZXN0aW5hdGlvbkRvbWFpbklkIjoxLCJvcmlnaW4iOnsidGltZXN0YW1wIjoxNzE0MDM5NTgxMDAwLCJoYXNoIjoiMHhlOTZjZjIzMmZkMmRhNmVkZGM1NGU1ZGY5NTYyYjU4OGFkMGU3YzQ0MDQ0MWRmNmRiNDZiYWE0ZTYyMDM3YjZmIiwiZnJvbSI6IjB4NTg3MDA2YzZiYTdjZTI2OTkxYmY3ZmQ2Njk4YTc1NjE1NzhhYzU4YSJ9LCJpc1BpTXNnIjp0cnVlfQ==

Eth -> Mode message: https://explorer.hyperlane.xyz/message/0xa61982c88ab45e46733f2f71d64fa9abe76d1aa55b60b96907c0f6035e56fec0?data=eyJzdGF0dXMiOiJwZW5kaW5nIiwiaWQiOiIzMTc2Njc1IiwibXNnSWQiOiIweGE2MTk4MmM4OGFiNDVlNDY3MzNmMmY3MWQ2NGZhOWFiZTc2ZDFhYTU1YjYwYjk2OTA3YzBmNjAzNWU1NmZlYzAiLCJub25jZSI6MjIwOSwic2VuZGVyIjoiMHg1ODcwMDZjNmJhN2NlMjY5OTFiZjdmZDY2OThhNzU2MTU3OGFjNThhIiwicmVjaXBpZW50IjoiMHgxMjU4MmM3YjBmNDNjNmE2NjdjYmFhN2ZhOGIxMTJmN2ZiMWU2OWYwIiwib3JpZ2luQ2hhaW5JZCI6MSwib3JpZ2luRG9tYWluSWQiOjEsImRlc3RpbmF0aW9uQ2hhaW5JZCI6MzQ0NDMsImRlc3RpbmF0aW9uRG9tYWluSWQiOjM0NDQzLCJvcmlnaW4iOnsidGltZXN0YW1wIjoxNzE0MDM5Nzc1MDAwLCJoYXNoIjoiMHgxNTUwMDNlMWFjMzY1MWJlYmY3MjhkMzUwYzVkODM3NjkwODY5OWRjZGIwMDNkYmIzZjg4NzFlMjZiOGE5MTcxIiwiZnJvbSI6IjB4NTg3MDA2YzZiYTdjZTI2OTkxYmY3ZmQ2Njk4YTc1NjE1NzhhYzU4YSJ9LCJpc1BpTXNnIjp0cnVlfQ==

The message content and delivery status isn't shown, however if you remove the data, then all is fine:

Mode -> Eth https://explorer.hyperlane.xyz/message/0xdd4bda8543ef00a9ced3d6d8e35dd93fd2d921407b7f17110148fa3cbd0e8349

Eth -> Mode https://explorer.hyperlane.xyz/message/0xa61982c88ab45e46733f2f71d64fa9abe76d1aa55b60b96907c0f6035e56fec0

We are currently scraping Mode but the explorer does not yet have it in its chain metadata

Explorer should work with 32-byte addresses from GraphQL queries

Part of the effort required for Cosmos scraping / explorer -- see hyperlane-xyz/hyperlane-monorepo#3330 for the agent side

At the moment, the scraper has been writing 20-byte hex addresses to the DB.

As we prepare to support other execution environments, we'll start writing addresses (e.g. for the message sender, recipient, mailbox addresses, etc) as 32 byte hex addresses that are then expected by the UI to correctly format. We make this 32-byte address assumption throughout our protocol already & have logic to format addresses appropriately for each protocol, so I think this is the most natural step forward

The postgresByteaToString function is used and the length isn't checked for addresses - I believe we'll need to move to using some of the utils functions to format these for the chain's protocol type

To begin with, I think we can make this change but continue to assume that only Ethereum chains are shown in the explorer - so really it'd be to handle reading 32 byte addresses but show them as 20 byte addresses

Recipient handler revert reason not showing up sometimes

Example, mumbai -> goerli:
https://explorer.hyperlane.xyz/message/0xc809f5e01a53782be251ee9e39202ae9382ac541c74812007ea4b91a3df491aa

For some reason the revert reason isn't showing in the explorer, but it shows in the relayer:

ContractError(MiddlewareError(MiddlewareError(MiddlewareError(JsonRpcClientError(JsonRpcError(JsonRpcError { code: 3, message: \"execution reverted\", data: Some(String(\"0x815e1d64\")

Maybe related to the use of custom errors?

Launch explorer app

Need to wrap up rebrand changes and then change hyperlane.xyz DNS settings to get explorer.hyperlane.xyz live

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.