@solana/web3-compat είναι η γέφυρα μεταξύ μακροχρόνιων εφαρμογών
@solana/web3.js και του νεότερου runtime του Kit. Αλλάξτε το import,
διατηρήστε την επιφάνεια που η εφαρμογή σας ήδη γνωρίζει, και υιοθετήστε
προοδευτικά τις δυνατότητες του Kit χωρίς να ξαναγράψετε κάθε helper ή
instruction με μία κίνηση.
Εγκατάσταση με peers του Kit
$npm install @solana/web3-compat @solana/kit @solana/client
Το επίπεδο συμβατότητας επανεξάγει κλασικούς τύπους Web3 (Connection,
PublicKey, Transaction, κ.λπ.) ενώ εσωτερικά αναθέτει στο networking και
τους codecs του Kit. Διατηρήστε τα υπάρχοντα RPC endpoints σας, αλλά
επωφεληθείτε από τον πιο προβλέψιμο χειρισμό blockhash και τις αφαιρέσεις wallet
του Kit.
Αντικατάσταση imports (χωρίς άλλες αλλαγές κώδικα)
Τα περισσότερα projects μπορούν να μεταναστεύσουν αρχείο προς αρχείο αλλάζοντας την πηγή του import. Τόσο τα named όσο και τα namespace imports αντικατοπτρίζουν το παλιό πακέτο.
import { Connection, PublicKey } from "@solana/web3.js";
import { Connection, PublicKey } from "@solana/web3-compat";
Το CommonJS λειτουργεί επίσης:
const solanaWeb3 = require("@solana/web3-compat");const connection = new solanaWeb3.Connection("https://api.devnet.solana.com");
Στο παρασκήνιο το Connection προωθεί αναγνώσεις και εγγραφές μέσω του
@solana/client, οπότε helpers όπως το sendAndConfirmTransaction, το
simulateTransaction, και το getProgramAccounts επωφελούνται από το νεότερο
runtime χωρίς να αγγίξετε τη λογική της εφαρμογής σας.
Bridge helpers όταν χρειάζεστε τύπους Kit
Καθώς υιοθετείτε το Kit απευθείας (ίσως σε νέα components που χρησιμοποιούν
@solana/client ή @solana/react-hooks), χρησιμοποιήστε τα bridge helpers που
παρέχονται στο πακέτο compat για να μετατρέψετε μεταξύ των δύο οικοσυστημάτων:
import {PublicKey,toAddress,toPublicKey,toWeb3Instruction,toKitSigner} from "@solana/web3-compat";const legacyKey = new PublicKey("11111111111111111111111111111111");const kitAddress = toAddress(legacyKey);const backToWeb3 = toPublicKey(kitAddress);
Η ανάμειξη runtimes γίνεται ασφαλής: τα νεότερα hooks μπορούν να εκπέμψουν
instructions του Kit, και στη συνέχεια το toWeb3Instruction θα τα τυλίξει για
legacy flows μέχρι ολόκληρο το project να μεταβεί.
Μοτίβα προοδευτικής μετανάστευσης
- Σταδιακές αναβαθμίσεις: Ενημερώστε έναν φάκελο χαρακτηριστικών τη φορά.
Όταν μια ενότητα δεν χρειάζεται πλέον compat, κατευθύνετέ την απευθείας στο
@solana/client/@solana/react-hooksχωρίς να αγγίξετε την υπόλοιπη δομή. - Κοινή ρύθμιση RPC: Επειδή το compat βασίζεται σε συνδέσεις Kit, η ρύθμιση επιπέδων commitment, προτεραιοτήτων χρεώσεων ή URL RPC περνά μέσω ενός μόνο αντικειμένου διαμόρφωσης.
- Βοηθητικά SPL + συναλλαγών: Διατηρήστε τους παλαιούς δημιουργούς
συναλλαγών προς το παρόν, αλλά χρησιμοποιήστε το
client.helpers.transaction.prepareόταν είστε έτοιμοι. Το compat μπορεί ακόμα να υποβάλει τα ίδια υπογεγραμμένα payloads. - Δοκιμές: Επαναχρησιμοποιήστε τα υπάρχοντα Web3 mocks αφού η δημόσια επιφάνεια παραμένει πανομοιότυπη, ωστόσο κατά τη δοκιμή μπορείτε να προσομοιώσετε τον πελάτη Kit για πλουσιότερες προσομοιώσεις.
Τι περιλαμβάνεται στη φάση 0
ConnectionμεgetLatestBlockhash,getBalance,getAccountInfo,getProgramAccounts,getSignatureStatuses,sendRawTransaction,confirmTransaction, καιsimulateTransaction.- Βοηθητικά προγράμματα όπως
LAMPORTS_PER_SOL,sendAndConfirmTransaction, καιcompileFromCompat. SystemProgram.transferσυν όλα τα βασικά Web3 primitives (Keypair,Transaction,VersionedTransaction,TransactionInstruction).
Η κάλυψη εξακολουθεί να επεκτείνεται
Οι μέθοδοι εκτός της παραπάνω λίστας επιστρέφουν στο παλαιό @solana/web3.js
σήμερα. Διατηρήστε την παλιά εξάρτηση μέχρι να καλυφθεί η υπόλοιπη επιφάνειά
σας στο compat, και παρακολουθήστε μελλοντικές εκδόσεις για υποστήριξη
συνδρομών και ευρύτερη κάλυψη RPC.
Συνδυάστε αυτόν τον οδηγό με την επισκόπηση @solana/client και τον οδηγό @solana/react-hooks όταν είστε έτοιμοι να ξεκινήσετε να δημιουργείτε νέο UI πάνω στο ίδιο Kit runtime.
Is this page helpful?