创建和编译智能合约
以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)