@solana/web3-compat

@solana/web3-compat est le pont entre les applications @solana/web3.js de longue durée et le runtime Kit plus récent. Changez l'import, conservez la surface que votre application connaît déjà, et adoptez progressivement les fonctionnalités Kit sans réécrire chaque helper ou instruction d'un coup.

Installer avec les dépendances Kit

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

La couche de compatibilité ré-exporte les types Web3 classiques (Connection, PublicKey, Transaction, etc.) tout en déléguant en interne au réseau Kit et aux codecs. Conservez vos endpoints RPC existants, mais bénéficiez de la gestion des blockhash plus prévisible de Kit et des abstractions de wallet.

Remplacer les imports (aucun autre changement de code)

La plupart des projets peuvent migrer fichier par fichier en changeant la source d'import. Les imports nommés et namespace reflètent l'ancien package.

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

CommonJS fonctionne aussi :

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

En coulisses, Connection transmet les lectures et écritures via @solana/client, donc les helpers comme sendAndConfirmTransaction, simulateTransaction, et getProgramAccounts bénéficient du runtime plus récent sans toucher à votre logique métier.

Helpers de pont quand vous avez besoin des types Kit

Au fur et à mesure que vous adoptez Kit directement (peut-être dans de nouveaux composants utilisant @solana/client ou @solana/react-hooks), utilisez les helpers de pont fournis dans le package compat pour convertir entre les deux écosystèmes :

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

Mélanger les runtimes devient sûr : les hooks plus récents peuvent émettre des instructions Kit, puis toWeb3Instruction les enveloppera pour les flux legacy jusqu'à ce que l'ensemble du projet bascule.

Modèles de migration progressive

  • Déploiements progressifs : mettez à jour un dossier de fonctionnalité à la fois. Lorsqu'un module n'a plus besoin de compat, pointez-le directement vers @solana/client/@solana/react-hooks sans toucher au reste de l'arborescence.
  • Réglage RPC partagé : comme compat s'appuie sur les connexions Kit, le réglage des niveaux d'engagement, des frais de priorisation ou des URL RPC passe par un seul objet de configuration.
  • Assistants SPL + transaction : conservez les constructeurs de transactions legacy pour l'instant, mais utilisez client.helpers.transaction.prepare une fois que vous êtes prêt. Compat peut toujours soumettre les mêmes charges utiles signées.
  • Tests : réutilisez les mocks Web3 existants puisque la surface publique reste identique, mais lors des tests vous pouvez simuler le client Kit pour des simulations plus riches.

Ce qui est livré dans la phase 0

  • Connection avec getLatestBlockhash, getBalance, getAccountInfo, getProgramAccounts, getSignatureStatuses, sendRawTransaction, confirmTransaction et simulateTransaction.
  • Des utilitaires comme LAMPORTS_PER_SOL, sendAndConfirmTransaction et compileFromCompat.
  • SystemProgram.transfer plus toutes les primitives Web3 de base (Keypair, Transaction, VersionedTransaction, TransactionInstruction).

La couverture continue de s'étendre

Les méthodes en dehors de la liste ci-dessus se rabattent aujourd'hui sur le @solana/web3.js legacy. Conservez l'ancienne dépendance jusqu'à ce que le reste de votre surface arrive dans compat, et suivez les versions futures pour la prise en charge des abonnements et une couverture RPC plus large.

Associez ce guide avec la présentation de @solana/client et le guide @solana/react-hooks lorsque vous êtes prêt à commencer à construire une nouvelle interface utilisateur sur le même runtime Kit.

Is this page helpful?

Table des matières

Modifier la page

Géré par

© 2026 Fondation Solana.
Tous droits réservés.
Restez connecté