Skip to content

Latest commit

 

History

History
127 lines (83 loc) · 5.28 KB

README.md

File metadata and controls

127 lines (83 loc) · 5.28 KB

Ramen - A Terminal Interface for Ethereum 🍜

Go Report Card Release License

Ramen is a good-old terminal UI to interact with Ethereum Network. It allows you to observe latest chain status, check account's balance and transaction history, navigate blocks and transactions, view smart contract's source code or call its functions, and many things more!

Features

  • View an account's type, balance and transaction history.
  • View transaction details, including sender/receiver address, value, input data, gas usage and timestamp.
  • Decode transaction input data and display it in a human-readable format.
  • Call contract functions.
  • Import private key for transfer and calling of non-constant functions.
  • View contract's ABI, source code, and storage.
  • Keep syncing with network to retrieve latest blocks and transactions.
  • Show account's assets, including ERC20 tokens and ERC721 NFTs.
  • Windows support.
  • ENS support.
  • Navigate back and forth between pages.
  • Customize key bindings and color scheme.
  • Support more Ethereum JSON-RPC providers.
  • Support Polygon, Binance Smart Chain, and other EVM-compatible chains.

Additionally, Ramen is also well designed for smart contract development. Ramen can connect to a local chain (such as the one provided by Hardhat) to view transaction history of smart contract in development, call functions for testing, or verify its storage. Just works like Etherscan, but for your own chain!

Installation

Using Package Manager

Homebrew

brew tap dyng/ramen && brew install ramen

More package managers are coming soon!

Using Prebuilt Binaries

You can choose and download the prebuilt binary for your platform from release page.

Building From Source

If you want to experience the latest features, and don't mind the risk of running an unstable version, you can build Ramen from source.

  1. Clone repository

    git clone https://github.com/dyng/ramen.git
  2. Run go build command

    go build -o ramen

Quick Start

Ramen requires an Ethereum JSON-RPC provider to communicate with Ethereum network. Currently only Alchemy and local node is supported by Ramen. More providers will be added soon.

In addition to the Ethereum JSON-RPC provider, Ramen also relies on the Etherscan API to access certain information that is not easily obtainable through the JSON-RPC alone, such as transaction histories and ETH prices.

To access Alchemy and Etherscan's service, you need an Api Key respectively. Please refer to their guides to obtain your own Api Key.

When the API keys are ready, you can create a configuration file .ramen.json in your home directory (e.g. ~/.ramen.json) and place keys there.

{
    "apikey": "your_json_rpc_provider_api_key",
    "etherscanApikey": "your_etherscan_api_key"
}

Then you can start Ramen by running the following command:

# connect to Mainnet
./ramen --network mainnet

# connect to Goerli Testnet
./ramen --network goerli

Key Bindings

Ramen inherits key bindings from underlying UI framework tview, the most frequently used keys are the following:

Key Action
j, k Move cursor up and down
enter Select an element
tab Switch focus among elements

Connect Local Network

Hardhat / Ganache provides a local Ethereum network for development purpose. Ramen can be used as an user interface for these local networks.

./ramen --provider local

Troubleshoting

If you come across some problems when using Ramen, please check the log file /tmp/ramen.log to see if there are any error messages. You can also run Ramen in debug mode with command:

ramen --debug

If you still can't figure out the problem, feel free to open an issue on GitHub

Special Thanks

Ramen is built on top of many great open source projects, special thanks to k9s and podman-tui for inspiration.

License

Ramen is released under the Apache 2.0 license. See LICENSE for details.