Identity fix (#10128)
* fix #10125 fix service transaction version detection if --identity is enabled, change test to match how --identity actually works * fix wrong var * get the index of v, not / * idx, not idx.len() * Update ethcore/sync/src/chain/propagator.rs Co-Authored-By: joshua-mir <43032097+joshua-mir@users.noreply.github.com> * Update ethcore/sync/src/chain/propagator.rs Co-Authored-By: joshua-mir <43032097+joshua-mir@users.noreply.github.com> * change version prefix to a const * space Co-Authored-By: joshua-mir <43032097+joshua-mir@users.noreply.github.com>
This commit is contained in:
parent
801b8191ef
commit
130901e820
@ -45,13 +45,13 @@ fn accepts_service_transaction(client_id: &str) -> bool {
|
|||||||
// Parity versions starting from this will accept service-transactions
|
// Parity versions starting from this will accept service-transactions
|
||||||
const SERVICE_TRANSACTIONS_VERSION: (u32, u32) = (1u32, 6u32);
|
const SERVICE_TRANSACTIONS_VERSION: (u32, u32) = (1u32, 6u32);
|
||||||
// Parity client string prefix
|
// Parity client string prefix
|
||||||
const LEGACY_CLIENT_ID_PREFIX: &'static str = "Parity/v";
|
const LEGACY_CLIENT_ID_PREFIX: &'static str = "Parity/";
|
||||||
const PARITY_CLIENT_ID_PREFIX: &'static str = "Parity-Ethereum/v";
|
const PARITY_CLIENT_ID_PREFIX: &'static str = "Parity-Ethereum/";
|
||||||
|
const VERSION_PREFIX: &'static str = "/v";
|
||||||
let splitted = if client_id.starts_with(LEGACY_CLIENT_ID_PREFIX) {
|
|
||||||
client_id[LEGACY_CLIENT_ID_PREFIX.len()..].split('.')
|
let idx = client_id.rfind(VERSION_PREFIX).map(|idx| idx + VERSION_PREFIX.len()).unwrap_or(client_id.len());
|
||||||
} else if client_id.starts_with(PARITY_CLIENT_ID_PREFIX) {
|
let splitted = if client_id.starts_with(LEGACY_CLIENT_ID_PREFIX) || client_id.starts_with(PARITY_CLIENT_ID_PREFIX) {
|
||||||
client_id[PARITY_CLIENT_ID_PREFIX.len()..].split('.')
|
client_id[idx..].split('.')
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
@ -599,7 +599,7 @@ mod tests {
|
|||||||
io.peers_info.insert(3, "Parity/v1.5".to_owned());
|
io.peers_info.insert(3, "Parity/v1.5".to_owned());
|
||||||
// and peer#4 is Parity, accepting service transactions
|
// and peer#4 is Parity, accepting service transactions
|
||||||
insert_dummy_peer(&mut sync, 4, block_hash);
|
insert_dummy_peer(&mut sync, 4, block_hash);
|
||||||
io.peers_info.insert(4, "Parity-Ethereum/v2.7.3-ABCDEFGH".to_owned());
|
io.peers_info.insert(4, "Parity-Ethereum/ABCDEFGH/v2.7.3".to_owned());
|
||||||
|
|
||||||
// and new service transaction is propagated to peers
|
// and new service transaction is propagated to peers
|
||||||
SyncPropagator::propagate_new_transactions(&mut sync, &mut io, || true);
|
SyncPropagator::propagate_new_transactions(&mut sync, &mut io, || true);
|
||||||
|
Loading…
Reference in New Issue
Block a user