foundations:

  1. Which of the following are ERC-20 tokens?
    1. ETH
    2. SOL
    3. MKR
    4. UNI
  2. Most open source and development work is done on which system?
    1. Windows
    2. Unix based systems (x)
  3. How many methods are required by the ERC-20 standard to achieve the necessary functionality for a token contract?
    1. 5
    2. 7
    3. 9 (x)
    4. 11
  4. What does the totalSupply() method in the ERC-20 standard return?
    1. The total number of that particular token ever created in the network
    2. The current total circulating supply of the token (x)
    3. The sum of all balances across all addresses
    4. The number of tokens owned by the contract deployer
  5. Which functionalities does our token need to provide?
    1. Get total supply of tokens on the network
    2. Transfer tokens from one address to another
    3. Approve an amount of tokens spent by a third party
    4. All of the above
  6. forge uses which?
    1. Git Submodules (x)
    2. Node Packages
    3. Node version manager
    4. Yarn packages
  7. Scripts in Foundry are written in:
    1. Solidity (x)
    2. Typescript
    3. JavaScript
    4. Vyper
  8. What is the purpose of the remappings.txtin our project?
    1. Define Solidity re-mappings for imports (x)
    2. List excuses for missing deadlines
    3. Specify the project's structure
    4. Remap project dependencies

Framing and Walls + Opening Doors

  1. In the context of smart contract development, what does "inheritance" mean?
    1. Passing down digital assets to your descendants
    2. Using someone else's contract with their permission
    3. Extending the functionality of an existing contract (x)
  2. In ERC-20 token context, which of the following are correct about the _mint function?
    1. It creates new tokens through the proof-of-stake consensus mechanism
    2. It creates new tokens and assigns them to the contract deployer (x)
    3. It maintains the token minting history for auditability
    4. It adds tokens to the total supply, increasing the overall token amount (x)

Lock the Door!

  1. What pattern does the tutorial use to limit access to the mint function?
    1. Singleton Pattern
    2. Observer Pattern
    3. AccessControl Pattern (x)
    4. Decorator Pattern
  2. What is the purpose of the modifier onlyRole(MINTER_ROLE) in the mint function?
    1. It ensures that only addresses with the MINTER_ROLE can call the mint function (x)
    2. It allows any address to call the mint function
    3. It sets the role of the address calling the mint function

Final touches/House inspection

  1. Why is the .env file in the deployment process so significant?
    1. It contains the contract code
    2. It stores metadata about the contract
    3. It holds secrets, especially the private key (x)

Register your house

  1. Why do we include the --verify modifier in the forge create command?
    1. To display a detailed output of the deployment (x)
    2. To enable optimizations in the Solidity compiler
    3. To verify the deployed contract on Etherscan (x)