Web3js
区块链是一个由区块组成的列表,这些块的内容基本是交易记录,每个交易都有一个附加的交易日志,事件结果存放在交易日志里。合约发出的时间,可以使用合约地址访问
基本使用
入门认知
let Web3 = require("web3")
let web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
console.log(web3)
查看 web3 连接的节点信息
let Web3 = require("web3")
let web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
web3.eth.getNodeInfo().then(console.log)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JFIpjIPd-1643027019279)(C:\Users\Lenovo\AppData\Local\Temp\1642950429162.png)]
查看是否连接到节点
let Web3 = require("web3")
let web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
web3.eth.net.isListening().then(console.log)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gKiGPoBY-1643027019280)(C:\Users\Lenovo\AppData\Local\Temp\1642950545009.png)]
获取当前连接网络的 id
let Web3 = require("web3")
let web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
web3.eth.net.getId().then(console.log)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TO6aeDn-1643027019282)(C:\Users\Lenovo\AppData\Local\Temp\1642950737493.png)]
Provider 相关
查看当前 web3 provider
let Web3 = require("web3")
let web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
console.log(web3.currentProvider)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hjCu6Bve-1643027019282)(C:\Users\Lenovo\AppData\Local\Temp\1642951277107.png)]
设置/修改 provider
其实就是临时修改为其他的 provider
let Web3 = require("web3")
let web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
web3.setProvider(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
批处理
批处理请求就是将几个请求打包在一起提交
可以保证交易顺序
let Web3 = require("web3")
let web3 = new Web3(new Web3.providers.HttpProvider("HTTP://127.0.0.1:8545"))
var abi = [{
"inputs": [],
"name": "getNumber",
"outputs": [{
"internalType": "uint256",
"name": "",
"type": "uint256"
}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [{
"internalType": "uint256",
"name": "_number",
"type": "uint256"
}],
"name": "setNumber",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
var address = "0x28A6FDdD4