怎么使用Web3.js API 在页面中进行转账

技术怎么使用Web3.js API 在页面中进行转账这期内容当中小编将会给大家带来有关怎么使用Web3.js API 在页面中进行转账,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如何

本期,边肖将在页面上为大家带来如何使用Web3.js API转账的信息。文章内容丰富,从专业角度进行分析和叙述。看完这篇文章,希望你能有所收获。

如何在页面中使用Web3.js API转账?

边肖在页面中介绍了如何使用Web3.js API进行转账,这是文档Web3.js 0.2x中文版和Demo在区块链全栈-Ethereum DAPP实际开发中的文章描述。

写在前面

在阅读本文之前,您应该了解Ethereum、智能合约和钱包的概念。如果你不懂,建议你先看看什么是以太琴。另外,你最好了解一些HTML和JavaScript的知识。

00-1010,实现这个接口非常简单,所以这里没有代码。您可以打开演示并右键单击以查看页面的源代码。

00-1010既然需要在页面中使用Web3.js API转账,那么首先要检查钱包是否安装在浏览器环境中,是否应该解锁。

首先检查是否安装了元掩码钱包:

window.addEventListener('load ',function(){ 0

if(typeofweb3!=='未定义'){ 0

web 3=new web 3(web 3 . current provider);

if(web 3 . CurrentProvider . IsMetaMask==true){ 0

//“元掩码可用”

}else{

//“非元掩码环境”

}

}else{

$('#env ')。html('Noweb3?需要安装https://metamask.io/'metamask/a!'。);

}

}MetaMask建议在加载窗口时检查MetaMask。当然,在没有安装MetaMask的时候,也可以指定一个节点Provider来创建web3,可以参考Web3.js文档来介绍Web3。

检查钱包是否解锁:在发送交易之前,我们应该首先检查当前钱包的一个状态,并检查钱包是否解锁(密码是否输入到元掩码中)。通常,我们使用eth下的getAccounts来检查,这将返回一个帐户列表。如果活期账户列表中有数据,说明钱包已经解锁,可以获取账户。如果账户获取的列表为空,则表示钱包未解锁。

您可以将以下代码添加到上述侦听器函数中:

web3.eth.getAccounts(函数(err,accounts){ 0

if(accounts . length==0){ 0

nbsp;            $("#account").html("请检查钱包是否解锁");
            } 
            });

发送交易

如果MetaMask钱包是解锁的,我们就可以来发送交易,发送交易使用sendtransaction这个方法。

web3.eth.sendTransaction(transactionObject [, callback])

第二个参数是回调函数用来获得发送交易的Hash值。

第一个参数是一个交易对象,交易对象里面有几个字段:

  • from : 就是从哪个账号发送金额

  • to : 发动到到哪个账号

  • value 是发送的金额

  • gas: 设置gas limit

  • gasPrice: 设置gas 价格

如果from没有的话,他就会用当前的默认账号, 如果是转账to和value是必选的两个字段。 在发送交易的时候弹出来MetaMask的一个授权的窗口,如果我们gas和gasPrice没有设置的话,就可以在MetaMask里面去设置。如果这两个gas和gas Price设置了的话,MetaMask就会使用我们设置的gas。

因此在发送交易的时候,关键是构造这样一个交易对象,JavaScrpt代码如下:

//  这里使用Metamask 给的gas Limit 及 gas 价
var fromAccount = $('#fromAccount').val();
var toAccount = $('#toAccount').val();
var amount = $('#amount').val();
// 对输入的数字做一个检查
if (web3.isAddress(fromAccount) &&
            web3.isAddress(toAccount) &&
            amount != null && amount.length > 0) {
    var message = {from: fromAccount, to:toAccount, value: web3.toWei(amount, 'ether')};
    web3.eth.sendTransaction(message, (err, res) => {
        var output = "";
        if (!err) {
            output += res;
        } else {
            output = "Error";
        }
    }
}

补充说明:$('#fromAccount').val()是使用JQuery用来获取用户输入内容,其次应该在实际构造发送交易之前对输入的参数做一个判断,web3.isAddress用来检查字符串是不是地址。另外对于一个向普通外部地址账号的转账,消耗的gas 是固定的21000。

运行测试

需要注意一点的是,由于安全原因,MetaMask只支持站点方式访问的页面,即通过http:// 来访问页面,在浏览器中通过file:// + 文件地址的方式是不行的。 因此需要把编写的代码放置到web服务器的目录下,自己试验下。

上述就是小编为大家分享的怎么使用Web3.js API 在页面中进行转账了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/65914.html

(0)

相关推荐

  • ORACLE EBS 常用标准报表有哪些

    技术ORACLE EBS 常用标准报表有哪些这篇文章将为大家详细讲解有关ORACLE EBS 常用标准报表有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。总账系统

    攻略 2021年11月18日
  • 抖音能刷粉吗,便宜刷抖音网站?

    技术抖音能刷粉吗,便宜刷抖音网站?首先,抖音刷粉是不违规的。这在行业内已经属于潜规则了。很多网红公司都在使用这类辅助工具。目前这类辅助工具,不违规,也不违法。可以放心使用。但是需要找到靠谱的代刷网,否则很可能被坑钱财。

    测评 2021年10月19日
  • openwrt怎么设置master模式(openwrt如何设置进入管理页面)

    技术OpenWRT如何实现工作模式开关这篇文章主要介绍了OpenWRT如何实现工作模式开关,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 DIR-5

    攻略 2021年12月18日
  • 一堂好课的标准是什么,怎么上课才算是成功的一堂课

    技术一堂好课的标准是什么,怎么上课才算是成功的一堂课成功的一堂课就是师生互感满意的课堂并且符合评课的各个标准一堂好课的标准是什么!一、从老师的角度来说这一节课,老师感觉自己要讲的内容都很好的呈现出来。这一节课,老师感觉学

    生活 2021年10月25日
  • vb.net如何实现动态控件数组

    技术vb.net如何实现动态控件数组这篇文章主要介绍vb.net如何实现动态控件数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET控件数组问题1、在form的头部定义一个公共的Arra

    攻略 2021年12月2日
  • 英语阅读理解练习,英语阅读理解改怎么练习

    技术英语阅读理解练习,英语阅读理解改怎么练习重视句子理解就没有问题英语阅读理解练习,但是要注意这里绝对不是咬文嚼字扣每句话具体什么意思,应该是注重句子间的联系,及文章的主题思想,但凡阅读一定会有你难以理解的单词或句子,一

    生活 2021年10月21日