Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

Why handling value is core to blockchain - Test Your Understanding

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

Complete the code to create a simple transaction object with a value field.

Blockchain / Solidity
transaction = {"sender": "Alice", "receiver": "Bob", "[1]": 50}
Drag options to blanks, or click blank then click option'
Avalue
Bhash
Ctimestamp
Dnonce
Attempts:
3 left
💡 Hint
Common Mistakes
Using keys like 'hash' or 'nonce' instead of 'value' for the amount.
2fill in blank
medium

Complete the code to add the transaction value to the sender's balance check.

Blockchain / Solidity
if sender_balance >= [1]:
    print("Transaction approved")
Drag options to blanks, or click blank then click option'
Atransaction['hash']
Btransaction['value']
Ctransaction['timestamp']
Dtransaction['nonce']
Attempts:
3 left
💡 Hint
Common Mistakes
Checking against 'hash' or 'nonce' which are unrelated to the amount.
3fill in blank
hard

Fix the error in the code to correctly update the receiver's balance by adding the transaction value.

Blockchain / Solidity
receiver_balance = receiver_balance [1] transaction['value']
Drag options to blanks, or click blank then click option'
A+
B*
C/
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using subtraction or multiplication instead of addition.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps each user to their transaction value if the value is greater than 10.

Blockchain / Solidity
{user: [1] for user, [2] in transactions.items() if [1] > 10}
Drag options to blanks, or click blank then click option'
Avalue
Bamount
Cval
Dbalance
Attempts:
3 left
💡 Hint
Common Mistakes
Using different keys like 'amount' or 'val' which may not exist.
5fill in blank
hard

Fill all three blanks to create a filtered dictionary of users with transaction values above 100, using uppercase usernames as keys.

Blockchain / Solidity
filtered = {user.[1](): [2] for user, [3] in transactions.items() if [2] > 100}
Drag options to blanks, or click blank then click option'
Alower
Bvalue
Ctransaction_value
Dupper
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'lower' instead of 'upper' or wrong keys for transaction amounts.

Practice

(1/5)
1. Why is handling value considered core to blockchain technology?
easy
A. Because blockchains enable secure transfer of money or assets between people.
B. Because blockchains only store text data without any value.
C. Because blockchains are used only for social media applications.
D. Because blockchains do not require any authorization for transactions.

Solution

  1. Step 1: Understand blockchain purpose

    Blockchains are designed to let people send money or assets safely.
  2. Step 2: Identify role of value handling

    Handling value is essential because it allows secure and trusted transfer of assets.
  3. Final Answer:

    Because blockchains enable secure transfer of money or assets between people. -> Option A
  4. Quick Check:

    Value handling = secure asset transfer [OK]
Hint: Value handling means secure asset transfer on blockchain [OK]
Common Mistakes:
  • Thinking blockchain only stores text data
  • Assuming no authorization is needed
  • Confusing blockchain with social media
2. Which of the following is the correct way to represent a transaction value in a blockchain smart contract?
easy
A. let value = 100; // as a number
B. let value = null; // as null
C. let value = true; // as a boolean
D. let value = '100'; // as a string

Solution

  1. Step 1: Identify correct data type for value

    Transaction values represent amounts, so they should be numbers, not strings or booleans.
  2. Step 2: Check each option

    let value = 100; // as a number uses a number type which is correct for value representation.
  3. Final Answer:

    let value = 100; // as a number -> Option A
  4. Quick Check:

    Value must be a number [OK]
Hint: Transaction value must be a number, not string or boolean [OK]
Common Mistakes:
  • Using strings to represent numeric values
  • Using booleans or null for amounts
  • Confusing data types in smart contracts
3. Consider this simplified blockchain transaction code snippet:
let senderBalance = 500;
let transferAmount = 200;
if (senderBalance >= transferAmount) {
  senderBalance -= transferAmount;
  receiverBalance += transferAmount;
}
console.log(senderBalance);

What will be the output?
medium
A. 700
B. 300
C. 500
D. 200

Solution

  1. Step 1: Check condition and initial values

    senderBalance is 500, transferAmount is 200, condition senderBalance >= transferAmount is true.
  2. Step 2: Calculate new senderBalance

    senderBalance is reduced by 200, so 500 - 200 = 300.
  3. Final Answer:

    300 -> Option B
  4. Quick Check:

    500 - 200 = 300 [OK]
Hint: Subtract transfer amount from sender balance if enough funds [OK]
Common Mistakes:
  • Adding instead of subtracting transfer amount
  • Ignoring the condition check
  • Confusing sender and receiver balances
4. The following code tries to update balances after a transaction but has a bug:
let senderBalance = 300;
let receiverBalance = 100;
let transferAmount = 400;
if (senderBalance > transferAmount) {
  senderBalance -= transferAmount;
  receiverBalance += transferAmount;
}
console.log(senderBalance);

What is the bug and how to fix it?
medium
A. The senderBalance should be increased, not decreased.
B. The transferAmount should be less than senderBalance, so no fix needed.
C. The receiverBalance update is missing a semicolon.
D. The condition should be senderBalance >= transferAmount to allow exact balance transfer.

Solution

  1. Step 1: Analyze the condition

    The condition uses > which excludes the case when senderBalance equals transferAmount.
  2. Step 2: Correct the condition

    Change > to >= so sender can transfer all their balance exactly.
  3. Final Answer:

    The condition should be senderBalance >= transferAmount to allow exact balance transfer. -> Option D
  4. Quick Check:

    Use >= to allow full balance transfer [OK]
Hint: Use >= to allow transfer of full sender balance [OK]
Common Mistakes:
  • Using > excludes exact balance transfers
  • Ignoring condition logic
  • Misunderstanding balance updates
5. You want to create a function that safely transfers value between two accounts on a blockchain. Which approach best ensures the transaction is valid and balances update correctly?
hard
A. Add amount to receiver first, then subtract from sender without checks.
B. Subtract amount from sender without checking balance, then add to receiver.
C. Check sender balance >= amount, subtract amount from sender, add to receiver, then record transaction.
D. Record transaction first, then update balances without validation.

Solution

  1. Step 1: Validate sender has enough balance

    Checking sender balance >= amount prevents overspending and errors.
  2. Step 2: Update balances and record transaction

    Subtract from sender, add to receiver, then record transaction to keep system consistent.
  3. Final Answer:

    Check sender balance >= amount, subtract amount from sender, add to receiver, then record transaction. -> Option C
  4. Quick Check:

    Validate then update balances then record [OK]
Hint: Validate balance before transfer, then update and record [OK]
Common Mistakes:
  • Updating balances without validation
  • Recording transaction before balance update
  • Adding to receiver before subtracting from sender
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