Przegląd API JSON-RPC

Używasz Kora v2.2.0-beta? Zobacz dokumentację Beta dla nowych metod pakietowania (signBundle, signAndSendBundle, estimateBundleFee) oraz getVersion.

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"), // USDC
feePayerWallet: userSigner // TransactionSigner that authorizes SPL fee payment
});
// Compose with Kit program plugins
const tokenClient = client.use(tokenProgram());
// Send transactions — Kora handles blockhash, fee estimation,
// payment instruction injection, signing, and submission
await tokenClient.token.instructions
.transferToATA({
/* ... */
})
.sendTransaction();

Opcje konfiguracji:

OpcjaWymaganaOpis
endpointTakURL punktu końcowego Kora RPC
rpcUrlTakURL Solana RPC do szacowania jednostek obliczeniowych i kompatybilności wtyczek programów
feeTokenTakAdres SPL mint do płatności za opłaty
feePayerWalletTakTransactionSigner, który autoryzuje płatność opłaty SPL
apiKeyNieKlucz API do uwierzytelniania
hmacSecretNieSekret HMAC do uwierzytelniania opartego na podpisie
computeUnitLimitNieStały limit jednostek obliczeniowych (używa szacowania opartego na symulacji, jeśli nie jest ustawiony)
computeUnitPriceNieOpłata priorytetowa w mikro-lamportach
tokenProgramIdNieID 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

MetodaOpis
estimateTransactionFeeSzacuje opłatę transakcyjną zarówno w lamportach, jak i w określonym tokenie.
getBlockhashPobiera najnowszy blockhash z Solana RPC, do którego podłączony jest serwer Kora.
getConfigPobiera bieżącą konfigurację serwera Kora.
getPayerSignerPobiera sygnatariusza płatnika i miejsce docelowe płatności z serwera Kora.
getPaymentInstructionTworzy instrukcję płatności do dołączenia do transakcji w celu uiszczenia opłaty na rzecz paymastera Kora.
getSupportedTokensPobiera listę tokenów obsługiwanych do płatności opłat.
signAndSendTransactionPodpisuje transakcję i natychmiast wysyła ją do sieci Solana.
signTransactionPodpisuje transakcję płatnikiem opłat Kora, jeśli transakcja zawiera niezbędną płatność na rzecz płatnika opłat, bez jej wysyłania.
transferTransactionTworzy 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?

Spis treści

Edytuj stronę

Zarządzane przez

© 2026 Solana Foundation.
Wszelkie prawa zastrzeżone.
Bądź na bieżąco