DCIPs/assets/eip-5173/Implementation/InFR.sol

35 lines
1012 B
Solidity

// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
/*
*
* @dev Interface for the Future Rewards Token Standard.
*
* A standardized way to receive future rewards for non-fungible tokens (NFTs.)
*
*/
interface InFR is IERC165 {
event FRClaimed(address indexed account, uint256 indexed amount);
event FRDistributed(uint256 indexed tokenId, uint256 indexed soldPrice, uint256 indexed allocatedFR);
function list(uint256 tokenId, uint256 salePrice) external;
function unlist(uint256 tokenId) external;
function buy(uint256 tokenId) payable external;
function releaseFR(address payable account) external;
function retrieveFRInfo(uint256 tokenId) external returns(uint8, uint256, uint256, uint256, uint256, address[] memory);
function retrieveAllottedFR(address account) external returns(uint256);
function retrieveListInfo(uint256 tokenId) external returns(uint256, address, bool);
}