From ceaba2725096c42f55ab1a652847641d8bb5c151 Mon Sep 17 00:00:00 2001
From: Mostafa <mostafa.sedaghat@gmail.com>
Date: Thu, 17 May 2018 16:18:50 +0800
Subject: [PATCH] Fix a mismatch when generating address from bytes

Signed-off-by: Mostafa <mostafa.sedaghat@gmail.com>
---
 keys/mock/key.go | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/keys/mock/key.go b/keys/mock/key.go
index 313a1183..8000bf28 100644
--- a/keys/mock/key.go
+++ b/keys/mock/key.go
@@ -11,7 +11,6 @@ import (
 	"github.com/tendermint/go-crypto"
 	"github.com/wayn3h0/go-uuid"
 	"golang.org/x/crypto/ed25519"
-	"golang.org/x/crypto/ripemd160"
 )
 
 // Mock ed25510 key for mock keys client
@@ -38,11 +37,14 @@ func newKey(name string) (*Key, error) {
 	copy(key.PrivateKey[:], privateKey[:])
 	copy(key.PublicKey[:], publicKey[:])
 
-	// prepend 0x01 for ed25519 public key
-	typedPublicKeyBytes := append([]byte{0x01}, key.PublicKey...)
-	hasher := ripemd160.New()
-	hasher.Write(typedPublicKeyBytes)
-	key.Address, err = acm.AddressFromBytes(hasher.Sum(nil))
+	var ed25519 crypto.PubKeyEd25519
+	copy(ed25519[:], publicKey[:])
+
+	key.Address, err = acm.AddressFromBytes(ed25519.Address())
+	if err != nil {
+		return nil, err
+	}
+
 	if err != nil {
 		return nil, err
 	}
-- 
GitLab