Developer's Education

Ethereum
40 Hours

Designed for programmers and developers who want to take a comprehensive deep dive in writing smart contracts and building applications that interact with them. This course provides detailed overviews of Ethereum, smart contracts, and the development language, Solidity.

Modules

○ Interfacing with Ethereum Networks
○ Metamask Setup
○ Ethereum Accounts
○ Receiving Ether
○ INtro to Transaction?
○ INtro to Blockchains
○ Block Time
○ Smart Contracts
○ The Solidity Programming Language
○ Intro to Contracts
○ Contract Structure
○ Function Declarations
○ Testing with Remix
○ Redeploying Contracts
○ Deployment of Ethereum
○ Intro to Gas and Transactions

Smart Contracts with Solidity
○ Working with Node Js
○ Intro to Contract Deployment
○ Intro to Syntax Highlighters
○ Compiling Solidity

Testing Architecture
Web3 Install Issues on Windows
○ Installing Modules
○ Web3 Versioning
○ Web3 Providers
○ Testing with Mocha
○ Mocha Structure
○ Working with Ganache
○ Refactor to Async/Await

Deployment
○ Deployment with Web3
○ Deployed Inbox Overview
○ Deployment with Infura
○ Wallet Provider Setup
○ Deployment to Rinkeby
○ Observing Deployment on Etherscan
○ Deployed Contracts in Remix

Advanced Smart Contracts
The Lottery Contract
○ Lottery Design
○ Basic Solidity Types
○ Starting the Lottery Contract
○ Working with Arrays
○ Overview of Mappings and Structs
○ Big Solidity Gotcha
○ Sending Ether from Contracts
○ Resetting Contract State
○ Requiring Managers
○ Function Modifiers
○ Returning Players Array
○ Contract Review
○ Working with Test Setup
○ Test Project Updates
○ Test Helper Review
○ Asserting Deployment

Project Setup
○ Directory Structure
○ Single Run Compilation
○ Test File Setup
○ Creating Campaign Instances
○ Accessing Mappings
○ Requiring Minimum Contributions
○ Array Getters
○ One End to End Test
○ Deployment
○ Updated Deploy Code
○ Refactoring Deployment

Additional requirements based on the pre-requisites:
Front-End for Ethereum
○ Real Projects with Ethereum
○ Ethereum Project Infrastructure
○ Working with React for Ethereum