使用remix的solidity在线编译环境部署一个faucet合约

一、浏览器打开https://remix.ethereum.org 地址

使用remix的solidity在线编译环境部署一个faucet合约_第1张图片

 

 点击"+"新建一个sol文件,命名为faucet.sol

使用remix的solidity在线编译环境部署一个faucet合约_第2张图片

 

 

使用remix的solidity在线编译环境部署一个faucet合约_第3张图片

 

 使用remix的solidity在线编译环境部署一个faucet合约_第4张图片

 

 然后在代码区输入solidity代码

使用remix的solidity在线编译环境部署一个faucet合约_第5张图片

 

 

 选择相关插件

使用remix的solidity在线编译环境部署一个faucet合约_第6张图片

 

 

 

 将Solidity compiler、Deploy & run transactions插件激活,选择编译

使用remix的solidity在线编译环境部署一个faucet合约_第7张图片

 

 编译成功后,会显示一个绿色的勾

使用remix的solidity在线编译环境部署一个faucet合约_第8张图片

 

 再点击“Deploy & Run Transaction”

部署环境选择"Injected web3",这样把通过metamask客户端将我们的合约部署到测试环境上

接下来会提示我们remix需要将metamask里的账户关联上,选择“确定”,这样在Environment:显示链接的网络信息,这里为Ropsten测试网络,account里会显示我们metamask账户的地址和余额

使用remix的solidity在线编译环境部署一个faucet合约_第9张图片

 

 再点击“Deploy”开始部署合约,弹出提示确认框,里面显示由metamask账户发起一笔0金额的交易来进行合约部署,并显示收取的GAS费

使用remix的solidity在线编译环境部署一个faucet合约_第10张图片

 

 ,点击确认,部署成功后,页面下方会显示部署的合约地址

使用remix的solidity在线编译环境部署一个faucet合约_第11张图片

同样,我们点开metamask钱包,也会显示一笔合约部署的交易记录

使用remix的solidity在线编译环境部署一个faucet合约_第12张图片

 

 

回到remix编译环境页面,点击“Deployed Contracts”的下拉箭头,可以显示本合约的合一调用的方法列表

使用remix的solidity在线编译环境部署一个faucet合约_第13张图片

 

使用remix的solidity在线编译环境部署一个faucet合约_第14张图片

 一个fallback,一个winthdraw函数

我们在withdraw函数后面输入一个参数,我们输入1后面18个0,表示1个ETH,再点击“withdraw”调用函数

使用remix的solidity在线编译环境部署一个faucet合约_第15张图片

  这是会弹出一个Gas费用估计不足的提示,我们忽略继续发送交易

使用remix的solidity在线编译环境部署一个faucet合约_第16张图片

 

 接下来自动打开metamask客户端,显示如下

使用remix的solidity在线编译环境部署一个faucet合约_第17张图片

 

 从钱包账户到合约地址的一笔交易,金额是0,因为是调用合约提币函数,所以金额为0,点击“确认”

我们看到remix的控制台已经显示出本次交易的HASH

使用remix的solidity在线编译环境部署一个faucet合约_第18张图片

 

 但是还没有出结果,等待一会,下面出现

使用remix的solidity在线编译环境部署一个faucet合约_第19张图片

 

 显示交易失败了,点击Debug后面的箭头,显示详情

使用remix的solidity在线编译环境部署一个faucet合约_第20张图片

 

 这笔交易执行失败,由于我们新部署的合约里还没有ETH,所以调用withdraw函数,是无法提币的,那么首先我们向这个合约发送一些ETH

首先复制合约地址,然后打开metamask钱包,发送2个ETH到这个合约地址

使用remix的solidity在线编译环境部署一个faucet合约_第21张图片

 

 下一步

使用remix的solidity在线编译环境部署一个faucet合约_第22张图片

 

  确认

显示合约交互,状态为待处理

使用remix的solidity在线编译环境部署一个faucet合约_第23张图片

 

使用remix的solidity在线编译环境部署一个faucet合约_第24张图片

   等到确认状态后,这时我们的合约地址里就有2ETH了,我们从ropsten.etherscan.io上查看交易详情

使用remix的solidity在线编译环境部署一个faucet合约_第25张图片

 

 我们回到remix ide ,再次执行withdraw函数进行提币

使用remix的solidity在线编译环境部署一个faucet合约_第26张图片

 

  我们输入1ETH,点击withdraw,后,弹出metamask界面,点击确认,金额为0,表示调用合约函数,发送本笔交易

使用remix的solidity在线编译环境部署一个faucet合约_第27张图片

 

 控制台很快显示本次交易的HASH

再等待一会儿,交易确认

使用remix的solidity在线编译环境部署一个faucet合约_第28张图片

 

  点击箭头,显示详情

使用remix的solidity在线编译环境部署一个faucet合约_第29张图片

 打开etherscan.io查看详情

使用remix的solidity在线编译环境部署一个faucet合约_第30张图片

 

 可以看到To 字段值,为合约地址,并且下面显示了调用的合约函数和输入参数,并显示从合约地址向外部账户地址转账的信息。但是这笔调用合约的交易金额为0,那么我们怎么查看函数里面转账的交易呢,我们知道合约账户是内部账户,是由外部用户账户创建的,所以我们在etherscan.io里点击"Internal Tansaction"即可显示合约内部交易记录

使用remix的solidity在线编译环境部署一个faucet合约_第31张图片

 

我们可以看到刚才调用合约函数成功提币的交易记录,从合约账户地址到外部账户地址,金额为1ETH

 我们点击From 下面的地址,即合约地址,就会显示当前合约的详情,包括账户余额,外部交易记录

使用remix的solidity在线编译环境部署一个faucet合约_第32张图片

 

 

点击“Internal Txns”,显示合约内部交易记录,既外部账户调用合约函数所执行的转账交易

使用remix的solidity在线编译环境部署一个faucet合约_第33张图片

 

 

  我们打开metamask钱包,看看账户地址是否多了这笔交易

使用remix的solidity在线编译环境部署一个faucet合约_第34张图片使用remix的solidity在线编译环境部署一个faucet合约_第35张图片

 

 有一笔withdraw交易,我们当时输入的金额为1ETH,账户余额显示为3.4987ETH,而之前账户余额为2.4989,减去本次交易的gas费用0.000174,再加上得到的1ETH,余额正好为3.4987ETH,至此函数执行成功。

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(使用remix的solidity在线编译环境部署一个faucet合约)