Skip to content

Commit

Permalink
[indexer]: Cleanup large-object representation of genesis transaction (
Browse files Browse the repository at this point in the history
  • Loading branch information
tomxey authored Jan 29, 2025
1 parent 83d668b commit 26ca13a
Show file tree
Hide file tree
Showing 9 changed files with 15 additions and 451 deletions.
2 changes: 0 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 2 additions & 12 deletions crates/iota-graphql-rpc/src/types/transaction_block/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -418,12 +418,7 @@ impl TransactionBlock {
);
}

let pool = db.inner.get_pool();
for mut stored in transactions {
if stored.is_genesis() {
stored = stored.set_genesis_large_object_as_inner_data(&pool)?;
}

for stored in transactions {
let cursor = stored.cursor(checkpoint_viewed_at).encode_cursor();
let inner = TransactionBlockInner::try_from(stored)?;
let transaction = TransactionBlock {
Expand Down Expand Up @@ -466,12 +461,7 @@ impl Loader<DigestKey> for Db {

let transaction_digest_to_stored: BTreeMap<_, _> = transactions
.into_iter()
.map(|mut tx| {
if tx.is_genesis() {
tx = tx.set_genesis_large_object_as_inner_data(&self.inner.get_pool())?;
}
Ok((tx.transaction_digest.clone(), tx))
})
.map(|tx| Ok((tx.transaction_digest.clone(), tx)))
.collect::<Result<BTreeMap<_, _>, Error>>()?;

let mut results = HashMap::new();
Expand Down
6 changes: 0 additions & 6 deletions crates/iota-indexer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,10 @@ shared_test_runtime = []

[dev-dependencies]
# external dependencies
rand.workspace = true
serde_json.workspace = true

# internal dependencies
iota-config.workspace = true
iota-genesis-builder.workspace = true
iota-keys.workspace = true
iota-move-build.workspace = true
iota-swarm-config.workspace = true
Expand All @@ -81,7 +79,3 @@ path = "src/main.rs"

[package.metadata.cargo-udeps.ignore]
development = ["simulacrum"]

[[example]]
name = "index_genesis_transaction"
path = "examples/index_genesis_transaction.rs"
133 changes: 0 additions & 133 deletions crates/iota-indexer/examples/index_genesis_transaction.rs

This file was deleted.

32 changes: 8 additions & 24 deletions crates/iota-indexer/src/indexer_reader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ impl IndexerReader {
&self,
digest: TransactionDigest,
) -> Result<IotaTransactionBlockEffects, IndexerError> {
let mut stored_txn: StoredTransaction = run_query!(&self.pool, |conn| {
let stored_txn: StoredTransaction = run_query!(&self.pool, |conn| {
transactions::table
.filter(
transactions::tx_sequence_number
Expand All @@ -465,21 +465,19 @@ impl IndexerReader {
.first::<StoredTransaction>(conn)
})?;

stored_txn = stored_txn.set_genesis_large_object_as_inner_data(&self.pool)?;
stored_txn.try_into_iota_transaction_effects()
}

fn get_transaction_effects_with_sequence_number(
&self,
sequence_number: i64,
) -> Result<IotaTransactionBlockEffects, IndexerError> {
let mut stored_txn: StoredTransaction = run_query!(&self.pool, |conn| {
let stored_txn: StoredTransaction = run_query!(&self.pool, |conn| {
transactions::table
.filter(transactions::tx_sequence_number.eq(sequence_number))
.first::<StoredTransaction>(conn)
})?;

stored_txn = stored_txn.set_genesis_large_object_as_inner_data(&self.pool)?;
stored_txn.try_into_iota_transaction_effects()
}

Expand All @@ -491,7 +489,7 @@ impl IndexerReader {
.iter()
.map(|digest| digest.inner().to_vec())
.collect::<Vec<_>>();
let transactions = run_query!(&self.pool, |conn| {
run_query!(&self.pool, |conn| {
transactions::table
.inner_join(
tx_digests::table
Expand All @@ -502,11 +500,7 @@ impl IndexerReader {
.filter(tx_digests::tx_digest.eq_any(digests))
.select(StoredTransaction::as_select())
.load::<StoredTransaction>(conn)
})?;
transactions
.into_iter()
.map(|store| store.set_genesis_large_object_as_inner_data(&self.pool))
.collect()
})
}

async fn multi_get_transactions_in_blocking_task(
Expand Down Expand Up @@ -565,11 +559,7 @@ impl IndexerReader {
}
None => (),
}
let transactions = run_query!(&self.pool, |conn| query.load::<StoredTransaction>(conn))?;
transactions
.into_iter()
.map(|stored| stored.set_genesis_large_object_as_inner_data(&self.pool))
.collect()
run_query!(&self.pool, |conn| query.load::<StoredTransaction>(conn))
}

pub async fn get_owned_objects_in_blocking_task(
Expand Down Expand Up @@ -748,15 +738,9 @@ impl IndexerReader {
query = query.order(transactions::dsl::tx_sequence_number.asc());
}
let pool = self.get_pool();
let mut stored_txes =
run_query_async!(&pool, move |conn| query
.limit(limit as i64)
.load::<StoredTransaction>(conn))?;

stored_txes = stored_txes
.into_iter()
.map(|store| store.set_genesis_large_object_as_inner_data(&self.pool))
.collect::<Result<Vec<_>, _>>()?;
let stored_txes = run_query_async!(&pool, move |conn| query
.limit(limit as i64)
.load::<StoredTransaction>(conn))?;

self.stored_transaction_to_transaction_block(stored_txes, options)
.await
Expand Down
Loading

0 comments on commit 26ca13a

Please sign in to comment.