1、浏览器打开https://remix.ethereum.org 地址web
点击"+"新建一个sol文件,命名为faucet.sol浏览器
而后在代码区输入solidity代码网络
选择相关插件ide
将Solidity compiler、Deploy & run transactions插件激活,选择编译函数
编译成功后,会显示一个绿色的勾测试
再点击“Deploy & Run Transaction”spa
部署环境选择"Injected web3",这样把经过metamask客户端将咱们的合约部署到测试环境上插件
接下来会提示咱们remix须要将metamask里的帐户关联上,选择“肯定”,这样在Environment:显示连接的网络信息,这里为Ropsten测试网络,account里会显示咱们metamask帐户的地址和余额3d
再点击“Deploy”开始部署合约,弹出提示确认框,里面显示由metamask帐户发起一笔0金额的交易来进行合约部署,并显示收取的GAS费blog
,点击确认,部署成功后,页面下方会显示部署的合约地址
一样,咱们点开metamask钱包,也会显示一笔合约部署的交易记录
回到remix编译环境页面,点击“Deployed Contracts”的下拉箭头,能够显示本合约的合一调用的方法列表
一个fallback,一个winthdraw函数
咱们在withdraw函数后面输入一个参数,咱们输入1后面18个0,表示1个ETH,再点击“withdraw”调用函数
这是会弹出一个Gas费用估计不足的提示,咱们忽略继续发送交易
接下来自动打开metamask客户端,显示以下
从钱包帐户到合约地址的一笔交易,金额是0,由于是调用合约提币函数,因此金额为0,点击“确认”
咱们看到remix的控制台已经显示出本次交易的HASH
可是尚未出结果,等待一会,下面出现
显示交易失败了,点击Debug后面的箭头,显示详情
这笔交易执行失败,因为咱们新部署的合约里尚未ETH,因此调用withdraw函数,是没法提币的,那么首先咱们向这个合约发送一些ETH
首先复制合约地址,而后打开metamask钱包,发送2个ETH到这个合约地址
下一步
确认
显示合约交互,状态为待处理
等到确认状态后,这时咱们的合约地址里就有2ETH了,咱们从ropsten.etherscan.io上查看交易详情
咱们回到remix ide ,再次执行withdraw函数进行提币
咱们输入1ETH,点击withdraw,后,弹出metamask界面,点击确认,金额为0,表示调用合约函数,发送本笔交易
控制台很快显示本次交易的HASH
再等待一下子,交易确认
点击箭头,显示详情
打开etherscan.io查看详情
能够看到To 字段值,为合约地址,而且下面显示了调用的合约函数和输入参数,并显示从合约地址向外部帐户地址转帐的信息。可是这笔调用合约的交易金额为0,那么咱们怎么查看函数里面转帐的交易呢,咱们知道合约帐户是内部帐户,是由外部用户帐户建立的,因此咱们在etherscan.io里点击"Internal Tansaction"便可显示合约内部交易记录
咱们能够看到刚才调用合约函数成功提币的交易记录,从合约帐户地址到外部帐户地址,金额为1ETH
咱们点击From 下面的地址,即合约地址,就会显示当前合约的详情,包括帐户余额,外部交易记录
点击“Internal Txns”,显示合约内部交易记录,既外部帐户调用合约函数所执行的转帐交易
咱们打开metamask钱包,看看帐户地址是否多了这笔交易
有一笔withdraw交易,咱们当时输入的金额为1ETH,帐户余额显示为3.4987ETH,而以前帐户余额为2.4989,减去本次交易的gas费用0.000174,再加上获得的1ETH,余额正好为3.4987ETH,至此函数执行成功。