Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
gurinderu committed Jun 12, 2024
1 parent 35a42cc commit 7306394
Showing 1 changed file with 38 additions and 5 deletions.
43 changes: 38 additions & 5 deletions crates/nox-tests/tests/chain_listener.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ use chain_connector::Offer::ComputeUnit;
use chain_connector::Offer::OfferCalls;
use chain_data::parse_peer_id;
use chain_data::peer_id_to_bytes;
use chain_listener::{CommitmentActivated, ComputeUnitMatched, UnitDeactivated, CIDV1};
use chain_listener::CommitmentActivated;
use chain_listener::ComputeUnitMatched;
use chain_listener::UnitDeactivated;
use chain_listener::CIDV1;
use created_swarm::make_swarms_with_cfg;
use created_swarm::CreatedSwarm;
use log_utils::enable_logs;
Expand Down Expand Up @@ -292,6 +295,20 @@ impl ChainServer {
while state.block_number < block_number {
self.send_next_block_with_state(&mut state);
}
let current_epoch = state.current_epoch;
let for_activation = state
.commitment_activation_at
.iter()
.filter_map(|(k, &v)| if v <= current_epoch { Some(k) } else { None })
.cloned()
.collect::<Vec<_>>();

for commitment_id in for_activation {
state.commitment_activation_at.remove(&commitment_id);
state
.commitment_statuses
.insert(commitment_id, CCStatus::Active);
}
state.block_number
} else {
state.block_number
Expand Down Expand Up @@ -349,6 +366,9 @@ impl ChainServer {
.commitment_statuses
.insert(commitment_id.clone(), CCStatus::WaitStart);
let start_epoch = state.current_epoch + U256::from(1);
state
.commitment_activation_at
.insert(commitment_id.clone(), start_epoch);
let peer_state = state.peer_states.get_mut(&peer_id).unwrap();
let mut event_unit_ids = Vec::with_capacity(peer_state.units.len());
for unit in peer_state.units.iter_mut() {
Expand Down Expand Up @@ -393,8 +413,19 @@ impl ChainServer {
}

pub fn create_deal(&self, params: CreateDealParams) {
let state = self.chain_state.lock();
let mut state = self.chain_state.lock();
let block_number = state.block_number;
state.deal_statuses.insert(params.deal_id, Status::ACTIVE);
let peer_state = state.peer_states.get_mut(&params.peer_id).unwrap();
for unit in params.units {
if let Some(state_unit) = peer_state
.units
.iter_mut()
.find(|state_unit| state_unit.id == unit.id)
{
state_unit.deal = params.deal_id;
}

{
let event = UnitDeactivated {
commitmentId: FixedBytes::new(params.commitment_id.0),
Expand All @@ -410,7 +441,7 @@ impl ChainServer {
params.commitment_id.to_string()
],
"data": data,
"blockNumber": state.block_number,
"blockNumber": block_number,
"removed": false
}))
.unwrap();
Expand All @@ -431,7 +462,7 @@ impl ChainServer {
peerId: FixedBytes::new(peer_id_to_bytes(params.peer_id)),
deal: params.deal_id,
unitId: unit.id,
dealCreationBlock: state.block_number,
dealCreationBlock: block_number,
appCID: CIDV1 {
prefixes: Default::default(),
hash: Default::default(),
Expand All @@ -445,7 +476,7 @@ impl ChainServer {
to_hex_with_prefix(peer_id_to_bytes(params.peer_id)),
],
"data": data,
"blockNumber": state.block_number,
"blockNumber": block_number,
"removed": false
}))
.unwrap();
Expand Down Expand Up @@ -522,6 +553,7 @@ struct ChainState {
min_proofs_per_epoch: U256,
max_proofs_per_epoch: U256,
commitment_statuses: HashMap<CommitmentId, CCStatus>,
commitment_activation_at: HashMap<CommitmentId, U256>,
peer_states: HashMap<PeerId, PeerState>,
deal_statuses: HashMap<Address, Status>,
}
Expand All @@ -547,6 +579,7 @@ impl Default for ChainState {
commitment_statuses: Default::default(),
peer_states: Default::default(),
deal_statuses: Default::default(),
commitment_activation_at: Default::default(),
}
}
}
Expand Down

0 comments on commit 7306394

Please sign in to comment.