@solana/web3-compat

@solana/web3-compat ist die Brücke zwischen langlebigen @solana/web3.js-Apps und der neueren Kit-Laufzeitumgebung. Tauschen Sie den Import aus, behalten Sie die Oberfläche bei, die Ihre App bereits kennt, und übernehmen Sie Kit-Funktionen schrittweise, ohne jeden Helper oder jede Anweisung auf einmal neu zu schreiben.

Installation mit Kit-Peers

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

Die Kompatibilitätsschicht exportiert klassische Web3-Typen erneut (Connection, PublicKey, Transaction usw.), während intern an Kit-Netzwerk und Codecs delegiert wird. Behalten Sie Ihre bestehenden RPC-Endpunkte bei, profitieren Sie aber von Kits vorhersehbarerer Blockhash-Verarbeitung und Wallet-Abstraktionen.

Imports ersetzen (keine weiteren Code-Änderungen)

Die meisten Projekte können Datei für Datei migriert werden, indem die Import-Quelle gewechselt wird. Sowohl benannte als auch Namespace-Imports spiegeln das alte Paket wider.

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

CommonJS funktioniert ebenfalls:

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

Im Hintergrund leitet Connection Lese- und Schreibvorgänge durch @solana/client weiter, sodass Helfer wie sendAndConfirmTransaction, simulateTransaction und getProgramAccounts von der neueren Laufzeitumgebung profitieren, ohne Ihre Geschäftslogik anzufassen.

Bridge-Helfer, wenn Sie Kit-Typen benötigen

Wenn Sie Kit direkt übernehmen (vielleicht in neuen Komponenten mit @solana/client oder @solana/react-hooks), verwenden Sie die Bridge-Helfer, die im Compat-Paket enthalten sind, um zwischen den beiden Ökosystemen zu konvertieren:

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

Das Mischen von Laufzeitumgebungen wird sicher: Neuere Hooks können Kit-Anweisungen ausgeben, dann wird toWeb3Instruction sie für Legacy-Flows umschließen, bis das gesamte Projekt umgestellt ist.

Progressive Migrationsmuster

  • Schrittweise Einführung: Aktualisieren Sie jeweils einen Feature-Ordner. Wenn ein Modul keine Kompatibilität mehr benötigt, verweisen Sie direkt auf @solana/client/@solana/react-hooks, ohne den Rest des Baums anzufassen.
  • Gemeinsame RPC-Optimierung: Da die Kompatibilität auf Kit-Verbindungen basiert, fließt die Anpassung von Commitment-Levels, Priorisierungs-Fee oder RPC-URLs durch ein einziges Konfigurationsobjekt.
  • SPL + Transaktions-Helfer: Behalten Sie vorerst Legacy-Transaktions-Builder bei, aber greifen Sie auf client.helpers.transaction.prepare zurück, sobald Sie bereit sind. Die Kompatibilität kann weiterhin dieselben signierten Payloads übermitteln.
  • Testing: Verwenden Sie vorhandene Web3-Mocks wieder, da die öffentliche Oberfläche identisch bleibt, dennoch können Sie unter Test den Kit-Client für umfangreichere Simulationen stubben.

Was wird in Phase 0 ausgeliefert

  • Connection mit getLatestBlockhash, getBalance, getAccountInfo, getProgramAccounts, getSignatureStatuses, sendRawTransaction, confirmTransaction und simulateTransaction.
  • Utilities wie LAMPORTS_PER_SOL, sendAndConfirmTransaction und compileFromCompat.
  • SystemProgram.transfer plus alle zentralen Web3-Primitive (Keypair, Transaction, VersionedTransaction, TransactionInstruction).

Abdeckung wird noch erweitert

Methoden außerhalb der obigen Liste greifen heute auf das Legacy-@solana/web3.js zurück. Behalten Sie die alte Abhängigkeit bei, bis der Rest Ihrer Oberfläche in der Kompatibilität landet, und verfolgen Sie zukünftige Releases für Subscription-Unterstützung und breitere RPC-Abdeckung.

Kombinieren Sie diesen Leitfaden mit der @solana/client-Übersicht und dem @solana/react-hooks-Leitfaden, wenn Sie bereit sind, neu UI auf derselben Kit-Runtime aufzubauen.

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten

Verwaltet von

© 2026 Solana Foundation.
Alle Rechte vorbehalten.
Verbinden Sie sich