@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
$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.
import { Connection, PublicKey } from "@solana/web3.js";
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-hookskoskematta 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.preparekun 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
ConnectionsisältäengetLatestBlockhash,getBalance,getAccountInfo,getProgramAccounts,getSignatureStatuses,sendRawTransaction,confirmTransactionjasimulateTransaction.- Apuohjelmat kuten
LAMPORTS_PER_SOL,sendAndConfirmTransactionjacompileFromCompat. SystemProgram.transfersekä 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?