Estoy trabajando en una aplicación web que puede conectarse a Phantom Wallet. Establecí la conexión y recuperé con éxito la clave pública de la billetera. El problema es que no puedo encontrar ninguna solución para obtener el saldo de la cuenta.
Como referencia, quería mostrar el saldo de la cuenta tal como lo muestra solanart.io.
Tenga en cuenta que revisé todos los documentos relacionados (Solana/web3.js, Solana JSON RPC API, etc.). Guíeme, ya que todavía soy nuevo en la API JSON RPC.
Para un aviso, estoy usando 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 }El método RPC que está utilizando no existe. Querrá usar getBalance para obtener el SOL en la billetera: https://docs.solana.com/developing/clients/jsonrpc-api#getbalance
Para obtener todos los saldos de tokens que no son SOL de propiedad de esa billetera, deberá usar getTokenAccountsByOwner usando esa identificación de billetera: https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner
Este método me funciona para obtener 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) }