Lompat ke konten utama
Change page

Standar Brankas Tertokenisasi ERC-4626

Pengantar

ERC-4626 adalah standar untuk mengoptimalkan dan menyatukan parameter teknis dari brankas yang menghasilkan imbal hasil. Standar ini menyediakan API standar untuk brankas yang menghasilkan imbal hasil tertokenisasi yang mewakili saham dari satu token ERC-20 yang mendasarinya. ERC-4626 juga menguraikan ekstensi opsional untuk brankas tertokenisasi yang menggunakan ERC-20, menawarkan fungsionalitas dasar untuk menyetorkan, melakukan penarikan token, dan membaca saldo.

Peran ERC-4626 dalam brankas yang menghasilkan imbal hasil

Pasar peminjaman, agregator, dan token yang secara intrinsik menghasilkan bunga membantu pengguna menemukan imbal hasil terbaik pada token kripto mereka dengan mengeksekusi berbagai strategi. Strategi-strategi ini dilakukan dengan sedikit variasi, yang mungkin rentan terhadap kesalahan atau membuang-buang sumber daya pengembangan.

ERC-4626 dalam brankas yang menghasilkan imbal hasil akan menurunkan upaya integrasi dan membuka akses ke imbal hasil di berbagai aplikasi dengan sedikit upaya khusus dari pengembang dengan menciptakan pola implementasi yang lebih konsisten dan tangguh.

Token ERC-4626 dijelaskan sepenuhnya dalam EIP-4626 (opens in a new tab).

Ekstensi brankas asinkron (ERC-7540)

ERC-4626 dioptimalkan untuk setoran dan penebusan atomik hingga batas tertentu. Jika batas tersebut tercapai, tidak ada setoran atau penebusan baru yang dapat diajukan. Keterbatasan ini tidak berfungsi dengan baik untuk sistem kontrak pintar apa pun dengan tindakan asinkron atau penundaan sebagai prasyarat untuk berinteraksi dengan Brankas (misalnya, protokol aset dunia nyata, protokol peminjaman dengan agunan rendah, protokol peminjaman lintas rantai, token staking likuid (LST), atau modul keamanan asuransi).

ERC-7540 memperluas utilitas Brankas ERC-4626 untuk kasus penggunaan asinkron. Antarmuka Brankas yang ada (deposit/withdraw/mint/redeem) dimanfaatkan sepenuhnya untuk melakukan klaim Permintaan asinkron.

Ekstensi ERC-7540 dijelaskan sepenuhnya dalam ERC-7540 (opens in a new tab).

Ekstensi brankas multi-aset (ERC-7575)

Salah satu kasus penggunaan yang hilang dan tidak didukung oleh ERC-4626 adalah Brankas yang memiliki banyak aset atau titik masuk seperti Token penyedia likuiditas (LP). Ini umumnya sulit dikelola atau tidak patuh karena persyaratan ERC-4626 untuk menjadi ERC-20 itu sendiri.

ERC-7575 menambahkan dukungan untuk Brankas dengan banyak aset dengan mengeksternalisasi implementasi token ERC-20 dari implementasi ERC-4626.

Ekstensi ERC-7575 dijelaskan sepenuhnya dalam ERC-7575 (opens in a new tab).

Prasyarat

Untuk lebih memahami halaman ini, kami sarankan Anda membaca terlebih dahulu tentang standar token dan ERC-20.

Fungsi dan Fitur ERC-4626:

Metode

asset

function asset() public view returns (address assetTokenAddress)

Fungsi ini mengembalikan alamat token yang mendasarinya yang digunakan untuk brankas untuk akuntansi, penyetoran, penarikan.

totalAssets

function totalAssets() public view returns (uint256)

Fungsi ini mengembalikan jumlah total aset yang mendasarinya yang dipegang oleh brankas.

convertToShares

function convertToShares(uint256 assets) public view returns (uint256 shares)

Fungsi ini mengembalikan jumlah shares yang akan ditukarkan oleh brankas untuk jumlah assets yang diberikan.

convertToAssets

function convertToAssets(uint256 shares) public view returns (uint256 assets)

Fungsi ini mengembalikan jumlah assets yang akan ditukarkan oleh brankas untuk jumlah shares yang diberikan.

maxDeposit

function maxDeposit(address receiver) public view returns (uint256 maxAssets)

Fungsi ini mengembalikan jumlah maksimum aset yang mendasarinya yang dapat disetorkan dalam satu panggilan deposit, dengan saham yang dicetak untuk receiver.

previewDeposit

function previewDeposit(uint256 assets) public view returns (uint256 shares)

Fungsi ini memungkinkan pengguna untuk menyimulasikan efek dari setoran mereka pada blok saat ini.

deposit

function deposit(uint256 assets, address receiver) public returns (uint256 shares)

Fungsi ini menyetorkan assets token yang mendasarinya ke dalam brankas dan memberikan kepemilikan shares kepada receiver.

maxMint

function maxMint(address receiver) public view returns (uint256 maxShares)

Fungsi ini mengembalikan jumlah maksimum saham yang dapat dicetak dalam satu panggilan mint, dengan saham yang dicetak untuk receiver.

previewMint

function previewMint(uint256 shares) public view returns (uint256 assets)

Fungsi ini memungkinkan pengguna untuk menyimulasikan efek dari pencetakan mereka pada blok saat ini.

mint

function mint(uint256 shares, address receiver) public returns (uint256 assets)

Fungsi ini mencetak tepat shares saham brankas ke receiver dengan menyetorkan assets token yang mendasarinya.

maxWithdraw

function maxWithdraw(address owner) public view returns (uint256 maxAssets)

Fungsi ini mengembalikan jumlah maksimum aset yang mendasarinya yang dapat ditarik dari saldo owner dengan satu panggilan withdraw.

previewWithdraw

function previewWithdraw(uint256 assets) public view returns (uint256 shares)

Fungsi ini memungkinkan pengguna untuk menyimulasikan efek dari penarikan mereka pada blok saat ini.

withdraw

function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)

Fungsi ini membakar shares dari owner dan mengirimkan tepat assets token dari brankas ke receiver.

maxRedeem

function maxRedeem(address owner) public view returns (uint256 maxShares)

Fungsi ini mengembalikan jumlah maksimum saham yang dapat ditebus dari saldo owner melalui panggilan redeem.

previewRedeem

function previewRedeem(uint256 shares) public view returns (uint256 assets)

Fungsi ini memungkinkan pengguna untuk menyimulasikan efek dari penebusan mereka pada blok saat ini.

redeem

function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)

Fungsi ini menebus sejumlah tertentu shares dari owner dan mengirimkan assets token yang mendasarinya dari brankas ke receiver.

totalSupply

function totalSupply() public view returns (uint256)

Mengembalikan jumlah total saham brankas yang belum ditebus yang beredar.

balanceOf

function balanceOf(address owner) public view returns (uint256)

Mengembalikan jumlah total saham brankas yang saat ini dimiliki oleh owner.

Peta antarmuka

Map of the ERC-4626 interface

Peristiwa

Peristiwa Setoran

WAJIB dipancarkan ketika token disetorkan ke dalam brankas melalui metode mint dan deposit.

event Deposit(
    address indexed sender,
    address indexed owner,
    uint256 assets,
    uint256 shares
)

Di mana sender adalah pengguna yang menukarkan assets dengan shares, dan mentransfer shares tersebut ke owner.

Peristiwa Penarikan

WAJIB dipancarkan ketika saham ditarik dari brankas oleh penyetor dalam metode redeem atau withdraw.

event Withdraw(
    address indexed sender,
    address indexed receiver,
    address indexed owner,
    uint256 assets,
    uint256 shares
)

Di mana sender adalah pengguna yang memicu penarikan dan menukarkan shares, yang dimiliki oleh owner, dengan assets. receiver adalah pengguna yang menerima assets yang ditarik.

Bacaan lebih lanjut