第一课,以太坊智能合约Hello World

1. 准备工作

2. 准备测试网络和测试币

3. 用Remix开发智能合约

4. 测试合约

参考文献

第一课,以太坊智能合约Hello World

1. 准备工作

下载metamask钱包浏览器插件。本试验使用firefox火狐浏览器。建立自己的钱包和以太坊钱包地址(请保存好助记词)。

2. 准备测试网络和测试币

点击show/hide test networks,使metamask可以连接到以太网测试网路。我们使用Ropsten Test Network (注意Ropsten测试网在以太坊合并到POS以后,2022年底会关停,届时可以使用其他的测试网)。

申请测试以太币,测试币申请通过网上几个水龙头🚰程序 Faucet,例如https://faucet.metamask.io/ https://faucet.egorfine.com/ 等。将你的钱包地址填入申请测试以太币,或者通过连接钱包操作,一般30分钟内会收到以太币。

3. 用Remix开发智能合约

我们可以使用在线开发平台 remix,进行智能合约编程。注意Remix使用浏览器缓存进行文件存储,重置或清理浏览器缓存会造成文件丢失,请备份本地文件,或者远程云备份。

我们将使用“精通以太坊”这本开源书的 Solidity代码来进行测试 。下载水龙头简单的 Faucet源代码。在Remix IDE上,你可以新建一个Workspace,选择blank的template(模板),新建文件命名为Faucet.sol , 将文件的源代码copy paste到你的新建的文件中。Remix的编程界面如下:

这个合约是一个简单的“水龙头”应用,你可以把钱(以太)发送到这个合约(给水龙头充值),也可以向水龙头申请钱(从合约里面取得以太)。

Remix的右边两个tab分别是编译和运行:,你可以对代码进行编译,运行的时候,需要设置各种运行环境,可以选择Injected Provider - Metamask,可以看到连接到Ropsten测试网了。

直接点击里面“Deploy”的这个按钮,然后Metamask会弹出请你批准部署这个合约到网上(花费一定的gas),点击确认,等一会儿,合同就部署到测试网上了。在remix的状态栏里面显示已经部署成功,可以在Etherscan上查看内容了。

部署合约也是交易的一种,所以通过交易HASH查询:

https://ropsten.etherscan.io/tx/0xb93ba93660d608ab071d143305f5ec20ea4c4cc8e257caeaf02db4cbf189e954 

合约地址为:

https://ropsten.etherscan.io/address/0x5f67197b3105f8cfc0f61abc452f391df8df95a0 

4. 测试合约

与合约交互:因为现在的合约还没有前端界面,我们可以通过钱包和合约进行交互,首先,使用metamask向合约打1个ETH。直接从metamask里面向合约地址发送一个以太,然后批准交易,等几分钟后,交易完成以后,合约地址里面就能看到1一个以太了,并且可以在测试网上看到交易记录。

向合约取钱,可以在deploy的tab下,使用Remix左侧的工具栏调用withdraw函数。现在的程序使用wei作为单位,所以索取0.1个以太,通过https://eth-converter.com/ 可以转换一下所需wei的数量为100000000000000000,点击“transact”,过几分钟,0.1 ETH就到你的连接的钱包里面了。

查看etherscan合约地址下面的Internal Txns可以看到0.1以太被转出到你的地址。

参考文献

  1. https://github.com/ethereumbook/ethereumbook