..

solidity 合约的基本流程

solidity 这个语言就是写合约的,所以也比较轻,不复杂。

开发工具 remix 1

这是写 solidity 的官方IDE,基于网页的,也有针对不同平台的。 比如我用的就是 Windows 平台的非安装版的。

写个hello world

pragma solidity >=0.7.0 <0.9.0;

contract Helloworld {

     uint256 number = 7;
     
    function retrieve() public view returns (uint256){
        return number;
    }
    
      function get_string() public view returns(string memory) {
        return "Hello world";
    }
}

就是一个 retrieve 方法。

部署 & 调用

基本的这些概念不普及了。 使用 remix 工具,就可以完成这两步操作。
Deploy 就是部署操作。 如果没有错误则提示部署成功, 在左侧出现合约中的方法。 点击方法名就可以执行看结果了。


需要关注的几个地方

1) functionhash

{
	"e3135d14": "get_string()",
	"2e64cec1": "retrieve()"
}

2) ABI
后续文章详解。

3) ByteCode
后续文章详解。

通过这个流程会得到 evm 需要的基本数据,拼接好后,就可以扔给 evm 执行了。
其中,solidity 的ASSEMBLY部分,就是编译后的结果,evm 也是按照这个顺序执行了,之前也分析了一部分 solidity 编译器源码,时间充裕了再补充上来。