This repository serves as a comprehensive foundation for smart contract projects, streamlining the development process with a focus on best practices, security, and efficiency.
- π Introduction
- π Features
- π Getting Started
- π§ Essential Scripts
- π Security Audits
- π Biconomy Champions League
- π Documentation and Resources
- π License
- π€ Connect with Biconomy
- Smart Contract Template Base: A robust foundation for future smart contract projects.
- Hardhat & Foundry Support: Equipped with both Hardhat and Foundry tools and an adapted folder structure for seamless development.
- Best Practices: Adheres to industry best practices in smart contract programming to ensure code quality and security.
- Continuous Integration & Deployment: Utilizes GitHub Actions for automated testing and deployment, ensuring code reliability.
- Strict Linting: Implements Solhint based on the Solidity style guide, enhancing code quality and consistency.
- Comprehensive Testing: Includes a wide range of tests (unit, fuzz, fork) for both Foundry and Hardhat environments.
- Environment Configuration: Comes with
.env.example
for easy setup of API keys and environmental variables. - Code Formatting: Uses Prettier to maintain a consistent code style across the project.
- Configurations for Foundry & Hardhat: Provides essential settings and scripts for building, testing, and deployment, tailored for both development environments.
To kickstart your smart contract development with this template, follow these steps:
- Node.js (v18.x or later)
- Yarn (or npm)
- Foundry (Refer to Foundry installation instructions)
- Clone the repository:
git clone https://github.com/bcnmy/sc-template.git
cd sc-template
- Install dependencies:
yarn install
- Setup environment variables:
Copy .env.example
to .env
and fill in your details.
Execute key operations for Foundry and Hardhat with these scripts. Append :forge
or :hardhat
to run them in the respective environment.
yarn build
Compiles contracts for both Foundry and Hardhat.
yarn test
Carries out tests to verify contract functionality.
yarn test:gas
Creates detailed reports for test coverage.
yarn coverage
Creates detailed reports for test coverage.
yarn docs
Generate documentation from NatSpec comments.
yarn deploy
Deploys contracts onto the blockchain network.
yarn lint
Checks code for style and potential errors.
yarn lint:fix
Automatically fixes linting problems found.
yarn check
To generate reports of the storage layout for potential upgrades safety using hardhat-storage-layout
.
π Add :forge
or :hardhat
to any script above to target only Foundry or Hardhat environment, respectively.
Auditor | Date | Final Report Link |
---|---|---|
Firm Name | DD-MM-YYYY | View Report |
Firm Name | DD-MM-YYYY | View Report |
Firm Name | DD-MM-YYYY | View Report |
Welcome to the Champions League, a place where your contributions to Biconomy are celebrated and immortalized in our Hall of Fame. This elite group showcases individuals who have significantly advanced our mission, from enhancing code efficiency to strengthening security, and enriching our documentation.
π Contributor | π‘οΈ Domain |
---|---|
@user1 | Code Optimization |
@user2 | Security |
@user3 | Documentation |
... | ... |
Your journey to becoming a champion can start in any domain:
- Code Wizards: Dive into our Gas Optimization efforts.
- Security Guardians: Enhance our safety following the Security Guidelines.
- Documentation Scribes: Elevate our knowledge base with your contributions.
The Champions League is not just a recognition, it's a testament to the impactful work done by our community. Whether you're optimizing gas usage or securing our contracts, your contributions help shape the future of Biconomy.
To Join: Leave a lasting impact in your chosen area. Our Hall of Fame is regularly updated to honor our most dedicated contributors.
Let's build a legacy together, championing innovation and excellence in the blockchain space.
For a comprehensive understanding of our project and to contribute effectively, please refer to the following resources:
- Contributing Guidelines: Learn how to contribute to our project, from code contributions to documentation improvements.
- Code of Conduct: Our commitment to fostering an open and welcoming environment.
- Security Policy: Guidelines for reporting security vulnerabilities.
- Gas Optimization Program: Contribute towards optimizing gas efficiency of our smart contracts.
- Changelog: Stay updated with the changes and versions.
This project is licensed under the MIT License. See the LICENSE file for details.