mainchain := make(map[uint64]*bc.Hash)
for i, rawHash := range mainchainList.Hashs {
- h := &bc.Hash{}
- if err := h.UnmarshalJSON(rawHash.Key); err != nil {
- return nil, errors.Wrap(err, "unmarshaling Mainchain hash")
- }
- mainchain[uint64(i)] = h
+ var b32 [32]byte
+ copy(b32[:], rawHash.Key)
+ hash := bc.NewHash(b32)
+ mainchain[uint64(i+1)] = &hash
}
return mainchain, nil
func saveMainchain(db dbm.DB, mainchain map[uint64]*bc.Hash, hash *bc.Hash) error {
var mainchainList storage.Mainchain
- for i := 0; i < len(mainchain); i++ {
+ for i := 1; i <= len(mainchain); i++ {
rawHash := &storage.Mainchain_Hash{Key: mainchain[uint64(i)].Bytes()}
mainchainList.Hashs = append(mainchainList.Hashs, rawHash)
}