chore: forge init

This commit is contained in:
JulesCrown 2024-03-12 12:01:48 +01:00
parent 12885bed86
commit 25538325c7
3 changed files with 63 additions and 15 deletions

View file

@ -1,18 +1,66 @@
## Build
## Foundry
```
forge build
**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.**
Foundry consists of:
- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools).
- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network.
- **Chisel**: Fast, utilitarian, and verbose solidity REPL.
## Documentation
https://book.getfoundry.sh/
## Usage
### Build
```shell
$ forge build
```
## Test
### Test
```
forge test
```shell
$ forge test
```
## Deploy
### Format
```shell
$ forge fmt
```
source .env
forge script script/Deploy.sol:GoerliScript --broadcast --verify --rpc-url ${GOERLI_RPC_URL}
### Gas Snapshots
```shell
$ forge snapshot
```
### Anvil
```shell
$ anvil
```
### Deploy
```shell
$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>
```
### Cast
```shell
$ cast <subcommand>
```
### Help
```shell
$ forge --help
$ anvil --help
$ cast --help
```

View file

@ -1,7 +1,7 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import "forge-std/Script.sol";
import {Script, console} from "forge-std/Script.sol";
contract CounterScript is Script {
function setUp() public {}

View file

@ -1,8 +1,8 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import "forge-std/Test.sol";
import "../src/Counter.sol";
import {Test, console} from "forge-std/Test.sol";
import {Counter} from "../src/Counter.sol";
contract CounterTest is Test {
Counter public counter;
@ -12,12 +12,12 @@ contract CounterTest is Test {
counter.setNumber(0);
}
function testIncrement() public {
function test_Increment() public {
counter.increment();
assertEq(counter.number(), 1);
}
function testSetNumber(uint256 x) public {
function testFuzz_SetNumber(uint256 x) public {
counter.setNumber(x);
assertEq(counter.number(), x);
}