Ödeme akışları oluşturmadan önce Solana'ya bağlanmanız ve ağ verilerini nasıl sorgulayacağınızı anlamanız gerekir. Bu kılavuz temel konuları kapsar: bağlantı kurma ve @solana/kit TypeScript SDK'sı ve Solana CLI kullanarak ödemeler için ihtiyaç duyacağınız RPC yöntemlerini kullanma. Ayrıca, ödemeleri manuel olarak doğrulamak, hesapları incelemek ve sorunları gidermek için Solana Explorer kullanımının temellerini ele alacağız.
Solana'ya bağlanma
Solana'nın RPC API'si, ağ ile programatik olarak etkileşim kurmanın birincil yoludur. RPC URL'niz, ağa erişim için etkin bir API anahtarıdır.
Üretim için genel RPC kullanmayın
Genel uç noktalar (api.mainnet-beta.solana.com, api.devnet.solana.com) hız
sınırlıdır, SLA'sı yoktur ve üretim ödeme akışları için uygun değildir. Üretim
dağıtımları için özel bir RPC uç noktası güvence altına almak üzere bir RPC
sağlayıcısı kullanın.
Geliştirme ve test için hız sınırlı genel uç noktaları kullanabilirsiniz.
Ağ ile etkileşim kurmak için bir RPC istemcisi oluşturun:
import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");const rpcSubscriptions = createSolanaRpcSubscriptions("wss://api.mainnet-beta.solana.com");
Geliştirme için devnet (https://api.devnet.solana.com) veya
Surfpool gibi yerel bir
validator kullanın.
Yaygın RPC yöntemleri
Solana'nın JSON-RPC API'si, ağı sorgulamak için yöntemler sunar. Ödeme akışları için en çok kullanacağınız yöntemler şunlardır.
Hesap bilgilerini alma
Solana'daki tüm hesaplar, genel anahtarları ile adreslenebilir. Herhangi bir
hesap hakkında bilgi almak için
getAccountInfo RPC yöntemini kullanın.
getAccountInfo yöntemi, hesabın genel anahtarını, SOL bakiyesini, verisini ve
diğer bazı meta verileri içeren bir AccountInfo nesnesi döndürür.
data alanı, hesabın verilerinin base64 kodlu bir dizesidir. Bunu @solana/kit
paketindeki getBase64Codec metodunu kullanarak baytlara kodlayabilir ve
ardından hesabın verileri için beklenen codec'i (biliniyorsa) kullanarak
okunabilir bir nesneye çözebilirsiniz (örneğin, token hesapları için
getTokenCodec).
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);
Token bakiyelerini alma
Bir token hesabının bakiyesini
getTokenAccountBalance RPC metodunu
kullanarak kontrol edin:
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")
İşlem oluşturma
Her işlemin geçerli olduğundan (ve eskimediğinden) emin olmak için yakın tarihli
bir blockhash'e ihtiyacı vardır. Bir ödeme işlemi oluşturmadan önce
getLatestBlockhash RPC metodunu
kullanarak bir tane alın:
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
Blockhash'ler yaklaşık 60 saniye sonra sona erer. İmzalamadan ve göndermeden hemen önce yeni bir tane alın.
İşlem durumunu kontrol etme
Bir işlemin sonuçlandığını
getSignatureStatuses RPC metodunu
kullanarak doğrulayın:
const status = await rpc.getSignatureStatuses([signature]).send();const result = status.value[0];// result.confirmationStatus: "processed" | "confirmed" | "finalized"
İşlem detaylarını alma
Onaylanmış bir işlemin tüm detaylarını
getTransaction RPC metodu kullanarak alın:
const transaction = await rpc.getTransaction(signature, { maxSupportedTransactionVersion: 0 }).send();
İşlem geçmişi
Bir adres için son işlemleri
getSignaturesForAddress RPC metodu
kullanarak alın:
const signatures = await rpc.getSignaturesForAddress(walletAddress, { limit: 10 }).send();
Kapsamlı ödeme izleme için, webhook'ları ve gerçek zamanlı işlem tespitini kapsayan Ödeme kabul etme bölümüne bakın.
Genel verileri keşfetme
Solana'nın genel defteri, her işlemin, token hesabının ve mint'in tamamen denetlenebilir olduğu anlamına gelir. Blok gezginleri, kod yazmadan ödemeleri manuel olarak doğrulamanıza, hesapları incelemenize ve sorunları ayıklamanıza olanak tanır.
Arayabileceğiniz bilgiler:
- Bir ödemenin gerçekleştiğini doğrulama
- Token hesap bakiyelerini inceleme
- Başarısız işlemleri ayıklama
- Mint detaylarını arama (arz, ondalık basamak, yetki)
Yaygın gezginler: Solana Explorer, SolanaFM, Solscan, Orb
Örnek bağlantılar:
- USDC Token Mint — USDC için arz, piyasalar, sahipler ve işlemler
- USDC Token transferi — Bir USDC ödeme işleminin detayları
- USDG Token hesabı — Bir kullanıcının USDG bakiyesi ve işlem geçmişi
Is this page helpful?