向别人网页注入js_区块链研究实验室 | Web3 .js基于以太坊的Javascript API

866c62b317793bc82d965aba7f2f1619.png

web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互。 web3的JavaScript库能够与以太坊区块链交互。 它可以检索用户帐户,发送交易,与智能合约交互等。

Version : 1.0.0-beta.36

d3fb518ce24264a43b3deed381c5d9db.png

Web3.js API类型

  1. eth:Etherum区块链相关方法;
  2. net:节点的网络状态;
  3. personal:帐户功能和发送;
  4. db:获取/放置本地LevelDB;
  5. shh:使用Whisper的P2P消息传递;

4303015919cd2131f92209b58d59eea5.png

实例化web3

19b6f846f1d976847a98fabde3aa3c1d.png

首先,我们检查是否使用的dapp浏览器或更新版本的MetaMask,将以太坊提供程序注入到window object中。 如果是这样,我们使用它来创建我们的web3 object,但我们还需要使用ethereum.enable()显式请求访问帐户。

如果以ethereum object不存在,我们将检查注入的web3实例。 如果它存在,则表示我们正在使用较旧的dapp浏览器(如Mist或较旧版本的MetaMask)。 如果是这样,我们可以获取到它的提供者并使用它来创建我们的web3 object。

如果没有注入web3实例,我们将根据本地提供程序创建web3对象。 (这种后备适用于开发环境,但不安全且不适合生产环境。)

Web3.js的例子

PS:不推荐使用web3.version.getNode。

bf3d8f44ccee13b6cce1939645530734.png

余额

检查用户的余额

  1. web3.eth.getAccounts:从以太坊节点获取帐户,不推荐使用web3.eth.accounts。
  2. web3.eth.getBalance:获取帐户的余额。
  3. web3.utils.fromWei:将wei转换为ether,不推荐使用web3.fromWei。

57ae584ede33adbef105e96ccc0e641c.png

转移

将以太网从“A”转移到“B”

txnObject(事务对象)是web3.eth.sendTransaction的第一个参数。 txnObject由JSON组成。

from:String - 发送帐户的地址。

to:String - 目标钱包地址。

value:Number | String | BigNumber - (可选)您希望发送到目标地址的以太网的数量。

gas:Number | String | BigNumber - (可选,默认:待定)用于交易的gas量(未使用的gas将被退还)。

gasPrice:Number | String | BigNumber - (可选,默认:待定)wei中此交易的gas价格,默认为平均网络gas价格。

data:String - (可选)包含消息的关联数据的字节字符串,或者在合同创建事务的情况下,初始化代码。

nonce:Number - (可选)nonce的整数。 这允许覆盖使用相同nonce的自己的挂起事务。

46edb3c908bd2c262c6fbf3b50bb35a9.png

实践练习

我使用上面的方法制作了一个网页。

  • 获取以太坊节点信息
  • 获得用户的余额
  • 转移以太币

92a61a1348c2e4d4d75e32a8514dcaeb.png

您将使用MetaMask或Ganache。 我建议你使用Ganache,这是一个用于以太坊开发的个人区块链,可用于部署合同,开发应用程序和运行测试。 如果您还没有安装,请下载Ganache并双击该图标安装应用程序。 这将生成在端口7545上本地运行的区块链同时将端口更改为8545。

2989257ec2721793d01e610cfa207117.png

本文转载公众号:区块链研究实验室

区块链研究实验室 | Web3 .js基于以太坊的Javascript API​mp.weixin.qq.com
bb9c5a34e681ae60b2379364cdcd7cc4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python绘制动态图表怎么存下来_做动态图表,没有数据?用Python就能获取!

这是小F在国庆之前写的一篇文章,全网阅读累计达到3万。 既然有了Python这个制作动态条形图工具,缺的那便是数据了。 先看一下B站2019年「数据可视化」版块的情况,第一个视频超2百万的播放量,4万的弹幕。 小F自己在B站上制作的几个…

Spring的AOP-准备工作

目录 Spring的AOP-准备工作 1.Spring框架一般基于 AspectJ 实现AOP操作 2.基于AspectJ 实现 AOP 操作 (1)基于xml 配置文件实现 (2)基于注解方式实现【常用】 3.在项目工程用引入AOP 相关依赖 步骤一:找到依赖包…

python 小说 云_小说python操作PLC

PLC(Programmable Logic Controller)可编程逻辑控制器,可以理解为一个微型计算机,广泛应用于工业控制中,如楼宇智控、精密机床、汽车电子等等。 随着物联网的兴起,越来越多的传统工业设备需要和外界通信,但很多情况下&…

stream去重_使用Java Stream API中DistinctBy删除重复数据

Stream API提供distinct()方法,该方法基于数据Object类的equals()方法返回列表的不同元素。下面先做一个数据Object类,用来发现重复数据:public class LegacyObject {private final UUID id;private final String foo;private final int bar;…

Spring的AOP-AspectJ注解方式

目录 Spring的AOP-AspectJ注解方式 1.创建类,在类里面定义方法 2.创建增强类 3.进行通知的配置 (1)在Spring 配置文件中,开启直接扫描 (2)使用注解创建User 和 UserProxy 对象 (3&#x…

python turtle绘制柱状图_python绘制图形(Turtle模块)

用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法。 需要用到的工具有python,python 的安装这里就不再细说。自行搜索。 from turtle import * #引入turtle模块 color(red, yellow) #设置绘制的颜色和填充颜色 # 海龟设置 hideturt…

laravel商品图片怎么展示_如何使用Laravel图片处理包intervention-image

下面由Laravel教程栏目给大家介绍如何使用Laravel图片处理包intervention-image,希望对需要的朋友有所帮助!最近偶然发现了Laravel可用的图片处理包intervention-image。文档地址:http://image.intervention.io安装起来也很简单。composer re…

JdbcTemplate(概念和准备)

目录 1.什么是jdbcTemplate 2.使用前准备工作: (1)引入相关jar包 (2)在spring 配置文件配置数据库连接池​ (3)配置jdbcTemplate 对象,注入 DataSource (4&#xf…

python shape函数_Python中的多态及抽象类

本书同名免费MOOC《Python编程基础及应用》在哔哩哔哩(B站)热播,作者带着你学。版权声明:本文内容引用自作者的图书《Python编程基础及应用》(高等教育出版社)。本文可以在互联网上转载传播,但必须包含文中的版权声明;本文不可以以…

idea搭建maven项目关于数据库连接jar包版本问题解决方案

SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required 将mysql-connector-java由5.1.34升级到了6.0.6,本机MySQL5.7使用没问题,连测试服务器MySQL5.5创建数据库连接报错 解决方案: 将mysql-connector-java的版本退回到5.1.34…

二叉树的递归遍历|前中后序遍历、最大深度、最大直径

二叉树的递归遍历 前序遍历 public List<Integer> preorderTraversal(TreeNode root) {List<Integer> res new ArrayList<>();if (root null) {return res;}res.add(root.val);if (root.left ! null) {res.addAll(preorderTraversal(root.left));}if (roo…

python对象的三个属性_Python 对象属性的访问

在 Python 中&#xff0c;一切皆对象。属性访问可以理解为是从一个已有的对象中获得另一个对象的方法。对象属性的访问涉及到对象的 __dict__ 属性、描述符等概念&#xff0c;以及 __getattribute__、__getattr__ 等方法。 对象字典属性 Python 中的对象有一个 __dict__ 属性&a…

JdbcTemplate(操作数据库-添加功能)

目录 JdbcTemplate&#xff08;操作数据库-添加功能&#xff09; 1.建立数据库表&#xff1a; 2.对应数据库创建实体类&#xff1a; 3.编写service 和 dao &#xff08;1&#xff09;在 dao 层进行数据库添加操作 &#xff08;2&#xff09;具体&#xff1a;调用jdbcTemp…

python读取大文件csv_实现读取csv文件,文件里面是有限个百分数成绩(99.6、76.8等等...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 实现读取csv文件&#xff0c;文件里面是有限个百分数成绩&#xff08;99.6、76.8等等&#xff09;导出GPA 和等级代码是这样&#xff0c;但是报错了&#xff0c;在score float(sc)这行就报错了&#xff0c;下面有没有错误还不知道…

JdbcTemplate(操作数据库-修改和删除功能)

目录 JdbcTemplate&#xff08;操作数据库-删除功能&#xff09; 1.创建数据库 2.配置文件实现 3.创建实体类 4.创建dao层 5.创建service层 6.测试类 7.测试结果&#xff1a; JdbcTemplate&#xff08;操作数据库-删除功能&#xff09; 1.创建数据库 user_db数据库的t_…

单片机定时器实验两位倒计时秒表_51单片机基础与应用8天速成(三)

在讲授中断这一概念时&#xff0c;人们总是喜欢举洗衣服烧水的例子&#xff1a;话说&#xff0c;一天“你”独自在家&#xff0c;为了泡脚给自己烧上了一壶水&#xff0c;然后想着明天没有衣服穿了&#xff0c;就去阳台洗起了衣服。过了十几分钟&#xff0c;“你”在阳台洗着衣…

网线制作ppt_快速制作PPT技巧!

为什么同样的PPT&#xff0c;你花费了一天&#xff0c;我却只用了一小时&#xff1f;在我仔细观察了一些制作人员的操作后&#xff0c;总结了如下实用技巧&#xff01;01自定义访问工具栏在PPT中我们有很多的常用操作&#xff0c;例如「左对齐/右对齐」「置于底层/置于顶层」「…

JdbcTemplate(操作数据库-查询返回值)

目录 JdbcTemplate&#xff08;操作数据库-查询返回值&#xff09; 1.创建数据库 2.创建实体类 3.创建dao层 4.创建service层 5.创建测试类&#xff1a; 6.xml配置 7.测试结果&#xff1a; 8.结构示意&#xff1a; JdbcTemplate&#xff08;操作数据库-查询返回值&…

c++opencv显示中文_OpenCV安装,配置和运行

今天小崔有个项目功能想用OpenCV软件库实现一下&#xff0c;就安装了OpenCV,在这里给大家分享一下安装过程。一.什么是OpenCV OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量…

qt 当前窗口句柄_QT获取Windows系统所有窗口句柄

#include #include #pragma comment(lib,"user32.lib")/* 回调函数&#xff0c;用于捕获进程 */BOOL MyEnumProc(HWND hwnd, LPARAM param){LPWSTR lpString (LPWSTR)malloc(sizeof(WCHAR) * MAX_PATH);if (IsWindow(hwnd) &&IsWindowEnabled(hwnd) &&a…