@solana/web3-compat

@solana/web3-compat é a ponte entre aplicações @solana/web3.js de longa duração e o runtime mais recente do Kit. Troque a importação, mantenha a interface que a sua aplicação já conhece e adote progressivamente funcionalidades do Kit sem reescrever cada helper ou instrução de uma só vez.

Instalar com dependências do Kit

Terminal
$
npm install @solana/web3-compat @solana/kit @solana/client

A camada de compatibilidade reexporta tipos clássicos do Web3 (Connection, PublicKey, Transaction, etc.) enquanto internamente delega para networking e codecs do Kit. Mantenha os seus endpoints RPC existentes, mas beneficie do tratamento de blockhash mais previsível do Kit e abstrações de carteira.

Substituir importações (sem outras alterações de código)

A maioria dos projetos pode migrar ficheiro a ficheiro ao trocar a origem da importação. Tanto importações nomeadas como de namespace espelham o pacote antigo.

Before
import { Connection, PublicKey } from "@solana/web3.js";
After
import { Connection, PublicKey } from "@solana/web3-compat";

CommonJS também funciona:

const solanaWeb3 = require("@solana/web3-compat");
const connection = new solanaWeb3.Connection("https://api.devnet.solana.com");

Nos bastidores Connection encaminha leituras e escritas através de @solana/client, portanto helpers como sendAndConfirmTransaction, simulateTransaction e getProgramAccounts beneficiam do runtime mais recente sem tocar na sua lógica de negócio.

Helpers de ponte quando precisar de tipos do Kit

À medida que adota o Kit diretamente (talvez em novos componentes usando @solana/client ou @solana/react-hooks), use os helpers de ponte incluídos no pacote compat para converter entre os dois ecossistemas:

import {
PublicKey,
toAddress,
toPublicKey,
toWeb3Instruction,
toKitSigner
} from "@solana/web3-compat";
const legacyKey = new PublicKey("11111111111111111111111111111111");
const kitAddress = toAddress(legacyKey);
const backToWeb3 = toPublicKey(kitAddress);

Misturar runtimes torna-se seguro: hooks mais recentes podem emitir instruções do Kit, depois toWeb3Instruction irá envolvê-las para fluxos legados até que todo o projeto migre.

Padrões de migração progressiva

  • Implementações incrementais: atualize uma pasta de funcionalidade de cada vez. Quando um módulo já não precisar de compat, aponte-o diretamente para @solana/client/@solana/react-hooks sem tocar no resto da árvore.
  • Ajuste de RPC partilhado: como o compat depende de conexões Kit, ajustar níveis de compromisso, taxas de priorização ou URLs de RPC flui através de um único objeto de configuração.
  • Auxiliares SPL + transação: mantenha os construtores de transação legados por agora, mas recorra a client.helpers.transaction.prepare quando estiver pronto. O compat ainda pode submeter os mesmos payloads assinados.
  • Testes: reutilize os mocks Web3 existentes, uma vez que a superfície pública permanece idêntica, mas em teste pode simular o cliente Kit para simulações mais ricas.

O que é enviado na fase 0

  • Connection com getLatestBlockhash, getBalance, getAccountInfo, getProgramAccounts, getSignatureStatuses, sendRawTransaction, confirmTransaction, e simulateTransaction.
  • Utilitários como LAMPORTS_PER_SOL, sendAndConfirmTransaction, e compileFromCompat.
  • SystemProgram.transfer mais todas as primitivas Web3 principais (Keypair, Transaction, VersionedTransaction, TransactionInstruction).

A cobertura ainda está a expandir

Métodos fora da lista acima recorrem ao @solana/web3.js legado hoje. Mantenha a dependência antiga até que o resto da sua superfície chegue ao compat, e acompanhe versões futuras para suporte de subscrição e cobertura RPC mais ampla.

Combine este guia com a visão geral de @solana/client e o guia de @solana/react-hooks quando estiver pronto para começar a construir nova UI em cima do mesmo runtime Kit.

Is this page helpful?

Índice

Editar Página

Gerenciado por

© 2026 Fundação Solana.
Todos os direitos reservados.
Conecte-se
  • Blog