@solana/web3-compat

@solana/web3-compat on silta pitkäikäisten @solana/web3.js -sovellusten ja uudemman Kit-ajonaikaympäristön välillä. Vaihda import, säilytä sovelluksesi jo tuntema rajapinta ja ota Kit-ominaisuudet käyttöön asteittain ilman, että sinun tarvitsee kirjoittaa jokaista apufunktiota tai käskyä uudelleen kerralla.

Asenna Kit-riippuvuuksien kanssa

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

Yhteensopivuuskerros vie uudelleen klassiset Web3-tyypit (Connection, PublicKey, Transaction jne.) delegoiden sisäisesti Kit-verkottumiseen ja koodekseihin. Säilytä olemassa olevat RPC-päätepisteet, mutta hyödynnä Kitin ennustettavampaa blockhash-käsittelyä ja lompakko-abstraktioita.

Korvaa importit (ei muita koodimuutoksia)

Useimmat projektit voivat siirtyä tiedosto kerrallaan vaihtamalla import-lähteen. Sekä nimetyt että nimiavaruus-importit heijastavat vanhaa pakettia.

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

CommonJS toimii myös:

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

Kulissien takana Connection välittää luku- ja kirjoitusoperaatiot @solana/client:n kautta, joten apufunktiot kuten sendAndConfirmTransaction, simulateTransaction ja getProgramAccounts hyötyvät uudemmasta ajonaikaympäristöstä koskematta liiketoimintalogiikkaasi.

Siltaapufunktiot kun tarvitset Kit-tyyppejä

Kun otat Kitin käyttöön suoraan (ehkä uusissa komponenteissa käyttäen @solana/client:a tai @solana/react-hooks:a), käytä compat-paketissa toimitettuja siltaapufunktioita muuntaaksesi kahden ekosysteemin välillä:

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

Ajonaikaympäristöjen sekoittaminen muuttuu turvalliseksi: uudemmat hookit voivat lähettää Kit-käskyjä, sitten toWeb3Instruction käärii ne vanhoille työnkuluille, kunnes koko projekti siirtyy kokonaan.

Asteittaiset siirtymämallit

  • Vaiheittaiset käyttöönotot: päivitä yksi ominaisuuskansio kerrallaan. Kun moduuli ei enää tarvitse yhteensopivuutta, osoita se suoraan kohteeseen @solana/client/@solana/react-hooks koskematta muuhun puuhun.
  • Jaettu RPC-viritys: koska yhteensopivuus perustuu Kit-yhteyksiin, sitoutumistason, priorisointimaksujen tai RPC-URL-osoitteiden viritys kulkee yhden konfiguraatio-objektin kautta.
  • SPL + transaktioavustajat: säilytä vanhat transaktiorakentajat toistaiseksi, mutta käytä client.helpers.transaction.prepare kun olet valmis. Yhteensopivuus voi silti lähettää samat allekirjoitetut kuormat.
  • Testaus: käytä uudelleen olemassa olevia Web3-mockeja, koska julkinen pinta pysyy identtisenä, mutta testissä voit stubata Kit-asiakkaan rikkaampiin simulaatioihin.

Mitä vaiheessa 0 toimitetaan

  • Connection sisältäen getLatestBlockhash, getBalance, getAccountInfo, getProgramAccounts, getSignatureStatuses, sendRawTransaction, confirmTransaction ja simulateTransaction.
  • Apuohjelmat kuten LAMPORTS_PER_SOL, sendAndConfirmTransaction ja compileFromCompat.
  • SystemProgram.transfer sekä kaikki Web3-ydinprimitiivit (Keypair, Transaction, VersionedTransaction, TransactionInstruction).

Kattavuus laajenee edelleen

Yllä olevan listan ulkopuoliset metodit palaavat tänään vanhaan @solana/web3.js -toteutukseen. Pidä vanha riippuvuus mukana, kunnes muu pintasi saapuu yhteensopivuuteen, ja seuraa tulevia julkaisuja tilausten tuen ja laajemman RPC-kattavuuden osalta.

Yhdistä tämä opas @solana/client-yleiskatsaukseen ja @solana/react-hooks-oppaaseen, kun olet valmis aloittamaan uuden käyttöliittymän rakentamisen saman Kit-ajoympäristön päälle.

Is this page helpful?

Sisällysluettelo

Muokkaa sivua

Hallinnoi

© 2026 Solana Foundation.
Kaikki oikeudet pidätetään.
Yhdistä