# 07 — Exercises

1. Implement contract và test từ đầu trong `starter/`, không copy solution.
2. Write an adversarial receiver contract that attempts reentry; verify it cannot withdraw more than its balance.
3. Bổ sung ít nhất một negative test (revert) và một edge case.
4. Viết giải thích vì sao state thay đổi hoặc revert; so sánh với Java service.

**Acceptance criteria:** `forge build` pass; toàn bộ test pass; không sử dụng tài sản mainnet; README ghi các invariants và assumptions.
