litesvm_token/
create_native_mint.rs

1use {
2    litesvm::LiteSVM,
3    solana_account::Account,
4    solana_program_option::COption,
5    solana_program_pack::Pack,
6    solana_rent::Rent,
7    spl_token_interface::{native_mint::DECIMALS, state::Mint},
8};
9
10pub fn create_native_mint(svm: &mut LiteSVM) {
11    let mut data = vec![0; Mint::LEN];
12    let mint = Mint {
13        mint_authority: COption::None,
14        supply: 0,
15        decimals: DECIMALS,
16        is_initialized: true,
17        freeze_authority: COption::None,
18    };
19    Mint::pack(mint, &mut data).unwrap();
20    let account = Account {
21        lamports: svm.get_sysvar::<Rent>().minimum_balance(data.len()),
22        data,
23        owner: spl_token_interface::ID,
24        executable: false,
25        rent_epoch: 0,
26    };
27
28    svm.set_account(spl_token_interface::native_mint::ID, account)
29        .unwrap();
30}