Используете Kora v2.2.0-beta? См. документацию Beta для новых методов пакетной обработки (
signBundle,signAndSendBundle,estimateBundleFee) иgetVersion.
SDK для TypeScript
Пакет @solana/kora предоставляет три варианта клиента для взаимодействия с
сервером Kora:
KoraClient (автономный)
Используйте KoraClient для автономного использования. Работает с @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 (композируемый плагин Kit)
Используйте koraPlugin() для интеграции методов Kora в существующий клиент
Kit. Требуется @solana/kit v5.4+ для паттерна 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();
Плагин предоставляет ответы с типами Kit (Address, Blockhash,
Base64EncodedWireTransaction) и экспортирует тип KoraPlugin для композиции с
другими плагинами.
createKitKoraClient (клиент Kit)
Используйте createKitKoraClient() для полной интеграции с Kit с автоматическим
планированием транзакций, оценкой комиссий, внедрением платежей и выполнением.
Это рекомендуемый подход для большинства приложений. Требуется @solana/kit
v6.1+.
Клиент Kit интегрирует Kora с плагинной архитектурой Kit (плагины планировщика,
исполнителя, плательщика), что позволяет использовать программные плагины Kit,
такие как 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();
Параметры конфигурации:
| Параметр | Обязательно | Описание |
|---|---|---|
endpoint | Да | URL конечной точки Kora RPC |
rpcUrl | Да | URL Solana RPC для оценки вычислительных единиц и совместимости программных плагинов |
feeToken | Да | Адрес SPL-токена для оплаты комиссий |
feePayerWallet | Да | TransactionSigner, который авторизует оплату комиссий в SPL |
apiKey | Нет | API-ключ для аутентификации |
hmacSecret | Нет | Секрет HMAC для аутентификации на основе подписи |
computeUnitLimit | Нет | Фиксированный лимит вычислительных единиц (если не задан, используется оценка на основе симуляции) |
computeUnitPrice | Нет | Приоритетная комиссия в микро-лампортах |
tokenProgramId | Нет | ID Token Program (по умолчанию Token Program; используйте адрес Token-2022 для токенов Token-2022) |
Протокол
- Стандарт: JSON-RPC 2.0
- Транспорт: HTTP POST
- Content-Type: application/json
- Конечная точка:
http://your-kora-instance/
Доступные методы
| Метод | Описание |
|---|---|
| estimateTransactionFee | Оценивает комиссию транзакции как в lamport, так и в указанном токене. |
| getBlockhash | Получает последний блокхеш из Solana RPC, к которому подключен сервер Kora. |
| getConfig | Получает текущую конфигурацию сервера Kora. |
| getPayerSigner | Получает подписанта плательщика и адрес получателя платежа с сервера Kora. |
| getPaymentInstruction | Создает инструкцию платежа для добавления к транзакции для оплаты комиссии мастеру платежей Kora. |
| getSupportedTokens | Получает список токенов, поддерживаемых для оплаты комиссии. |
| signAndSendTransaction | Подписывает транзакцию и немедленно отправляет ее в сеть Solana. |
| signTransaction | Подписывает транзакцию плательщиком комиссии Kora, если транзакция содержит необходимый платеж плательщику комиссии без отправки в сеть. |
| transferTransaction | Создает транзакцию перевода токенов с Kora в качестве плательщика комиссии. |
Формат запроса
Все запросы соответствуют стандарту JSON-RPC 2.0:
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
Формат ответа
Успешные ответы:
{"jsonrpc": "2.0","id": 1,"result": {}}
Ответы с ошибками:
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?