Інтеграція клієнта Kit

Останнє оновлення: 2026-03-09

Що ви створите

Клієнт Kit (createKitKoraClient) є рекомендованим способом інтеграції Kora у додатки Solana. Він обгортає абстракцію комісій Kora в архітектуру плагінів Kit, надаючи вам клієнт, який автоматично обробляє:

  • Управління блокхешами
  • Оцінку комісій та впровадження інструкцій оплати
  • Підписання транзакцій через Kora
  • Відправлення та підтвердження транзакцій
  • Оптимізацію обчислювального бюджету (оцінка CU на основі симуляції)

Це означає, що ви можете використовувати плагіни програм Kit, такі як tokenProgram(), і Kora виконуватиме всю складність газових комісій у фоновому режимі.

Передумови

Встановлення

pnpm add @solana/kora @solana/kit

Одноранґові залежності (@solana-program/token, @solana-program/compute-budget, @solana/kit-plugin-*) автоматично встановлюються більшістю менеджерів пакетів. Див. Встановлення, якщо потрібно встановити їх вручну.

Створення клієнта

createKitKoraClient компонує кілька плагінів Kit в один клієнт, який задовольняє ClientWithPayer, ClientWithTransactionPlanning та ClientWithTransactionSending.

import { createKitKoraClient } from "@solana/kora";
import { address } from "@solana/kit";
const client = await createKitKoraClient({
endpoint: "http://localhost:8080", // Kora RPC endpoint
rpcUrl: "http://127.0.0.1:8899", // Solana RPC for CU estimation
feeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"), // USDC mint
feePayerWallet: userSigner // TransactionSigner for fee payment
});

feePayerWallet має бути TransactionSigner — це гаманець, який авторизує оплату комісії токеном SPL оператору Kora. Оператор Kora обробляє мережеві комісії SOL.

Опції конфігурації

ОпціяОбов'язковоОпис
endpointТакURL кінцевої точки Kora RPC
rpcUrlТакURL Solana RPC (не кінцева точка Kora) — використовується для симуляції обчислювальних одиниць та сумісності з плагінами програм
feeTokenТакАдреса SPL mint для оплати комісії (наприклад, USDC)
feePayerWalletТакTransactionSigner, який авторизує оплату комісії SPL
apiKeyНіAPI-ключ для автентифікації Kora
hmacSecretНіСекрет HMAC для автентифікації на основі підпису
computeUnitLimitНіФіксований ліміт CU. Якщо не вказано, Kora симулює транзакцію для оцінки оптимального CU (рекомендовано)
computeUnitPriceНіПріоритетна комісія у мікролампортах
tokenProgramIdНіЗа замовчуванням Token Program. Встановіть на TOKEN_2022_PROGRAM_ADDRESS для токенів комісій Token-2022

Використання з плагінами програм Kit

Клієнт Kit є композитним з плагінами програм 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 plugin
const client = koraClient.use(tokenProgram());
// Use token program methods — Kora handles all fee abstraction
await client.token.instructions
.transferToATA({
source: userTokenAccount,
destination: recipientAddress,
amount: 1_000_000n, // 1 USDC
authority: userSigner
})
.sendTransaction();

За лаштунками клієнт Kit:

  1. Планує транзакцію з blockhash, керованим Kora, та інструкціями обчислювального бюджету
  2. Оцінює комісію та впроваджує (або оновлює) інструкцію платежу SPL для оператора Kora
  3. Частково підписує транзакцію гаманцем користувача
  4. Надсилає транзакцію до Kora для спільного підпису та відправки до Solana

Доступ до методів RPC Kora

Клієнт Kit також надає повний API Kora через простір імен .korakoraPlugin):

// Get server configuration
const config = await client.kora.getConfig();
// Get supported fee tokens
const { tokens } = await client.kora.getSupportedTokens();
// Estimate fees for an arbitrary transaction
const estimate = await client.kora.estimateTransactionFee({
transaction: base64EncodedTx,
fee_token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
});

Усі відповіді методів .kora використовують типізовані значення Kit (Address, Blockhash, Signature) замість необроблених рядків.

Підтримка Token-2022

Щоб оплачувати комісії токеном 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 з автоматичною обробкою комісій. Найкраще для застосунків, що використовують плагіни програм Kit.
KoraClientПрямий доступ до RPC, коли вам потрібен повний контроль над створенням, підписанням і відправкою транзакцій.
koraPluginДодавання методів Kora до існуючого клієнта Kit, який ви вже скомпонували з іншими плагінами.

Наступні кроки

Is this page helpful?

Керується

© 2026 Фонд Solana.
Всі права захищені.
Залишайтеся на зв'язку