Here's how to do so for an spl-token using Anchor and the UMI library. 

## Rust Anchor
To revoke the mint authority we set the mint authority as None which disables all future mintin. This action is irreversible.

``` rust
use anchor_lang::prelude::*;
use anchor_spl::token::{
    set_authority, spl_token::instruction::AuthorityType, Mint, SetAuthority, Token,
};

#[derive(Accounts)]
pub struct RevokeMintAuth<'info> {
    #[account(mut)]
    pub payer: Signer<'info>,

    #[account(mut)]
    pub mint: Account<'info, Mint>,

    pub token_program: Program<'info, Token>,
    pub system_program: Program<'info, System>,
}

  pub fn revoke_mint_auth(ctx: Context<RevokeMintAuth>) -> Result<()> {
        let cpi_program = ctx.accounts.token_program.to_account_info();
        let cpi_accounts = SetAuthority {
            account_or_mint: ctx.accounts.mint.to_account_info(),
            current_authority: ctx.accounts.payer.to_account_info(),
        };

        let cpi_ctx = CpiContext::new(cpi_program, cpi_accounts);

        set_authority(cpi_ctx, AuthorityType::MintTokens, None)?;

        Ok(())
    }
```

## CLI

```bash
spl-token authorize {token_address} mint --disable
```