Something looks odd about that. In Option 1 you list “Cons: didn’t indicate who granted the role”, but the event includes a sender
parameter which is in fact who granted the role, isn’t it?
You also say “didn’t add bytes for future extension”, but as I’ve expressed in the discussion for EIP-5750 I still don’t see any compelling reasons to include bytes data
.
I’m biased but I don’t think these are strong enough reasons to break compatibility.
If the concern about the sender
parameter is that it doesn’t account for the case where the grant was made via a signature instead of via a transaction (so msg.sender
is some other account who just has a signed approval), I’d be open to repurpose the sender
parameter and extend its meaning so that it isn’t necessarily the msg.sender and is whoever allowed the role grant through whatever means. I think that was the original intended meaning for the parameter anyway.