imToken中使用web3js提供api获取信息

Posted JackieDYH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了imToken中使用web3js提供api获取信息相关的知识,希望对你有一定的参考价值。

注意:请在服务端运行!!!

结构代码

<div id="app">
	<h5>imToken</h5>
	<p>当前环境:<span class="env">null</span></p>
	<button class="Web3Button">Web3js获取信息</button>
	<h2>Account(账户): <span class="showAccount1"></span></h2>
	<h2>Balance(ETH): <span class="showBalance1"></span></h2>
	<p>内容:<span class="cont">null</span></p>
</div>
<script src="./node_modules/web3/dist/web3.min.js"></script>

逻辑代码

// 获取dom元素
const env = document.querySelector(".env");
const cont = document.querySelector(".cont");

const ethereumButton1 = document.querySelector('.Web3Button');
const showAccount1 = document.querySelector('.showAccount1');
const showBalance1 = document.querySelector('.showBalance1');


// Web3浏览器检测
if (typeof window.ethereum !== 'undefined') 
	console.log('MetaMask is installed!');


// 实例化web3
window.web3 = new Web3(ethereum);
var web3 = window.web3;

// 可以通过 !!window.imToken 或者 window.ethereum.isImToken 来检测当前浏览器环境是否是 imToken DApp browser, true 表示当前是 imToken 环境
let envs = null;
!!window.imToken ? envs = '当前是 imToken 环境' : envs = '当前不是 imToken 环境';
console.log(envs);
env.innerhtml = envs;

// 获取账户信息
ethereumButton1.addEventListener('click', () => 
	getAccount1();
);
async function getAccount1() 
	if (!!window.imToken) 
	// 授权获取账户
	var accounts = await web3.eth.getAccounts();
	// web3.eth.getAccounts().then((e)=>console.log(e))
	// 取第一个账户
	var myAccount = accounts[0];
	console.log(myAccount, typeof myAccount, 1);
	// 返回指定地址账户的余额
	var balance = await web3.eth.getBalance(myAccount);
	let eth =  web3.utils.fromWei(balance, 'ether');
	console.log(balance,eth, typeof balance, 2)
	showAccount1.innerHTML = myAccount;
	showBalance1.innerHTML = `wei:$balance, ether:$eth`;
	else
		showAccount1.innerHTML = '非 imToken 环境';
		showBalance1.innerHTML = '非 imToken 环境';
	

以上是关于imToken中使用web3js提供api获取信息的主要内容,如果未能解决你的问题,请参考以下文章

使用Java+Web3j和Ethereum网络交互:获取Ethereum信息

如何将 BSC wesocket 提供程序与 Web3J 或 Web3js 连接

web3js方法获取账户信息和余额

使用 web3js 在 uniswap 和 sushiswap 交易所获得硬币价格而不使用他们的 api

获取token

Web3j:获取使用交易哈希传输的交易令牌的价值