@solana/web3-compat

@solana/web3-compat is de brug tussen langlopende @solana/web3.js apps en de nieuwere Kit runtime. Verwissel de import, behoud de interface die je app al kent, en adopteer geleidelijk Kit features zonder elke helper of instructie in één keer te herschrijven.

Installeer met Kit peers

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

De compatibiliteitslaag herexporteert klassieke Web3 types (Connection, PublicKey, Transaction, etc.) terwijl intern wordt gedelegeerd naar Kit networking en codecs. Behoud je bestaande RPC endpoints, maar profiteer van Kit's meer voorspelbare blockhash handling en wallet abstractions.

Vervang imports (geen andere codewijzigingen)

De meeste projecten kunnen bestand-voor-bestand migreren door de import source te wisselen. Zowel genoemde als namespace imports spiegelen het oude package.

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

CommonJS werkt ook:

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

Achter de schermen stuurt Connection reads en writes door via @solana/client, zodat helpers zoals sendAndConfirmTransaction, simulateTransaction, en getProgramAccounts profiteren van de nieuwere runtime zonder je business logic aan te raken.

Bridge helpers wanneer je Kit types nodig hebt

Terwijl je Kit direct adopteert (misschien in nieuwe componenten die @solana/client of @solana/react-hooks gebruiken), gebruik je de bridge helpers die in het compat package zitten om te converteren tussen de twee ecosystemen:

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

Runtimes mixen wordt veilig: nieuwere hooks kunnen Kit instructions uitsturen, dan zal toWeb3Instruction ze wrappen voor legacy flows totdat het hele project overstapt.

Progressieve migratiepatronen

  • Incrementele uitrol: werk één feature-map tegelijk bij. Wanneer een module geen compat meer nodig heeft, verwijs deze dan rechtstreeks naar @solana/client/@solana/react-hooks zonder de rest van de boom aan te raken.
  • Gedeelde RPC-tuning: omdat compat afhankelijk is van Kit-verbindingen, verloopt het afstemmen van commitment-niveaus, prioriteringskosten of RPC-URL's via één enkel configuratieobject.
  • SPL + transactie-helpers: behoud legacy transactie-builders voorlopig, maar gebruik client.helpers.transaction.prepare zodra je er klaar voor bent. Compat kan nog steeds dezelfde ondertekende payloads verzenden.
  • Testen: hergebruik bestaande Web3-mocks omdat het publieke oppervlak identiek blijft, maar tijdens het testen kun je de Kit-client stubben voor rijkere simulaties.

Wat wordt geleverd in fase 0

  • Connection met getLatestBlockhash, getBalance, getAccountInfo, getProgramAccounts, getSignatureStatuses, sendRawTransaction, confirmTransaction en simulateTransaction.
  • Hulpmiddelen zoals LAMPORTS_PER_SOL, sendAndConfirmTransaction en compileFromCompat.
  • SystemProgram.transfer plus alle kern-Web3-primitieven (Keypair, Transaction, VersionedTransaction, TransactionInstruction).

Dekking wordt nog uitgebreid

Methoden buiten de bovenstaande lijst vallen vandaag terug op legacy @solana/web3.js. Houd de oude dependency aan totdat de rest van je oppervlak in compat landt, en volg toekomstige releases voor subscription-ondersteuning en bredere RPC-dekking.

Combineer deze gids met het @solana/client-overzicht en de @solana/react-hooks-gids wanneer je klaar bent om nieuwe UI te bouwen bovenop dezelfde Kit-runtime.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken

Beheerd door

© 2026 Solana Foundation.
Alle rechten voorbehouden.
Blijf Verbonden