ore_mint_api/
sdk.rs

1use steel::*;
2
3use crate::{
4    consts::{MINT_ADDRESS, TREASURY_ADDRESS},
5    instruction::*,
6    state::*,
7};
8
9pub fn mint_ore(amount: u64) -> Instruction {
10    let signer_address = TREASURY_ADDRESS;
11    let to_address =
12        spl_associated_token_account::get_associated_token_address(&signer_address, &MINT_ADDRESS);
13    let authority_address = authority_pda().0;
14    Instruction {
15        program_id: crate::ID,
16        accounts: vec![
17            AccountMeta::new(signer_address, true),
18            AccountMeta::new(authority_address, false),
19            AccountMeta::new(MINT_ADDRESS, false),
20            AccountMeta::new(to_address, false),
21            AccountMeta::new_readonly(spl_token::ID, false),
22        ],
23        data: MintORE {
24            amount: amount.to_le_bytes(),
25        }
26        .to_bytes(),
27    }
28}