A collection of EVM related information. This is a repo that I created for myself to keep track of all the useful links/information I have come across related to the EVM and put it in one place. I made it public in case anyone else wants to use it to explore specific EVM related topics. This document is a work in progess and will continually be updated.
Solidity -> Bytecode -> Opcodes
The EVM chapter in the Ethereum Book
EVM Puzzles: Use calldata, calvalues and opcodes to solve EVM challenges
Hardhat (for when the task is outside of the bounds of Foundry)
Tenderly: Block explorer that provides very detailed transaction info.
Smart contract security - key principles
Comprehensive list of known attack vectors and common anti-patterns
Smart Contract Programmer's Hack Solidity Playlist
Smartbugs: A curated dataset of vulnerable solidity smart contracts
Use Slither AND Mythril together for automated vunerability testing. This does not replace an audit. This is like scanning a contract at a high level and only picks up ~37% of vunerabilities accurately
List of all up to date Solidity compiler bugs
Damn Vulnerabile Defi: Smart contract offensive security challenges (Or try the Foundry Version)
Solcurity: A security and code quality checklist
Solmate: gas optimized building blocks for smart contract development.
How arithmetic with values less than 32bytes are handled and why it costs more gas
Use the selfbalance()
instruction instead of address(this).balance
Use if iszero(x)
instead of if (x)
ControlCPlusControlV's Yul (and Some Solidity) Optimizations and Tricks