From c8d2237f0adab4412e7ec2dbd045e79dfc741048 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sun, 22 May 2016 11:47:17 +0200 Subject: [PATCH] Fix is_syncing so it's false as long as the update is trivial. (#1122) --- rpc/src/v1/impls/eth.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/rpc/src/v1/impls/eth.rs b/rpc/src/v1/impls/eth.rs index 4ac68388c..9a542ea2b 100644 --- a/rpc/src/v1/impls/eth.rs +++ b/rpc/src/v1/impls/eth.rs @@ -234,11 +234,17 @@ impl Eth for EthClient let status = take_weak!(self.sync).status(); let res = match status.state { SyncState::Idle => SyncStatus::None, - SyncState::Waiting | SyncState::Blocks | SyncState::NewBlocks | SyncState::ChainHead => SyncStatus::Info(SyncInfo { - starting_block: U256::from(status.start_block_number), - current_block: U256::from(take_weak!(self.client).chain_info().best_block_number), - highest_block: U256::from(status.highest_block_number.unwrap_or(status.start_block_number)) - }) + SyncState::Waiting | SyncState::Blocks | SyncState::NewBlocks | SyncState::ChainHead => { + let info = SyncInfo { + starting_block: U256::from(status.start_block_number), + current_block: U256::from(take_weak!(self.client).chain_info().best_block_number), + highest_block: U256::from(status.highest_block_number.unwrap_or(status.start_block_number)) + }; + match info.highest_block > info.starting_block + U256::from(6) { + true => SyncStatus::Info(info), + false => SyncStatus::None, + } + } }; to_value(&res) }