From 7c19061f66593a9e1b8543a8e437e049a5098a2d Mon Sep 17 00:00:00 2001 From: Nasr Date: Fri, 8 Nov 2024 14:36:53 -0500 Subject: [PATCH] wrap up config --- bin/torii/src/main.rs | 10 ++++++---- crates/torii/core/src/engine.rs | 6 ++++-- crates/torii/core/src/sql/mod.rs | 10 +++++----- crates/torii/core/src/sql/test.rs | 10 +++++----- crates/torii/graphql/src/tests/metadata_test.rs | 8 +++----- crates/torii/graphql/src/tests/mod.rs | 6 +++--- crates/torii/graphql/src/tests/subscription_test.rs | 13 ++++++------- crates/torii/grpc/src/server/tests/entities_test.rs | 6 +++--- crates/torii/libp2p/src/tests.rs | 5 ++--- 9 files changed, 37 insertions(+), 37 deletions(-) diff --git a/bin/torii/src/main.rs b/bin/torii/src/main.rs index 108e283bf8..46ad959d13 100644 --- a/bin/torii/src/main.rs +++ b/bin/torii/src/main.rs @@ -139,8 +139,8 @@ struct Args { index_raw_events: bool, /// ERC contract addresses to index - #[arg(long, value_parser = parse_erc_contracts, default_value = "")] - contracts: Vec, + #[arg(long, default_value = "")] + contracts: String, /// Configuration file #[arg(long)] @@ -158,6 +158,9 @@ async fn main() -> anyhow::Result<()> { Args::from_arg_matches(&matches)? }; + let mut contracts = parse_erc_contracts(&args.contracts)?; + contracts.push(Contract { address: args.world_address, r#type: ContractType::WORLD }); + let filter_layer = EnvFilter::try_from_default_env() .unwrap_or_else(|_| EnvFilter::new("info,hyper_reverse_proxy=off")); @@ -202,7 +205,6 @@ async fn main() -> anyhow::Result<()> { // Get world address let world = WorldContractReader::new(args.world_address, provider.clone()); - let contracts = args.contracts.iter().map(|contract| (contract.address, contract.r#type)).collect(); let (mut executor, sender) = Executor::new(pool.clone(), shutdown_tx.clone()).await?; tokio::spawn(async move { @@ -242,7 +244,7 @@ async fn main() -> anyhow::Result<()> { }, shutdown_tx.clone(), Some(block_tx), - Arc::new(contracts), + &contracts, ); let shutdown_rx = shutdown_tx.subscribe(); diff --git a/crates/torii/core/src/engine.rs b/crates/torii/core/src/engine.rs index f060500f89..5ddce943a1 100644 --- a/crates/torii/core/src/engine.rs +++ b/crates/torii/core/src/engine.rs @@ -39,7 +39,7 @@ use crate::processors::store_update_member::StoreUpdateMemberProcessor; use crate::processors::store_update_record::StoreUpdateRecordProcessor; use crate::processors::{BlockProcessor, EventProcessor, TransactionProcessor}; use crate::sql::{Cursors, Sql}; -use crate::types::ContractType; +use crate::types::{Contract, ContractType}; type EventProcessorMap

= HashMap>>>; @@ -217,8 +217,10 @@ impl Engine

{ config: EngineConfig, shutdown_tx: Sender<()>, block_tx: Option>, - contracts: Arc>, + contracts: &Vec, ) -> Self { + let contracts = Arc::new(contracts.iter().map(|contract| (contract.address, contract.r#type)).collect()); + Self { world: Arc::new(world), db, diff --git a/crates/torii/core/src/sql/mod.rs b/crates/torii/core/src/sql/mod.rs index 3c20222a9a..ae72371039 100644 --- a/crates/torii/core/src/sql/mod.rs +++ b/crates/torii/core/src/sql/mod.rs @@ -20,7 +20,7 @@ use crate::executor::{ Argument, DeleteEntityQuery, EventMessageQuery, QueryMessage, QueryType, ResetCursorsQuery, SetHeadQuery, UpdateCursorsQuery, }; -use crate::types::ContractType; +use crate::types::Contract; use crate::utils::utc_dt_string_from_timestamp; type IsEventMessage = bool; @@ -59,7 +59,7 @@ impl Sql { pub async fn new( pool: Pool, executor: UnboundedSender, - contracts: &HashMap, + contracts: &Vec, ) -> Result { for contract in contracts { executor.send(QueryMessage::other( @@ -67,9 +67,9 @@ impl Sql { ?, ?)" .to_string(), vec![ - Argument::FieldElement(*contract.0), - Argument::FieldElement(*contract.0), - Argument::String(contract.1.to_string()), + Argument::FieldElement(contract.address), + Argument::FieldElement(contract.address), + Argument::String(contract.r#type.to_string()), ], ))?; } diff --git a/crates/torii/core/src/sql/test.rs b/crates/torii/core/src/sql/test.rs index fd1539b49c..9bab88ec0c 100644 --- a/crates/torii/core/src/sql/test.rs +++ b/crates/torii/core/src/sql/test.rs @@ -24,7 +24,7 @@ use tokio::sync::broadcast; use crate::engine::{Engine, EngineConfig, Processors}; use crate::executor::Executor; use crate::sql::Sql; -use crate::types::ContractType; +use crate::types::{Contract, ContractType}; pub async fn bootstrap_engine

( world: WorldContractReader

, @@ -45,7 +45,7 @@ where EngineConfig::default(), shutdown_tx, None, - Arc::new(HashMap::from([(world_address, ContractType::WORLD)])), + &vec![Contract { address: world_address, r#type: ContractType::WORLD }], ); let data = engine.fetch_range(0, to, &HashMap::new()).await.unwrap(); @@ -127,7 +127,7 @@ async fn test_load_from_remote(sequencer: &RunnerCtx) { let db = Sql::new( pool.clone(), sender.clone(), - &HashMap::from([(world_reader.address, ContractType::WORLD)]), + &vec![Contract { address: world_reader.address, r#type: ContractType::WORLD }], ) .await .unwrap(); @@ -285,7 +285,7 @@ async fn test_load_from_remote_del(sequencer: &RunnerCtx) { let db = Sql::new( pool.clone(), sender.clone(), - &HashMap::from([(world_reader.address, ContractType::WORLD)]), + &vec![Contract { address: world_reader.address, r#type: ContractType::WORLD }], ) .await .unwrap(); @@ -371,7 +371,7 @@ async fn test_update_with_set_record(sequencer: &RunnerCtx) { let db = Sql::new( pool.clone(), sender.clone(), - &HashMap::from([(world_reader.address, ContractType::WORLD)]), + &vec![Contract { address: world_reader.address, r#type: ContractType::WORLD }], ) .await .unwrap(); diff --git a/crates/torii/graphql/src/tests/metadata_test.rs b/crates/torii/graphql/src/tests/metadata_test.rs index d92cca5854..3f0d6ec11e 100644 --- a/crates/torii/graphql/src/tests/metadata_test.rs +++ b/crates/torii/graphql/src/tests/metadata_test.rs @@ -1,14 +1,12 @@ #[cfg(test)] mod tests { - use std::collections::HashMap; - use dojo_world::config::{ProfileConfig, WorldMetadata}; use sqlx::SqlitePool; use starknet::core::types::Felt; use tokio::sync::broadcast; use torii_core::executor::Executor; use torii_core::sql::Sql; - use torii_core::types::ContractType; + use torii_core::types::{Contract, ContractType}; use crate::schema::build_schema; use crate::tests::{run_graphql_query, Connection, Content, Metadata as SqlMetadata, Social}; @@ -59,7 +57,7 @@ mod tests { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap(); let schema = build_schema(&pool).await.unwrap(); @@ -120,7 +118,7 @@ mod tests { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap(); let schema = build_schema(&pool).await.unwrap(); diff --git a/crates/torii/graphql/src/tests/mod.rs b/crates/torii/graphql/src/tests/mod.rs index 7a54dcce72..a003b7ea01 100644 --- a/crates/torii/graphql/src/tests/mod.rs +++ b/crates/torii/graphql/src/tests/mod.rs @@ -30,7 +30,7 @@ use tokio_stream::StreamExt; use torii_core::engine::{Engine, EngineConfig, Processors}; use torii_core::executor::Executor; use torii_core::sql::Sql; -use torii_core::types::ContractType; +use torii_core::types::{Contract, ContractType}; mod entities_test; mod events_test; @@ -345,7 +345,7 @@ pub async fn spinup_types_test(path: &str) -> Result { tokio::spawn(async move { executor.run().await.unwrap(); }); - let db = Sql::new(pool.clone(), sender, &HashMap::from([(world_address, ContractType::WORLD)])) + let db = Sql::new(pool.clone(), sender, &vec![Contract { address: world_address, r#type: ContractType::WORLD }]) .await .unwrap(); @@ -358,7 +358,7 @@ pub async fn spinup_types_test(path: &str) -> Result { EngineConfig::default(), shutdown_tx, None, - Arc::new(HashMap::from([(world_address, ContractType::WORLD)])), + &vec![Contract { address: world_address, r#type: ContractType::WORLD }], ); let to = account.provider().block_hash_and_number().await?.block_number; diff --git a/crates/torii/graphql/src/tests/subscription_test.rs b/crates/torii/graphql/src/tests/subscription_test.rs index 11ef4585eb..5a79ea9c08 100644 --- a/crates/torii/graphql/src/tests/subscription_test.rs +++ b/crates/torii/graphql/src/tests/subscription_test.rs @@ -1,6 +1,5 @@ #[cfg(test)] mod tests { - use std::collections::HashMap; use std::str::FromStr; use std::time::Duration; @@ -17,7 +16,7 @@ mod tests { use torii_core::executor::Executor; use torii_core::sql::utils::felts_to_sql_string; use torii_core::sql::Sql; - use torii_core::types::ContractType; + use torii_core::types::{Contract, ContractType}; use crate::tests::{model_fixtures, run_graphql_subscription}; use crate::utils; @@ -32,7 +31,7 @@ mod tests { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap(); @@ -176,7 +175,7 @@ mod tests { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap(); @@ -300,7 +299,7 @@ mod tests { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap(); // 0. Preprocess model value @@ -374,7 +373,7 @@ mod tests { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap(); // 0. Preprocess model value @@ -449,7 +448,7 @@ mod tests { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap(); let block_timestamp: u64 = 1710754478_u64; diff --git a/crates/torii/grpc/src/server/tests/entities_test.rs b/crates/torii/grpc/src/server/tests/entities_test.rs index e7996092e9..5214575d96 100644 --- a/crates/torii/grpc/src/server/tests/entities_test.rs +++ b/crates/torii/grpc/src/server/tests/entities_test.rs @@ -25,7 +25,7 @@ use tokio::sync::broadcast; use torii_core::engine::{Engine, EngineConfig, Processors}; use torii_core::executor::Executor; use torii_core::sql::Sql; -use torii_core::types::ContractType; +use torii_core::types::{Contract, ContractType}; use crate::proto::types::KeysClause; use crate::server::DojoWorld; @@ -92,7 +92,7 @@ async fn test_entities_queries(sequencer: &RunnerCtx) { tokio::spawn(async move { executor.run().await.unwrap(); }); - let db = Sql::new(pool.clone(), sender, &HashMap::from([(world_address, ContractType::WORLD)])) + let db = Sql::new(pool.clone(), sender, &vec![Contract { address: world_address, r#type: ContractType::WORLD }]) .await .unwrap(); @@ -105,7 +105,7 @@ async fn test_entities_queries(sequencer: &RunnerCtx) { EngineConfig::default(), shutdown_tx, None, - Arc::new(HashMap::from([(world_address, ContractType::WORLD)])), + &vec![Contract { address: world_address, r#type: ContractType::WORLD }], ); let to = provider.block_hash_and_number().await.unwrap().block_number; diff --git a/crates/torii/libp2p/src/tests.rs b/crates/torii/libp2p/src/tests.rs index e033d6c5fb..7c94fa04c5 100644 --- a/crates/torii/libp2p/src/tests.rs +++ b/crates/torii/libp2p/src/tests.rs @@ -524,7 +524,6 @@ mod test { #[cfg(not(target_arch = "wasm32"))] #[tokio::test] async fn test_client_messaging() -> Result<(), Box> { - use std::collections::HashMap; use std::time::Duration; use dojo_types::schema::{Member, Struct, Ty}; @@ -541,7 +540,7 @@ mod test { use tokio::time::sleep; use torii_core::executor::Executor; use torii_core::sql::Sql; - use torii_core::types::ContractType; + use torii_core::types::{Contract, ContractType}; use crate::server::Relay; use crate::typed_data::{Domain, Field, SimpleField, TypedData}; @@ -579,7 +578,7 @@ mod test { executor.run().await.unwrap(); }); let mut db = - Sql::new(pool.clone(), sender, &HashMap::from([(Felt::ZERO, ContractType::WORLD)])) + Sql::new(pool.clone(), sender, &vec![Contract { address: Felt::ZERO, r#type: ContractType::WORLD }]) .await .unwrap();