Missing event emission in MembershipERC1155::setURI
is incompliant with EIP-1155
The optional
ERC1155Metadata_URI
extension can be identified with the ERC-165 Standard Interface Detection.
This is the case in our code as could be seen in the MembershipERC1155::supportsInterface
function:
contracts/dao/tokens/MembershipERC1155.sol#L132-L140
The EIPS/eip-1155#metadata proceed to state:
If the optional
ERC1155Metadata_URI
extension is included:
The ERC-165supportsInterface
function MUST return the constant valuetrue
if0x0e89341c
is passed through theinterfaceID
argument.
Changes to the URI MUST emit theURI
event if the change can be expressed with an event (i.e. it isn’t dynamic/programmatic).
However, the MembershipERC1155::setURI
function does not emit such URI
event:
contracts/dao/tokens/MembershipERC1155.sol#L105-L109
It worth noting that ERC1155Upgradeable::_setURI
states that it doesn't emit any such event, so it's on the contract developer to emit it:
contracts/token/ERC1155/ERC1155Upgradeable.sol#L301-L302
Incompliance with EIP-1155.
EIP-1155.
Emit the URI
event.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.