pub mod common; mod get_class_tests { use starknet_rs_core::types::{BlockId, BlockTag, FieldElement, StarknetError}; use starknet_rs_providers::{Provider, ProviderError}; use crate::common::background_devnet::BackgroundDevnet; use crate::common::constants::PREDEPLOYED_ACCOUNT_ADDRESS; #[tokio::test] async fn test_get_class_at() { let devnet = BackgroundDevnet::spawn().await.expect("Could not start Devnet"); let contract_address = FieldElement::from_hex_be(PREDEPLOYED_ACCOUNT_ADDRESS).unwrap(); let _ = devnet .json_rpc_client .get_class_at(BlockId::Tag(BlockTag::Latest), contract_address) .await .unwrap(); } #[tokio::test] async fn test_get_class() { let devnet = BackgroundDevnet::spawn().await.expect("Could not start Devnet"); let contract_address = FieldElement::from_hex_be(PREDEPLOYED_ACCOUNT_ADDRESS).unwrap(); let retrieved_hash = devnet .json_rpc_client .get_class_hash_at(BlockId::Tag(BlockTag::Latest), contract_address) .await .unwrap(); let _ = devnet .json_rpc_client .get_class(BlockId::Tag(BlockTag::Latest), retrieved_hash) .await .unwrap(); } #[tokio::test] async fn test_get_class_at_invalid_address() { let devnet = BackgroundDevnet::spawn().await.expect("Could not start Devnet"); let contract_address = FieldElement::from_hex_be("0x22").unwrap(); let err = devnet .json_rpc_client .get_class_at(BlockId::Tag(BlockTag::Latest), contract_address) .await .expect_err("Should have failed"); match err { ProviderError::StarknetError(StarknetError::ContractNotFound) => (), _ => panic!("Invalid error: {err:?}"), } } }