https://github.com/allwin199/foundry-fund-me-v2
Foundry Fund Me. Users can fund a project with their ETH.
https://github.com/allwin199/foundry-fund-me-v2
ethereum foundry makefile smart-contracts solidity
Last synced: 3 months ago
JSON representation
Foundry Fund Me. Users can fund a project with their ETH.
- Host: GitHub
- URL: https://github.com/allwin199/foundry-fund-me-v2
- Owner: allwin199
- Created: 2023-07-24T07:15:58.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-27T16:54:14.000Z (almost 2 years ago)
- Last Synced: 2025-01-13T22:19:34.019Z (5 months ago)
- Topics: ethereum, foundry, makefile, smart-contracts, solidity
- Language: Solidity
- Homepage:
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Foundry Fund Me
## Quickstart
```
git clone https://github.com/worksofallwin/foundry-fund-me.git
cd foundry-fund-me
forge build
```# Usage
Deploy:
```
forge script scripts/DeployFundMe.s.sol
```## Testing
```
forge test
```or
```
// Only run test functions matching the specified regex pattern.forge test --match-test testFunctionName
```or
```
forge test --fork-url $SEPOLIA_RPC_URL
```### Test Coverage
```
forge coverage
```# Deployment to a testnet or mainnet
1. Setup environment variables
You'll want to set your `SEPOLIA_RPC_URL` and `PRIVATE_KEY` as environment variables. You can add them to a `.env` file.
- `PRIVATE_KEY`: The private key of your account (like from [metamask](https://metamask.io/)). **NOTE:** FOR DEVELOPMENT, PLEASE USE A KEY THAT DOESN'T HAVE ANY REAL FUNDS ASSOCIATED WITH IT.
- You can [learn how to export it here](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key).
- `SEPOLIA_RPC_URL`: This is url of the sepolia testnet node you're working with. You can get setup with one for free from [Alchemy](https://alchemy.com/?a=673c802981)Optionally, add your `ETHERSCAN_API_KEY` if you want to verify your contract on [Etherscan](https://etherscan.io/).
1. Get testnet ETH
Head over to [faucets.chain.link](https://faucets.chain.link/) and get some tesnet ETH. You should see the ETH show up in your metamask.
3. Deploy
```
forge script script/DeployFundMe.s.sol --rpc-url $SEPOLIA_RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY
```## Scripts
After deploy to a testnet or local net, you can run the scripts.
Using cast deployed locally example:
```
cast send "fund()" --value 0.1ether --private-key
```or
```
forge script script/FundFundMe.s.sol --rpc-url sepolia --private-key $PRIVATE_KEY --broadcast
```### Withdraw
```
cast send "withdraw()" --private-key
```## Estimate gas
You can estimate how much gas things cost by running:
```
forge snapshot
```And you'll see and output file called `.gas-snapshot`
# Formatting
To run code formatting:
```
forge fmt
```# Thank you!