تخطي إلى المحتوى الرئيسي
Change page

معيار القبو المرمز ⁦ERC-4626⁩

مقدمة

ERC-4626 هو معيار لتحسين وتوحيد المعلمات الفنية للأقبية المدرة للعوائد. يوفر واجهة برمجة تطبيقات (API) قياسية للأقبية المرمزة المدرة للعوائد والتي تمثل حصصًا لرمز مميز أساسي واحد من نوع ERC-20. يحدد ERC-4626 أيضًا امتدادًا اختياريًا للأقبية المرمزة التي تستخدم ERC-20، مما يوفر وظائف أساسية لإيداع وسحب الرموز المميزة وقراءة الأرصدة.

دور ERC-4626 في الأقبية المدرة للعوائد

تساعد أسواق الإقراض، والمجمعات، والرموز المميزة التي تدر فائدة بطبيعتها المستخدمين في العثور على أفضل عائد على رموز الكريبتو المميزة الخاصة بهم من خلال تنفيذ استراتيجيات مختلفة. يتم تنفيذ هذه الاستراتيجيات باختلافات طفيفة، مما قد يكون عرضة للخطأ أو يهدر موارد التطوير.

سيؤدي استخدام ERC-4626 في الأقبية المدرة للعوائد إلى تقليل جهد التكامل وإتاحة الوصول إلى العوائد في تطبيقات مختلفة بجهد متخصص قليل من المطورين من خلال إنشاء أنماط تنفيذ أكثر اتساقًا وقوة.

تم وصف الرمز المميز ERC-4626 بالكامل في EIP-4626 (opens in a new tab).

امتداد القبو غير المتزامن (ERC-7540)

تم تحسين ERC-4626 لعمليات الإيداع والاسترداد الذرية حتى حد معين. إذا تم الوصول إلى الحد، لا يمكن تقديم أي عمليات إيداع أو استرداد جديدة. لا يعمل هذا القيد بشكل جيد مع أي نظام عقد ذكي يحتوي على إجراءات غير متزامنة أو تأخيرات كشرط أساسي للتفاعل مع القبو (على سبيل المثال، بروتوكولات أصول العالم الحقيقي، أو بروتوكولات الإقراض غير المضمونة بالكامل، أو بروتوكولات الإقراض عبر السلاسل، أو رموز التخزين السائل (LST)، أو وحدات أمان التأمين).

يوسع ERC-7540 من فائدة أقبية ERC-4626 لحالات الاستخدام غير المتزامنة. يتم استخدام واجهة القبو الحالية (deposit/withdraw/mint/redeem) بالكامل للمطالبة بالطلبات غير المتزامنة.

تم وصف امتداد ERC-7540 بالكامل في ERC-7540 (opens in a new tab).

امتداد القبو متعدد الأصول (ERC-7575)

إحدى حالات الاستخدام المفقودة التي لا يدعمها ERC-4626 هي الأقبية التي تحتوي على أصول أو نقاط دخول متعددة مثل الرموز المميزة لمزود السيولة (LP). هذه الأقبية بشكل عام غير عملية أو غير متوافقة بسبب متطلبات ERC-4626 بأن يكون هو نفسه ERC-20.

يضيف ERC-7575 دعمًا للأقبية ذات الأصول المتعددة عن طريق فصل تنفيذ الرمز المميز ERC-20 عن تنفيذ ERC-4626.

تم وصف امتداد ERC-7575 بالكامل في ERC-7575 (opens in a new tab).

المتطلبات الأساسية

لفهم هذه الصفحة بشكل أفضل، نوصي بقراءة معايير الرموز المميزة و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 حاليًا.

خريطة الواجهة

Map of the ERC-4626 interface

الأحداث

حدث الإيداع

يجب إصداره عند إيداع الرموز المميزة في القبو عبر طريقتي 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 المسحوبة.

قراءة إضافية