Usando Kora v2.2.0-beta? Consulte a documentação Beta para novos métodos de pacote (
signBundle,signAndSendBundle,estimateBundleFee) egetVersion.
SDK TypeScript
O pacote @solana/kora fornece três opções de cliente para interagir com um
servidor Kora:
KoraClient (Autônomo)
Use KoraClient para uso autônomo. Funciona com @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 do Kit)
Use koraPlugin() para compor métodos Kora em um cliente Kit existente. Requer
@solana/kit v5.4+ para o padrão 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();
O plugin fornece respostas tipadas do Kit (Address, Blockhash,
Base64EncodedWireTransaction) e exporta o tipo KoraPlugin para composição
com outros plugins.
createKitKoraClient (Cliente Kit)
Use createKitKoraClient() para integração completa com o Kit, incluindo
planejamento automático de transações, estimativa de taxas, injeção de pagamento
e execução. Esta é a abordagem recomendada para a maioria das aplicações. Requer
@solana/kit v6.1+.
O cliente Kit compõe a Kora com a arquitetura de plugins do Kit (planejador,
executor, plugins de pagamento) para que você possa usar plugins de programa do
Kit como tokenProgram() diretamente.
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();
Opções de configuração:
| Opção | Obrigatório | Descrição |
|---|---|---|
endpoint | Sim | URL do endpoint RPC da Kora |
rpcUrl | Sim | URL do RPC da Solana para estimativa de unidades de computação e compatibilidade com plugins de programa |
feeToken | Sim | Endereço mint SPL para pagamento de taxas |
feePayerWallet | Sim | TransactionSigner que autoriza o pagamento de taxas SPL |
apiKey | Não | Chave de API para autenticação |
hmacSecret | Não | Segredo HMAC para autenticação baseada em assinatura |
computeUnitLimit | Não | Limite fixo de unidades de computação (usa estimativa baseada em simulação se não definido) |
computeUnitPrice | Não | Taxa de prioridade em micro-lamports |
tokenProgramId | Não | ID do Token Program (padrão é Token Program; use o endereço do Token-2022 para tokens Token-2022) |
Protocolo
- Padrão: JSON-RPC 2.0
- Transporte: HTTP POST
- Content-Type: application/json
- Endpoint:
http://your-kora-instance/
Métodos Disponíveis
| Método | Descrição |
|---|---|
| estimateTransactionFee | Estima a taxa de transação tanto em lamports quanto no token especificado. |
| getBlockhash | Obtém o blockhash mais recente do RPC Solana ao qual o servidor Kora está conectado. |
| getConfig | Recupera a configuração atual do servidor Kora. |
| getPayerSigner | Recupera o signatário pagador e o destino de pagamento do servidor Kora. |
| getPaymentInstruction | Cria uma instrução de pagamento para anexar a uma transação para pagamento de taxa ao paymaster Kora. |
| getSupportedTokens | Recupera a lista de tokens suportados para pagamento de taxas. |
| signAndSendTransaction | Assina uma transação e imediatamente a transmite para a rede Solana. |
| signTransaction | Assina uma transação com o pagador de taxa Kora se a transação incluir o pagamento necessário ao pagador de taxa sem transmiti-la. |
| transferTransaction | Cria uma transação de transferência de token com Kora como pagador de taxa. |
Formato da Requisição
Todas as requisições seguem o padrão JSON-RPC 2.0:
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
Formato da Resposta
Respostas bem-sucedidas:
{"jsonrpc": "2.0","id": 1,"result": {}}
Respostas de erro:
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?