Vous utilisez Kora v2.2.0-beta ? Consultez la documentation Beta pour les nouvelles méthodes de bundle (
signBundle,signAndSendBundle,estimateBundleFee) etgetVersion.
SDK TypeScript
Le package @solana/kora fournit trois options de client pour interagir avec un
serveur Kora :
KoraClient (Autonome)
Utilisez KoraClient pour une utilisation autonome. Fonctionne avec
@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 (Composable Kit)
Utilisez koraPlugin() pour composer les méthodes Kora dans un client Kit
existant. Requiert @solana/kit v5.4+ pour le pattern
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();
Le plugin fournit des réponses typées Kit (Address, Blockhash,
Base64EncodedWireTransaction) et exporte le type KoraPlugin pour la
composition avec d'autres plugins.
createKitKoraClient (Client Kit)
Utilisez createKitKoraClient() pour une intégration complète de Kit avec
planification automatique des transactions, estimation des frais, injection de
paiement et exécution. Il s'agit de l'approche recommandée pour la plupart des
applications. Requiert @solana/kit v6.1+.
Le client Kit compose Kora avec l'architecture de plugins de Kit (plugins de
planification, d'exécution, de paiement) afin que vous puissiez utiliser
directement les plugins de programme Kit comme 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();
Options de configuration :
| Option | Requis | Description |
|---|---|---|
endpoint | Oui | URL du point de terminaison RPC Kora |
rpcUrl | Oui | URL RPC Solana pour l'estimation des unités de calcul et la compatibilité des plugins de programme |
feeToken | Oui | Adresse de mint SPL pour le paiement des frais |
feePayerWallet | Oui | TransactionSigner qui autorise le paiement des frais SPL |
apiKey | Non | Clé API pour l'authentification |
hmacSecret | Non | Secret HMAC pour l'authentification basée sur signature |
computeUnitLimit | Non | Limite d'unités de calcul fixe (utilise l'estimation basée sur simulation si non définie) |
computeUnitPrice | Non | Frais de priorité en micro-lamports |
tokenProgramId | Non | ID du Token Program (par défaut Token Program ; utilisez l'adresse Token-2022 pour les jetons Token-2022) |
Protocole
- Standard : JSON-RPC 2.0
- Transport : HTTP POST
- Content-Type : application/json
- Point de terminaison :
http://your-kora-instance/
Méthodes disponibles
| Méthode | Description |
|---|---|
| estimateTransactionFee | Estime les frais de transaction en lamports et dans le jeton spécifié. |
| getBlockhash | Récupère le dernier blockhash depuis le RPC Solana auquel le serveur Kora est connecté. |
| getConfig | Récupère la configuration actuelle du serveur Kora. |
| getPayerSigner | Récupère le signataire payeur et la destination de paiement depuis le serveur Kora. |
| getPaymentInstruction | Crée une instruction de paiement à ajouter à une transaction pour le paiement des frais au paymaster Kora. |
| getSupportedTokens | Récupère la liste des jetons pris en charge pour le paiement des frais. |
| signAndSendTransaction | Signe une transaction et la diffuse immédiatement sur le réseau Solana. |
| signTransaction | Signe une transaction avec le payeur de frais Kora si la transaction inclut le paiement nécessaire au payeur de frais sans la diffuser. |
| transferTransaction | Crée une transaction de transfert de jetons avec Kora en tant que payeur de frais. |
Format de requête
Toutes les requêtes suivent le standard JSON-RPC 2.0 :
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
Format de réponse
Réponses réussies :
{"jsonrpc": "2.0","id": 1,"result": {}}
Réponses d'erreur :
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?