🙆
[Astar]コントラクト備忘録22(AccessControlの「revoke_role」と「renounce_role」について)
こちらの知見がたまったので、備忘録として残します。
1 概要
- AccessControlの「revoke_role」と「renounce_role」について
2 内容
今回は「revoke_role」と「renounce_role」について見ていきます。
なお、こちらはこの記事の続きになります。
どちらも似ていますが、違いはここだと思います。
「revoke_role」の方は他の人のroleを消すので、消す人自身がroleを持っているかの確認が行われます。
一方、「renounce_role」は自分自身のroleを消すので、設定したアカウントが自分自身であることを確認します。
https://github.dev/Supercolony-net/openbrush-contracts
ではテストしてみましょう。
以下のような状態を想定しています。
- test1
⇨roleは0、1を持っている - test2
⇨roleを持っていない
1) revoke_role① 権限のないアカウントによる削除
下のように、エラーとなります。
2) revoke_role② 権限のあるアカウントから設定されていないroleの削除
下のように、エラーとなります。
3) revoke_role③ 権限のあるアカウントから設定されているroleの削除
下のように、実行が可能です。
4) renounce_role① 自分のアカウントから設定されてないroleの削除
下のように、エラーとなります。
5) renounce_role② 自分以外のアカウントから設定されているroleの削除
下のように、エラーとなります。
6) renounce_role③ 自分のアカウントから設定されているroleの削除
下のように、実行が可能です。
shibuya
bJz21JKwPDaNHtMN9KeQJQJxHWTHxYoaoWb3ux3wr1KnJEf
今回は以上です。
Discussion