Skip to content

Latest commit

 

History

History
179 lines (158 loc) · 5.56 KB

README.md

File metadata and controls

179 lines (158 loc) · 5.56 KB

rareskills

Course by Dominik Teiml

Week 1

  • My notes for yellow paper

  • 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

Week 2

  • 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

Week 3

  • 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

Week 4 - 5

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

Week 6