Tokenized Vault Standard(ERC-4626)モジュールは、「シェア」(ERC20 の継承を使用して表される)を基に、標準化された{deposit}、{mint}、{redeem}、{burn}のワークフローを通じて「資産」との交換による「シェア」の発行と破棄を可能にします。
このコントラクトは ERC20 標準を拡張しています。それに付随する追加の拡張は、このコントラクトによって表される「シェア」トークンに影響を与え、独立したコントラクトである「資産」トークンには影響を与えません。
[注意]
ボールトが空またはほぼ空の場合、シェアの価格を膨らませる「寄付」を通じて預金が盗まれるリスクが高くなります。これは寄付またはインフレ攻撃とも呼ばれ、基本的にはスリッページの問題です。
ボールトのデプロイヤーは、価格操作が不可能になるような非自明な量の資産の初期預金を行うことで、この攻撃に対抗することができます。引き出しも同様にスリッページの影響を受ける場合があります。
ユーザーは、予期しないスリッページや攻撃から保護するために、受け取った量が予想通りであることを確認するために、https://github.com/fei-protocol/ERC4626などのチェックを行うラッパーを使用することで保護することができます。
[参照]
このモジュールとコードにアクセスできます:https://bit.ly/3TWuWSe
使用方法
すべての EIP-4626 トークン化ボールトは、株式を表すために EIP-20 を実装する必要があります。
ボールトが譲渡不可能である場合、transfer または transferFrom への呼び出しでリバートする場合があります。EIP-20 の操作 balanceOf、transfer、totalSupply などは、ボールトの基礎となる保有物の一部に対する所有権のクレームを表す「シェア」に対して操作します。
すべての EIP-4626 トークン化ボールトは、EIP-20 のオプションのメタデータ拡張を実装する必要があります。name および symbol 関数は、基礎となるトークンの名前とシンボルをいかなる方法でも反映するべきです。
EIP-4626 トークン化ボールトは、さまざまな統合でのシェアの承認の UX を改善するために EIP-2612 を実装することができます。
関数
#書き込み
- deposit
- mint
- redeem
- transfer
- approve
- transferFrom
- increaseAllowance
- withdraw
- decreaseAllowance
#読み取り
- asset
- allowance
- convertToShares
- decimals
- maxDeposit
- maxRedeem
- name
- symbol
- totalAssets
- totalSupply
- balanceOf
- maxMint
- maxWithdraw
- previewDeposit
- previewRedeem
- previewWithdraw
- previewMint
- convertToAssets
このモジュールとコードにアクセスできます:https://bit.ly/3TWuWSe
【Bunzz とは】
Bunzz はアジア最大級の DApps 開発インフラを運営する、web3×LLM におけるリーディングカンパニーです。「公共財としてのスマートコントラクト」の実現に向けて、各種 web3 インフラやサービスを開発・提供しております。
【Our Projects】
- Smart Contract Hub | スマートコントラクトの Github
- DeCipher | "Read me" for All of Contracts
- Bunzz for Enterprise | Tier1 の技術リソースを日本企業に提供
- Bunzz Audit | 透明かつ持続的なコントラクト監査の仕組みを実現
【Social Links】
【お問合せ】
web3 開発・コンサルティングのご相談はこちらから 👉Google Form
Bunzz R&D エンジニア荒巻さんの著書『スマートコントラクトの仕組みと法律』が好評発売中です 📕