// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import "./IRWAToken.sol";

/**
 * @title IRWAToken165
 * @notice EIP-165 aggregate for RWAToken integrations.
 */
interface IRWAToken165 is IERC165, IERC20, IERC20Metadata, IRWAToken {
    function eip20Version() external pure returns (string memory);
    function eip712DomainSeparator() external view returns (bytes32);
    function hashIndexValueAttestation(
        string calldata ticker,
        uint256 newValue,
        uint256 nonce,
        uint256 deadline
    ) external view returns (bytes32);
}
