【问题标题】:Solana - How to get the balance from my Phantom wallet?Solana - 如何从我的 Phantom 钱包中获取余额?
【发布时间】:2021-10-11 09:28:44
【问题描述】:

我目前正在开发一个可以连接到 Phantom Wallet 的网络应用程序。我已经建立连接并成功检索了钱包的公钥。问题是,我似乎找不到任何解决方案来获取帐户余额。

作为参考,我想像 solanart.io 一样显示账户余额。

请注意,我已经浏览了所有相关文档(Solana/web3.js、Solana JSON RPC API 等)。请指导我,因为我还是 JSON RPC API 的新手。

提醒一下,我正在使用 vanilla js。

try {
      const resp = window.solana.request({
        method: "getAccountTokenBalance",
        params: [
          id, //wallet's public key
          {
            encoding: "base58",
          },
        ],
      });
      console.log(resp);
    } catch(err) {
      // error message
    }

提前谢谢你。

【问题讨论】:

标签: javascript blockchain solana


【解决方案1】:

您使用的 RPC 方法不存在。您需要使用 getBalance 来获取钱包上的 SOL:https://docs.solana.com/developing/clients/jsonrpc-api#getbalance

要获取该钱包拥有的所有非 SOL 代币余额,您必须使用 getTokenAccountsByOwner 并使用该钱包 ID:https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner

【讨论】:

  • 感谢 Jon 指出这一点。我改变了我的代码结构并使用了 getBalance。终于成功了!
  • 你把你的结构改成什么了?你能提供一个有效的香草例子吗?我有一个连接,我可以得到地址,但是当我运行这条线来获得余额时,我得到一个 -32603 错误。 var balance = window.solana.request({ "jsonrpc": "2.0", "id": 1, "method": "getBalance", "params": [wallet_address] });
  • 我从以下位置获取 wallet_address:var wallet_address = window.solana.publicKey.toString();
  • 如何在 nft 上获取元数据
猜你喜欢
  • 2021-12-05
  • 2021-12-10
  • 2021-03-23
  • 1970-01-01
  • 2022-01-13
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多