• Stars
    star
    833
  • Rank 54,737 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 1 year ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Developer Wallet & DevTools for Anvil

cover

Developer wallet & DevTools for Anvil

What is Rivet?

Rivet is a developer Wallet & DevTools for Anvil (akin to Browser DevTools or React DevTools). It is a browser extension that enables developers to inspect, debug, modify, and manipulate the state of Ethereum: accounts, blocks, contracts & the node itself. Rivet is also compatible with any production dApp, meaning you can simulate any type of action from either an Account attached on the Anvil instance, or by "impersonating" another Account on the network.

By integrating EIP-6963: Multi Injected Provider Discovery, Rivet is designed to be used alongside and with other consumer browser wallets like MetaMask or Rainbow to provide more engrained developer tooling and workflows for Ethereum.

Rivet is aimed to be contributor first & friendly. If you would like to contribute, check out the Contributing Guide and good first issues.

screenshots

Download

  • Chromium (Chrome, Brave, Arc, etc): Chrome Web Store
  • Firefox: coming soon
  • Safari: coming soon

Nightly Release

Rivet is currently in active development. If you would like to try out the latest features, you can download the latest nightly build below:

  • Chromium (Chrome, Brave, Arc, etc): Download
Setup Instructions
  1. Download the asset `extension.zip` from the link above
  2. Unzip the downloaded file
  3. Open your chromium browser and navigate to chrome://extensions
  4. Enable Developer Mode in the top right corner
  5. Click Load Unpacked in the top left corner
  6. Select the unzipped folder
  7. Done! You should now see the Rivet extension in your browser

Features

  • Onboarding
    • Set up local Anvil instance
    • Configure & deploy Anvil instance (fork block number, fork rpc url, base fee, gas limit, etc)
  • Anvil Node/Chain
    • Configure fork settings (block number, RPC URL, chain ID, etc)
    • Configure block config (base fee, gas limit, timestamp interval, etc)
    • Automatic sync with Anvil instance
    • Reset instance*
    • Deploy a new instance*
    • Switch between instances*
  • Accounts
    • List Anvil-attached and impersonated accounts
    • View balances, nonces, and other account details
    • Inspect, connect, and manage accounts
    • Impersonate accounts
    • Set balances & nonces
    • View & set ERC20/721/1155 balances*
    • Import Private Key/HD accounts*
  • Block
    • Infinite scroll through previous blocks
    • View block details & transactions
    • Toggle between "click-to-mine", interval mining, and auto-mining
    • Time-travelling (rewind & replay)*
  • Contract
    • Read & write interactions with intuitive UI to represent ABI data structures*
    • Inspect & set storage slots*
    • Inspect & set bytecode*
    • Deployment details (compiler version, optimization + runs)*
    • Inspect contract source code*
  • Transaction
    • Infinite scroll through previous & pending transactions
    • View transaction details (including decoded calldata*, logs*, state*, and tracing*)
    • Filter transactions by block, account, and status*
    • Update transactions in Anvil mempool*
  • Dapp Connections
    • Connect to Dapps with your Anvil (and impersonated) account(s)
    • Send transactions, sign messages & typed data, etc
    • Account authorization & "Instant Connect" mode*
    • Transaction request modifiers (fees, nonce, etc)*
  • Other
    • EIP-6963: Multiple Injected Provider Discovery
    • Light & Dark Mode
    • Keyboard shortcuts*

* = Planned feature

Getting Started

1. Clone the repository

Clone the repo to your local machine using git:

git clone https://github.com/paradigmxyz/rivet.git

2. Install Bun

Rivet uses Bun. You need to install Bun v1 or higher.

You can run the following commands in your terminal to check your local Bun version:

bun -v

If the versions are not correct or you don't have Bun installed, download and follow their setup instructions:

3. Install dependencies

Once in the project's root directory, run the following command to install the project's dependencies:

bun i

4. Run the dev server

After you have installed dependencies, you are ready to run the dev server for the Extension. To do so, run the following:

bun run dev 

This will run a script that will build the Web Extension, start a dev server for the Test Dapp, and automatically open Chrome with a fresh profile and the extension installed.

Known Issues

Rivet uses the window.ethereum interface, which means it has some known conflicts with other wallets which also rely on window.ethereum. Once Dapps start to integrate EIP-6963 to handle multiple injected wallets, this should not be a problem anymore.

For best results it is recommended to run Rivet in it's own Chrome profile, without any other conflicting browser wallets installed.

Helpful note: A fresh Chrome profile gets instantiated when running the dev script: bun run dev.

Contributing

If you're interested in contributing, please read the contributing docs before submitting a pull request.

Authors

License

MIT License

More Repositories

1

reth

Modular, contributor-friendly and blazing-fast implementation of the Ethereum protocol, in Rust
Rust
3,910
star
2

artemis

A simple, modular, and fast framework for writing MEV bots in Rust.
Rust
2,292
star
3

cryo

cryo is the easiest way to extract blockchain data to parquet, csv, json, or python dataframes
Rust
1,137
star
4

flux

Graph-based LLM power tool for exploring many completions in parallel.
TypeScript
773
star
5

paradigm-ctf-2021

Official repository for Paradigm CTF 2021
Solidity
488
star
6

flood

flood is a load testing tool for benchmarking EVM nodes over RPC
Python
316
star
7

paradigm-ctf-2022

Rust
296
star
8

paradigm-data-portal

a collection of open source crypto datasets for researchers and tool builders
Python
288
star
9

revmc

JIT and AOT compiler for the Ethereum Virtual Machine, built on Revm.
Rust
202
star
10

mev-share-rs

Rust client library for Flashbots MEV-share
Rust
177
star
11

zk-eth-rng

Secure randomness for Ethereum's execution layer via SNARKs and RANDAO.
Solidity
172
star
12

pyrevm

Python wrapper around https://github.com/bluealloy/revm/ using PyO3
Rust
167
star
13

mesc

MESC is a specification for how crypto tools configure their RPC endpoints
Rust
167
star
14

ultimate_evm_tracing_reference

a collection of EVM tracing information for easy reference
156
star
15

etop

like htop for Ethereum and other EVM chains
Rust
143
star
16

jitevm

convert evm bytecode to native machine code and go vroom - just an experiment, probably broken, reach out to [email protected] to contribute / productionize.
Rust
141
star
17

spice

Simple client for extracting data from the Dune Analytics API
Python
131
star
18

tbl

tbl is a swiss army knife for parquet read and write operations
Rust
112
star
19

reth-exex-examples

Collection of ExEx examples built on Reth
Rust
100
star
20

paradigm-ctf-infrastructure

Public infra related to hosting Paradigm CTF
Solidity
98
star
21

sinker

Synchronize Postgres to Elasticsearch
Python
63
star
22

local_reth

Run Reth+Prometheus+Grafana locally via docker-compose
Dockerfile
60
star
23

paradigm-ctf-2023

Solidity
59
star
24

stress4844

Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer. Main motivation: EIP4844blobs.
Rust
55
star
25

fig

Guidelines & best practices for developing Frames: https://www.figma.com/community/file/1367670879509913267/frame-interface-guidelines
52
star
26

paradigm-ctf-2022-teaser

https://rinkeby.etherscan.io/address/0xffb9205c84d0b209c215212a3cdfc50bf1cfb0e0#code
Solidity
40
star
27

op-rs

Rust
37
star
28

how-to-raise-the-gas-limit

Data & code accompanying Paradigm's How to Raise the Gas Limit post.
Jupyter Notebook
33
star
29

foundry-alphanet

Foundry tools for interfacing with Reth Alphanet's bleeding-edge EVM extensions.
Shell
29
star
30

humanizooor

16
star
31

phishing-list

A rapidly-updated list of live phishing domains for consumption by the eth-phishing-detect module
16
star
32

state_growth

Python
15
star
33

homebrew-brew

A homebrew tap
Ruby
12
star
34

.github

7
star
35

evm-inspectors

EVM Execution Hooks.
2
star
36

crypto_colors

Python
1
star