Skip to content

Commit 21b61b4

Browse files
committed
feat: add final quiz
1 parent 0b79dec commit 21b61b4

File tree

2 files changed

+293
-0
lines changed

2 files changed

+293
-0
lines changed

src/pages/lessons/projects/6.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,12 @@ Now that we have built our house and it's has been accepted in the real estate
858858
register, we can invite our friends by transferring them some MTK, or **even**
859859
minting them some tokens, **even** if that affects your tokenomics 😉
860860

861+
<br />
862+
<br />
863+
<QuizStatusChecker quiz="quiz-lesson-6" />
864+
<br />
865+
<br />
866+
861867
import { ContributorFooter } from "../../../components/mdx/ContributorFooter";
862868

863869
<ContributorFooter

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

Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
{
2+
"title": "Quiz: Lesson 6",
3+
"questions": [
4+
{
5+
"question": "Which of the following are ERC-20 tokens?",
6+
"options": [
7+
{
8+
"answer": "ETH"
9+
},
10+
{
11+
"answer": "SOL"
12+
},
13+
{
14+
"answer": "MKR",
15+
"correct": true
16+
},
17+
{
18+
"answer": "UNI",
19+
"correct": true
20+
}
21+
]
22+
},
23+
{
24+
"question": "Most open source and development work is done on which system?",
25+
"options": [
26+
{
27+
"answer": "Windows"
28+
},
29+
{
30+
"answer": "Unix based systems",
31+
"correct": true
32+
}
33+
]
34+
},
35+
{
36+
"question": "How many methods are required by the ERC-20 standard to achieve the necessary functionality for a token contract?",
37+
"options": [
38+
{
39+
"answer": "5"
40+
},
41+
{
42+
"answer": "7"
43+
},
44+
{
45+
"answer": "9",
46+
"correct": true
47+
},
48+
{
49+
"answer": "11"
50+
}
51+
]
52+
},
53+
{
54+
"question": "What does the totalSupply() method in the ERC-20 standard return?",
55+
"options": [
56+
{
57+
"answer": "The total number of that particular token ever created in the network"
58+
},
59+
{
60+
"answer": "The current total circulating supply of the token",
61+
"correct": true
62+
},
63+
{
64+
"answer": "The sum of all balances across all addresses"
65+
},
66+
{
67+
"answer": "The number of tokens owned by the contract deployer"
68+
}
69+
]
70+
},
71+
{
72+
"question": "Which functionalities does our token need to provide?",
73+
"options": [
74+
{
75+
"answer": "Get total supply of tokens on the network",
76+
"correct": true
77+
},
78+
{
79+
"answer": "Transfer tokens from one address to another",
80+
"correct": true
81+
},
82+
{
83+
"answer": "Approve an amount of tokens spent by a third party",
84+
"correct": true
85+
}
86+
]
87+
},
88+
{
89+
"question": "In Foundry, `forge` uses which of the following?",
90+
"options": [
91+
{
92+
"answer": "Node Packages"
93+
},
94+
{
95+
"answer": "Node version manager"
96+
},
97+
{
98+
"answer": "Yarn packages"
99+
},
100+
{
101+
"answer": " Git Submodules",
102+
"correct": true
103+
}
104+
]
105+
},
106+
{
107+
"question": "Scripts in Foundry are written in:",
108+
"options": [
109+
{
110+
"answer": "Typescript"
111+
},
112+
{
113+
"answer": "Vyper"
114+
},
115+
{
116+
"answer": "Solidity",
117+
"correct": true
118+
},
119+
{
120+
"answer": "JavaScript"
121+
}
122+
]
123+
},
124+
{
125+
"question": "What is the purpose of the `remappings.txt` in our project?",
126+
"options": [
127+
{
128+
"answer": "Remap the project's dependencies"
129+
},
130+
{
131+
"answer": "List excuses for missing deadlines"
132+
},
133+
{
134+
"answer": "Specify the project's structure"
135+
},
136+
{
137+
"answer": "Specify how OpenZeppelin imports are organized in the project.",
138+
"correct": true
139+
}
140+
]
141+
},
142+
{
143+
"question": "In the context of smart contract development, what does \"inheritance\" mean?",
144+
"options": [
145+
{
146+
"answer": "Passing down digital assets to your descendants"
147+
},
148+
{
149+
"answer": "Using someone else's contract with their permission"
150+
},
151+
{
152+
"answer": "Extending the functionality of an existing contract",
153+
"correct": true
154+
}
155+
]
156+
},
157+
{
158+
"question": "In ERC-20 token context, which are correct about the `_mint` function?",
159+
"options": [
160+
{
161+
"answer": "It creates new tokens through the proof-of-stake consensus mechanism"
162+
},
163+
{
164+
"answer": "It creates new tokens and assigns them to the contract deployer",
165+
"correct": true
166+
},
167+
{
168+
"answer": "It maintains the token minting history for auditability"
169+
},
170+
{
171+
"answer": "It adds tokens to the total supply, increasing the overall token amount",
172+
"correct": true
173+
}
174+
]
175+
},
176+
{
177+
"question": "What pattern does the tutorial use to limit access to the mint function?",
178+
"options": [
179+
{
180+
"answer": "Singleton Pattern"
181+
},
182+
{
183+
"answer": "Observer Pattern"
184+
},
185+
{
186+
"answer": "Decorator Pattern"
187+
},
188+
{
189+
"answer": "AccessControl Pattern",
190+
"correct": true
191+
}
192+
]
193+
},
194+
{
195+
"question": "What is the purpose of the `bytes32 public constant MINTER_ROLE` variable in our token contract?",
196+
"options": [
197+
{
198+
"answer": "It increases contract security",
199+
"correct": true
200+
},
201+
{
202+
"answer": "To fetch the total supply of tokens minted"
203+
},
204+
{
205+
"answer": "It securely encodes the minter role",
206+
"correct": true
207+
},
208+
{
209+
"answer": "It allows burning tokens"
210+
}
211+
]
212+
},
213+
{
214+
"question": "What does the `onlyRole(MINTER_ROLE)` modifier in the `mint` function achieve?",
215+
"options": [
216+
{
217+
"answer": "It allows any address to call the mint function"
218+
},
219+
{
220+
"answer": "It sets the role of the address calling the mint function"
221+
},
222+
{
223+
"answer": "It ensures that only addresses with the minter role can call the `mint()` function",
224+
"correct": true
225+
}
226+
]
227+
},
228+
{
229+
"question": "Why is the `.env` file in the deployment process so significant?",
230+
"options": [
231+
{
232+
"answer": "It contains the contract code"
233+
},
234+
{
235+
"answer": "It stores metadata about the contract"
236+
},
237+
{
238+
"answer": "It holds secrets, especially the private key",
239+
"correct": true
240+
}
241+
]
242+
},
243+
{
244+
"question": "How does the `--verify` modifier in the `forge create` command help us?",
245+
"options": [
246+
{
247+
"answer": "It creates a detailed output of the deployment in our terminal",
248+
"correct": true
249+
},
250+
{
251+
"answer": "It enables optimisations in the Solidity compiler"
252+
},
253+
{
254+
"answer": "It verifies the deployed contract on Etherscan",
255+
"correct": true
256+
}
257+
]
258+
},
259+
{
260+
"question": "Why do we strongly advise to use a separate wallet for the development process, and to never share your private key?",
261+
"options": [
262+
{
263+
"answer": "Private keys are not important in development"
264+
},
265+
{
266+
"answer": "Sharing private keys enhances security"
267+
},
268+
{
269+
"answer": "Anyone with access to the private key can control your wallet",
270+
"correct": true
271+
}
272+
]
273+
},
274+
{
275+
"question": "It’s not possible to super-creatively modify and personalise the contract code to make an Earth changing application.",
276+
"options": [
277+
{
278+
"answer": "True"
279+
},
280+
{
281+
"answer": "Are you nuts? Let's get to it! :)",
282+
"correct": true
283+
}
284+
]
285+
}
286+
]
287+
}

0 commit comments

Comments
 (0)