Last active
August 15, 2023 16:10
-
-
Save elkaholic6/c77f7d7b2c817a0db495709c453ba0ef to your computer and use it in GitHub Desktop.
ERC-2981 Specifications
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity ^0.6.0; | |
import "./IERC165.sol"; | |
/// | |
/// @dev Interface for the NFT Royalty Standard | |
/// | |
interface IERC2981 is IERC165 { | |
/// ERC165 bytes to add to interface array - set in parent contract | |
/// implementing this standard | |
/// | |
/// bytes4(keccak256("royaltyInfo(uint256,uint256)")) == 0x2a55205a | |
/// bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a; | |
/// _registerInterface(_INTERFACE_ID_ERC2981); | |
/// @notice Called with the sale price to determine how much royalty | |
// is owed and to whom. | |
/// @param _tokenId - the NFT asset queried for royalty information | |
/// @param _salePrice - the sale price of the NFT asset specified by _tokenId | |
/// @return receiver - address of who should be sent the royalty payment | |
/// @return royaltyAmount - the royalty payment amount for _salePrice | |
function royaltyInfo( | |
uint256 _tokenId, | |
uint256 _salePrice | |
) external view returns ( | |
address receiver, | |
uint256 royaltyAmount | |
); | |
} | |
interface IERC165 { | |
/// @notice Query if a contract implements an interface | |
/// @param interfaceID The interface identifier, as specified in ERC-165 | |
/// @dev Interface identification is specified in ERC-165. This function | |
/// uses less than 30,000 gas. | |
/// @return `true` if the contract implements `interfaceID` and | |
/// `interfaceID` is not 0xffffffff, `false` otherwise | |
function supportsInterface(bytes4 interfaceID) external view returns (bool); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment