chore: run "forge fmt" on every commit
docs: update README with latest setup
This commit is contained in:
parent
25db8b8c4c
commit
c333dd8213
|
@ -1,2 +1,4 @@
|
||||||
"*.{json,md,yml}":
|
"*.{json,md,yml}":
|
||||||
- prettier --write
|
- prettier --write
|
||||||
|
"*.sol":
|
||||||
|
- forge fmt
|
||||||
|
|
18
README.md
18
README.md
|
@ -13,12 +13,13 @@ A Foundry-based template for developing Solidity smart contracts, with sensible
|
||||||
|
|
||||||
## What's Inside
|
## What's Inside
|
||||||
|
|
||||||
- [Forge](https://github.com/foundry-rs/foundry/blob/master/forge): compile, test, fuzz, debug and deploy smart
|
- [Forge](https://github.com/foundry-rs/foundry/blob/master/forge): compile, test, fuzz, format, and deploy smart
|
||||||
contracts
|
contracts
|
||||||
- [PRBTest](https://github.com/PaulRBerg/prb-test): modern collection of testing assertions and logging utilities
|
- [PRBTest](https://github.com/PaulRBerg/prb-test): modern collection of testing assertions and logging utilities
|
||||||
- [Forge Std](https://github.com/foundry-rs/forge-std): collection of helpful contracts and cheatcodes for testing
|
- [Forge Std](https://github.com/foundry-rs/forge-std): collection of helpful contracts and cheatcodes for testing
|
||||||
- [Solhint](https://github.com/protofire/solhint): code linter
|
- [Solhint](https://github.com/protofire/solhint): linter for Solidity code
|
||||||
- [Prettier Plugin Solidity](https://github.com/prettier-solidity/prettier-plugin-solidity): code formatter
|
- [Prettier Plugin Solidity](https://github.com/prettier-solidity/prettier-plugin-solidity): code formatter for
|
||||||
|
non-Solidity files
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
|
@ -30,7 +31,7 @@ Or, if you prefer to install the template manually:
|
||||||
```sh
|
```sh
|
||||||
forge init my-project --template https://github.com/PaulRBerg/foundry-template
|
forge init my-project --template https://github.com/PaulRBerg/foundry-template
|
||||||
cd my-project
|
cd my-project
|
||||||
yarn install # install solhint and prettier and other goodies
|
yarn install # install Solhint, Prettier, and other tools
|
||||||
```
|
```
|
||||||
|
|
||||||
If this is your first time with Foundry, check out the
|
If this is your first time with Foundry, check out the
|
||||||
|
@ -39,7 +40,7 @@ If this is your first time with Foundry, check out the
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
This template builds upon the frameworks and libraries mentioned above, so for details about their specific features,
|
This template builds upon the frameworks and libraries mentioned above, so for details about their specific features,
|
||||||
please consult their respective documentations.
|
please consult their respective documentation.
|
||||||
|
|
||||||
For example, for Foundry, you can refer to the [Foundry Book](https://book.getfoundry.sh/). You might be in particular
|
For example, for Foundry, you can refer to the [Foundry Book](https://book.getfoundry.sh/). You might be in particular
|
||||||
interested in reading the [Writing Tests](https://book.getfoundry.sh/forge/writing-tests.html) guide.
|
interested in reading the [Writing Tests](https://book.getfoundry.sh/forge/writing-tests.html) guide.
|
||||||
|
@ -52,6 +53,7 @@ This template comes with sensible default configurations in the following files:
|
||||||
├── .commitlintrc.yml
|
├── .commitlintrc.yml
|
||||||
├── .editorconfig
|
├── .editorconfig
|
||||||
├── .gitignore
|
├── .gitignore
|
||||||
|
├── .lintstagedrc.yml
|
||||||
├── .prettierignore
|
├── .prettierignore
|
||||||
├── .prettierrc.yml
|
├── .prettierrc.yml
|
||||||
├── .solhintignore
|
├── .solhintignore
|
||||||
|
@ -85,8 +87,8 @@ automated tools on top of.
|
||||||
### Git Hooks
|
### Git Hooks
|
||||||
|
|
||||||
This template uses [Husky](https://github.com/typicode/husky) to run automated checks on commit messages, and
|
This template uses [Husky](https://github.com/typicode/husky) to run automated checks on commit messages, and
|
||||||
[Lint Staged](https://github.com/okonet/lint-staged) to automatically format the code with Prettier when making a git
|
[Lint Staged](https://github.com/okonet/lint-staged) to automatically format the code with Forge and Prettier when
|
||||||
commit.
|
making a git commit.
|
||||||
|
|
||||||
## Writing Tests
|
## Writing Tests
|
||||||
|
|
||||||
|
@ -94,7 +96,7 @@ To write a new test contract, you start by importing [PRBTest](https://github.co
|
||||||
it in your test contract. PRBTest comes with a pre-instantiated [cheatcodes](https://book.getfoundry.sh/cheatcodes/)
|
it in your test contract. PRBTest comes with a pre-instantiated [cheatcodes](https://book.getfoundry.sh/cheatcodes/)
|
||||||
environment accessible via the `vm` property. You can also use
|
environment accessible via the `vm` property. You can also use
|
||||||
[console.log](https://book.getfoundry.sh/faq?highlight=console.log#how-do-i-use-consolelog), whose logs you can see in
|
[console.log](https://book.getfoundry.sh/faq?highlight=console.log#how-do-i-use-consolelog), whose logs you can see in
|
||||||
the terminal output by adding the `-vvvv` flag.
|
the terminal output by adding the `-vvv` flag.
|
||||||
|
|
||||||
This template comes with an example test contract [Foo.t.sol](./test/Foo.t.sol).
|
This template comes with an example test contract [Foo.t.sol](./test/Foo.t.sol).
|
||||||
|
|
||||||
|
|
|
@ -34,5 +34,5 @@
|
||||||
|
|
||||||
[rpc_endpoints]
|
[rpc_endpoints]
|
||||||
ethereum = "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
|
ethereum = "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
|
||||||
localhost = "http://localhost:8545"
|
|
||||||
goerli = "https://goerli.infura.io/v3/${INFURA_API_KEY}"
|
goerli = "https://goerli.infura.io/v3/${INFURA_API_KEY}"
|
||||||
|
localhost = "http://localhost:8545"
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rimraf cache out",
|
"clean": "rimraf cache out",
|
||||||
"lint": "yarn lint:sol && yarn prettier:check",
|
"lint": "yarn lint:sol && yarn prettier:check",
|
||||||
"lint:sol": "forge fmt --check && yarn solhint \"{src,test}/**/*.sol\"",
|
"lint:sol": "forge fmt --check && yarn solhint \"{script,src,test}/**/*.sol\"",
|
||||||
"postinstall": "husky install",
|
"postinstall": "husky install",
|
||||||
"prettier:check": "prettier --check \"**/*.{json,md,yml}\"",
|
"prettier:check": "prettier --check \"**/*.{json,md,yml}\"",
|
||||||
"prettier:write": "prettier --write \"**/*.{json,md,yml}\""
|
"prettier:write": "prettier --write \"**/*.{json,md,yml}\""
|
||||||
|
|
Loading…
Reference in New Issue