mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-12 05:59:23 +00:00
Clean up time code in tendermint-machine
This commit is contained in:
@@ -10,7 +10,9 @@ use parity_scale_codec::{Encode, Decode};
|
||||
use futures::SinkExt;
|
||||
use tokio::{sync::RwLock, time::sleep};
|
||||
|
||||
use tendermint_machine::{ext::*, SignedMessage, MessageSender, TendermintMachine, TendermintHandle};
|
||||
use tendermint_machine::{
|
||||
ext::*, SignedMessage, StepSender, MessageSender, TendermintMachine, TendermintHandle,
|
||||
};
|
||||
|
||||
type TestValidatorId = u16;
|
||||
type TestBlockId = [u8; 4];
|
||||
@@ -94,7 +96,7 @@ impl Block for TestBlock {
|
||||
}
|
||||
}
|
||||
|
||||
struct TestNetwork(u16, Arc<RwLock<Vec<MessageSender<Self>>>>);
|
||||
struct TestNetwork(u16, Arc<RwLock<Vec<(MessageSender<Self>, StepSender<Self>)>>>);
|
||||
|
||||
#[async_trait]
|
||||
impl Network for TestNetwork {
|
||||
@@ -119,7 +121,7 @@ impl Network for TestNetwork {
|
||||
}
|
||||
|
||||
async fn broadcast(&mut self, msg: SignedMessage<TestValidatorId, Self::Block, [u8; 32]>) {
|
||||
for messages in self.1.write().await.iter_mut() {
|
||||
for (messages, _) in self.1.write().await.iter_mut() {
|
||||
messages.send(msg.clone()).await.unwrap();
|
||||
}
|
||||
}
|
||||
@@ -146,20 +148,20 @@ impl Network for TestNetwork {
|
||||
}
|
||||
|
||||
impl TestNetwork {
|
||||
async fn new(validators: usize) -> Arc<RwLock<Vec<MessageSender<Self>>>> {
|
||||
async fn new(validators: usize) -> Arc<RwLock<Vec<(MessageSender<Self>, StepSender<Self>)>>> {
|
||||
let arc = Arc::new(RwLock::new(vec![]));
|
||||
{
|
||||
let mut write = arc.write().await;
|
||||
for i in 0 .. validators {
|
||||
let i = u16::try_from(i).unwrap();
|
||||
let TendermintHandle { messages, machine, .. } = TendermintMachine::new(
|
||||
let TendermintHandle { messages, machine, step } = TendermintMachine::new(
|
||||
TestNetwork(i, arc.clone()),
|
||||
(BlockNumber(1), (SystemTime::now().duration_since(UNIX_EPOCH)).unwrap().as_secs()),
|
||||
TestBlock { id: 1u32.to_le_bytes(), valid: Ok(()) },
|
||||
)
|
||||
.await;
|
||||
tokio::task::spawn(machine.run());
|
||||
write.push(messages);
|
||||
write.push((messages, step));
|
||||
}
|
||||
}
|
||||
arc
|
||||
|
||||
Reference in New Issue
Block a user