Ethereum and Solidity: The Complete Developer's Guide
- Description
- Curriculum
- FAQ
- Reviews
Smart Contracts? They’re here. The Ethereum Blockchain? Covered. Solidity? Yep!
There can be no understating it: Ethereum and Blockchain technology is the most disruptive force in years. Companies cannot hire developers who understand blockchain technologies fast enough, but there are a tiny number of resources published to help you truly understand what blockchains are used for, let alone build apps with them. That’s the purpose of this course: to be the best resource online for learning about Ethereum, blockchains, and how to build apps with this new technology.
The development community is still figuring out the best way to use Ethereum in the creation of new and exciting apps. I spent a tremendous amount of time to research and create best practice for interfacing with Ethereum from Javascript. I can’t overstate it enough; this course will show you the best and most easily repeatable patterns for creating production-ready apps with Ethereum.
What tools and libraries are used?
The Ethereum tech ecosystem is in constant change. Don’t be fooled by other courses that mention how you’ll learn a dozen different libraries! Every library that you’ll use with Ethereum breaks and is deprecated on a near-weekly basis! Instead, this course will teach you how to assemble your own boilerplate package to develop, compile, and test Smart Contracts. By learning the core technologies, you’ll be prepared to adjust to Ethereum no matter how the ecosystem changes.
What is Ethereum?
Ethereum is a cryptocurrency much like Bitcoin, and it has been heralded as Bitcoins successor. Whereas Bitcoin currently has issues scaling with an increasing backlog of transactions, Ethereum is poised to surpass Bitcoin in performance, popularity, and value. Ethereum was created to help developers like you create applications focused around transferring money or value from one party to another.
What is Solidity?
Solidity is a programming language for writing Smart Contracts. Essentially, think of it as a way to control a bank account with code. With Solidity, we can write applications that simulate a crowd funding campaign, a lottery, a loan, or any other type of financial instrument. Don’t be intimidated by learning ‘another’ programming language; Solidity is known to be quite similar to Javascript and exceptionally easy to pick up for anyone who has previous JS experience. This course will give you all the tools you need to master Solidity.
-
1Introduction
-
2Course Resources
-
3A Short History Lesson
-
4Link to Original Bitcoin White Paper
-
5What is Ethereum?
-
6Interfacing with Ethereum Networks
-
7Updated Metamask Setup for new UI
-
8Metamask Setup
-
9Ethereum Accounts
-
10A Note About the Faucet
-
11Receiving Ether
-
12What's a Transaction?
-
13Why'd We Wait?
-
14A Quick Note
-
15Basic Blockchains
-
16Block Time
-
17Smart Contracts
-
18The Solidity Programming Language
-
19Updated Remix Instructions for new UI - Do Not Skip
-
20Our First Contract
-
21Contract Structure
-
22Function Declarations
-
23Deploying Contract in New Remix UI
-
24Testing with Remix
-
25Redeploying Contracts
-
26Behind the Scenes of Deployment
-
27More on Running Functions Than You Want to Know
-
28Wei vs Ether
-
29Gas and Transactions
-
30Mnemonic Phrases
-
31Getting More Test Ether
-
32Rinkeby Not Working?
-
33Getting Ether From the Official Rinkeby Faucet
-
34Installing Node.js, npm and Git
-
35Contract Deployment
-
36Completed Boilerplate
-
37Boilerplate Requirements
-
38Project File Walkthrough
-
39Syntax Highlighters
-
40Compiling Solidity
-
41Invalid asm.js or Constructor Deprecation Warning
-
42The Compile Script
-
43Testing Architecture
-
44Installing Modules
-
45Web3 Versioning
-
46Web3 Providers
-
47Testing with Mocha
-
48Mocha Structure
-
49Fetching Accounts from Ganache
-
50Refactor to Async/Await
-
51Deployment with Web3
-
52Deployed Inbox Overview
-
53Asserting Deployment
-
54Verifying the Initial Message
-
55Testing Message Updates
-
56Deployment with Infura
-
57Infura Signup
-
58Super Important Note about Seed / Recovery Phrase Security
-
59Bug in Latest Version of truffle/hdwallet-provider
-
60Wallet Provider Setup
-
61Deployment to Rinkeby
-
62Observing Deployment on Etherscan
-
63Remix Permissions and Metamask
-
64Deployed Contracts in Remix
-
65Project Review
-
66Updating Your Inbox Project to Solc v0.8.9
-
67The Lottery Contract
-
68Lottery Design
-
69Reminder on Updated Remix UI
-
70Basic Solidity Types
-
71Starting the Lottery Contract
-
72The Message Global Variable
-
73Overview of Arrays
-
74Overview of Mappings and Structs
-
75Big Solidity Gotcha
-
76Entering the Lottery
-
77Validation with Require Statements
-
78The Remix Debugger
-
79Pseudo Random Number Generator
-
80Selecting a Winner
-
81Sending Ether from Contracts
-
82Resetting Contract State
-
83Requiring Managers
-
84Function Modifiers
-
85Returning Players Array
-
86Contract Review
-
87Completed Boilerplate - Do Not Skip
-
88New Test Setup
-
89Test Project Updates
-
90Test Helper Review
-
91Asserting Deployment
-
92Entering the Lottery
-
93Asserting Multiple Players
-
94Try-Catch Assertions
-
95Testing Function Modifiers
-
96End to End Test