Eridian
eridian.xyzx.comGitHub
  • 📖Eridian Docs
  • Ethereum Dev
    • ✏️Ethereum Notes
      • 🎛️Technical Basics
      • 🪧Ethereum Addresses
      • 📚Ethereum State Explained
      • ⛽Gas Fees Explained
    • 🔧Useful Tools
      • ☁️Ethers
      • *️⃣Ethernal
    • 📝Solidity Notes
      • ❔Interview Questions
        • 🟢1. Easy - Interview Questions
        • 🟠2. Medium - Interview Questions
        • 🟡3. Hard - Interview Questions
        • 🔴4. Advanced - Interview Questions
      • 💡Note Ideas
      • ABI
      • abi.encodePacked
      • Abstract Contracts
      • Arrays
      • Casting
      • CEI - Checks, Effects, Interactions
      • Comments (NATSPEC)
      • Constructor
      • Contract Structure & Versions
      • Data - Storage vs Memory
      • Data - Storage Layout
      • Enum
      • Errors (require & revert)
      • Events
      • EVM Opcodes
      • External Contract Interaction
      • 🏗️External Dependencies
      • Functions
      • Function Modifiers
      • If / Else / For / While Loops
      • Inheritance
      • Interfaces
      • Keccak256
      • Library
      • Mappings
      • msg.sender
      • Objects & Types
      • OpenZeppelin
      • Payable
      • Public State Variable vs Function
      • Receive & Fallback
      • Security
      • Self Destruct
      • Send ETH (transfer, send, call)
      • Stack Too Deep
      • Structs
      • Style Guide
      • Time Units
      • Try / Catch
      • Typecasting
      • Using Directive
      • Variables, Consts & Immutable
      • Withdraws
    • ⚒️Foundry Notes
      • 📖Docs & GitHub Pages
      • 🤝Useful Commands
        • 🔨Anvil
        • 🪄Cast
        • 🔥Forge
      • 🧪Tests
        • Cheatcodes
      • 📝Useful Scripts
        • Deploy Contract Using Hex
    • 👾DeFi Challenges
      • 👨‍🚀Ethernaut
        • Ethernaut - Template
        • Level 1 - Fallback ⏺
        • Level 2 - Fallout ⏺
        • Level 3 - Coin Flip ⏺⏺
        • Level 4 - Telephone ⏺
        • Level 5 - Token ⏺⏺
        • Level 6 - Delegation ⏺⏺
        • Level 7 - Force ⏺⏺⏺
        • Level 8 - Vault ⏺⏺
        • Level 9 - King ⏺⏺⏺
        • Level 10 - Re-entrancy ⏺⏺⏺
        • Level 11 - Elevator ⏺⏺
        • Level 12 - Privacy ⏺⏺⏺
        • Level 13 - Gatekeeper 1 ⏺⏺⏺⏺
        • Level 14 - Gatekeeper 2 ⏺⏺⏺
        • Level 15 - Naught Coin ⏺⏺⏺
        • Level 16 - Preservation ⏺⏺⏺⏺
        • Level 17 - Recovery ⏺⏺⏺
        • Level 18 - Magic Number ⏺⏺⏺
        • Level 19 - Alien Codex ⏺⏺⏺⏺
        • Level 20 - Denial ⏺⏺⏺
        • Level 21 - Shop ⏺⏺
        • Level 22 - Dex ⏺⏺
        • Level 23 - Dex Two ⏺⏺
        • Level 24 - Puzzle Wallet ⏺⏺⏺⏺
        • Level 25 - Motorbike ⏺⏺⏺
        • Level 26 - DoubleEntryPoint ⏺⏺
        • Level 27 - Good Samaritan ⏺⏺⏺
        • Level 28 - Gatekeeper 3 ⏺⏺⏺
        • Level 29 - Switch ⏺⏺⏺⏺
        • Level 30 - Higher Order ⏺⏺⏺⏺
        • Level 31 - Stake ⏺⏺⏺
      • 💸Damn Vulnerable DeFi
    • 🔍Auditing
      • 🗞️Exploit Resources
      • 🔧Audit Tools
    • 🤖MEV
  • Infrastructure Docs
    • 💻Hardware
    • 🐧Linux
      • 📖Linux Glossary
      • ⌨️Linux Commands
      • 💾Installation
      • 🏗️Maintenance
      • 🖥️Ubuntu Desktop
      • 🛜ZeroTier
      • 🎞️TMUX
      • 🔵Bluetooth
    • ⛓️Ethereum Clients
      • ⚙️Execution Clients
        • ⛏️Geth
          • 💾Installation
          • ⌨️Useful Commands
          • 🏗️Maintenance
        • 🐻Erigon
          • 💾Installation
          • ⌨️Useful Commands
          • 🏗️Maintenance
        • 🧶Besu
          • 💾Installation
          • ⌨️Useful Commands
          • 🏗️Maintenance
      • 🤝Beacon Clients
        • 💡Lighthouse
          • 💾Installation
          • ⌨️Useful Commands
          • 🏗️Maintenance
        • 🪅Teku
          • 💾Installation
          • ⌨️Useful Commands
          • 🏗️Maintenance
      • 💎Validator Clients
        • 💡Lighthouse
          • 💾Installation
          • ⌨️Useful Commands
          • 🏗️Maintenance
      • ➕L2 Clients
        • 🔵Base
          • 💾Installation
          • ⌨️Useful Commands
          • 🏗️Maintenance
      • 💰MEV Boost
        • 💾Installation
        • 🏗️Maintenance
    • 🚨Alerting and Monitoring
      • 🔥Prometheus
      • 🌡️HealthChecks.io
      • 📟PagerDuty
  • General Dev
    • 💾Git Notes
      • Repos
      • Committing changes
      • Branches
      • Merging & Rebasing
      • PRs
Powered by GitBook
On this page
  • 4.1 What addresses to the ethereum precompiles live at?
  • 4.2 Describe what “liquidity” is in the context of Uniswap V2 and Uniswap V3.
  • 4.3 If a delegatecall is made to a contract that makes a delegatecall to another contract, who is msg.sender in the proxy, the first contract, and the second contract?
  • 4.4 What is the difference between how a uint64 and uint256 are abi-encoded in calldata?
  • 4.5 What is read-only reentrancy?
  • 4.6 What are the security considerations of reading a (memory) bytes array from an untrusted smart contract call?
  • 4.7 If you deploy an empty Solidity contract, what bytecode will be present on the blockchain, if any?
  • 4.8 How does the EVM price memory usage?
  • 4.9 What is stored in the metadata section of a smart contract?
  • 4.10 What is the uncle-block attack from an MEV perspective?
  • 4.11 How do you conduct a signature malleability attack?
  • 4.12 Under what circumstances do addresses with leading zeros save gas and why?
  • 4.13 What is the difference between payable(msg.sender).call{value: value}("") and msg.sender.call{value: value}("")?
  • 4.14 How many storage slots does a string take up?
  • 4.15 How does the --via-ir functionality in the Solidity compiler work?
  • 4.16 Are function modifiers called from right to left or left to right, or is it non-deterministic?
  • 4.17 If you do a delegatecall to a contract and the opcode CODESIZE executes, which contract size will be returned?
  • 4.18 Why is it important to ECDSA sign a hash rather than an arbitrary bytes32?
  • 4.19 Describe how symbolic manipulation testing works.
  • 4.20 What is the most efficient way to copy regions of memory?
  • 4.21 How can you validate on-chain that another smart contract emitted an event, without using an oracle?
  • 4.22 When selfdestruct is called, at what point is the Ether transferred? At what point is the smart contract’s bytecode erased?
  • 4.23 Under what conditions does the Openzeppelin Proxy.sol overwrite the free memory pointer? Why is it safe to do this?
  • 4.24 Why did Solidity deprecate the “years” keyword?
  • 4.25 What does the verbatim keyword do, and where can it be used?
  • 4.26 How much gas can be forwarded in a call to another smart contract?
  • 4.27 What does an int256 variable that stores -1 look like in hex?
  • 4.28 What is the use of the signextend opcode?
  • 4.29 Why do negative numbers in calldata cost more gas?
  • 4.30 What is a zk-friendly hash function and how does it differ from a non-zk-friendly hash function?
  • 4.31 What does a metaproxy do?
  • 4.32 What is a nullifier in the context of zero knowledge, and what is it used for?
  • 4.33 What is SECP256K1?
  • 4.34 Why shouldn’t you get price from slot0 in Uniswap V3?
  • 4.35 Describe how to compute the 9th root of a number on-chain in Solidity.
  • 4.36 What is the danger of using return in assembly out of a Solidity function that has a modifier?
  • 4.37 Without using the % operator, how can you determine if a number is even or odd?
  • 4.38 What does codesize() return if called within the constructor? What about outside the constructor?
Edit on GitHub
  1. Ethereum Dev
  2. Solidity Notes
  3. Interview Questions

4. Advanced - Interview Questions

Last updated 6 months ago

All of these questions can be answered in three sentences or less.

4.1 What addresses to the ethereum precompiles live at?

4.2 Describe what “liquidity” is in the context of Uniswap V2 and Uniswap V3.

4.3 If a delegatecall is made to a contract that makes a delegatecall to another contract, who is msg.sender in the proxy, the first contract, and the second contract?

4.4 What is the difference between how a uint64 and uint256 are abi-encoded in calldata?

4.5 What is read-only reentrancy?

4.6 What are the security considerations of reading a (memory) bytes array from an untrusted smart contract call?

4.7 If you deploy an empty Solidity contract, what bytecode will be present on the blockchain, if any?

4.8 How does the EVM price memory usage?

4.9 What is stored in the metadata section of a smart contract?

4.10 What is the uncle-block attack from an MEV perspective?

4.11 How do you conduct a signature malleability attack?

4.12 Under what circumstances do addresses with leading zeros save gas and why?

4.13 What is the difference between payable(msg.sender).call{value: value}("") and msg.sender.call{value: value}("")?

4.14 How many storage slots does a string take up?

4.15 How does the --via-ir functionality in the Solidity compiler work?

4.16 Are function modifiers called from right to left or left to right, or is it non-deterministic?

4.17 If you do a delegatecall to a contract and the opcode CODESIZE executes, which contract size will be returned?

4.18 Why is it important to ECDSA sign a hash rather than an arbitrary bytes32?

4.19 Describe how symbolic manipulation testing works.

4.20 What is the most efficient way to copy regions of memory?

4.21 How can you validate on-chain that another smart contract emitted an event, without using an oracle?

4.22 When selfdestruct is called, at what point is the Ether transferred? At what point is the smart contract’s bytecode erased?

4.23 Under what conditions does the Openzeppelin Proxy.sol overwrite the free memory pointer? Why is it safe to do this?

4.24 Why did Solidity deprecate the “years” keyword?

4.25 What does the verbatim keyword do, and where can it be used?

4.26 How much gas can be forwarded in a call to another smart contract?

4.27 What does an int256 variable that stores -1 look like in hex?

4.28 What is the use of the signextend opcode?

4.29 Why do negative numbers in calldata cost more gas?

4.30 What is a zk-friendly hash function and how does it differ from a non-zk-friendly hash function?

4.31 What does a metaproxy do?

4.32 What is a nullifier in the context of zero knowledge, and what is it used for?

4.33 What is SECP256K1?

4.34 Why shouldn’t you get price from slot0 in Uniswap V3?

4.35 Describe how to compute the 9th root of a number on-chain in Solidity.

4.36 What is the danger of using return in assembly out of a Solidity function that has a modifier?

4.37 Without using the % operator, how can you determine if a number is even or odd?

4.38 What does codesize() return if called within the constructor? What about outside the constructor?

📝
❔
🔴
Over 150 interview questions for Ethereum Developers - RareSkillsRareSkills
Logo