繁体   English   中英

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

[英]Solana - How to get the balance from my Phantom wallet?

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

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

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

提醒一下,我使用的是香草 js。

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

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

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

这种方法适用于我获得 SOL Balance

  const [userSOLBalance, setSOLBalance] = useState<number>()
 if (wallet.publicKey) {
  const SOL = connection.getAccountInfo(wallet.publicKey)
  SOL.then((res) => setSOLBalance(res.lamports / LAMPORTS_PER_SOL))
}
import { useWallet } from '@solana/wallet-adapter-react'
import { LAMPORTS_PER_SOL,clusterApiUrl } from '@solana/web3.js'
import * as anchor from '@project-serum/anchor'


const wallet = useWallet()
const SOLANA_HOST = clusterApiUrl("devnet")
const connection = new anchor.web3.Connection(SOLANA_HOST)

let lamportBalance
if (wallet?.publicKey) {
        const balance = await connection.getBalance(wallet.publicKey)
        lamportBalance=(balance / LAMPORTS_PER_SOL)
      }

嗨,您可以发送或发布代码以获取余额吗? 我正在尝试,但它不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM