Solana - 如何从我的 Phantom 钱包中获取余额?
Solana - How to get the balance from my Phantom wallet?
我正在开发一个可以连接到 Phantom 钱包的网络应用程序。我已建立连接并已成功检索到钱包的 public 密钥。问题是,我似乎找不到任何解决方案来获取帐户余额。
作为参考,我想像 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
}
您正在使用的 RPC 方法不存在。您需要使用 getBalance
在钱包上获取 SOL:https://docs.solana.com/developing/clients/jsonrpc-api#getbalance
要获取该钱包拥有的所有非 SOL 代币余额,您必须使用 getTokenAccountsByOwner
使用该钱包 ID:https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner
这个方法对我来说很管用
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)
}
我正在开发一个可以连接到 Phantom 钱包的网络应用程序。我已建立连接并已成功检索到钱包的 public 密钥。问题是,我似乎找不到任何解决方案来获取帐户余额。
作为参考,我想像 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
}
您正在使用的 RPC 方法不存在。您需要使用 getBalance
在钱包上获取 SOL:https://docs.solana.com/developing/clients/jsonrpc-api#getbalance
要获取该钱包拥有的所有非 SOL 代币余额,您必须使用 getTokenAccountsByOwner
使用该钱包 ID:https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner
这个方法对我来说很管用
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)
}