Skip to content
This repository was archived by the owner on Nov 6, 2020. It is now read-only.

Commit 33860c3

Browse files
authored
2.4.3 beta backports (#10508)
* version: bump beta * Add additional request tests (#10503)
1 parent e1c1ecf commit 33860c3

File tree

5 files changed

+84
-10
lines changed

5 files changed

+84
-10
lines changed

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
description = "Parity Ethereum client"
33
name = "parity-ethereum"
44
# NOTE Make sure to update util/version/Cargo.toml as well
5-
version = "2.4.2"
5+
version = "2.4.3"
66
license = "GPL-3.0"
77
authors = ["Parity Technologies <admin@parity.io>"]
88

ethcore/light/src/types/request/batch.rs

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,4 +255,78 @@ mod tests {
255255
hash: Field::BackReference(0, 0),
256256
})).unwrap();
257257
}
258+
259+
#[test]
260+
fn batch_tx_index_backreference() {
261+
let mut builder = Builder::default();
262+
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
263+
num: 100.into(), // header proof puts hash at output 0.
264+
})).unwrap();
265+
builder.push(Request::TransactionIndex(IncompleteTransactionIndexRequest {
266+
hash: Field::BackReference(0, 0),
267+
})).unwrap();
268+
269+
let mut batch = builder.build();
270+
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Hash(42.into())));
271+
272+
assert!(batch.next_complete().is_some());
273+
batch.answered += 1;
274+
assert!(batch.next_complete().is_some());
275+
}
276+
277+
#[test]
278+
#[should_panic]
279+
fn batch_tx_index_backreference_wrong_output() {
280+
let mut builder = Builder::default();
281+
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
282+
num: 100.into(), // header proof puts hash at output 0.
283+
})).unwrap();
284+
builder.push(Request::TransactionIndex(IncompleteTransactionIndexRequest {
285+
hash: Field::BackReference(0, 0),
286+
})).unwrap();
287+
288+
let mut batch = builder.build();
289+
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Number(42)));
290+
291+
batch.next_complete();
292+
batch.answered += 1;
293+
batch.next_complete();
294+
}
295+
296+
#[test]
297+
fn batch_receipts_backreference() {
298+
let mut builder = Builder::default();
299+
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
300+
num: 100.into(), // header proof puts hash at output 0.
301+
})).unwrap();
302+
builder.push(Request::Receipts(IncompleteReceiptsRequest {
303+
hash: Field::BackReference(0, 0),
304+
})).unwrap();
305+
306+
let mut batch = builder.build();
307+
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Hash(42.into())));
308+
309+
assert!(batch.next_complete().is_some());
310+
batch.answered += 1;
311+
assert!(batch.next_complete().is_some());
312+
}
313+
314+
#[test]
315+
#[should_panic]
316+
fn batch_receipts_backreference_wrong_output() {
317+
let mut builder = Builder::default();
318+
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
319+
num: 100.into(), // header proof puts hash at output 0.
320+
})).unwrap();
321+
builder.push(Request::Receipts(IncompleteReceiptsRequest {
322+
hash: Field::BackReference(0, 0),
323+
})).unwrap();
324+
325+
let mut batch = builder.build();
326+
batch.requests[1].fill(|_req_idx, _out_idx| Ok(Output::Number(42)));
327+
328+
batch.next_complete();
329+
batch.answered += 1;
330+
batch.next_complete();
331+
}
258332
}

ethcore/light/src/types/request/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -907,7 +907,7 @@ pub mod transaction_index {
907907
fn fill<F>(&mut self, oracle: F) where F: Fn(usize, usize) -> Result<Output, NoSuchOutput> {
908908
if let Field::BackReference(req, idx) = self.hash {
909909
self.hash = match oracle(req, idx) {
910-
Ok(Output::Number(hash)) => Field::Scalar(hash.into()),
910+
Ok(Output::Hash(hash)) => Field::Scalar(hash.into()),
911911
_ => Field::BackReference(req, idx),
912912
}
913913
}
@@ -982,7 +982,7 @@ pub mod block_receipts {
982982
fn fill<F>(&mut self, oracle: F) where F: Fn(usize, usize) -> Result<Output, NoSuchOutput> {
983983
if let Field::BackReference(req, idx) = self.hash {
984984
self.hash = match oracle(req, idx) {
985-
Ok(Output::Number(hash)) => Field::Scalar(hash.into()),
985+
Ok(Output::Hash(hash)) => Field::Scalar(hash.into()),
986986
_ => Field::BackReference(req, idx),
987987
}
988988
}

util/version/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[package]
44
name = "parity-version"
55
# NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION)
6-
version = "2.4.2"
6+
version = "2.4.3"
77
authors = ["Parity Technologies <admin@parity.io>"]
88
build = "build.rs"
99

0 commit comments

Comments
 (0)