First, thanks for your interest in contributing to Building-secure-contracts! We welcome and appreciate all contributions, including bug reports, feature suggestions, tutorials/blog posts, and code improvements.
If you're unsure where to start, we recommend our good first issue
and help wanted
issue labels.
Bug reports and feature suggestions can be submitted to our issue tracker. For bug reports, attaching the contract that caused the bug will help us in debugging and resolving the issue quickly. If you find a security vulnerability, do not open an issue; email [email protected] instead.
Questions can be submitted to the issue tracker, but you may get a faster response if you ask in our chat room (in the #ethereum channel).
building-secure-contracts uses the pull request contribution model. Please make an account on Github, fork this repo, and submit code contributions via pull request. For more documentation, look here.
Some pull request guidelines:
- Minimize irrelevant changes (formatting, whitespace, etc) to code that would otherwise not be touched by this patch. Save formatting or style corrections for a separate pull request that does not make any semantic changes.
- When possible, large changes should be split up into smaller focused pull requests.
- Fill out the pull request description with a summary of what your patch does, key changes that have been made, and any further points of discussion, if applicable.
- Title your pull request with a brief description of what it's changing. "Fixes #123" is a good comment to add to the description, but makes for an unclear title on its own.
Below is a rough outline of building-secure-contracts's structure:
.
├── development-guidelnes # High-level best-practices for all smart contracts
├── learn_evm # EVM technical knowledge
├── not-so-smart-contracts # Examples of smart contract common issues. Each issue contains a description, an example and recommendations
├── program-analysis # How to use automated tools to secure contracts
├── ressources # Various online resources
└── ...
We run markdown-link-check to ensure all the markdown links are correct.
To install markdown-link-check
:
$ npm install -g markdown-link-check
To run markdown-link-check
:
$ find . -name \*.md -print0 | xargs -0 -n1 markdown-link-check
We use mdbook
to generate secure-contracts.com.
To run it locally:
$ cargo install --git https://github.com/montyly/mdBook.git mdbook
$ mdbook build
Note: we use https://github.com/montyly/mdBook.git, which contains rust-lang/mdBook#1584.