Skip to content

Commit

Permalink
feat(torii-indexer): relation between txns and contract
Browse files Browse the repository at this point in the history
  • Loading branch information
Larkooo committed Feb 20, 2025
1 parent f244197 commit d22d5eb
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 2 deletions.
3 changes: 3 additions & 0 deletions crates/torii/indexer/src/engine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -721,6 +721,7 @@ impl<P: Provider + Send + Sync + std::fmt::Debug + 'static> Engine<P> {
block_number,
block_timestamp,
*transaction_hash,

&transaction_with_receipt.transaction,
)
.await?;
Expand Down Expand Up @@ -752,6 +753,7 @@ impl<P: Provider + Send + Sync + std::fmt::Debug + 'static> Engine<P> {
block_number: u64,
block_timestamp: u64,
transaction_hash: Felt,
contract_address: Felt,
transaction: &Transaction,
) -> Result<()> {
for processor in &self.processors.transaction {
Expand All @@ -762,6 +764,7 @@ impl<P: Provider + Send + Sync + std::fmt::Debug + 'static> Engine<P> {
block_number,
block_timestamp,
transaction_hash,
contract_address,
transaction,
)
.await?
Expand Down
1 change: 1 addition & 0 deletions crates/torii/indexer/src/processors/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ pub trait TransactionProcessor<P: Provider + Sync>: Send + Sync {
block_number: u64,
block_timestamp: u64,
transaction_hash: Felt,
contract_address: Felt,
transaction: &Transaction,
) -> Result<(), Error>;
}
3 changes: 2 additions & 1 deletion crates/torii/indexer/src/processors/store_transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ impl<P: Provider + Sync + std::fmt::Debug> TransactionProcessor<P> for StoreTran
block_number: u64,
block_timestamp: u64,
transaction_hash: Felt,
contract_address: Felt,
transaction: &Transaction,
) -> Result<(), Error> {
let transaction_id = format!("{:#064x}:{:#x}", block_number, transaction_hash);
db.store_transaction(transaction, &transaction_id, block_timestamp)?;
db.store_transaction(transaction, &transaction_id, contract_address, block_timestamp)?;
Ok(())
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE transactions ADD COLUMN contract_address TEXT;
4 changes: 3 additions & 1 deletion crates/torii/sqlite/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,7 @@ impl Sql {
&mut self,
transaction: &Transaction,
transaction_id: &str,
contract_address: Felt,
block_timestamp: u64,
) -> Result<()> {
let id = Argument::String(transaction_id.to_string());
Expand Down Expand Up @@ -556,7 +557,7 @@ impl Sql {

self.executor.send(QueryMessage::other(
"INSERT OR IGNORE INTO transactions (id, transaction_hash, sender_address, calldata, \
max_fee, signature, nonce, transaction_type, executed_at) VALUES (?, ?, ?, ?, ?, ?, \
max_fee, signature, nonce, transaction_type, contract_address, executed_at) VALUES (?, ?, ?, ?, ?, ?, \
?, ?, ?)"
.to_string(),
vec![
Expand All @@ -568,6 +569,7 @@ impl Sql {
signature,
nonce,
Argument::String(transaction_type.to_string()),
Argument::String(format!("{:#x}", contract_address)),
Argument::String(utc_dt_string_from_timestamp(block_timestamp)),
],
))?;
Expand Down

0 comments on commit d22d5eb

Please sign in to comment.