diff --git a/crates/pontos/src/lib.rs b/crates/pontos/src/lib.rs index e0b28a2f2..0fd6ba54d 100644 --- a/crates/pontos/src/lib.rs +++ b/crates/pontos/src/lib.rs @@ -376,7 +376,7 @@ impl Pontos Result<()> { let mut token_sale_event = self .event_manager - .format_element_sale_event(&event, block_timestamp) + .format_element_sale_event(&event, block_timestamp, chain_id) .await?; let contract_addr = FieldElement::from_hex_be( @@ -430,7 +430,7 @@ impl Pontos EventManager { &self, event: &EmittedEvent, block_timestamp: u64, + chain_id: &str, ) -> Result { let _listing_counter = event .data @@ -120,7 +121,8 @@ impl EventManager { currency_address: None, marketplace_contract_address: to_hex_str(&event.from_address), marketplace_name: "Ventory".to_string(), - price: price.to_big_decimal(0).to_string(), + price: to_hex_str(price), + chain_id: chain_id.to_string(), }) } @@ -128,6 +130,7 @@ impl EventManager { &self, event: &EmittedEvent, block_timestamp: u64, + chain_id: &str, ) -> Result { if event.keys.len() < 4 { return Err(anyhow!("Can't find event data into this event")); @@ -231,7 +234,8 @@ impl EventManager { currency_address: Some(to_hex_str(currency_address)), marketplace_contract_address: to_hex_str(&event.from_address), marketplace_name: "Element".to_string(), - price: price.to_big_decimal(0).to_string(), + price: to_hex_str(price), + chain_id: chain_id.to_string(), }) } diff --git a/crates/pontos/src/storage/sqlx/default_storage.rs b/crates/pontos/src/storage/sqlx/default_storage.rs index 63c91379f..446995da1 100644 --- a/crates/pontos/src/storage/sqlx/default_storage.rs +++ b/crates/pontos/src/storage/sqlx/default_storage.rs @@ -219,13 +219,14 @@ impl Storage for DefaultSqlxStorage { ))); } - let q = "INSERT INTO token_event (block_timestamp, contract_address, from_address, to_address, transaction_hash, token_id, contract_type, event_type, event_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)"; + let q = "INSERT INTO token_event (block_timestamp, contract_address, chain_id, from_address, to_address, transaction_hash, token_id, contract_type, event_type, event_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)"; let _r = sqlx::query(q) .bind(event.timestamp.to_string()) + .bind(event.contract_address.clone()) + .bind(event.chain_id.clone()) .bind(event.from_address.clone()) .bind(event.to_address.clone()) - .bind(event.contract_address.clone()) .bind(event.transaction_hash.clone()) .bind(event.token_id.clone()) .bind(event.contract_type.clone()) diff --git a/crates/pontos/src/storage/types.rs b/crates/pontos/src/storage/types.rs index bad7032b3..ddcebb1c2 100644 --- a/crates/pontos/src/storage/types.rs +++ b/crates/pontos/src/storage/types.rs @@ -173,6 +173,7 @@ pub struct TokenSaleEvent { pub quantity: u64, pub currency_address: Option, pub price: String, + pub chain_id: String, } impl Default for TokenTransferEvent { diff --git a/crates/sana/src/lib.rs b/crates/sana/src/lib.rs index 11c2bf6df..9977edf11 100644 --- a/crates/sana/src/lib.rs +++ b/crates/sana/src/lib.rs @@ -392,7 +392,7 @@ impl Sana let mut token_sale_event = self .event_manager - .format_ventory_sale_event(&event, block_timestamp) + .format_ventory_sale_event(&event, block_timestamp, chain_id) .await?; let contract_addr = FieldElement::from_hex_be( diff --git a/crates/sana/src/managers/event_manager.rs b/crates/sana/src/managers/event_manager.rs index 44df79522..936af3286 100644 --- a/crates/sana/src/managers/event_manager.rs +++ b/crates/sana/src/managers/event_manager.rs @@ -57,6 +57,7 @@ impl EventManager { &self, event: &EmittedEvent, block_timestamp: u64, + chain_id: &str, ) -> Result { let _listing_counter = event .data @@ -113,8 +114,8 @@ impl EventManager { currency_address: None, marketplace_contract_address: to_hex_str(&event.from_address), marketplace_name: "Ventory".to_string(), - price: price.to_big_decimal(0).to_string(), - chain_id: "0x534e5f4d41494e".to_string(), + price: to_hex_str(price), + chain_id: chain_id.to_string(), }) } @@ -226,7 +227,7 @@ impl EventManager { currency_address: Some(to_hex_str(currency_address)), marketplace_contract_address: to_hex_str(&event.from_address), marketplace_name: "Element".to_string(), - price: price.to_big_decimal(0).to_string(), + price: to_hex_str(price), chain_id: chain_id.to_string(), }) }