// FetchAllUnconfirmedDirBlockInfo gets all of the dirBlockInfos that have BTC Anchor confirmation func (db *LevelDb) FetchAllUnconfirmedDirBlockInfo() (dirBlockInfoMap map[string]*common.DirBlockInfo, err error) { db.dbLock.Lock() defer db.dbLock.Unlock() var fromkey []byte = []byte{byte(TBL_DB_INFO)} // Table Name (1 bytes) var tokey []byte = []byte{byte(TBL_DB_INFO + 1)} // Table Name (1 bytes) dirBlockInfoMap = make(map[string]*common.DirBlockInfo) iter := db.lDb.NewIterator(&util.Range{Start: fromkey, Limit: tokey}, db.ro) for iter.Next() { dBInfo := new(common.DirBlockInfo) // The last byte stores the confirmation flag if iter.Value()[len(iter.Value())-1] == 0 { _, err := dBInfo.UnmarshalBinaryData(iter.Value()) if err != nil { return dirBlockInfoMap, err } dirBlockInfoMap[dBInfo.DBMerkleRoot.String()] = dBInfo } } iter.Release() err = iter.Error() return dirBlockInfoMap, err }