Skip to content

Commit f199852

Browse files
authored
Merge pull request #885 from Chia-Network/add_merkle_blob_get_key_index
add `MerkleBlob.get_key_index()`
2 parents 0e93318 + e1d90ba commit f199852

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

crates/chia-datalayer/src/merkle.rs

+12
Original file line numberDiff line numberDiff line change
@@ -1326,6 +1326,13 @@ impl MerkleBlob {
13261326

13271327
Ok(map)
13281328
}
1329+
1330+
pub fn get_key_index(&self, key: KvId) -> Result<TreeIndex, Error> {
1331+
self.key_to_index
1332+
.get(&key)
1333+
.copied()
1334+
.ok_or(Error::UnknownKey(key))
1335+
}
13291336
}
13301337

13311338
impl PartialEq for MerkleBlob {
@@ -1529,6 +1536,11 @@ impl MerkleBlob {
15291536

15301537
Ok(dict.into())
15311538
}
1539+
1540+
#[pyo3(name = "get_key_index")]
1541+
pub fn py_get_key_index(&self, key: KvId) -> PyResult<TreeIndex> {
1542+
Ok(self.get_key_index(key)?)
1543+
}
15321544
}
15331545

15341546
fn try_get_block(blob: &[u8], index: TreeIndex) -> Result<Block, Error> {

wheel/python/chia_rs/datalayer.pyi

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ class MerkleBlob:
8989
def batch_insert(self, keys_values: list[tuple[int64, int64]], hashes: list[bytes32]): ...
9090
def get_hash_at_index(self, index: uint32): ...
9191
def get_keys_values(self) -> dict[int64, int64]: ...
92+
def get_key_index(self, key: int64) -> uint32: ...
9293

9394
def __len__(self) -> int: ...
9495

0 commit comments

Comments
 (0)