@solana/web3-compat هو الجسر بين تطبيقات @solana/web3.js طويلة الأمد وبيئة
تشغيل Kit الأحدث. قم بتبديل الاستيراد، واحتفظ بالواجهة التي يعرفها تطبيقك
بالفعل، واعتمد ميزات Kit تدريجياً دون إعادة كتابة كل مساعد أو تعليمة دفعة واحدة.
التثبيت مع تبعيات Kit
$npm install @solana/web3-compat @solana/kit @solana/client
تعيد طبقة التوافق تصدير أنواع Web3 الكلاسيكية (Connection، PublicKey،
Transaction، إلخ) بينما تفوض داخلياً إلى شبكات Kit وبرامج الترميز. احتفظ بنقاط
نهاية RPC الحالية، لكن استفد من معالجة blockhash الأكثر قابلية للتنبؤ في Kit
وتجريدات المحفظة.
استبدال الاستيرادات (بدون تغييرات أخرى في الكود)
يمكن لمعظم المشاريع الترحيل ملف تلو الآخر عن طريق تبديل مصدر الاستيراد. كل من الاستيرادات المسماة واستيرادات مساحة الأسماء تعكس الحزمة القديمة.
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، لذا فإن المساعدات مثل sendAndConfirmTransaction،
simulateTransaction، وgetProgramAccounts تستفيد من بيئة التشغيل الأحدث دون
لمس منطق العمل الخاص بك.
مساعدات الجسر عندما تحتاج إلى أنواع Kit
عندما تعتمد Kit مباشرة (ربما في مكونات جديدة تستخدم @solana/client أو
@solana/react-hooks)، استخدم مساعدات الجسر المشحونة في حزمة التوافق للتحويل
بين النظامين البيئيين:
import {PublicKey,toAddress,toPublicKey,toWeb3Instruction,toKitSigner} from "@solana/web3-compat";const legacyKey = new PublicKey("11111111111111111111111111111111");const kitAddress = toAddress(legacyKey);const backToWeb3 = toPublicKey(kitAddress);
يصبح خلط بيئات التشغيل آمناً: يمكن للخطافات الأحدث إصدار تعليمات Kit، ثم سيقوم
toWeb3Instruction بتغليفها لتدفقات العمل القديمة حتى ينتقل المشروع بأكمله.
أنماط الترحيل التدريجي
- عمليات الطرح التدريجية: قم بتحديث مجلد ميزة واحدة في كل مرة. عندما لم يعد
الوحدة بحاجة إلى compat، وجهها مباشرة إلى
@solana/client/@solana/react-hooksدون لمس بقية الشجرة. - ضبط RPC المشترك: نظرًا لأن compat يعتمد على اتصالات Kit، فإن ضبط مستويات الالتزام أو رسوم الأولوية أو عناوين RPC يتدفق عبر كائن تكوين واحد.
- مساعدات SPL والمعاملات: احتفظ بمنشئي المعاملات القديمة في الوقت الحالي،
لكن استخدم
client.helpers.transaction.prepareعندما تكون جاهزًا. لا يزال بإمكان Compat إرسال نفس الحمولات الموقعة. - الاختبار: أعد استخدام محاكيات Web3 الموجودة نظرًا لأن السطح العام يبقى متطابقًا، ومع ذلك يمكنك في الاختبار استبدال عميل Kit بمحاكاة أكثر ثراءً.
ما يتم شحنه في المرحلة 0
ConnectionمعgetLatestBlockhash،getBalance،getAccountInfo،getProgramAccounts،getSignatureStatuses،sendRawTransaction،confirmTransaction، وsimulateTransaction.- أدوات مساعدة مثل
LAMPORTS_PER_SOL،sendAndConfirmTransaction، وcompileFromCompat. SystemProgram.transferبالإضافة إلى جميع عناصر Web3 الأساسية (Keypair،Transaction،VersionedTransaction،TransactionInstruction).
التغطية لا تزال تتوسع
الطرق خارج القائمة أعلاه تعود إلى @solana/web3.js القديم اليوم. احتفظ
بالتبعية القديمة حتى يصل باقي سطحك إلى compat، وتتبع الإصدارات المستقبلية
للحصول على دعم الاشتراك وتغطية RPC أوسع.
اقرن هذا الدليل مع نظرة عامة على @solana/client ودليل @solana/react-hooks عندما تكون جاهزًا لبدء بناء واجهة مستخدم جديدة فوق نفس بيئة تشغيل Kit.
Is this page helpful?