Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

Smart contract concept in Blockchain / Solidity - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a smart contract named MyContract.

Blockchain / Solidity
contract [1] {
    // contract code here
}
Drag options to blanks, or click blank then click option'
ASmartContract
Bmycontract
CContract
DMyContract
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase or different contract names.
2fill in blank
medium

Complete the code to define a public state variable named count of type uint.

Blockchain / Solidity
uint public [1];
Drag options to blanks, or click blank then click option'
Acount
Bcounter
Cnumber
Dvalue
Attempts:
3 left
💡 Hint
Common Mistakes
Using other variable names like 'counter' or 'number'.
3fill in blank
hard

Fix the error in the function declaration to make it a public function named increment.

Blockchain / Solidity
function [1]() public {
    count += 1;
}
Drag options to blanks, or click blank then click option'
Aincrement
Badd
Cincrease
DIncrement
Attempts:
3 left
💡 Hint
Common Mistakes
Using uppercase 'Increment' or other names.
4fill in blank
hard

Fill both blanks to complete the function that returns the current count.

Blockchain / Solidity
function [1]() public view returns ([2]) {
    return count;
}
Drag options to blanks, or click blank then click option'
AgetCount
Buint
Cint
Dcount
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong function names or return types like 'int'.
5fill in blank
hard

Fill both blanks to complete the constructor that sets count to zero.

Blockchain / Solidity
constructor() {
    count [1] [2];
}
Drag options to blanks, or click blank then click option'
Apublic
B=
C0
Dprivate
Attempts:
3 left
💡 Hint
Common Mistakes
Adding visibility like 'public' or 'private', or wrong assignment.

Practice

(1/5)
1. What is a smart contract in blockchain technology?
easy
A. A type of cryptocurrency wallet
B. A program that runs on a blockchain to automate agreements
C. A physical contract signed by two parties
D. A blockchain mining algorithm

Solution

  1. Step 1: Understand the definition of smart contracts

    Smart contracts are computer programs that run on blockchains to automate and enforce agreements without middlemen.
  2. Step 2: Compare options with the definition

    Only A program that runs on a blockchain to automate agreements describes a program on blockchain automating agreements. Other options describe unrelated concepts.
  3. Final Answer:

    A program that runs on a blockchain to automate agreements -> Option B
  4. Quick Check:

    Smart contract = automated blockchain program [OK]
Hint: Smart contracts are code on blockchain, not physical papers [OK]
Common Mistakes:
  • Confusing smart contracts with physical contracts
  • Thinking smart contracts are wallets or mining tools
  • Assuming smart contracts require middlemen
2. Which of the following is the correct way to start a simple smart contract in Solidity?
easy
A. contract MyContract { }
B. class MyContract { }
C. function MyContract() { }
D. module MyContract { }

Solution

  1. Step 1: Recall Solidity syntax for defining contracts

    In Solidity, smart contracts start with the keyword contract followed by the contract name and braces.
  2. Step 2: Check each option's syntax

    contract MyContract { } uses contract keyword correctly. Options A, B, and C use keywords from other languages or incorrect syntax.
  3. Final Answer:

    contract MyContract { } -> Option A
  4. Quick Check:

    Solidity contracts start with 'contract' keyword [OK]
Hint: Solidity contracts start with 'contract' keyword, not class or function [OK]
Common Mistakes:
  • Using 'class' instead of 'contract' keyword
  • Confusing functions with contract declarations
  • Using module or other unrelated keywords
3. What will be the output of this Solidity function when called?
function getValue() public pure returns (uint) { return 5 + 3; }
medium
A. Error
B. 53
C. 8
D. 0

Solution

  1. Step 1: Analyze the function logic

    The function returns the sum of 5 and 3, which is 8.
  2. Step 2: Understand Solidity return behavior

    The function is marked pure and returns a uint, so it will output the calculated value 8 without errors.
  3. Final Answer:

    8 -> Option C
  4. Quick Check:

    5 + 3 = 8 [OK]
Hint: Add numbers inside function to get output quickly [OK]
Common Mistakes:
  • Thinking '5 + 3' concatenates as '53'
  • Expecting runtime error due to missing state
  • Assuming default return is zero
4. Identify the error in this Solidity smart contract snippet:
contract Test {
  uint value;
  function setValue(uint _value) public {
    value = _value
  }
}
medium
A. Missing semicolon after assignment
B. Incorrect function visibility
C. Variable 'value' should be public
D. Function name should be 'set_value'

Solution

  1. Step 1: Check syntax line by line

    The line value = _value is missing a semicolon at the end, which is required in Solidity.
  2. Step 2: Verify other parts

    Function visibility 'public' is correct, variable can be private, and function naming is valid. So only missing semicolon is error.
  3. Final Answer:

    Missing semicolon after assignment -> Option A
  4. Quick Check:

    Semicolons end statements in Solidity [OK]
Hint: Check for missing semicolons after statements [OK]
Common Mistakes:
  • Ignoring missing semicolon errors
  • Thinking function visibility is wrong
  • Assuming variable must be public
5. You want to create a smart contract that stores user balances and allows deposits only if the amount is positive. Which Solidity code snippet correctly enforces this?
hard
A. function deposit(uint amount) public { if(amount >= 0) { balances[msg.sender] = amount; } }
B. function deposit(uint amount) public { balances[msg.sender] += amount; }
C. function deposit(int amount) public { balances[msg.sender] += amount; }
D. function deposit(uint amount) public { require(amount > 0, "Amount must be positive"); balances[msg.sender] += amount; }

Solution

  1. Step 1: Check input validation for positive amount

    function deposit(uint amount) public { require(amount > 0, "Amount must be positive"); balances[msg.sender] += amount; } uses require(amount > 0) to ensure only positive deposits are accepted.
  2. Step 2: Compare other options for correctness

    function deposit(uint amount) public { if(amount >= 0) { balances[msg.sender] = amount; } } allows zero and overwrites balance instead of adding. function deposit(int amount) public { balances[msg.sender] += amount; } uses signed int allowing negative deposits. function deposit(uint amount) public { balances[msg.sender] += amount; } lacks any check.
  3. Final Answer:

    function deposit(uint amount) public { require(amount > 0, "Amount must be positive"); balances[msg.sender] += amount; } -> Option D
  4. Quick Check:

    Use require() to enforce positive deposits [OK]
Hint: Use require() to check conditions before updating state [OK]
Common Mistakes:
  • Not validating input amounts
  • Using signed integers for balances
  • Overwriting balances instead of adding
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard