@solana/web3-compat, uzun ömürlü @solana/web3.js uygulamaları ile daha yeni
Kit çalışma zamanı arasındaki köprüdür. İçe aktarmayı değiştirin, uygulamanızın
zaten bildiği yüzeyi koruyun ve her yardımcıyı veya talimatı yeniden yazmadan
Kit özelliklerini aşamalı olarak benimseyin.
Kit bağımlılıklarıyla yükleme
$npm install @solana/web3-compat @solana/kit @solana/client
Uyumluluk katmanı, klasik Web3 türlerini (Connection, PublicKey,
Transaction vb.) yeniden dışa aktarırken dahili olarak Kit ağ iletişimi ve
codec'lerine yetki devreder. Mevcut RPC uç noktalarınızı koruyun, ancak Kit'in
daha öngörülebilir blockhash işleme ve cüzdan soyutlamalarından yararlanın.
İçe aktarmaları değiştirin (başka kod değişikliği yok)
Çoğu proje, içe aktarma kaynağını değiştirerek dosya dosya geçiş yapabilir. Hem adlandırılmış hem de ad alanı içe aktarmaları eski paketi yansıtır.
import { Connection, PublicKey } from "@solana/web3.js";
import { Connection, PublicKey } from "@solana/web3-compat";
CommonJS de çalışır:
const solanaWeb3 = require("@solana/web3-compat");const connection = new solanaWeb3.Connection("https://api.devnet.solana.com");
Perde arkasında Connection, okuma ve yazma işlemlerini @solana/client
üzerinden iletir, böylece sendAndConfirmTransaction, simulateTransaction ve
getProgramAccounts gibi yardımcılar, iş mantığınıza dokunmadan daha yeni
çalışma zamanından yararlanır.
Kit türlerine ihtiyaç duyduğunuzda köprü yardımcıları
Kit'i doğrudan benimsedikçe (belki @solana/client veya @solana/react-hooks
kullanan yeni bileşenlerde), iki ekosistem arasında dönüşüm yapmak için compat
paketinde gönderilen köprü yardımcılarını kullanın:
import {PublicKey,toAddress,toPublicKey,toWeb3Instruction,toKitSigner} from "@solana/web3-compat";const legacyKey = new PublicKey("11111111111111111111111111111111");const kitAddress = toAddress(legacyKey);const backToWeb3 = toPublicKey(kitAddress);
Çalışma zamanlarını karıştırmak güvenli hale gelir: daha yeni hook'lar Kit
talimatları yayabilir, ardından toWeb3Instruction bunları tüm proje geçene
kadar eski akışlar için sarar.
Aşamalı geçiş kalıpları
- Aşamalı dağıtımlar: Bir seferde bir özellik klasörünü güncelleyin. Bir
modül artık compat'a ihtiyaç duymadığında, ağacın geri kalanına dokunmadan
doğrudan
@solana/client/@solana/react-hooksadresine yönlendirin. - Paylaşılan RPC ayarlaması: Compat, Kit bağlantılarına dayandığından, taahhüt seviyelerini, önceliklendirme ücretlerini veya RPC URL'lerini ayarlamak tek bir yapılandırma nesnesi üzerinden akar.
- SPL + işlem yardımcıları: Eski işlem oluşturucuları şimdilik saklayın,
ancak hazır olduğunuzda
client.helpers.transaction.preparekullanın. Compat yine de aynı imzalı yükleri gönderebilir. - Test: Genel yüzey aynı kaldığından mevcut Web3 mock'larını yeniden kullanın, ancak test altında daha zengin simülasyonlar için Kit istemcisini stub edebilirsiniz.
Faz 0'da neler sunuluyor
ConnectionilegetLatestBlockhash,getBalance,getAccountInfo,getProgramAccounts,getSignatureStatuses,sendRawTransaction,confirmTransactionvesimulateTransaction.LAMPORTS_PER_SOL,sendAndConfirmTransactionvecompileFromCompatgibi yardımcı araçlar.SystemProgram.transferartı tüm temel Web3 ilkelleri (Keypair,Transaction,VersionedTransaction,TransactionInstruction).
Kapsam hâlâ genişliyor
Yukarıdaki listenin dışındaki metotlar bugün eski @solana/web3.js
kullanımına geri döner. Yüzeyinizin geri kalanı compat'a geçene kadar eski
bağımlılığı yanınızda tutun ve abonelik desteği ile daha geniş RPC kapsamı
için gelecek sürümleri takip edin.
Aynı Kit çalışma zamanı üzerinde yeni kullanıcı arayüzü oluşturmaya başlamaya hazır olduğunuzda bu kılavuzu @solana/client genel bakış ve @solana/react-hooks kılavuzu ile birlikte kullanın.
Is this page helpful?