1. EVM memory vs storage vs calldata layout
When a user does a transaction it goes in the form of calldata which have function selector with 4 bytes and abi encoding with 32 bytes of data(static). Then it goes to the EVM which copy data from calldata to memory(not all) which β¬οΈ
As a Smart Contract Engineer, Slap yourself if you cannot clearly explain at least 10 of the following:
1. EVM memory vs storage vs calldata layout
2. Storage slot packing & inheritance slot collisions
3. Transient storage (EIP-1153) use cases
4. delegatecall context preservation & storage layout traps
5. Proxy patterns: Transparent vs UUPS vs Beacon
6. Storage gaps in upgradeable contracts
7. Diamond pattern (EIP-2535) & facet selector clashes
8. Function selector collisions & 4-byte clashing attacks
9. ABI encoding vs encodePacked hash collisions
10. Checks-Effects-Interactions ordering
11. Reentrancy: single-function, cross-function, cross-contract, read-only
12. ERC-777 hooks & callback reentrancy surface
13. Gas griefing via return-bomb / unbounded returndata
14. 63/64 gas forwarding rule (EIP-150)
15. try/catch failure modes & bubbling reverts
16. Custom errors vs require strings gas trade-offs
17. SafeMath obsolescence & 0.8 overflow semantics
18. Unchecked blocks: when they're safe
19. Signed vs unsigned integer pitfalls in arithmetic
20. Fixed-point math & precision loss ordering
21. Front-running & sandwich attack mechanics
22. Commit-reveal schemes & MEV mitigation
23. Flashloan-based price oracle manipulation
24. TWAP oracles & manipulation cost analysis
25. EIP-712 typed structured signing
26. Signature malleability & ecrecover(0) handling
27. Replay protection across chains (chainId binding)
28. Permit (EIP-2612) & gasless approvals
29. Nonce management for meta-transactions
30. Account abstraction (EIP-4337) UserOp lifecycle
31. EIP-7702 set-code-for-EOA implications
32. CREATE vs CREATE2 address derivation
33. Metamorphic contracts & selfdestruct redeployment
34. selfdestruct post-Cancun (EIP-6780) semantics
35. Init-code vs runtime bytecode distinction
36. Immutable vs constant storage mechanics
37. Gas refund mechanics & SSTORE gas accounting (EIP-2929/3529)
38. Access list transactions (EIP-2930)
39. Warm vs cold storage access costs
40. Yul / inline assembly memory safety
41. Free memory pointer (0x40) discipline
42. Scratch space (0x00β0x3f) misuse
43. Bit manipulation & masking for packed structs
44. ERC-20 approve race condition
45. Fee-on-transfer & rebasing token integration breakage
46. ERC-721 safeTransfer reentrancy via onERC721Received
47. ERC-1155 batch transfer accounting
48. ERC-4626 vault inflation / donation attacks
49. First-depositor share-price manipulation
50. Rounding direction (round up vs down) in vault math
51. Pull-over-push payment patterns
52. Block.timestamp manipulation bounds
53. blockhash limitations & on-chain randomness fallacies
54. VRF integration & request-fulfill patterns
55. Merkle proof verification & second-preimage attacks
56. Bitmap-based airdrop claim tracking
57. Multicall & msg.value reuse across calls
58. Delegatecall to untrusted code
59. tx.origin phishing vector
60. Gas-efficient storage clearing for refunds
61. Packed storage write ordering for gas
62. Cross-contract call gas stipend assumptions
63. Forced ETH via selfdestruct breaking invariants
64. Initialization front-running on proxies
65. Signature replay across forks
66. L2 sequencer downtime oracle staleness
67. Optimistic rollup 7-day withdrawal mechanics
68. Blob transactions (EIP-4844) & calldata cost shifts
69. Precompiles (ecrecover, modexp, pairing checks)
70. BLS signature aggregation verification
71. Reentrancy guards vs transient storage locks
And if you only know 10 β kindly return the "Senior Smart Contract Engineer" title.