获取地址和区块链切换

这篇具有很好参考价值的文章主要介绍了获取地址和区块链切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css">

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
<div class="container">
    <nav class="navbar navbar-expand-sm bg-light">

    </nav>

    <div class="container-fluid mt-3">
        <H2>获取钱包地址信息</H2>
        <h5> Account: <span class="showAccount" id="accountsSpan"></span></h5>
        <h5> Network: <span class="showAccount" id="networkSpan"></span></h5>
        <h5> ChainId: <span class="showAccount" id="chainIdSpan"></span></h5>
        <hr></hr>
        <h2>给某个钱包进行转帐</h2>
        <button id="sendBtn">send</button>
        <hr></hr>
        <h2>网络 和 地址切换 触发事件</h2>
        <h5> current network: <span class="showAccount" id="currentNetwork"></span></h5>
        <h5> current address: <span class="showAccount" id="currentAddress"></span></h5>
        <hr>
        <h2>获取钱包余额</h2>
        <h5>
            <button id="balanceBtn">获取钱包余额</button>
            <span class="showAccount" id="balanceSpan"></span>
        </h5>

    </div>
</div>
<script>

    const initialize = async ()=>{

        const isMetaMaskInstalled = ()=>{
            const { ethereum } = window;

            if (typeof ethereum === 'undefined'){
                return false;
            }
            return Boolean(ethereum && ethereum.isMetaMask);
        }

        const getAccount = async ()=>{
            try{
                // 连接就可以获取
               // const accounts = await ethereum.request({method:'eth_requestAccounts'});
                // 登陆之后的权限
                const accounts = await ethereum.request({method:'eth_accounts'});

                accountsSpan.innerHTML = accounts;
            }catch (e) {
                console.error(e)
            }
        }

        const getNetworkAndChainId = async ()=>{
            try {
                const chainId = await  ethereum.request({method:'eth_chainId'});
                chainIdSpan.innerHTML =  chainId;
                const networkId = await  ethereum.request({method:'net_version'});
                networkSpan.innerHTML = networkId;
            }catch (e) {
                console.error(e);
            }
        }
        const checkMetaMaskClient = async ()=>{
            if (!isMetaMaskInstalled()){
                alert("please install metaMask");
            }else {
                getNetworkAndChainId();
                getAccount();
            }
        }
        checkMetaMaskClient();

    }

    sendBtn.onclick = async () => {
        try {
            const  accounts = await  ethereum.request({method:'eth_requestAccounts'});

            // 初始化 web3
            web3 = new Web3(web3.currentProvider);
            if (web3.currentProvider.isMetaMask == true) {
                console.info("MetaMask可用")
            } else {
                console.info("非MetaMask环境")
            }

            web3.eth.sendTransaction({
                from:accounts[0],
                to:'0x4CCbD5D055fAd49d9278a6c43F1d27b9537737b5',
                value: 100000000000000000,
                gas: 21000,
                gasPrice: 20000000000
            },(result) =>{
                console.log(result);
            })
        }catch (e) {
            console.error(e)
        }
    }

    // 监听 地址变化
    ethereum.on('accountsChanged',function (accounts) {
        console.info("地址发生变化");
        currentAddress.innerHTML = accounts;
    })
    // 监听 链变化
    ethereum.on('chainChanged',function (network) {
        console.info("链 发生变化");
        currentNetwork.innerHTML = network;
    })
    //  获取钱包余额
    balanceBtn.onclick = async ()=>{
        console.info("获取钱包余额")
        ethereum.request({
            method:'eth_getBalance',
            params:['0xA07843c563544941ACA9a2c0BB3361cdAB6601Fd','latest']
        }).then((result) =>{
            console.info("result:",result)
            console.info("result1:",parseInt(result, 16)/1000000000000000000)
            balanceSpan.innerHTML = parseInt(result, 16)/1000000000000000000 + "eth";
        }).catch(e =>{
            console.error(e)
        })
    }
    window.addEventListener("DOMContentLoaded",initialize);

</script>







文章来源地址https://www.toymoban.com/news/detail-793010.html

到了这里,关于获取地址和区块链切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java-通过IP获取真实地址

    最近写了一个日志系统,需要通过访问的 IP 地址来获取真实的地址,并且存到数据库中,我也是在网上看了一些文章,遂即整理了一下供大家参考。 这个是获取正确 IP 地址的方法,可以直接使用的。 通过以上方法你可以获取到访问者的 IP 地址,只有获取到了 IP 地址,才能

    2024年02月15日
    浏览(34)
  • Java 根据网络地址URL获取文件

    系统需要根据提供的文件地址URL获取该文件,代码实现如下:

    2024年02月11日
    浏览(37)
  • Java获取请求者IP和地址

    在网上一番寻找,希望能找到一个根据IP解析地址的API,终于不负有心人,让我找到了,可是这个API是一个webservice,于是又学会了webservice调用,这个API来自webxml.com.cn,有着丰富的webservice接口,通过soapui调用情况如下图 http://ws.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

    2024年02月06日
    浏览(26)
  • Java如何获取请求的ip 地址?

    2024年02月12日
    浏览(28)
  • JAVA获取客户端IP地址

    2024年02月16日
    浏览(36)
  • java获取真实的请求接口ip地址

    在Java程序中获取请求的真实IP地址可以使用以下方法: 使用javax.servlet.http.HttpServletRequest类中的getRemoteAddr()方法,这个方法可以获取请求的IP地址。 可以检查X-Forwarded-For,如果请求是通过代理服务器发送的,那么X-Forwarded-For将包含被代理客户端的IP地址。可以使用HttpServletReque

    2024年02月11日
    浏览(39)
  • Java 获取客户端请求IP地址

    2024年02月15日
    浏览(30)
  • Java获取URL地址中传递的参数

    一、 Java获取URL地址中传递的参数 二、获取请求的URL地址 三、获取请求的IP地址 四:判断字符串是否能够转换成指定格式的日期

    2024年02月16日
    浏览(35)
  • Java根据IP地址获取对应归属地

    最近,各大平台都新增了评论区显示发言者ip归属地的功能,例如哔哩哔哩,微博,知乎等等,下面,就来讲讲,Java 中是如何获取 IP 属地的 在Java中有多种获取IP地址的方式,就不一一介绍了,给出了一个最常用的IP地址获取方式,仅供参考,代码如下: 对这里出现的几个名词解释

    2023年04月24日
    浏览(35)
  • Java WebSocket 获取客户端 IP 地址

    在开发 Web 应用程序时,我们通常需要获取客户端的 IP 地址用于日志记录、身份验证、限制访问等操作。当使用 WebSocket 协议时,我们可以使用 Java WebSocket API 来获取客户端的 IP 地址。 本文将介绍如何使用 Java WebSocket API 获取客户端 IP 地址,以及如何在常见的 WebSocket 框架中

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包