@@ -16,6 +16,7 @@ use papyrus_storage::body::BodyStorageReader;
16
16
use papyrus_storage:: header:: HeaderStorageReader ;
17
17
use papyrus_storage:: { StorageError , StorageReader } ;
18
18
use starknet_api:: block:: { BlockHash , BlockNumber } ;
19
+ use starknet_api:: core:: ContractAddress ;
19
20
use starknet_api:: transaction:: Transaction ;
20
21
use tokio:: sync:: Mutex ;
21
22
use tracing:: debug;
@@ -47,6 +48,7 @@ impl ConsensusBlock for PapyrusConsensusBlock {
47
48
pub struct PapyrusConsensusContext {
48
49
storage_reader : StorageReader ,
49
50
broadcast_sender : Arc < Mutex < SubscriberSender < ConsensusMessage > > > ,
51
+ validators : Vec < ValidatorId > ,
50
52
}
51
53
52
54
impl PapyrusConsensusContext {
@@ -55,8 +57,13 @@ impl PapyrusConsensusContext {
55
57
pub fn new (
56
58
storage_reader : StorageReader ,
57
59
broadcast_sender : SubscriberSender < ConsensusMessage > ,
60
+ num_validators : u64 ,
58
61
) -> Self {
59
- Self { storage_reader, broadcast_sender : Arc :: new ( Mutex :: new ( broadcast_sender) ) }
62
+ Self {
63
+ storage_reader,
64
+ broadcast_sender : Arc :: new ( Mutex :: new ( broadcast_sender) ) ,
65
+ validators : ( 0 ..num_validators) . map ( ContractAddress :: from) . collect ( ) ,
66
+ }
60
67
}
61
68
}
62
69
@@ -158,11 +165,11 @@ impl ConsensusContext for PapyrusConsensusContext {
158
165
}
159
166
160
167
async fn validators ( & self , _height : BlockNumber ) -> Vec < ValidatorId > {
161
- vec ! [ 0u8 . into ( ) , 1u8 . into ( ) , 2u8 . into ( ) , 3u8 . into ( ) ]
168
+ self . validators . clone ( )
162
169
}
163
170
164
- fn proposer ( & self , _validators : & [ ValidatorId ] , height : BlockNumber ) -> ValidatorId {
165
- ( height . 0 % 2 ) . into ( )
171
+ fn proposer ( & self , _validators : & [ ValidatorId ] , _height : BlockNumber ) -> ValidatorId {
172
+ * self . validators . first ( ) . expect ( "validators should have at least 2 validators" )
166
173
}
167
174
168
175
async fn broadcast ( & self , message : ConsensusMessage ) -> Result < ( ) , ConsensusError > {
0 commit comments