web3.js查询区块链上的合约数据 以BSC测试链为例1.使用web3连接BSC测试链varWeb3=require("web3");//BSC测试链RPCURLvarurl='https://data-seed-prebsc-1-s1.binance.org:8545/';varweb3=newWeb3(url);2.abi获取打开remix,粘贴Greeter.sol代码,复制右下角ABI。如下[{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}]3.获取获取合约实例Contract=awaitnewweb3.eth.Contract(abi,address)回调合约的greet()方法Contract.methods.greet().call().then(function(data){console.log('greeting:',data);});4.获取某地址的BNB余额varaccount='0x6278A1E803A76796a3A1f7F6344fE874ebfe94B2';varbalance=awaitweb3.eth.getBalance(account);//单位wei单位转换(wei=>‘ether’)web3.utils.fromWei(balance,'ether')附:getData.jsvarWeb3=require("web3");//BSC测试链RPCURLvarurl='https://data-seed-prebsc-1-s1.binance.org:8545/';varweb3=newWeb3(url);varContract;//contractaddressvaraddress='0xfdc3a5dF20bb6fcf94eC73199DD26c71000b75Ee';varabi=[{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}];asyncfunctiongetData(){Contract=awaitnewweb3.eth.Contract(abi,address);//回调合约的greet()方法Contract.methods.greet().call().then(function(data){console.log('greeting:',data);});}//getaddresssbalanceasyncfunctiongetBalance(){varaccount='0x6278A1E803A76796a3A1f7F6344fE874ebfe94B2';varbalance=awaitweb3.eth.getBalance(account);console.log('BNBbalance:',web3.utils.fromWei(balance,'ether'),'ether');}getData();getBalance();Greeter.sol//SPDX-License-Identifier:Unlicensepragmasolidity^0.8.0;import"hardhat/console.sol";contractGreeter{stringprivategreeting;constructor(stringmemory_greeting){console.log("DeployingaGreeterwithgreeting:",_greeting);greeting=_greeting;}functiongreet()publicviewreturns(stringmemory){returngreeting;}functionsetGreeting(stringmemory_greeting)public{console.log("Changinggreetingfrom'%s'to'%s'",greeting,_greeting);greeting=_greeting;}} -全文完-