From 7cf0d5554639e4b5765fd8f08fcc5d47766f9089 Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Sat, 3 Mar 2018 20:41:05 -0700 Subject: [PATCH] Remove optional 'from' field --- src/accountant.rs | 2 +- src/bin/client-demo.rs | 2 +- src/event.rs | 8 ++++---- src/genesis.rs | 2 +- src/log.rs | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/accountant.rs b/src/accountant.rs index ebaec39c4..0718ef63e 100644 --- a/src/accountant.rs +++ b/src/accountant.rs @@ -87,7 +87,7 @@ impl Accountant { } let event = Event::Transaction { - from: Some(from), + from, to, data, sig, diff --git a/src/bin/client-demo.rs b/src/bin/client-demo.rs index e40d83767..da44826de 100644 --- a/src/bin/client-demo.rs +++ b/src/bin/client-demo.rs @@ -45,7 +45,7 @@ fn main() { let now = Instant::now(); for &(k, s) in &sigs { let e = Event::Transaction { - from: Some(alice_pubkey), + from: alice_pubkey, to: k, data: one, sig: s, diff --git a/src/event.rs b/src/event.rs index ec9b1793e..ef57121c6 100644 --- a/src/event.rs +++ b/src/event.rs @@ -30,7 +30,7 @@ pub type Signature = GenericArray; pub enum Event { Tick, Transaction { - from: Option, + from: PublicKey, to: PublicKey, data: T, sig: Signature, @@ -40,7 +40,7 @@ pub enum Event { impl Event { pub fn new_claim(to: PublicKey, data: T, sig: Signature) -> Self { Event::Transaction { - from: Some(to), + from: to, to, data, sig, @@ -75,7 +75,7 @@ pub fn sign_transaction_data( keypair: &Ed25519KeyPair, to: &PublicKey, ) -> Signature { - let from = &Some(get_pubkey(keypair)); + let from = &get_pubkey(keypair); sign_serialized(&(from, to, data), keypair) } @@ -111,7 +111,7 @@ pub fn verify_event(event: &Event) -> bool { } = *event { let sign_data = serialize(&(&from, &to, &data)).unwrap(); - if !verify_signature(&from.unwrap_or(to), &sign_data, &sig) { + if !verify_signature(&from, &sign_data, &sig) { return false; } } diff --git a/src/genesis.rs b/src/genesis.rs index 3462c5d11..ceea9393a 100644 --- a/src/genesis.rs +++ b/src/genesis.rs @@ -22,7 +22,7 @@ impl Creator { } pub fn create_transaction(&self, keypair: &Ed25519KeyPair) -> Event { - let from = Some(get_pubkey(keypair)); + let from = get_pubkey(keypair); let to = self.pubkey; let data = self.tokens; let sig = sign_transaction_data(&data, keypair, &to); diff --git a/src/log.rs b/src/log.rs index c1a4a7ee4..8878445f2 100644 --- a/src/log.rs +++ b/src/log.rs @@ -255,7 +255,7 @@ mod tests { let pubkey1 = get_pubkey(&keypair1); let data = hash(b"hello, world"); let event0 = Event::Transaction { - from: Some(get_pubkey(&keypair0)), + from: get_pubkey(&keypair0), to: pubkey1, data, sig: sign_transaction_data(&data, &keypair0, &pubkey1), @@ -272,7 +272,7 @@ mod tests { let pubkey1 = get_pubkey(&keypair1); let data = hash(b"hello, world"); let event0 = Event::Transaction { - from: Some(get_pubkey(&keypair0)), + from: get_pubkey(&keypair0), to: pubkey1, data: hash(b"goodbye cruel world"), // <-- attack! sig: sign_transaction_data(&data, &keypair0, &pubkey1), @@ -290,7 +290,7 @@ mod tests { let pubkey1 = get_pubkey(&keypair1); let data = hash(b"hello, world"); let event0 = Event::Transaction { - from: Some(get_pubkey(&keypair0)), + from: get_pubkey(&keypair0), to: get_pubkey(&thief_keypair), // <-- attack! data: hash(b"goodbye cruel world"), sig: sign_transaction_data(&data, &keypair0, &pubkey1),