1. 任务背景
装完控制台,可以部署、调用合约了。
2. 任务目标
掌握部署、调用合约的操作。
3. 相关知识点
直接看实操。
4. 任务实操
4.1 编写合约文件
cd /opt/fisco-console/console/contracts/solidity
touch Demo.sol
4.2 编写代码
nano Demo.sol
代码为:
pragma solidity ^0.4.24;
contract Demo{
string name;
function Demo() {
name = "Hello, World!";
}
function get()constant returns(string) {
return name;
}
function set(string n) {
name = n;
}
}
4.3 部署Demo合约
先启动控制台,然后执行,注意需要记住合约地址
# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy Demo
transaction hash: 0x3fd17626d9f77d72f560f9124e11640bd485dbd1413443eda8b3a9279d45b96f
contract address: 0xf5fe7a78d22d031cf5b00cfde628f00d9fba13ec
currentAccount: 0x9ddf8436bf390f807b0a0c06bf08a10af9b933cc
4.4 调用Demo合约
# 查看当前块高
[group:1]> getBlockNumber
1
# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
[group:1]> call Demo 0xf5fe7a78d22d031cf5b00cfde628f00d9fba13ec get
# 查看当前块高,块高不变,因为get接口不更改账本状态
[group:1]> getBlockNumber
1
# 调用set设置name
[group:1]> call Demo 0xf5fe7a78d22d031cf5b00cfde628f00d9fba13ec set "YYDS"
# 再次查看当前块高,块高增加表示已出块,账本状态已更改
[group:1]> getBlockNumber
2
# 调用get接口获取name变量,检查设置是否生效
[group:1]> call Demo 0xf5fe7a78d22d031cf5b00cfde628f00d9fba13ec get
5. 总结
感觉确实很高级,最后输入quit可以退出控制台。