في هذا القسم، سنناقش عملية كتابة عقد ذكي أساسي باستخدام Solidity. سنغطي المكونات الأساسية مثل المتغيرات، والدوال، والمعدلات. ثم، سنقوم بشرح مثال على تنفيذ عقد عملة بسيط.
المتغيرات والوظائف والمعدلات
مثال1: تنفيذ عقد رمز بسيط
دعنا ننشئ عقدا رمزيا بسيطا باستخدام Solidity. سيسمح هذا العقد للمستخدمين بنقل الرموز المميزة بين الحسابات والتحقق من رصيد الرمز المميز لأي حساب.
نوع البرنامج التابعpragma صلادة ^0.8.0; العقد البسيط { // أعلن متغيرات الحالة عنوان المالك عمومًا; رسم(address => uint256) الأرصدة العمومية; // تهيئة عقد الرمز المميز constructor(uint256 التوريد الأولي) { المالك = msg.sender; الأرصدة[المالك] = التوريد الأولي; } // وظيفة لتحويل الرموز المميزة function transfer(address to, uint256 المبلغ) public { require(الأرصدة[msg.sender] >= المبلغ, "الرصيد غير كافٍ"); الأرصدة[msg.sender] -= المبلغ; الأرصدة[to] += المبلغ; } // وظيفة لفحص رصيد الرموز المميزة لحساب function balanceOf(address الحساب) public view returns (uint256) { return الأرصدة[الحساب]; }}
في هذا العقد، لدينا:
مالك
والأرصدة
لتخزين عنوان مالك العقد وأرصدة الرموز لجميع العناوين، على التوالي.بنّاء
الوظيفة التي تحدد الإمداد الأولي للرموز وتخصصها لمالك العقد.نقل
وظيفة تسمح للمستخدمين بنقل الرموز إلى حسابات أخرى. يستخدم تتطلب
بيان لضمان أن المرسل لديه عدد كاف من الرموز للتحويل.الرصيد من
وظيفة تُعيد رصيد الرمز المميز لحساب محدد.مثال2: تنفيذ نظام تصويت بسيط
برنامج TypeScriptpragma الصلبية ^0.8.0;نظام التصويت { تعيين (bytes32 => uint256) عام الأصوات; bytes32[] عام قائمة المرشحين; constructor(bytes32[] الذاكرة candidateNames) { قائمة المرشحين = candidateNames; } function voteForCandidate(bytes32 candidate) public { تتطلب(validCandidate(candidate), "المرشح غير صالح."); الأصوات المستلمة[candidate] += 1; } function totalVotesFor(bytes32 candidate) public view returns (uint256) { تتطلب(validCandidate(candidate), "المرشح غير صالح."); return الأصوات المستلمة[candidate]; } function validCandidate(bytes32 candidate) public view returns (bool) { for (uint256 i = 0; i < قائمة المرشحين.length; i++) { if (قائمة المرشحين[i] == candidate) { return صحيح; } } return كاذب; }}
في هذا المثال،نظام التصويت
يسمح العقد للمستخدمين بالتصويت لأحد المرشحين عن طريق الاتصال بالالتصويت للمرشح
تتبع العقد عدد الأصوات التي تلقاها كل مرشح باستخدام وظيفة.الأصوات المستلمة
التعيين، حيث يكون المفتاح اسم المرشح والقيمة هي عدد الأصوات. قائمة المرشحين
المتغير يخزن قائمة المرشحين الصالحة. إجمالي التصويتات لصالح
يمكن استدعاء الوظيفة للتحقق من عدد الأصوات التي حصل عليها مرشح معين، ومرشح صالح
يتحقق الدالة مما إذا كان المرشح صالحًا. هذا مثال بسيط على كيف يمكن استخدام الصلادية لبناء التطبيقات اللامركزية بمنطق معقد.
يسلط الضوء على
المتغيرات والدوال والمعدلات هي مكونات أساسية في عقود Solidity الذكية.
للصلابة نوعان من المتغيرات: المتغيرات الحالية والمتغيرات المحلية.
تستخدم الوظائف لأداء المهام ويمكن أن تحتوي على معلمات الإدخال وقيم الإرجاع.
يتم استخدام المعدلات لتعديل سلوك الدالة وتحسين قراءة الكود وإدارته.
يسمح عقد SimpleToken للمستخدمين بنقل الرموز والتحقق من أرصدة الرموز.
يوضح عقد SimpleToken استخدام متغيرات الحالة، وظيفة المُنشئ، والوظائف مثل النقل والرصيد.
يتيح عقد نظام التصويت للمستخدمين التصويت للمرشحين وتتبع عدد الأصوات.
يُظهر عقد VotingSystem استخدام التعيينات والمصفوفات والوظائف مثل voteForCandidate و totalVotesFor و validCandidate.
في هذا القسم، سنناقش عملية كتابة عقد ذكي أساسي باستخدام Solidity. سنغطي المكونات الأساسية مثل المتغيرات، والدوال، والمعدلات. ثم، سنقوم بشرح مثال على تنفيذ عقد عملة بسيط.
المتغيرات والوظائف والمعدلات
مثال1: تنفيذ عقد رمز بسيط
دعنا ننشئ عقدا رمزيا بسيطا باستخدام Solidity. سيسمح هذا العقد للمستخدمين بنقل الرموز المميزة بين الحسابات والتحقق من رصيد الرمز المميز لأي حساب.
نوع البرنامج التابعpragma صلادة ^0.8.0; العقد البسيط { // أعلن متغيرات الحالة عنوان المالك عمومًا; رسم(address => uint256) الأرصدة العمومية; // تهيئة عقد الرمز المميز constructor(uint256 التوريد الأولي) { المالك = msg.sender; الأرصدة[المالك] = التوريد الأولي; } // وظيفة لتحويل الرموز المميزة function transfer(address to, uint256 المبلغ) public { require(الأرصدة[msg.sender] >= المبلغ, "الرصيد غير كافٍ"); الأرصدة[msg.sender] -= المبلغ; الأرصدة[to] += المبلغ; } // وظيفة لفحص رصيد الرموز المميزة لحساب function balanceOf(address الحساب) public view returns (uint256) { return الأرصدة[الحساب]; }}
في هذا العقد، لدينا:
مالك
والأرصدة
لتخزين عنوان مالك العقد وأرصدة الرموز لجميع العناوين، على التوالي.بنّاء
الوظيفة التي تحدد الإمداد الأولي للرموز وتخصصها لمالك العقد.نقل
وظيفة تسمح للمستخدمين بنقل الرموز إلى حسابات أخرى. يستخدم تتطلب
بيان لضمان أن المرسل لديه عدد كاف من الرموز للتحويل.الرصيد من
وظيفة تُعيد رصيد الرمز المميز لحساب محدد.مثال2: تنفيذ نظام تصويت بسيط
برنامج TypeScriptpragma الصلبية ^0.8.0;نظام التصويت { تعيين (bytes32 => uint256) عام الأصوات; bytes32[] عام قائمة المرشحين; constructor(bytes32[] الذاكرة candidateNames) { قائمة المرشحين = candidateNames; } function voteForCandidate(bytes32 candidate) public { تتطلب(validCandidate(candidate), "المرشح غير صالح."); الأصوات المستلمة[candidate] += 1; } function totalVotesFor(bytes32 candidate) public view returns (uint256) { تتطلب(validCandidate(candidate), "المرشح غير صالح."); return الأصوات المستلمة[candidate]; } function validCandidate(bytes32 candidate) public view returns (bool) { for (uint256 i = 0; i < قائمة المرشحين.length; i++) { if (قائمة المرشحين[i] == candidate) { return صحيح; } } return كاذب; }}
في هذا المثال،نظام التصويت
يسمح العقد للمستخدمين بالتصويت لأحد المرشحين عن طريق الاتصال بالالتصويت للمرشح
تتبع العقد عدد الأصوات التي تلقاها كل مرشح باستخدام وظيفة.الأصوات المستلمة
التعيين، حيث يكون المفتاح اسم المرشح والقيمة هي عدد الأصوات. قائمة المرشحين
المتغير يخزن قائمة المرشحين الصالحة. إجمالي التصويتات لصالح
يمكن استدعاء الوظيفة للتحقق من عدد الأصوات التي حصل عليها مرشح معين، ومرشح صالح
يتحقق الدالة مما إذا كان المرشح صالحًا. هذا مثال بسيط على كيف يمكن استخدام الصلادية لبناء التطبيقات اللامركزية بمنطق معقد.
يسلط الضوء على
المتغيرات والدوال والمعدلات هي مكونات أساسية في عقود Solidity الذكية.
للصلابة نوعان من المتغيرات: المتغيرات الحالية والمتغيرات المحلية.
تستخدم الوظائف لأداء المهام ويمكن أن تحتوي على معلمات الإدخال وقيم الإرجاع.
يتم استخدام المعدلات لتعديل سلوك الدالة وتحسين قراءة الكود وإدارته.
يسمح عقد SimpleToken للمستخدمين بنقل الرموز والتحقق من أرصدة الرموز.
يوضح عقد SimpleToken استخدام متغيرات الحالة، وظيفة المُنشئ، والوظائف مثل النقل والرصيد.
يتيح عقد نظام التصويت للمستخدمين التصويت للمرشحين وتتبع عدد الأصوات.
يُظهر عقد VotingSystem استخدام التعيينات والمصفوفات والوظائف مثل voteForCandidate و totalVotesFor و validCandidate.