What is initcode?

  • Contract creation code
  • Contract Constructor logic and parameters
  • Generate the contract runtime bytecode
  • The bytecode in Remix "Compilation details" for a contract

Runtime Bytecode

  • Contract code
    • No constructor and parameters
    • This restricts constructor execution after contract deployment
  • Stored on-chain
  • Also known as Deployed Bytecode
  • init code vs runtime code

Lab

Follow the instructions on the readme file of create2-upgrade

References