Skip to content

Commit f3aa1f7

Browse files
apollo_protobuf: add starknet_version field to ConsensusBlockInfo (#11711)
1 parent 5fc5c34 commit f3aa1f7

File tree

9 files changed

+24
-4
lines changed

9 files changed

+24
-4
lines changed

crates/apollo_consensus_orchestrator/src/build_proposal.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ async fn initiate_build(
172172
l1_data_gas_price_wei: l1_prices_wei.l1_data_gas_price,
173173
l1_gas_price_fri: l1_prices_fri.l1_gas_price,
174174
l1_data_gas_price_fri: l1_prices_fri.l1_data_gas_price,
175+
starknet_version: starknet_api::block::StarknetVersion::LATEST,
175176
};
176177

177178
let retrospective_block_hash = wait_for_retrospective_block_hash(

crates/apollo_consensus_orchestrator/src/test_utils.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,7 @@ pub(crate) fn block_info(height: BlockNumber, round: u32) -> ConsensusBlockInfo
377377
l1_data_gas_price_fri,
378378
l1_gas_price_wei,
379379
l1_data_gas_price_wei,
380+
starknet_version: starknet_api::block::StarknetVersion::LATEST,
380381
}
381382
}
382383

crates/apollo_consensus_orchestrator/src/utils.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,7 @@ pub(crate) fn convert_to_sn_api_block_info(
359359
},
360360
},
361361
use_kzg_da: block_info.l1_da_mode.is_use_kzg_da(),
362-
// TODO(Shahak): Add starknet_version to ConsensusBlockInfo and pass it through here.
363-
starknet_version: starknet_api::block::StarknetVersion::LATEST,
362+
starknet_version: block_info.starknet_version,
364363
})
365364
}
366365

crates/apollo_consensus_orchestrator/src/utils_test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ async fn get_block_info(args: &ProposalBuildArguments) -> ConsensusBlockInfo {
4747
l1_data_gas_price_wei: l1_prices_wei.l1_data_gas_price,
4848
l1_gas_price_fri: l1_prices_fri.l1_gas_price,
4949
l1_data_gas_price_fri: l1_prices_fri.l1_data_gas_price,
50+
starknet_version: starknet_api::block::StarknetVersion::LATEST,
5051
}
5152
}
5253

crates/apollo_protobuf/src/consensus.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ pub struct ConsensusBlockInfo {
116116
pub l1_gas_price_wei: GasPrice,
117117
/// L1 data gas price in WEI.
118118
pub l1_data_gas_price_wei: GasPrice,
119+
/// Starknet protocol version.
120+
pub starknet_version: starknet_api::block::StarknetVersion,
119121
}
120122

121123
/// A temporary constant to use as a validator ID. Zero is not a valid contract address.
@@ -148,6 +150,7 @@ impl Default for ConsensusBlockInfo {
148150
l1_data_gas_price_fri: Default::default(),
149151
l1_gas_price_wei: Default::default(),
150152
l1_data_gas_price_wei: Default::default(),
153+
starknet_version: starknet_api::block::StarknetVersion::LATEST,
151154
}
152155
}
153156
}

crates/apollo_protobuf/src/converters/consensus.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ mod consensus_test;
55
use std::convert::{TryFrom, TryInto};
66

77
use prost::Message;
8-
use starknet_api::block::{BlockNumber, GasPrice};
8+
use starknet_api::block::{BlockNumber, GasPrice, StarknetVersion};
99
use starknet_api::consensus_transaction::ConsensusTransaction;
1010
use starknet_api::hash::StarkHash;
1111

@@ -208,6 +208,15 @@ impl TryFrom<protobuf::BlockInfo> for ConsensusBlockInfo {
208208
GasPrice(value.l1_gas_price_wei.ok_or(missing("l1_gas_price_wei"))?.into());
209209
let l1_data_gas_price_wei =
210210
GasPrice(value.l1_data_gas_price_wei.ok_or(missing("l1_data_gas_price_wei"))?.into());
211+
let starknet_version = match StarknetVersion::try_from(value.starknet_version.to_owned()) {
212+
Ok(version) => version,
213+
Err(_) => {
214+
return Err(ProtobufConversionError::OutOfRangeValue {
215+
type_description: "starknet version",
216+
value_as_str: value.starknet_version,
217+
});
218+
}
219+
};
211220
Ok(ConsensusBlockInfo {
212221
height,
213222
round,
@@ -221,6 +230,7 @@ impl TryFrom<protobuf::BlockInfo> for ConsensusBlockInfo {
221230
l1_data_gas_price_fri,
222231
l1_gas_price_wei,
223232
l1_data_gas_price_wei,
233+
starknet_version,
224234
})
225235
}
226236
}
@@ -240,6 +250,7 @@ impl From<ConsensusBlockInfo> for protobuf::BlockInfo {
240250
l1_data_gas_price_fri: Some(value.l1_data_gas_price_fri.0.into()),
241251
l1_gas_price_wei: Some(value.l1_gas_price_wei.0.into()),
242252
l1_data_gas_price_wei: Some(value.l1_data_gas_price_wei.0.into()),
253+
starknet_version: value.starknet_version.to_string(),
243254
}
244255
}
245256
}

crates/apollo_protobuf/src/converters/test_instances.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::fmt::Display;
33
use apollo_test_utils::{auto_impl_get_test_instance, get_number_of_variants, GetTestInstance};
44
use prost::DecodeError;
55
use rand::Rng;
6-
use starknet_api::block::{BlockNumber, GasPrice};
6+
use starknet_api::block::{BlockNumber, GasPrice, StarknetVersion};
77
use starknet_api::consensus_transaction::ConsensusTransaction;
88
use starknet_api::core::ContractAddress;
99
use starknet_api::crypto::utils::RawSignature;
@@ -57,6 +57,7 @@ auto_impl_get_test_instance! {
5757
pub l1_data_gas_price_fri: GasPrice,
5858
pub l1_gas_price_wei: GasPrice,
5959
pub l1_data_gas_price_wei: GasPrice,
60+
pub starknet_version: StarknetVersion,
6061
}
6162
pub enum ProposalPart {
6263
BlockInfo(ConsensusBlockInfo) = 0,

crates/apollo_protobuf/src/proto/p2p/proto/consensus/consensus.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ message BlockInfo {
5656
Uint128 l1_data_gas_price_fri = 10;
5757
Uint128 l1_gas_price_wei = 11;
5858
Uint128 l1_data_gas_price_wei = 12;
59+
string starknet_version = 13;
5960
}
6061

6162
message TransactionBatch {

crates/apollo_protobuf/src/protobuf/protoc_output.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,8 @@ pub struct BlockInfo {
461461
pub l1_gas_price_wei: ::core::option::Option<Uint128>,
462462
#[prost(message, optional, tag = "12")]
463463
pub l1_data_gas_price_wei: ::core::option::Option<Uint128>,
464+
#[prost(string, tag = "13")]
465+
pub starknet_version: ::prost::alloc::string::String,
464466
}
465467
#[allow(clippy::derive_partial_eq_without_eq)]
466468
#[derive(Clone, PartialEq, ::prost::Message)]

0 commit comments

Comments
 (0)