web3.js与节点交互的四种方法 / 学习智能合约#51

Words
176
Reading
1 min
Listen
Play
5y

web3.js是一套和以太坊节点进行通信的API,是对JSON-RPC的封装。如果我们需要基于以太坊来开发去中心化应用,就需要通过Web3来获取节点状态,获取账号信息,调用合约、监听合约事件等等。

智能合约是运行在节点提供的虚拟机上,因此调用智能合约也需要像节点发送请求,web3.js就起到中间桥梁的作用。

根据不同的应用场景,web3.js与节点交互的四种方法,如下:

cnpm install web3 --save
cnpm install @truffle/hdwallet-provider --save

import Web3 from 'web3'

a. 使web3使()Web3.givenProvider = null
let web3 = new Web3(Web3.givenProvider)


b. 使
// let url = "http://localhost:8545"
let url = "https://rpc-mumbai.maticvigil.com"
web3 = new Web3(new Web3.providers.HttpProvider(url)) 

c. 使
import HDWalletProvider from "@truffle/hdwallet-provider"

let VUE_APP_URL="https://ropsten.infura.io/v3/c9xxxxx"
let VUE_APP_KEY="fac5xxxxx"
let web3Provider = new HDWalletProvider(VUE_APP_KEY, VUE_APP_URL) 
let web3 = new Web3(web3Provider)

//也可以使用助词词
let mnemonic = "opinion destroy betray …";
let provider = new HDWalletProvider(mnemonic,"http://localhost:8545");
let web3 = new Web3(provider);

d. metamask
let web3 = new Web3(window.ethereum)

基本概括了所有的应用场景,实际情况下可以灵活应用。

web3.js与节点交互的四种方法 / 学习智能合约#51 | Ecency