معيار القبو المرمز ERC-4626
يعد ERC-4626 معيارًا لتحسين وتوحيد المعلمات الفنية للأقبية المدرة للعائد. وهو يوفر API قياسيًا للأقبية المرمزة المدرة للعائد والتي تمثل حصصًا من رمز ERC-20 مميز أساسي واحد. يحدد ERC-4626 أيضًا امتدادًا اختياريًا للأقبية المرمزة التي تستخدم ERC-20، مما يوفر وظائف أساسية لإيداع وسحب الرموز المميزة وقراءة الأرصدة.
دور ERC-4626 في الأقبية المدرة للعائد
تساعد أسواق الإقراض، والمجمّعات، والرموز المميزة التي تدر فائدة جوهريًا المستخدمين في العثور على أفضل عائد على رموز الكريبتو المميزة الخاصة بهم من خلال تنفيذ استراتيجيات مختلفة. يتم تنفيذ هذه الاستراتيجيات باختلافات طفيفة، مما قد يكون عرضة للأخطاء أو يهدر موارد التطوير.
سيؤدي استخدام ERC-4626 في الأقبية المدرة للعائد إلى تقليل جهد التكامل وإتاحة الوصول إلى العائد في تطبيقات مختلفة بجهد متخصص قليل من المطورين من خلال إنشاء أنماط تنفيذ أكثر اتساقًا وقوة.
تم وصف رمز ERC-4626 المميز بالكامل في EIP-4626 (يفتح في علامة تبويب جديدة).
امتداد القبو غير المتزامن (ERC-7540)
تم تحسين ERC-4626 لعمليات الإيداع والاسترداد الذرية حتى حد معين. إذا تم الوصول إلى الحد، لا يمكن تقديم أي عمليات إيداع أو استرداد جديدة. لا يعمل هذا القيد بشكل جيد مع أي نظام عقد ذكي يحتوي على إجراءات غير متزامنة أو تأخيرات كشرط أساسي للتفاعل مع القبو (على سبيل المثال، بروتوكولات أصول العالم الحقيقي، أو بروتوكولات الإقراض ناقصة الضمانات، أو بروتوكولات الإقراض عبر السلاسل، أو رموز التخزين السائل (LST)، أو وحدات أمان التأمين).
يوسع ERC-7540 من فائدة أقبية ERC-4626 لحالات الاستخدام غير المتزامنة. يتم استخدام واجهة القبو الحالية (deposit/withdraw/mint/redeem) بالكامل للمطالبة بالطلبات غير المتزامنة.
تعرف على المزيد حول الأقبية المرمزة غير المتزامنة ERC-7540.
امتداد القبو متعدد الأصول (ERC-7575)
إحدى حالات الاستخدام المفقودة التي لا يدعمها ERC-4626 هي الأقبية التي تحتوي على أصول أو نقاط دخول متعددة مثل رموز مزود السيولة (LP) المميزة. تعتبر هذه الأقبية بشكل عام غير عملية أو غير متوافقة بسبب متطلب ERC-4626 بأن يكون هو نفسه ERC-20.
يضيف ERC-7575 دعمًا للأقبية ذات الأصول المتعددة عن طريق فصل تنفيذ رمز ERC-20 المميز عن تنفيذ ERC-4626.
تم وصف امتداد ERC-7575 بالكامل في ERC-7575 (يفتح في علامة تبويب جديدة).
المتطلبات الأساسية
لفهم هذه الصفحة بشكل أفضل، نوصي بقراءة معايير الرموز المميزة وERC-20 أولاً.
وظائف وميزات ERC-4626:
الطرق
asset
function asset() public view returns (address assetTokenAddress)
تُرجع هذه الدالة عنوان الرمز المميز الأساسي المستخدم للقبو لأغراض المحاسبة، والإيداع، والسحب.
totalAssets
function totalAssets() public view returns (uint256)
تُرجع هذه الدالة إجمالي مبلغ الأصول الأساسية التي يحتفظ بها القبو.
convertToShares
function convertToShares(uint256 assets) public view returns (uint256 shares)
تُرجع هذه الدالة مقدار shares الذي سيتم استبداله بواسطة القبو مقابل مقدار assets المقدم.
convertToAssets
function convertToAssets(uint256 shares) public view returns (uint256 assets)
تُرجع هذه الدالة مقدار assets الذي سيتم استبداله بواسطة القبو مقابل مقدار shares المقدم.
maxDeposit
function maxDeposit(address receiver) public view returns (uint256 maxAssets)
تُرجع هذه الدالة الحد الأقصى لمقدار الأصول الأساسية التي يمكن إيداعها في استدعاء deposit واحد، مع الحصص التي تم سكها لـ receiver.
previewDeposit
function previewDeposit(uint256 assets) public view returns (uint256 shares)
تتيح هذه الدالة للمستخدمين محاكاة تأثيرات إيداعهم في الكتلة الحالية.
deposit
function deposit(uint256 assets, address receiver) public returns (uint256 shares)
تقوم هذه الدالة بإيداع assets من الرموز المميزة الأساسية في القبو وتمنح ملكية shares إلى receiver.
maxMint
function maxMint(address receiver) public view returns (uint256 maxShares)
تُرجع هذه الدالة الحد الأقصى لمقدار الحصص التي يمكن سكها في استدعاء mint واحد، مع الحصص التي تم سكها لـ receiver.
previewMint
function previewMint(uint256 shares) public view returns (uint256 assets)
تتيح هذه الدالة للمستخدمين محاكاة تأثيرات عملية السك الخاصة بهم في الكتلة الحالية.
mint
function mint(uint256 shares, address receiver) public returns (uint256 assets)
تقوم هذه الدالة بسك shares بالضبط من حصص القبو إلى receiver عن طريق إيداع assets من الرموز المميزة الأساسية.
maxWithdraw
function maxWithdraw(address owner) public view returns (uint256 maxAssets)
تُرجع هذه الدالة الحد الأقصى لمقدار الأصول الأساسية التي يمكن سحبها من رصيد owner باستدعاء withdraw واحد.
previewWithdraw
function previewWithdraw(uint256 assets) public view returns (uint256 shares)
تتيح هذه الدالة للمستخدمين محاكاة تأثيرات عملية السحب الخاصة بهم في الكتلة الحالية.
withdraw
function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)
تقوم هذه الدالة بحرق shares من owner وإرسال assets بالضبط من الرموز المميزة من القبو إلى receiver.
maxRedeem
function maxRedeem(address owner) public view returns (uint256 maxShares)
تُرجع هذه الدالة الحد الأقصى لمقدار الحصص التي يمكن استردادها من رصيد owner من خلال استدعاء redeem.
previewRedeem
function previewRedeem(uint256 shares) public view returns (uint256 assets)
تتيح هذه الدالة للمستخدمين محاكاة تأثيرات عملية الاسترداد الخاصة بهم في الكتلة الحالية.
redeem
function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)
تقوم هذه الدالة باسترداد عدد محدد من shares من owner وترسل assets من الرمز المميز الأساسي من القبو إلى receiver.
totalSupply
function totalSupply() public view returns (uint256)
تُرجع إجمالي عدد حصص القبو غير المستردة المتداولة.
balanceOf
function balanceOf(address owner) public view returns (uint256)
تُرجع إجمالي مقدار حصص القبو التي يمتلكها owner حاليًا.
خريطة الواجهة
الأحداث
حدث الإيداع
يجب إصداره عند إيداع الرموز المميزة في القبو عبر طريقتي mint وdeposit.
event Deposit(
address indexed sender,
address indexed owner,
uint256 assets,
uint256 shares
)
حيث sender هو المستخدم الذي استبدل assets بـ shares، ونقل تلك shares إلى owner.
حدث السحب
يجب إصداره عند سحب الحصص من القبو بواسطة مودع في طريقتي redeem أو withdraw.
event Withdraw(
address indexed sender,
address indexed receiver,
address indexed owner,
uint256 assets,
uint256 shares
)
حيث sender هو المستخدم الذي بدأ عملية السحب واستبدل shares، المملوكة لـ owner، بـ assets. وreceiver هو المستخدم الذي تلقى assets المسحوبة.
