向别人网页注入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,一经查实,立即删除!

相关文章

Spring的AOP-准备工作

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

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…

JdbcTemplate(概念和准备)

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

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

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

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

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

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

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

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

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

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

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

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

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

JdbcTemplate(操作数据库-查询返回对象、查询返回集合)

JdbcTemplate(操作数据库-查询返回对象、查询返回集合) 1.创建数据库 数据库中有三条记录,数据库名为user_db,数据库表为t_book 2.新建实体类: Book类中的每一个属性对应数据库中的一条记录 package org.example.sp…

机器学习如何计算特征的重要性_机器学习之特征工程

特征选择是特征工程中的一个子集,从所有的特征中,选择有意义的,对模型有帮助的特征,以避免将所有特征中对模型没作用的特征导入模型去训练,消耗不必要的计算资源。更正式地说,给定n个特征,我们搜…

白中英 计算机组成原理_计算机组成原理 第五版.立体化教材 白中英 大学教材...

目 录第1章 计算机系统概论第2章 运算方法和运算器第3章 多层次的存储器第4章 指令系统第5章 中央处理器第6章 总线系统第7章 外存与IO设备第8章 输入输出系统第9章 并行组织与结构关于我们大学生必备资源库为大学生提供网课答案、大学课后答案、软件安装、大学考试考证资源以及…

Spring事务操作-事务

目录 Spring事务操作-事务 1.什么是事务 (1)典型场景 2.事务的四个特性(俗称ACID特性) (1)原子性 (2)一致性 (3)隔离性 (4)持久性…

Spring事务操作-事务引入

目录 Spring事务操作-事务引入 1.模拟异常 2.测试异常 3.没有使用spring框架的时候异常该如何处理 4.使用spring框架的时候异常该如何处理 5.在spring 进行声明式事务管理,底层使用AOP 6.spring 事务管理API 7.事务操作(注解声明式事务管理&…

在r中rowsums_用R进行数据分析-05

20-矩阵与数组一、矩阵的定义矩阵(Matrix)是一个按照长方阵列排列的复数或实数集。向量是一维的,而矩阵是二维的,需要有行和列。R中,矩阵是有维数的向量,但元素必须拥有相同的模式,此和向量一致…

JAVA入门级教学之(super的内存示意)

Super的原理: 代表的是当前对象this的父类型特征 如果类加载过程中,这个类有静态代码块,有静态变量,一律都会执行,系统会先分配空间 只要方法调用,就一定会进行方法压栈 new一个方法,其实是调用…

JAVA入门级教学之(猜数字测试)

一个类A有一个实例变量v,从键盘接受一个正整数作为实例变量v的初始值 另外再定义一个类B,对类A的实例变量v进行猜测 如果大了则提示大了 如果小了则提示小了 等于则提示测试成功 猜测数字比大小的测试: /*** author LBJ* version V1.0* P…

硬盘突然提示没有初始化_新硬盘的分区

★前言如果你添加了一个新硬盘到电脑上,但是它没有在文件管理器中出现,你可能需要为它分配一个盘符,或者对它进行初始化并分区才能使用。★警告在分区时,”删除磁盘分区“和”格式化“都会清空该分区的数据,请提前备份…

JAVA入门级教学之(简单的程序测试)

请定义一个交通工具(Vehicle)类 其中有属性: 速度speed 体积size 方法移动move() 设置速度setSpeed(int speed) 加速speedUp() 减速speedDown() 最后在测试类Vehicle中的main() 中实例化一个交通工具对象,并通过方法给它初始化speed&#xff0c…