部署你的第一份智能合约

524 阅读3分钟

我们生活中常常会跟别人订立合约,但这些合约都有违约的风险。智能合约是部署在区块链上的一段代码,当条件满足的时候,就会触发合约履行,不存在违约的风险,是牢不可破的承诺(unbreakable promise)。

创建合约和部署的过程,很简单。当然这里说的部署指的是部署到test network上,毕竟这才是免费不花钱的。

创建MetaMask账户

  • 我们要用MetaMask来创建我们的测试钱包, google搜索'metamask',点进官网,'Download for Chrome',点击下载,安装好后,可以看到谷歌浏览器右上角的插件栏位多了一个小狐狸图标。
  • 点击图标打开插件,在右上角的圆形图标那里点击,设置 -> 高级 -> 显示测试网络,开关打开,我们就能使用测试网络功能了。
  • 顶部中间显示当前的测试网络,可以选择其它测试网络,这里推荐用 Rinkeby测试网络,然后添加账户。
  • 添加账户之后,可以去faucets,获取测试用的ETH,faucets.chain.link/rinkeby, 点开链接之后,选择0.1 test ETH, 完成后可以在metaMask的账户上看到增加了0.1 ETH

image.png

使用remix 和 solidity编写合约

remix是一个在线编辑器,打开就可以使用了:remix.ethereum.org/

用solidity开始编写一个简单的合约。

  1. 打开remix后,把给的实例代码和文件夹都删除了,自己新建一个contracts文件夹。

  2. 新增一个文件叫做MyFirstContract.sol,如下图,这样我们的合约就写好了,准备部署

image.png

代码如下:

//SPDX-License-Identifier: MIT
pragma solidity 0.8.7;  // 版本号,还可以这样指定 >=0.8.7  或者 ^0.8.7

contract SimpleStorage { //contract 关键词声明一个 '合约',意思类似我们的class
 
    //定义变量favoriteNumber,是public的,可供外部访问
    uint256 public favoriteNumber;

    //定义方法,用来修改favoriteNumber
    function store(uint256 _favoriteNumber) public {
        favoriteNumber = _favoriteNumber;
    }

}

在本地测试和部署

  1. 先编译

image.png

  1. 编译通过,就可以部署了,本地测试,选择Remix VM -> 选择当前合约MyFirstContract.sol ->点击deploy

image.png

  1. 测试是否生效,在store按钮旁边的输入框上输入1,点击store,点击favoriteNumber,可以看到值为unit256: 1,说明我们的程序是可以的

image.png

部署到test network上

  1. 本地部署测试没问题后,就可以部署到test network上了,在部署的界面顶部选择框,选择 'Injected Provider Metamask'

image.png

image.png

  1. 点击deploy 按钮,我们的MetaMask插件,就会弹出来,告知我们本次部署需要消耗的金额和燃料费等信息,要我们确认。

image.png

点击确认,大功告成!第一份合约就部署成功了。

想要测试合约,可以按照刚刚在本地部署后的步骤来操作,但是,这次调用我们的定义store方法,会消耗金额和燃料费,Metamask会弹出来,让你确认。

好了,第一份智能合约的介绍就到这里,感谢阅读。