Skip to content

Commit

Permalink
Add AuthSequence
Browse files Browse the repository at this point in the history
  • Loading branch information
zolting committed Nov 18, 2024
1 parent 0d3e008 commit 6f7cebe
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 518 deletions.
36 changes: 36 additions & 0 deletions blocks/antelope/src/auth_sequences.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
use common::blocks::insert_timestamp;
use common::structs::BlockTimestamp;
use substreams::pb::substreams::Clock;
use substreams_antelope::pb::AuthSequence;
use substreams_antelope::pb::{ActionTrace, TransactionTrace};
use substreams_antelope::Block;
use substreams_database_change::pb::database::{table_change, DatabaseChanges};

use crate::keys::auth_sequence_keys;
use crate::pb::antelope::AuthSequence as RawAuthSequence;
use crate::transactions::insert_transaction_metadata;
use crate::transactions::is_transaction_success;

pub fn insert_auth_sequence(tables: &mut DatabaseChanges, clock: &Clock, action: &ActionTrace, transaction: &TransactionTrace, auth_sequence: &AuthSequence, index: &u32) {
// transaction
Expand All @@ -28,3 +32,35 @@ pub fn insert_auth_sequence(tables: &mut DatabaseChanges, clock: &Clock, action:
insert_transaction_metadata(row, transaction);
insert_timestamp(row, clock, false, false);
}

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

for transaction in block.transaction_traces() {
let tx_hash = &transaction.id;
let tx_success = is_transaction_success(transaction.receipt.clone().unwrap_or_default().status);

for action_trace in transaction.action_traces.iter() {
let receipt = action_trace.receipt.as_ref().expect("Action trace receipt is required");

let action_index = action_trace.execution_index;

for (index, auth) in receipt.auth_sequence.iter().enumerate() {
auth_sequences.push(RawAuthSequence {
block_time: Some(timestamp.time.clone()),
block_number: timestamp.number,
block_hash: timestamp.hash.clone(),
block_date: timestamp.date.clone(),
tx_hash: tx_hash.clone(),
tx_success,
action_index,
index: index as u32,
account_name: auth.account_name.clone(),
sequence: auth.sequence,
});
}
}
}

auth_sequences
}
Loading

0 comments on commit 6f7cebe

Please sign in to comment.