Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions core/src/codechain_machine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -251,13 +251,8 @@ impl CodeChainMachine {
Ok(())
}

pub fn change_term_id(
&self,
live: &mut ExecutedBlock,
last_term_finished_block_num: u64,
current_term_id: u64,
) -> Result<(), Error> {
live.state_mut().change_term_id(last_term_finished_block_num, current_term_id)?;
pub fn increase_term_id(&self, live: &mut ExecutedBlock, last_term_finished_block_num: u64) -> Result<(), Error> {
live.state_mut().increase_term_id(last_term_finished_block_num)?;
Ok(())
}
}
Expand Down
12 changes: 6 additions & 6 deletions core/src/consensus/solo/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -106,21 +106,21 @@ impl ConsensusEngine for Solo<CodeChainMachine> {
return Ok(())
}
stake::add_intermediate_rewards(block.state_mut(), author, block_author_reward)?;
let (last_term_finished_block_num, current_term_id) = {
let last_term_finished_block_num = {
let header = block.header();
let term_id = header.timestamp() / term_seconds;
let parent_term_id = parent_header.timestamp() / term_seconds;
if term_id == parent_term_id {
let current_term_period = header.timestamp() / term_seconds;
let parent_term_period = parent_header.timestamp() / term_seconds;
if current_term_period == parent_term_period {
return Ok(())
}
(header.number(), term_id)
header.number()
};
stake::move_current_to_previous_intermediate_rewards(&mut block.state_mut())?;
let rewards = stake::drain_previous_rewards(&mut block.state_mut())?;
for (address, reward) in rewards {
self.machine.add_balance(block, &address, reward)?;
}
self.machine.change_term_id(block, last_term_finished_block_num, current_term_id)?;
self.machine.increase_term_id(block, last_term_finished_block_num)?;
Ok(())
}

Expand Down
12 changes: 6 additions & 6 deletions core/src/consensus/tendermint/engine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -164,14 +164,14 @@ impl ConsensusEngine for Tendermint {
return Ok(())
}
stake::add_intermediate_rewards(block.state_mut(), author, block_author_reward)?;
let (last_term_finished_block_num, current_term_id) = {
let last_term_finished_block_num = {
let header = block.header();
let term_id = header.timestamp() / term_seconds;
let parent_term_id = parent_header.timestamp() / term_seconds;
if term_id == parent_term_id {
let current_term_period = header.timestamp() / term_seconds;
let parent_term_period = parent_header.timestamp() / term_seconds;
if current_term_period == parent_term_period {
return Ok(())
}
(header.number(), term_id)
header.number()
};
let rewards = stake::drain_previous_rewards(&mut block.state_mut())?;
let client = self
Expand Down Expand Up @@ -202,7 +202,7 @@ impl ConsensusEngine for Tendermint {
self.machine.add_balance(block, &address, reward)?;
}

self.machine.change_term_id(block, last_term_finished_block_num, current_term_id)?;
self.machine.increase_term_id(block, last_term_finished_block_num)?;
stake::move_current_to_previous_intermediate_rewards(&mut block.state_mut())?;
Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions state/src/impls/top_level.rs
Original file line number Diff line number Diff line change
Expand Up @@ -974,9 +974,9 @@ impl TopState for TopLevelState {
Ok(())
}

fn change_term_id(&mut self, last_term_finished_block_num: u64, current_term_id: u64) -> StateResult<()> {
fn increase_term_id(&mut self, last_term_finished_block_num: u64) -> StateResult<()> {
let mut metadata = self.get_metadata_mut()?;
metadata.change_term(last_term_finished_block_num, current_term_id);
metadata.increase_term_id(last_term_finished_block_num);
Ok(())
}

Expand Down
5 changes: 2 additions & 3 deletions state/src/item/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,10 @@ impl Metadata {
self.params = Some(params);
}

pub fn change_term(&mut self, last_term_finished_block_num: u64, current_term_id: u64) {
pub fn increase_term_id(&mut self, last_term_finished_block_num: u64) {
assert!(self.term.last_term_finished_block_num < last_term_finished_block_num);
assert!(self.term.current_term_id < current_term_id);
self.term.last_term_finished_block_num = last_term_finished_block_num;
self.term.current_term_id = current_term_id;
self.term.current_term_id += 1;
}

pub fn last_term_finished_block_num(&self) -> u64 {
Expand Down
2 changes: 1 addition & 1 deletion state/src/traits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ pub trait TopState {
fn store_text(&mut self, key: &H256, text: Text, sig: &Signature) -> StateResult<()>;
fn remove_text(&mut self, key: &H256, sig: &Signature) -> StateResult<()>;

fn change_term_id(&mut self, last_term_finished_block_num: u64, current_term_id: u64) -> StateResult<()>;
fn increase_term_id(&mut self, last_term_finished_block_num: u64) -> StateResult<()>;

fn update_action_data(&mut self, key: &H256, data: Bytes) -> StateResult<()>;
fn remove_action_data(&mut self, key: &H256);
Expand Down