Giter VIP home page Giter VIP logo

rivet's Introduction

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 currently a work-in-progress prototype, and aimed to be contributor first & friendly. If you would like to contribute, check out the Contributing Guide and good first issues.

screenshots

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 Node.js and pnpm

You need to install Node.js v18 or higher and pnpm v8 or higher.

You can run the following commands in your terminal to check your local Node.js and pnpm versions:

node -v
pnpm -v

If the versions are not correct or you don't have Node.js or pnpm 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:

pnpm install

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:

pnpm dev 

This will run a script that will build the Web Extension and start a dev server for the Test Dapp, it will also open the Test Dapp in a new browser tab.

5. Installing the Web Extension

Once you have your dev server running, you can install the Web Extension in your browser. To do so, follow these steps:

  1. Open your browser's Extensions page
  2. Enable "Developer mode" in the top right corner
  3. Click "Load unpacked" in the top left corner
  4. Select the dist/dev folder in Rivet's root directory
  5. You're good to go! Don't forget to pin the Extension to your browser's toolbar for easy access. ๐ŸŽ‰

Contributing

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

Authors

License

MIT License

rivet's People

Contributors

achalvs avatar ardislu avatar jxom avatar kolber avatar snkashis avatar tmm avatar

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.