IMarketplace.sol

RWA Marketplace Contract Interface (Solidity)

// SPDX-License-Identifier: MIT
pragma solidity =0.8.17;

interface IMarketplace {
    event TreasuryWalletSet(
        address oldTreasuryWallet,
        address newTreasuryWallet
    );

    event FeeWalletSet(address oldFeeWallet, address newFeeWallet);

    event RewardsClaimed(address indexed receiver, uint256 reward);

    event AssetBought(
        address indexed oldOwner,
        address indexed newOwner,
        uint256 id
    );

    event InitialFeeSet(uint256 oldFee, uint256 newFee);

    event BuyingFeeSet(uint256 oldFee, uint256 newFee);

    event AssetSettled(address indexed owner, uint256 assetId);

    event AssetRelisted(uint256 assetId, uint256 salePrice);

    error UnsupportedInterface();

    function createAsset(
        address owner,
        uint256 mainId,
        uint256 price,
        uint256 apr,
        uint256 dueDate
    ) external;

    function batchCreateAsset(
        address[] calldata owners,
        uint256[] calldata mainIds,
        uint256[] calldata prices,
        uint256[] calldata aprs,
        uint256[] calldata dueDates
    ) external;

    function settleAsset(uint256 assetId) external;

    function buy(uint256 assetId) external;

    function batchBuy(uint256[] calldata assetIds) external;

    function relist(uint256 assetId, uint256 salePrice) external;

    function claimReward(uint256 assetId) external;
    
    function setInitialFee(uint256 initialFee_) external;

    function setBuyingFee(uint256 buyingFee_) external;

    function setTreasuryWallet(address newTreasuryWallet) external;

    function setFeeWallet(address newFeeWallet) external;

    function counterOffer(
        address owner,
        address offeror,
        uint256 offerPrice,
        uint256 assetId,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function getAssetCollection() external view returns (address);

    function getStableToken() external view returns (address);

    function getTreasuryWallet() external view returns (address);

    function getFeeWallet() external view returns (address);

    function nonces(address owner) external view returns (uint256);

    // solhint-disable-next-line func-name-mixedcase
    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function getInitialFee() external view returns (uint256);

    function getBuyingFee() external view returns (uint256);
}

Last updated