pass Pubkeys as refs, copy only where values needed (#3213)
* pass Pubkeys as refs, copy only where values needed * Pubkey is pervasive * fixup
This commit is contained in:
@@ -85,7 +85,7 @@ impl VoteSignerRpc for VoteSignerRpcImpl {
|
||||
signed_msg: Vec<u8>,
|
||||
) -> Result<Pubkey> {
|
||||
info!("register rpc request received: {:?}", id);
|
||||
meta.request_processor.register(id, &sig, &signed_msg)
|
||||
meta.request_processor.register(&id, &sig, &signed_msg)
|
||||
}
|
||||
|
||||
fn sign(
|
||||
@@ -96,7 +96,7 @@ impl VoteSignerRpc for VoteSignerRpcImpl {
|
||||
signed_msg: Vec<u8>,
|
||||
) -> Result<Signature> {
|
||||
info!("sign rpc request received: {:?}", id);
|
||||
meta.request_processor.sign(id, &sig, &signed_msg)
|
||||
meta.request_processor.sign(&id, &sig, &signed_msg)
|
||||
}
|
||||
|
||||
fn deregister(
|
||||
@@ -107,7 +107,7 @@ impl VoteSignerRpc for VoteSignerRpcImpl {
|
||||
signed_msg: Vec<u8>,
|
||||
) -> Result<()> {
|
||||
info!("deregister rpc request received: {:?}", id);
|
||||
meta.request_processor.deregister(id, &sig, &signed_msg)
|
||||
meta.request_processor.deregister(&id, &sig, &signed_msg)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,9 +120,9 @@ fn verify_signature(sig: &Signature, pubkey: &Pubkey, msg: &[u8]) -> Result<()>
|
||||
}
|
||||
|
||||
pub trait VoteSigner {
|
||||
fn register(&self, pubkey: Pubkey, sig: &Signature, signed_msg: &[u8]) -> Result<Pubkey>;
|
||||
fn sign(&self, pubkey: Pubkey, sig: &Signature, msg: &[u8]) -> Result<Signature>;
|
||||
fn deregister(&self, pubkey: Pubkey, sig: &Signature, msg: &[u8]) -> Result<()>;
|
||||
fn register(&self, pubkey: &Pubkey, sig: &Signature, signed_msg: &[u8]) -> Result<Pubkey>;
|
||||
fn sign(&self, pubkey: &Pubkey, sig: &Signature, msg: &[u8]) -> Result<Signature>;
|
||||
fn deregister(&self, pubkey: &Pubkey, sig: &Signature, msg: &[u8]) -> Result<()>;
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
@@ -131,7 +131,7 @@ pub struct LocalVoteSigner {
|
||||
}
|
||||
impl VoteSigner for LocalVoteSigner {
|
||||
/// Process JSON-RPC request items sent via JSON-RPC.
|
||||
fn register(&self, pubkey: Pubkey, sig: &Signature, msg: &[u8]) -> Result<Pubkey> {
|
||||
fn register(&self, pubkey: &Pubkey, sig: &Signature, msg: &[u8]) -> Result<Pubkey> {
|
||||
verify_signature(&sig, &pubkey, &msg)?;
|
||||
{
|
||||
if let Some(voting_keypair) = self.nodes.read().unwrap().get(&pubkey) {
|
||||
@@ -140,17 +140,17 @@ impl VoteSigner for LocalVoteSigner {
|
||||
}
|
||||
let voting_keypair = Keypair::new();
|
||||
let voting_pubkey = voting_keypair.pubkey();
|
||||
self.nodes.write().unwrap().insert(pubkey, voting_keypair);
|
||||
self.nodes.write().unwrap().insert(*pubkey, voting_keypair);
|
||||
Ok(voting_pubkey)
|
||||
}
|
||||
fn sign(&self, pubkey: Pubkey, sig: &Signature, msg: &[u8]) -> Result<Signature> {
|
||||
fn sign(&self, pubkey: &Pubkey, sig: &Signature, msg: &[u8]) -> Result<Signature> {
|
||||
verify_signature(&sig, &pubkey, &msg)?;
|
||||
match self.nodes.read().unwrap().get(&pubkey) {
|
||||
Some(voting_keypair) => Ok(voting_keypair.sign_message(&msg)),
|
||||
None => Err(Error::invalid_request()),
|
||||
}
|
||||
}
|
||||
fn deregister(&self, pubkey: Pubkey, sig: &Signature, msg: &[u8]) -> Result<()> {
|
||||
fn deregister(&self, pubkey: &Pubkey, sig: &Signature, msg: &[u8]) -> Result<()> {
|
||||
verify_signature(&sig, &pubkey, &msg)?;
|
||||
self.nodes.write().unwrap().remove(&pubkey);
|
||||
Ok(())
|
||||
|
Reference in New Issue
Block a user