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.
curl -L https://foundry.paradigm.xyz | bash
$ forge build
$ forge test
$ forge fmt
$ forge snapshot
$ anvil
$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>
$ cast <subcommand>
$ forge --help
$ anvil --help
$ cast --help
$ forge install OpenZeppelin/openzeppelin-contracts-upgradeable --no-commit
$ forge install OpenZeppelin/openzeppelin-contracts --no-commit
The --no-commit flag prevents the following error:
Error:
The target directory is a part of or on its own an already initialized git repository,
and it requires clean working and staging areas, including no untracked files.
Check the current git repository's status with `git status`.
Then, you can track files with `git add ...` and then commit them with `git commit`,
ignore them in the `.gitignore` file, or run this command again with the `--no-commit` flag.
If none of the previous steps worked, please open an issue at:
https://github.com/foundry-rs/foundry/issues/new/choose
@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
"solidity.formatter": "prettier",
"workbench.sideBar.location": "right",
# "solidity.compileUsingRemoteVersion": "v0.8.20+commit.a1b79de6",
"[solidity]": {
"editor.defaultFormatter": "JuanBlanco.solidity",
"editor.formatOnSave": true
}
0xdAfAE67401db66dbe591d2A400e987416133Df6F
$ forge script script/DeployNFTMarketplace.s.sol:DeployNFTMarketplace --rpc-url sepolia --broadcast