litesvm_token/
create_native_mint.rs1use {
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}