Cleanup
Now that Transfer is out of the enum, we don't need to pattern match to access its fields.
This commit is contained in:
21
src/event.rs
21
src/event.rs
@@ -107,25 +107,20 @@ pub fn verify_signature(peer_public_key_bytes: &[u8], msg_bytes: &[u8], sig_byte
|
|||||||
pub fn get_signature<T>(event: &Event<T>) -> Option<Signature> {
|
pub fn get_signature<T>(event: &Event<T>) -> Option<Signature> {
|
||||||
match *event {
|
match *event {
|
||||||
Event::Tick => None,
|
Event::Tick => None,
|
||||||
Event::Transaction(Transfer { sig, .. }) => Some(sig),
|
Event::Transaction(ref tr) => Some(tr.sig),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn verify_event<T: Serialize>(event: &Event<T>) -> bool {
|
pub fn verify_event<T: Serialize>(event: &Event<T>) -> bool {
|
||||||
if let Event::Transaction(Transfer {
|
match *event {
|
||||||
from,
|
Event::Tick => true,
|
||||||
to,
|
Event::Transaction(ref tr) => verify_transfer(tr),
|
||||||
ref data,
|
|
||||||
last_id,
|
|
||||||
sig,
|
|
||||||
}) = *event
|
|
||||||
{
|
|
||||||
let sign_data = serialize(&(&from, &to, &data, &last_id)).unwrap();
|
|
||||||
if !verify_signature(&from, &sign_data, &sig) {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
true
|
|
||||||
|
pub fn verify_transfer<T: Serialize>(tr: &Transfer<T>) -> bool {
|
||||||
|
let sign_data = serialize(&(&tr.from, &tr.to, &tr.data, &tr.last_id)).unwrap();
|
||||||
|
verify_signature(&tr.from, &sign_data, &tr.sig)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
Reference in New Issue
Block a user