litesvm-token 0.8.1

Helpers for working with spl-token and LiteSVM
Documentation
use {
    litesvm::LiteSVM,
    solana_account::Account,
    solana_program_option::COption,
    solana_program_pack::Pack,
    solana_rent::Rent,
    spl_token_interface::{native_mint::DECIMALS, state::Mint},
};

pub fn create_native_mint(svm: &mut LiteSVM) {
    let mut data = vec![0; Mint::LEN];
    let mint = Mint {
        mint_authority: COption::None,
        supply: 0,
        decimals: DECIMALS,
        is_initialized: true,
        freeze_authority: COption::None,
    };
    Mint::pack(mint, &mut data).unwrap();
    let account = Account {
        lamports: svm.get_sysvar::<Rent>().minimum_balance(data.len()),
        data,
        owner: spl_token_interface::ID,
        executable: false,
        rent_epoch: 0,
    };

    svm.set_account(spl_token_interface::native_mint::ID, account)
        .unwrap();
}