مرحبًا يا من هناك! أنا مورد للإيثر، واليوم أريد أن أتحدث عن كيفية الحصول على تقدير حالة نشر العقد مع ethers.js. إنه موضوع رائع جدًا، خاصة إذا كنت من محبي blockchain والعقود الذكية. لذلك، دعونا نتعمق!
ما هوethers.js؟
أول الأشياء أولاً، دعونا نتحدث قليلاً عنethers.js. إنها مكتبة جافا سكريبت التي تجعل من السهل جدًا التفاعل مع blockchain Ethereum. سواء كنت تقوم بإنشاء تطبيق لامركزي (dApp)، أو ترغب فقط في تجربة العقود الذكية، فإن ethers.js هي الأداة المفضلة لديك. فهو يوفر واجهة برمجة تطبيقات بسيطة وبديهية لجميع أنواع المهام المتعلقة بـ blockchain، مثل إرسال المعاملات، وقراءة بيانات العقود، وبالطبع نشر العقود.
لماذا تقدير حالة نشر العقد؟
قبل أن نتناول كيفية القيام بذلك، ربما تتساءل عن سبب أهمية تقدير حالة نشر العقد. حسنًا، نشر عقد ذكي على blockchain Ethereum ليس مجانيًا. عليك أن تدفع مبلغًا معينًا من الغاز، وهو بمثابة الوقود لشبكة الإيثيريوم. إذا لم تقم بتقدير الغاز بشكل صحيح، فقد يفشل نشر العقد الخاص بك، أو قد ينتهي بك الأمر إلى دفع مبالغ زائدة.
كما أن معرفة الحالة المقدرة تساعدك على التخطيط لمشروعك بشكل أفضل. يمكنك إخبار المستخدمين بالمدة التقريبية التي سيستغرقها نشر العقد والمبلغ الذي سيكلفه. يمكن لهذه الشفافية أن تبني الثقة وتجعل تطبيقك اللامركزي أكثر سهولة في الاستخدام.


المتطلبات الأساسية
للمتابعة، ستحتاج إلى بعض الأشياء:
- Node.js وnpm: يتم استخدامها لإدارة مشاريع JavaScript الخاصة بك. يمكنك تنزيلها من موقع Node.js الرسمي.
- ethers.js: يمكنك تثبيته باستخدام npm. فقط اركض
npm تثبيت الإيثراتفي دليل المشروع الخاص بك. - محفظة ايثريوم: ستحتاج إلى بعض الأثير في محفظتك لدفع تكاليف نشر العقد. يمكنك استخدام محافظ مثل MetaMask.
دليل خطوة بخطوة لتقدير حالة نشر العقد
1. قم باستيراد مكتبةethers.js
أولاً، تحتاج إلى استيراد مكتبةethers.js إلى مشروعك. وإليك كيف يمكنك القيام بذلك:
الأثيرات الثابتة = تتطلب('الإيثرات');
2. اتصل بشبكة إيثريوم
تحتاج إلى الاتصال بشبكة Ethereum للتفاعل مع blockchain. يمكنك استخدام موفر العقدة العامة مثل Infura. فيما يلي مثال لكيفية الاتصال:
const Provider = newethers.providers.InfuraProvider('mainnet', 'YOUR_INFURA_PROJECT_ID');
يستبدلYOUR_INFURA_PROJECT_IDبمعرف مشروع Infura الفعلي الخاص بك.
3. قم بإنشاء مُوقع
يتم استخدام المُوقع لتوقيع المعاملات. يمكنك إنشاء موقع من المفتاح الخاص لمحفظتك. وإليك الطريقة:
const PrivateKey = 'YOUR_PRIVATE_KEY'; const Wallet = new ethers.Wallet(privateKey, Provider);
يستبدلYOUR_PRIVATE_KEYباستخدام المفتاح الخاص لمحفظتك الفعلية. تأكد من الحفاظ على مفتاحك الخاص آمنًا!
4. قم بتحميل العقد الخاص بك ABI وBytecode
الواجهة الثنائية للتطبيقات (ABI) هي ملف JSON يصف كيفية التفاعل مع عقدك الذكي. الرمز الثانوي هو الرمز الفعلي الذي يتم نشره على blockchain. يمكنك تحميلهم مثل هذا:
const abi = [ // عقد ABI الخاص بك هنا ]; كود بايت ثابت = '0x...'; // رمز العقد الخاص بك هنا
5. تقدير الغاز
حان الوقت الآن لتقدير كمية الغاز المطلوبة لنشر العقد. يمكنك استخدامتقدير الغازالطريقة المقدمة بواسطةethers.js. هنا مثال:
const Factory = new ethers.ContractFactory(abi, bytecode, Wallet); نشر ثابت = مصنع.getDeployTransaction(); const المقدرة = انتظار Provider.estimateGas(deployment); console.log('الغاز المقدر:', المقدرةGas.toString());
التقدير الغازتقوم الطريقة بإرجاع BigNumber، لذلك نقوم بتحويله إلى سلسلة لسهولة القراءة.
6. احصل على التكلفة المقدرة
بمجرد حصولك على الغاز المقدر، يمكنك حساب التكلفة المقدرة بالأثير. أنت بحاجة إلى معرفة سعر الغاز الحالي، والذي يمكنك الحصول عليه من المزود.
const GasPrice = انتظار Provider.getGasPrice(); التكلفة المقدرة const = المقدرةGas.mul(gasPrice); const EstimatedCostInEther =ethers.utils.formatEther(estimatedCost); console.log('التكلفة المقدرة بالأيثر:', المقدرةCostInEther);
7. تقدير وقت النشر
يعتمد وقت النشر على ازدحام الشبكة. لا يمكنك الحصول على تقدير دقيق، ولكن يمكنك الحصول على فكرة تقريبية. في المتوسط، يتم استخراج كتلة على شبكة إيثريوم الرئيسية كل 13 إلى 15 ثانية. يمكنك تقدير عدد الكتل التي قد تستغرقها معاملتك ليتم تضمينها ثم حساب الوقت.
// افترض أن متوسط وقت الكتلة هو 15 ثانية const AverageBlockTime = 15; const المقدرةBlocks = المقدرةGas.div(21000); // تقدير بسيط constتخميناتTimeInSeconds = المقدرةBlocks.mul(averageBlockTime); const المقدرةTimeInMinutes = المقدرةTimeInSeconds.div(60); console.log('وقت النشر المقدر بالدقائق:', المقدرة TimeInMinutes.toString());
أنواع مختلفة من الإيثرات التي نوفرها
باعتبارنا موردًا للإيثرات، فإننا نقدم مجموعة متنوعة من الإيثرات لتطبيقات مختلفة. وهنا بعض من شعبية:
- ميثيل ثالثي - بوتيل إيثر (MTBE): يستخدم على نطاق واسع كمحسن للأوكتان في البنزين.
- إيثيلين جلايكول مونوبوتيل إيثر (BCS، EB): يستخدم هذا الأثير في العديد من التطبيقات الصناعية مثل الأحبار والدهانات والطلاءات.
- ثلاثي إيثيلين جلايكول مونوبوتيل إيثر (TBG، TB): يستخدم عادة كمذيب في صناعات النسيج والطباعة.
خاتمة
يعد تقدير حالة نشر العقد باستخدام ethers.js خطوة حاسمة في نشر العقود الذكية على blockchain Ethereum. يساعدك على توفير المال، وتجنب الفشل، وتوفير تجربة أفضل للمستخدم. باتباع الخطوات الموضحة أعلاه، يمكنك بسهولة تقدير الغاز والتكلفة والوقت اللازم لنشر العقد.
إذا كنت مهتمًا بشراء الإيثرات التي نوفرها أو لديك أي أسئلة حول عملية نشر العقد، فلا تتردد في التواصل معنا لإجراء مناقشة حول الشراء. نحن دائما سعداء للمساعدة!
مراجع
- ethers.js الوثائق الرسمية
- الوثائق الرسمية للإيثريوم
