![見出し画像](https://assets.st-note.com/production/uploads/images/108304017/rectangle_large_type_2_f20ed00eaf22dff336fca6e69a224c65.png?width=800)
Photo by
fuyuko1224
【完全保存版】WASMのコントラクトで#[modifiers(only_owner)]を設定する方法
本日は、[modifiers(only_owner)]を設定する方法を見ていきます。
1 Cargo .tomlについて
今回、「only_owner」を使用するため、「ownable」を有効にします。
「default-features」を「false」にしているため、必要な機能をここに書く必要があります。
![](https://assets.st-note.com/img/1686816003131-ib7lEpKbgx.png?width=800)
2 modifiersについて
#[modifiers(○○)]を使うには、こちらの、modifiersを使用する必要があります。
![](https://assets.st-note.com/img/1686816109325-24EdAYicGF.png?width=800)
3 ownableについて
次は、「ownable」です。
これは、「only_owner」を使用するためです。
![](https://assets.st-note.com/img/1686817203217-pG1i9Lgs60.png?width=800)
そして、構造体の中に、「ownable::Data」を入れます。
![](https://assets.st-note.com/img/1686817828664-2iNPhv43wF.png?width=800)
内容はこちらです。
「only_owner」を行うために、実行者が「owner」かどうかを判別するためです。
![](https://assets.st-note.com/img/1686817833403-xpDMNx8ren.png?width=800)
4 使用箇所について
使用場所で、#[modifiers(only_owner)]を設定します。
![](https://assets.st-note.com/img/1686818001278-oLNqMW5faZ.png?width=800)
そして、ここが大事だと思います。
ownerではない人が実行した時、エラーが返るように、返り値はResult型である必要があります。
問題ない時は()が返るように、Ok(())も設定します。
![](https://assets.st-note.com/img/1686818067721-zgeDepGX9w.png?width=800)
以上になります。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊