IAsset.sol
RWA Marketplace Asset Contract Interface (Solidity)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
import "dual-layer-token/contracts/DLT/interface/IDLT.sol";
interface IAsset is IDLT {
struct AssetInfo {
address owner;
uint256 price;
uint256 salePrice;
uint256 rewardApr;
uint256 dueDate;
uint256 lastClaimDate;
}
event AssetBaseURISet(string oldBaseURI, string newBaseURI);
event AssetCreated(
address indexed creator,
address indexed owner,
uint256 indexed mainId
);
error UnsupportedInterface();
function settleAsset(uint256 mainId) external returns (uint256);
function createAsset(
address owner,
uint256 mainId,
uint256 price,
uint256 dueDate,
uint256 apr
) external;
function relist(uint256 mainId, uint256 salePrice) external;
function setBaseURI(string calldata newBaseURI) external;
function updateClaim(uint256 mainId) external returns (uint256 reward);
function getRemainingReward(
uint256 mainId
) external view returns (uint256 reward);
function getAvailableReward(
uint256 mainId
) external view returns (uint256 reward);
function getAssetInfo(
uint256 mainId
) external view returns (AssetInfo calldata);
function tokenURI(uint256 mainId) external view returns (string memory);
}
Last modified 3mo ago