Course by Dominik Teiml
-
Watch Dominik Teiml yellow paper course YPC and read the Yellow Paper.
-
Chapter 1
-
Chapter 2
-
Chapter 3
-
Chapter 4 Blocks, State and Transactions
-
Chapter 5 Gas and Payment
-
Chapter 6 Transaction Execution
-
Chapter 7 Contract Creation
-
Chapter 8 Message Call
-
Chapter 9 Execution Model
-
Chapter 10 Blocktree to Blockchain
-
Appendix B: Recursive Length Prefix
-
Appendix C: Hex encoding
-
Appendix D: Modified Merkle Patricia Trie
-
Appendix E: Precompiled Contracts
-
Appendix F: Signing Transactions
-
Appendix G: Fee Schedule
-
Appendix H: Virtual Machine Specification
-
Appendix I: Genesis Block
-
Appendix J: Eth Hash
-
Appendix K: Anomalies on the main network
-
Alternatively you can look at the python specs
-
Advanced Solidity: Gas Optimization - Jeffrey Scholz
- 2. Calculating The Cost of an Ethereum Transfer
- 3. Example Smart Contract Interactions Part 1
- 4. Example Smart Contract Interactions Part 2
- 5. Example Smart Contract Interactions Part 2
- 6. Heavy and Light Fucntions
- 7. Block Limit
- 8. Gas Efficient Chains
- 9. Prerequisite: Storage Slots
- 10. What are opcodes
- 11. Opcode Gas Cost
- 12. Opcode Debugging Gas Cost
- 13. Function Selectors
- 14. Cost of Doing Nothing: OpCodes
- 15. Cost of Doing Nothing: Sum of Opcodes
- 16. Cost of Doing Nothing: Transaction Data
- 17. Cost of Doing Nothing: Memory Costs
- 18. Non-payable Functions
- 19. Unchecked Arithmetic Part 1
- 20. Unchecked Arithmetic Part 2
- 21. Gas Limit and More on 21,000 Gas
- 22. EIP1559 Part 1
- 23. EIP1559 Part 2
- 24. Solidity Optimizer
- 25. Storage Overview
- 26. More on 5000 gas non-zero to non-zero
- 27. Smaller integers
- 28. Unchanged Storage Values
- 29. Arrays
- 30. Refunds and Setting to Zero Part 1
- 31. Refunds and Setting to Zero Part 2
- 32. ERC20 Transfers
- 33. Storage Cost For Files
- 34. Structs and Strings Part 1
- 35. Variable Packing
- 36. Array Length
- 37. Memory vs Calldata
- 38. Memory Explosion
- 39. Memory is Never Cleared
- 40. Function Names
- 41. Less Than vs Less Than or Equal To
- 42. Bit Shifting
- 43. Revert Early
- 44. Short Circuiting
- 45. Precomputing
-
3 days Complete all 10 Puzzles EVM Puzzles
- Puzzle 1
- Puzzle 2
- Puzzle 3
- Puzzle 4
- Puzzle 5
- Puzzle 6
- Puzzle 7
- Puzzle 8
- Puzzle 9
- Puzzle 10
-
2 Days Ethernaut
- Ethernaut 12 - Privacy
- Ethernaut 13 - Gatekeeper one
- Ethernaut 18 - Magic Number
-
1 Day Gas Puzzles
- Array Sum
- Require
- Ethernaut 19 - Alien Codex
- Do either More EVM Puzzles or Huff Puzzles
- More EVM Puzzles
- Puzzle 1
- Puzzle 2
- Puzzle 3
- Puzzle 4
- Puzzle 5
- Puzzle 6
- Puzzle 7
- Puzzle 8
- Puzzle 9
- Puzzle 10
- Recommended - Huff Puzzles
- Return1.huff
- CallValue.huff
- CalldataLength.huff
- Add1.huff
- MyEtherBalance.huff
- Multiply.huff
- NonPayable.huff
- FooBar.huff
- SimpleStore.huff
- RevertCustom.huff
- RevertString.huff
- SumArray.huff
- Keccak.huff
- MaxOfArray.huff
- Create.huff
- Emitter.huff
- Donations.huff
- SendEther.huff
- BasicBank.huff
- Distributor.huff
- SimulateArray.huff
- More EVM Puzzles
Other
-
Advanced Solidity: Yul and Assembly
- 2. Types
- 3. Basic Operations
- 4. Storage Slots
- 5. Storage Offsets and Bitshifting
- 6. Storage of Arrays and Mappings
- 7. Memory Operations
- 8. How Solidity Uses Memory
- 9. Dangers of Memory Misuse
- 10. Returns, Require, Tuples, Keccak256
- 11. Logs and Events
- 12. Calldata
- 13. Calling Other Contracts
- 14. Dynamic Length Arguments
- 15. Transfer of Value
- 16. Receiving Contract Calls
- 18. Etherscan Issues
- 19. Storing Data in Contract Bytecode
- 20. ERC20 Example Part 1
- 21. ERC20 Example Part 2
- 22. ERC20 Example Part 3
- 23. ERC20 Example Part 4
- 24. ERC20 Example Part 5
- 25. ERC20 Example Part 6
- 26. What We Didn't Cover