区块链 - 智能合约入门solidity

目录

一、代码

二、解释

三、实战

1.打开网站

2.编译合约

3.部署合约

4.交互

这是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",则可以读取对应的数,如图:

参考:链接

相关推荐
重明链迹实验室1 小时前
重明链迹丨每周区块链安全要闻(0921-0927)
安全·web3·区块链
爱签AI电子合同6 小时前
电子合同上手成本怎么测?易用性维度专项测评
服务器·人工智能·智能合约·企业微信
AIFQuant7 天前
ETF行情API接入踩坑记:从报错到跑通的七个问题
python·金融·区块链·etf·基金
磐链科技7 天前
DApp 前端开发指南:钱包连接与链上数据交互实践
区块链·智能合约
磐链科技7 天前
DApp 智能合约开发详解:Solidity 编写、测试与部署全流程
区块链
ACME20447 天前
江浙沪商铺投资胜负手
区块链
baopixiaoz8 天前
BeeQuant × BeeAgent:用AI加速策略验证
大数据·人工智能·python·区块链
木西8 天前
把 NEAR 的 “链抽象与 AI 智能体” 搬进以太坊:用 Solidity 0.8.28 打造元交易意图结算核心底座
智能合约·solidity·以太坊
磐链科技9 天前
区块链开发公司发展趋势分析:智能合约、DApp与行业数字化应用探索
区块链·智能合约