This week, I had the opportunity to dig around Optimism's Fault Proof Alpha codebase, trying to catch something for their bounty. A few hours in, I stumbled upon a new concept for me called ClonesWith ImmutableArgs which took me a few hours to fully grasp.
1/10
In terms of implementation, for this system to work the proxy should be deployed with the extra code (which adds its immutable variables to the calldata) and the implementation should inherit some helper functions to allow the it to access the variables in calldata.
9/10
In order to safely interact with contracts and verify their source code, the Solidity compiler automatically generates the contract metadata: a file containing information about the compiler version, the sources used, the ABI and NatSpec documentation. 1/8
Automatic Interface Generation and NatSpec - By retrieving the metadata file, anyone can access the ABI and NatSpec user documentation, which can be used to automatically generate a user interface for the contract with human-readable function descriptors. 8/8