Standard tokenizovaného trezoru ERC-4626
Stránka naposledy aktualizována: 21. října 2025
Úvod
ERC-4626 je standard, který optimalizuje a sjednocuje technické parametry výnosových trezorů. Poskytuje standardní API pro tokenizované výnosové trezory, které představují podíly na jednom základním tokenu ERC-20. ERC-4626 také definuje volitelné rozšíření pro tokenizované trezory využívající ERC-20, které nabízí základní funkce pro vkládání, vybírání tokenů a čtení zůstatků.
Role ERC-4626 ve výnosových trezorech
Trhy s půjčkami, agregátory a tokeny s vnitřním úročením pomáhají uživatelům dosáhnout největšího výnosu z jejich kryptotokenů. Tyto strategie se provádějí s mírnými variacemi, což může být náchylné k chybám nebo plýtvání vývojovými zdroji.
ERC-4626 ve výnosových trezorech sníží náročnost integrace a otevře přístup k výnosům v různých aplikacích s minimálním specializovaným úsilím od vývojářů tím, že vytvoří konzistentnější a robustnější implementační vzory.
Token ERC-4626 je plně popsán v EIP-4626 (opens in a new tab).
Asynchronní rozšíření trezoru (ERC-7540)
ERC-4626 je optimalizován pro atomické vklady a odkupy až do určitého limitu. Pokud je limitu dosaženo, nelze odeslat žádné nové vklady ani odkupy. Toto omezení nefunguje dobře pro žádný systém chytrých kontraktů s asynchronními akcemi nebo zpožděními jako předpokladem pro propojení s trezorem (např. protokoly reálných aktiv, protokoly pro půjčky s nedostatečným zajištěním, protokoly pro cross-chain půjčky, tokeny likvidního stakingu nebo bezpečnostní moduly pojištění).
ERC-7540 rozšiřuje použitelnost trezorů ERC-4626 pro asynchronní případy použití. Stávající rozhraní trezoru (deposit/withdraw/mint/redeem) je plně využito k nárokování asynchronních požadavků.
Rozšíření ERC-7540 je plně popsáno v ERC-7540 (opens in a new tab).
Rozšíření trezoru s více aktivy (ERC-7575)
Jedním z chybějících případů použití, který ERC-4626 nepodporuje, jsou trezory, které mají více aktiv nebo vstupních bodů, jako jsou tokeny poskytovatele likvidity (LP). Ty jsou obecně těžkopádné nebo nevyhovující kvůli požadavku, aby samotný standard ERC-4626 byl ERC-20.
ERC-7575 přidává podporu pro trezory s více aktivy externalizací implementace tokenu ERC-20 z implementace ERC-4626.
Rozšíření ERC-7575 je plně popsáno v ERC-7575 (opens in a new tab).
Předpoklady
Pro lepší pochopení této stránky doporučujeme nejprve přečíst si o standardech tokenů a ERC-20.
Funkce a vlastnosti ERC-4626:
Metody
aktivum
1function asset() public view returns (address assetTokenAddress)Tato funkce vrací adresu základního tokenu, který je používán pro účetnictví, vklady a výběry v trezoru.
totalAssets
1function totalAssets() public view returns (uint256)Tato funkce vrací celkové množství základních aktiv držených v trezoru.
convertToShares
1function convertToShares(uint256 assets) public view returns (uint256 shares)Tato funkce vrací množství shares, které by trezor vyměnil za poskytnuté množství assets.
convertToAssets
1function convertToAssets(uint256 shares) public view returns (uint256 assets)Tato funkce vrací množství assets, které by trezor vyměnil za poskytnuté množství shares.
maxDeposit
1function maxDeposit(address receiver) public view returns (uint256 maxAssets)Tato funkce vrací maximální množství podkladových aktiv, které lze vložit v jediném volání deposit, přičemž jsou podíly vyraženy pro receiver.
previewDeposit
1function previewDeposit(uint256 assets) public view returns (uint256 shares)Tato funkce umožňuje uživatelům simulovat účinky jejich vkladu v aktuálním bloku.
deposit
1function deposit(uint256 assets, address receiver) public returns (uint256 shares)Tato funkce vkládá assets podkladových tokenů do trezoru a uděluje receiverovi vlastnictví shares.
maxMint
1function maxMint(address receiver) public view returns (uint256 maxShares)Tato funkce vrací maximální množství podílů, které mohou být vyraženy v jediném volání mint, přičemž jsou podíly vyraženy pro receiver.
previewMint
1function previewMint(uint256 shares) public view returns (uint256 assets)Tato funkce umožňuje uživatelům simulovat účinky své ražby v aktuálním bloku.
mint
1function mint(uint256 shares, address receiver) public returns (uint256 assets)Tato funkce razí přesně shares podílů trezoru receiverovi, a to vložením assets podkladových tokenů.
maxWithdraw
1function maxWithdraw(address owner) public view returns (uint256 maxAssets)Tato funkce vrací maximální množství podkladových aktiv, které lze vybrat ze zůstatku ownera jediným voláním withdraw.
previewWithdraw
1function previewWithdraw(uint256 assets) public view returns (uint256 shares)Tato funkce umožňuje uživatelům simulovat účinky svého výběru v aktuálním bloku.
withdraw
1function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)Tato funkce spálí shares od ownera a odešle z trezoru přesně assets tokenů receiverovi.
maxRedeem
1function maxRedeem(address owner) public view returns (uint256 maxShares)Tato funkce vrací maximální množství podílů, které lze odkoupit ze zůstatku ownera prostřednictvím volání redeem.
previewRedeem
1function previewRedeem(uint256 shares) public view returns (uint256 assets)Tato funkce umožňuje uživatelům simulovat účinky svého odkupu v aktuálním bloku.
redeem
1function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)Tato funkce odkoupí určitý počet shares od ownera a odešle assets podkladového tokenu z trezoru receiverovi.
totalSupply
1function totalSupply() public view returns (uint256)Vrací celkový počet neodkoupených podílů v trezoru v oběhu.
balanceOf
1function balanceOf(address owner) public view returns (uint256)Vrací celkové množství podílů v trezoru, které owner aktuálně má.
Mapa rozhraní
Události
Událost vkladu
MUSÍ být emitována při vložení tokenů do trezoru pomocí metod mint a deposit.
1event Deposit(2 address indexed sender,3 address indexed owner,4 uint256 assets,5 uint256 shares6)Kde sender je uživatel, který vyměnil assets za shares a převedl tyto shares na ownera.
Událost výběru
MUSÍ být emitována, když jsou podíly vybrány z trezoru vkladatelem v metodách redeem nebo withdraw.
1event Withdraw(2 address indexed sender,3 address indexed receiver,4 address indexed owner,5 uint256 assets,6 uint256 shares7)Kde sender je uživatel, který spustil výběr a vyměnil shares ve vlastnictví ownera za assets. receiver je uživatel, který obdržel vybrané assets.
