(Mastering) Solidity, The Ethereum Programming Language
Published 8/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 12.10 GB | Duration: 19h 36m
Published 8/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 12.10 GB | Duration: 19h 36m
A Practical Developer Guide
What you'll learn
Have a basic understanding of the Ethereum blockchain
Know about tools that are used to program in Solidity (Hardhat and Remix)
Have a quick introduction to Solidity
Know how to interact with smart contracts through the ethers and web3 JavaScript libraries
Know about wallets (MetaMask and WalletConnect)
Know how to set up a local test blockchain and how to interact with a blockchain network
Know how to integrate wallets in and how to interact with the blockchain from a user interface
Requirements
This course consists of three parts: some basic theory, tools and integration with a user interface
For the basic theory, you do not need any programming experience
For the tools, it would be good to be familiar with JavaScript, since testing your Solidity code and interacting with a blockchain happens through JavaScript libraries (either 'ethers' or 'web3')
For the user interface, it would be good to be familiar with JavaScript and other web technologies
Description
This course aims to give an overview of what you need to know to program in Solidity. The course currently consists of three parts.In the first part, I explain some basic blockchain concepts.In the second part, I explain tools that are used to develop blockchain applications.This part explains the development tools Hardhat and Remix.You will see Solidity code for making your own cryptocurrency.You will see the JavaScript libraries ethers.js and web3.js that are used to interact with the Ethereum blockchain.You will see how you can connect a wallet with a blockchain application. I will show MetaMask, which is a popular wallet and also WalletConnect, which acts as a bridge to connect multiple kinds of wallets with an application. I will also show how you can transfer cryptocurrencies in MetaMask.You will see how to set up a local test blockchain on your computer and also how to interact with an Ethereum testnet on the Internet.You will see how you can register and configure an Ethereum Name.In the third part, I show how you can make a user interface that interacts with the Ethereum blockchain, it showshow to retrieve the address of a smart contract through an Ethereum Namehow to read data from the blockchain through a default providerhow to connect MetaMask or a wallet through WalletConnect with the user interfacehow to execute functions that write data to the blockchain through a connected wallethow to search for events emitted by a smart contract
Overview
Section 1: Introduction
Lecture 1 Course Contents
Lecture 2 My Background
Lecture 3 Update Schedule
Section 2: Basic Blockchain Theory
Lecture 4 Chapter Overview
Lecture 5 Blockchain Basics
Lecture 6 Consensus Mechanisms
Lecture 7 Blockchain in Practice
Lecture 8 Investing on the Ethereum Blockchain
Lecture 9 Blockchain Demo
Lecture 10 Bitcoin White Paper
Lecture 11 Ethereum Papers
Section 3: Tools: Hardhat
Lecture 12 Chapter Overview
Lecture 13 npm
Lecture 14 Truffle and Hardhat
Lecture 15 Hardhat Setup
Lecture 16 Hardhat Setup Summary
Lecture 17 Visual Studio Code
Lecture 18 Hardhat Sample Project
Lecture 19 Visual Studio Code Extensions
Lecture 20 ERC-20 Standard
Lecture 21 A First Contract
Lecture 22 A First Contract Summary
Lecture 23 Interacting With the Ethereum Blockchain
Lecture 24 Testing Our First Contract
Lecture 25 Testing Our First Contract Summary
Lecture 26 Contract Size Limit
Lecture 27 Test Contract Size Limit
Lecture 28 Test Contract Size Limit Summary
Lecture 29 Hardhat Configuration
Lecture 30 Changing the Hardhat Config
Lecture 31 Warning Against Sloppy Code
Lecture 32 Changing the Hardhat Config Summary
Lecture 33 Hardhat Log
Lecture 34 Hardhat Log Summary
Lecture 35 Configuring Hardhat to Use web3.js
Lecture 36 Configuring Hardhat to Use web3.js Summary
Lecture 37 Change Contract Size Test to web3.js Code
Lecture 38 Change Contract Size Test to web3.js Code Summary
Lecture 39 Change SeedToken Test to web3.js Code
Lecture 40 Change SeedToken Test to web3.js Code Summary
Lecture 41 A Closer Look at Hardhat, Truffle, ethers.js and web3.js
Lecture 42 Consensys Sunsets Truffle and Ganache
Section 4: Tools: MetaMask
Lecture 43 Chapter Overview
Lecture 44 MetaMask Website
Lecture 45 MetaMask Set Up
Lecture 46 Secret Recovery Phrase
Lecture 47 Set Up Hardhat Test Blockchain
Lecture 48 Initialize Hardhat Test Blockchain: Scripts
Lecture 49 Initialize Hardhat Test Blockchain Summary
Lecture 50 Initialize Hardhat Test Blockchain: Run Scripts
Lecture 51 Initialize Hardhat Test Blockchain: MetaMask Check
Lecture 52 Transfer Cryptocurrencies With MetaMask: No Gas Estimate for Test Blockchain
Lecture 53 Transfer Cryptocurrencies With MetaMask Summary
Lecture 54 Transfer Cryptocurrencies With MetaMask: Demonstration
Lecture 55 Transfer Cryptocurrencies With MetaMask: Clear Activity
Lecture 56 Working With Blockchain Networks
Lecture 57 Interact With the Sepolia Blockchain
Lecture 58 Interact With the Sepolia Blockchain Summary
Lecture 59 Private Key Format in Hardhat Configuration
Lecture 60 Recover MetaMask Wallet
Section 5: Tools: Remix
Lecture 61 Chapter Overview
Lecture 62 Remix Introduction
Lecture 63 Accessing Files With Remix
Lecture 64 Remix as a Desktop Application and WalletConnect
Lecture 65 Remix and Solidity Dependencies
Lecture 66 Factory Smart Contract and Deploy Through Remix
Lecture 67 Factory Smart Contract and Deploy Through Remix Summary
Lecture 68 Ethereum Name Service
Section 6: User Interface
Lecture 69 Chapter Overview
Lecture 70 User Interface Overview
Lecture 71 UI: History of Web Frameworks
Lecture 72 UI: Set Up Angular
Lecture 73 UI: Set Up Angular Summary
Lecture 74 UI: Set Up Material Design
Lecture 75 UI: Set Up Material Design Summary
Lecture 76 UI: Connection Bar
Lecture 77 UI: Connection Bar Summary
Lecture 78 Web3: Integration of ethers.js in Angular
Lecture 79 Web3: Integration of ethers.js in Angular Summary
Lecture 80 Web3: Approach to Integrate MetaMask and WalletConnect With ethers.js
Lecture 81 Web3: Connect to MetaMask With the Connection Bar Button
Lecture 82 Web3: Connect to MetaMask With the Connection Bar Button Summary
Lecture 83 Web3: Listen to Changes in the Selected Wallet Account and Network
Lecture 84 Web3: Listen to Changes in the Selected Wallet Account and Network Summary
Lecture 85 UI: Propagate Changes in the Selected Wallet Account and Network to the UI
Lecture 86 UI: Propagate Changes in the Selected Wallet Account and Network Summary
Lecture 87 Web3: Connect Through WalletConnect With the Connection Bar Button
Lecture 88 Web3: Connect Through WalletConnect With the Connection Bar Button Summary
Lecture 89 Web3: Automatically Connect or Disconnect WalletConnect
Lecture 90 Web3: Automatically Connect or Disconnect WalletConnect Summary
Lecture 91 Web3: Change Network and Account With WalletConnect
Lecture 92 Web3: Change Network and Account With WalletConnect Summary
Lecture 93 Web3: Default Provider for Read Access to the Ethereum Blockchain
Lecture 94 Web3: Default Provider for Read Access to the Ethereum Blockchain Summary
Lecture 95 Web3: Interaction With the SeedTokenFactory Smart Contract
Lecture 96 Web3: Interaction With the SeedTokenFactory Smart Contract Summary
Lecture 97 Web3: Fixing the Default Provider for Smart Contract Interaction
Lecture 98 Web3: Fixing the Default Provider for Smart Contract Interaction Summary
Lecture 99 UI: Adding a Button to Create a New Cryptocurrency Token
Lecture 100 UI: Adding a Button to Create a New Cryptocurrency Token Summary
Lecture 101 UI: New Token Dialog Window
Lecture 102 UI: New Token Dialog Window Summary
Lecture 103 UI Fix: Code Cleanup
Lecture 104 UI: Progress Spinner
Lecture 105 UI: Progress Spinner Summary
Lecture 106 Web3: Create Cryptocurrencies on the Blockchain
Lecture 107 Web3: Create Cryptocurrencies on the Blockchain Summary
Lecture 108 UI Fix: Progress Spinner Fix
Lecture 109 UI: Cryptocurrency List Table
Lecture 110 UI: Cryptocurrency List Table Summary
Lecture 111 UI: Cryptocurrency List Table Paginator, Sort and Filter
Lecture 112 UI: Cryptocurrency List Table Paginator, Sort and Filter Summary
Lecture 113 UI: Fetch Cryptocurrency List, Preparation
Lecture 114 UI: Fetch Cryptocurrency List, Preparation Summary
Lecture 115 Web3: Fetch Cryptocurrency List, Retrieve Cryptocurrency Contracts
Lecture 116 Web3: Fetch Cryptocurrency List, Retrieve Cryptocurrency Contracts Summary
Lecture 117 Web3: Fetch Cryptocurrency List, Retrieve Cryptocurrency Data
Lecture 118 Web3: Fetch Cryptocurrency List, Retrieve Cryptocurrency Data Summary
Lecture 119 UI: Cryptocurrency Filter
Lecture 120 UI: Cryptocurrency Filter Summary
Lecture 121 UI: Cryptocurrency Progress Bar
Lecture 122 UI: Cryptocurrency Progress Bar Summary
Lecture 123 UI: Mint Dialog Window
Lecture 124 UI: Mint Dialog Window Summary
Lecture 125 Web3: Mint Cryptocurrency Tokens
Lecture 126 Web3: Mint Cryptocurrency Tokens Summary
Lecture 127 UI: Refresh UI After Minting Cryptocurrency Tokens
Lecture 128 UI: Refresh UI After Minting Cryptocurrency Tokens Summary
Lecture 129 UI: Copy Cryptocurrency Address
Lecture 130 UI: Copy Cryptocurrency Address Summary
Lecture 131 UI: Change Owner Dialog Window
Lecture 132 UI: Change Owner Dialog Window Summary
Lecture 133 Web3: Change the Owner of a Cryptocurrency
Lecture 134 Web3: Change the Owner of a Cryptocurrency Summary
Lecture 135 UI: Refresh UI After Changing the Owner of a Cryptocurrency
Lecture 136 UI: Refresh UI After Changing the Owner of a Cryptocurrency Summary
Lecture 137 Web3: Listen to the Latest Block Number of the Blockchain
Lecture 138 Web3: Listen to the Latest Block Number of the Blockchain Summary
Lecture 139 UI: Create Card and Input Fields for an Event Filter
Lecture 140 UI: Create Card and Input Fields for an Event Filter Summary
Lecture 141 Web3: Filter Events on Block Numbers
Lecture 142 Web3: Filter Events on Block Numbers Summary
Lecture 143 Web3: Filter Events on Indexed Parameters
Lecture 144 Web3: Filter Events on Indexed Parameters Summary
Lecture 145 Web3: Retrieve Values of Event Parameters
Lecture 146 Web3: Retrieve Values of Event Parameters Summary
Lecture 147 UI: Event Table
Lecture 148 UI: Event Table Summary
Lecture 149 UI Fix: Clean Up Event Code
Lecture 150 UI Fix: Clean Up Event Code Summary
Lecture 151 UI Fix: Fetch Token Lists in the Right Order When Switching Networks
Lecture 152 UI Fix: Fetch Token Lists in the Right Order When Switching Networks Summary
Lecture 153 UI Fix: Refresh Token List After Creating a New Token
Lecture 154 UI Fix: Refresh Token List After Creating a New Token Summary
Lecture 155 UI Fix: Handle Error on Switching Networks When Loading Token List
Lecture 156 UI Fix: Handle Error on Switching Networks When Loading Token List Summary
Lecture 157 UI Fix: Update Progress Bar When Tokens Are Loaded
Lecture 158 UI Fix: Update Progress Bar When Tokens Are Loaded Summary
Lecture 159 UI Fix: Search for Events When a New SeedTokenFactory Is Set
Lecture 160 UI Fix: Search for Events When a New SeedTokenFactory Is Set Summary
Lecture 161 UI Fix: Rename Copy Pasted Function (onCreateNewToken)
Aspiring Solidity developers