欢迎光临散文网 会员登陆 & 注册

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

2022-11-17 12:36 作者:civilpy  | 我要投稿

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

以下代码就是获取制定账户余额的方法,获取到的余额是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从以太坊交易中读取交易回执信息。

编辑切换为居中

回执:

编辑切换为居中

实际操作

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



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

分享到微博请遵守国家法律