Skip to content

Commit 6bcdded

Browse files
images and script has been added
1 parent 0a4e852 commit 6bcdded

15 files changed

Lines changed: 271 additions & 4 deletions

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@
44
[submodule "lib/openzeppelin-contracts"]
55
path = lib/openzeppelin-contracts
66
url = https://github.com/OpenZeppelin/openzeppelin-contracts
7+
[submodule "lib/foundry-devops"]
8+
path = lib/foundry-devops
9+
url = https://github.com/ChainAccelOrg/foundry-devops

Makefile

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
-include .env
2+
3+
.PHONY: all test clean deploy fund help install snapshot format anvil zktest
4+
5+
DEFAULT_ANVIL_KEY := 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
6+
DEFAULT_ZKSYNC_LOCAL_KEY := 0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110
7+
8+
all: clean remove install update build
9+
10+
# Clean the repo
11+
clean :; forge clean
12+
13+
# Remove modules
14+
remove :; rm -rf .gitmodules && rm -rf .git/modules/* && rm -rf lib && touch .gitmodules && git add . && git commit -m "modules"
15+
16+
install :; forge install cyfrin/foundry-devops@0.2.2 --no-commit && forge install foundry-rs/forge-std@v1.8.2 --no-commit && forge install openzeppelin/openzeppelin-contracts@v5.0.2 --no-commit
17+
18+
# Update Dependencies
19+
update:; forge update
20+
21+
build:; forge build
22+
23+
test :; forge test
24+
25+
zktest :; foundryup-zksync && forge test --zksync && foundryup
26+
27+
snapshot :; forge snapshot
28+
29+
format :; forge fmt
30+
31+
anvil :; anvil -m 'test test test test test test test test test test test junk' --steps-tracing --block-time 1
32+
33+
NETWORK_ARGS := --rpc-url http://localhost:8545 --private-key $(DEFAULT_ANVIL_KEY) --broadcast
34+
35+
ifeq ($(findstring --network sepolia,$(ARGS)),--network sepolia)
36+
NETWORK_ARGS := --rpc-url $(SEPOLIA_RPC_URL) --private-key $(PRIVATE_KEY) --broadcast --verify --etherscan-api-key $(ETHERSCAN_API_KEY) -vvvv
37+
endif
38+
39+
deploy:
40+
@forge script script/DeployScript.s.sol:DeployBasicNft $(NETWORK_ARGS)
41+
42+
mint:
43+
@forge script script/Interaction.s.sol:MintBasicNft ${NETWORK_ARGS}
44+
45+

README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,47 @@ $ anvil --help
6565
$ cast --help
6666
```
6767
# NFT_COLLECTION
68+
69+
70+
71+
72+
73+
74+
data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdo
75+
dD0iMTAwIj4KICA8dGV4dCB4PSIwIiB5PSIxNSIgZmlsbD0iYmxhY2siPiBoaSEgeW91IGRlY29k
76+
ZWQgdGhpcyEgPC90ZXh0Pgo8L3N2Zz4=
77+
78+
79+
data:image/svg+xml;base64,
80+
PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgd2lkdGg9IjQwMCIgIGhlaWdodD0iNDAwIiB4bWxu
81+
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxjaXJjbGUgY3g9IjEwMCIgY3k9IjEw
82+
MCIgZmlsbD0ieWVsbG93IiByPSI3OCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIzIi8+
83+
CiAgPGcgY2xhc3M9ImV5ZXMiPgogICAgPGNpcmNsZSBjeD0iNzAiIGN5PSI4MiIgcj0iMTIiLz4K
84+
ICAgIDxjaXJjbGUgY3g9IjEyNyIgY3k9IjgyIiByPSIxMiIvPgogIDwvZz4KICA8cGF0aCBkPSJt
85+
MTM2LjgxIDExNi41M2MuNjkgMjYuMTctNjQuMTEgNDItODEuNTItLjczIiBzdHlsZT0iZmlsbDpu
86+
b25lOyBzdHJva2U6IGJsYWNrOyBzdHJva2Utd2lkdGg6IDM7Ii8+Cjwvc3ZnPg==
87+
88+
89+
When you use a command like base64 -i name.svg, you are turning a file into a long string of text. This is the "magic trick" that allows an image to live inside a smart contract.
90+
91+
sad emoji
92+
data:img/svg+xml;base64,
93+
PHN2ZyB3aWR0aD0iMTAyNHB4IiBoZWlnaHQ9IjEwMjRweCIgdmlld0JveD0iMCAwIDEwMjQgMTAy
94+
NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsPSIjMzMz
95+
IiBkPSJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0
96+
NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYu
97+
Ni0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0z
98+
NzIgMzcyeiIvPgogIDxwYXRoIGZpbGw9IiNFNkU2RTYiIGQ9Ik01MTIgMTQwYy0yMDUuNCAwLTM3
99+
MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42
100+
LTM3Mi0zNzItMzcyek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEg
101+
MCAwIDEtOTYgMHptMzc2IDI3MmgtNDguMWMtNC4yIDAtNy44LTMuMi04LjEtNy40QzYwNCA2MzYu
102+
MSA1NjIuNSA1OTcgNTEyIDU5N3MtOTIuMSAzOS4xLTk1LjggODguNmMtLjMgNC4yLTMuOSA3LjQt
103+
OC4xIDcuNEgzNjBhOCA4IDAgMCAxLTgtOC40YzQuNC04NC4zIDc0LjUtMTUxLjYgMTYwLTE1MS42
104+
czE1NS42IDY3LjMgMTYwIDE1MS42YTggOCAwIDAgMS04IDguNHptMjQtMjI0YTQ4LjAxIDQ4LjAx
105+
IDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnoiLz4KICA8cGF0aCBmaWxsPSIjMzMz
106+
IiBkPSJNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTIyNCAxMTJj
107+
LTg1LjUgMC0xNTUuNiA2Ny4zLTE2MCAxNTEuNmE4IDggMCAwIDAgOCA4LjRoNDguMWM0LjIgMCA3
108+
LjgtMy4yIDguMS03LjQgMy43LTQ5LjUgNDUuMy04OC42IDk1LjgtODguNnM5MiAzOS4xIDk1Ljgg
109+
ODguNmMuMyA0LjIgMy45IDcuNCA4LjEgNy40SDY2NGE4IDggMCAwIDAgOC04LjRDNjY3LjYgNjAw
110+
LjMgNTk3LjUgNTMzIDUxMiA1MzN6bTEyOC0xMTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEg
111+
MC05NiAweiIvPgo8L3N2Zz4=

foundry.lock

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
"rev": "7117c90c8cf6c68e5acce4f09a6b24715cea4de6"
66
}
77
},
8+
"lib/foundry-devops": {
9+
"tag": {
10+
"name": "0.4.0",
11+
"rev": "efff097a87e70c3d15661c9f2a2daeae0b33d5d5"
12+
}
13+
},
814
"lib/openzeppelin-contracts": {
915
"tag": {
1016
"name": "v5.5.0",

foundry.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@
22
src = "src"
33
out = "out"
44
libs = ["lib"]
5-
remappings = ['@openzeppelin/contracts=lib/openzeppelin-contracts/contracts/']
5+
66
# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
7+
remappings = ['@openzeppelin/contracts=lib/openzeppelin-contracts/contracts/']
8+

img/example.svg

Lines changed: 3 additions & 0 deletions
Loading

img/happy.svg

Lines changed: 8 additions & 0 deletions
Loading

img/sad.svg

Lines changed: 5 additions & 0 deletions
Loading

lib/foundry-devops

Submodule foundry-devops added at efff097

script/DeployScript.s.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
88
contract DeployBasicNft is Script {
99
function run() external returns (BasicNft) {
1010
vm.startBroadcast();
11-
BasicNft basicNft = new BasicNft();
11+
BasicNft basicNft = new BasicNft();// this new BasicNft deploys the nft contract
1212
vm.stopBroadcast();
1313
return basicNft;
1414
}

0 commit comments

Comments
 (0)