Web3.0-使用metamask获取某个账号(钱包地址)的余额、交易回执

获取某个账号(钱包地址)的最新余额

以下代码就是获取制定账户余额的方法,获取到的余额是16进制的wei,在获取余额成功后我已经做了转换,params中两个参数,第1个是你要查询的账户(钱包地址),第2个是固定参数,表示最新余额。

//获取余额
    ethereum.request({
            method: 'eth_getBalance',
            params: [
               '0xBcFf5a3c1970D795777d7471F2792832BAF5679d' ,
                'latest'
            ]
        })
        .then((result) => {
            console.log("获取余额success--->" + result)
            let formartEther = ethers.utils.formatEther(result); //16进制的wei
            console.log(formartEther)
        })
        .catch((error) => {
            console.log("获取余额error--->" + error.code)
        });

或者:

// 连接账号
function connect() {
    console.log('Calling connect()')
    ethereum
    .request({ method: 'eth_requestAccounts' })
    .then(handleAccountsChanged)
    .catch((err) => {
    if (err.code === 4001) {
        // EIP-1193 userRejectedRequest error
        // If this happens, the user rejected the connection request.账号拒绝登录metamask
        console.log('Please connect to MetaMask.');
        $('#status').html('You refused to connect Metamask')
    } else {
        console.error(err);
    }
    });
}

获取交易回执


//发出支付请求
    ethereum
        .request({
            method: 'eth_sendTransaction',
            params: [
                {
                    from: fromAddress,
                    to: toAddress,
                    value: value,
                }
            ]
        })
        .then((result) => {
            console.log(result)
            //'0xec9026d3a9d4cd4d44ac7cd49186a05c8a2db4d697a05207d8e804d2a245455a'
            if (result != null || result != undefined){
                console.log("开始计时")
                let paramsStr = [];  //对应查询时的参数params,列表
                paramsStr[0] = result;
                //需要等待十秒 才能收到回执单信息 返回回执代码串 和 回执单不是同时的 所以有时候能直接通过回执代码串获取到回执单 有时候获取不到 可能跟网速有关系 所以在获取到
                //回执代码串之后 延时十秒再获取回执单即可
                setTimeout(function () {
                    getReceipt(paramsStr) // 10秒后执行下面的函数,获取交易回执
                },10000);
            }


        })
        .catch((error) => {

        });
 

 //获取回执单的方法
    function getReceipt(paramsStr) {
        ethereum.request({
            method: 'eth_getTransactionReceipt',
            params: paramsStr
        })
            .then((result) => {
                console.log(result)
            })
            .catch((error) => {
                console.log("error--->" + error.message)
                // If the request fails, the Promise will reject with an error.
            });

    }


//发出支付请求之10秒后,通过返回值paramsStr,即Transaction Hash从以太坊交易中读取交易回执信息。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

回执:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

实际操作

在交易提交返回到Transaction Hash时,说明交易成功,可以在这个时候将Transaction Hash及其他交易信息,一并提交至数据库。至于获取订单回执,随时可以通过钱包地址及Transaction Hash获取。

展开阅读全文

页面更新:2024-05-09

标签:回执   余额   账号   钱包   地址   注释   账户   参数   代码   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top