import eth/rlp/types, ranges/bitranges, trie_defs, binary, binaries, db, trie_utils type DB = TrieDatabaseRef InvalidKeyError* = object of Exception template query(db: DB, nodeHash: TrieNodeKey): BytesRange = db.get(nodeHash.toOpenArray).toRange proc checkIfBranchExistImpl(db: DB; nodeHash: TrieNodeKey; keyPrefix: TrieBitRange): bool = if nodeHash == zeroHash: return false let node = parseNode(db.query(nodeHash)) case node.kind: of LEAF_TYPE: if keyPrefix.len != 0: return false return true of KV_TYPE: if keyPrefix.len == 0: return true if keyPrefix.len < node.keyPath.len: if keyPrefix == node.keyPath[0..