..
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 编译器源码,时间充裕了再补充上来。