Skip to content

Commit ecc2a31

Browse files
committed
Merge branch 'main' of https://github.com/Markkos89/academy into feat/t3-siwe
2 parents 8d4dced + 68db246 commit ecc2a31

File tree

30 files changed

+1093
-331
lines changed

30 files changed

+1093
-331
lines changed

src/pages/lessons/projects/2.mdx

Lines changed: 273 additions & 209 deletions
Large diffs are not rendered by default.

src/pages/lessons/projects/3.mdx

Lines changed: 209 additions & 113 deletions
Large diffs are not rendered by default.

src/utils/questions/lesson-2/1-intro/Q1.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"question": "Choose what NFTs can do? Multiple answers possible.",
2+
"question": "What can NFTs do? Multiple answers possible.",
33
"options": [
44
{
55
"answer": "Give access to a DAO",
@@ -13,11 +13,11 @@
1313
"correct": true
1414
},
1515
{
16-
"answer": "Point to storage of an album",
16+
"answer": "Point to the storage of an album",
1717
"correct": true
1818
},
1919
{
20-
"answer": "Replicate one NFT with another"
20+
"answer": "Be spoofed by another contract"
2121
}
2222
]
2323
}

src/utils/questions/lesson-2/1-intro/Q2.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"question": "What is Hardhat? ",
2+
"question": "What is Hardhat?",
33
"options": [
44
{
5-
"answer": "A set of tools that includes a local mini blockchain that can run on your machine",
5+
"answer": "A set of tools that includes a local test blockchain that can run on your machine",
66
"correct": true
77
},
88
{

src/utils/questions/lesson-2/1-intro/Q3.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"question": "In Solidity, what does the ^ symbol represent when specifying the compiler version?",
2+
"question": "In Solidity, what does the ^ (caret) symbol represent when specifying the compiler version?",
33
"options": [
44
{
55
"answer": "It denotes an exclusive compiler version"

src/utils/questions/lesson-2/1-intro/Q4.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"question": "Which address does the msg.sender variable represent in Solidity?",
2+
"question": "Which address does the `msg.sender` variable represent in Solidity?",
33
"options": [
44
{
55
"answer": "The contract owner"

src/utils/questions/lesson-2/1-intro/Q5.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2-
"question": "What is npm? ",
2+
"question": "What is npm?",
33
"options": [
44
{
55
"answer": "A Node.js module that provides a blockchain for running smart contracts"
66
},
77
{
8-
"answer": "A package manager from Node.js ",
8+
"answer": "A package manager for Node.js ",
99
"correct": true
1010
},
1111
{
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
Here is the super quiz editor that our very own @Chiin created!
2+
3+
https://quiz-editor.vercel.app/
4+
5+
Why not check it out to create your questions and quizzes?
6+
7+
See /quizzes/template-quiz.json on what the syntax for a full quiz looks like.....or just use the app to create one and see for yourself
8+
9+
A single question with ONE correct answer looks like this and the app will give you the following code. You can copy your own manually from the app:
10+
11+
{
12+
"question": "Apart from a user wallet, what else uses a blockchain (Ethereum) address?",
13+
"options": [
14+
{
15+
"answer": "Transactions"
16+
},
17+
{
18+
"answer": "Smart contracts",
19+
"correct": true
20+
},
21+
{
22+
"answer": "NFTs"
23+
}
24+
]
25+
}
26+
27+
TWO correct answers looks like this and you will need to add ", correct": true' yourself if you want multiple correct answers:
28+
29+
{
30+
"question": "Apart from a user wallet, what else uses a blockchain (Ethereum) address?",
31+
"options": [
32+
{
33+
"answer": "Transactions"
34+
},
35+
{
36+
"answer": "Smart contracts",
37+
"correct": true
38+
},
39+
{
40+
"answer": "NFTs",
41+
"correct": true
42+
}
43+
]
44+
}

src/utils/quizzes/quiz-lesson-3.json

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
{
2+
"title": "Quiz: Lesson 3",
3+
"questions": [
4+
{
5+
"question": "As well as console, which of the following are also known as a CLI?",
6+
"options": [
7+
{
8+
"answer": "a terminal "
9+
},
10+
{
11+
"answer": "a command line"
12+
},
13+
{
14+
"answer": "a command prompt"
15+
},
16+
{
17+
"answer": "all of them",
18+
"correct": true
19+
}
20+
]
21+
},
22+
{
23+
"question": "What has Open Zeppelin created?",
24+
"options": [
25+
{
26+
"answer": "A No-Code smart contracts solution called Kashmir"
27+
},
28+
{
29+
"answer": "A library of open-source smart contracts, widely tested and audited, to inherit by other developers",
30+
"correct": true
31+
},
32+
{
33+
"answer": "Stairway: an NFT marketplace called for everyone to trade their assets"
34+
},
35+
{
36+
"answer": "Led by a web3 founder, they created a lot of hard rock anthems"
37+
}
38+
]
39+
},
40+
{
41+
"question": "What line should we use to declare a smart contract called Animals in solidity?",
42+
"options": [
43+
{
44+
"answer": "pragma solidity contract Animals {"
45+
},
46+
{
47+
"answer": "smart contract Animals {"
48+
},
49+
{
50+
"answer": "contract Animals {",
51+
"correct": true
52+
},
53+
{
54+
"answer": "solidity 0.8.12 contract Animals {"
55+
}
56+
]
57+
},
58+
{
59+
"question": "What does `msg.value` hold in a function call?",
60+
"options": [
61+
{
62+
"answer": "A message passed to a function from the sender account"
63+
},
64+
{
65+
"answer": "The native token balance of the account that called a `payable` function"
66+
},
67+
{
68+
"answer": "The address of the message sender account"
69+
},
70+
{
71+
"answer": "The amount of native token sent to a `payable` function",
72+
"correct": true
73+
}
74+
]
75+
},
76+
{
77+
"question": "What does `msg.sender` hold in a function call?",
78+
"options": [
79+
{
80+
"answer": "A message passed to a function from the sender account"
81+
},
82+
{
83+
"answer": "The native token balance of the account that called a `payable` function"
84+
},
85+
{
86+
"answer": "The address of the account that called a function",
87+
"correct": true
88+
},
89+
{
90+
"answer": "The amount of native token sent to a `payable` function"
91+
}
92+
]
93+
},
94+
{
95+
"question": "In a smart contract, `override` is a keyword to …",
96+
"options": [
97+
{
98+
"answer": "… tell the EVM you need to change a read-only or constant state variable"
99+
},
100+
{
101+
"answer": "… replace a function from an inherited contract",
102+
"correct": true
103+
},
104+
{
105+
"answer": "… replace a specific value from a variable in `memory`"
106+
},
107+
{
108+
"answer": "… replace a specific value from a variable in `storage`"
109+
}
110+
]
111+
},
112+
{
113+
"question": "What is the `memory` keyword used for?",
114+
"options": [
115+
{
116+
"answer": "To tell the EVM we need to allocate an exact number of slot from memory"
117+
},
118+
{
119+
"answer": "To specify a parameter or local variable is stored in `memory` instead of `storage``",
120+
"correct": true
121+
},
122+
{
123+
"answer": "It is a keyword to let the EVM memorize a specific value we will be using frequently"
124+
},
125+
{
126+
"answer": "To specify the total amount of memory our contract will be using"
127+
}
128+
]
129+
},
130+
{
131+
"question": "What is `require( ... )` used for?",
132+
"options": [
133+
{
134+
"answer": "To tell solidity all the libraries our contract requires"
135+
},
136+
{
137+
"answer": "It is a keyword to list all the requirements a parameter must meet to be valid"
138+
},
139+
{
140+
"answer": "It is a solidity function to throw an exception if a certain condition is not met",
141+
"correct": true
142+
},
143+
{
144+
"answer": "It is a way to declare how much native token a function requires to work"
145+
}
146+
]
147+
},
148+
{
149+
"question": "What is the word `payable` used for?",
150+
"options": [
151+
{
152+
"answer": "A modifier for addresses variable to use the `.transfer()` and `.send()` functions with them"
153+
},
154+
{
155+
"answer": "A keyword in a function declaration to let the function receive native tokens"
156+
},
157+
{
158+
"answer": "A keyword for functions and addresses so they can receive native tokens into the contract"
159+
},
160+
{
161+
"answer": "All of the above",
162+
"correct": true
163+
}
164+
]
165+
},
166+
{
167+
"question": "What is a private key?",
168+
"options": [
169+
{
170+
"answer": "A secret key that has privilege access to certain functions in a contract"
171+
},
172+
{
173+
"answer": "A key to access private variables in a smart contract"
174+
},
175+
{
176+
"answer": "A key that gives total access to whomever holds it to have 'full control' of an account and its assets",
177+
"correct": true
178+
},
179+
{
180+
"answer": "A key that is not accessible from another contract"
181+
}
182+
]
183+
},
184+
{
185+
"question": "In which cases can we share our private key or seed phrase?",
186+
"options": [
187+
{
188+
"answer": "Anytime, they are not important as long as i have my address"
189+
},
190+
{
191+
"answer": "Only to friends and/or family"
192+
},
193+
{
194+
"answer": "Only when I login into a webpage or service"
195+
},
196+
{
197+
"answer": "'Never', 'absolutely never', 'to no-one'. I acknowledge that if I share my private key, whomever gets it can withdraw absolutely every asset from my address and sign documents on my behalf ",
198+
"correct": true
199+
}
200+
]
201+
}
202+
]
203+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"question": "Which steps are needed to code a basic smart contract for deployment?",
3+
"options": [
4+
{
5+
"answer": "Create a smart contract using a code editor."
6+
},
7+
{
8+
"answer": "Create a project template."
9+
},
10+
{
11+
"answer": "Install dependencies."
12+
},
13+
{
14+
"answer": "All of the above.",
15+
"correct": true
16+
}
17+
]
18+
}

0 commit comments

Comments
 (0)