diff --git a/lib/ain-ocean/src/indexer/oracle.rs b/lib/ain-ocean/src/indexer/oracle.rs index 351af57461..15a9ee920a 100644 --- a/lib/ain-ocean/src/indexer/oracle.rs +++ b/lib/ain-ocean/src/indexer/oracle.rs @@ -385,16 +385,20 @@ fn index_set_oracle_data( token.clone(), currency.clone(), ); - let prev_price = price_repo - .by_id - .list(Some(id.clone()), SortOrder::Descending)? - .find(|item| match item { - Ok(((_, _, t, c), _)) => t == &token && c == ¤cy, - _ => true, - }) - .transpose()?; - if let Some((k, _)) = prev_price { - price_repo.by_id.delete(&k)? + // NOTE(canonbrother): rocksdb sort by key by default + // temp solution: clean up extra data to allow limit by `token-currency` but sort by `count-height-token-currency` + { + let prev_price = price_repo + .by_id + .list(Some(id.clone()), SortOrder::Descending)? + .find(|item| match item { + Ok(((_, _, t, c), _)) => t == &token && c == ¤cy, + _ => true, + }) + .transpose()?; + if let Some((k, _)) = prev_price { + price_repo.by_id.delete(&k)? + } } price_repo.by_id.put( &id,