Menggunakan Kora v2.2.0-beta? Lihat dokumentasi Beta untuk metode bundle baru (
signBundle,signAndSendBundle,estimateBundleFee) dangetVersion.
SDK TypeScript
Paket @solana/kora menyediakan tiga opsi klien untuk berinteraksi dengan
server Kora:
KoraClient (Mandiri)
Gunakan KoraClient untuk penggunaan mandiri. Bekerja dengan @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 yang Dapat Digabungkan)
Gunakan koraPlugin() untuk menggabungkan metode Kora ke dalam klien Kit yang
ada. Memerlukan @solana/kit v5.4+ untuk pola 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();
Plugin ini menyediakan respons bertipe Kit (Address, Blockhash,
Base64EncodedWireTransaction) dan mengekspor tipe KoraPlugin untuk komposisi
dengan plugin lainnya.
createKitKoraClient (Klien Kit)
Gunakan createKitKoraClient() untuk integrasi Kit penuh dengan perencanaan
transaksi otomatis, estimasi biaya, injeksi pembayaran, dan eksekusi. Ini adalah
pendekatan yang direkomendasikan untuk sebagian besar aplikasi. Memerlukan
@solana/kit v6.1+.
Klien Kit menggabungkan Kora dengan arsitektur plugin Kit (perencana, eksekutor,
plugin pembayar) sehingga Anda dapat menggunakan plugin program account Kit
seperti tokenProgram() secara langsung.
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();
Opsi konfigurasi:
| Opsi | Wajib | Deskripsi |
|---|---|---|
endpoint | Ya | URL endpoint RPC Kora |
rpcUrl | Ya | URL RPC Solana untuk estimasi unit komputasi dan kompatibilitas plugin program |
feeToken | Ya | Alamat mint SPL untuk pembayaran biaya |
feePayerWallet | Ya | TransactionSigner yang mengotorisasi pembayaran biaya SPL |
apiKey | Tidak | Kunci API untuk autentikasi |
hmacSecret | Tidak | Rahasia HMAC untuk autentikasi berbasis tanda tangan |
computeUnitLimit | Tidak | Batas unit komputasi tetap (menggunakan estimasi berbasis simulasi jika tidak diatur) |
computeUnitPrice | Tidak | Biaya prioritas dalam mikro-lamport |
tokenProgramId | Tidak | ID Token Program (default ke Token Program; gunakan alamat Token-2022 untuk token Token-2022) |
Protokol
- Standar: JSON-RPC 2.0
- Transport: HTTP POST
- Content-Type: application/json
- Endpoint:
http://your-kora-instance/
Metode yang Tersedia
| Metode | Deskripsi |
|---|---|
| estimateTransactionFee | Memperkirakan biaya transaksi dalam lamport dan token yang ditentukan. |
| getBlockhash | Mendapatkan blockhash terbaru dari Solana RPC yang terhubung dengan server Kora. |
| getConfig | Mengambil konfigurasi server Kora saat ini. |
| getPayerSigner | Mengambil penanda tangan pembayar dan tujuan pembayaran dari server Kora. |
| getPaymentInstruction | Membuat instruksi pembayaran untuk ditambahkan ke transaksi sebagai pembayaran biaya ke paymaster Kora. |
| getSupportedTokens | Mengambil daftar token yang didukung untuk pembayaran biaya. |
| signAndSendTransaction | Menandatangani transaksi dan langsung menyiarkannya ke jaringan Solana. |
| signTransaction | Menandatangani transaksi dengan pembayar biaya Kora jika transaksi mencakup pembayaran yang diperlukan kepada pembayar biaya tanpa menyiarkannya. |
| transferTransaction | Membuat transaksi transfer token dengan Kora sebagai pembayar biaya. |
Format Permintaan
Semua permintaan mengikuti standar JSON-RPC 2.0:
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
Format Respons
Respons yang berhasil:
{"jsonrpc": "2.0","id": 1,"result": {}}
Respons error:
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?