Day 21 / 21 – Sui Challenge
Today's tasks:
- Write comprehensive tests for the Farm module
- Cover happy paths, edge cases, and error conditions
- Test shared object behavior with test_scenario
- Clean up and finalize all code
Github repo:
https://t.co/lsPRuY9DMr
Day 20 / 21 – Sui Challenge
Today's tasks:
- Learn what events are and why they matter
- Define a simple on-chain event struct
- Emit PlantEvent after state changes
- Connect events to real farm actions
Github repo:
https://t.co/xOOyCCRnhc
Day 18 / 21 – Sui Challenge
Today's tasks:
- Learn how entry functions receive objects
- Mutate shared object state on-chain
- Implement entry functions for planting and harvesting
- Persist state changes via &mut Farm
Github repo:
https://t.co/6r1KwRMjXS
Day 17 / 21 – Sui Challenge
Today's tasks:
- Learn how object ownership works on Sui
- Understand and use entry functions
- Create and share a Farm object on-chain
- Implement basic farm actions via shared objects
Github repo:
https://t.co/muLMarwdon
Day 16 / 21 – Sui Challenge
Today's tasks:
- Learn what UID is and why it exists
- Create the first real Sui object
- Define Farm with id: UID and counters
- Implement new_farm() using object::new(ctx)
Github repo:
https://t.co/2aBiziq7zw
Day 15 / 21 – Sui Challenge
Today's tasks:
- Learn the concept of Sui objects (without UID yet)
- Design a counter-based FarmCounters struct
- Track planted and harvested plots
- Enforce plotId validation and limits
Github repo:
https://t.co/IyrUxAOayX
Day 14 / 21 – Sui Challenge
Today's tasks:
- Write comprehensive unit tests
- Test multiple functions working together
- Verify task completion and aggregation logic
- Validate total reward calculation
Github repo:
https://t.co/DPUgKMWZNH
Day 13 / 21 – Sui Challenge
Today's tasks:
- Iterate over vectors with loops
- Aggregate data instead of guessing
- Implement total_reward()
- Implement completed_count()
Github repo:
https://t.co/i28DBpsGRs
Day 12 / 21 – Sui Challenge
Today's tasks:
- Learn what Option<T> is and why it exists
- Handle “found / not found” cases without lying
- Implement find_task_by_title() returning Option<u64>
- Iterate safely over tasks
Github repo:
https://t.co/xfRvQB5zZN
Day 11 / 21 – Sui Challenge
Today's tasks:
- Learn what the address type represents
- Track ownership using blockchain addresses
- Design a TaskBoard with owner and tasks
- Implement new_board() and add_task()
Github repo:
https://t.co/F60asApF5F
Day 10 / 21 – Sui Challenge
Today's tasks:
- Understand public vs private function visibility
- Design a minimal, intentional public API
- Implement public fun complete_task()
- Keep internal helpers private
Github repo:
https://t.co/k5M982AtpL
Day 9 / 21 – Sui Challenge
Today's tasks:
- Learn what enums are and why they beat bool
- Replace done: bool with TaskStatus enum
- Update Task to use explicit state
- Implement is_open() status check
Github repo:
https://t.co/6wRBadZ65b
Day 8 / 21 – Sui Challenge
Today's tasks:
- Start a new module for a fresh project
- Design a Task struct with String, u64, and bool fields
- Write a new_task() constructor function
Github repo:
https://t.co/R1rLerBugB
Day 7 / 21 – Sui Challenge
Today's tasks:
- Learn how to write unit tests in Move
- Use assert! and assert_eq! correctly
- Test adding habits to a list
- Test completing a habit
Github repo:
https://t.co/446VBZGdQU
Day 6 / 21 – Sui Challenge
Today's tasks:
- Learn what String is in Move
- Update constructors to accept String
- Implement a helper to convert bytes → String
Github repo:
https://t.co/iEDpCuFDB4
Day 5 / 21 – Sui Challenge
Today's tasks:
- Learn and use if/else control flow
- Access vector elements safely by index
- Mutate struct fields via &mut borrowing
- Implement complete_habit() with bounds checking
Github repo:
https://t.co/n7XTgNVIyV
Day 4 / 21 – Sui Challenge
Today's tasks:
- Learn how vectors work in Move
- Understand basic ownership and borrowing (&, &mut)
- Create a HabitList using vector<Habit>
- Update habit names to use String instead of vector<u8>
Github repo:
https://t.co/JM5Is61Udq
Day 3 / 21 – Sui Challenge
Today's tasks:
- Learn what structs are and how to define them in Move
- Understand abilities (copy, drop) and what they enable
- Write constructor functions to create struct instances
- Test struct creation and field access with assert_eq!
Repo : ⬇︎