[INFO] cloning repository https://github.com/grimble-currency/grimble
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/grimble-currency/grimble" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgrimble-currency%2Fgrimble", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgrimble-currency%2Fgrimble'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b7ade085cffd671b8c303a4f87892a0389664596
[INFO] checking grimble-currency/grimble against 1.55.0 for beta-1.56-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgrimble-currency%2Fgrimble" "/workspace/builds/worker-11/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-11/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/grimble-currency/grimble on toolchain 1.55.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.55.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/grimble-currency/grimble
[INFO] finished tweaking git repo https://github.com/grimble-currency/grimble
[INFO] tweaked toml for git repo https://github.com/grimble-currency/grimble written to /workspace/builds/worker-11/source/Cargo.toml
[INFO] crate git repo https://github.com/grimble-currency/grimble already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.55.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9dfbb2d116c2b72ecfe6b830b48bd396f83f2c5656e773cc365d2d883ea19ab4
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "9dfbb2d116c2b72ecfe6b830b48bd396f83f2c5656e773cc365d2d883ea19ab4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9dfbb2d116c2b72ecfe6b830b48bd396f83f2c5656e773cc365d2d883ea19ab4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9dfbb2d116c2b72ecfe6b830b48bd396f83f2c5656e773cc365d2d883ea19ab4", kill_on_drop: false }`
[INFO] [stdout] 9dfbb2d116c2b72ecfe6b830b48bd396f83f2c5656e773cc365d2d883ea19ab4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6a8c263b34fecbed603aa7f686fc214c226d1a2d49e6f44531e7d25a791cefc4
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "6a8c263b34fecbed603aa7f686fc214c226d1a2d49e6f44531e7d25a791cefc4", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.44
[INFO] [stderr]    Compiling serde v1.0.81
[INFO] [stderr]     Checking nodrop v0.1.13
[INFO] [stderr]     Checking odds v0.2.26
[INFO] [stderr]    Compiling utf8-ranges v1.0.2
[INFO] [stderr]    Compiling bindgen v0.37.4
[INFO] [stderr]     Checking zeroize v0.5.2
[INFO] [stderr]    Compiling termcolor v1.0.4
[INFO] [stderr]    Compiling num-bigint v0.2.1
[INFO] [stderr]    Compiling num-complex v0.2.1
[INFO] [stderr]    Compiling num-rational v0.2.1
[INFO] [stderr]    Compiling failure_derive v0.1.3
[INFO] [stderr]     Checking supercow v0.1.0
[INFO] [stderr]    Compiling rand_core v0.3.0
[INFO] [stderr]     Checking encode_unicode v0.3.5
[INFO] [stderr]    Compiling futures v0.1.25
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling slab v0.4.1
[INFO] [stderr]    Compiling stable_deref_trait v1.1.1
[INFO] [stderr]    Compiling string v0.1.2
[INFO] [stderr]    Compiling try-lock v0.2.2
[INFO] [stderr]    Compiling dtoa v0.4.3
[INFO] [stderr]    Compiling adler32 v1.0.3
[INFO] [stderr]     Checking array-macro v1.0.2
[INFO] [stderr]     Checking arc-swap v0.3.6
[INFO] [stderr]     Checking reexport-proc-macro v1.0.5
[INFO] [stderr]    Compiling memchr v2.1.1
[INFO] [stderr]    Compiling miniz-sys v0.1.11
[INFO] [stderr]    Compiling libloading v0.5.0
[INFO] [stderr]    Compiling thread_local v0.3.6
[INFO] [stderr]    Compiling proc-macro2 v0.3.5
[INFO] [stderr]     Checking crossbeam-utils v0.6.2
[INFO] [stderr]    Compiling ring v0.13.5
[INFO] [stderr]    Compiling grin_secp256k1zkp v0.7.4
[INFO] [stderr]    Compiling liblmdb-sys v0.2.2
[INFO] [stderr]    Compiling clang-sys v0.23.0
[INFO] [stderr]    Compiling regex-syntax v0.6.4
[INFO] [stderr]    Compiling textwrap v0.10.0
[INFO] [stderr]     Checking tokio-service v0.1.0
[INFO] [stderr]    Compiling openssl-sys v0.9.39
[INFO] [stderr]    Compiling libz-sys v1.0.25
[INFO] [stderr]    Compiling libgit2-sys v0.7.10
[INFO] [stderr]    Compiling ncurses v5.97.0
[INFO] [stderr]     Checking arrayvec v0.4.8
[INFO] [stderr]    Compiling rand_core v0.2.2
[INFO] [stderr]    Compiling rand_xorshift v0.1.0
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]     Checking arrayvec v0.3.25
[INFO] [stderr]    Compiling base64 v0.9.3
[INFO] [stderr]     Checking pretty_assertions v0.5.1
[INFO] [stderr]    Compiling owning_ref v0.4.0
[INFO] [stderr]    Compiling crc32fast v1.1.2
[INFO] [stderr]     Checking tokio-timer v0.2.8
[INFO] [stderr]    Compiling quote v0.5.2
[INFO] [stderr]    Compiling idna v0.1.5
[INFO] [stderr]    Compiling nix v0.7.0
[INFO] [stderr]    Compiling encoding_rs v0.8.13
[INFO] [stderr]    Compiling smallvec v0.6.7
[INFO] [stderr]    Compiling tokio-executor v0.1.5
[INFO] [stderr]     Checking blake2-rfc v0.2.18
[INFO] [stderr]     Checking crossbeam-epoch v0.6.1
[INFO] [stderr]     Checking ordered-float v1.0.1
[INFO] [stderr]     Checking num-complex v0.1.43
[INFO] [stderr]     Checking smallstr v0.1.0
[INFO] [stderr]    Compiling unicase v2.2.0
[INFO] [stderr]    Compiling lock_api v0.1.5
[INFO] [stderr]    Compiling libflate v0.1.19
[INFO] [stderr]    Compiling tokio-current-thread v0.1.4
[INFO] [stderr]    Compiling phf_shared v0.7.23
[INFO] [stderr]    Compiling syn v0.15.22
[INFO] [stderr]    Compiling syn v0.14.9
[INFO] [stderr]     Checking crossbeam-deque v0.6.2
[INFO] [stderr]     Checking crypto-mac v0.6.2
[INFO] [stderr]    Compiling openssl v0.10.15
[INFO] [stderr]    Compiling native-tls v0.2.2
[INFO] [stderr]    Compiling url v1.7.2
[INFO] [stderr]    Compiling rand_pcg v0.1.1
[INFO] [stderr]    Compiling rand_chacha v0.1.0
[INFO] [stderr]    Compiling memchr v1.0.2
[INFO] [stderr]    Compiling atty v0.2.11
[INFO] [stderr]    Compiling which v1.0.5
[INFO] [stderr]    Compiling rand v0.5.5
[INFO] [stderr]    Compiling iovec v0.1.2
[INFO] [stderr]    Compiling num_cpus v1.8.0
[INFO] [stderr]    Compiling net2 v0.2.33
[INFO] [stderr]    Compiling time v0.1.40
[INFO] [stderr]    Compiling filetime v0.2.4
[INFO] [stderr]    Compiling xattr v0.2.2
[INFO] [stderr]    Compiling mime v0.3.12
[INFO] [stderr]     Checking backtrace-sys v0.1.24
[INFO] [stderr]     Checking rand v0.4.3
[INFO] [stderr]     Checking thread-id v3.3.0
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking dirs v1.0.4
[INFO] [stderr]     Checking signal-hook v0.1.6
[INFO] [stderr]     Checking nix v0.11.0
[INFO] [stderr]     Checking term_size v0.3.1
[INFO] [stderr]     Checking rpassword v2.1.0
[INFO] [stderr]     Checking daemonize v0.3.0
[INFO] [stderr]     Checking phf v0.7.23
[INFO] [stderr]     Checking sha2 v0.7.1
[INFO] [stderr]     Checking ripemd160 v0.7.0
[INFO] [stderr]     Checking rand v0.6.1
[INFO] [stderr]     Checking hmac v0.6.3
[INFO] [stderr]    Compiling nom v3.2.1
[INFO] [stderr]    Compiling clap v2.32.0
[INFO] [stderr]    Compiling bytes v0.4.11
[INFO] [stderr]    Compiling futures-cpupool v0.1.8
[INFO] [stderr]    Compiling aho-corasick v0.6.9
[INFO] [stderr]    Compiling flate2 v1.0.6
[INFO] [stderr]    Compiling phf_generator v0.7.23
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]    Compiling uuid v0.7.1
[INFO] [stderr]    Compiling tar v0.4.20
[INFO] [stderr]     Checking backtrace v0.3.9
[INFO] [stderr]     Checking nom v4.1.1
[INFO] [stderr]     Checking msdos_time v0.1.6
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]     Checking serde_json v1.0.33
[INFO] [stderr]     Checking chrono v0.4.6
[INFO] [stderr]     Checking serde-value v0.5.3
[INFO] [stderr]     Checking serde_yaml v0.8.8
[INFO] [stderr]     Checking toml v0.4.10
[INFO] [stderr]    Compiling serde_urlencoded v0.5.4
[INFO] [stderr]     Checking csv v0.15.0
[INFO] [stderr]     Checking uuid v0.6.5
[INFO] [stderr]     Checking num-bigint v0.1.44
[INFO] [stderr]     Checking rand v0.3.22
[INFO] [stderr]    Compiling synstructure v0.10.1
[INFO] [stderr]     Checking pbkdf2 v0.2.3
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking lmdb-zero v0.4.4
[INFO] [stderr]    Compiling regex v1.1.0
[INFO] [stderr]    Compiling http v0.1.14
[INFO] [stderr]    Compiling cexpr v0.2.3
[INFO] [stderr]    Compiling enum-map-derive v0.4.0
[INFO] [stderr]     Checking webpki v0.18.1
[INFO] [stderr]     Checking sct v0.4.0
[INFO] [stderr]    Compiling phf_codegen v0.7.23
[INFO] [stderr]    Compiling parking_lot v0.6.4
[INFO] [stderr]     Checking zip v0.4.2
[INFO] [stderr]     Checking ctrlc v3.1.1
[INFO] [stderr]     Checking tokio-io v0.1.10
[INFO] [stderr]     Checking mio v0.6.16
[INFO] [stderr]     Checking tokio-threadpool v0.1.9
[INFO] [stderr]     Checking want v0.0.6
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking prettytable-rs v0.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.81
[INFO] [stderr]    Compiling enumset_derive v0.2.0
[INFO] [stderr]     Checking num-rational v0.1.42
[INFO] [stderr]     Checking webpki-roots v0.15.0
[INFO] [stderr]    Compiling mime_guess v2.0.0-alpha.6
[INFO] [stderr]    Compiling terminfo v0.6.1
[INFO] [stderr]     Checking rustls v0.13.1
[INFO] [stderr]     Checking ct-logs v0.4.0
[INFO] [stderr]     Checking enum-map v0.4.1
[INFO] [stderr]    Compiling env_logger v0.5.13
[INFO] [stderr]     Checking tokio-codec v0.1.1
[INFO] [stderr]     Checking mio-uds v0.6.7
[INFO] [stderr]    Compiling h2 v0.1.14
[INFO] [stderr]     Checking tokio-fs v0.1.4
[INFO] [stderr]     Checking tokio-reactor v0.1.7
[INFO] [stderr]     Checking crossbeam-channel v0.2.6
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking enumset v0.3.14
[INFO] [stderr]     Checking tokio-tcp v0.1.2
[INFO] [stderr]     Checking tokio-udp v0.1.3
[INFO] [stderr]     Checking tokio-uds v0.2.4
[INFO] [stderr]     Checking cursive v0.9.2
[INFO] [stderr]     Checking tokio v0.1.11
[INFO] [stderr]     Checking failure v0.1.3
[INFO] [stderr]     Checking tokio-core v0.1.17
[INFO] [stderr]     Checking tokio-rustls v0.7.2
[INFO] [stderr]     Checking tokio-retry v0.1.1
[INFO] [stderr]    Compiling hyper v0.12.17
[INFO] [stderr]     Checking log4rs v0.8.1
[INFO] [stderr]     Checking jsonrpc-core v8.0.1
[INFO] [stderr]     Checking hyper-rustls v0.14.0
[INFO] [stderr]     Checking hyper-staticfile v0.3.0
[INFO] [stderr]    Compiling hyper-tls v0.3.1
[INFO] [stderr]     Checking grin_util v1.0.0 (/opt/rustwide/workdir/util)
[INFO] [stderr]    Compiling reqwest v0.9.5
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]   --> util/src/macros.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | macro_rules! impl_array_newtype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> util/src/lib.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> util/src/macros.rs:168:1
[INFO] [stdout]     |
[INFO] [stdout] 168 | macro_rules! impl_array_newtype_encodable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> util/src/macros.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | macro_rules! impl_array_newtype_show {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> util/src/macros.rs:233:1
[INFO] [stdout]     |
[INFO] [stdout] 233 | macro_rules! impl_index_newtype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]   --> util/src/macros.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | macro_rules! impl_array_newtype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> util/src/lib.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> util/src/macros.rs:168:1
[INFO] [stdout]     |
[INFO] [stdout] 168 | macro_rules! impl_array_newtype_encodable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> util/src/macros.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | macro_rules! impl_array_newtype_show {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> util/src/macros.rs:233:1
[INFO] [stdout]     |
[INFO] [stdout] 233 | macro_rules! impl_index_newtype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking grin_keychain v1.0.0 (/opt/rustwide/workdir/keychain)
[INFO] [stderr]     Checking mortal v0.1.5
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> keychain/src/extkey_bip32.rs:125:91
[INFO] [stdout]     |
[INFO] [stdout] 125 |         self.hmac_sha512 = HmacSha512::new_varkey(seed).expect("HMAC can take key of any size");;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/extkey_bip32.rs:388:13
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let key = r#try!(ExtendedPrivKey::new_master(secp, &mut hasher, &seed));
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> keychain/src/extkey_bip32.rs:719:92
[INFO] [stdout]     |
[INFO] [stdout] 719 |             self.hmac_sha512 = HmacSha512::new_varkey(seed).expect("HMAC can take key of any size");;
[INFO] [stdout]     |                                                                                                     ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> keychain/src/mnemonic.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub static ref WORDS: Vec<String> = { include_str!("wordlists/en.txt").split_whitespace().map(|s| s.into()).collect() };
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> keychain/src/mnemonic.rs:75:30
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut indexes: Vec<u16> = r#try!(words.iter().map(|x| search(x)).collect());
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/mnemonic.rs:158:2
[INFO] [stdout]     |
[INFO] [stdout] 158 |     r#try!(to_entropy(mnemonic));
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/types.rs:218:3
[INFO] [stdout]     |
[INFO] [stdout] 218 |         r#try!(write!(f, "{}(", stringify!(Identifier)));
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/types.rs:219:3
[INFO] [stdout]     |
[INFO] [stdout] 219 |         r#try!(write!(f, "{}", self.to_hex()));
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> keychain/src/extkey_bip32.rs:125:91
[INFO] [stdout]     |
[INFO] [stdout] 125 |         self.hmac_sha512 = HmacSha512::new_varkey(seed).expect("HMAC can take key of any size");;
[INFO] [stdout]     |                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/extkey_bip32.rs:388:13
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let key = r#try!(ExtendedPrivKey::new_master(secp, &mut hasher, &seed));
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> keychain/src/mnemonic.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub static ref WORDS: Vec<String> = { include_str!("wordlists/en.txt").split_whitespace().map(|s| s.into()).collect() };
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> keychain/src/mnemonic.rs:75:30
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut indexes: Vec<u16> = r#try!(words.iter().map(|x| search(x)).collect());
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/mnemonic.rs:158:2
[INFO] [stdout]     |
[INFO] [stdout] 158 |     r#try!(to_entropy(mnemonic));
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/types.rs:218:3
[INFO] [stdout]     |
[INFO] [stdout] 218 |         r#try!(write!(f, "{}(", stringify!(Identifier)));
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> keychain/src/types.rs:219:3
[INFO] [stdout]     |
[INFO] [stdout] 219 |         r#try!(write!(f, "{}", self.to_hex()));
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> keychain/src/extkey_bip32.rs:338:41
[INFO] [stdout]     |
[INFO] [stdout] 338 |             Error::Ecdsa(ref e) => error::Error::description(e),
[INFO] [stdout]     |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> keychain/src/extkey_bip32.rs:338:41
[INFO] [stdout]     |
[INFO] [stdout] 338 |             Error::Ecdsa(ref e) => error::Error::description(e),
[INFO] [stdout]     |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 8 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling croaring-sys v0.3.7
[INFO] [stderr]     Checking linefeed v0.5.4
[INFO] [stderr]    Compiling git2 v0.7.5
[INFO] [stderr]    Compiling built v0.3.0
[INFO] [stderr]    Compiling grin v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/build/build.rs:73:68
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn _download_and_decompress(target_file: &str) -> Result<bool, Box<std::error::Error>> {
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/build/build.rs:99:46
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn _install_web_wallet() -> Result<bool, Box<std::error::Error>> {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking croaring v0.3.7
[INFO] [stderr]     Checking grin_core v1.0.0 (/opt/rustwide/workdir/core)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> core/src/core/id.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | / /// We want to sort short_ids in a canonical and consistent manner so we can
[INFO] [stdout] 77 | | /// verify sort order in the same way we do for full inputs|outputs|kernels
[INFO] [stdout] 78 | | /// themselves.
[INFO] [stdout]    | |_--------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> core/src/core/transaction.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | /// Enum of various supported kernel "features".
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> core/src/core/transaction.rs:1135:1
[INFO] [stdout]      |
[INFO] [stdout] 1135 | /// Enum of various supported kernel "features".
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]      |
[INFO] [stdout]      = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/src/core/block.rs:121:23
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn read(reader: &mut Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          ^^^^^^ help: use `dyn`: `dyn Reader`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/block.rs:246:44
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let (version, height, timestamp) = ser_multiread!(reader, read_u16, read_u64, read_i64);
[INFO] [stdout]     |                                            ---------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/block.rs:253:50
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (output_mmr_size, kernel_mmr_size) = ser_multiread!(reader, read_u64, read_u64);
[INFO] [stdout]     |                                                  ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/block.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 | /         ser_multiwrite!(
[INFO] [stdout] 283 | |             writer,
[INFO] [stdout] 284 | |             [write_u16, self.version],
[INFO] [stdout] 285 | |             [write_u64, self.height],
[INFO] [stdout] ...   |
[INFO] [stdout] 294 | |             [write_u64, self.kernel_mmr_size]
[INFO] [stdout] 295 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> core/src/core/committed.rs:123:14
[INFO] [stdout]     |
[INFO] [stdout] 123 |     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/src/macros.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    | 
[INFO] [stdout]   ::: core/src/core/compact_block.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]    |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/compact_block.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | /         ser_multiwrite!(
[INFO] [stdout] 105 | |             writer,
[INFO] [stdout] 106 | |             [write_u64, self.out_full.len() as u64],
[INFO] [stdout] 107 | |             [write_u64, self.kern_full.len() as u64],
[INFO] [stdout] 108 | |             [write_u64, self.kern_ids.len() as u64]
[INFO] [stdout] 109 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |     $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/transaction.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         ser_multiwrite!(writer, [write_u64, self.fee], [write_u64, self.lock_height]);
[INFO] [stdout]     |         ------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/src/core/transaction.rs:331:23
[INFO] [stdout]     |
[INFO] [stdout] 331 |     fn read(reader: &mut Reader) -> Result<TxKernelEntry, ser::Error> {
[INFO] [stdout]     |                          ^^^^^^ help: use `dyn`: `dyn Reader`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/transaction.rs:390:9
[INFO] [stdout]     |
[INFO] [stdout] 390 | /         ser_multiwrite!(
[INFO] [stdout] 391 | |             writer,
[INFO] [stdout] 392 | |             [write_u64, self.inputs.len() as u64],
[INFO] [stdout] 393 | |             [write_u64, self.outputs.len() as u64],
[INFO] [stdout] 394 | |             [write_u64, self.kernels.len() as u64]
[INFO] [stdout] 395 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/transaction.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]     |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> core/src/core/id.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | / /// We want to sort short_ids in a canonical and consistent manner so we can
[INFO] [stdout] 77 | | /// verify sort order in the same way we do for full inputs|outputs|kernels
[INFO] [stdout] 78 | | /// themselves.
[INFO] [stdout]    | |_--------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> core/src/core/transaction.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | /// Enum of various supported kernel "features".
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> core/src/core/transaction.rs:1135:1
[INFO] [stdout]      |
[INFO] [stdout] 1135 | /// Enum of various supported kernel "features".
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]      |
[INFO] [stdout]      = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/src/core/block.rs:121:23
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn read(reader: &mut Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          ^^^^^^ help: use `dyn`: `dyn Reader`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/pow/types.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 | /         ser_multiwrite!(
[INFO] [stdout] 271 | |             writer,
[INFO] [stdout] 272 | |             [write_u64, self.total_difficulty.to_num()],
[INFO] [stdout] 273 | |             [write_u32, self.secondary_scaling]
[INFO] [stdout] 274 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/block.rs:246:44
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let (version, height, timestamp) = ser_multiread!(reader, read_u16, read_u64, read_i64);
[INFO] [stdout]     |                                            ---------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/block.rs:253:50
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (output_mmr_size, kernel_mmr_size) = ser_multiread!(reader, read_u64, read_u64);
[INFO] [stdout]     |                                                  ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/block.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 | /         ser_multiwrite!(
[INFO] [stdout] 283 | |             writer,
[INFO] [stdout] 284 | |             [write_u16, self.version],
[INFO] [stdout] 285 | |             [write_u64, self.height],
[INFO] [stdout] ...   |
[INFO] [stdout] 294 | |             [write_u64, self.kernel_mmr_size]
[INFO] [stdout] 295 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> core/src/core/committed.rs:123:14
[INFO] [stdout]     |
[INFO] [stdout] 123 |     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/src/macros.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    | 
[INFO] [stdout]   ::: core/src/core/compact_block.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]    |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/compact_block.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | /         ser_multiwrite!(
[INFO] [stdout] 105 | |             writer,
[INFO] [stdout] 106 | |             [write_u64, self.out_full.len() as u64],
[INFO] [stdout] 107 | |             [write_u64, self.kern_full.len() as u64],
[INFO] [stdout] 108 | |             [write_u64, self.kern_ids.len() as u64]
[INFO] [stdout] 109 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |     $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/transaction.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         ser_multiwrite!(writer, [write_u64, self.fee], [write_u64, self.lock_height]);
[INFO] [stdout]     |         ------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/src/core/transaction.rs:331:23
[INFO] [stdout]     |
[INFO] [stdout] 331 |     fn read(reader: &mut Reader) -> Result<TxKernelEntry, ser::Error> {
[INFO] [stdout]     |                          ^^^^^^ help: use `dyn`: `dyn Reader`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/transaction.rs:390:9
[INFO] [stdout]     |
[INFO] [stdout] 390 | /         ser_multiwrite!(
[INFO] [stdout] 391 | |             writer,
[INFO] [stdout] 392 | |             [write_u64, self.inputs.len() as u64],
[INFO] [stdout] 393 | |             [write_u64, self.outputs.len() as u64],
[INFO] [stdout] 394 | |             [write_u64, self.kernels.len() as u64]
[INFO] [stdout] 395 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/core/transaction.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]     |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> core/src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: core/src/pow/types.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 | /         ser_multiwrite!(
[INFO] [stdout] 271 | |             writer,
[INFO] [stdout] 272 | |             [write_u64, self.total_difficulty.to_num()],
[INFO] [stdout] 273 | |             [write_u32, self.secondary_scaling]
[INFO] [stdout] 274 | |         );
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> core/src/core.rs:98:14
[INFO] [stdout]    |
[INFO] [stdout] 98 |             return hr.trim_right_matches('0').to_string();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> core/src/core.rs:100:29
[INFO] [stdout]     |
[INFO] [stdout] 100 |             return format!("{}0", hr.trim_right_matches('0'));
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> core/src/core.rs:98:14
[INFO] [stdout]    |
[INFO] [stdout] 98 |             return hr.trim_right_matches('0').to_string();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> core/src/core.rs:100:29
[INFO] [stdout]     |
[INFO] [stdout] 100 |             return format!("{}0", hr.trim_right_matches('0'));
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> core/src/pow/common.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | macro_rules! to_u32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> core/src/lib.rs:22:9
[INFO] [stdout]     |
[INFO] [stdout] 22  | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> core/src/pow/common.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | macro_rules! to_usize {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> core/src/pow/common.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | macro_rules! to_edge {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking grin_store v1.0.0 (/opt/rustwide/workdir/store)
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> core/src/pow/common.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | macro_rules! to_u32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> core/src/lib.rs:22:9
[INFO] [stdout]     |
[INFO] [stdout] 22  | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> core/src/pow/common.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | macro_rules! to_usize {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for macro
[INFO] [stdout]    --> core/src/pow/common.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | macro_rules! to_edge {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lmdb_zero`
[INFO] [stdout]   --> store/src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use lmdb_zero;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `memmap`
[INFO] [stdout]   --> store/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use memmap;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> store/src/pmmr.rs:105:41
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn get_hash(&self, pos: u64) -> Option<(Hash)> {
[INFO] [stdout]     |                                            ^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> store/src/pmmr.rs:114:41
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn get_data(&self, pos: u64) -> Option<(T::E)> {
[INFO] [stdout]     |                                            ^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> store/src/pmmr.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |                 (flat_pos - 1 - shift)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> store/src/pmmr.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |             |possible_dir_entry| -> Result<u32, Box<std::error::Error>> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:42:3
[INFO] [stdout]    |
[INFO] [stdout] 42 |         r#try!(writer.write_u32(self.0[0]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lmdb_zero`
[INFO] [stdout]   --> store/src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use lmdb_zero;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 |         r#try!(writer.write_u32(self.0[1]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:44:3
[INFO] [stdout]    |
[INFO] [stdout] 44 |         r#try!(writer.write_u32(self.0[2]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `memmap`
[INFO] [stdout]   --> store/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use memmap;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> store/src/pmmr.rs:105:41
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn get_hash(&self, pos: u64) -> Option<(Hash)> {
[INFO] [stdout]     |                                            ^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> store/src/pmmr.rs:114:41
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn get_data(&self, pos: u64) -> Option<(T::E)> {
[INFO] [stdout]     |                                            ^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> store/src/pmmr.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |                 (flat_pos - 1 - shift)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> store/src/pmmr.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |             |possible_dir_entry| -> Result<u32, Box<std::error::Error>> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:42:3
[INFO] [stdout]    |
[INFO] [stdout] 42 |         r#try!(writer.write_u32(self.0[0]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 |         r#try!(writer.write_u32(self.0[1]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:44:3
[INFO] [stdout]    |
[INFO] [stdout] 44 |         r#try!(writer.write_u32(self.0[2]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:42:3
[INFO] [stdout]    |
[INFO] [stdout] 42 |         r#try!(writer.write_u32(self.0[0]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 |         r#try!(writer.write_u32(self.0[1]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> core/tests/vec_backend.rs:44:3
[INFO] [stdout]    |
[INFO] [stdout] 44 |         r#try!(writer.write_u32(self.0[2]));
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking grin_chain v1.0.0 (/opt/rustwide/workdir/chain)
[INFO] [stderr]     Checking grin_pool v1.0.0 (/opt/rustwide/workdir/pool)
[INFO] [stderr]     Checking grin_p2p v1.0.0 (/opt/rustwide/workdir/p2p)
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grin_store`
[INFO] [stdout]   --> chain/src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use grin_store;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> chain/src/chain.rs:1315:53
[INFO] [stdout]      |
[INFO] [stdout] 1315 |                 let (utxo_sum, kernel_sum) = (sums, genesis as &Committed).verify_kernel_sums(
[INFO] [stdout]      |                                                                 ^^^^^^^^^ help: use `dyn`: `dyn Committed`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> chain/src/txhashset/txhashset.rs:908:53
[INFO] [stdout]     |
[INFO] [stdout] 908 |     fn apply_output(&mut self, out: &Output) -> Result<(u64), Error> {
[INFO] [stdout]     |                                                        ^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> chain/src/txhashset/txhashset.rs:1197:47
[INFO] [stdout]      |
[INFO] [stdout] 1197 |     pub fn validate_kernel_sums(&self) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> chain/src/txhashset/txhashset.rs:1212:14
[INFO] [stdout]      |
[INFO] [stdout] 1212 |     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grin_store`
[INFO] [stdout]   --> chain/src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use grin_store;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> chain/src/chain.rs:1315:53
[INFO] [stdout]      |
[INFO] [stdout] 1315 |                 let (utxo_sum, kernel_sum) = (sums, genesis as &Committed).verify_kernel_sums(
[INFO] [stdout]      |                                                                 ^^^^^^^^^ help: use `dyn`: `dyn Committed`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> chain/src/txhashset/txhashset.rs:908:53
[INFO] [stdout]     |
[INFO] [stdout] 908 |     fn apply_output(&mut self, out: &Output) -> Result<(u64), Error> {
[INFO] [stdout]     |                                                        ^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> chain/src/txhashset/txhashset.rs:1197:47
[INFO] [stdout]      |
[INFO] [stdout] 1197 |     pub fn validate_kernel_sums(&self) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> chain/src/txhashset/txhashset.rs:1212:14
[INFO] [stdout]      |
[INFO] [stdout] 1212 |     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> p2p/src/msg.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / /// Types of messages.
[INFO] [stdout] 48 | | /// Note: Values here are *important* so we should only add new values at the
[INFO] [stdout] 49 | | /// end.
[INFO] [stdout]    | |_-------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> p2p/src/store.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | /// Types of messages
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> p2p/src/types.rs:227:1
[INFO] [stdout]     |
[INFO] [stdout] 227 | /// Types of connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> p2p/src/types.rs:236:1
[INFO] [stdout]     |
[INFO] [stdout] 236 | /// Ban reason
[INFO] [stdout]     | ^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grin_store`
[INFO] [stdout]   --> p2p/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use grin_store;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:213:3
[INFO] [stdout]     |
[INFO] [stdout] 213 | /         ser_multiwrite!(
[INFO] [stdout] 214 | |             writer,
[INFO] [stdout] 215 | |             [write_u8, self.magic[0]],
[INFO] [stdout] 216 | |             [write_u8, self.magic[1]],
[INFO] [stdout] 217 | |             [write_u8, self.msg_type as u8],
[INFO] [stdout] 218 | |             [write_u64, self.msg_len]
[INFO] [stdout] 219 | |         );
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let (t, len) = ser_multiread!(reader, read_u8, read_u64);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:265:3
[INFO] [stdout]     |
[INFO] [stdout] 265 | /         ser_multiwrite!(
[INFO] [stdout] 266 | |             writer,
[INFO] [stdout] 267 | |             [write_u32, self.version],
[INFO] [stdout] 268 | |             [write_u32, self.capabilities.bits()],
[INFO] [stdout] 269 | |             [write_u64, self.nonce]
[INFO] [stdout] 270 | |         );
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let (version, capab, nonce) = ser_multiread!(reader, read_u32, read_u32, read_u64);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:321:3
[INFO] [stdout]     |
[INFO] [stdout] 321 | /         ser_multiwrite!(
[INFO] [stdout] 322 | |             writer,
[INFO] [stdout] 323 | |             [write_u32, self.version],
[INFO] [stdout] 324 | |             [write_u32, self.capabilities.bits()]
[INFO] [stdout] 325 | |         );
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:335:26
[INFO] [stdout]     |
[INFO] [stdout] 335 |         let (version, capab) = ser_multiread!(reader, read_u32, read_u32);
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:416:3
[INFO] [stdout]     |
[INFO] [stdout] 416 |         ser_multiwrite!(writer, [write_u32, self.code], [write_bytes, &self.message]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:443:5
[INFO] [stdout]     |
[INFO] [stdout] 443 | /                 ser_multiwrite!(
[INFO] [stdout] 444 | |                     writer,
[INFO] [stdout] 445 | |                     [write_u8, 0],
[INFO] [stdout] 446 | |                     [write_fixed_bytes, &sav4.ip().octets().to_vec()],
[INFO] [stdout] 447 | |                     [write_u16, sav4.port()]
[INFO] [stdout] 448 | |                 );
[INFO] [stdout]     | |__________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:651:3
[INFO] [stdout]     |
[INFO] [stdout] 651 |         ser_multiwrite!(writer, [write_u64, self.height], [write_u64, self.bytes]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:659:25
[INFO] [stdout]     |
[INFO] [stdout] 659 |         let (height, bytes) = ser_multiread!(reader, read_u64, read_u64);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> p2p/src/store.rs:67:3
[INFO] [stdout]    |
[INFO] [stdout] 67 | /         ser_multiwrite!(
[INFO] [stdout] 68 | |             writer,
[INFO] [stdout] 69 | |             [write_u32, self.capabilities.bits()],
[INFO] [stdout] 70 | |             [write_bytes, &self.user_agent],
[INFO] [stdout] ...  |
[INFO] [stdout] 74 | |             [write_i64, self.last_connected]
[INFO] [stdout] 75 | |         );
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> p2p/src/store.rs:85:22
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let (fl, lb, br) = ser_multiread!(reader, read_u8, read_i64, read_i32);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> p2p/src/msg.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / /// Types of messages.
[INFO] [stdout] 48 | | /// Note: Values here are *important* so we should only add new values at the
[INFO] [stdout] 49 | | /// end.
[INFO] [stdout]    | |_-------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> p2p/src/store.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | /// Types of messages
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> p2p/src/types.rs:227:1
[INFO] [stdout]     |
[INFO] [stdout] 227 | /// Types of connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> p2p/src/types.rs:236:1
[INFO] [stdout]     |
[INFO] [stdout] 236 | /// Ban reason
[INFO] [stdout]     | ^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grin_store`
[INFO] [stdout]   --> p2p/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use grin_store;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:213:3
[INFO] [stdout]     |
[INFO] [stdout] 213 | /         ser_multiwrite!(
[INFO] [stdout] 214 | |             writer,
[INFO] [stdout] 215 | |             [write_u8, self.magic[0]],
[INFO] [stdout] 216 | |             [write_u8, self.magic[1]],
[INFO] [stdout] 217 | |             [write_u8, self.msg_type as u8],
[INFO] [stdout] 218 | |             [write_u64, self.msg_len]
[INFO] [stdout] 219 | |         );
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let (t, len) = ser_multiread!(reader, read_u8, read_u64);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:265:3
[INFO] [stdout]     |
[INFO] [stdout] 265 | /         ser_multiwrite!(
[INFO] [stdout] 266 | |             writer,
[INFO] [stdout] 267 | |             [write_u32, self.version],
[INFO] [stdout] 268 | |             [write_u32, self.capabilities.bits()],
[INFO] [stdout] 269 | |             [write_u64, self.nonce]
[INFO] [stdout] 270 | |         );
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let (version, capab, nonce) = ser_multiread!(reader, read_u32, read_u32, read_u64);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:321:3
[INFO] [stdout]     |
[INFO] [stdout] 321 | /         ser_multiwrite!(
[INFO] [stdout] 322 | |             writer,
[INFO] [stdout] 323 | |             [write_u32, self.version],
[INFO] [stdout] 324 | |             [write_u32, self.capabilities.bits()]
[INFO] [stdout] 325 | |         );
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:335:26
[INFO] [stdout]     |
[INFO] [stdout] 335 |         let (version, capab) = ser_multiread!(reader, read_u32, read_u32);
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:416:3
[INFO] [stdout]     |
[INFO] [stdout] 416 |         ser_multiwrite!(writer, [write_u32, self.code], [write_bytes, &self.message]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:443:5
[INFO] [stdout]     |
[INFO] [stdout] 443 | /                 ser_multiwrite!(
[INFO] [stdout] 444 | |                     writer,
[INFO] [stdout] 445 | |                     [write_u8, 0],
[INFO] [stdout] 446 | |                     [write_fixed_bytes, &sav4.ip().octets().to_vec()],
[INFO] [stdout] 447 | |                     [write_u16, sav4.port()]
[INFO] [stdout] 448 | |                 );
[INFO] [stdout]     | |__________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:651:3
[INFO] [stdout]     |
[INFO] [stdout] 651 |         ser_multiwrite!(writer, [write_u64, self.height], [write_u64, self.bytes]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> p2p/src/msg.rs:659:25
[INFO] [stdout]     |
[INFO] [stdout] 659 |         let (height, bytes) = ser_multiread!(reader, read_u64, read_u64);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> p2p/src/store.rs:67:3
[INFO] [stdout]    |
[INFO] [stdout] 67 | /         ser_multiwrite!(
[INFO] [stdout] 68 | |             writer,
[INFO] [stdout] 69 | |             [write_u32, self.capabilities.bits()],
[INFO] [stdout] 70 | |             [write_bytes, &self.user_agent],
[INFO] [stdout] ...  |
[INFO] [stdout] 74 | |             [write_i64, self.last_connected]
[INFO] [stdout] 75 | |         );
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> p2p/src/store.rs:85:22
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let (fl, lb, br) = ser_multiread!(reader, read_u8, read_i64, read_i32);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> chain/src/chain.rs:342:6
[INFO] [stdout]     |
[INFO] [stdout] 342 |                     &self.orphans.add(orphan);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> chain/src/chain.rs:342:6
[INFO] [stdout]     |
[INFO] [stdout] 342 |                     &self.orphans.add(orphan);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking grin_api v1.0.0 (/opt/rustwide/workdir/api)
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hyper`
[INFO] [stdout]   --> api/src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use hyper;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]   --> api/src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use serde;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> api/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hyper_rustls`
[INFO] [stdout]   --> api/src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use hyper_rustls;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls`
[INFO] [stdout]   --> api/src/lib.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use rustls;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tcp`
[INFO] [stdout]   --> api/src/lib.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use tokio_tcp;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hyper`
[INFO] [stdout]   --> api/src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use hyper;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]   --> api/src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use serde;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> api/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hyper_rustls`
[INFO] [stdout]   --> api/src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use hyper_rustls;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls`
[INFO] [stdout]   --> api/src/lib.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use rustls;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tcp`
[INFO] [stdout]   --> api/src/lib.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use tokio_tcp;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> api/src/handlers/blocks_api.rs:71:35
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let el = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> api/src/handlers/blocks_api.rs:71:35
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let el = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> api/src/handlers/blocks_api.rs:133:35
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let el = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> api/src/handlers/blocks_api.rs:133:35
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let el = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> api/src/handlers/chain_api.rs:226:40
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let command = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> api/src/handlers/peers_api.rs:59:40
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let command = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> api/src/handlers/peers_api.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let mut path_elems = req.uri().path().trim_right_matches("/").rsplit("/");
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> api/src/handlers/chain_api.rs:226:40
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let command = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> api/src/handlers/peers_api.rs:59:40
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let command = match req.uri().path().trim_right_matches("/").rsplit("/").next() {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> api/src/handlers/transactions_api.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |             .trim_right()
[INFO] [stdout]     |              ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> api/src/handlers/transactions_api.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |             .trim_right_matches("/")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> api/src/handlers/peers_api.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let mut path_elems = req.uri().path().trim_right_matches("/").rsplit("/");
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> api/src/handlers/transactions_api.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |             .trim_right()
[INFO] [stdout]     |              ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> api/src/handlers/transactions_api.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |             .trim_right_matches("/")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking grin_wallet v1.0.0 (/opt/rustwide/workdir/wallet)
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> api/tests/rest.rs:7:48
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> api/tests/rest.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |             counter: ATOMIC_USIZE_INIT,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated constant: `AtomicUsize::new(0)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]   --> wallet/src/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use serde;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `term`
[INFO] [stdout]   --> wallet/src/lib.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use term;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> wallet/src/adapters/keybase.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn new() -> Box<WalletCommAdapter> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletCommAdapter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:143:20
[INFO] [stdout]     |
[INFO] [stdout] 143 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:173:20
[INFO] [stdout]     |
[INFO] [stdout] 173 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:219:20
[INFO] [stdout]     |
[INFO] [stdout] 219 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:297:20
[INFO] [stdout]     |
[INFO] [stdout] 297 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:327:20
[INFO] [stdout]     |
[INFO] [stdout] 327 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:360:20
[INFO] [stdout]     |
[INFO] [stdout] 360 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:375:20
[INFO] [stdout]     |
[INFO] [stdout] 375 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:394:20
[INFO] [stdout]     |
[INFO] [stdout] 394 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:430:20
[INFO] [stdout]     |
[INFO] [stdout] 430 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:476:20
[INFO] [stdout]     |
[INFO] [stdout] 476 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:496:20
[INFO] [stdout]     |
[INFO] [stdout] 496 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:516:20
[INFO] [stdout]     |
[INFO] [stdout] 516 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> wallet/src/lmdb_wallet.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> wallet/src/lmdb_wallet.rs:292:56
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let tx_hex = util::to_hex(ser::ser_vec(tx).unwrap());;
[INFO] [stdout]     |                                                              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> wallet/src/lib.rs:67:23
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> Result<Arc<Mutex<WalletInst<impl NodeClient, keychain::ExtKeychain>>>, Error> {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient, keychain::ExtKeychain>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]   --> wallet/src/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use serde;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `term`
[INFO] [stdout]   --> wallet/src/lib.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use term;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> wallet/src/adapters/keybase.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn new() -> Box<WalletCommAdapter> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletCommAdapter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:143:20
[INFO] [stdout]     |
[INFO] [stdout] 143 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:173:20
[INFO] [stdout]     |
[INFO] [stdout] 173 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:219:20
[INFO] [stdout]     |
[INFO] [stdout] 219 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:297:20
[INFO] [stdout]     |
[INFO] [stdout] 297 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:327:20
[INFO] [stdout]     |
[INFO] [stdout] 327 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:360:20
[INFO] [stdout]     |
[INFO] [stdout] 360 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:375:20
[INFO] [stdout]     |
[INFO] [stdout] 375 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:394:20
[INFO] [stdout]     |
[INFO] [stdout] 394 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:430:20
[INFO] [stdout]     |
[INFO] [stdout] 430 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:476:20
[INFO] [stdout]     |
[INFO] [stdout] 476 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:496:20
[INFO] [stdout]     |
[INFO] [stdout] 496 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> wallet/src/command.rs:516:20
[INFO] [stdout]     |
[INFO] [stdout] 516 |     wallet: Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> wallet/src/lmdb_wallet.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> wallet/src/lmdb_wallet.rs:292:56
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let tx_hex = util::to_hex(ser::ser_vec(tx).unwrap());;
[INFO] [stdout]     |                                                              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> wallet/src/lib.rs:67:23
[INFO] [stdout]    |
[INFO] [stdout] 67 | ) -> Result<Arc<Mutex<WalletInst<impl NodeClient, keychain::ExtKeychain>>>, Error> {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient, keychain::ExtKeychain>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> wallet/src/controller.rs:302:6
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 .trim_right_matches("/")
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> wallet/src/controller.rs:474:5
[INFO] [stdout]     |
[INFO] [stdout] 474 |             .trim_right_matches("/")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> wallet/src/controller.rs:601:5
[INFO] [stdout]     |
[INFO] [stdout] 601 |             .trim_right_matches("/")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> wallet/src/controller.rs:302:6
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 .trim_right_matches("/")
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> wallet/src/controller.rs:474:5
[INFO] [stdout]     |
[INFO] [stdout] 474 |             .trim_right_matches("/")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `failure::core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> wallet/src/controller.rs:601:5
[INFO] [stdout]     |
[INFO] [stdout] 601 |             .trim_right_matches("/")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 21 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking grin_servers v1.0.0 (/opt/rustwide/workdir/servers)
[INFO] [stdout] warning: 21 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]   --> servers/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use serde;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> servers/src/lib.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bh` is never read
[INFO] [stdout]    --> wallet/tests/check.rs:555:2
[INFO] [stdout]     |
[INFO] [stdout] 555 |     bh += cm as u64;
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]   --> servers/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use serde;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> servers/src/lib.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> servers/src/mining/stratumserver.rs:296:11
[INFO] [stdout]     |
[INFO] [stdout] 296 | ...                   e.description(),
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> servers/src/mining/stratumserver.rs:296:11
[INFO] [stdout]     |
[INFO] [stdout] 296 | ...                   e.description(),
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking grin_config v1.0.0 (/opt/rustwide/workdir/config)
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> servers/tests/framework.rs:498:3
[INFO] [stdout]     |
[INFO] [stdout] 498 | /         (LocalServerContainerPool {
[INFO] [stdout] 499 | |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 | |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 | |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |             is_seeding: false,
[INFO] [stdout] 506 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 498 |         LocalServerContainerPool {
[INFO] [stdout] 499 |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] 502 |             next_owner_port: config.base_owner_port,
[INFO] [stdout] 503 |             config: config,
[INFO] [stdout]   ...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> servers/tests/framework.rs:498:3
[INFO] [stdout]     |
[INFO] [stdout] 498 | /         (LocalServerContainerPool {
[INFO] [stdout] 499 | |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 | |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 | |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |             is_seeding: false,
[INFO] [stdout] 506 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 498 |         LocalServerContainerPool {
[INFO] [stdout] 499 |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] 502 |             next_owner_port: config.base_owner_port,
[INFO] [stdout] 503 |             config: config,
[INFO] [stdout]   ...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> servers/tests/framework.rs:498:3
[INFO] [stdout]     |
[INFO] [stdout] 498 | /         (LocalServerContainerPool {
[INFO] [stdout] 499 | |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 | |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 | |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |             is_seeding: false,
[INFO] [stdout] 506 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 498 |         LocalServerContainerPool {
[INFO] [stdout] 499 |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] 502 |             next_owner_port: config.base_owner_port,
[INFO] [stdout] 503 |             config: config,
[INFO] [stdout]   ...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> servers/tests/framework.rs:498:3
[INFO] [stdout]     |
[INFO] [stdout] 498 | /         (LocalServerContainerPool {
[INFO] [stdout] 499 | |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 | |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 | |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |             is_seeding: false,
[INFO] [stdout] 506 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 498 |         LocalServerContainerPool {
[INFO] [stdout] 499 |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] 502 |             next_owner_port: config.base_owner_port,
[INFO] [stdout] 503 |             config: config,
[INFO] [stdout]   ...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> servers/tests/framework.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!(e);
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout]     = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!("{}", e);
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     std::panic::panic_any(e);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> servers/tests/framework.rs:498:3
[INFO] [stdout]     |
[INFO] [stdout] 498 | /         (LocalServerContainerPool {
[INFO] [stdout] 499 | |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 | |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 | |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |             is_seeding: false,
[INFO] [stdout] 506 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 498 |         LocalServerContainerPool {
[INFO] [stdout] 499 |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] 502 |             next_owner_port: config.base_owner_port,
[INFO] [stdout] 503 |             config: config,
[INFO] [stdout]   ...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> config/src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use dirs;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml`
[INFO] [stdout]   --> config/src/lib.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use toml;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> servers/tests/framework.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!(e);
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout]     = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!("{}", e);
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     std::panic::panic_any(e);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> servers/tests/framework.rs:498:3
[INFO] [stdout]     |
[INFO] [stdout] 498 | /         (LocalServerContainerPool {
[INFO] [stdout] 499 | |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 | |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 | |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |             is_seeding: false,
[INFO] [stdout] 506 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 498 |         LocalServerContainerPool {
[INFO] [stdout] 499 |             next_api_port: config.base_api_port,
[INFO] [stdout] 500 |             next_p2p_port: config.base_p2p_port,
[INFO] [stdout] 501 |             next_wallet_port: config.base_wallet_port,
[INFO] [stdout] 502 |             next_owner_port: config.base_owner_port,
[INFO] [stdout] 503 |             config: config,
[INFO] [stdout]   ...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> config/src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use dirs;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml`
[INFO] [stdout]   --> config/src/lib.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use toml;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> servers/tests/framework.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!(e);
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout]     = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!("{}", e);
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     std::panic::panic_any(e);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> servers/tests/framework.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!(e);
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout]     = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!("{}", e);
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     std::panic::panic_any(e);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> servers/tests/framework.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!(e);
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout]     = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!("{}", e);
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     std::panic::panic_any(e);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> servers/tests/framework.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!(e);
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout]     = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     panic!("{}", e);
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 605 |                     std::panic::panic_any(e);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ctrlc`
[INFO] [stdout]   --> src/bin/grimble.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use ctrlc;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> src/bin/grimble.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grin_wallet`
[INFO] [stdout]   --> src/bin/grimble.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use grin_wallet;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `term`
[INFO] [stdout]   --> src/bin/grimble.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use term;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bin/cmd/wallet_args.rs:146:23
[INFO] [stdout]     |
[INFO] [stdout] 146 | ) -> Result<Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>, ParseError> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]   --> src/bin/cmd/wallet_tests.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use chrono;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]   --> src/bin/cmd/wallet_tests.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 |     use serde;
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bin/cmd/wallet_tests.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |     ) -> Result<Arc<Mutex<WalletInst<LocalWalletClient, ExtKeychain>>>, grin_wallet::Error> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<LocalWalletClient, ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/bin/tui/peers.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ctrlc`
[INFO] [stdout]   --> src/bin/grimble.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use ctrlc;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> src/bin/grimble.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `grin_wallet`
[INFO] [stdout]   --> src/bin/grimble.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use grin_wallet;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `term`
[INFO] [stdout]   --> src/bin/grimble.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use term;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bin/cmd/wallet_args.rs:146:23
[INFO] [stdout]     |
[INFO] [stdout] 146 | ) -> Result<Arc<Mutex<WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>>>, ParseError> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn WalletInst<impl NodeClient + 'static, keychain::ExtKeychain>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/bin/tui/peers.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 6m 28s
[INFO] running `Command { std: "docker" "inspect" "6a8c263b34fecbed603aa7f686fc214c226d1a2d49e6f44531e7d25a791cefc4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a8c263b34fecbed603aa7f686fc214c226d1a2d49e6f44531e7d25a791cefc4", kill_on_drop: false }`
[INFO] [stdout] 6a8c263b34fecbed603aa7f686fc214c226d1a2d49e6f44531e7d25a791cefc4
