From 2861f795f5c9acf32fba52c1004467ee86e5c202 Mon Sep 17 00:00:00 2001 From: mossid Date: Thu, 5 Apr 2018 21:30:15 +0200 Subject: [PATCH] add SimpleProofsFromMap --- merkle/simple_proof.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/merkle/simple_proof.go b/merkle/simple_proof.go index c81ed674a..7eb3a77e6 100644 --- a/merkle/simple_proof.go +++ b/merkle/simple_proof.go @@ -22,6 +22,20 @@ func SimpleProofsFromHashers(items []Hasher) (rootHash []byte, proofs []*SimpleP return } +func SimpleProofsFromMap(m map[string]Hasher) (rootHash []byte, proofs []*SimpleProof) { + sm := NewSimpleMap() + for k, v := range m { + sm.Set(k, v) + } + sm.Sort() + kvs := sm.kvs + kvsH := make([]Hasher, 0, len(kvs)) + for _, kvp := range kvs { + kvsH = append(kvsH, kvPair(kvp)) + } + return SimpleProofsFromHashers(kvsH) +} + // Verify that leafHash is a leaf hash of the simple-merkle-tree // which hashes to rootHash. func (sp *SimpleProof) Verify(index int, total int, leafHash []byte, rootHash []byte) bool {