@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
$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.
import { Connection, PublicKey } from "@solana/web3.js";
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-hookszonder 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.preparezodra 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
ConnectionmetgetLatestBlockhash,getBalance,getAccountInfo,getProgramAccounts,getSignatureStatuses,sendRawTransaction,confirmTransactionensimulateTransaction.- Hulpmiddelen zoals
LAMPORTS_PER_SOL,sendAndConfirmTransactionencompileFromCompat. SystemProgram.transferplus 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?