From f231440480a73133d39fa7f7a1e716c41dac6873 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 26 Mar 2016 00:22:09 +0100 Subject: [PATCH 1/3] Use network id for the web3_net_version return. --- rpc/src/v1/impls/net.rs | 2 +- rpc/src/v1/tests/helpers/sync_provider.rs | 6 ++++-- rpc/src/v1/tests/net.rs | 4 ++-- sync/src/chain.rs | 3 +++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/rpc/src/v1/impls/net.rs b/rpc/src/v1/impls/net.rs index e52fc0bd4..fb502e6cf 100644 --- a/rpc/src/v1/impls/net.rs +++ b/rpc/src/v1/impls/net.rs @@ -36,7 +36,7 @@ impl NetClient where S: SyncProvider { impl Net for NetClient where S: SyncProvider + 'static { fn version(&self, _: Params) -> Result { - Ok(Value::String(format!("{}", take_weak!(self.sync).status().protocol_version).to_owned())) + Ok(Value::String(format!("{}", take_weak!(self.sync).status().network_id).to_owned())) } fn peer_count(&self, _params: Params) -> Result { diff --git a/rpc/src/v1/tests/helpers/sync_provider.rs b/rpc/src/v1/tests/helpers/sync_provider.rs index 48b4f55a9..527974140 100644 --- a/rpc/src/v1/tests/helpers/sync_provider.rs +++ b/rpc/src/v1/tests/helpers/sync_provider.rs @@ -16,13 +16,14 @@ //! Test implementation of SyncProvider. +use util::U256; use ethsync::{SyncProvider, SyncStatus, SyncState}; use std::sync::{RwLock}; /// TestSyncProvider config. pub struct Config { /// Protocol version. - pub protocol_version: u8, + pub network_id: U256, /// Number of peers. pub num_peers: usize, } @@ -39,7 +40,8 @@ impl TestSyncProvider { TestSyncProvider { status: RwLock::new(SyncStatus { state: SyncState::NotSynced, - protocol_version: config.protocol_version, + network_id: config.network_id, + protocol_version: 63, start_block_number: 0, last_imported_block_number: None, highest_block_number: None, diff --git a/rpc/src/v1/tests/net.rs b/rpc/src/v1/tests/net.rs index e24045ca6..da42b4241 100644 --- a/rpc/src/v1/tests/net.rs +++ b/rpc/src/v1/tests/net.rs @@ -21,7 +21,7 @@ use v1::tests::helpers::{Config, TestSyncProvider}; fn sync_provider() -> Arc { Arc::new(TestSyncProvider::new(Config { - protocol_version: 65, + network_id: 3, num_peers: 120, })) } @@ -34,7 +34,7 @@ fn rpc_net_version() { io.add_delegate(net); let request = r#"{"jsonrpc": "2.0", "method": "net_version", "params": [], "id": 1}"#; - let response = r#"{"jsonrpc":"2.0","result":"65","id":1}"#; + let response = r#"{"jsonrpc":"2.0","result":"3","id":1}"#; assert_eq!(io.handle_request(request), Some(response.to_owned())); } diff --git a/sync/src/chain.rs b/sync/src/chain.rs index 4fd386333..41afbea1c 100644 --- a/sync/src/chain.rs +++ b/sync/src/chain.rs @@ -125,6 +125,8 @@ pub struct SyncStatus { pub state: SyncState, /// Syncing protocol version. That's the maximum protocol version we connect to. pub protocol_version: u8, + /// The underlying p2p network version. + pub network_id: U256, /// BlockChain height for the moment the sync started. pub start_block_number: BlockNumber, /// Last fully downloaded and imported block number (if any). @@ -249,6 +251,7 @@ impl ChainSync { SyncStatus { state: self.state.clone(), protocol_version: 63, + network_id: self.network_id, start_block_number: self.starting_block, last_imported_block_number: self.last_imported_block, highest_block_number: self.highest_block, From b30fc3a7155ffc20047a62d9171fb47678ec35cc Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 26 Mar 2016 00:53:35 +0100 Subject: [PATCH 2/3] Fix build. --- rpc/src/v1/tests/eth.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpc/src/v1/tests/eth.rs b/rpc/src/v1/tests/eth.rs index 209b95ded..815321a73 100644 --- a/rpc/src/v1/tests/eth.rs +++ b/rpc/src/v1/tests/eth.rs @@ -40,7 +40,7 @@ fn accounts_provider() -> Arc { fn sync_provider() -> Arc { Arc::new(TestSyncProvider::new(Config { - protocol_version: 65, + network_version: 65, num_peers: 120, })) } From 52726088f3cb34381117731696dafde5faa27fb8 Mon Sep 17 00:00:00 2001 From: NikVolf Date: Sat, 26 Mar 2016 04:06:40 +0300 Subject: [PATCH 3/3] actually fix build --- rpc/src/v1/tests/eth.rs | 4 ++-- rpc/src/v1/tests/net.rs | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/rpc/src/v1/tests/eth.rs b/rpc/src/v1/tests/eth.rs index 815321a73..182f6c368 100644 --- a/rpc/src/v1/tests/eth.rs +++ b/rpc/src/v1/tests/eth.rs @@ -40,7 +40,7 @@ fn accounts_provider() -> Arc { fn sync_provider() -> Arc { Arc::new(TestSyncProvider::new(Config { - network_version: 65, + network_id: U256::from(3), num_peers: 120, })) } @@ -83,7 +83,7 @@ impl Default for EthTester { #[test] fn rpc_eth_protocol_version() { let request = r#"{"jsonrpc": "2.0", "method": "eth_protocolVersion", "params": [], "id": 1}"#; - let response = r#"{"jsonrpc":"2.0","result":"65","id":1}"#; + let response = r#"{"jsonrpc":"2.0","result":"63","id":1}"#; assert_eq!(EthTester::default().io.handle_request(request), Some(response.to_owned())); } diff --git a/rpc/src/v1/tests/net.rs b/rpc/src/v1/tests/net.rs index da42b4241..036ced168 100644 --- a/rpc/src/v1/tests/net.rs +++ b/rpc/src/v1/tests/net.rs @@ -18,10 +18,11 @@ use std::sync::Arc; use jsonrpc_core::IoHandler; use v1::{Net, NetClient}; use v1::tests::helpers::{Config, TestSyncProvider}; +use util::numbers::*; fn sync_provider() -> Arc { Arc::new(TestSyncProvider::new(Config { - network_id: 3, + network_id: U256::from(3), num_peers: 120, })) }