diff --git a/crates/starknet_api/src/block.rs b/crates/starknet_api/src/block.rs index 02109fdce61..7f96a6b545b 100644 --- a/crates/starknet_api/src/block.rs +++ b/crates/starknet_api/src/block.rs @@ -14,6 +14,7 @@ use strum_macros::EnumIter; use time::OffsetDateTime; use crate::core::{ + ascii_as_felt, ContractAddress, EventCommitment, GlobalRoot, @@ -166,6 +167,14 @@ impl TryFrom<&str> for StarknetVersion { } } +impl TryFrom<&StarknetVersion> for Felt { + type Error = StarknetApiError; + + fn try_from(starknet_version: &StarknetVersion) -> Result { + ascii_as_felt(&starknet_version.to_string()) + } +} + impl Serialize for StarknetVersion { fn serialize( &self, diff --git a/crates/starknet_api/src/block_hash/block_hash_calculator.rs b/crates/starknet_api/src/block_hash/block_hash_calculator.rs index 07209eaad38..a9e54a20a7d 100644 --- a/crates/starknet_api/src/block_hash/block_hash_calculator.rs +++ b/crates/starknet_api/src/block_hash/block_hash_calculator.rs @@ -162,7 +162,7 @@ pub fn calculate_block_hash( .iter(), ) .chain( - &ascii_as_felt(&partial_block_hash_components.starknet_version.to_string()) + &Felt::try_from(&partial_block_hash_components.starknet_version) .expect("Expect ASCII version"), ) .chain(&Felt::ZERO) diff --git a/crates/starknet_os/src/hints/hint_implementation/block_hash/test.rs b/crates/starknet_os/src/hints/hint_implementation/block_hash/test.rs index 0377f5f0e7e..a7b8ff46998 100644 --- a/crates/starknet_os/src/hints/hint_implementation/block_hash/test.rs +++ b/crates/starknet_os/src/hints/hint_implementation/block_hash/test.rs @@ -24,7 +24,6 @@ use starknet_api::block_hash::block_hash_calculator::{ STARKNET_BLOCK_HASH1, }; use starknet_api::core::{ - ascii_as_felt, EventCommitment, GlobalRoot, ReceiptCommitment, @@ -109,7 +108,7 @@ fn cairo_calculate_block_hash( EndpointArg::from(gas_prices_hash), EndpointArg::from(state_root), EndpointArg::from(parent_hash), - EndpointArg::from(ascii_as_felt(&components.starknet_version.to_string()).unwrap()), + EndpointArg::from(Felt::try_from(&components.starknet_version).unwrap()), ]; // We expect one felt as return value (block_hash).