When a LGCY Solidity smart contract is compiled, the LGCY Virtual Machine reads the compiled bytecode. The bytecode consists of a section for code deployment, contract code, and the Auxdata. The Auxdata is the source code’s cryptographic fingerprint, used for verification. The deployment bytecode runs the constructor function and sets up the initial storage variables. The deployment code also calculates the contract code and returns it to the LVM. The ABI is a JSON file that describes a LGCY smart contract’s functions. This file defines the function names, their payability, the function return values, and their state mutability.