Skip to content

Commit

Permalink
Add Transactions
Browse files Browse the repository at this point in the history
  • Loading branch information
zolting committed Nov 15, 2024
1 parent 4780ae6 commit d65497d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 5 deletions.
11 changes: 8 additions & 3 deletions blocks/cosmos-parquet/src/sinks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,13 @@ use substreams_cosmos::Block;
use substreams_database_change::pb::database::DatabaseChanges;

use crate::{
blocks::collect_blocks, consensus_param_updates::insert_consensus_params, events::insert_block_events, misbehaviors::insert_misbehaviors, pb::cosmos::rawblocks::Events,
transactions::insert_transactions, validator_updates::insert_validator_updates,
blocks::collect_blocks,
consensus_param_updates::insert_consensus_params,
events::insert_block_events,
misbehaviors::insert_misbehaviors,
pb::cosmos::rawblocks::Events,
transactions::{collect_transactions, insert_transactions},
validator_updates::insert_validator_updates,
};

#[substreams::handlers::map]
Expand All @@ -14,7 +19,7 @@ pub fn ch_out(clock: Clock, block: Block) -> Result<Events, Error> {

Ok(Events {
blocks: collect_blocks(&block, &timestamp),
transactions: vec![],
transactions: collect_transactions(&block, &timestamp),
tx_events: vec![],
block_events: vec![],
misbehaviors: vec![],
Expand Down
33 changes: 31 additions & 2 deletions blocks/cosmos-parquet/src/transactions.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use common::{blocks::insert_timestamp, utils::bytes_to_hex};
use common::{blocks::insert_timestamp, structs::BlockTimestamp, utils::bytes_to_hex};
use substreams::pb::substreams::Clock;
use substreams_cosmos::Block;
use substreams_database_change::pb::database::{table_change, DatabaseChanges};

use crate::{events::insert_tx_events, transaction_messages::insert_transaction_messages, utils::compute_tx_hash};
use crate::{events::insert_tx_events, pb::cosmos::rawblocks::Transaction as RawTransaction, transaction_messages::insert_transaction_messages, utils::compute_tx_hash};

pub fn insert_transactions(tables: &mut DatabaseChanges, clock: &Clock, block: &Block) {
let transactions = &block.tx_results;
Expand Down Expand Up @@ -37,3 +37,32 @@ pub fn insert_transactions(tables: &mut DatabaseChanges, clock: &Clock, block: &
insert_transaction_messages(tables, clock, tx_as_bytes, &tx_hash);
}
}

pub fn collect_transactions(block: &Block, timestamp: &BlockTimestamp) -> Vec<RawTransaction> {
let mut vec: Vec<RawTransaction> = vec![];

for (i, transaction) in block.tx_results.iter().enumerate() {
let tx_as_bytes = block.txs.get(i).unwrap();
let tx_hash = compute_tx_hash(tx_as_bytes);
let code = transaction.code;
let data = bytes_to_hex(&transaction.data);

vec.push(RawTransaction {
block_time: Some(timestamp.time),
block_number: timestamp.number,
block_date: timestamp.date.clone(),
block_hash: bytes_to_hex(&block.hash),
index: i as u32,
hash: tx_hash,
code,
data,
log: transaction.log.clone(),
info: transaction.info.clone(),
gas_wanted: transaction.gas_wanted,
gas_used: transaction.gas_used,
codespace: transaction.codespace.clone(),
});
}

vec
}

0 comments on commit d65497d

Please sign in to comment.