هل تستخدم Kora v2.2.0-beta؟ راجع مستندات الإصدار التجريبي لطرق الحزم الجديدة (
signBundle،signAndSendBundle،estimateBundleFee) وgetVersion.
مجموعة تطوير TypeScript
توفر حزمة @solana/kora ثلاثة خيارات للعميل للتفاعل مع خادم Kora:
KoraClient (مستقل)
استخدم KoraClient للاستخدام المستقل. يعمل مع @solana/kit v5.0+.
import { KoraClient } from "@solana/kora";const kora = new KoraClient({ rpcUrl: "https://your-kora-server.com" });const config = await kora.getConfig();
koraPlugin (قابل للتركيب مع Kit)
استخدم koraPlugin() لدمج طرق Kora في عميل Kit موجود. يتطلب @solana/kit v5.4+
لنمط createEmptyClient().use().
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();
توفر الإضافة استجابات بنوع Kit (Address، Blockhash،
Base64EncodedWireTransaction) وتصدّر نوع KoraPlugin للتركيب مع إضافات أخرى.
createKitKoraClient (عميل Kit)
استخدم createKitKoraClient() للتكامل الكامل مع Kit مع التخطيط التلقائي
للمعاملات، وتقدير الرسوم، وحقن الدفع، والتنفيذ. هذا هو النهج الموصى به لمعظم
التطبيقات. يتطلب @solana/kit v6.1+.
يدمج عميل Kit نظام Kora مع بنية الإضافات في Kit (المخطط، المنفذ، إضافات الدافع)
بحيث يمكنك استخدام إضافات برامج Kit مثل tokenProgram() مباشرة.
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();
خيارات التكوين:
| الخيار | مطلوب | الوصف |
|---|---|---|
endpoint | نعم | عنوان URL لنقطة نهاية Kora RPC |
rpcUrl | نعم | عنوان URL لـ Solana RPC لتقدير وحدة الحوسبة وتوافق إضافات البرامج |
feeToken | نعم | عنوان SPL mint لدفع الرسوم |
feePayerWallet | نعم | TransactionSigner الذي يصرّح بدفع رسوم SPL |
apiKey | لا | مفتاح API للمصادقة |
hmacSecret | لا | سر HMAC للمصادقة القائمة على التوقيع |
computeUnitLimit | لا | حد ثابت لوحدة الحوسبة (يستخدم التقدير القائم على المحاكاة إذا لم يتم تعيينه) |
computeUnitPrice | لا | رسوم الأولوية بالميكرولامبورت |
tokenProgramId | لا | معرّف Token Program (افتراضيًا Token Program؛ استخدم عنوان Token-2022 لرموز Token-2022) |
البروتوكول
- المعيار: JSON-RPC 2.0
- النقل: HTTP POST
- نوع المحتوى: application/json
- نقطة النهاية:
http://your-kora-instance/
الطرق المتاحة
| الطريقة | الوصف |
|---|---|
| estimateTransactionFee | تقدير رسوم المعاملة بكل من lamport والرمز المحدد. |
| getBlockhash | الحصول على أحدث blockhash من Solana RPC المتصل به خادم Kora. |
| getConfig | استرجاع التكوين الحالي لخادم Kora. |
| getPayerSigner | استرجاع موقّع الدافع ووجهة الدفع من خادم Kora. |
| getPaymentInstruction | إنشاء تعليمات الدفع لإلحاقها بمعاملة من أجل دفع الرسوم إلى مدير الدفع Kora. |
| getSupportedTokens | استرجاع قائمة الرموز المدعومة لدفع الرسوم. |
| signAndSendTransaction | توقيع معاملة وبثها فوراً إلى شبكة سولانا. |
| signTransaction | توقيع معاملة بواسطة دافع رسوم Kora إذا كانت المعاملة تتضمن الدفع الضروري لدافع الرسوم دون بثها. |
| transferTransaction | إنشاء معاملة تحويل رموز مع Kora كدافع للرسوم. |
صيغة الطلب
جميع الطلبات تتبع معيار JSON-RPC 2.0:
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
صيغة الاستجابة
الاستجابات الناجحة:
{"jsonrpc": "2.0","id": 1,"result": {}}
استجابات الخطأ:
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?