diff --git a/Cargo.lock b/Cargo.lock
index 9e01baa7d39c4fae1d0c3668e897d1bd23a56296..b4c3abfe1efae86b3aa1be1060c1fed7c54b129e 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -50,7 +50,7 @@ dependencies = [
[[package]]
name = "duniter-protocol"
-version = "0.1.0"
+version = "0.2.0"
dependencies = [
"base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"base64 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/protocol/Cargo.toml b/protocol/Cargo.toml
index 8faccd1cde85fd5174e5f82610637db99d9e8cb2..09c94e70e3c00abc4f8c85bd1c5b8a0832672b39 100644
--- a/protocol/Cargo.toml
+++ b/protocol/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "duniter-protocol"
-version = "0.1.0"
+version = "0.2.0"
authors = ["nanocryk <nanocryk@duniter.org>"]
description = "Implements the Duniter Protocol"
repository = "https://git.duniter.org/nodes/rust/duniter-rs"
diff --git a/protocol/blockchain/mod.rs b/protocol/blockchain/mod.rs
index ba814282a2c29256f431b2c0104543ca674c2d3e..ae0624f12298c7b6d8a878666142022a00fc990c 100644
--- a/protocol/blockchain/mod.rs
+++ b/protocol/blockchain/mod.rs
@@ -119,12 +119,12 @@ pub trait DocumentBuilder {
/// Build a document with provided signatures.
fn build_with_signature(
- self,
+ &self,
signatures: Vec<<<Self::Document as Document>::PublicKey as PublicKey>::Signature>,
) -> Self::Document;
/// Build a document and sign it with the private key.
- fn build_and_sign(self, private_keys: Vec<Self::PrivateKey>) -> Self::Document;
+ fn build_and_sign(&self, private_keys: Vec<Self::PrivateKey>) -> Self::Document;
}
/// Trait for a document parser from a `S` source
diff --git a/protocol/blockchain/v10/documents/identity.rs b/protocol/blockchain/v10/documents/identity.rs
index 8b733759c4fd902a90f75b21b238faa000c0b236..847a65767fb39de241455f419e146ca32c7eba95 100644
--- a/protocol/blockchain/v10/documents/identity.rs
+++ b/protocol/blockchain/v10/documents/identity.rs
@@ -123,11 +123,11 @@ impl<'a> DocumentBuilder for IdentityDocumentBuilder<'a> {
type Document = IdentityDocument;
type PrivateKey = ed25519::PrivateKey;
- fn build_with_signature(self, signatures: Vec<ed25519::Signature>) -> IdentityDocument {
+ fn build_with_signature(&self, signatures: Vec<ed25519::Signature>) -> IdentityDocument {
self.build_with_text_and_sigs(self.generate_text(), signatures)
}
- fn build_and_sign(self, private_keys: Vec<ed25519::PrivateKey>) -> IdentityDocument {
+ fn build_and_sign(&self, private_keys: Vec<ed25519::PrivateKey>) -> IdentityDocument {
let (text, signatures) = self.build_signed_text(private_keys);
self.build_with_text_and_sigs(text, signatures)
}
@@ -214,27 +214,21 @@ mod tests {
"0-E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
).unwrap();
- {
- let doc = IdentityDocumentBuilder {
- currency: "duniter_unit_test_currency",
- unique_id: "tic",
- blockstamp: &block,
- issuer: &pubkey,
- }.build_with_signature(vec![sig]);
-
- assert_eq!(doc.verify_signatures(), VerificationResult::Valid());
- }
-
- {
- let doc = IdentityDocumentBuilder {
- currency: "duniter_unit_test_currency",
- unique_id: "tic",
- blockstamp: &block,
- issuer: &pubkey,
- }.build_and_sign(vec![prikey]);
-
- assert_eq!(doc.verify_signatures(), VerificationResult::Valid());
- }
+ let builder = IdentityDocumentBuilder {
+ currency: "duniter_unit_test_currency",
+ unique_id: "tic",
+ blockstamp: &block,
+ issuer: &pubkey,
+ };
+
+ assert_eq!(
+ builder.build_with_signature(vec![sig]).verify_signatures(),
+ VerificationResult::Valid()
+ );
+ assert_eq!(
+ builder.build_and_sign(vec![prikey]).verify_signatures(),
+ VerificationResult::Valid()
+ );
}
#[test]