Allow passing buffer by keypair to cli program deploy (#15010)
This commit is contained in:
@ -585,12 +585,13 @@ fn process_program_deploy(
|
|||||||
allow_excessive_balance: bool,
|
allow_excessive_balance: bool,
|
||||||
) -> ProcessResult {
|
) -> ProcessResult {
|
||||||
let (words, mnemonic, buffer_keypair) = create_ephemeral_keypair()?;
|
let (words, mnemonic, buffer_keypair) = create_ephemeral_keypair()?;
|
||||||
let (buffer_signer, buffer_pubkey) = if let Some(i) = buffer_signer_index {
|
let (buffer_provided, buffer_signer, buffer_pubkey) = if let Some(i) = buffer_signer_index {
|
||||||
(Some(config.signers[i]), config.signers[i].pubkey())
|
(true, Some(config.signers[i]), config.signers[i].pubkey())
|
||||||
} else if let Some(pubkey) = buffer_pubkey {
|
} else if let Some(pubkey) = buffer_pubkey {
|
||||||
(None, pubkey)
|
(true, None, pubkey)
|
||||||
} else {
|
} else {
|
||||||
(
|
(
|
||||||
|
false,
|
||||||
Some(&buffer_keypair as &dyn Signer),
|
Some(&buffer_keypair as &dyn Signer),
|
||||||
buffer_keypair.pubkey(),
|
buffer_keypair.pubkey(),
|
||||||
)
|
)
|
||||||
@ -658,7 +659,7 @@ fn process_program_deploy(
|
|||||||
true
|
true
|
||||||
};
|
};
|
||||||
|
|
||||||
let (program_data, buffer_data_len) = if buffer_signer.is_none() {
|
let (program_data, buffer_data_len) = if buffer_provided {
|
||||||
// Check supplied buffer account
|
// Check supplied buffer account
|
||||||
if let Some(account) = rpc_client
|
if let Some(account) = rpc_client
|
||||||
.get_account_with_commitment(&buffer_pubkey, config.commitment)?
|
.get_account_with_commitment(&buffer_pubkey, config.commitment)?
|
||||||
@ -673,7 +674,7 @@ fn process_program_deploy(
|
|||||||
}
|
}
|
||||||
(vec![], account.data.len())
|
(vec![], account.data.len())
|
||||||
} else {
|
} else {
|
||||||
return Err("Specified buffer not found, was it already consumed?".into());
|
return Err("Buffer account not found, was it already consumed?".into());
|
||||||
}
|
}
|
||||||
} else if let Some(program_location) = program_location {
|
} else if let Some(program_location) = program_location {
|
||||||
let program_data = read_and_verify_elf(&program_location)?;
|
let program_data = read_and_verify_elf(&program_location)?;
|
||||||
|
Reference in New Issue
Block a user