Skip to content

Commit

Permalink
fix sat ranges
Browse files Browse the repository at this point in the history
fix

fix

Revert "fix"

This reverts commit 9b1226d727961b2ffef9a7c61686fdc5535ce6f5.

Revert "fix"

This reverts commit 2b07a599b8455e4b774c15c64e34107005c34d79.
  • Loading branch information
alfie authored and sloth committed Sep 13, 2024
1 parent e25ddb8 commit 6dd8ede
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 13 deletions.
6 changes: 3 additions & 3 deletions src/index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1576,7 +1576,7 @@ impl Index {
let sat_ranges = utxo_entry.value().parse(self).sat_ranges();

let mut offset = 0;
for chunk in sat_ranges.chunks_exact(11) {
for chunk in sat_ranges.chunks_exact(14) {
let (start, end) = SatRange::load(chunk.try_into().unwrap());
if start <= sat && sat < end {
return Ok(Some(SatPoint {
Expand Down Expand Up @@ -1616,7 +1616,7 @@ impl Index {
let sat_ranges = utxo_entry.value().parse(self).sat_ranges();

let mut offset = 0;
for sat_range in sat_ranges.chunks_exact(11) {
for sat_range in sat_ranges.chunks_exact(14) {
let (start, end) = SatRange::load(sat_range.try_into().unwrap());

if end > range_start && start < range_end {
Expand Down Expand Up @@ -1661,7 +1661,7 @@ impl Index {
.value()
.parse(self)
.sat_ranges()
.chunks_exact(11)
.chunks_exact(14)
.map(|chunk| SatRange::load(chunk.try_into().unwrap()))
.collect::<Vec<(u64, u64)>>()
}),
Expand Down
10 changes: 5 additions & 5 deletions src/index/entry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -451,15 +451,15 @@ impl Entry for SatPoint {
pub(super) type SatRange = (u64, u64);

impl Entry for SatRange {
type Value = [u8; 11];
type Value = [u8; 14];

fn load([b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10]: Self::Value) -> Self {
fn load([b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13]: Self::Value) -> Self {
let raw_base = u64::from_le_bytes([b0, b1, b2, b3, b4, b5, b6, 0]);

// 55 bit base
let base = raw_base & ((1 << 55) - 1);

let raw_delta = u64::from_le_bytes([b6, b7, b8, b9, b10, 0, 0, 0]);
let raw_delta = u64::from_le_bytes([b6, b7, b8, b9, b10, b11, b12, b13]);

// 33 bit delta
let delta = raw_delta >> 7;
Expand All @@ -471,7 +471,7 @@ impl Entry for SatRange {
let base = self.0;
let delta = self.1 - self.0;
let n = u128::from(base) | u128::from(delta) << 55;
n.to_le_bytes()[0..11].try_into().unwrap()
n.to_le_bytes()[0..14].try_into().unwrap()
}
}

Expand All @@ -495,7 +495,7 @@ mod tests {

#[test]
fn test_sat_range_load_store() {
let sat_range = (10508022500000000 as u64, 10508022500000000 + 25 * 100_000_000 as u64) as SatRange;
let sat_range = (50 * 100_000_000 as u64, 105_000_000 * 100_000_000 as u64) as SatRange;
let stored_bytes = sat_range.store();
let loaded_sat_range = SatRange::load(stored_bytes);
assert_eq!(sat_range, loaded_sat_range);
Expand Down
2 changes: 1 addition & 1 deletion src/index/updater.rs
Original file line number Diff line number Diff line change
Expand Up @@ -607,7 +607,7 @@ impl<'index> Updater<'index> {
input_sat_ranges = VecDeque::new();

for input_utxo_entry in &input_utxo_entries {
for chunk in input_utxo_entry.sat_ranges().chunks_exact(11) {
for chunk in input_utxo_entry.sat_ranges().chunks_exact(14) {
input_sat_ranges.push_back(SatRange::load(chunk.try_into().unwrap()));
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/index/utxo_entry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ impl UtxoEntry {
offset += varint_len;

let num_sat_ranges: usize = num_sat_ranges.try_into().unwrap();
let sat_ranges_len = num_sat_ranges * 11;
let sat_ranges_len = num_sat_ranges * 14;
sats = Sats::Ranges(&self.bytes[offset..offset + sat_ranges_len]);
offset += sat_ranges_len;
} else {
Expand Down Expand Up @@ -130,7 +130,7 @@ impl<'a> ParsedUtxoEntry<'a> {
Sats::Value(value) => value,
Sats::Ranges(ranges) => {
let mut value = 0;
for chunk in ranges.chunks_exact(11) {
for chunk in ranges.chunks_exact(14) {
let range = SatRange::load(chunk.try_into().unwrap());
value += range.1 - range.0;
}
Expand Down Expand Up @@ -212,8 +212,8 @@ impl UtxoEntryBuf {

pub fn push_sat_ranges(&mut self, sat_ranges: &[u8], index: &Index) {
assert!(index.index_sats);
let num_sat_ranges = sat_ranges.len() / 11;
assert!(num_sat_ranges * 11 == sat_ranges.len());
let num_sat_ranges = sat_ranges.len() / 14;
assert!(num_sat_ranges * 14 == sat_ranges.len());
varint::encode_to_vec(num_sat_ranges.try_into().unwrap(), &mut self.vec);
self.vec.extend(sat_ranges);

Expand Down

0 comments on commit 6dd8ede

Please sign in to comment.