# Exercises — ABI and calldata

1. Đọc `solution/src/Lab.sol`, tự viết lại contract vào `starter/src/Lab.sol`.
2. Tự viết test tương ứng, không copy solution; chạy `forge test`.
3. Thêm một negative test có `require` hoặc revert hợp lý và giải thích trace.
4. Run `cast sig "record(uint256)"` and `cast calldata "record(uint256)" 10`; compare first four bytes with selector and inspect 32-byte padded argument.

**Acceptance:** Build thành công; tests pass; ghi chú vì sao EVM có hành vi như vậy.
