ERC-4626 トークン化ボールト規格
最終編集者: , Invalid DateTime
はじめに
ERC-4626 は、利回りボールトの技術的なパラメータを最適化し、統一するための規格です。 この規格は、ボールトに含まれる単一の ERC-20 トークンをどれだけ所有しているかを示すトークン化利回りボールトを作成するための標準 API を提供します。 ERC-4626 はさらに、ERC-20 に基づくトークン化ボールトのオプション拡張機能として、トークンの預入/引出および残高の読み取りといった基本的な機能を提供します。
利回りボールトにおける ERC-4626 の役割
レンディング市場、アグリゲータ、および内部で利回りが得られるトークンは、ユーザーが様々な戦略を駆使して暗号資産トークンから最適な利回りを獲得する上で有益です。 これらの戦略はそれぞれがわずかな違いを持つため、エラーが発生しやすい場合や開発リソースを浪費してしまう場合があります。
利回りボールトのデベロッパーは、ERC-4626 を活用することで、より一貫性が高く堅牢な実装パターンを実現できるため、アプリケーションとの統合にかかる作業を軽減し、様々なアプリケーションにおいて利回りを獲得できるようにするための別途の取り組みを削減することができます。
ERC-4626 トークンの詳細については、EIP-4626(opens in a new tab)をご覧ください。
前提知識
この記事をよく理解するには、まずトークン規格およびERC-20に目を通すことをおすすめします。
ERC-4626 の機能と特長:
メソッド
asset
1function asset() public view returns (address)2コピー
この関数は、会計処理、入金、および引出のために当該ボールトが使用される原資トークンのアドレスを返します。
totalAssets
1function totalAssets() public view returns (uint256)2コピー
この関数は、当該ボールトで所有される原資産の総額を返します。
convertToShares
1function convertToShares(uint256 assets) public view returns (uint256 shares)2コピー
この関数は、当該ボールトに提供されたassets
の量に対して交換されるshares
の量を返します。
convertToAssets
1function convertToAssets(uint256 shares) public view returns (uint256 assets)2コピー
この関数は、当該ボールトに提供されたshares
の量に対して交換されるassets
の量を返します。
maxDeposit
1function maxDeposit(address receiver) public view returns (uint256)2コピー
この関数は、receiver
が 1 回のdeposit
呼び出しで入金できる原資産の上限を返します。
previewDeposit
1function previewDeposit(uint256 assets) public view returns (uint256)2コピー
この関数は、入金が現在のブロックに対してどのような影響をもたらすかをシミュレーションします。
入金
1function deposit(uint256 assets, address receiver) public returns (uint256 shares)2コピー
この関数は、原資産トークンのassets
をボールトに入金し、受信者にshares
の所有権を付与します。
maxMint
1function maxMint(address receiver) public view returns (uint256)2コピー
この関数は、receiverによる1回の
の呼び出しにより、ミント可能なシェア数の上限を返します。
previewMint
1function previewMint(uint256 shares) public view returns (uint256)2コピー
この関数は、現在のブロックにおける当該ミントの影響をシミュレーションします。
mint(ミント)
1function mint(uint256 shares, address receiver) public returns (uint256 assets)2コピー
この関数は、原資産トークンのassets
を預け入れることで、recevier
のボールトに対して特定の量のshares
をミントします。
maxWithdraw
1function maxWithdraw(address owner) public view returns (uint256)2コピー
この関数は、1 回のwithdraw
呼び出しにより、owner
残高から引き出し可能な原資産アセットの上限を返します。
previewWithdraw
1function previewWithdraw(uint256 assets) public view returns (uint256)2コピー
この関数は、当該引き出しが現在のブロックに与える影響をシミュレーションします。
引き出し
1function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)2コピー
この関数は、owner
が所有するshares
をバーンし、正確に一致したassets
トークンをボールトからreceiver
に送信します。
maxRedeem
1function maxRedeem(address owner) public view returns (uint256)2コピー
この関数は、redeem
の呼び出しにより、owner
の残高から受け取ることができるシェアの上限を返します。
previewRedeem
1function previewRedeem(uint256 shares) public view returns (uint256)2コピー
この関数は、シェアの受け取りが現在のブロックに与える影響をシミュレーションします。
redeem
1function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)2