2.3.8 stable backports (#10507)
* version: bump stable * Add additional request tests (#10503)
This commit is contained in:
parent
7d1415a253
commit
a39aaacb8a
12
Cargo.lock
generated
12
Cargo.lock
generated
@ -2394,7 +2394,7 @@ dependencies = [
|
|||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"panic_hook 0.1.0",
|
"panic_hook 0.1.0",
|
||||||
"parity-ethereum 2.3.7",
|
"parity-ethereum 2.3.8",
|
||||||
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -2412,7 +2412,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parity-ethereum"
|
name = "parity-ethereum"
|
||||||
version = "2.3.7"
|
version = "2.3.8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2463,7 +2463,7 @@ dependencies = [
|
|||||||
"parity-rpc 1.12.0",
|
"parity-rpc 1.12.0",
|
||||||
"parity-runtime 0.1.0",
|
"parity-runtime 0.1.0",
|
||||||
"parity-updater 1.12.0",
|
"parity-updater 1.12.0",
|
||||||
"parity-version 2.3.7",
|
"parity-version 2.3.8",
|
||||||
"parity-whisper 0.1.0",
|
"parity-whisper 0.1.0",
|
||||||
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2615,7 +2615,7 @@ dependencies = [
|
|||||||
"parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-runtime 0.1.0",
|
"parity-runtime 0.1.0",
|
||||||
"parity-updater 1.12.0",
|
"parity-updater 1.12.0",
|
||||||
"parity-version 2.3.7",
|
"parity-version 2.3.8",
|
||||||
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"patricia-trie 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"patricia-trie 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2713,7 +2713,7 @@ dependencies = [
|
|||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-hash-fetch 1.12.0",
|
"parity-hash-fetch 1.12.0",
|
||||||
"parity-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-version 2.3.7",
|
"parity-version 2.3.8",
|
||||||
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2723,7 +2723,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parity-version"
|
name = "parity-version"
|
||||||
version = "2.3.7"
|
version = "2.3.8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
description = "Parity Ethereum client"
|
description = "Parity Ethereum client"
|
||||||
name = "parity-ethereum"
|
name = "parity-ethereum"
|
||||||
# NOTE Make sure to update util/version/Cargo.toml as well
|
# NOTE Make sure to update util/version/Cargo.toml as well
|
||||||
version = "2.3.7"
|
version = "2.3.8"
|
||||||
license = "GPL-3.0"
|
license = "GPL-3.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
|
||||||
|
@ -255,4 +255,78 @@ mod tests {
|
|||||||
hash: Field::BackReference(0, 0),
|
hash: Field::BackReference(0, 0),
|
||||||
})).unwrap();
|
})).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn batch_tx_index_backreference() {
|
||||||
|
let mut builder = Builder::default();
|
||||||
|
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||||
|
num: 100.into(), // header proof puts hash at output 0.
|
||||||
|
})).unwrap();
|
||||||
|
builder.push(Request::TransactionIndex(IncompleteTransactionIndexRequest {
|
||||||
|
hash: Field::BackReference(0, 0),
|
||||||
|
})).unwrap();
|
||||||
|
|
||||||
|
let mut batch = builder.build();
|
||||||
|
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Hash(42.into())));
|
||||||
|
|
||||||
|
assert!(batch.next_complete().is_some());
|
||||||
|
batch.answered += 1;
|
||||||
|
assert!(batch.next_complete().is_some());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
fn batch_tx_index_backreference_wrong_output() {
|
||||||
|
let mut builder = Builder::default();
|
||||||
|
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||||
|
num: 100.into(), // header proof puts hash at output 0.
|
||||||
|
})).unwrap();
|
||||||
|
builder.push(Request::TransactionIndex(IncompleteTransactionIndexRequest {
|
||||||
|
hash: Field::BackReference(0, 0),
|
||||||
|
})).unwrap();
|
||||||
|
|
||||||
|
let mut batch = builder.build();
|
||||||
|
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Number(42)));
|
||||||
|
|
||||||
|
batch.next_complete();
|
||||||
|
batch.answered += 1;
|
||||||
|
batch.next_complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn batch_receipts_backreference() {
|
||||||
|
let mut builder = Builder::default();
|
||||||
|
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||||
|
num: 100.into(), // header proof puts hash at output 0.
|
||||||
|
})).unwrap();
|
||||||
|
builder.push(Request::Receipts(IncompleteReceiptsRequest {
|
||||||
|
hash: Field::BackReference(0, 0),
|
||||||
|
})).unwrap();
|
||||||
|
|
||||||
|
let mut batch = builder.build();
|
||||||
|
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Hash(42.into())));
|
||||||
|
|
||||||
|
assert!(batch.next_complete().is_some());
|
||||||
|
batch.answered += 1;
|
||||||
|
assert!(batch.next_complete().is_some());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
fn batch_receipts_backreference_wrong_output() {
|
||||||
|
let mut builder = Builder::default();
|
||||||
|
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||||
|
num: 100.into(), // header proof puts hash at output 0.
|
||||||
|
})).unwrap();
|
||||||
|
builder.push(Request::Receipts(IncompleteReceiptsRequest {
|
||||||
|
hash: Field::BackReference(0, 0),
|
||||||
|
})).unwrap();
|
||||||
|
|
||||||
|
let mut batch = builder.build();
|
||||||
|
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Number(42)));
|
||||||
|
|
||||||
|
batch.next_complete();
|
||||||
|
batch.answered += 1;
|
||||||
|
batch.next_complete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -907,7 +907,7 @@ pub mod transaction_index {
|
|||||||
fn fill<F>(&mut self, oracle: F) where F: Fn(usize, usize) -> Result<Output, NoSuchOutput> {
|
fn fill<F>(&mut self, oracle: F) where F: Fn(usize, usize) -> Result<Output, NoSuchOutput> {
|
||||||
if let Field::BackReference(req, idx) = self.hash {
|
if let Field::BackReference(req, idx) = self.hash {
|
||||||
self.hash = match oracle(req, idx) {
|
self.hash = match oracle(req, idx) {
|
||||||
Ok(Output::Number(hash)) => Field::Scalar(hash.into()),
|
Ok(Output::Hash(hash)) => Field::Scalar(hash.into()),
|
||||||
_ => Field::BackReference(req, idx),
|
_ => Field::BackReference(req, idx),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -982,7 +982,7 @@ pub mod block_receipts {
|
|||||||
fn fill<F>(&mut self, oracle: F) where F: Fn(usize, usize) -> Result<Output, NoSuchOutput> {
|
fn fill<F>(&mut self, oracle: F) where F: Fn(usize, usize) -> Result<Output, NoSuchOutput> {
|
||||||
if let Field::BackReference(req, idx) = self.hash {
|
if let Field::BackReference(req, idx) = self.hash {
|
||||||
self.hash = match oracle(req, idx) {
|
self.hash = match oracle(req, idx) {
|
||||||
Ok(Output::Number(hash)) => Field::Scalar(hash.into()),
|
Ok(Output::Hash(hash)) => Field::Scalar(hash.into()),
|
||||||
_ => Field::BackReference(req, idx),
|
_ => Field::BackReference(req, idx),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "parity-version"
|
name = "parity-version"
|
||||||
# NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION)
|
# NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION)
|
||||||
version = "2.3.7"
|
version = "2.3.8"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user