A simple decentralized funding/crowdfunding smart contract built with Foundry.
Users can fund the contract with ETH, and the owner can withdraw the total balance.
🧪 Built for learning and testing DeFi project structures using Foundry + Solidity.
- ✅ Fund the contract with ETH
- ✅ Keep track of all funders
- ✅ Owner-only withdraw function
- ✅ Price conversion using Chainlink price feed
- ✅ Integration and unit tests with Foundry
- ✅ Deployment to local Anvil and Sepolia testnet
- Language: Solidity
^0.8.x - Framework: Foundry (Forge, Cast, Anvil)
- Oracle: Chainlink Price Feed
- Network: Sepolia Testnet / Local Anvil
- Tools: dotenv, makefile, scripts
foundry-fund/ │ ├── src/ # Solidity contracts │ └── FundMe.sol │ ├── script/ # Deployment scripts │ └── DeployFundMe.s.sol │ ├── test/ # Unit & integration tests │ └── FundMeTest.t.sol │ ├── lib/ # Dependencies (e.g., forge-std, chainlink) │ ├── .env # Environment variables (private key, RPC URL) ├── foundry.toml # Foundry configuration ├── Makefile # Automation commands ├── README.md # Documentation
git clone https://github.com/your-username/foundry-fund.git
cd foundry-fund
##Install Dependencies
forge install foundry-rs/forge-std
forge install smartcontractkit/chainlink-brownie-contracts
## Bash Command
forge test
forge test --match-test testFundFunction
forge test -vvvv
## DEPLOYMENT
anvil
forge script script/DeployFundMe.s.sol:DeployFundMe \
--rpc-url http://127.0.0.1:8545 \
--private-key <ANVIL_PRIVATE_KEY> \
--broadcast
Check out my [Profile](https://x.com/JoeObotu?t=mje_aZK3w1317WGWg_ueWg&s=09)!