Solana - 如何从我的 Phantom 钱包中获取余额?

Afa*_*a12 7 javascript blockchain smartcontracts solana phantom-wallet

我正在开发一个可以连接到 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
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*n C 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

  • 感谢乔恩指出这一点。我更改了代码结构并使用了 getBalance。最后,它起作用了! (2认同)
  • 您将构造更改为什么?您能提供一个有效的香草示例吗?我有连接,并且可以获取地址,但是当我运行此行来获取余额时,出现 -32603 错误。var Balance = window.solana.request({ "jsonrpc": "2.0", "id": 1, "method": "getBalance", "params": [wallet_address] }); (2认同)