[INFO] crate etclient 0.3.0 is already in cache [INFO] extracting crate etclient 0.3.0 into work/ex/clippy-test-run/sources/stable/reg/etclient/0.3.0 [INFO] extracting crate etclient 0.3.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/etclient/0.3.0 [INFO] validating manifest of etclient-0.3.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of etclient-0.3.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing etclient-0.3.0 [INFO] finished frobbing etclient-0.3.0 [INFO] frobbed toml for etclient-0.3.0 written to work/ex/clippy-test-run/sources/stable/reg/etclient/0.3.0/Cargo.toml [INFO] started frobbing etclient-0.3.0 [INFO] finished frobbing etclient-0.3.0 [INFO] frobbed toml for etclient-0.3.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/etclient/0.3.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting etclient-0.3.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/etclient/0.3.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] d1356601ecaad321416e1c4c972746a4e8ad7b04a94bd882ab93fbb954565be4 [INFO] running `"docker" "start" "-a" "d1356601ecaad321416e1c4c972746a4e8ad7b04a94bd882ab93fbb954565be4"` [INFO] [stderr] Checking ethereum-hexutil v0.2.3 [INFO] [stderr] Checking tokio-timer-plus v0.1.3 [INFO] [stderr] Checking ripemd160 v0.6.0 [INFO] [stderr] Checking libsecp256k1 v0.1.15 [INFO] [stderr] Checking ethereum-rlp v0.2.3 [INFO] [stderr] Checking ethereum-bigint v0.2.9 [INFO] [stderr] Checking ethereum-block-core v0.1.0 [INFO] [stderr] Checking ethereum-bloom v0.2.1 [INFO] [stderr] Checking ethereum-trie v0.3.8 [INFO] [stderr] Checking ethash v0.3.1 [INFO] [stderr] Checking ethereum-block v0.3.5 [INFO] [stderr] Checking rlpx v0.4.1 [INFO] [stderr] Checking dpt v0.3.1 [INFO] [stderr] Checking evm v0.9.4 [INFO] [stderr] Checking evm-stateful v0.9.2 [INFO] [stderr] Checking devp2p v0.4.1 [INFO] [stderr] Checking etclient v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Block`, `TotalHeader`, `Transaction` [INFO] [stderr] --> src/validator/genesis.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use block::{Header, Block, TotalHeader, Transaction, TransactionAction}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DatabaseGuard` [INFO] [stderr] --> src/validator/genesis.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | use trie::{DatabaseGuard, DatabaseOwned, MemoryTrie}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ethash` [INFO] [stderr] --> src/validator/genesis.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ethash; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/validator/genesis.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | header [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/validator/genesis.rs:20:22 [INFO] [stderr] | [INFO] [stderr] 20 | let mut header = Header { [INFO] [stderr] | ______________________^ [INFO] [stderr] 21 | | parent_hash: H256::default(), [INFO] [stderr] 22 | | ommers_hash: H256::from(Keccak256::digest(&rlp::encode_list(&ommers).to_vec()).as_slice()), [INFO] [stderr] 23 | | beneficiary: Address::default(), [INFO] [stderr] ... | [INFO] [stderr] 35 | | mix_hash: H256::default(), [INFO] [stderr] 36 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/genesis.rs:28:32 [INFO] [stderr] | [INFO] [stderr] 28 | difficulty: U256::from(0x400000000usize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0004_0000_0000usize` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/genesis.rs:58:34 [INFO] [stderr] | [INFO] [stderr] 58 | gas_limit: Gas::from(1000000usize), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `1_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/genesis.rs:67:36 [INFO] [stderr] | [INFO] [stderr] 67 | difficulty: U256::from(0x400000000usize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0004_0000_0000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `ethash` [INFO] [stderr] --> src/validator/genesis.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | use ethash; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FixedMemoryTrie` [INFO] [stderr] --> src/validator/mod.rs:3:28 [INFO] [stderr] | [INFO] [stderr] 3 | use trie::{MemoryDatabase, FixedMemoryTrie}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `H64` [INFO] [stderr] --> src/validator/mod.rs:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use bigint::{U256, H256, H64, Gas}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Transaction`, `ommers_hash`, `transactions_root` [INFO] [stderr] --> src/validator/mod.rs:5:43 [INFO] [stderr] | [INFO] [stderr] 5 | use block::{Header, Receipt, TotalHeader, Transaction, Block, Log, TransactionAction, ommers_hash, transactions_root, receipts_root}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keccak256` [INFO] [stderr] --> src/validator/mod.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rlp` [INFO] [stderr] --> src/validator/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use rlp; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:31:37 [INFO] [stderr] | [INFO] [stderr] 31 | let min_difficulty = U256::from(125000); [INFO] [stderr] | ^^^^^^ help: consider: `125_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:35:37 [INFO] [stderr] | [INFO] [stderr] 35 | let frontier_limit = U256::from(1150000); [INFO] [stderr] | ^^^^^^^ help: consider: `1_150_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:78:85 [INFO] [stderr] | [INFO] [stderr] 78 | let mut validator: Box = if block.header.number < U256::from(1150000) { [INFO] [stderr] | ^^^^^^^ help: consider: `1_150_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:81:56 [INFO] [stderr] | [INFO] [stderr] 81 | } else if block.header.number < U256::from(2500000) { [INFO] [stderr] | ^^^^^^^ help: consider: `2_500_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:84:56 [INFO] [stderr] | [INFO] [stderr] 84 | } else if block.header.number < U256::from(3000000) { [INFO] [stderr] | ^^^^^^^ help: consider: `3_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:87:56 [INFO] [stderr] | [INFO] [stderr] 87 | } else if block.header.number < U256::from(5000001) { [INFO] [stderr] | ^^^^^^^ help: consider: `5_000_001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:226:38 [INFO] [stderr] | [INFO] [stderr] 226 | gas_limit: Gas::from(1000000usize), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `1_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:238:42 [INFO] [stderr] | [INFO] [stderr] 238 | gas_limit: Gas::from(1000000usize), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `1_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:261:33 [INFO] [stderr] | [INFO] [stderr] 261 | >(U256::from(17179869184usize), 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `17_179_869_184usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:262:37 [INFO] [stderr] | [INFO] [stderr] 262 | U256::from(1), 1438269988), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_438_269_988` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:263:31 [INFO] [stderr] | [INFO] [stderr] 263 | U256::from(17171480576usize)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `17_171_480_576usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:266:33 [INFO] [stderr] | [INFO] [stderr] 266 | >(U256::from(17171480576usize), 1438269988, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `17_171_480_576usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:266:52 [INFO] [stderr] | [INFO] [stderr] 266 | >(U256::from(17171480576usize), 1438269988, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_438_269_988` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:267:37 [INFO] [stderr] | [INFO] [stderr] 267 | U256::from(2), 1438270017), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_438_270_017` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:268:31 [INFO] [stderr] | [INFO] [stderr] 268 | U256::from(17163096064usize)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `17_163_096_064usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | fn base_reward() -> U256 { U256::from(5000000000000000000usize) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `5_000_000_000_000_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:46:42 [INFO] [stderr] | [INFO] [stderr] 46 | fn era_rounds() -> U256 { U256::from(5000000) } [INFO] [stderr] | ^^^^^^^ help: consider: `5_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:116:42 [INFO] [stderr] | [INFO] [stderr] 116 | let exp_diff_period = U256::from(100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:134:50 [INFO] [stderr] | [INFO] [stderr] 134 | fn pause_block_number() -> U256 { U256::from(3000000) } [INFO] [stderr] | ^^^^^^^ help: consider: `3_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:135:53 [INFO] [stderr] | [INFO] [stderr] 135 | fn continue_block_number() -> U256 { U256::from(5000000) } [INFO] [stderr] | ^^^^^^^ help: consider: `5_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:141:42 [INFO] [stderr] | [INFO] [stderr] 141 | let exp_diff_period = U256::from(100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `PublicKey` [INFO] [stderr] --> src/main.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | use secp256k1::{PublicKey, SecretKey}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `H512` [INFO] [stderr] --> src/main.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | use bigint::{H256, U256, H512}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keccak256` [INFO] [stderr] --> src/main.rs:44:20 [INFO] [stderr] | [INFO] [stderr] 44 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `receipts_root` [INFO] [stderr] --> src/main.rs:45:73 [INFO] [stderr] | [INFO] [stderr] 45 | use block::{Header, Block, Transaction, transactions_root, ommers_hash, receipts_root}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:50:35 [INFO] [stderr] | [INFO] [stderr] 50 | const GENESIS_DIFFICULTY: usize = 17179869184; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `17_179_869_184` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:223:49 [INFO] [stderr] | [INFO] [stderr] 223 | if number == U256::from(1920000) { [INFO] [stderr] | ^^^^^^^ help: consider: `1_920_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:151:59 [INFO] [stderr] | [INFO] [stderr] 151 | let mut timeout = Timeout::new(dur, &handle).unwrap().boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:166:29 [INFO] [stderr] | [INFO] [stderr] 166 | timeout = t.boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:198:63 [INFO] [stderr] | [INFO] [stderr] 198 | timeout = Timeout::new(dur, &handle).unwrap().boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:297:71 [INFO] [stderr] | [INFO] [stderr] 297 | timeout = Timeout::new(dur, &handle).unwrap().boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Digest` [INFO] [stderr] --> src/validator/mod.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Digest` [INFO] [stderr] --> src/main.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 44 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `difficulty_bound_divisor` [INFO] [stderr] --> src/validator/mod.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let difficulty_bound_divisor = U256::from(0x0800); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_difficulty_bound_divisor` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `duration_limit` [INFO] [stderr] --> src/validator/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let duration_limit = 0x0d; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_duration_limit` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `frontier_limit` [INFO] [stderr] --> src/validator/mod.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | let frontier_limit = U256::from(1150000); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_frontier_limit` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | for i in validated_number..headers.len() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `when` [INFO] [stderr] --> src/main.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | let mut when = Instant::now() + dur; [INFO] [stderr] | ^^^^ help: consider using `_when` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `version` [INFO] [stderr] --> src/main.rs:211:29 [INFO] [stderr] | [INFO] [stderr] 211 | node, data, version [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `version: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `max_headers` [INFO] [stderr] --> src/main.rs:221:33 [INFO] [stderr] | [INFO] [stderr] 221 | number, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^^^^^ help: try ignoring the field: `max_headers: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `skip` [INFO] [stderr] --> src/main.rs:221:46 [INFO] [stderr] | [INFO] [stderr] 221 | number, max_headers, skip, reverse [INFO] [stderr] | ^^^^ help: try ignoring the field: `skip: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reverse` [INFO] [stderr] --> src/main.rs:221:52 [INFO] [stderr] | [INFO] [stderr] 221 | number, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `reverse: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `max_headers` [INFO] [stderr] --> src/main.rs:241:31 [INFO] [stderr] | [INFO] [stderr] 241 | hash, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^^^^^ help: try ignoring the field: `max_headers: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `skip` [INFO] [stderr] --> src/main.rs:241:44 [INFO] [stderr] | [INFO] [stderr] 241 | hash, max_headers, skip, reverse [INFO] [stderr] | ^^^^ help: try ignoring the field: `skip: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reverse` [INFO] [stderr] --> src/main.rs:241:50 [INFO] [stderr] | [INFO] [stderr] 241 | hash, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `reverse: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/validator/mod.rs:144:24 [INFO] [stderr] | [INFO] [stderr] 144 | let (mix_hash, result) = self.dag.hashimoto(self.current_block.header.partial_hash(), [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vm` [INFO] [stderr] --> src/validator/mod.rs:222:13 [INFO] [stderr] | [INFO] [stderr] 222 | let vm: SeqTransactionVM = stateful.execute( [INFO] [stderr] | ^^ help: consider using `_vm` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vm` [INFO] [stderr] --> src/validator/mod.rs:234:17 [INFO] [stderr] | [INFO] [stderr] 234 | let vm: SeqTransactionVM = stateful.execute( [INFO] [stderr] | ^^ help: consider using `_vm` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `number` [INFO] [stderr] --> src/patch.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | fn block_reward(number: U256, uncles: usize) -> U256 { P::base_reward() + P::base_reward().shr(5) * U256::from(uncles) } [INFO] [stderr] | ^^^^^^ help: consider using `_number` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `uncles` [INFO] [stderr] --> src/patch.rs:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | fn block_reward(number: U256, uncles: usize) -> U256 { [INFO] [stderr] | ^^^^^^ help: consider using `_uncles` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `distance` [INFO] [stderr] --> src/patch.rs:59:21 [INFO] [stderr] | [INFO] [stderr] 59 | fn uncle_reward(distance: U256) -> U256 { [INFO] [stderr] | ^^^^^^^^ help: consider using `_distance` instead [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `MemoryStateful` [INFO] [stderr] --> src/validator/genesis.rs:2:30 [INFO] [stderr] | [INFO] [stderr] 2 | use evm_stateful::{Stateful, MemoryStateful}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Block`, `TotalHeader`, `Transaction` [INFO] [stderr] --> src/validator/genesis.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use block::{Header, Block, TotalHeader, Transaction, TransactionAction}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DatabaseGuard` [INFO] [stderr] --> src/validator/genesis.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | use trie::{DatabaseGuard, DatabaseOwned, MemoryTrie}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ethash` [INFO] [stderr] --> src/validator/genesis.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ethash; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/validator/genesis.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | header [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/validator/genesis.rs:20:22 [INFO] [stderr] | [INFO] [stderr] 20 | let mut header = Header { [INFO] [stderr] | ______________________^ [INFO] [stderr] 21 | | parent_hash: H256::default(), [INFO] [stderr] 22 | | ommers_hash: H256::from(Keccak256::digest(&rlp::encode_list(&ommers).to_vec()).as_slice()), [INFO] [stderr] 23 | | beneficiary: Address::default(), [INFO] [stderr] ... | [INFO] [stderr] 35 | | mix_hash: H256::default(), [INFO] [stderr] 36 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/genesis.rs:28:32 [INFO] [stderr] | [INFO] [stderr] 28 | difficulty: U256::from(0x400000000usize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0004_0000_0000usize` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/genesis.rs:58:34 [INFO] [stderr] | [INFO] [stderr] 58 | gas_limit: Gas::from(1000000usize), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `1_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/genesis.rs:67:36 [INFO] [stderr] | [INFO] [stderr] 67 | difficulty: U256::from(0x400000000usize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0004_0000_0000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `FixedMemoryTrie` [INFO] [stderr] --> src/validator/mod.rs:3:28 [INFO] [stderr] | [INFO] [stderr] 3 | use trie::{MemoryDatabase, FixedMemoryTrie}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `H64` [INFO] [stderr] --> src/validator/mod.rs:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use bigint::{U256, H256, H64, Gas}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Transaction`, `ommers_hash`, `transactions_root` [INFO] [stderr] --> src/validator/mod.rs:5:43 [INFO] [stderr] | [INFO] [stderr] 5 | use block::{Header, Receipt, TotalHeader, Transaction, Block, Log, TransactionAction, ommers_hash, transactions_root, receipts_root}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keccak256` [INFO] [stderr] --> src/validator/mod.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rlp` [INFO] [stderr] --> src/validator/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use rlp; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:31:37 [INFO] [stderr] | [INFO] [stderr] 31 | let min_difficulty = U256::from(125000); [INFO] [stderr] | ^^^^^^ help: consider: `125_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:35:37 [INFO] [stderr] | [INFO] [stderr] 35 | let frontier_limit = U256::from(1150000); [INFO] [stderr] | ^^^^^^^ help: consider: `1_150_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:78:85 [INFO] [stderr] | [INFO] [stderr] 78 | let mut validator: Box = if block.header.number < U256::from(1150000) { [INFO] [stderr] | ^^^^^^^ help: consider: `1_150_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:81:56 [INFO] [stderr] | [INFO] [stderr] 81 | } else if block.header.number < U256::from(2500000) { [INFO] [stderr] | ^^^^^^^ help: consider: `2_500_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:84:56 [INFO] [stderr] | [INFO] [stderr] 84 | } else if block.header.number < U256::from(3000000) { [INFO] [stderr] | ^^^^^^^ help: consider: `3_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:87:56 [INFO] [stderr] | [INFO] [stderr] 87 | } else if block.header.number < U256::from(5000001) { [INFO] [stderr] | ^^^^^^^ help: consider: `5_000_001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:226:38 [INFO] [stderr] | [INFO] [stderr] 226 | gas_limit: Gas::from(1000000usize), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `1_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/validator/mod.rs:238:42 [INFO] [stderr] | [INFO] [stderr] 238 | gas_limit: Gas::from(1000000usize), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `1_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | fn base_reward() -> U256 { U256::from(5000000000000000000usize) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `5_000_000_000_000_000_000usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:46:42 [INFO] [stderr] | [INFO] [stderr] 46 | fn era_rounds() -> U256 { U256::from(5000000) } [INFO] [stderr] | ^^^^^^^ help: consider: `5_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:116:42 [INFO] [stderr] | [INFO] [stderr] 116 | let exp_diff_period = U256::from(100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:134:50 [INFO] [stderr] | [INFO] [stderr] 134 | fn pause_block_number() -> U256 { U256::from(3000000) } [INFO] [stderr] | ^^^^^^^ help: consider: `3_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:135:53 [INFO] [stderr] | [INFO] [stderr] 135 | fn continue_block_number() -> U256 { U256::from(5000000) } [INFO] [stderr] | ^^^^^^^ help: consider: `5_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/patch.rs:141:42 [INFO] [stderr] | [INFO] [stderr] 141 | let exp_diff_period = U256::from(100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `PublicKey` [INFO] [stderr] --> src/main.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | use secp256k1::{PublicKey, SecretKey}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `H512` [INFO] [stderr] --> src/main.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | use bigint::{H256, U256, H512}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keccak256` [INFO] [stderr] --> src/main.rs:44:20 [INFO] [stderr] | [INFO] [stderr] 44 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `receipts_root` [INFO] [stderr] --> src/main.rs:45:73 [INFO] [stderr] | [INFO] [stderr] 45 | use block::{Header, Block, Transaction, transactions_root, ommers_hash, receipts_root}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:50:35 [INFO] [stderr] | [INFO] [stderr] 50 | const GENESIS_DIFFICULTY: usize = 17179869184; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `17_179_869_184` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:223:49 [INFO] [stderr] | [INFO] [stderr] 223 | if number == U256::from(1920000) { [INFO] [stderr] | ^^^^^^^ help: consider: `1_920_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | let mut client = ETHStream::new( [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | let mut got_bodies_for_current = true; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | let mut when = Instant::now() + dur; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:149:29 [INFO] [stderr] | [INFO] [stderr] 149 | let (mut client_sender, mut client_receiver) = client.split(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/validator/genesis.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | let mut header = Header { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/validator/genesis.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | let mut accounts: Vec<(&String, &JSONAccount)> = genesis_accounts.iter().collect(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NETWORK_ID` [INFO] [stderr] --> src/main.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | const NETWORK_ID: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:151:59 [INFO] [stderr] | [INFO] [stderr] 151 | let mut timeout = Timeout::new(dur, &handle).unwrap().boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:166:29 [INFO] [stderr] | [INFO] [stderr] 166 | timeout = t.boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:198:63 [INFO] [stderr] | [INFO] [stderr] 198 | timeout = Timeout::new(dur, &handle).unwrap().boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'futures::Future::boxed': removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stderr] --> src/main.rs:297:71 [INFO] [stderr] | [INFO] [stderr] 297 | timeout = Timeout::new(dur, &handle).unwrap().boxed(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/validator/mod.rs:211:27 [INFO] [stderr] | [INFO] [stderr] 211 | used_gas: used_gas.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `used_gas` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:83:92 [INFO] [stderr] | [INFO] [stderr] 83 | processor: &mut EthereumProcessor, validated_number: U256, headers: &[Header], bodies: &HashMap<(H256, H256), (Vec, Vec
)> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: attempt to mutate range bound within loop; note that the range of the loop is unchanged [INFO] [stderr] --> src/main.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | validated_number += 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mut_range_bound)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | env_logger::init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | / loop { [INFO] [stderr] 156 | | let ret = match core.run( [INFO] [stderr] 157 | | client_future [INFO] [stderr] 158 | | .select2(timeout) [INFO] [stderr] ... | [INFO] [stderr] 325 | | client_future = new_client_receiver.into_future(); [INFO] [stderr] 326 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 155 | while let Ok(ret) = core.run( [INFO] [stderr] 156 | client_future [INFO] [stderr] 157 | .select2(timeout) [INFO] [stderr] 158 | ) { .. } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `Digest` [INFO] [stderr] --> src/validator/mod.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Digest` [INFO] [stderr] --> src/main.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 44 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `difficulty_bound_divisor` [INFO] [stderr] --> src/validator/mod.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let difficulty_bound_divisor = U256::from(0x0800); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_difficulty_bound_divisor` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `duration_limit` [INFO] [stderr] --> src/validator/mod.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let duration_limit = 0x0d; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_duration_limit` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `frontier_limit` [INFO] [stderr] --> src/validator/mod.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | let frontier_limit = U256::from(1150000); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_frontier_limit` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | for i in validated_number..headers.len() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `when` [INFO] [stderr] --> src/main.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | let mut when = Instant::now() + dur; [INFO] [stderr] | ^^^^ help: consider using `_when` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `version` [INFO] [stderr] --> src/main.rs:211:29 [INFO] [stderr] | [INFO] [stderr] 211 | node, data, version [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `version: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `max_headers` [INFO] [stderr] --> src/main.rs:221:33 [INFO] [stderr] | [INFO] [stderr] 221 | number, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^^^^^ help: try ignoring the field: `max_headers: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `skip` [INFO] [stderr] --> src/main.rs:221:46 [INFO] [stderr] | [INFO] [stderr] 221 | number, max_headers, skip, reverse [INFO] [stderr] | ^^^^ help: try ignoring the field: `skip: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reverse` [INFO] [stderr] --> src/main.rs:221:52 [INFO] [stderr] | [INFO] [stderr] 221 | number, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `reverse: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `max_headers` [INFO] [stderr] --> src/main.rs:241:31 [INFO] [stderr] | [INFO] [stderr] 241 | hash, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^^^^^ help: try ignoring the field: `max_headers: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `skip` [INFO] [stderr] --> src/main.rs:241:44 [INFO] [stderr] | [INFO] [stderr] 241 | hash, max_headers, skip, reverse [INFO] [stderr] | ^^^^ help: try ignoring the field: `skip: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reverse` [INFO] [stderr] --> src/main.rs:241:50 [INFO] [stderr] | [INFO] [stderr] 241 | hash, max_headers, skip, reverse [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `reverse: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/validator/mod.rs:144:24 [INFO] [stderr] | [INFO] [stderr] 144 | let (mix_hash, result) = self.dag.hashimoto(self.current_block.header.partial_hash(), [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vm` [INFO] [stderr] --> src/validator/mod.rs:222:13 [INFO] [stderr] | [INFO] [stderr] 222 | let vm: SeqTransactionVM = stateful.execute( [INFO] [stderr] | ^^ help: consider using `_vm` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vm` [INFO] [stderr] --> src/validator/mod.rs:234:17 [INFO] [stderr] | [INFO] [stderr] 234 | let vm: SeqTransactionVM = stateful.execute( [INFO] [stderr] | ^^ help: consider using `_vm` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `number` [INFO] [stderr] --> src/patch.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | fn block_reward(number: U256, uncles: usize) -> U256 { P::base_reward() + P::base_reward().shr(5) * U256::from(uncles) } [INFO] [stderr] | ^^^^^^ help: consider using `_number` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `uncles` [INFO] [stderr] --> src/patch.rs:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | fn block_reward(number: U256, uncles: usize) -> U256 { [INFO] [stderr] | ^^^^^^ help: consider using `_uncles` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `distance` [INFO] [stderr] --> src/patch.rs:59:21 [INFO] [stderr] | [INFO] [stderr] 59 | fn uncle_reward(distance: U256) -> U256 { [INFO] [stderr] | ^^^^^^^^ help: consider using `_distance` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | let mut client = ETHStream::new( [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | let mut got_bodies_for_current = true; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | let mut when = Instant::now() + dur; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:149:29 [INFO] [stderr] | [INFO] [stderr] 149 | let (mut client_sender, mut client_receiver) = client.split(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/validator/genesis.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | let mut header = Header { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/validator/genesis.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | let mut accounts: Vec<(&String, &JSONAccount)> = genesis_accounts.iter().collect(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NETWORK_ID` [INFO] [stderr] --> src/main.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | const NETWORK_ID: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/validator/mod.rs:211:27 [INFO] [stderr] | [INFO] [stderr] 211 | used_gas: used_gas.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `used_gas` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:83:92 [INFO] [stderr] | [INFO] [stderr] 83 | processor: &mut EthereumProcessor, validated_number: U256, headers: &[Header], bodies: &HashMap<(H256, H256), (Vec, Vec
)> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: attempt to mutate range bound within loop; note that the range of the loop is unchanged [INFO] [stderr] --> src/main.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | validated_number += 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mut_range_bound)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | env_logger::init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | / loop { [INFO] [stderr] 156 | | let ret = match core.run( [INFO] [stderr] 157 | | client_future [INFO] [stderr] 158 | | .select2(timeout) [INFO] [stderr] ... | [INFO] [stderr] 325 | | client_future = new_client_receiver.into_future(); [INFO] [stderr] 326 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 155 | while let Ok(ret) = core.run( [INFO] [stderr] 156 | client_future [INFO] [stderr] 157 | .select2(timeout) [INFO] [stderr] 158 | ) { .. } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 41.83s [INFO] running `"docker" "inspect" "d1356601ecaad321416e1c4c972746a4e8ad7b04a94bd882ab93fbb954565be4"` [INFO] running `"docker" "rm" "-f" "d1356601ecaad321416e1c4c972746a4e8ad7b04a94bd882ab93fbb954565be4"` [INFO] [stdout] d1356601ecaad321416e1c4c972746a4e8ad7b04a94bd882ab93fbb954565be4