Obtener dirección y cambio de cadena de bloques

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

="stylesheet" href="https://cdn.jsdelivr.net /npm/[email protected]/dist/css/bootstrap.min.css"> 

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

    </nav> 

    <div class="container-fluid mt-3"> 
        <H2>获取钱包地址信息</H2> 
        <h5> Cuenta : <span class="showAccount" id="accountsSpan"></span></h5> showAccount" id="accountsSpan"></span></h5> 
        <h5> Red: <span class="showAccount" id="networkSpan"></span></h5>
        <h5> ChainId: <span class="showAccount" id="chainIdSpan"></span></h5> 
        <hr></hr>
        <h2>Transferir a una billetera</h2> 
        <button id="sendBtn">enviar</button> 
        <hr></hr> 
        <h2>Evento de activación de cambio de red y dirección</h2> 
        <h5> red actual: <span class="showAccount" id="currentNetwork"></span></h5> 
        <h5> dirección actual: <span class="showAccount" id="currentAddress"></span></h5> 
        <hr > 
        <h2>Obtener Saldo de Wallet</h2> 
        <h5> 
            <button id="balanceBtn">Obtener Saldo de Wallet</button> 
            <span class="showAccount" id="balanceSpan"></span> 
        </ h5> 

    </div> 
</div> 
<script> 

    const initialize = async ()=>{ 

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

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

        const getAccount = async ()=>{ 
            try{ 
                // se puede obtener después de conectar 
               // cuentas const = await ethereum.request({método:'eth_requestAccounts'}); 
                // Permisos después de iniciar sesión 
                cuentas const = await ethereum.request({método:'eth_accounts'}); 

                accountsSpan.innerHTML = cuentas; 
            }catch (e) { 
                consola. 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'}); 
                redSpan.innerHTML = networkId; 
            }atrapar (e) { 
                consola.error(e); 
            } 
        } 
        const checkMetaMaskClient = async ()=>{ 
            if (!isMetaMaskInstalled()){ 
                alert("instale metaMask"); 
            } más { 
                getNetworkAndChainId(); 
                obtenerCuenta();
            } 
        } 
        checkMetaMaskClient(); 

    } 

    sendBtn.onclick = asíncrono () => { 
        probar {
            const cuentas = esperar ethereum.request({método:'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 
            },(resultado) =>{ 
                console.log(resultado); 
            }) 
        }capturar (e) {
            console.error(e) 
        } 
    } 

    // Supervisar cambios de dirección 
    ethereum.on('cuentasCambiadas', función (cuentas) { 
        console.info("Dirección cambiada"); 
        dirección actual.innerHTML = cuentas; 
    }) 
    // Supervisar cambios de cadena 
    ethereum .on('chainChanged', function (network) { 
        console.info("Cadena cambiada"); 
        currentNetwork.innerHTML = red; 
    }) 
    // Obtener el saldo de la billetera  
    balanceBtn.onclick = async ()=>{
        console.info("Obtener el saldo de la billetera") 
        ethereum.request ({ 
            método:'eth_getBalance', 
            params:['0xA07843c563544941ACA9a2c0BB3361cdAB6601Fd','latest'] 
        }).then((resultado) =>{
            console.info("resultado:",resultado) 
            console.info("resultado1:",parseInt(resultado, 16)/1000000000000000000) 
            balanceSpan.innerHTML = parseInt(resultado, 16)/10000000000000000000 + "eth"; 
        }).catch(e =>{ 
            console.error(e) 
        }) 
    } 
    window.addEventListener("DOMContentLoaded",initialize); 

</script>







Supongo que te gusta

Origin blog.csdn.net/qq_30346433/article/details/128104319
Recomendado
Clasificación