Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions contracts/token/ERC6909/extensions/ERC6909ContentURI.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ contract ERC6909ContentURI is ERC6909, IERC6909ContentURI {
/// @dev See {IERC1155-URI}
event URI(string value, uint256 indexed id);

/**
* @dev Signals support for the Content URI extension so off-chain clients can safely rely on it.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical: Fix the compilation error by specifying overridden contracts.

The Solidity compiler requires explicit declaration of which contracts are being overridden when multiple inheritance paths define the same function. The pipeline failures confirm this is blocking compilation.

Apply this diff to fix the compilation error:

-    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
+    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC6909, IERC165) returns (bool) {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
function supportsInterface(bytes4 interfaceId) public view virtual override(ERC6909, IERC165) returns (bool) {
🧰 Tools
🪛 GitHub Actions: formal verification

[error] 25-25: Compiler error: Function needs to specify overridden contracts "ERC6909" and "IERC165" in supportsInterface. This contract likely requires 'override(ERC6909, IERC165)' or similar in the function signature.

🤖 Prompt for AI Agents
In contracts/token/ERC6909/extensions/ERC6909ContentURI.sol around line 25, the
supportsInterface declaration must explicitly list the contracts it overrides to
compile; change the signature to declare the overridden bases (e.g.
override(ERC6909, ERC165)) and keep the body delegating to
super.supportsInterface(interfaceId) as before so the function becomes a proper
override of both parents.

return interfaceId == type(IERC6909ContentURI).interfaceId || super.supportsInterface(interfaceId);
}

/// @inheritdoc IERC6909ContentURI
function contractURI() public view virtual override returns (string memory) {
return _contractURI;
Expand Down
Loading