创建和编译智能合约

创建和编译智能合约

以Solidity编写的智能合约为例,为了将合约代码编译为EVM二进制,需要安装Solidity的编译器solc:

apt-get install solc

在这里插入图片描述
查看solc是否安装成功:

solc --help

在这里插入图片描述
查看solc的版本:

solc --version

在这里插入图片描述
新建一个智能合约:

vim test.sol

代码内容如下:
pragma solidity ^0.5.0是solc的版本, 编写一个简单的智能合约,以下为求两个数的和。

pragma solidity ^0.5.0;
contract test3 {
   
    uint x;
    uint y;
    
    function set(uint _x, uint _y) public {
        x = _x;
        y = _y;
    }
    
    function getAdd() public view returns(uint) {
        return x + y;
    }
}

用solc获得合约编译后的EVM编码:
语句如下

solc --bin test.sol

在这里插入图片描述
再用solc获得合约的JSON ABI,其中规定了合约的接口,包括可调用的合约方法、变量、事件等:

solc --abi test.sol

在这里插入图片描述
回到Geth的JavaScript环境命令行界面,用变量记录上述两个值,要在code前加0x前缀
在这里插入图片描述
在这里插入图片描述
可以通过

txpool.status

查看是否未确认的交易
在这里插入图片描述

新注册两个账户:
在这里插入图片描述
解锁账户,方便部署合约:

personal.unlockAccount("0xfd618b872a54d8accab5317553a130418b642698")

在这里插入图片描述
使用上述定义的 abi 变量生成合约信息:

myTest=eth.contract(abi)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39905917/article/details/84404710