目标:
1、使用etherjs
2、链接MetaMask钱包
3、查询链状态、账号状态、转账、调用合同读函数、调用合同写函数
环境:
1、kovan以太坊测试链上发布合约。合约地址:0xB6b0ab2e6205212FD2A4017bD0A4710b11EA55eb
2、nodejs lite-server web服务器测试。
3、安装Google chrome metamask钱包
智能合约代码:InfoContract.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
contract InfoContract {
string public fName = "azq";
uint public age= 47;
function setInfo(string memory _fName,uint _age) public returns(bool){
fName = _fName;
age = _age;
return true;
}
function getInfo() public view returns(string memory,uint){
return(fName,age);
}
}
代码实例:index.html
<!DOCTYPE html>
<html>
<head>
<script src="/myscript.js"></script>
</head>
<script src="https://cdn.ethers.io/lib/ethers-5.2.umd.min.js"
type="text/javascript">
</script>
<!-- <script src="https://cdn.ethers.io/lib/ethers-5.2.esm.min.js"
type="text/javascript">
</script> -->
<!-- <script type="module">
import { ethers } from "https://cdn.ethers.io/lib/ethers-5.2.esm.min.js";
</script> -->
<body onload="f1()">
<h2>区块链查询</h2>
<h3>网络id:<span id="chainId"></span></h3>
<h3>ens地址:<span id="ensAddress"></span></h3>
<h3>网络名:<span id="chainname"></span></h3>
<h3>区块数:<span id="blockNumber"></span></h3>
<form action="" name="myform">
<input type="text" id = "inputChainId" value=1>
</form>
<br>
<button class="queryChain" onclick="queryChain()">查询区块链</button>
<h2>查询账户余额</h2>
<h3>区块数:<span class= "blockNumber"></span></h3>
<h3>账户余额:<span id="balance"></span></h3>
<h3>格式化余额:<span id="formatBalance"></span></h3>
<form action="" name="myform">
<input type="text" id = "inputCount" value="0xFdF04BcFA232E8D2fBacBb0fb95B092273e8acF8">
</form>
<br>
<!-- <button id = "button" onclick="f1()">连接钱包</button> -->
<button class="buttonclass" onclick="queryCount()">查询账户</button>
<h2>获取当前账号</h2>
<h2>Account: <span class="showAccount"></span></h2>
<button class="enableEthereumButton">获取当前账号</button>
<h2>转账</h2>
<form action="" name="myform">
<span>地址:</span><input type="text" id ="inputAddress" value="0x1895626b720Ca74B9F265334aCE49F790Eea4dA1">
<span>金额:</span><input type="text" id ="inputNumber" value = 0>
</form>
<button class="buttonclass" onclick="transFunction()">确认转账</button>
<h2>调用合同写函数</h2>
<form action="" name="myform">
<span>姓名:</span><input type="text" id ="inputName" value="">
<span>年龄:</span><input type="text" id ="inputAge" value = 0>
</form>
<button class="but