Prima di costruire flussi di pagamento, devi connetterti a Solana e capire come interrogare i dati della rete. Questa guida copre le basi: stabilire una connessione e utilizzare i metodi RPC necessari per i pagamenti usando l'SDK TypeScript @solana/kit e la Solana CLI. Inoltre, tratteremo le basi dell'utilizzo di Solana Explorer per verificare manualmente i pagamenti, ispezionare gli account e risolvere problemi.
Connettersi a Solana
L'API RPC di Solana è il modo principale per interagire programmaticamente con la rete. Il tuo URL RPC è effettivamente una chiave API per la rete.
Non utilizzare RPC pubblici per la produzione
Gli endpoint pubblici (api.mainnet-beta.solana.com, api.devnet.solana.com)
hanno limiti di velocità, non offrono SLA e non sono adatti per flussi di
pagamento in produzione. Utilizza un provider RPC
per ottenere un endpoint RPC privato per i deployment in produzione.
Per lo sviluppo e il testing, puoi utilizzare endpoint pubblici con limiti di velocità.
Crea un client RPC per interagire con la rete:
import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");const rpcSubscriptions = createSolanaRpcSubscriptions("wss://api.mainnet-beta.solana.com");
Per lo sviluppo, utilizza devnet (https://api.devnet.solana.com) o un
validator locale come
Surfpool.
Metodi RPC comuni
L'API JSON-RPC di Solana espone metodi per interrogare la rete. Ecco quelli che utilizzerai maggiormente per i flussi di pagamento.
Ottenere informazioni sull'account
Tutti gli account su Solana sono indirizzabili tramite la loro chiave pubblica.
Utilizza il metodo RPC getAccountInfo per
recuperare informazioni su qualsiasi account. Il metodo getAccountInfo
restituisce un oggetto AccountInfo, che contiene la chiave pubblica
dell'account, il saldo SOL, i dati e alcuni altri metadati.
Il campo data è una stringa codificata in base64 dei dati dell'account. Puoi
codificarla in byte utilizzando il metodo getBase64Codec dal pacchetto
@solana/kit e poi decodificarla in un oggetto leggibile utilizzando il codec
previsto (se conosciuto) per i dati dell'account (ad esempio, getTokenCodec
per i token account).
const accountInfo = await rpc.getAccountInfo(address("7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"), {encoding: "base64"}).send();const dataBytes = getBase64Codec().encode(accountInfo.value.data);const parsedTokenData = getTokenCodec().decode(dataBytes);console.log(parsedTokenData);
Ottenere i saldi dei token
Controlla il saldo di un token account utilizzando il metodo RPC
getTokenAccountBalance:
const balance = await rpc.getTokenAccountBalance(tokenAccountAddress).send();console.log(balance.value.uiAmount); // Human-readable (e.g., 100.50)console.log(balance.value.amount); // Base units (e.g., "100500000")
Costruire transazioni
Ogni transazione necessita di un blockhash recente per garantire che sia valida
(e non scaduta). Recuperane uno prima di creare una transazione di pagamento
utilizzando il metodo RPC
getLatestBlockhash:
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
I blockhash scadono dopo ~60 secondi. Recuperane uno nuovo immediatamente prima di firmare e inviare.
Verificare lo stato della transazione
Verifica che una transazione sia stata completata utilizzando il metodo RPC
getSignatureStatuses:
const status = await rpc.getSignatureStatuses([signature]).send();const result = status.value[0];// result.confirmationStatus: "processed" | "confirmed" | "finalized"
Ottenere i dettagli della transazione
Recupera i dettagli completi di una transazione confermata utilizzando il metodo
RPC getTransaction:
const transaction = await rpc.getTransaction(signature, { maxSupportedTransactionVersion: 0 }).send();
Cronologia delle transazioni
Ottieni le transazioni recenti per un indirizzo utilizzando il metodo RPC
getSignaturesForAddress:
const signatures = await rpc.getSignaturesForAddress(walletAddress, { limit: 10 }).send();
Per un monitoraggio completo dei pagamenti, consulta Accettare pagamenti che copre webhook e rilevamento delle transazioni in tempo reale.
Esplorare i dati pubblici
Il registro pubblico di Solana significa che ogni transazione, token account e mint è completamente verificabile. Gli explorer di blocchi ti permettono di verificare manualmente i pagamenti, ispezionare gli account e risolvere problemi senza scrivere codice.
Cosa puoi cercare:
- Verificare che un pagamento sia stato regolato
- Ispezionare i saldi dei token account
- Risolvere transazioni fallite
- Cercare i dettagli dei mint (supply, decimali, authority)
Explorer comuni: Solana Explorer, SolanaFM, Solscan, Orb
Link di esempio:
- USDC Token Mint — Supply, mercati, possessori e transazioni per USDC
- Trasferimento di token USDC — Dettagli di una transazione di pagamento USDC
- USDG Token Account — Saldo USDG di un utente e cronologia delle transazioni
Is this page helpful?