Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/allwin199/nfts-foundry
This Repo contains NFT hosted 100% on chain and IPFS hosted NFT.
https://github.com/allwin199/nfts-foundry
ethereum foundry ipfs nfts smart-contracts
Last synced: 17 days ago
JSON representation
This Repo contains NFT hosted 100% on chain and IPFS hosted NFT.
- Host: GitHub
- URL: https://github.com/allwin199/nfts-foundry
- Owner: allwin199
- Created: 2024-01-14T14:36:30.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-01-16T12:54:27.000Z (10 months ago)
- Last Synced: 2024-11-02T19:03:05.708Z (17 days ago)
- Topics: ethereum, foundry, ipfs, nfts, smart-contracts
- Language: Solidity
- Homepage: https://sepolia.etherscan.io/address/0xe3927db7A8bd41A024Dd365e0D36F80Bbd5ddEB3#code
- Size: 33.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Foundry NFT
This Repo contains 2 different kinds of NFTs.
1. An IPFS Hosted NFT
2. An SVG NFT (Hosted 100% on-chain)
# Getting Started
## Quickstart
```sh
git clone https://github.com/allwin199/foundry-Nfts-v3.git
cd foundry-Nfts-v3
forge build
```# Usage
## Start a local node
```sh
make anvil
```## Deploy to Anvil
### IPFS hosted NFT
This will default to your local node. You need to have it running in another terminal in order for it to deploy.
```sh
make deployBasicNftToAnvil
```- To Mint an NFT
```sh
make mintBasicNftOnAnvil
```### On Chain NFT
```sh
make deployMoodNftToAnvil
```- To Mint an NFT
```sh
make mintMoodNftOnAnvil
```# 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
### IPFS hosted NFT
```sh
make deployBasicNftToSepolia
```- To Interact with it
```sh
make mintBasicNftOnAnvil
```### On Chain NFT
```sh
make deployMoodNftToSepolia
```- To Interact with it
```sh
make mintMoodNftOnSepolia
```---
## Testing
1. Unit
2. Integration
3. Forked```sh
forge test
```or
```sh
forge test --fork-url $SEPOLIA_RPC_URL
```### Test Coverage
```sh
forge coverage
``````sh
forge coverage --report debug > coverage.txt
```- To generate lcov report
```sh
make generateTestReport
```## Estimate gas
You can estimate how much gas things cost by running:
```sh
forge snapshot
```And you'll see an output file called `.gas-snapshot`
# Formatting
To run code formatting:
```sh
forge fmt
```# Thank you!