H7WRJQNUNHHRDIN7AF6F4AXM2T3UXGG5HWNQE7PTPUQOE5MGGWMQC
G2WWGRN2DSO7GGNMKYOGGMDYG42OQQPI76J45RFH27FMBOXUQL2AC
MKDWLE4VR5MFRUNUKCWACK7OHCVHRPZLSW7TWXFJ65CYRZ7QD7FAC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
RUBBHYZ7MCLKJIHZ3EWEC3JR3FSKOU4T2NH7KRBG7ECAU4JF3LUAC
DDEUZMXQRYVBGTJWKZY6W4UFSDCLB6JV7VX32AOTY3ZPD7OS6P6QC
VGBH3ED6NZPQFNXHS4R3J2QIPN5WP4SUMCYQLBER3CV3AGCVHJJQC
FAOGX7G362OSLMKTQLQ3S3XMGKACNRAIV2VRURS5QJRHDF577BHQC
EUZFFJSOWV4PXDFFPDAFBHFUUMOFEU6ST7JH57YYRRR2SEOXLN6QC
5SLOJYHGPMZVCOE3IS7ICNMJJYX3RBT6CDG5MAV6T4CJIOW7YZ6QC
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC
HWH4WWN3XZ4GWP225GVTW4IYZIEFMQLKZZOMMEGZVSRGWYUE6MMAC
NEJOYVJB4VXJJPFBWD2YK7PK6KKHQGRHIJHLEJ53HLQ3ZQRE5EPQC
RP7YRM5QOINW7FB5BGNZEXVQN7TXB7LLLHXZPPAI6DGFGRP7JPFQC
UC5C5REV3W3KPY45FFZWSZYLP7BCGK54Z5N74RSF26ZTC3HAC2QQC
GUL4M5FIE7JYXJHR7MCTQS3543HIQXGPLBWZKASBAWWEA4SZ75CAC
KUUVOJUPIC3VHT5XNM6CKYAU5Z2JUGKDFDCSP573VG5QWD3TJJFQC
let email = signature.email().unwrap().to_string();
let identity = if email.is_empty() {
None
} else {
all_identities
.iter()
.find(|i| i.config.author.email == email)
};
if let Some(identity) = identity {
author.insert("key".to_string(), identity.public_key.key.clone());
};
author.insert("email".to_string(), email);
.save_change(&mut change, |_, _| Ok::<_, anyhow::Error>(()))
.save_change(&mut change, |change, hash| {
if let Some(identity) = identity {
let secret = identity.decrypt().unwrap().0;
change.unhashed = Some(serde_json::json!({
"signature": secret.sign_raw(&hash.to_bytes()).unwrap(),
}));
}
Ok::<_, anyhow::Error>(())
})