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 کو ایک حد تک ایٹمی ڈپازٹس اور چھٹکارے (redemptions) کے لیے بہتر بنایا گیا ہے۔ اگر حد پوری ہو جائے تو کوئی نیا ڈپازٹ یا چھٹکارا جمع نہیں کیا جا سکتا۔ یہ حد کسی بھی سمارٹ کنٹریکٹ سسٹم کے لیے اچھی طرح کام نہیں کرتی جس میں غیر مطابقت پذیر (asynchronous) کارروائیاں یا تاخیر تجوری کے ساتھ انٹرفیس کرنے کے لیے شرط کے طور پر شامل ہوں (جیسے، حقیقی دنیا کے اثاثہ پروٹوکولز، کم ضمانت والے قرض دینے کے پروٹوکولز، کراس چین قرض دینے کے پروٹوکولز، سیال اسٹیکنگ ٹوکنز (lsts)، یا انشورنس سیفٹی ماڈیولز)۔
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-4626 کے نفاذ سے ERC-20 ٹوکن کے نفاذ کو بیرونی بنا کر متعدد اثاثوں والی تجوریوں کے لیے تعاون کا اضافہ کرتا ہے۔
ERC-7575 توسیع کو ERC-7575 (opens in a new tab) میں مکمل طور پر بیان کیا گیا ہے۔
پیشگی شرائط
اس صفحے کو بہتر طور پر سمجھنے کے لیے، ہم تجویز کرتے ہیں کہ آپ پہلے ٹوکن کے معیارات اور ERC-20 کے بارے میں پڑھیں۔
ERC-4626 کے فنکشنز اور خصوصیات:
طریقے (Methods)
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)
یہ فنکشن صارفین کو موجودہ بلاک پر اپنے ڈپازٹ کے اثرات کی نقل (simulate) کرنے کی اجازت دیتا ہے۔
deposit
function deposit(uint256 assets, address receiver) public returns (uint256 shares)
یہ فنکشن بنیادی ٹوکنز کے assets کو تجوری میں جمع کرتا ہے اور receiver کو shares کی ملکیت دیتا ہے۔
maxMint
function maxMint(address receiver) public view returns (uint256 maxShares)
یہ فنکشن حصص کی زیادہ سے زیادہ مقدار لوٹاتا ہے جو ایک ہی mint کال میں ڈھالے جا سکتے ہیں، جس میں receiver کے لیے حصص ڈھالے گئے ہوں۔
previewMint
function previewMint(uint256 shares) public view returns (uint256 assets)
یہ فنکشن صارفین کو موجودہ بلاک پر اپنے ڈھالنے (mint) کے اثرات کی نقل کرنے کی اجازت دیتا ہے۔
mint
function mint(uint256 shares, address receiver) public returns (uint256 assets)
یہ فنکشن بنیادی ٹوکنز کے assets جمع کر کے receiver کے لیے بالکل shares تجوری کے حصص ڈھالتا ہے۔
maxWithdraw
function maxWithdraw(address owner) public view returns (uint256 maxAssets)
یہ فنکشن بنیادی اثاثوں کی زیادہ سے زیادہ مقدار لوٹاتا ہے جن کا ایک ہی withdraw کال کے ساتھ owner بیلنس سے انخلا کیا جا سکتا ہے۔
previewWithdraw
function previewWithdraw(uint256 assets) public view returns (uint256 shares)
یہ فنکشن صارفین کو موجودہ بلاک پر اپنے انخلا کے اثرات کی نقل کرنے کی اجازت دیتا ہے۔
withdraw
function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)
یہ فنکشن owner سے shares کو جلاتا ہے اور تجوری سے بالکل assets ٹوکن receiver کو بھیجتا ہے۔
maxRedeem
function maxRedeem(address owner) public view returns (uint256 maxShares)
یہ فنکشن حصص کی زیادہ سے زیادہ مقدار لوٹاتا ہے جنہیں redeem کال کے ذریعے owner بیلنس سے چھڑایا (redeem) جا سکتا ہے۔
previewRedeem
function previewRedeem(uint256 shares) public view returns (uint256 assets)
یہ فنکشن صارفین کو موجودہ بلاک پر اپنے چھٹکارے (redemption) کے اثرات کی نقل کرنے کی اجازت دیتا ہے۔
redeem
function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)
یہ فنکشن owner سے shares کی ایک مخصوص تعداد کو چھڑاتا ہے اور تجوری سے بنیادی ٹوکن کے assets کو receiver کو بھیجتا ہے۔
totalSupply
function totalSupply() public view returns (uint256)
گردش میں موجود تجوری کے غیر چھڑائے گئے حصص کی کل تعداد لوٹاتا ہے۔
balanceOf
function balanceOf(address owner) public view returns (uint256)
تجوری کے حصص کی کل مقدار لوٹاتا ہے جو اس وقت owner کے پاس ہے۔
انٹرفیس کا نقشہ
ایونٹس
ڈپازٹ ایونٹ
جب ٹوکنز کو mint اور deposit طریقوں کے ذریعے تجوری میں جمع کیا جائے تو اسے لازمی خارج (emit) کیا جانا چاہیے۔
event Deposit(
address indexed sender,
address indexed owner,
uint256 assets,
uint256 shares
)
جہاں sender وہ صارف ہے جس نے shares کے لیے assets کا تبادلہ کیا، اور ان shares کو owner میں منتقل کیا۔
انخلا کا ایونٹ
جب کسی جمع کنندہ کی جانب سے redeem یا withdraw طریقوں میں تجوری سے حصص کا انخلا کیا جائے تو اسے لازمی خارج کیا جانا چاہیے۔
event Withdraw(
address indexed sender,
address indexed receiver,
address indexed owner,
uint256 assets,
uint256 shares
)
جہاں sender وہ صارف ہے جس نے انخلا کو متحرک کیا اور owner کی ملکیت والے shares کا assets کے لیے تبادلہ کیا۔ receiver وہ صارف ہے جس نے انخلا کیے گئے assets وصول کیے۔
