Course/Ethereum Developer Program
- Introduction to Blockchain Development
- EVM, bytecode, Solidity overview
- Using Hardhat as development environment
- Compiling and testing sample smart contract
- TASK Follow Hardhat tutorial https://hardhat.org/tutorial/
- Solidity deep dive
storage
vsmemory
allocation- Aliasing vs copy of complex types, i.e.,
struct
andarray
- Initial ERC20 token implementation
- EIP-20: Token Standard https://eips.ethereum.org/EIPS/eip-20
mint
,balanceOf
,totalSupply
- Error handling in contracts & Reverting Transactions
- Wrap up ERC20 token implementation
transfer
transferFrom
,approve
andallowance
- modifiers, owner and minter role
- Ownable
- Display in MetaMask wallet
- Write unit tests with Hardhat, Mocha and Chai
- Deploy and interact with a local and remote public network
- Testnet and mainnet
- Setting a wallet up with Metamask/Fuji
- Use Faucets to fund your account
- Kovan Faucet https://ethdrop.dev/
- Create a new account, public and private keyes
- Setup an infura/alchemy account
- Deploy to a remote public network
- Interact with a remote public network
- Test against a remote public network
- Q&A. OpenZeppelin impl,
virtual
andoverride
,EIP-165
andsupportsInterface
- TASK. Setup Metamask or Avalanche's Fuji Wallet, Infura/Alchemy, deploy, test and interact with a smart contract. Follow tutorial at https://hardhat.org/tutorial/deploying-to-a-live-network.html.
- Hardhat & Ethers
- Private & Public Key generation
- Importing to MetaMask and Avalanche's Wallet
- Eliptic Curve background
- One-way/hash functions
- Web App to interact with Smart Contracts
- Using Svelte as front end JS framework
- Using MetaMask to sign and send transactions
- Setting up a project to host both Front-end app and Hardhat contracts
- Deploy locally
- Local development network, Hardhat Network
- Local Hardhat accounts created
- Security concerns
- Best practices
- Reentrancy
- Tools: Slither
- OpenZeppelin Upgradeable contracts
- Contracts Slots
- Permit standard
- Signature structure
- Overview of Eliptic Curve Digital Signature Algoritm (ECDSA)
- Sign transactions
- Using MetaMask to sign transactions
- Validate signed transactions
Mastering Ethereum https://github.com/ethereumbook/ethereumbook is a book for developers, offering a guide to the operation and use of the Ethereum, Ethereum Classic, RootStock (RSK) and other compatible EVM-based open blockchains.
by Andreas M. Antonopoulos, also author of Mastering Bitcoin https://github.com/bitcoinbook/bitcoinbook and Gavin Wood, co-founder of Ethereum and early designer of Solidity.
consensus forking
- What is a blockchain?
- What are transactions and blocks?
- How do P2P systems operate?
- The most prominent consensus mechanisms
- Difference between private, consortium, and public networks
- What does the data structure look like?
- How do Smart Contracts work?
- What is the Ethereum Virtual Machine?
- What is a Hash?
- How do public/private keys work?
- What is a Merkle tree?
- What is the double-spend problem?
- The Ethereum ecosystem and DApps
- What is Mist and how does it work?
- What is Ether, an account, a Faucet?
This project demonstrates a basic Hardhat use case. It comes with a sample contract, a test for that contract, a sample script that deploys that contract, and an example of a task implementation, which simply lists the available accounts.
Try running some of the following tasks:
npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
node scripts/sample-script.js
npx hardhat help