Kora v2.2.0-beta kullanıyor musunuz? Yeni paket yöntemleri (
signBundle,signAndSendBundle,estimateBundleFee) vegetVersioniçin Beta dokümanlarına göz atın.
TypeScript SDK
@solana/kora paketi, bir Kora sunucusuyla etkileşim için üç istemci seçeneği
sunar:
KoraClient (Bağımsız)
Bağımsız kullanım için KoraClient kullanın. @solana/kit v5.0+ ile çalışır.
import { KoraClient } from "@solana/kora";const kora = new KoraClient({ rpcUrl: "https://your-kora-server.com" });const config = await kora.getConfig();
koraPlugin (Kit Oluşturulabilir)
Kora yöntemlerini mevcut bir Kit istemcisine eklemek için koraPlugin()
kullanın. createEmptyClient().use() deseni için @solana/kit v5.4+
gerektirir.
import { createEmptyClient } from "@solana/kit";import { koraPlugin } from "@solana/kora";const client = createEmptyClient().use(koraPlugin({ endpoint: "https://your-kora-server.com" }));const config = await client.kora.getConfig();
Eklenti, Kit tipli yanıtlar (Address, Blockhash,
Base64EncodedWireTransaction) sağlar ve diğer eklentilerle oluşturma için
KoraPlugin tipini dışa aktarır.
createKitKoraClient (Kit İstemcisi)
Otomatik işlem planlama, ücret tahmini, ödeme enjeksiyonu ve yürütme ile tam Kit
entegrasyonu için createKitKoraClient() kullanın. Bu, çoğu uygulama için
önerilen yaklaşımdır. @solana/kit v6.1+ gerektirir.
Kit istemcisi, Kora'yı Kit'in eklenti mimarisi (planlayıcı, yürütücü, ödeme
eklentileri) ile birleştirerek tokenProgram() gibi Kit program eklentilerini
doğrudan kullanabilmenizi sağlar.
import { createKitKoraClient } from "@solana/kora";import { address } from "@solana/kit";import { tokenProgram } from "@solana-program/token";const client = await createKitKoraClient({endpoint: "https://your-kora-server.com",rpcUrl: "https://api.mainnet-beta.solana.com",feeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"), // USDCfeePayerWallet: userSigner // TransactionSigner that authorizes SPL fee payment});// Compose with Kit program pluginsconst tokenClient = client.use(tokenProgram());// Send transactions — Kora handles blockhash, fee estimation,// payment instruction injection, signing, and submissionawait tokenClient.token.instructions.transferToATA({/* ... */}).sendTransaction();
Yapılandırma seçenekleri:
| Seçenek | Gerekli | Açıklama |
|---|---|---|
endpoint | Evet | Kora RPC uç nokta URL'si |
rpcUrl | Evet | Hesaplama birimi tahmini ve program eklentisi uyumluluğu için Solana RPC URL'si |
feeToken | Evet | Ücret ödemesi için SPL mint adresi |
feePayerWallet | Evet | SPL ücret ödemesini yetkilendiren TransactionSigner |
apiKey | Hayır | Kimlik doğrulama için API anahtarı |
hmacSecret | Hayır | İmza tabanlı kimlik doğrulama için HMAC gizli anahtarı |
computeUnitLimit | Hayır | Sabit hesaplama birimi sınırı (ayarlanmadıysa simülasyon tabanlı tahmin kullanılır) |
computeUnitPrice | Hayır | Mikro-lamport cinsinden öncelik ücreti |
tokenProgramId | Hayır | Token program ID'si (varsayılan olarak Token Program; Token-2022 tokenleri için Token-2022 adresi kullanın) |
Protokol
- Standart: JSON-RPC 2.0
- Aktarım: HTTP POST
- Content-Type: application/json
- Uç Nokta:
http://your-kora-instance/
Kullanılabilir Yöntemler
| Yöntem | Açıklama |
|---|---|
| estimateTransactionFee | İşlem ücretini hem lamport hem de belirtilen token cinsinden tahmin eder. |
| getBlockhash | Kora sunucusunun bağlı olduğu Solana RPC'den en son blockhash değerini alır. |
| getConfig | Mevcut Kora sunucu yapılandırmasını getirir. |
| getPayerSigner | Kora sunucusundan ödeme yapan imzalayıcıyı ve ödeme hedefini getirir. |
| getPaymentInstruction | Kora paymaster'a ücret ödemesi için bir işleme eklenecek ödeme talimatı oluşturur. |
| getSupportedTokens | Ücret ödemesi için desteklenen token listesini getirir. |
| signAndSendTransaction | Bir işlemi imzalar ve anında Solana ağına yayınlar. |
| signTransaction | İşlem, ücret ödeyiciye gerekli ödemeyi içeriyorsa, işlemi yayınlamadan Kora ücret ödeyicisiyle imzalar. |
| transferTransaction | Kora'yı ücret ödeyici olarak kullanarak bir token transfer işlemi oluşturur. |
İstek Formatı
Tüm istekler JSON-RPC 2.0 standardını takip eder:
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
Yanıt Formatı
Başarılı yanıtlar:
{"jsonrpc": "2.0","id": 1,"result": {}}
Hata yanıtları:
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?