Skip to content

Latest commit

 

History

History
132 lines (98 loc) · 4.91 KB

File metadata and controls

132 lines (98 loc) · 4.91 KB

🧩 Tutorial Quiz & Checklist

Interactive companion to the step-by-step tutorial. Use it two ways:

  1. Progress checklist — tick each box as you complete the hands-on steps.
  2. Knowledge quiz — answer the questions to confirm you understood why each step works, not just how.

Everything here is testnet practice mode — no real funds, nothing to lose.


✅ Progress checklist

Copy this into a GitHub issue/PR (or just tick along in your editor) as you go.

Setup

  • Installed Rust, the wasm32-unknown-unknown target, Stellar CLI, and curl
  • Built the contracts with ./scripts/build.sh
  • Generated admin, player1, and player2 testnet keys
  • Funded all three accounts via Friendbot
  • Deployed and initialized the escrow and oracle contracts
  • Captured $ESCROW_ID, $ORACLE_ID, $XLM_TOKEN, $P1_ADDR, $P2_ADDR

Step 1 — Create a match

  • Created a match as player1
  • Verified the match state is Pending
  • Understood that stake amounts are in stroops (1 XLM = 10,000,000)

Step 2 — Deposit funds

  • Deposited player1's stake
  • Deposited player2's stake
  • Confirmed the match is funded (state is now Active)
  • Can explain the difference between funded status and escrow balance

Step 3 — Check the result

  • Recorded the verified result on the oracle contract
  • Executed the payout via the escrow contract (called as the oracle address)
  • Confirmed the match state is Completed
  • Confirmed the escrow balance returned to 0

Wrap-up

  • Whole flow completed in under 15 minutes
  • Read at least one "why it matters" callout per step
  • Noted any confusing moment to report (see Feedback loop)

🧠 Knowledge quiz

Answer each, then expand to check. No peeking first — these mirror the real points new users trip on.

Q1. After Player1 deposits but Player2 has not, what is the match state?

Show answer Still Pending. A match becomes Active only when both players have deposited.

Q2. You stake "10 XLM". What number do you pass to the stake amount?

Show answer 100000000 — amounts are in stroops, and 1 XLM = 10,000,000 stroops.

Q3. A match is Active with both deposits in. What does the funded check return, and what does the escrow balance return?

Show answer Funded → true; escrow balance → 2 × stake (e.g. 200000000 for a 10 XLM stake). One reports deposit flags, the other reports the amount held.

Q4. Who is allowed to trigger the payout on the escrow contract?

Show answer Only the configured oracle address (the oracle contract id in the tutorial). The escrow admin cannot submit payouts directly — the call's --source and --caller must both be the oracle address.

Q5. The match is Completed. Why does the escrow balance read 0 when the winner just received 20 XLM?

Show answer The escrow balance reports funds held in escrow for that match. After payout the pot has left escrow (it is in the winner's wallet), so the match's escrow balance is 0.

Q6. It's a draw. What happens to the stakes?

Show answer Each player gets their own stake back (10 XLM each), rather than one player taking the full 20 XLM pot.

Q7. Which network should you use to practice, and why never mainnet?

Show answer Use testnet (or local standalone). Testnet XLM is free via Friendbot and worthless, so mistakes cost nothing. Mainnet moves real funds.

Score yourself

Correct Where to go next
6–7 You're ready to contribute — see the contributing guidelines
4–5 Re-skim the "why it matters" callouts in the tutorial
0–3 Re-run the hands-on steps — repetition on testnet is free and the fastest way to learn

🔄 Feedback loop

This tutorial improves only when new users tell us where they got stuck.

If any step confused you:

  1. Note which step and the exact command that didn't behave as described.
  2. Check the Troubleshooting common issues table in the step-by-step tutorial — your issue may already be covered.
  3. If not, open an issue or PR describing the confusion. Documentation gaps are treated as bugs and are great first contributions.

🙌 New contributors who run this tutorial and report friction points help us keep it accurate and under 15 minutes. Thank you!