✅Web3 Security Notes
Table of contents
✅ ABI Encoding behaves differently in memory and calldata
✅ ecrecover needs zero address check because of geth implementation instead of the precompile
✅ Large uint casts to int -> overflow

✅ Solidity' return is different from Yul's return
✅ bytes is different from bytes32
✅ return; is equivalent to STOP opcode
✅ create2 precomputing address should consider constructor's input parameters
✅ Huff __FUNC_SIG() is done during the compilation phase
✅ msg.sender in forge script
✅ SELFDESTRUCT deletes bytecode at the very end of tx
✅ bytes32 pads 0's on the right


✅ UDMV
✅ vm.startPrank() can set both msg.sender and tx.origin

✅ One way to silence linter on unused variable

✅ msg.sender when calling external function using this keyword
this keyword✅ selfdestruct after Pectra update -> EIP-6780
Last updated
