use crate::pubkey::Pubkey; #[derive(Serialize, Deserialize, Debug, Clone)] pub enum SystemInstruction { /// Create a new account /// * Transaction::keys[0] - source /// * Transaction::keys[1] - new account key /// * tokens - number of tokens to transfer to the new account /// * space - memory to allocate if greater then zero /// * program_id - the program id of the new account CreateAccount { tokens: u64, space: u64, program_id: Pubkey, }, /// Assign account to a program /// * Transaction::keys[0] - account to assign Assign { program_id: Pubkey }, /// Move tokens /// * Transaction::keys[0] - source /// * Transaction::keys[1] - destination Move { tokens: u64 }, /// Spawn a new program from an account Spawn, }