// SPDX-License-Identifier: MIT pragma solidity ^0.8.28; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import { TokenInfo } from "../../core/Structs.sol"; /** * @title CrossChainLayerERC20 * @dev A contract for all Cross-Chain Layer ERC20 tokens. */ interface ICrossChainLayerERC20 is IERC20 { /** * @dev Function to mint tokens * @param to Address to mint tokens to * @param amount Amount of tokens to mint */ function mint(address to, uint256 amount) external; /** * @dev Function to burn tokens * @param from Address to mint tokens to * @param amount Amount of tokens to burn */ function burn(address from, uint256 amount) external; /** * @dev Returns token decimals. * @return uint8 Token decimals */ function decimals() external view returns (uint8); /** * @dev Returns token info. */ function getInfo() external view returns (TokenInfo memory); }