Skip to content

Commit

Permalink
Add block_timestamp_nanosec
Browse files Browse the repository at this point in the history
  • Loading branch information
Sliman4 committed May 6, 2024
1 parent f082fdb commit 95fe9f0
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
22 changes: 18 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pub mod redis_handler;
use std::collections::HashMap;

use async_trait::async_trait;
use inindexer::near_indexer_primitives::types::{AccountId, Balance};
use inindexer::near_indexer_primitives::types::{AccountId, Balance, BlockHeight};
use inindexer::near_indexer_primitives::views::{ActionView, ExecutionStatusView, ReceiptEnumView};
use inindexer::near_indexer_primitives::CryptoHash;
use inindexer::near_indexer_primitives::StreamerMessage;
Expand Down Expand Up @@ -142,10 +142,12 @@ impl<T: NftEventHandler + Send + Sync + 'static> Indexer for NftIndexer<T> {
let transaction_id = transaction.transaction.transaction.hash;
let receipt_id = receipt.receipt.receipt.receipt_id;
let block_height = receipt.block_height;
let block_timestamp_nanosec = receipt.block_timestamp_nanosec;
EventContext {
transaction_id,
receipt_id,
block_height,
block_timestamp_nanosec,
tx_sender_id,
contract_id,
}
Expand All @@ -160,7 +162,12 @@ impl<T: NftEventHandler + Send + Sync + 'static> Indexer for NftIndexer<T> {
if mint_log.validate() {
log::debug!("Mint log: {mint_log:?}");
for mint in mint_log.data.0 {
self.0.handle_mint(ExtendedNftMintEvent::from_event(mint), get_context_lazy()).await;
self.0
.handle_mint(
ExtendedNftMintEvent::from_event(mint),
get_context_lazy(),
)
.await;
}
}
}
Expand All @@ -181,7 +188,12 @@ impl<T: NftEventHandler + Send + Sync + 'static> Indexer for NftIndexer<T> {
if burn_log.validate() {
log::debug!("Burn log: {burn_log:?}");
for burn in burn_log.data.0 {
self.0.handle_burn(ExtendedNftBurnEvent::from_event(burn), get_context_lazy()).await;
self.0
.handle_burn(
ExtendedNftBurnEvent::from_event(burn),
get_context_lazy(),
)
.await;
}
}
}
Expand All @@ -195,7 +207,9 @@ impl<T: NftEventHandler + Send + Sync + 'static> Indexer for NftIndexer<T> {
pub struct EventContext {
pub transaction_id: CryptoHash,
pub receipt_id: CryptoHash,
pub block_height: u64,
pub block_height: BlockHeight,
#[serde(with = "dec_format")]
pub block_timestamp_nanosec: u128,
pub tx_sender_id: AccountId,
pub contract_id: AccountId,
}
5 changes: 4 additions & 1 deletion src/redis_handler.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
use async_trait::async_trait;
use redis::{streams::StreamMaxlen, AsyncCommands};

use crate::{EventContext, ExtendedNftBurnEvent, ExtendedNftMintEvent, ExtendedNftTransferEvent, NftEventHandler};
use crate::{
EventContext, ExtendedNftBurnEvent, ExtendedNftMintEvent, ExtendedNftTransferEvent,
NftEventHandler,
};

pub struct PushToRedisStream<C: AsyncCommands + Sync> {
connection: C,
Expand Down
5 changes: 5 additions & 0 deletions src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ async fn detects_mints() {
.parse()
.unwrap(),
block_height: 117189144,
block_timestamp_nanosec: 1713553179034135476,
tx_sender_id: "minter1.sharddog.near".parse().unwrap(),
contract_id: "claim.sharddog.near".parse().unwrap()
}
Expand Down Expand Up @@ -161,6 +162,7 @@ async fn detects_transfers() {
.parse()
.unwrap(),
block_height: 117_487_094,
block_timestamp_nanosec: 1713920604063293990,
tx_sender_id: "slimegirl.near".parse().unwrap(),
contract_id: "x.paras.near".parse().unwrap()
}
Expand Down Expand Up @@ -237,6 +239,7 @@ async fn detects_burns() {
.parse()
.unwrap(),
block_height: 117752572,
block_timestamp_nanosec: 1714240014556084087,
tx_sender_id: "bonehedz.near".parse().unwrap(),
contract_id: "veganfriends.mintbase1.near".parse().unwrap()
}
Expand Down Expand Up @@ -320,6 +323,7 @@ async fn detects_paras_trade() {
.parse()
.unwrap(),
block_height: 117998765,
block_timestamp_nanosec: 1714543285352206574,
tx_sender_id: "marketplace.paras.near".parse().unwrap(),
contract_id: "x.paras.near".parse().unwrap(),
}
Expand Down Expand Up @@ -403,6 +407,7 @@ async fn detects_mintbase_trade() {
.parse()
.unwrap(),
block_height: 116934526,
block_timestamp_nanosec: 1713231344389999053,
tx_sender_id: "simple.market.mintbase1.near".parse().unwrap(),
contract_id: "beanlabs.mintbase1.near".parse().unwrap()
}
Expand Down

0 comments on commit 95fe9f0

Please sign in to comment.