This article is sponsored by the currency Community (bihu.com) content support program.
In the first part of the series, we learned the basics of EVM compilation and also learned how ABI encoding allows external programs to communicate with contracts. In this article, we'll learn how a contract is created from scratch.
Related articles in this series (in order): Introduction to EVM Assembly code (part 1th) Presentation method for fixed-length data types (part 2nd) representation method for Dynamic Data types (part 3rd) ABI encodes the way external method calls (part 4th)
The EVM bytecode we see at the moment is quite clear, and there is no hidden magic in EVM's execution instructions from the top down. The process of creating a contract is more interesting, and it blurs the boundaries between the data and the code.
When learning contracts are created, we'll see that sometimes the data is code, and sometimes the code is the data.
Bring your favorite magic hat.