From dc5ca45e0f14094fb0a3fa7b1d23ef21769410a2 Mon Sep 17 00:00:00 2001
From: librelois <elois@ifee.fr>
Date: Fri, 23 Mar 2018 22:43:57 +0100
Subject: [PATCH] [fix] #46 add hash method for TextDocuments

---
 documents/blockchain/v10/documents/mod.rs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/documents/blockchain/v10/documents/mod.rs b/documents/blockchain/v10/documents/mod.rs
index 4c0d6f38..d2eb531b 100644
--- a/documents/blockchain/v10/documents/mod.rs
+++ b/documents/blockchain/v10/documents/mod.rs
@@ -15,6 +15,10 @@
 
 //! Provide wrappers around Duniter blockchain documents for protocol version 10.
 
+extern crate crypto;
+
+use self::crypto::digest::Digest;
+
 use duniter_crypto::keys::{Signature, ed25519};
 use regex::Regex;
 use blockchain::{Document, DocumentBuilder, DocumentParser};
@@ -72,6 +76,12 @@ pub trait TextDocument: Document<PublicKey = ed25519::PublicKey, CurrencyType =
     /// Return document as text.
     fn as_text(&self) -> &str;
 
+    /// Return sha256 hash of text document
+    fn hash<H: Digest>(&self, digest: &mut H) -> String {
+        digest.input_str(self.as_text());
+        digest.result_str()
+    }
+
     /// Return document as text with leading signatures.
     fn as_text_with_signatures(&self) -> String {
         let mut text = self.as_text().to_string();
-- 
GitLab