use nssa_core::program::{AccountPostState, ProgramInput, read_nssa_inputs, write_nssa_outputs}; type Instruction = u128; fn main() { let ( ProgramInput { pre_states, instruction: balance_to_burn, }, instruction_words, ) = read_nssa_inputs::(); let [pre] = match pre_states.try_into() { Ok(array) => array, Err(_) => return, }; let account_pre = &pre.account; let mut account_post = account_pre.clone(); account_post.balance -= balance_to_burn; write_nssa_outputs( instruction_words, vec![pre], vec![AccountPostState::new(account_post)], ); }