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.
$ 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 --helpforge install transmissions11/solmate
ENV VARS
$RPC_URL $CONTRACT_ADDRESS = http://127.0.0.1:8545 (Anvil - localnet)
$CONTRACT = deployed contract address
$OWNER = deployer
$PRIVATE_KEY = owner private keyTo create the contract:
forge create NFT --rpc-url=$RPC_URL --private-key=$PRIVATE_KEY --constructor-args "MyNFT" "MNFT"Contract address 0x5fbdb2315678afecb367f032d93f642f64180aa3 Deployer (OWNER) 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
To Mint NTF using already deployed contract:
cast send --rpc-url=$RPC_URL $CONTRACT_ADDRESS "mintTo(address)" --private-key=$PRIVATE_KEYcast call --rpc-url=$RPC_URL --private-key=$PRIVATE_KEY $CONTRACT_ADDRESS "ownerOf(uint256)" 1