Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/allwin199/proxies-foundry
Example of Smart contract upgrades using UUPS.
https://github.com/allwin199/proxies-foundry
ethereum makefile openzeppelin-contracts proxies smart-contracts solidity
Last synced: 6 days ago
JSON representation
Example of Smart contract upgrades using UUPS.
- Host: GitHub
- URL: https://github.com/allwin199/proxies-foundry
- Owner: allwin199
- Created: 2024-01-25T06:30:02.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-09T14:13:46.000Z (9 months ago)
- Last Synced: 2024-05-29T17:23:49.454Z (6 months ago)
- Topics: ethereum, makefile, openzeppelin-contracts, proxies, smart-contracts, solidity
- Language: Solidity
- Homepage: https://sepolia.etherscan.io/address/0x5b7cd21e8cb765a295fa77dd97ab0e4e430bce22
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# UUPS
# About
This project contains an example of upgradeable smart contracts using UUPS.
# Getting Started
## Quickstart
```
git clone https://github.com/allwin199/proxies-foundry.git
cd proxies-foundry
forge build
```# Usage
## Start a local node
```
make anvil
```## Deploy
This will default to your local node. You need to have it running in another terminal in order for it to deploy.
```
make deploy
```## Deploy - Other Network
[See below](#deployment-to-a-testnet-or-mainnet)
## Testing
```
forge test
```### Test Coverage
```
forge coverage
```and for coverage based testing:
```
forge coverage --report debug
```# Deployment to a testnet or mainnet
1. Setup environment variables
- You'll want to set your `SEPOLIA_RPC_URL` in environment variables. You can add them to a `.env` file, similar to what you see in `.env.example`.
- `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)
2. Use wallet options to Encrypt Private Keys
- [Private Key Encryption](https://github.com/allwin199/foundry-fundamendals/blob/main/DeploymentDetails.md)
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 testnet ETH. You should see the ETH show up in your metamask.
2. Deploy
```
make deployToSepolia
```## Scripts
To change the Implementation contract from BOX1 to BOX2
```
make upgradeBoxOnSepolia
```or
```
make upgradeBoxOnAnvil
```## Estimate gas
You can estimate how much gas things cost by running:
```
forge snapshot
```And you'll see an output file called `.gas-snapshot`
# Formatting
To run code formatting:
```
forge fmt
```# Thank you!