ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

区块链-对接小狐狸钱包(补充获取某个账号的余额)

2022-01-18 11:34:15  阅读:437  来源: 互联网

标签:回执单 console log 账号 获取 余额 error 钱包 区块


上篇对接小狐狸钱包文章中已经说明了新版demo和旧版demo的区别,那么当我们使用新版demo时,如何获取余额呢?

获取小狐狸钱包余额

网上一搜都是使用web3.js提供的方法,但是当你用的时候发现,

//web3提供获取余额的方法
    var balance = web3.eth.getBalance("0xBcFf5a3c1970D795777d7471F2792832BAF5679d");
    console.log(balance); // instanceof BigNumber

页面控制台输出

 

 打开连接发现官方已经删除了web3的支持。

 

 那么我们如何获取余额呢,那就继续在官网找找......

于是找到了这个链接:https://eth.wiki/json-rpc/API#eth_call

 

 于是举一反三,根据之前的经验最终研究明白了,以下代码就是获取制定账户余额的方法,获取到的余额是16进制的wei,在获取余额成功后我已经做了转换,params中两个参数,第一个是你要查询的账户,第二个是固定参数,表示最新的

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

获取交易后的回执

上篇文章中还介绍过新版的交易方法返回的结果已经不是之前的回执单了,单纯返回了一个32进制的wei,也就是一串0x开头的代码,这时候我们就要思考了,这串代码到底是什么意思呢?

官网一通鼓捣,最终研究明白了,返回的一串代码就是一个key,我们通过这个key就能获取旧版交易返回的回执单。

先解释一下回执单代表啥意思啊,如果你研究过我上篇的博客,就应该知道,旧版的交易方法成功之后会返回一个组成json串的回执单(银行转账之后的打印单),如下代码

{
    "v":"0xe5",
    "r":"0x300b7fc6a9df2eea33a5254b1511e6f4afc33b5d16594f8e37e124bbc4128bb2",
    "s":"0x6f3b7d83ecafc36b043d4ed01124451c6a51efde7d3acaa634653efc812fb93b",
    "to":"0x3845bca19da119fc8935e2c1cd832e981a024f89",
    "gas":"0x7b0c",
    "from":"0xbcff5a3c1970d795777d7471f2792832baf5679d",
    "hash":"0xf0ad6c193c85afdb402d7b1bc856ba02ec6039ee3da6037d99fe8280b5760f2d",
    "nonce":"0x8",
    "input":"0x",
    "value":"0x1000000000000",
    "accessList":null,
    "blockHash":null,
    "blockNumber":null,
    "transactionIndex":null,
    "gasPrice":"0x2540be400",
    "type":"0x0"
}

然后咱们就说新版的如何获取上边这个回执单,param参数中放的就是交易成功后返回的代码串。

 

 具体使用代码如下。

ethereum
           .request({
                    method: 'eth_getTransactionReceipt',
                    params: [
                        '0x178bf55c2984f6eeea2606d0128d5bba50a64c918f65c714dfdd5379705f34f3'
                    ]
                })
                .then((result) => {
                    console.log("111success--->" + result.to)
                })
                .catch((error) => {
                    console.log("222error--->" + error.message)
                    // If the request fails, the Promise will reject with an error.
                });

这个解析回执单的方法还有点问题,当这样写死代码串的时候就没问题,但是如果通过参数传递进去就报错,不知道为什么呢,还在持续研究中。

标签:回执单,console,log,账号,获取,余额,error,钱包,区块
来源: https://www.cnblogs.com/qcq0703/p/15817014.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有