演示如何编写solidity智能合约,以及在remix中运行solidity代码。
在浏览器中搜索remix,找到remix官网,并打开
由于是国内网络,所以访问国外网站较慢,可以耐心等待加载完成,或者科学上网。
加载完成是这样:
app.sol智能合约可以部署到以太坊网络上,然后通过调用 setName
函数来设置名字,再通过调用 getName
函数来获取名字。
// SPDX-License-Identifier: MIT
//指定 Solidity 的版本号,表示该智能合约是用 Solidity 0.8.0 版本编写的
pragma solidity ^0.8.0;//定义一个名为 NameContract 的合约
contract NameContract {
//定义一个私有变量 name,它的值是一个字符串类型。
string private name;//定义一个 Solidity 函数,名为 setName,它是一个公共函数,可以被其他合约或外部账户调用。
//该函数有一个参数 _name,类型为 string memory,表示要设置的名字。
//memory 关键字表示该参数的值将被存储在内存中,而不是存储在合约的状态变量中。
function setName(string memory _name) public {
name = _name;
}//定义一个 Solidity 函数,名为 getName,它是一个公共视图函数(view function),
//该函数不会修改合约的状态变量,只读取合约的状态变量并返回结果。
//该函数没有参数,返回值类型为 string memory,表示返回的名字。
//函数体中的语句 return name; 表示返回合约的状态变量 name 的值作为函数的返回值。
//因为这是一个视图函数,所以不需要使用 memory 或 storage 关键字来指定返回值的存储位置。
function getName() public view returns (string memory) {
return name;
}
}
- // SPDX-License-Identifier: MIT
- //指定 Solidity 的版本号,表示该智能合约是用 Solidity 0.8.0 版本编写的
- pragma solidity ^0.8.0;
-
- //定义一个名为 NameContract 的合约
- contract NameContract {
- //定义一个私有变量 name,它的值是一个字符串类型。
- string private name;
-
- //定义一个 Solidity 函数,名为 setName,它是一个公共函数,可以被其他合约或外部账户调用。
- //该函数有一个参数 _name,类型为 string memory,表示要设置的名字。
- //memory 关键字表示该参数的值将被存储在内存中,而不是存储在合约的状态变量中。
- function setName(string memory _name) public {
- name = _name;
- }
-
- //定义一个 Solidity 函数,名为 getName,它是一个公共视图函数(view function),
- //该函数不会修改合约的状态变量,只读取合约的状态变量并返回结果。
- //该函数没有参数,返回值类型为 string memory,表示返回的名字。
- //函数体中的语句 return name; 表示返回合约的状态变量 name 的值作为函数的返回值。
- //因为这是一个视图函数,所以不需要使用 memory 或 storage 关键字来指定返回值的存储位置。
- function getName() public view returns (string memory) {
- return name;
- }
- }
选择运行智能合约的环境(remix虚拟环境,ganache,本地geth),再点击编译。
右侧是交易信息
觉得有用可以点赞或收藏!