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

一、浏览器打开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了,我们再次执行withdraw函数进行提币

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

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

再等待一会儿,交易确认

点击箭头,显示详情

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

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

原文地址:https://www.cnblogs.com/sky-cheng/p/12017655.html

时间: 2024-10-29 19:12:03

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

资源贴-在线编译环境推荐

作者:温武汉链接:https://www.zhihu.com/question/21088034/answer/39335231来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Codeanywhere 这是一个强大的Web IDE或者是整合开发环境,有着桌面IDE的所有特性,还有移动端的应用 CloudPebble无需 Linux.虚拟机.编译器或 Python 来编写应用 CodingGround这个网站其实还是不能算是完全意义上的IDE,但是很好很强大,支持的

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

[注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用一般使用64位操作系统,内容分为三部分:基础环境搭建.Hadoop编译安装和Spark编译安装,该环境作为后续实验基础: 3.文章演示了Hadoop.Spark的编译过程,同时附属资源提供了编译好的安装包,觉得编译费时间可以直接使用这些编译好的安装包进行部署. 1.运行环境说明 1.1 硬软件环境 l  主机

zabbix分布式监控环境完全编译安装部署

很多文档使用的是yum安装mysql.http.php等工具.这里采用源码安装的形式,实现从LNMP-zabbix的全程记录. 一.LNMP平台搭建 参考:http://www.ttlsa.com/nginx/nginx-install-on-linux/ http://swht1278.blog.51cto.com/7138082/1623886 1.nginx的安装 1.1 依赖环境的部署 yum -y install gcc gcc-c++ autoconf automake zlib z

编译LNMP部署动态网站环境

title: 编译LNMP部署动态网站环境 date: 2018-11-08 13:59:59 tags: Linux 服务配置 categories: Linux 服务配置 copyright: true --- LNMP动态网站部署架构是由一套 Linux+Nginx+MySQL+PHP 组成的动态网站系统解决方案. 以下配置环境为:Linux=RHEL7 --> Nginx=1.13 --> MySQL=5.6 --> PHP=7.0 无错误版. 安装编译环境 在使用源码包安装服务

编译LAMP部署动态网站环境

title: 编译LAMP部署动态网站环境 date: 2018-11-08 19:08:41 tags: Linux 服务配置 categories: Linux 服务配置 copyright: true --- LAMP动态网站部署架构是由一套 Linux+Apache+MySQL+PHP 组成的动态网站系统解决方案. 以下配置环境为:Linux=RHEL7 --> Apache=2.4.33 --> MySQL=5.5 --> PHP=7.0 无错误版. 安装准备环境 ◆安装gcc

实现CTF智能合约题目的环境部署

本文章是参考一位大佬博客学来的. 智能合约题的环境主要包括两部分:一个是智能合约的部署,另一个就是监听合约事件进而发送flag的脚本. 智能合约部署 这里写的合约是指solidity合约,使用Remix IDE. 合约主要部署到以太坊测试链而非主链上(没钱??),几个主要的测试链:Ropsten,Rinkeby,Kovan. 这里需要一个浏览器钱包插件MetaMask(可以在FireFox和Chrom上下载),注册并申请账户后,选择测试网络(笔者选择的是Rospten): 新创建的账户是没有以太

Vue生产环境部署

前面的话 开发时,Vue 会提供很多警告来帮助解决常见的错误与陷阱.生产时,这些警告语句却没有用,反而会增加载荷量.再次,有些警告检查有小的运行时开销,生产环境模式下是可以避免的.本文将详细介绍Vue生产环境部署 生产环境 如果用 Vue 完整独立版本 (直接用 <script> 元素引入 Vue),生产时应该用精简版本 (vue.min.js) 如果用 Webpack 或 Browserify 类似的打包工具时,生产状态会在 Vue 源码中由 process.env.NODE_ENV 决定,

线上生产环境部署Djngao+Nginx+Uwsgi

是否曾想过把django项目从windows移植到Linux上运行,Linux性能众所周知,作为Django运行的服务器再合适不过啦,今天分享一下如何在线上云机器的Linux环境运行Django项目. 客户端访问服务端的流程 1.首先客户端请求服务资源, 2.nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包分析. 3.如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,否则会根据django配置文件设置的static目录去找资源. 4.如果是动态的请

Linux 服务器 Java环境部署系列(五):搭建RabbitMQ

引言 本文主要介绍Linux服务器下,搭建RabbitMQ,及相关配置. 系列文档目录 Linux 服务器 Java环境部署系列(一):安装JDK Linux 服务器 Java环境部署系列(二):安装nginx.mysql.tomcat.redis Linux 服务器 Java环境部署系列(三):安装git.maven Linux 服务器 Java环境部署系列(四):搭建jenkins环境.部署项目 Linux 服务器 Java环境部署系列(五):搭建RabbitMQ 准备工作 下载Erlang