interface IToken {
    event UpdatedTokenInformation(
		string newName,
		string newSymbol,
		uint8 newDecimals,
		string newVersion,
		address newOnchainID,
		uint256 _maxTokenSupply
	);

    // getters
    function decimals() external view returns (uint8);
    function name() external view returns (string memory);
    function onchainID() external view returns (address);
    function symbol() external view returns (string memory);
    function version() external view returns (string memory);

    // setters
    function setTokenInformation(
		string calldata _name,
		string calldata _symbol,
		uint8 _decimals,
		string calldata _version,
		address _onchainID,
		uint256 _maxTokenSupply
	) external;
}
//interface
function decimals() external view returns (uint8);

// getters