قرارداد استخر وام دهی
مقدمه
استخر وامدهی مهمترین قرارداد بخش بازار نقدینگی زربان است. توابع اصلی این قرارداد هوشمند در زیر آورده شدهاند. توابع
deposit
،
borrow
،
withdraw
و
repay
در این قرارداد صرفا برای توکنهای با استاندارد
ERC20
است و نمیتوان از آنها برای اتر استفاده کرد.
عملکردهای کلیدی
deposit
: واریز مقدار مشخصی از یک دارایی، ضرب کردن توکن zToken به اندازه مناسب و انتقال آن به آدرس مشخصwithdraw
: برداشت مقداری از دارایی وثیقه؛ به معنی آزاد کردن دارایی وثیقه و سوزاندن بخش معادل آن از zTokenborrow
: قرض گرفتن مقداری از دارایی با نرخ مشخص شده و فرستادن آن به کسی که تراکنش را زده استrepay
: بازپرداخت بدهی فرد مشخصی با نرخی که در تابع ذکر شده است.-
swapBorrowRateMode
: حالت های نرخ وام کسی که این تابع را فراخوانی میکند را بین پایدار و متغیر تغییر میدهد. -
setUserUseReserveAsCollateral
: مشخص میکند که یک دارایی از کسی که تابع را فراخوانی میکند به عنوان وثیقه استفاده شود یا خیر. -
liquidationCall
: موقعیتهایی که شاخص سلامت آنها کمتر از یک است را نقد میکند. flashLoan
: اجرای عملیات وام لحظهای1
مکانیزم و مفاهیم کلیدی
قرارداد استخر وامدهی توابع اصلی مهیا کردن وام را فراهم میکند. در این قرارداد شما میتوانید با استفاده از توابع
deposit
و
withdraw
به ترتیب با گذاشتن وثیقه مناسب و با ضرب کردن توکن
zToken
وام بگیرید و یا با سوزاندن این توکن مقدار وثیقه خود را آزاد کنید.
- هنگام اجرای تابع
deposit
، باید مجوز خرج کردن وجوه از طرفmsg.sender
برای حداقل مقدار ذکر شده صادر شود. این مجوز با فراخوانی تابعapprove
قبل از فراخوانی این تابع ممکن میشود. - هنگام فراخوانی
borrow
باید مقدار وثیقه کافی وجود داشته باشد. میتوان این مقدار را به نمایندگی از طرفmsg.sender
و با فراخوانی تابعapproveDelegation
نیز انجام داد.
وقتی شاخص سلامت یک موقعیت کمتر از 1 باشد، مدیران نقدکننده2 بخشی یا تمام مبلغ قرض باقیمانده را از طرف وام گیرنده بازپرداخت میکنند، در حالی که در ازای آن بنا به تصمیم خود مقداری از وثیقه با تخفیف دریافت میکنند (که به عنوان پاداش انحلال3 نیز شناخته میشود). اگر آنها بخواهند معادل یک توکن وثیقه یا دارایی پایه را مستقیماً دریافت کنند، وقتی انحلال با موفقیت انجام شد، شاخص سلامت موقعیت افزایش می یابد و به بالای 1 می رساند.
وقتی تابع
flashloan
فراخوانی میشود در واقع
مقدار
amounts
درخواست شده از دارایی ها را به قرارداد
receiverAddress
ارسال می کند و اگر مبالغ وام لحظهای و کارمزد آن تا پایان تراکنش برگردانده نشود، پارامترهای زیر را در پاسخ ارسال می کند:
عدد ۰ برگردانده میشود،
اگر عدد 1 برگردانده شود، آدرس
onBehalfOf
یک بدهی ثابت متحمل می شود.اگر عدد 2 برگردانده شود، آدرس
onBehalfOf
بدهی متغیری را متحمل می شود.رویدادها: همچنین قرارداد هوشمند چندین رویداد را تعریف می کند که قرارداد استخر وام در هنگام انجام اقدامات خاصی منتشر می کند. رویدادهایی مانند «واریز»، «برداشت»، «قرض»، «بازپرداخت»، «وام لحظهای»، «نقد شدن» و غیره، اطلاعات مهمی در مورد تراکنشهای مربوط به استخر وام ارائه میدهند.
1 Flashloan
2 Liquidators
3 liquidation bonus