12345678910111213141516171819202122 |
- use hand_api::prelude::*;
- use lever_api::prelude::*;
- use steel::*;
- pub fn process_pull_lever(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult {
- // Parse args.
- let args = PullLever::try_from_bytes(data)?;
- let name = bytes_to_str(&args.name);
- // Load accounts.
- let [power_info, lever_program] = accounts else {
- return Err(ProgramError::NotEnoughAccountKeys);
- };
- power_info.is_writable()?;
- let ix = switch_power(*power_info.key, &name);
- solana_program::program::invoke(&ix, &[power_info.clone(), lever_program.clone()])?;
- Ok(())
- }
|