Missing event emission in MembershipERC1155::setURI is incompliant with EIP-1155
The optional
ERC1155Metadata_URIextension 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_URIextension is included:
The ERC-165supportsInterfacefunction MUST return the constant valuetrueif0x0e89341cis passed through theinterfaceIDargument.
Changes to the URI MUST emit theURIevent 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.