[INFO] updating cached repository sorpaas/etclient [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/sorpaas/etclient [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/sorpaas/etclient" "work/ex/clippy-test-run/sources/stable/gh/sorpaas/etclient"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/sorpaas/etclient'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/sorpaas/etclient" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sorpaas/etclient"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sorpaas/etclient'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1f7129ef71e633dd42327770a2987235c2fabeab [INFO] sha for GitHub repo sorpaas/etclient: 1f7129ef71e633dd42327770a2987235c2fabeab [INFO] validating manifest of sorpaas/etclient 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 sorpaas/etclient 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 sorpaas/etclient [INFO] finished frobbing sorpaas/etclient [INFO] frobbed toml for sorpaas/etclient written to work/ex/clippy-test-run/sources/stable/gh/sorpaas/etclient/Cargo.toml [INFO] started frobbing sorpaas/etclient [INFO] finished frobbing sorpaas/etclient [INFO] frobbed toml for sorpaas/etclient written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sorpaas/etclient/Cargo.toml [INFO] crate sorpaas/etclient has a lockfile. skipping [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 sorpaas/etclient against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/sorpaas/etclient:/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] e992c9ce7d128334d13a469ed3fd1b4f9a527737bcce77877a887ef951454bbe [INFO] running `"docker" "start" "-a" "e992c9ce7d128334d13a469ed3fd1b4f9a527737bcce77877a887ef951454bbe"` [INFO] [stderr] Compiling typenum v1.9.0 [INFO] [stderr] Checking elastic-array-plus v0.9.0 [INFO] [stderr] Checking etcommon-hexutil v0.2.2 [INFO] [stderr] Checking blockchain v0.2.0 [INFO] [stderr] Checking iovec v0.1.0 [INFO] [stderr] Checking time v0.1.38 [INFO] [stderr] Checking memchr v0.1.11 [INFO] [stderr] Compiling secp256k1-plus v0.5.7 [INFO] [stderr] Checking net2 v0.2.31 [INFO] [stderr] Checking tokio-timer-plus v0.1.3 [INFO] [stderr] Checking serde_json v1.0.3 [INFO] [stderr] Checking arrayvec v0.3.23 [INFO] [stderr] Checking aho-corasick v0.5.3 [INFO] [stderr] Checking bytes v0.4.5 [INFO] [stderr] Checking mio v0.6.10 [INFO] [stderr] Checking etcommon-rlp v0.2.2 [INFO] [stderr] Checking url v1.5.1 [INFO] [stderr] Checking rust-crypto v0.2.36 [INFO] [stderr] Checking thread-id v2.0.0 [INFO] [stderr] Compiling serde_derive v1.0.15 [INFO] [stderr] Checking thread_local v0.2.7 [INFO] [stderr] Checking etcommon-bigint v0.2.7 [INFO] [stderr] Checking tokio-io v0.1.3 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Checking tokio-core v0.1.9 [INFO] [stderr] Checking generic-array v0.8.3 [INFO] [stderr] Checking env_logger v0.3.5 [INFO] [stderr] Checking block-buffer v0.2.0 [INFO] [stderr] Checking digest v0.6.2 [INFO] [stderr] Checking sha3 v0.6.0 [INFO] [stderr] Checking ripemd160 v0.6.0 [INFO] [stderr] Checking sha2 v0.6.0 [INFO] [stderr] Checking etcommon-bloom v0.2.1 [INFO] [stderr] Checking etcommon-trie v0.3.8 [INFO] [stderr] Checking dpt v0.2.6 [INFO] [stderr] Checking ethash v0.3.0 [INFO] [stderr] Checking rlpx v0.3.0 [INFO] [stderr] Checking etcommon-block v0.3.2 [INFO] [stderr] Checking sputnikvm v0.7.6 [INFO] [stderr] Checking devp2p v0.3.1 [INFO] [stderr] Checking sputnikvm-stateful v0.7.5 [INFO] [stderr] Checking etclient v0.2.1 (/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:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | 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:19:22 [INFO] [stderr] | [INFO] [stderr] 19 | let mut header = Header { [INFO] [stderr] | ______________________^ [INFO] [stderr] 20 | | parent_hash: H256::default(), [INFO] [stderr] 21 | | ommers_hash: H256::from(Keccak256::digest(&rlp::encode_list(&ommers).to_vec()).as_slice()), [INFO] [stderr] 22 | | beneficiary: Address::default(), [INFO] [stderr] ... | [INFO] [stderr] 34 | | mix_hash: H256::default(), [INFO] [stderr] 35 | | }; [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:27:32 [INFO] [stderr] | [INFO] [stderr] 27 | 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:57:34 [INFO] [stderr] | [INFO] [stderr] 57 | 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:66:36 [INFO] [stderr] | [INFO] [stderr] 66 | 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:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | 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:30:37 [INFO] [stderr] | [INFO] [stderr] 30 | 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:34:37 [INFO] [stderr] | [INFO] [stderr] 34 | 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:77:85 [INFO] [stderr] | [INFO] [stderr] 77 | 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:80:56 [INFO] [stderr] | [INFO] [stderr] 80 | } 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:83:56 [INFO] [stderr] | [INFO] [stderr] 83 | } 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:86:56 [INFO] [stderr] | [INFO] [stderr] 86 | } 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:225:38 [INFO] [stderr] | [INFO] [stderr] 225 | 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:237:42 [INFO] [stderr] | [INFO] [stderr] 237 | 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:260:33 [INFO] [stderr] | [INFO] [stderr] 260 | >(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:261:37 [INFO] [stderr] | [INFO] [stderr] 261 | 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:262:31 [INFO] [stderr] | [INFO] [stderr] 262 | 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:265:33 [INFO] [stderr] | [INFO] [stderr] 265 | >(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:265:52 [INFO] [stderr] | [INFO] [stderr] 265 | >(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:266:37 [INFO] [stderr] | [INFO] [stderr] 266 | 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:267:31 [INFO] [stderr] | [INFO] [stderr] 267 | 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:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | use secp256k1::key::{PublicKey, SecretKey}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `H512` [INFO] [stderr] --> src/main.rs:43:26 [INFO] [stderr] | [INFO] [stderr] 43 | use bigint::{H256, U256, H512}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keccak256` [INFO] [stderr] --> src/main.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `receipts_root` [INFO] [stderr] --> src/main.rs:46:73 [INFO] [stderr] | [INFO] [stderr] 46 | 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:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | 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:224:49 [INFO] [stderr] | [INFO] [stderr] 224 | 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 #228 [INFO] [stderr] --> src/main.rs:152:59 [INFO] [stderr] | [INFO] [stderr] 152 | 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 #228 [INFO] [stderr] --> src/main.rs:167:29 [INFO] [stderr] | [INFO] [stderr] 167 | 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 #228 [INFO] [stderr] --> src/main.rs:199:63 [INFO] [stderr] | [INFO] [stderr] 199 | 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 #228 [INFO] [stderr] --> src/main.rs:298:71 [INFO] [stderr] | [INFO] [stderr] 298 | timeout = Timeout::new(dur, &handle).unwrap().boxed(); [INFO] [stderr] | ^^^^^ [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:36 [INFO] [stderr] | [INFO] [stderr] 2 | use sputnikvm_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:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | 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:19:22 [INFO] [stderr] | [INFO] [stderr] 19 | let mut header = Header { [INFO] [stderr] | ______________________^ [INFO] [stderr] 20 | | parent_hash: H256::default(), [INFO] [stderr] 21 | | ommers_hash: H256::from(Keccak256::digest(&rlp::encode_list(&ommers).to_vec()).as_slice()), [INFO] [stderr] 22 | | beneficiary: Address::default(), [INFO] [stderr] ... | [INFO] [stderr] 34 | | mix_hash: H256::default(), [INFO] [stderr] 35 | | }; [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:27:32 [INFO] [stderr] | [INFO] [stderr] 27 | 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:57:34 [INFO] [stderr] | [INFO] [stderr] 57 | 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:66:36 [INFO] [stderr] | [INFO] [stderr] 66 | 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:30:37 [INFO] [stderr] | [INFO] [stderr] 30 | 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:34:37 [INFO] [stderr] | [INFO] [stderr] 34 | 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:77:85 [INFO] [stderr] | [INFO] [stderr] 77 | 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:80:56 [INFO] [stderr] | [INFO] [stderr] 80 | } 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:83:56 [INFO] [stderr] | [INFO] [stderr] 83 | } 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:86:56 [INFO] [stderr] | [INFO] [stderr] 86 | } 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:225:38 [INFO] [stderr] | [INFO] [stderr] 225 | 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:237:42 [INFO] [stderr] | [INFO] [stderr] 237 | 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:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | use secp256k1::key::{PublicKey, SecretKey}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `H512` [INFO] [stderr] --> src/main.rs:43:26 [INFO] [stderr] | [INFO] [stderr] 43 | use bigint::{H256, U256, H512}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keccak256` [INFO] [stderr] --> src/main.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `receipts_root` [INFO] [stderr] --> src/main.rs:46:73 [INFO] [stderr] | [INFO] [stderr] 46 | 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:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | 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:224:49 [INFO] [stderr] | [INFO] [stderr] 224 | 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: 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:45:12 [INFO] [stderr] | [INFO] [stderr] 45 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `difficulty_bound_divisor` [INFO] [stderr] --> src/validator/mod.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | 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:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | 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:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | 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:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | 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:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | 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:212:29 [INFO] [stderr] | [INFO] [stderr] 212 | 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:222:33 [INFO] [stderr] | [INFO] [stderr] 222 | 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:222:46 [INFO] [stderr] | [INFO] [stderr] 222 | 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:222:52 [INFO] [stderr] | [INFO] [stderr] 222 | 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:242:31 [INFO] [stderr] | [INFO] [stderr] 242 | 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:242:44 [INFO] [stderr] | [INFO] [stderr] 242 | 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:242:50 [INFO] [stderr] | [INFO] [stderr] 242 | 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:143:24 [INFO] [stderr] | [INFO] [stderr] 143 | 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:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | 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:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | 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:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | 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:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | 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:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | 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:150:29 [INFO] [stderr] | [INFO] [stderr] 150 | 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:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | 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:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | 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:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | 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 #228 [INFO] [stderr] --> src/main.rs:152:59 [INFO] [stderr] | [INFO] [stderr] 152 | 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 #228 [INFO] [stderr] --> src/main.rs:167:29 [INFO] [stderr] | [INFO] [stderr] 167 | 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 #228 [INFO] [stderr] --> src/main.rs:199:63 [INFO] [stderr] | [INFO] [stderr] 199 | 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 #228 [INFO] [stderr] --> src/main.rs:298:71 [INFO] [stderr] | [INFO] [stderr] 298 | 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:210:27 [INFO] [stderr] | [INFO] [stderr] 210 | 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:84:92 [INFO] [stderr] | [INFO] [stderr] 84 | 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:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | 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:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | 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:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / loop { [INFO] [stderr] 157 | | let ret = match core.run( [INFO] [stderr] 158 | | client_future [INFO] [stderr] 159 | | .select2(timeout) [INFO] [stderr] ... | [INFO] [stderr] 326 | | client_future = new_client_receiver.into_future(); [INFO] [stderr] 327 | | } [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] 156 | while let Ok(ret) = core.run( [INFO] [stderr] 157 | client_future [INFO] [stderr] 158 | .select2(timeout) [INFO] [stderr] 159 | ) { .. } [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:45:12 [INFO] [stderr] | [INFO] [stderr] 45 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `difficulty_bound_divisor` [INFO] [stderr] --> src/validator/mod.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | 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:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | 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:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | 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:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | 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:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | 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:212:29 [INFO] [stderr] | [INFO] [stderr] 212 | 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:222:33 [INFO] [stderr] | [INFO] [stderr] 222 | 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:222:46 [INFO] [stderr] | [INFO] [stderr] 222 | 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:222:52 [INFO] [stderr] | [INFO] [stderr] 222 | 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:242:31 [INFO] [stderr] | [INFO] [stderr] 242 | 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:242:44 [INFO] [stderr] | [INFO] [stderr] 242 | 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:242:50 [INFO] [stderr] | [INFO] [stderr] 242 | 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:143:24 [INFO] [stderr] | [INFO] [stderr] 143 | 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:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | 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:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | 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:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | 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:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | 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:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | 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:150:29 [INFO] [stderr] | [INFO] [stderr] 150 | 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:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | 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:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | 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:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | 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:210:27 [INFO] [stderr] | [INFO] [stderr] 210 | 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:84:92 [INFO] [stderr] | [INFO] [stderr] 84 | 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:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | 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:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | 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:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / loop { [INFO] [stderr] 157 | | let ret = match core.run( [INFO] [stderr] 158 | | client_future [INFO] [stderr] 159 | | .select2(timeout) [INFO] [stderr] ... | [INFO] [stderr] 326 | | client_future = new_client_receiver.into_future(); [INFO] [stderr] 327 | | } [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] 156 | while let Ok(ret) = core.run( [INFO] [stderr] 157 | client_future [INFO] [stderr] 158 | .select2(timeout) [INFO] [stderr] 159 | ) { .. } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 33.97s [INFO] running `"docker" "inspect" "e992c9ce7d128334d13a469ed3fd1b4f9a527737bcce77877a887ef951454bbe"` [INFO] running `"docker" "rm" "-f" "e992c9ce7d128334d13a469ed3fd1b4f9a527737bcce77877a887ef951454bbe"` [INFO] [stdout] e992c9ce7d128334d13a469ed3fd1b4f9a527737bcce77877a887ef951454bbe