/sc-workbench

Primary LanguageTypeScriptMIT LicenseMIT

ABI Ninja

Interact with smart contracts on any EVM chain. ABI Ninja provides an intuitive frontend for contracts from most popular EVM networks, currently supporting:

  • Verified contracts. Pulls the code from AnyABI and Etherscan API as a fallback option.
  • Unverified contracts. Two different options are available:
    • Decompile using heimdall-rs (experimental).
    • Provide the ABI and the contract address.
  • Proxy contracts. Autodetects most popular proxy patterns, and allows to read and write as proxy.

ABI Ninja (v2) is built with ๐Ÿ— Scaffold-ETH 2.

Homepage Unverified Contract Options
ABINinja - Index ABINinja - Unverified Contract

Friendly UI even for the most complex data structures:

ABINinja - Contract UI

๐Ÿ„โ€โ™‚๏ธ Development Quick Start

Before you begin, you need to install the following tools:

  1. Clone this repo & install dependencies
git clone https://github.com/BuidlGuidl/abi.ninja.git
cd abi.ninja
yarn install
  1. Start the frontend
yarn start

Visit your local instance of ABI Ninja at: http://localhost:3000.

๐Ÿงช Testing

ABI Ninja uses Cypress for end-to-end testing. Our test suite covers user flows and ensures the application works correctly across different networks and contract types. The test suite will automatically run on pull requests.

Running Tests

To run the Cypress tests:

  1. Ensure your development server is running:
yarn start
  1. In a new terminal window, run the Cypress tests:
yarn cypress:open

This will open the Cypress Test Runner, where you can run individual tests or the entire suite.

  1. For headless testing, use:
yarn cypress:run

Test Coverage

Our tests cover the following key areas:

  • Loading and interacting with verified contracts on various networks
  • Handling unverified contracts and manual ABI input
  • Detecting and interacting with proxy contracts
  • Network switching and custom network addition

Writing New Tests

When adding new features or modifying existing ones, please update or add corresponding tests. Test files are located in the cypress/e2e directory.

For more information on writing Cypress tests, refer to the Cypress Documentation.

Contributing to ABI Ninja

We welcome contributions to ABI Ninja!

Please see CONTRIBUTING.MD for more information and guidelines for contributing to ABI Ninja.