System Instructions

Create Account

/// --- programs/system/src/system_processor.rs --- declare_process_instruction!(Entrypoint, DEFAULT_COMPUTE_UNITS, |invoke_context| { let transaction_context = &invoke_context.transaction_context; let instruction_context = transaction_context.get_current_instruction_context()?; let instruction_data = instruction_context.get_instruction_data(); let instruction = limited_deserialize(instruction_data)?; trace!("process_instruction: {:?}", instruction); let signers = instruction_context.get_signers(transaction_context)?; match instruction { SystemInstruction::CreateAccount { lamports, space, owner, } => { instruction_context.check_number_of_instruction_accounts(2)?; let to_address = Address::create( transaction_context.get_key_of_account_at_index( instruction_context.get_index_of_instruction_account_in_transaction(1)?, )?, None, invoke_context, )?; create_account( 0, 1, &to_address, lamports, space, &owner, &signers, invoke_context, transaction_context, instruction_context, ) } /// ... } /// ... }