Home

Awesome

Ethereum Contracts

This project is an attempt to create a more efficient implementation of the common interface IERC721 compared to Open Zeppelin's implementation.

What's Inside

Installation

Foundry typically uses git submodules to manage dependencies, but this template uses Node.js packages because submodules don't scale.

This is how to install dependencies:

  1. Install the dependency using your preferred package manager, e.g. yarn install dependency-name
    • Use this syntax to install from GitHub: yarn install github:username/repo-name
  2. Add a remapping for the dependency in remappings.txt, e.g. dependency-name=node_modules/dependency-name

Usage

Build/Compile

Build the contracts:

Clean

Delete the build artifacts and cache directories:

Coverage

Get a test coverage report:

Gas Report

Get a gas report:

Lint

Format the contracts:

Test

Run all tests:

Run all tests with verbose output:

Run all unit tests (test name starts with "test_unit_"):

Run all fuzz tests (test name starts with "test_fuzz_"):

Run all edge tests (test name starts with "test_edge_"):