Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

Transaction confirmation handling in Blockchain / Solidity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a transaction confirmation in blockchain?
A transaction confirmation means that a transaction has been included in a block and accepted by the network. Each confirmation increases trust that the transaction is permanent and won't be reversed.
Click to reveal answer
beginner
Why do we wait for multiple confirmations before considering a transaction final?
Waiting for multiple confirmations reduces the risk of a transaction being reversed due to chain reorganizations or forks. More confirmations mean higher security and trust.
Click to reveal answer
beginner
What is a common number of confirmations to wait for in Bitcoin before accepting a transaction as final?
Typically, 6 confirmations are considered safe in Bitcoin to ensure the transaction is permanent and irreversible.
Click to reveal answer
intermediate
How can a program detect when a transaction is confirmed?
A program can listen to blockchain events or query the blockchain to check if the transaction hash appears in a block and count how many blocks have been added after it.
Click to reveal answer
intermediate
What is a chain reorganization and how does it affect transaction confirmations?
A chain reorganization happens when a longer blockchain replaces a shorter one, potentially removing some blocks. This can cause previously confirmed transactions to become unconfirmed temporarily.
Click to reveal answer
What does one confirmation of a blockchain transaction mean?
AThe transaction is reversed
BThe transaction is sent to the network
CThe transaction is rejected
DThe transaction is included in a block
Why is it safer to wait for multiple confirmations?
ATo reduce risk of transaction reversal
BTo speed up the transaction
CTo increase transaction fees
DTo avoid paying taxes
How many confirmations are commonly considered safe in Bitcoin?
A3
B6
C1
D10
What can cause a confirmed transaction to become unconfirmed?
AWallet backup
BTransaction fee increase
CChain reorganization
DMining difficulty drop
Which method can a program use to check transaction confirmations?
AQuery blockchain for transaction block and count subsequent blocks
BSend email to miner
CCheck wallet balance only
DRestart the blockchain node
Explain what transaction confirmations are and why they matter in blockchain.
Think about how blocks build on each other to secure transactions.
You got /3 concepts.
    Describe how a program can detect when a blockchain transaction is confirmed.
    Consider how the blockchain data can be accessed and monitored.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does transaction confirmation mean in blockchain?
      easy
      A. It means the transaction is deleted from the blockchain.
      B. It means the transaction is reversed by the user.
      C. It means the transaction is pending and not yet sent.
      D. It means the transaction is safely recorded on the blockchain.

      Solution

      1. Step 1: Understand transaction confirmation meaning

        Transaction confirmation means the blockchain network has recorded the transaction securely.
      2. Step 2: Compare options with definition

        Only It means the transaction is safely recorded on the blockchain. correctly states that confirmation means safe recording on the blockchain.
      3. Final Answer:

        It means the transaction is safely recorded on the blockchain. -> Option D
      4. Quick Check:

        Transaction confirmation = safe recording [OK]
      Hint: Confirmation means transaction is securely recorded [OK]
      Common Mistakes:
      • Confusing confirmation with transaction pending state
      • Thinking confirmation means deletion or reversal
      • Assuming confirmation means user approval
      2. Which of the following is the correct way to wait for a transaction confirmation in JavaScript using async/await?
      easy
      A. await transaction.confirm();
      B. transaction.wait();
      C. await transaction.wait();
      D. transaction.confirm();

      Solution

      1. Step 1: Identify correct async syntax

        To wait for a promise in JavaScript, use await before the async function call.
      2. Step 2: Match function name for confirmation

        The standard method to wait for transaction confirmation is wait(), not confirm().
      3. Final Answer:

        await transaction.wait(); -> Option C
      4. Quick Check:

        Use await with wait() to confirm transaction [OK]
      Hint: Use await with wait() method to confirm transaction [OK]
      Common Mistakes:
      • Forgetting to use await causing unresolved promises
      • Using wrong method name like confirm()
      • Calling wait() without await leading to no pause
      3. What will be the output of this JavaScript code snippet?
      async function confirmTx(tx) {
        const receipt = await tx.wait();
        return receipt.confirmations;
      }
      
      const fakeTx = {
        wait: () => Promise.resolve({ confirmations: 3 })
      };
      
      confirmTx(fakeTx).then(console.log);
      medium
      A. 3
      B. Promise {<pending>}
      C. undefined
      D. Error: wait is not a function

      Solution

      1. Step 1: Understand async function behavior

        The function confirmTx awaits tx.wait() which resolves to an object with confirmations: 3.
      2. Step 2: Return and log confirmations

        The function returns receipt.confirmations which is 3, and then(console.log) prints 3.
      3. Final Answer:

        3 -> Option A
      4. Quick Check:

        Await wait() returns confirmations = 3 [OK]
      Hint: Await returns resolved value, then log confirmations [OK]
      Common Mistakes:
      • Expecting Promise instead of resolved value
      • Confusing property name confirmations
      • Missing await causing Promise output
      4. Identify the error in this code snippet for waiting transaction confirmation:
      async function waitForConfirmation(tx) {
        const receipt = tx.wait();
        console.log(receipt.confirmations);
      }
      
      waitForConfirmation(transaction);
      medium
      A. Missing await before tx.wait()
      B. Incorrect property name confirmations
      C. Function should not be async
      D. console.log should be outside the function

      Solution

      1. Step 1: Check async call usage

        The function calls tx.wait() which returns a Promise, but does not use await.
      2. Step 2: Understand consequences of missing await

        Without await, receipt is a Promise object, so receipt.confirmations is undefined.
      3. Final Answer:

        Missing await before tx.wait() -> Option A
      4. Quick Check:

        Always await async calls to get resolved value [OK]
      Hint: Always await async calls to get actual result [OK]
      Common Mistakes:
      • Not using await with async functions
      • Assuming Promise has properties directly
      • Misplacing console.log inside async function
      5. You want to wait for at least 5 confirmations before proceeding with a transaction. Which code snippet correctly implements this logic?
      hard
      A. const receipt = await tx.wait(5); if(receipt.confirmations < 5) { proceed(); }
      B. const receipt = await tx.wait(5); if(receipt.confirmations >= 5) { proceed(); }
      C. const receipt = await tx.wait(3); if(receipt.confirmations >= 5) { proceed(); }
      D. const receipt = await tx.wait(); if(receipt.confirmations == 5) { proceed(); }

      Solution

      1. Step 1: Use wait() with confirmation count

        Calling tx.wait(5) waits until at least 5 confirmations are reached.
      2. Step 2: Check confirmations before proceeding

        Check if receipt.confirmations >= 5 to ensure safe confirmation before calling proceed().
      3. Final Answer:

        const receipt = await tx.wait(5); if(receipt.confirmations >= 5) { proceed(); } -> Option B
      4. Quick Check:

        wait(5) ensures 5 confirmations before proceed [OK]
      Hint: Use wait(5) and check confirmations >= 5 before proceed [OK]
      Common Mistakes:
      • Waiting fewer confirmations than needed
      • Checking for exact 5 instead of >= 5
      • Proceeding when confirmations are less than required