Τελευταία Ενημέρωση: 2026-03-09
Τι Θα Δημιουργήσετε
Το Kit client (createKitKoraClient) είναι ο προτεινόμενος τρόπος ενσωμάτωσης
του Kora σε εφαρμογές Solana. Ενσωματώνει την αφαίρεση τελών του Kora στην
αρχιτεκτονική plugin του Kit, παρέχοντάς σας ένα client που χειρίζεται αυτόματα:
- Διαχείριση blockhash
- Εκτίμηση τελών και εισαγωγή οδηγιών πληρωμής
- Υπογραφή συναλλαγών μέσω Kora
- Υποβολή και επιβεβαίωση συναλλαγών
- Βελτιστοποίηση compute budget (εκτίμηση CU βασισμένη σε προσομοίωση)
Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε plugins προγραμμάτων Kit όπως το
tokenProgram() και να έχετε το Kora να χειρίζεται όλη την πολυπλοκότητα των
τελών gas στο παρασκήνιο.
Προαπαιτούμενα
- Ολοκλήρωση του Οδηγού Γρήγορης Εκκίνησης Kora — διακομιστής Kora και τοπικός validator σε λειτουργία
- Εξοικείωση με το Solana Kit και το σύστημα plugin του
Εγκατάσταση
pnpm add @solana/kora @solana/kit
Οι εξαρτήσεις peer (@solana-program/token, @solana-program/compute-budget,
@solana/kit-plugin-*) εγκαθίστανται αυτόματα από τους περισσότερους
διαχειριστές πακέτων. Δείτε το
Εγκατάσταση αν χρειάζεται να
τις εγκαταστήσετε χειροκίνητα.
Δημιουργία του Client
Το createKitKoraClient συνθέτει πολλαπλά plugins Kit σε ένα μοναδικό client
που ικανοποιεί τα ClientWithPayer, ClientWithTransactionPlanning και
ClientWithTransactionSending.
import { createKitKoraClient } from "@solana/kora";import { address } from "@solana/kit";const client = await createKitKoraClient({endpoint: "http://localhost:8080", // Kora RPC endpointrpcUrl: "http://127.0.0.1:8899", // Solana RPC for CU estimationfeeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"), // USDC mintfeePayerWallet: userSigner // TransactionSigner for fee payment});
Το feePayerWallet πρέπει να είναι ένα TransactionSigner — αυτό είναι το
πορτοφόλι που εξουσιοδοτεί την πληρωμή τέλους token SPL στον χειριστή Kora. Ο
χειριστής Kora διαχειρίζεται τα τέλη δικτύου SOL.
Επιλογές Διαμόρφωσης
| Επιλογή | Απαιτείται | Περιγραφή |
|---|---|---|
endpoint | Ναι | URL τελικού σημείου RPC Kora |
rpcUrl | Ναι | URL Solana RPC (όχι το τελικό σημείο Kora) — χρησιμοποιείται για προσομοίωση compute unit και συμβατότητα plugin προγραμμάτων |
feeToken | Ναι | Διεύθυνση mint SPL για πληρωμή τελών (π.χ., USDC) |
feePayerWallet | Ναι | TransactionSigner που εξουσιοδοτεί την πληρωμή τέλους SPL |
apiKey | Όχι | Κλειδί API για έλεγχο ταυτότητας Kora |
hmacSecret | Όχι | Μυστικό HMAC για έλεγχο ταυτότητας βασισμένο σε υπογραφή |
computeUnitLimit | Όχι | Σταθερό όριο CU. Αν παραλειφθεί, το Kora προσομοιώνει τη συναλλαγή για εκτίμηση βέλτιστου CU (συνιστάται) |
computeUnitPrice | Όχι | Τέλος προτεραιότητας σε micro-lamports |
tokenProgramId | Όχι | Προεπιλογή στο Token Program. Ορίστε σε TOKEN_2022_PROGRAM_ADDRESS για tokens τελών Token-2022 |
Χρήση με Plugins Προγράμματος Kit
Ο πελάτης Kit είναι συνθέσιμος με plugins προγράμματος Kit. Για παράδειγμα, με
το tokenProgram():
import { createKitKoraClient } from "@solana/kora";import { tokenProgram } from "@solana-program/token";import { address } from "@solana/kit";const koraClient = await createKitKoraClient({endpoint: "http://localhost:8080",rpcUrl: "http://127.0.0.1:8899",feeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),feePayerWallet: userSigner});// Compose with the token program pluginconst client = koraClient.use(tokenProgram());// Use token program methods — Kora handles all fee abstractionawait client.token.instructions.transferToATA({source: userTokenAccount,destination: recipientAddress,amount: 1_000_000n, // 1 USDCauthority: userSigner}).sendTransaction();
Στα παρασκήνια, ο πελάτης Kit:
- Σχεδιάζει τη συναλλαγή με ένα blockhash που διαχειρίζεται η Kora και οδηγίες προϋπολογισμού υπολογιστικής ισχύος
- Εκτιμά το κόστος και εισάγει (ή ενημερώνει) την οδηγία πληρωμής SPL προς τον χειριστή Kora
- Υπογράφει μερικώς τη συναλλαγή με το πορτοφόλι του χρήστη
- Αποστέλλει τη συναλλαγή στην Kora για συνυπογραφή και υποβολή στο Solana
Πρόσβαση στις Μεθόδους RPC της Kora
Ο πελάτης Kit εκθέτει επίσης το πλήρες Kora API μέσω του namespace .kora (από
το koraPlugin):
// Get server configurationconst config = await client.kora.getConfig();// Get supported fee tokensconst { tokens } = await client.kora.getSupportedTokens();// Estimate fees for an arbitrary transactionconst estimate = await client.kora.estimateTransactionFee({transaction: base64EncodedTx,fee_token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"});
Όλες οι απαντήσεις των μεθόδων .kora χρησιμοποιούν τιμές τύπου Kit (Address,
Blockhash, Signature) αντί για ακατέργαστα strings.
Υποστήριξη Token-2022
Για να πληρώσετε τέλη με token Token-2022, περάστε την επιλογή tokenProgramId:
import { TOKEN_2022_PROGRAM_ADDRESS } from "@solana-program/token-2022";const client = await createKitKoraClient({endpoint: "http://localhost:8080",rpcUrl: "http://127.0.0.1:8899",feeToken: address("your-token-2022-mint"),feePayerWallet: userSigner,tokenProgramId: TOKEN_2022_PROGRAM_ADDRESS});
Προϋπολογισμός Υπολογιστικής Ισχύος
Από προεπιλογή, ο πελάτης Kit προσομοιώνει τη συναλλαγή έναντι του Solana RPC για να προσδιορίσει το βέλτιστο όριο μονάδων υπολογισμού. Αυτό έχει ως αποτέλεσμα πιο αυστηρή κατανομή CU και χαμηλότερα τέλη.
Για να το παρακάμψετε με σταθερή τιμή:
const client = await createKitKoraClient({// ...computeUnitLimit: 200_000,computeUnitPrice: 1_000_000n // priority fee in micro-lamports});
Πότε να Χρησιμοποιείτε τον Κάθε Πελάτη
| Πελάτης | Περίπτωση Χρήσης |
|---|---|
createKitKoraClient | Συνιστάται. Πλήρης ενσωμάτωση Kit με αυτόματο χειρισμό τελών. Ιδανικό για εφαρμογές που χρησιμοποιούν plugins προγράμματος Kit. |
KoraClient | Άμεση πρόσβαση RPC όταν χρειάζεστε πλήρη έλεγχο της κατασκευής, υπογραφής και υποβολής συναλλαγών. |
koraPlugin | Προσθήκη μεθόδων Kora σε έναν υπάρχοντα πελάτη Kit που έχετε ήδη συνθέσει με άλλα plugins. |
Επόμενα Βήματα
- Πλήρης Ροή Συναλλαγής — Αναλυτική
παρουσίαση χαμηλότερου επιπέδου χρησιμοποιώντας απευθείας το
KoraClient - Τεκμηρίωση API — Όλες οι διαθέσιμες μέθοδοι RPC
- Διαμόρφωση Kora — Επιλογές διαμόρφωσης από την πλευρά του διακομιστή
Is this page helpful?