Boot SystemInstruction::Spawn

This commit is contained in:
Greg Fitzgerald
2019-02-14 12:18:36 -07:00
parent e1e84d4465
commit 4e4a1643c4
7 changed files with 0 additions and 32 deletions

View File

@ -62,7 +62,6 @@ encodes.
Program. Program.
* `Assign` - allows the user to assign an existing account to a program. * `Assign` - allows the user to assign an existing account to a program.
* `Move` - moves tokens between accounts. * `Move` - moves tokens between accounts.
* `Spawn` - spawns a new program from an account.
## Notes ## Notes

View File

@ -80,11 +80,6 @@ pub fn entrypoint(
keyed_accounts[from].account.tokens -= tokens; keyed_accounts[from].account.tokens -= tokens;
keyed_accounts[to].account.tokens += tokens; keyed_accounts[to].account.tokens += tokens;
} }
SystemInstruction::Spawn => {
if !keyed_accounts[from].account.executable {
Err(ProgramError::AccountNotFinalized)?;
}
}
} }
Ok(()) Ok(())
} else { } else {

View File

@ -39,9 +39,6 @@ fn load_program(bank: &Bank, from: &Keypair, loader_id: Pubkey, program: Vec<u8>
let tx = LoaderTransaction::new_finalize(&program_account, loader_id, bank.last_id(), 0); let tx = LoaderTransaction::new_finalize(&program_account, loader_id, bank.last_id(), 0);
bank.process_transaction(&tx).unwrap(); bank.process_transaction(&tx).unwrap();
let tx = SystemTransaction::new_spawn(&program_account, bank.last_id(), 0);
bank.process_transaction(&tx).unwrap();
program_account.pubkey() program_account.pubkey()
} }

View File

@ -33,10 +33,6 @@ pub enum ProgramError {
/// SystemInstruction::Assign was attempted on an account unowned by the system program /// SystemInstruction::Assign was attempted on an account unowned by the system program
AssignOfUnownedAccount, AssignOfUnownedAccount,
/// SystemInstruction::Spawn was attempted on an account that was not finalized by
/// LoaderInstruction::Finalize
AccountNotFinalized,
} }
impl std::fmt::Display for ProgramError { impl std::fmt::Display for ProgramError {

View File

@ -20,7 +20,4 @@ pub enum SystemInstruction {
/// * Transaction::keys[0] - source /// * Transaction::keys[0] - source
/// * Transaction::keys[1] - destination /// * Transaction::keys[1] - destination
Move { tokens: u64 }, Move { tokens: u64 },
/// Spawn a new program from an account
Spawn,
} }

View File

@ -107,18 +107,6 @@ impl SystemTransaction {
instructions, instructions,
) )
} }
/// Create and sign new SystemInstruction::Spawn transaction
pub fn new_spawn(from_keypair: &Keypair, last_id: Hash, fee: u64) -> Transaction {
let spawn = SystemInstruction::Spawn;
Transaction::new(
from_keypair,
&[],
system_program::id(),
&spawn,
last_id,
fee,
)
}
} }
#[cfg(test)] #[cfg(test)]

View File

@ -447,10 +447,6 @@ fn process_deploy(
WalletError::DynamicProgramError("Program finalize transaction failed".to_string()) WalletError::DynamicProgramError("Program finalize transaction failed".to_string())
})?; })?;
let mut tx = SystemTransaction::new_spawn(&program_id, last_id, 0);
send_and_confirm_tx(&rpc_client, &mut tx, &program_id)
.map_err(|_| WalletError::DynamicProgramError("Program spawn failed".to_string()))?;
Ok(json!({ Ok(json!({
"programId": format!("{}", program_id.pubkey()), "programId": format!("{}", program_id.pubkey()),
}) })