# Table of Content

#### Smart Contract Basics and Solidity

• What Is a Smart Contract - Solidity
• What Is an IDE - Remix Ethereum
• Remix Ethereum - IDE Basics (How to Use an IDE)
• Exercise - Get Familiar with the Remix Ethereum IDE
• What Are Comments in Solidity

#### Introduction to Solidity

• Solidity for Beginners - Welcome to Your New Journey!
• Copy and Paste Your First Smart Contract
• Compile and Deploy Your First Smart Contract
• Exercise - Reconfigure a Solidity Smart Contract
• Solution - Reconfigure a Solidity Smart Contract
• Introduction to Pragma Solidity (Compiling Versions)
• How to Understand Pragma Solidity
• Exercise - Instantiate Solidity
• Solution - Instantiate Solidity

#### Solidity - Basics

• General Introduction to Variables and Types
• Introduction to Booleans, Integers, and Strings
• Writing Solidity Variables
• Exercise - Write Solidity Variables
• Solution - Write Solidity Variables
• What Are Functions in Solidity
• How to Write Functions in Solidity
• Scope - Functions and Variables in Solidity
• Exercise - Write Your First Smart Contract - Calculator
• Solution - Write Your First Smart Contract - Calculator

#### Solidity Conditional Logic, Scope, and Visibility

• Decision-Making in Solidity
• How to Write If else Statements in Solidity
• Exercise - Write an Airdrop If Statement in Solidity (Exercise with Solution)
• Visibility - Public Private Internal External - in Solidity
• Scope and State in Solidity
• Exercise - Strengthen Your Understanding of Scope and State
• Solution - Strengthen Your Understanding of Scope and State
• Visibility - Public Private Internal External - in Solidity II
• Visibility - Public Private Internal External - in Solidity III
• Operators in Solidity
• Arithmetic Operators in Solidity
• The Remainder Operator in Solidity
• How to Calculate the Modulo Remainder - Trick
• Exercise - Arithmetic Operator
• Solution - Arithmetic Operator
• Comparison Operators in Solidity
• Exercise - Comparison Operators
• Solution - Comparison Operators
• Logical Operators in Solidity
• Exercise - Logical Operators
• Solution - Logical Operators
• The Assignment Operator in Solidity
• Exercise - Final Solidity Operator Test
• Solution - Final Solidity Operator Test

#### Solidity Loops, Strings and Bytes

• How to Improve Your Skills with This Course
• Review – Modulo and Fun Math in Solidity
• The For Loop in Solidity
• Exercise - How to Loop in Solidity
• Solution - How to Loop in Solidity
• Strings in Solidity
• Memory Keyword in Solidity
• Bytes Versus Strings in Solidity I
• Bytes Versus Strings in Solidity II
• Exercise - Writing Strings in Solidity
• Solution - Writing Strings in Solidity

#### Structures and Libraries in Solidity

• What Are Constructors in Solidity
• Exercise - Build a Constructor in Solidity
• Solution - Build a Constructor in Solidity
• Arrays in Solidity – Pop, Push, and Length Methods
• Arrays in Solidity – Delete
• Exercise - Compact Array
• Solution - Compact Array
• What Are Enums in Solidity
• Exercise - How to Write Enums
• Solution - How to Write Enums
• What Are Structs in Solidity
• Exercise - Structs in Solidity
• Solution - Structs in Solidity
• Mapping in Solidity
• Exercise - Set Keys and Values
• Mapping and Struct Assignment
• Solution - Mapping and Struct Assignment
• Nested Mapping in Solidity

#### Solidity Conversions and Special Variables

• Bits and Units - Conversion in Solidity
• Exercise - Bits and Bytes
• Solution - Bits and Bytes
• Ether Units and Denominations in Solidity
• Exercise - Assert Ether to Wei
• Solution - Assert Ether to Wei
• Exercise - Assert Time and Dates Suffix in Solidity
• Solution - Assert Time and Dates Suffix in Solidity
• Global Variables in Solidity I
• Global Variables in Solidity II
• Special Variables

#### Functions in Solidity

• Overview of Functions in This Solidity Course
• What Are Function Modifiers in Solidity
• How to Write a Function Modifier in Solidity
• Exercise - Write a Function Modifier
• Solution - Write a Function Modifier
• The View Keyword in Solidity
• What Does Pure Mean in Solidity
• Exercise - View and Pure Functions
• Solution - View and Pure Functions
• Returning Multiple Data Types with Functions in Solidity
• Destructuring and Multiple Returns from Functions in Solidity
• Exercise - Destructuring and Multiple Returns from Functions in Solidity
• The Fallback Function in Solidity I
• The Fallback Function in Solidity II
• The Fallback Function in Solidity III
• Exercise - Write a Fallback Function
• Exercise - Write a Function Overload
• Solution - Write a Function Overload
• What Are Cryptographic Functions
• Build a Random Generator Function
• Smart Contract Oracles
• Exercise - Cryptographic Oracle Contract
• Solution - Cryptographic Oracle Contract

#### Solidity Patterns and Cybersecurity

• Leveling Up in Solidity
• Pop Quiz – Looping and Transactions in Solidity
• Solution - Pop Quiz – Looping and Transactions in Solidity
• Smart Contracts - Points of Failure
• Should Contracts Be Allowed to Receive Funds? (Thought Experiment)
• A Vulnerable Smart Contract
• How to Hack a Smart Contract (Malicious Constructor Trick)
• Coding in Terms of Higher Patterns
• Transfer Versus Send Method in Solidity
• The Withdrawal Pattern in Solidity
• Exercise - Write a Withdrawal Function
• Solution - Write a Withdrawal Function in Solidity

#### Solidity Patterns and Restricted Access

• The Restricted Access Pattern
• Exercise - Modifier Function
• Solution - Modifier Function
• Only After Modifier in Solidity I
• Only After Modifier in Solidity II
• Exercise - Cost Restriction in Solidity
• Solution - Cost Restriction in Solidity
• Optional Bonus - Cost Restriction in Solidity

#### Solidity Inheritance and Abstractions

• What are Contracts Review in Solidity
• Exercise - Contract Visibility Advanced
• Review - Public Private External and Internal in Solidity
• Entrance Exam for the Advanced Solidity Sections
• Solution - Contract Visibility Advanced I
• Solution - Contract Visibility Advanced II
• What Is Inheritance in Solidity
• Exercise - Inheritance with Smart Contracts
• Solution - Inheritance with Smart Contracts
• What Exactly are Events in Solidity
• What are Abstract Contracts in Solidity
• Virtual and Override in Abstract Contracts
• Exercise - Abstract Contract Calculator
• Solution - Abstract Contract Calculator

• What Are Interfaces in Solidity
• Injected Web3 Interface Exercise Prerequisite
• Exercise - Uniswap Interactions with Interfaces
• Solution - Uniswap Interactions with Interfaces
• What Are Libraries in Solidity
• Exercise - Access Library Using A for B Pattern
• Solution - Access Library by Using A for B
• Assembly and EVM OpCodes with Solidity
• How to Write Assembly in Solidity
• Exercise - Use Assembly to Run Byte Conversions
• Solution - Use Assembly to Run Byte Conversions
• Overview of Error Handling in Solidity
• How Does Require Work in Solidity
• How Does Revert Work in Solidity
• How Does Assert Work in Solidity
• Exercise - Error Handling in Solidity
• Solution - Error Handling in Solidity
• Final Exercise - Build an Auction DApplication
• Solution - State Variables and Constructor - Auction
• Solution - Bid Function - Auction
• Solution - Withdrawal Function - Auction
• Solution - Final Auction Solution

Apply for Certification

For Support