Giter VIP home page Giter VIP logo

turtlescan's People

Contributors

lithp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

turtlescan's Issues

add mouse support

termion makes it possible to receive mouse events, the difficult part will be mapping clicks to panes. When we draw we populate a structure which remembers the mapping from positions to panes? And what about scrolling, when you scroll should it scroll the pane which is currently focused or should it scroll the pane directly under the cursor?

select and inspect transactions

complications:

  • what should the interaction look like? there's a third pane, the transaction inspector?
  • what should be rendered, is it useful to show call traces?

Address aliases?

raw addresses like 0x11bc..d08f are not very useful, at all. turtlescan would be much more useful if it had some kind of local or shared database of mappings from common addresses to names and annotations. Instead of seeing an address, you should see things like "Uni v2 WETH/BTC" or "Ethermine Coinbase".

In the same vein: ENS integration would also be dope.

start the tui with the newest block selected

the ui starts without any blocks selected which allows the user to get into a confusing state if they try to open the transactions pane or configure columns before selecting a block. This isn't a bug, exactly, but the rendered buffer is a little counter-intuitive.

alternative fix: make the rendered buffer more self-evident

j - jump to a specific block number / block hash

Currently the list of blocks only shows you the most recent block, and doesn't allow you to scroll past the end. It would be nice to have a way of jumping to some desired part of the blockchain.

"j" should open some kind of popup, prompting you to enter an absolute or relative offset, and then scroll the viewport to the requested block

This likely depends on #2

new block column: uniswap prices

  • the user somehow specifies which pools they would like to watch, such as ETH/USDC
  • when showing the block list do some eth_calls to figure out the price as of each block
  • in the future, generalize this to any eth_call users might want to track the result of?

far future: support reading data directly from client databases

if you're running on the same machine as a (turbo)geth node there's no reason why you can't read data directly from their database. And if you're running on the same machine as a turbogeth node in particular you have access to a bunch more useful data such as account history.

interaction: block "follow mode"

If you're in the blocks view and you've selected the most recent block, hitting up-arrow enters "follow mode" where the selection always stays on the most recent block (you can leave follow mode by changing your selection in the blocks view)

A visual indication might be that there is no longer a cursor in the blocks view?

render block time

complication: how should configuration work? is the desired timezone to use to render dates with a global property?

allow scrolling past the end of the block list

currently tui only shows you the most recent blocks, that's not very useful!

one complication: what happens when new blocks come in while you've scrolled past the end of the list? it would be nice to have some kind of visual indication of how far from the chain tip the current viewport is.

network request queue should not be a FIFO

if you're quickly scrolling through pages then the things currently on the screen are far more important than anything else. maybe we want a priority queue with updatable priorities or maybe we want to be able to cancel stale requests

handle reorgs correctly

when a reorg happens the subscription gives us all new blocks. currently the tui treats these blocks as if they're all additions to the chain tip but in fact some of them ought to rewrite previous blocks

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.