Originally from this comment but now a completely different proposal: EIP4907: ERC-721 User And Expires Extension - #17 by TimDaub
Why use the zero address as the owner for EntitlementChanged
? Seems like youād have two possible representations for the owner (the zero address, and their own address). Do they mean different things?
What are the fields of that event supposed to represent (specifically contract
)?
How is the reason
argument supposed to be used? If itās important, should it be logged? If it isnāt, should it be removed from the interface?
Why use the zero address as the owner for EntitlementChanged? Seems like youād have two possible representations for the owner (the zero address, and their own address). Do they mean different things?
The default value of address
is address(0)
. In order to save gas, setting address(0)
to mean the current user means that contracts can just return the userās address if the entitlement is set to address(0)
. This ends up being a not insignificant saving over a large user base.
contract
represents the contract address of the EIP-721 token.
That was a suggestion by @xinbenlv. I would be happy to remove it, and I do think that it should be logged if kept.
Iām not sure I follow, but that isnāt particularly important. This is good content for the rationale section, as Iām sure you know
One example of the use of extraParams is that in GovernorBravo
function castVoteWithReason(uint proposalId, uint8 support, string calldata reason)
When I am designing the EIP-5453 (Endorsemen) it turns out to me having the ability to give extraParams makes future extension more available.
Obviously this is my author peer-review comment, please feel free to make your own authorship judgement, Pandapip1
Why couldnāt an EIP just extend this EIP and have an additional implementation that has an additional function signature?