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

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

然后在代码区输入solidity代码

选择相关插件

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

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

再点击“Deploy & Run Transaction”

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

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

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

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

同样,我们点开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,至此函数执行成功。

使用remix的solidity在线编译环境部署一个faucet合约的更多相关文章

  1. Tools - 在线编译环境和工具汇总

    菜鸟教程 https://www.runoob.com/ 支持语言种类丰富,无需注册,包含教程.笔记.手册等内容. 菜鸟在线工具:https://c.runoob.com/ 菜鸟在线编译器:https ...

  2. [blockchain-035]eos的部署安装智能合约

    0.参考资料 https://github.com/EOSIO/eos/wiki 1. eos的github地址 https://github.com/EOSIO/eos 2.下载eos源码 git ...

  3. 使用Remix编译和部署以太坊智能合约

      Remix 是一個开源的 Solidity 智能合约开发环境,提供基本的编译.部署至本地或测试网络.执行合约等功能.Solidity 是 以太坊Ethereum 官方设计和支持的开发语言,专门用于 ...

  4. 第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1

    第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1 1.检查系统是否安装了python [root@192 ~]# rpm -qa ...

  5. Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

    [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...

  6. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

  7. 第四百零一节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署virtualenv虚拟环境安装,与Python虚拟环境批量安装模块

    第四百零一节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署virtualenv虚拟环境安装,与Python虚拟环境批量安装模块 virtualenv简介 1.安装virtuale ...

  8. 第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6

    第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6 1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步 ...

  9. 第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置

    第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置 1.Linux安装配置 注意事项: 虚拟机网卡桥接模式 不要拨VPN 如果,网络怎么都 ...

随机推荐

  1. 使用checked和unchecked来对整数溢出进行检测和忽略

    在C#中,整数int32的取值为-2147483648~2147473647(可以通过int.MaxValue和int.MinValue获得)当超出这个范围后,编译器不会进行检查,仍然会进行运算,但得 ...

  2. LeetCode.1200-最小绝对值差(Minimum Absolute Difference)

    这是小川的第次更新,第篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第268题(顺位题号是1200).给定一个由不同的整数组成的数组arr,找到所有对元素,其中任意两个元素的绝 ...

  3. deepin终端下载速度超慢解决方案

    最近发现在deepin终端下载软件包时速度简直是慢到不可饶恕,最快速度不上20KB/s,哭了,这要下载个几百KB的还能忍,稍微下载个百内MB的包就得等1-2小时,这咋行! 在网上查了几篇博客后,终于找 ...

  4. 安装gnocchi

    在控制节点上执行 #!/bin/bash MYSQL_ROOT_PASSWD='m4r!adbOP' GNOCCHI_PASSWD='gnocchi1234!' CEILOMETER_PASSWD=' ...

  5. windows部署服务(WDS)

     1.服务器端os:windows server2003R2,windows server 2008,windows server 2008 R2 文件系统:NTFS 必须需要AD架构 网络中需要微软 ...

  6. U盘ios系统制作

    首先我们先安装软碟通,完成安装后打开软碟通,文件->打开,打开我们的iso镜像 步骤阅读   然后选择我们的U盘 步骤阅读   然后点击启动->写入硬盘映像 步骤阅读   写入方式有zip ...

  7. OpenResty + Lua访问Redis,实现高并发访问时的毫秒级响应打回

    一.lua中redis的配置依赖: 1.OpenResty的lua访问redis的插件:https://github.com/openresty/lua-resty-redis 二.下载后,导入对应的 ...

  8. sql常用到的查询连接

    一.内连接(Inner Join) select * from a inner join b on a.name=b.name; 此语句的结果为同时匹配表a和表b的记录集.即内连接取的是两个表的交集. ...

  9. 关于mac配置vs code的C++环境问题

    在配置完成后,编译通过了但是在终端输出一直不出现很奇怪,求问大家这是啥问题 以下是我的配置

  10. Linux-echo:打印彩色输出

    脚本可以使用转义序列在终端中生成彩色文本 文本颜色是由对应的色彩码来描述的.其中包括: 重置=0,黑色=30,红色=31,绿色=32, 黄色=33,蓝色=34,洋红=35,青色=36,白色=37. 要 ...