🙆

[Astar]コントラクト備忘録22(AccessControlの「revoke_role」と「renounce_role」について)

2023/03/01に公開

こちらの知見がたまったので、備忘録として残します。

1 概要

  1. AccessControlの「revoke_role」と「renounce_role」について

2 内容

今回は「revoke_role」と「renounce_role」について見ていきます。
なお、こちらはこの記事の続きになります。

https://zenn.dev/yuki2020/articles/19d46504c6c109

どちらも似ていますが、違いはここだと思います。

「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