Rename Claim's key field to match same field in Transaction

This commit is contained in:
Greg Fitzgerald 2018-03-02 10:47:21 -07:00
parent 3e2d6d9e8b
commit 8fe464cfa3
5 changed files with 16 additions and 21 deletions

View File

@ -48,13 +48,8 @@ impl Accountant {
entries entries
} }
pub fn deposit_signed( pub fn deposit_signed(self: &mut Self, to: PublicKey, data: u64, sig: Signature) -> Result<()> {
self: &mut Self, let event = Event::Claim { to, data, sig };
key: PublicKey,
data: u64,
sig: Signature,
) -> Result<()> {
let event = Event::Claim { key, data, sig };
if !self.historian.verify_event(&event) { if !self.historian.verify_event(&event) {
return Err(AccountingError::InvalidEvent); return Err(AccountingError::InvalidEvent);
} }
@ -62,12 +57,12 @@ impl Accountant {
return Err(AccountingError::SendError); return Err(AccountingError::SendError);
} }
if self.balances.contains_key(&key) { if self.balances.contains_key(&to) {
if let Some(x) = self.balances.get_mut(&key) { if let Some(x) = self.balances.get_mut(&to) {
*x += data; *x += data;
} }
} else { } else {
self.balances.insert(key, data); self.balances.insert(to, data);
} }
Ok(()) Ok(())

View File

@ -12,7 +12,7 @@ fn create_log(hist: &Historian<Sha256Hash>) -> Result<(), SendError<Event<Sha256
let data = Sha256Hash::default(); let data = Sha256Hash::default();
let keypair = generate_keypair(); let keypair = generate_keypair();
let event0 = Event::Claim { let event0 = Event::Claim {
key: get_pubkey(&keypair), to: get_pubkey(&keypair),
data, data,
sig: sign_serialized(&data, &keypair), sig: sign_serialized(&data, &keypair),
}; };

View File

@ -30,7 +30,7 @@ pub type Signature = GenericArray<u8, U64>;
pub enum Event<T> { pub enum Event<T> {
Tick, Tick,
Claim { Claim {
key: PublicKey, to: PublicKey,
data: T, data: T,
sig: Signature, sig: Signature,
}, },
@ -92,9 +92,9 @@ pub fn get_signature<T>(event: &Event<T>) -> Option<Signature> {
pub fn verify_event<T: Serialize>(event: &Event<T>) -> bool { pub fn verify_event<T: Serialize>(event: &Event<T>) -> bool {
use bincode::serialize; use bincode::serialize;
if let Event::Claim { key, ref data, sig } = *event { if let Event::Claim { to, ref data, sig } = *event {
let mut claim_data = serialize(&data).unwrap(); let mut claim_data = serialize(&data).unwrap();
if !verify_signature(&key, &claim_data, &sig) { if !verify_signature(&to, &claim_data, &sig) {
return false; return false;
} }
} }

View File

@ -216,7 +216,7 @@ mod tests {
let keypair = generate_keypair(); let keypair = generate_keypair();
let sig = sign_serialized(&hash(b"hello, world"), &keypair); let sig = sign_serialized(&hash(b"hello, world"), &keypair);
let event0 = Event::Claim { let event0 = Event::Claim {
key: get_pubkey(&keypair), to: get_pubkey(&keypair),
data: hash(b"goodbye cruel world"), data: hash(b"goodbye cruel world"),
sig, sig,
}; };
@ -228,10 +228,10 @@ mod tests {
#[test] #[test]
fn test_duplicate_event_signature() { fn test_duplicate_event_signature() {
let keypair = generate_keypair(); let keypair = generate_keypair();
let key = get_pubkey(&keypair); let to = get_pubkey(&keypair);
let data = &hash(b"hello, world"); let data = &hash(b"hello, world");
let sig = sign_serialized(data, &keypair); let sig = sign_serialized(data, &keypair);
let event0 = Event::Claim { key, data, sig }; let event0 = Event::Claim { to, data, sig };
let mut sigs = HashSet::new(); let mut sigs = HashSet::new();
assert!(verify_event_and_reserve_signature(&mut sigs, &event0)); assert!(verify_event_and_reserve_signature(&mut sigs, &event0));
assert!(!verify_event_and_reserve_signature(&mut sigs, &event0)); assert!(!verify_event_and_reserve_signature(&mut sigs, &event0));

View File

@ -212,13 +212,13 @@ mod tests {
// First, verify Claim events // First, verify Claim events
let keypair = generate_keypair(); let keypair = generate_keypair();
let event0 = Event::Claim { let event0 = Event::Claim {
key: get_pubkey(&keypair), to: get_pubkey(&keypair),
data: zero, data: zero,
sig: sign_serialized(&zero, &keypair), sig: sign_serialized(&zero, &keypair),
}; };
let event1 = Event::Claim { let event1 = Event::Claim {
key: get_pubkey(&keypair), to: get_pubkey(&keypair),
data: one, data: one,
sig: sign_serialized(&one, &keypair), sig: sign_serialized(&one, &keypair),
}; };
@ -239,7 +239,7 @@ mod tests {
let keypair = generate_keypair(); let keypair = generate_keypair();
let data = hash(b"hello, world"); let data = hash(b"hello, world");
let event0 = Event::Claim { let event0 = Event::Claim {
key: get_pubkey(&keypair), to: get_pubkey(&keypair),
data, data,
sig: sign_serialized(&data, &keypair), sig: sign_serialized(&data, &keypair),
}; };
@ -252,7 +252,7 @@ mod tests {
fn test_wrong_data_claim_attack() { fn test_wrong_data_claim_attack() {
let keypair = generate_keypair(); let keypair = generate_keypair();
let event0 = Event::Claim { let event0 = Event::Claim {
key: get_pubkey(&keypair), to: get_pubkey(&keypair),
data: hash(b"goodbye cruel world"), data: hash(b"goodbye cruel world"),
sig: sign_serialized(&hash(b"hello, world"), &keypair), sig: sign_serialized(&hash(b"hello, world"), &keypair),
}; };