(Mastering) Solidity, The Ethereum Programming Language

Posted By: ELK1nG

(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

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