前段时间被Solidity 限制住手脚,发挥点儿主观能动性啃下它了,现在开贴教程。
不知道能写多少,有多少写多少。每个教程都有案例&作业,有兴趣就跟帖,大家互相提携。
萌新认证:HelloWorld_1.sol
这个合约我们只实现一个功能:声明一个字符串变量,然后赋值,然后能够输出它。
这里就不使用 platon-truffle 工具了,对萌新不友好,我们用以太坊在线编辑器 Remix 来实践。
// HelloWorld_1.sol
// 声明我们使用的 Solidity 版本,有些书说 ^ 表示使用最新版本,有些说表示向上兼容。
// 我们不管这些,只需要明白 ^0.4.26 是指使用 Soldity 的 0.4.26 版本,且不会用到 0.5.0 以上。
pragma solidity ^0.4.26;
// 每一个合约开头就这样,contract表示要写一个合约了,差不多是其他语言的class,
// 然后合约名 HelloWorld_1
contract HelloWorld_1{
// 编码规范,这里用四个空格缩进
//(当然也可以用一个 tab【不过有些人的 tab 是两个空格,我觉得不好看】)
// 声明一个字符串变量 content,它的值是 HelloWorld
string content = "HelloWorld";
// 定义一个函数,用于输出 content 内容
// 这里的 public 和 view 都是修饰符
// public: 任何地址都可以调用该函数
// view: 自由调用,只读取不改变合约状态
function getContent() public view returns(string str){
return content;
}
}
现在我们把这个合约复制下来,粘贴到 Remix 里面去试试
Remix 会帮我们编译好,然后去左侧第四个图标进行部署(deploy)
选择 Injected Web3 表示连接到当前 MetaMask 所选择的网络环境,我目前的环境是PlatON测试网络,点击 Deploy → Confirm → MetaMask(点击确认)
点一下getContent,Remix会帮忙 call 然后就看到小字的 HelloWorld
课外作业
教程一结束了,课外作业是:部署一个合约,使得 getContent 函数输出的内容是 HelloHuman
我觉得单纯的课外作业并不能吸引注意力,因此浅浅社区设置节点奖学金,当然我没啥钱就对了,成功完成课外作业的同学瓜分 100 LAT 。
作业回帖格式如下:
- 节点部署网络统一为 PlatON 测试网络(若使用Remix,请在MetaMask中添加)
- 网络名称:PlatON Dev Testnet
- PRC URL:https://devnetopenapi.platon.network/rpc
- 链ID:210309
- 货币符号:lat
- 区块链浏览器:https://devnetscan.platon.network/
- 合约源码(注释要写QAQ,不然后期复杂合约没有注释的话,看的很慢)
- ABI 和 合约地址(获取方式看下图)