目录
这是ETH以太坊中智能合约版hello word。
一、代码
javascript
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
二、解释
// SPDX-License-Identifier: GPL-3.0
声明本合约使用 GPL-3.0 开源许可证,属于规范写法。
pragma solidity >=0.4.16 <0.9.0;
指定编译器版本:使用 0.4.16 到 0.8.XX 的任何 Solidity 编译器都可以编译(不包括 0.9.0)。
contract SimpleStorage {
定义一个名为 SimpleStorage 的合约,相当于其他语言里的"类"。
uint storedData;
声明一个状态变量 storedData,类型是 uint(即 uint256,无符号整数,0~2²⁵⁶-1)。
这个变量会被永久存储在区块链上,初始值是 0。
function set(uint x) public {
storedData = x;
}
定义一个公开的函数 set,接收一个 uint 类型的参数 x。
调用这个函数时,会把传入的 x 值赋值给状态变量 storedData,从而修改链上存储的数据。
每次调用都需要支付 gas,因为它修改了区块链状态。
function get() public view returns (uint) {
return storedData;
}
定义一个公开的只读函数 get,不带参数,返回一个 uint 类型的值。
view 关键字表示这个函数只读取数据,不会修改区块链状态。
它直接返回当前存储在链上的 storedData 值。总结(一句话功能)这个合约实现了区块链上最简单的"可读写变量":
- 用 set(520) 可以把链上数字改成 520
- 用 get() 可以读取当前链上存的数字是多少
三、实战
1.打开网站
打开Remix网站,然后如下:

2.编译合约
点击左边的编译按钮。

如果编译成功,会出现一个绿色的勾:

3.部署合约
如图,Environment 选 "Remix VM (Cancun)",点橙色的 【Deploy】 按钮 。

4.交互
部署完后,左侧往下拉,展开 就可以看到如图了。

先输入set右边的数字,然后点击"set";再点击"get",则可以读取对应的数,如图:

参考:链接