ERC4906 is an extension of ERC721 that signals when metadata updates are available for NFTs, allowing for better compatibility with platforms that track these updates. However, currently contract SablierFlow
(mostly SablierFlowBase
as it's interface (ISablierFlowBase
) extendeds IERC4909
) doesn't properly support this standart as contract doens't have correct supportsInterface()
function. EIP4909
@@ -5,6 +5,7 @@ import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import { IERC721Metadata } from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
+import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import { UD21x18 } from "@prb/math/src/UD21x18.sol";
import { UD60x18 } from "@prb/math/src/UD60x18.sol";
@@ -107,6 +108,10 @@ abstract contract SablierFlowBase is
CONSTANT FUNCTIONS
//////////////////////////////////////////////////////////////////////////*/
+ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {
+ return interfaceId == bytes4(0x49064906) || super.supportsInterface(interfaceId);
+ }
+
/// @inheritdoc ISablierFlowBase
function getBalance(uint256 streamId) external view override notNull(streamId) returns (uint128 balance) {
balance = _streams[streamId].balance;