这个系列是 solidity8. 版本的教程,既然学习了 solidity 就应该明白智能合约是啥,在此系列文章中将不赘述基础概念,只讲解对应的语法,希望读者理解。
环境
solidity 版本:8. (2022年9月8日 最新版本) IDE:https://remix.ethereum.org/(在线IDE)
一、solidity IDE界面介绍
以下图片时 solidity 智能合约开发的在线 IDE remix:
点击 greate 可以创建自己的一个工程,并且默认自带了 contracts、scripts以及tests 目录:
此时我们可以点击对应的按钮新建文件夹或者新建一个文件:
读者可尝试用鼠标悬停与按钮之上查看对应的信息,在此我点击tests目录下,在tests目录下创建一个01_test.sol 文件,sol 后缀表示 solidity 文件:
创建完毕后可在右侧自动打开的 sol 文件中进行代码编写。
二、代码编写
协议
在代码编写的第一行一般是协议说明,在此咱们使用其他 sol 文件中的协议说明:
代码语言:javascript复制// SPDX-License-Identifier: GPL-3.0
在这里使用的协议是 GPL-3.0,关于协议的声明是使用注释表示,想了解更多协议的直接搜索相关知识即可。
版本
接下来编写对应solidity 的版本号:
代码语言:javascript复制pragma solidity >=0.7.0 <0.9.0;
pragma solidity 表示声明的版本号信息,在此说明版本信息是大于等于 0.7. 版本和小于 0.9.0 版本,又可直接指定版本信息:
代码语言:javascript复制pragma solidity 0.8.16;
也可添加 ^ 表示此合约是在该版本之上:
代码语言:javascript复制pragma solidity ^0.8.0;
合约
接着是编写合约部分:
代码语言:javascript复制contract Hello{
}
其中 contract 表示定义一个合约,Hello 为合约名,其花括号包裹的内容为合约内容。接着我们在合约内部创建一个对应的 string 对象:
代码语言:javascript复制string public say="Hello 1_bit";
此时 string 表示当前需要创建的变量类型,public 表示当前类型的作用范围,public 表示外部可见,其 say 是变量名称,之后的等于号表示赋值,则 剩下的 Hello 1_bit 表示其内容,用双引号标记。
此时所有代码如下:
代码语言:javascript复制// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract Hello{
string public say="Hello 1_bit";
}
三、编译部署
接着我们点击编译:
点击编译后,可以看到有版本号选择:
选择 sol 代码中所指定的对应版本信息进行编译,接着点击编译后将会出现 绿色√ 表示编译通过:
最后点击 Deploy 部署合约:
部署成功后将会看见成功部署的提示,并且在 Deployed Contracts 下会出现已成功部署的合约:
此时展开合约查看,可见 say 变量:
点击 say 变量后可查看对应的 say 存储中的内容:
不过需要注意,在合约中字符串变量存储过多内容会影响 Gas 消耗。
若在 contract 中删除 public :
部署合约后 say 将不可见。