Używasz Kora v2.2.0-beta? Zobacz dokumentację Beta dla nowych metod pakietowania (
signBundle,signAndSendBundle,estimateBundleFee) orazgetVersion.
TypeScript SDK
Pakiet @solana/kora zapewnia trzy opcje klienta do interakcji z serwerem Kora:
KoraClient (samodzielny)
Użyj KoraClient do użytku samodzielnego. Działa z @solana/kit w wersji 5.0+.
import { KoraClient } from "@solana/kora";const kora = new KoraClient({ rpcUrl: "https://your-kora-server.com" });const config = await kora.getConfig();
koraPlugin (kompozycja Kit)
Użyj koraPlugin(), aby skomponować metody Kora w istniejącym kliencie Kit.
Wymaga @solana/kit w wersji 5.4+ dla wzorca 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();
Wtyczka zapewnia odpowiedzi zgodne z typami Kit (Address, Blockhash,
Base64EncodedWireTransaction) i eksportuje typ KoraPlugin do komponowania z
innymi wtyczkami.
createKitKoraClient (klient Kit)
Użyj createKitKoraClient() do pełnej integracji z Kit, z automatycznym
planowaniem transakcji, szacowaniem opłat, wstrzykiwaniem płatności i
wykonywaniem. To zalecane podejście dla większości aplikacji. Wymaga
@solana/kit w wersji 6.1+.
Klient Kit komponuje Kora z architekturą wtyczek Kit (wtyczki planowania,
wykonywania, płatności), dzięki czemu możesz używać wtyczek programów Kit,
takich jak tokenProgram(), bezpośrednio.
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();
Opcje konfiguracji:
| Opcja | Wymagana | Opis |
|---|---|---|
endpoint | Tak | URL punktu końcowego Kora RPC |
rpcUrl | Tak | URL Solana RPC do szacowania jednostek obliczeniowych i kompatybilności wtyczek programów |
feeToken | Tak | Adres SPL mint do płatności za opłaty |
feePayerWallet | Tak | TransactionSigner, który autoryzuje płatność opłaty SPL |
apiKey | Nie | Klucz API do uwierzytelniania |
hmacSecret | Nie | Sekret HMAC do uwierzytelniania opartego na podpisie |
computeUnitLimit | Nie | Stały limit jednostek obliczeniowych (używa szacowania opartego na symulacji, jeśli nie jest ustawiony) |
computeUnitPrice | Nie | Opłata priorytetowa w mikro-lamportach |
tokenProgramId | Nie | ID programu tokenów (domyślnie Token Program; użyj adresu Token-2022 dla tokenów Token-2022) |
Protokół
- Standard: JSON-RPC 2.0
- Transport: HTTP POST
- Content-Type: application/json
- Endpoint:
http://your-kora-instance/
Dostępne metody
| Metoda | Opis |
|---|---|
| estimateTransactionFee | Szacuje opłatę transakcyjną zarówno w lamportach, jak i w określonym tokenie. |
| getBlockhash | Pobiera najnowszy blockhash z Solana RPC, do którego podłączony jest serwer Kora. |
| getConfig | Pobiera bieżącą konfigurację serwera Kora. |
| getPayerSigner | Pobiera sygnatariusza płatnika i miejsce docelowe płatności z serwera Kora. |
| getPaymentInstruction | Tworzy instrukcję płatności do dołączenia do transakcji w celu uiszczenia opłaty na rzecz paymastera Kora. |
| getSupportedTokens | Pobiera listę tokenów obsługiwanych do płatności opłat. |
| signAndSendTransaction | Podpisuje transakcję i natychmiast wysyła ją do sieci Solana. |
| signTransaction | Podpisuje transakcję płatnikiem opłat Kora, jeśli transakcja zawiera niezbędną płatność na rzecz płatnika opłat, bez jej wysyłania. |
| transferTransaction | Tworzy transakcję transferu tokenów z Kora jako płatnikiem opłat. |
Format żądania
Wszystkie żądania są zgodne ze standardem JSON-RPC 2.0:
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
Format odpowiedzi
Odpowiedzi pomyślne:
{"jsonrpc": "2.0","id": 1,"result": {}}
Odpowiedzi błędów:
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?