- Purpose: write a NFT contract and upload that contract to a local testnet with smart contract capability
- Group 1: Setup a Smart Contract project with CosmWasm
- Lesson 1: Generating a CosmWasm project
- Lesson 2: Introduction to CosmWasm project file structure
- Lesson 3: Introduction to NFT's implementation idea and CW-721
- Group 2: Entry point (lib.rs || contract.rs)
- Lesson 4: Introduction to contract entry_point and overall flow
- Lesson 5: instantiate, execute, query entry_point
- Lesson 6: Entry point variable (DepsMut, Deps, Env)
- Lesson 7: Entry point variable (MessageInfo, Msg)
- Group 3: State (To save state of contract to database) (state.rs)
- Lesson 8: Introduction to data Structure of State
- Lesson 9: Introduction to cosmwasm_std::Storage
- Lesson 10: Introduction to cw_storage_plus storage format
- Lesson 11: Saving State to cosmwasm_std::Storage (cw_storage_plus::Item<'a, u64>)
- Group 4: Msg
- Lesson 12: Introduction to Msg
- Lesson 13: Msg schema generation
- Lesson 14: Introduction to InstantiateMsg
- Lesson 15: Introduction to ExecuteMsg
- Lesson 16: Introduction to QueryMsg
- Group 5: Execute
- Lesson 17: Writing implementation for "instantiate"
- Lesson 18: Writing implementation for "transfer" NFT
- Lesson 19: Writing implementation for "mint" NFT
- Group 6: Query
- Lesson 20: Writing implementation for "owner_of"
- Lesson 21: Writing implementation for "nft_info"
- Group 7: Contract error
- Lesson 22: Introduction to contract error
- Group 8: Contract testing
- Lesson 23: Setup contract for testing
- Lesson 24: Test instantiation of contract
- Lesson 25: Test minting of contract
- Group 9: Instantiating contract on local testnet of Juno
- Lesson 26: Store and instantiate contract on testnet