diff --git a/crates/transaction-pool/src/blobstore/disk.rs b/crates/transaction-pool/src/blobstore/disk.rs index 67c36a6599..097b58d41c 100644 --- a/crates/transaction-pool/src/blobstore/disk.rs +++ b/crates/transaction-pool/src/blobstore/disk.rs @@ -133,17 +133,9 @@ impl BlobStore for DiskFileBlobStore { ) -> Result>, BlobStoreError> { let mut result = vec![None; versioned_hashes.len()]; for (_tx_hash, blob_sidecar) in self.inner.blob_cache.lock().iter() { - for (i, blob_versioned_hash) in blob_sidecar.versioned_hashes().enumerate() { - for (j, target_versioned_hash) in versioned_hashes.iter().enumerate() { - if blob_versioned_hash == *target_versioned_hash { - result[j].get_or_insert_with(|| BlobAndProofV1 { - blob: Box::new(blob_sidecar.blobs[i]), - proof: blob_sidecar.proofs[i], - }); - } - } + for (hash_idx, match_result) in blob_sidecar.match_versioned_hashes(versioned_hashes) { + result[hash_idx] = Some(match_result); } - // Return early if all blobs are found. if result.iter().all(|blob| blob.is_some()) { break; diff --git a/crates/transaction-pool/src/blobstore/mem.rs b/crates/transaction-pool/src/blobstore/mem.rs index 0ab9c0d7af..815b968409 100644 --- a/crates/transaction-pool/src/blobstore/mem.rs +++ b/crates/transaction-pool/src/blobstore/mem.rs @@ -103,15 +103,8 @@ impl BlobStore for InMemoryBlobStore { ) -> Result>, BlobStoreError> { let mut result = vec![None; versioned_hashes.len()]; for (_tx_hash, blob_sidecar) in self.inner.store.read().iter() { - for (i, blob_versioned_hash) in blob_sidecar.versioned_hashes().enumerate() { - for (j, target_versioned_hash) in versioned_hashes.iter().enumerate() { - if blob_versioned_hash == *target_versioned_hash { - result[j].get_or_insert_with(|| BlobAndProofV1 { - blob: Box::new(blob_sidecar.blobs[i]), - proof: blob_sidecar.proofs[i], - }); - } - } + for (hash_idx, match_result) in blob_sidecar.match_versioned_hashes(versioned_hashes) { + result[hash_idx] = Some(match_result); } // Return early if all blobs are found.