[INFO] cloning repository https://github.com/rustfromscratch/chain
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rustfromscratch/chain" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frustfromscratch%2Fchain", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frustfromscratch%2Fchain'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7bca52792e0f8336b14c62324b4e11cf5a2cbae5
[INFO] checking rustfromscratch/chain against e4d5758286bf2cf6f415802f2cf861747a7c6c8c for pr-152972
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frustfromscratch%2Fchain" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/rustfromscratch/chain
[INFO] finished tweaking git repo https://github.com/rustfromscratch/chain
[INFO] tweaked toml for git repo https://github.com/rustfromscratch/chain written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rustfromscratch/chain on toolchain e4d5758286bf2cf6f415802f2cf861747a7c6c8c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e4d5758286bf2cf6f415802f2cf861747a7c6c8c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rustfromscratch/chain already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e4d5758286bf2cf6f415802f2cf861747a7c6c8c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `axum`
[INFO] [stderr]   --> Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | axum = "0.8.4"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `axum`
[INFO] [stderr] warning: unused workspace dependency `clap`
[INFO] [stderr]   --> Cargo.toml:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 | [workspace.dependencies.clap]
[INFO] [stderr]    |                         ^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `clap`
[INFO] [stderr] warning: unused workspace dependency `config`
[INFO] [stderr]   --> Cargo.toml:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | config = "0.15.11"
[INFO] [stderr]    | ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `config`
[INFO] [stderr] warning: unused workspace dependency `criterion`
[INFO] [stderr]   --> Cargo.toml:53:25
[INFO] [stderr]    |
[INFO] [stderr] 53 | [workspace.dependencies.criterion]
[INFO] [stderr]    |                         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `criterion`
[INFO] [stderr] warning: unused workspace dependency `dashmap`
[INFO] [stderr]   --> Cargo.toml:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | dashmap = "6.1.0"
[INFO] [stderr]    | ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `dashmap`
[INFO] [stderr] warning: unused workspace dependency `ed25519-dalek`
[INFO] [stderr]   --> Cargo.toml:57:25
[INFO] [stderr]    |
[INFO] [stderr] 57 | [workspace.dependencies.ed25519-dalek]
[INFO] [stderr]    |                         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `ed25519-dalek`
[INFO] [stderr] warning: unused workspace dependency `prometheus`
[INFO] [stderr]   --> Cargo.toml:32:1
[INFO] [stderr]    |
[INFO] [stderr] 32 | prometheus = "0.14.0"
[INFO] [stderr]    | ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `prometheus`
[INFO] [stderr] warning: unused workspace dependency `proptest`
[INFO] [stderr]   --> Cargo.toml:33:1
[INFO] [stderr]    |
[INFO] [stderr] 33 | proptest = "1.0"
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `proptest`
[INFO] [stderr] warning: unused workspace dependency `toml`
[INFO] [stderr]   --> Cargo.toml:41:1
[INFO] [stderr]    |
[INFO] [stderr] 41 | toml = "0.8"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `toml`
[INFO] [stderr] warning: unused workspace dependency `tower`
[INFO] [stderr]   --> Cargo.toml:42:1
[INFO] [stderr]    |
[INFO] [stderr] 42 | tower = "0.5.2"
[INFO] [stderr]    | ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tower`
[INFO] [stderr] warning: unused workspace dependency `tower-http`
[INFO] [stderr]   --> Cargo.toml:77:25
[INFO] [stderr]    |
[INFO] [stderr] 77 | [workspace.dependencies.tower-http]
[INFO] [stderr]    |                         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tower-http`
[INFO] [stderr] warning: unused workspace dependency `tracing-subscriber`
[INFO] [stderr]   --> Cargo.toml:81:25
[INFO] [stderr]    |
[INFO] [stderr] 81 | [workspace.dependencies.tracing-subscriber]
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tracing-subscriber`
[INFO] [stderr] warning: workspace (manifest) generated 12 warnings
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-dev-tools/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-dev-tools` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-node/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-node` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-network/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-network` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-db/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-db` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-core/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-core` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-vm/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-vm` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-consensus/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-consensus` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-cli/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-cli` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-rpc/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-rpc` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unsigned-varint v0.8.0
[INFO] [stderr]   Downloaded bumpalo v3.18.1
[INFO] [stderr]   Downloaded xattr v1.5.1
[INFO] [stderr]   Downloaded bitcoin-io v0.1.3
[INFO] [stderr]   Downloaded unsigned-varint v0.7.2
[INFO] [stderr]   Downloaded rw-stream-sink v0.4.0
[INFO] [stderr]   Downloaded quick-protobuf-codec v0.3.1
[INFO] [stderr]   Downloaded data-encoding-macro v0.1.18
[INFO] [stderr]   Downloaded base-x v0.2.11
[INFO] [stderr]   Downloaded data-encoding-macro-internal v0.1.16
[INFO] [stderr]   Downloaded if-addrs v0.10.2
[INFO] [stderr]   Downloaded libp2p-yamux v0.47.0
[INFO] [stderr]   Downloaded asynchronous-codec v0.7.0
[INFO] [stderr]   Downloaded prometheus-client-derive-encode v0.4.2
[INFO] [stderr]   Downloaded futures-bounded v0.2.4
[INFO] [stderr]   Downloaded hex_fmt v0.3.0
[INFO] [stderr]   Downloaded cron v0.15.0
[INFO] [stderr]   Downloaded multiaddr v0.18.2
[INFO] [stderr]   Downloaded multihash v0.19.3
[INFO] [stderr]   Downloaded yamux v0.13.5
[INFO] [stderr]   Downloaded yamux v0.12.1
[INFO] [stderr]   Downloaded multibase v0.9.1
[INFO] [stderr]   Downloaded libp2p-tls v0.6.1
[INFO] [stderr]   Downloaded multistream-select v0.13.0
[INFO] [stderr]   Downloaded netlink-proto v0.11.5
[INFO] [stderr]   Downloaded crunchy v0.2.3
[INFO] [stderr]   Downloaded libp2p-upnp v0.4.0
[INFO] [stderr]   Downloaded hex-conservative v0.2.1
[INFO] [stderr]   Downloaded libp2p-tcp v0.43.0
[INFO] [stderr]   Downloaded if-watch v3.2.1
[INFO] [stderr]   Downloaded libp2p-noise v0.46.0
[INFO] [stderr]   Downloaded futures-rustls v0.26.0
[INFO] [stderr]   Downloaded libp2p-ping v0.46.0
[INFO] [stderr]   Downloaded libp2p-metrics v0.16.0
[INFO] [stderr]   Downloaded libp2p-identify v0.46.0
[INFO] [stderr]   Downloaded uint v0.10.0
[INFO] [stderr]   Downloaded hashlink v0.9.1
[INFO] [stderr]   Downloaded libp2p-allow-block-list v0.5.0
[INFO] [stderr]   Downloaded bitcoin_hashes v0.14.0
[INFO] [stderr]   Downloaded libp2p-identity v0.2.11
[INFO] [stderr]   Downloaded igd-next v0.15.1
[INFO] [stderr]   Downloaded windows-core v0.53.0
[INFO] [stderr]   Downloaded libp2p-request-response v0.28.0
[INFO] [stderr]   Downloaded libp2p-mdns v0.47.0
[INFO] [stderr]   Downloaded async-io v2.4.1
[INFO] [stderr]   Downloaded resolv-conf v0.7.4
[INFO] [stderr]   Downloaded libp2p-quic v0.12.0
[INFO] [stderr]   Downloaded libp2p-dns v0.43.0
[INFO] [stderr]   Downloaded netlink-sys v0.8.7
[INFO] [stderr]   Downloaded generator v0.8.5
[INFO] [stderr]   Downloaded libp2p-connection-limits v0.5.0
[INFO] [stderr]   Downloaded libp2p-core v0.43.0
[INFO] [stderr]   Downloaded secp256k1 v0.31.0
[INFO] [stderr]   Downloaded libp2p-relay v0.19.0
[INFO] [stderr]   Downloaded prometheus-client v0.22.3
[INFO] [stderr]   Downloaded libp2p-autonat v0.14.0
[INFO] [stderr]   Downloaded quick-protobuf v0.8.1
[INFO] [stderr]   Downloaded libp2p v0.55.0
[INFO] [stderr]   Downloaded hickory-resolver v0.25.0-alpha.5
[INFO] [stderr]   Downloaded libp2p-swarm v0.46.0
[INFO] [stderr]   Downloaded rocksdb v0.23.0
[INFO] [stderr]   Downloaded libp2p-kad v0.47.0
[INFO] [stderr]   Downloaded libp2p-gossipsub v0.48.0
[INFO] [stderr]   Downloaded winnow v0.6.26
[INFO] [stderr]   Downloaded moka v0.12.10
[INFO] [stderr]   Downloaded syn v2.0.103
[INFO] [stderr]   Downloaded hickory-proto v0.25.0-alpha.5
[INFO] [stderr]   Downloaded sled v0.34.7
[INFO] [stderr]   Downloaded snow v0.9.6
[INFO] [stderr]   Downloaded libc v0.2.173
[INFO] [stderr]   Downloaded libz-sys v1.1.22
[INFO] [stderr]   Downloaded secp256k1-sys v0.11.0
[INFO] [stderr]   Downloaded librocksdb-sys v0.17.1+9.9.3
[INFO] [stderr]   Downloaded windows v0.53.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56
[INFO] running `Command { std: "docker" "start" "105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56" "/opt/rustwide/cargo-home/bin/cargo" "+e4d5758286bf2cf6f415802f2cf861747a7c6c8c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56" "/opt/rustwide/cargo-home/bin/cargo" "+e4d5758286bf2cf6f415802f2cf861747a7c6c8c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `axum`
[INFO] [stderr]   --> Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | axum = "0.8.4"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `axum`
[INFO] [stderr] warning: unused workspace dependency `clap`
[INFO] [stderr]   --> Cargo.toml:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 | [workspace.dependencies.clap]
[INFO] [stderr]    |                         ^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `clap`
[INFO] [stderr] warning: unused workspace dependency `config`
[INFO] [stderr]   --> Cargo.toml:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | config = "0.15.11"
[INFO] [stderr]    | ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `config`
[INFO] [stderr] warning: unused workspace dependency `criterion`
[INFO] [stderr]   --> Cargo.toml:53:25
[INFO] [stderr]    |
[INFO] [stderr] 53 | [workspace.dependencies.criterion]
[INFO] [stderr]    |                         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `criterion`
[INFO] [stderr] warning: unused workspace dependency `dashmap`
[INFO] [stderr]   --> Cargo.toml:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | dashmap = "6.1.0"
[INFO] [stderr]    | ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `dashmap`
[INFO] [stderr] warning: unused workspace dependency `ed25519-dalek`
[INFO] [stderr]   --> Cargo.toml:57:25
[INFO] [stderr]    |
[INFO] [stderr] 57 | [workspace.dependencies.ed25519-dalek]
[INFO] [stderr]    |                         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `ed25519-dalek`
[INFO] [stderr] warning: unused workspace dependency `prometheus`
[INFO] [stderr]   --> Cargo.toml:32:1
[INFO] [stderr]    |
[INFO] [stderr] 32 | prometheus = "0.14.0"
[INFO] [stderr]    | ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `prometheus`
[INFO] [stderr] warning: unused workspace dependency `proptest`
[INFO] [stderr]   --> Cargo.toml:33:1
[INFO] [stderr]    |
[INFO] [stderr] 33 | proptest = "1.0"
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `proptest`
[INFO] [stderr] warning: unused workspace dependency `toml`
[INFO] [stderr]   --> Cargo.toml:41:1
[INFO] [stderr]    |
[INFO] [stderr] 41 | toml = "0.8"
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `toml`
[INFO] [stderr] warning: unused workspace dependency `tower`
[INFO] [stderr]   --> Cargo.toml:42:1
[INFO] [stderr]    |
[INFO] [stderr] 42 | tower = "0.5.2"
[INFO] [stderr]    | ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tower`
[INFO] [stderr] warning: unused workspace dependency `tower-http`
[INFO] [stderr]   --> Cargo.toml:77:25
[INFO] [stderr]    |
[INFO] [stderr] 77 | [workspace.dependencies.tower-http]
[INFO] [stderr]    |                         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tower-http`
[INFO] [stderr] warning: unused workspace dependency `tracing-subscriber`
[INFO] [stderr]   --> Cargo.toml:81:25
[INFO] [stderr]    |
[INFO] [stderr] 81 | [workspace.dependencies.tracing-subscriber]
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `tracing-subscriber`
[INFO] [stderr] warning: workspace (manifest) generated 12 warnings
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-dev-tools/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-dev-tools` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-node/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-node` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-db/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-db` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-network/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-network` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-core/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-core` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-vm/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-vm` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-consensus/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-consensus` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-cli/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-cli` (manifest) generated 1 warning
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]  --> chain-rpc/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | repository.workspace = true
[INFO] [stderr]   | ----------
[INFO] [stderr] 8 | homepage.workspace = true
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `chain-rpc` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.173
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling syn v2.0.103
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking unsigned-varint v0.8.0
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]     Checking quick-protobuf v0.8.1
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking bs58 v0.5.1
[INFO] [stderr]     Checking multihash v0.19.3
[INFO] [stderr]     Checking base-x v0.2.11
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking anyhow v1.0.98
[INFO] [stderr]     Checking unsigned-varint v0.7.2
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling glob v0.3.2
[INFO] [stderr]    Compiling virtue v0.0.18
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling bincode_derive v2.0.1
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling libloading v0.8.8
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking bincode v2.0.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling secp256k1-sys v0.11.0
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling bindgen v0.71.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]    Compiling moka v0.12.10
[INFO] [stderr]    Compiling crunchy v0.2.3
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]     Checking tinyvec v1.9.0
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.29
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.16
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking ed25519-dalek v2.1.1
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking data-encoding-macro v0.1.18
[INFO] [stderr]     Checking multibase v0.9.1
[INFO] [stderr]     Checking libp2p-identity v0.2.11
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking secp256k1 v0.31.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking multistream-select v0.13.0
[INFO] [stderr]     Checking rw-stream-sink v0.4.0
[INFO] [stderr]     Checking asynchronous-codec v0.7.0
[INFO] [stderr]     Checking futures-bounded v0.2.4
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking netlink-packet-utils v0.5.2
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking quick-protobuf-codec v0.3.1
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]     Checking netlink-packet-core v0.7.0
[INFO] [stderr]    Compiling lz4-sys v1.11.1+lz4-1.10.0
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking netlink-packet-route v0.17.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]    Compiling snow v0.9.6
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]     Checking tagptr v0.2.0
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling prometheus-client v0.22.3
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]     Checking multiaddr v0.18.2
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking libp2p-core v0.43.0
[INFO] [stderr]     Checking netlink-sys v0.8.7
[INFO] [stderr]     Checking netlink-proto v0.11.5
[INFO] [stderr]     Checking hickory-proto v0.25.0-alpha.5
[INFO] [stderr]     Checking rtnetlink v0.13.1
[INFO] [stderr]     Checking chain-core v0.1.0 (/opt/rustwide/workdir/chain-core)
[INFO] [stderr]     Checking libp2p-swarm v0.46.0
[INFO] [stderr]    Compiling prometheus-client-derive-encode v0.4.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking dtoa v1.0.10
[INFO] [stderr]     Checking resolv-conf v0.7.4
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking libp2p-request-response v0.28.0
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]     Checking uint v0.10.0
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]     Checking if-watch v3.2.1
[INFO] [stderr]     Checking yamux v0.13.5
[INFO] [stderr]     Checking yamux v0.12.1
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking hex_fmt v0.3.0
[INFO] [stderr]     Checking libp2p-gossipsub v0.48.0
[INFO] [stderr]     Checking libp2p-noise v0.46.0
[INFO] [stderr]     Checking libp2p-tcp v0.43.0
[INFO] [stderr]     Checking libp2p-yamux v0.47.0
[INFO] [stderr]     Checking libp2p-autonat v0.14.0
[INFO] [stderr]     Checking libp2p-kad v0.47.0
[INFO] [stderr]     Checking libp2p-relay v0.19.0
[INFO] [stderr]     Checking hickory-resolver v0.25.0-alpha.5
[INFO] [stderr]     Checking libp2p-allow-block-list v0.5.0
[INFO] [stderr]     Checking libp2p-identify v0.46.0
[INFO] [stderr]     Checking libp2p-ping v0.46.0
[INFO] [stderr]     Checking libp2p-dns v0.43.0
[INFO] [stderr]     Checking libp2p-connection-limits v0.5.0
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking winnow v0.7.11
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking xattr v1.5.1
[INFO] [stderr]     Checking filetime v0.2.25
[INFO] [stderr]     Checking winnow v0.6.26
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking libp2p v0.55.0
[INFO] [stderr]     Checking tar v0.4.44
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking chain-network v0.1.0 (/opt/rustwide/workdir/chain-network)
[INFO] [stderr]     Checking chain-consensus v0.1.0 (/opt/rustwide/workdir/chain-consensus)
[INFO] [stderr]     Checking chain-dev-tools v0.1.0 (/opt/rustwide/workdir/chain-dev-tools)
[INFO] [stderr]     Checking chain-node v0.1.0 (/opt/rustwide/workdir/chain-node)
[INFO] [stderr]     Checking chain-cli v0.1.0 (/opt/rustwide/workdir/chain-cli)
[INFO] [stderr]     Checking chain-rpc v0.1.0 (/opt/rustwide/workdir/chain-rpc)
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]    Compiling librocksdb-sys v0.17.1+9.9.3
[INFO] [stderr]     Checking cron v0.15.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking chain-vm v0.1.0 (/opt/rustwide/workdir/chain-vm)
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/state.rs:102:27
[INFO] [stdout]     |
[INFO] [stdout] 102 |         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout]     |                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Hash` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:14:17
[INFO] [stdout]     |
[INFO] [stdout]  14 | pub struct Hash([u8; 32]);
[INFO] [stdout]     |                 ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = Hash::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = Hash::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = Hash::zero();
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this unit variant instead
[INFO] [stdout]     |
[INFO] [stdout]   3 + use blake3::hazmat::Mode::Hash;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AccountState` and `Account`
[INFO] [stdout]  --> chain-vm/src/executor.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::account::{Account, AccountChanges, AccountState};
[INFO] [stdout]   |                      ^^^^^^^                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageOp`
[INFO] [stdout]  --> chain-vm/src/executor.rs:4:41
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::gas::{GasMeter, GasSchedule, StorageOp};
[INFO] [stdout]   |                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> chain-vm/src/executor.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `chain_core::PrivateKey`
[INFO] [stdout]    --> chain-vm/src/executor.rs:358:22
[INFO] [stdout]     |
[INFO] [stdout] 358 |     use chain_core::{PrivateKey};
[INFO] [stdout]     |                      ^^^^^^^^^^ no `PrivateKey` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_data` found for struct `chain_core::Hash` in the current scope
[INFO] [stdout]    --> chain-vm/src/account.rs:135:31
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let code_hash = Hash::from_data(&code);
[INFO] [stdout]     |                               ^^^^^^^^^ associated function or constant not found in `chain_core::Hash`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `chain_core::Hash` consider using one of the following associated functions:
[INFO] [stdout]       chain_core::Hash::new
[INFO] [stdout]       chain_core::Hash::from_slice
[INFO] [stdout]       chain_core::Hash::from_hex
[INFO] [stdout]       chain_core::Hash::zero
[INFO] [stdout]    --> chain-core/src/types.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn new(bytes: [u8; 32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_slice(slice: &[u8]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_hex(hex: &str) -> Result<Self, hex::FromHexError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn zero() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/state.rs:102:27
[INFO] [stdout]     |
[INFO] [stdout] 102 |         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout]     |                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Hash` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:14:17
[INFO] [stdout]     |
[INFO] [stdout]  14 | pub struct Hash([u8; 32]);
[INFO] [stdout]     |                 ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = Hash::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = Hash::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = Hash::zero();
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 102 -         self.state_root = Hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout] 102 +         self.state_root = hash(hash.as_bytes()[..32].try_into().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this unit variant instead
[INFO] [stdout]     |
[INFO] [stdout]   3 + use blake3::hazmat::Mode::Hash;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AccountState`
[INFO] [stdout]  --> chain-vm/src/executor.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::account::{Account, AccountChanges, AccountState};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageOp`
[INFO] [stdout]  --> chain-vm/src/executor.rs:4:41
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::gas::{GasMeter, GasSchedule, StorageOp};
[INFO] [stdout]   |                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> chain-vm/src/executor.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for reference `&Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:132:66
[INFO] [stdout]     |
[INFO] [stdout] 132 |         info!("Executing balance transfer from {:?} to {:?}", tx.from()?, tx.to);
[INFO] [stdout]     |                                                                  ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 132 -         info!("Executing balance transfer from {:?} to {:?}", tx.from()?, tx.to);
[INFO] [stdout] 132 +         info!("Executing balance transfer from {:?} to {:?}", Transaction::from()?, tx.to);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for reference `&Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:142:25
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let sender = tx.from()?;
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 142 -         let sender = tx.from()?;
[INFO] [stdout] 142 +         let sender = Transaction::from()?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:53
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `u64` by `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:51
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                   ^ no implementation for `u64 * u128`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<u128>` is not implemented for `u64`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&u64` implements `Mul<u64>`
[INFO] [stdout]               `&u64` implements `Mul`
[INFO] [stdout]               `u64` implements `Mul<&u64>`
[INFO] [stdout]               `u64` implements `Mul<zerocopy::byteorder::U64<O>>`
[INFO] [stdout]               `u64` implements `Mul`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:37
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u128`, found `u64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot add `u64` to `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:35
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                   ^ no implementation for `u128 + u64`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Add<u64>` is not implemented for `u128`
[INFO] [stdout]     = help: the following other types implement trait `Add<Rhs>`:
[INFO] [stdout]               `&u128` implements `Add<u128>`
[INFO] [stdout]               `&u128` implements `Add`
[INFO] [stdout]               `u128` implements `Add<&u128>`
[INFO] [stdout]               `u128` implements `Add<zerocopy::byteorder::U128<O>>`
[INFO] [stdout]               `u128` implements `Add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:155:37
[INFO] [stdout]     |
[INFO] [stdout] 155 |         if sender_account.balance < total_cost {
[INFO] [stdout]     |            ----------------------   ^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            expected because this is `u64`
[INFO] [stdout]     |
[INFO] [stdout] help: you can convert `sender_account.balance` from `u64` to `u128`, matching the type of `total_cost`
[INFO] [stdout]     |
[INFO] [stdout] 155 |         if u128::from(sender_account.balance) < total_cost {
[INFO] [stdout]     |            +++++++++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:167:50
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let recipient_exists = state.get_account(&recipient)?.is_some();
[INFO] [stdout]     |                                      ----------- ^^^^^^^^^^ expected `&Address`, found `&Option<Address>`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Address`
[INFO] [stdout]                found reference `&std::option::Option<Address>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/state.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 305 |     pub fn get_account(&self, address: &Address) -> VmResult<Option<Account>> {
[INFO] [stdout]     |            ^^^^^^^^^^^        -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:168:55
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut recipient_account = state.get_account(&recipient)?.unwrap_or_default();
[INFO] [stdout]     |                                           ----------- ^^^^^^^^^^ expected `&Address`, found `&Option<Address>`
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Address`
[INFO] [stdout]                found reference `&std::option::Option<Address>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/state.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 305 |     pub fn get_account(&self, address: &Address) -> VmResult<Option<Account>> {
[INFO] [stdout]     |            ^^^^^^^^^^^        -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:173:71
[INFO] [stdout]     |
[INFO] [stdout] 173 |             state_changes.push(StateChange::AccountCreated { address: recipient });
[INFO] [stdout]     |                                                                       ^^^^^^^^^ expected `Address`, found `Option<Address>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Address`
[INFO] [stdout]                  found enum `std::option::Option<Address>`
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<Address>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 173 |             state_changes.push(StateChange::AccountCreated { address: recipient.expect("REASON") });
[INFO] [stdout]     |                                                                                +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:181:40
[INFO] [stdout]     |
[INFO] [stdout] 181 |             sender_account.sub_balance(tx.value)?;
[INFO] [stdout]     |                            ----------- ^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/account.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  65 |     pub fn sub_balance(&mut self, amount: u64) -> VmResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^            -----------
[INFO] [stdout] help: you can convert a `u128` to a `u64` and panic if the converted value doesn't fit
[INFO] [stdout]     |
[INFO] [stdout] 181 |             sender_account.sub_balance(tx.value.try_into().unwrap())?;
[INFO] [stdout]     |                                                ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:182:43
[INFO] [stdout]     |
[INFO] [stdout] 182 |             recipient_account.add_balance(tx.value)?;
[INFO] [stdout]     |                               ----------- ^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/account.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub fn add_balance(&mut self, amount: u64) -> VmResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^            -----------
[INFO] [stdout] help: you can convert a `u128` to a `u64` and panic if the converted value doesn't fit
[INFO] [stdout]     |
[INFO] [stdout] 182 |             recipient_account.add_balance(tx.value.try_into().unwrap())?;
[INFO] [stdout]     |                                                   ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:191:26
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 address: recipient,
[INFO] [stdout]     |                          ^^^^^^^^^ expected `Address`, found `Option<Address>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Address`
[INFO] [stdout]                  found enum `std::option::Option<Address>`
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<Address>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 address: recipient.expect("REASON"),
[INFO] [stdout]     |                                   +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:207:47
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let gas_cost = gas_meter.consumed() * tx.gas_price;
[INFO] [stdout]     |                                               ^^^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `u64` by `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:207:45
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let gas_cost = gas_meter.consumed() * tx.gas_price;
[INFO] [stdout]     |                                             ^ no implementation for `u64 * u128`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<u128>` is not implemented for `u64`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&u64` implements `Mul<u64>`
[INFO] [stdout]               `&u64` implements `Mul`
[INFO] [stdout]               `u64` implements `Mul<&u64>`
[INFO] [stdout]               `u64` implements `Mul<zerocopy::byteorder::U64<O>>`
[INFO] [stdout]               `u64` implements `Mul`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:215:40
[INFO] [stdout]     |
[INFO] [stdout] 215 |         account_changes.update_account(recipient, recipient_account);
[INFO] [stdout]     |                         -------------- ^^^^^^^^^ expected `Address`, found `Option<Address>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Address`
[INFO] [stdout]                  found enum `std::option::Option<Address>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/account.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub fn update_account(&mut self, address: Address, account: Account) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^            ----------------
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<Address>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 215 |         account_changes.update_account(recipient.expect("REASON"), recipient_account);
[INFO] [stdout]     |                                                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `VmError`
[INFO] [stdout]    --> chain-vm/src/executor.rs:326:34
[INFO] [stdout]     |
[INFO] [stdout] 326 |         if !tx.verify_signature()? {
[INFO] [stdout]     |                ------------------^ the trait `From<CoreError>` is not implemented for `VmError`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, CoreError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `VmError` needs to implement `From<CoreError>`
[INFO] [stdout]    --> chain-vm/src/error.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub enum VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: `VmError` implements trait `From<T>`
[INFO] [stdout]    --> chain-vm/src/error.rs:45:1
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl From<bincode::Error> for VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<Box<bincode::ErrorKind>>`
[INFO] [stdout] ...
[INFO] [stdout]  51 | impl From<anyhow::Error> for VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for reference `&Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:331:25
[INFO] [stdout]     |
[INFO] [stdout] 331 |         let sender = tx.from()?;
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 331 -         let sender = tx.from()?;
[INFO] [stdout] 331 +         let sender = Transaction::from()?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:53
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `u64` by `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:51
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                   ^ no implementation for `u64 * u128`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<u128>` is not implemented for `u64`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&u64` implements `Mul<u64>`
[INFO] [stdout]               `&u64` implements `Mul`
[INFO] [stdout]               `u64` implements `Mul<&u64>`
[INFO] [stdout]               `u64` implements `Mul<zerocopy::byteorder::U64<O>>`
[INFO] [stdout]               `u64` implements `Mul`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:37
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u128`, found `u64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot add `u64` to `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:35
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                   ^ no implementation for `u128 + u64`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Add<u64>` is not implemented for `u128`
[INFO] [stdout]     = help: the following other types implement trait `Add<Rhs>`:
[INFO] [stdout]               `&u128` implements `Add<u128>`
[INFO] [stdout]               `&u128` implements `Add`
[INFO] [stdout]               `u128` implements `Add<&u128>`
[INFO] [stdout]               `u128` implements `Add<zerocopy::byteorder::U128<O>>`
[INFO] [stdout]               `u128` implements `Add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:344:37
[INFO] [stdout]     |
[INFO] [stdout] 344 |         if sender_account.balance < total_cost {
[INFO] [stdout]     |            ----------------------   ^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            expected because this is `u64`
[INFO] [stdout]     |
[INFO] [stdout] help: you can convert `sender_account.balance` from `u64` to `u128`, matching the type of `total_cost`
[INFO] [stdout]     |
[INFO] [stdout] 344 |         if u128::from(sender_account.balance) < total_cost {
[INFO] [stdout]     |            +++++++++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:346:27
[INFO] [stdout]     |
[INFO] [stdout] 346 |                 required: total_cost,
[INFO] [stdout]     |                           ^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&Address: Ord` is not satisfied
[INFO] [stdout]   --> chain-vm/src/state.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         sorted_accounts.sort_by_key(|(addr, _)| *addr);
[INFO] [stdout]    |                         ^^^^^^^^^^^ the trait `Ord` is not implemented for `&Address`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `std::slice::<impl [T]>::sort_by_key`
[INFO] [stdout]   --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/alloc/src/slice.rs:247:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `Address` is private
[INFO] [stdout]   --> chain-vm/src/state.rs:94:36
[INFO] [stdout]    |
[INFO] [stdout] 94 |             hasher.update(&address.0);
[INFO] [stdout]    |                                    ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `chain_core::Hash` is private
[INFO] [stdout]   --> chain-vm/src/state.rs:97:46
[INFO] [stdout]    |
[INFO] [stdout] 97 |             hasher.update(&account.code_hash.0);
[INFO] [stdout]    |                                              ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `chain_core::Hash` is private
[INFO] [stdout]   --> chain-vm/src/state.rs:98:49
[INFO] [stdout]    |
[INFO] [stdout] 98 |             hasher.update(&account.storage_root.0);
[INFO] [stdout]    |                                                 ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_any_mut` found for mutable reference `&mut dyn StateDB` in the current scope
[INFO] [stdout]    --> chain-vm/src/state.rs:258:43
[INFO] [stdout]     |
[INFO] [stdout] 258 |         if let Some(memory_state) = state.as_any_mut().downcast_mut::<MemoryStateDB>() {
[INFO] [stdout]     |                                           ^^^^^^^^^^ method not found in `&mut dyn StateDB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateDB`
[INFO] [stdout]  --> chain-vm/src/executor.rs:5:35
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::state::{SharedStateDB, StateDB};
[INFO] [stdout]   |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_data` found for struct `chain_core::Hash` in the current scope
[INFO] [stdout]    --> chain-vm/src/account.rs:135:31
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let code_hash = Hash::from_data(&code);
[INFO] [stdout]     |                               ^^^^^^^^^ associated function or constant not found in `chain_core::Hash`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `chain_core::Hash` consider using one of the following associated functions:
[INFO] [stdout]       chain_core::Hash::new
[INFO] [stdout]       chain_core::Hash::from_slice
[INFO] [stdout]       chain_core::Hash::from_hex
[INFO] [stdout]       chain_core::Hash::zero
[INFO] [stdout]    --> chain-core/src/types.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn new(bytes: [u8; 32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_slice(slice: &[u8]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_hex(hex: &str) -> Result<Self, hex::FromHexError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn zero() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_data` found for struct `chain_core::Hash` in the current scope
[INFO] [stdout]    --> chain-vm/src/account.rs:285:31
[INFO] [stdout]     |
[INFO] [stdout] 285 |         let code_hash = Hash::from_data(b"some code");
[INFO] [stdout]     |                               ^^^^^^^^^ associated function or constant not found in `chain_core::Hash`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `chain_core::Hash` consider using one of the following associated functions:
[INFO] [stdout]       chain_core::Hash::new
[INFO] [stdout]       chain_core::Hash::from_slice
[INFO] [stdout]       chain_core::Hash::from_hex
[INFO] [stdout]       chain_core::Hash::zero
[INFO] [stdout]    --> chain-core/src/types.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn new(bytes: [u8; 32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_slice(slice: &[u8]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_hex(hex: &str) -> Result<Self, hex::FromHexError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn zero() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_data` found for struct `chain_core::Hash` in the current scope
[INFO] [stdout]    --> chain-vm/src/account.rs:296:25
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let key = Hash::from_data(b"storage_key");
[INFO] [stdout]     |                         ^^^^^^^^^ associated function or constant not found in `chain_core::Hash`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `chain_core::Hash` consider using one of the following associated functions:
[INFO] [stdout]       chain_core::Hash::new
[INFO] [stdout]       chain_core::Hash::from_slice
[INFO] [stdout]       chain_core::Hash::from_hex
[INFO] [stdout]       chain_core::Hash::zero
[INFO] [stdout]    --> chain-core/src/types.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn new(bytes: [u8; 32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_slice(slice: &[u8]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_hex(hex: &str) -> Result<Self, hex::FromHexError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn zero() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/account.rs:314:23
[INFO] [stdout]     |
[INFO] [stdout] 314 |         let address = Address([1u8; 20]);
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 314 -         let address = Address([1u8; 20]);
[INFO] [stdout] 314 +         let address = Address::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 314 -         let address = Address([1u8; 20]);
[INFO] [stdout] 314 +         let address = Address::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 314 -         let address = Address([1u8; 20]);
[INFO] [stdout] 314 +         let address = Address::zero();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_data` found for struct `chain_core::Hash` in the current scope
[INFO] [stdout]    --> chain-vm/src/account.rs:320:25
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let key = Hash::from_data(b"key");
[INFO] [stdout]     |                         ^^^^^^^^^ associated function or constant not found in `chain_core::Hash`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `chain_core::Hash` consider using one of the following associated functions:
[INFO] [stdout]       chain_core::Hash::new
[INFO] [stdout]       chain_core::Hash::from_slice
[INFO] [stdout]       chain_core::Hash::from_hex
[INFO] [stdout]       chain_core::Hash::zero
[INFO] [stdout]    --> chain-core/src/types.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn new(bytes: [u8; 32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_slice(slice: &[u8]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_hex(hex: &str) -> Result<Self, hex::FromHexError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn zero() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0423, E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chain-vm` (lib) due to 31 previous errors; 4 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: no method named `from` found for reference `&chain_core::Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:132:66
[INFO] [stdout]     |
[INFO] [stdout] 132 |         info!("Executing balance transfer from {:?} to {:?}", tx.from()?, tx.to);
[INFO] [stdout]     |                                                                  ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 132 -         info!("Executing balance transfer from {:?} to {:?}", tx.from()?, tx.to);
[INFO] [stdout] 132 +         info!("Executing balance transfer from {:?} to {:?}", chain_core::Transaction::from()?, tx.to);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for reference `&chain_core::Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:142:25
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let sender = tx.from()?;
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 142 -         let sender = tx.from()?;
[INFO] [stdout] 142 +         let sender = chain_core::Transaction::from()?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:53
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `u64` by `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:51
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                   ^ no implementation for `u64 * u128`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<u128>` is not implemented for `u64`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&u64` implements `Mul<u64>`
[INFO] [stdout]               `&u64` implements `Mul`
[INFO] [stdout]               `u64` implements `Mul<&u64>`
[INFO] [stdout]               `u64` implements `Mul<zerocopy::byteorder::U64<O>>`
[INFO] [stdout]               `u64` implements `Mul`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:37
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u128`, found `u64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot add `u64` to `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:154:35
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                   ^ no implementation for `u128 + u64`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Add<u64>` is not implemented for `u128`
[INFO] [stdout]     = help: the following other types implement trait `Add<Rhs>`:
[INFO] [stdout]               `&u128` implements `Add<u128>`
[INFO] [stdout]               `&u128` implements `Add`
[INFO] [stdout]               `u128` implements `Add<&u128>`
[INFO] [stdout]               `u128` implements `Add<zerocopy::byteorder::U128<O>>`
[INFO] [stdout]               `u128` implements `Add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:155:37
[INFO] [stdout]     |
[INFO] [stdout] 155 |         if sender_account.balance < total_cost {
[INFO] [stdout]     |            ----------------------   ^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            expected because this is `u64`
[INFO] [stdout]     |
[INFO] [stdout] help: you can convert `sender_account.balance` from `u64` to `u128`, matching the type of `total_cost`
[INFO] [stdout]     |
[INFO] [stdout] 155 |         if u128::from(sender_account.balance) < total_cost {
[INFO] [stdout]     |            +++++++++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:167:50
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let recipient_exists = state.get_account(&recipient)?.is_some();
[INFO] [stdout]     |                                      ----------- ^^^^^^^^^^ expected `&Address`, found `&Option<Address>`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Address`
[INFO] [stdout]                found reference `&std::option::Option<Address>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/state.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 305 |     pub fn get_account(&self, address: &Address) -> VmResult<Option<Account>> {
[INFO] [stdout]     |            ^^^^^^^^^^^        -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:168:55
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut recipient_account = state.get_account(&recipient)?.unwrap_or_default();
[INFO] [stdout]     |                                           ----------- ^^^^^^^^^^ expected `&Address`, found `&Option<Address>`
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Address`
[INFO] [stdout]                found reference `&std::option::Option<Address>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/state.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 305 |     pub fn get_account(&self, address: &Address) -> VmResult<Option<Account>> {
[INFO] [stdout]     |            ^^^^^^^^^^^        -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:173:71
[INFO] [stdout]     |
[INFO] [stdout] 173 |             state_changes.push(StateChange::AccountCreated { address: recipient });
[INFO] [stdout]     |                                                                       ^^^^^^^^^ expected `Address`, found `Option<Address>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Address`
[INFO] [stdout]                  found enum `std::option::Option<Address>`
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<chain_core::Address>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 173 |             state_changes.push(StateChange::AccountCreated { address: recipient.expect("REASON") });
[INFO] [stdout]     |                                                                                +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:181:40
[INFO] [stdout]     |
[INFO] [stdout] 181 |             sender_account.sub_balance(tx.value)?;
[INFO] [stdout]     |                            ----------- ^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/account.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  65 |     pub fn sub_balance(&mut self, amount: u64) -> VmResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^            -----------
[INFO] [stdout] help: you can convert a `u128` to a `u64` and panic if the converted value doesn't fit
[INFO] [stdout]     |
[INFO] [stdout] 181 |             sender_account.sub_balance(tx.value.try_into().unwrap())?;
[INFO] [stdout]     |                                                ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:182:43
[INFO] [stdout]     |
[INFO] [stdout] 182 |             recipient_account.add_balance(tx.value)?;
[INFO] [stdout]     |                               ----------- ^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/account.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub fn add_balance(&mut self, amount: u64) -> VmResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^            -----------
[INFO] [stdout] help: you can convert a `u128` to a `u64` and panic if the converted value doesn't fit
[INFO] [stdout]     |
[INFO] [stdout] 182 |             recipient_account.add_balance(tx.value.try_into().unwrap())?;
[INFO] [stdout]     |                                                   ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:191:26
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 address: recipient,
[INFO] [stdout]     |                          ^^^^^^^^^ expected `Address`, found `Option<Address>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Address`
[INFO] [stdout]                  found enum `std::option::Option<Address>`
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<chain_core::Address>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 address: recipient.expect("REASON"),
[INFO] [stdout]     |                                   +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:207:47
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let gas_cost = gas_meter.consumed() * tx.gas_price;
[INFO] [stdout]     |                                               ^^^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `u64` by `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:207:45
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let gas_cost = gas_meter.consumed() * tx.gas_price;
[INFO] [stdout]     |                                             ^ no implementation for `u64 * u128`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<u128>` is not implemented for `u64`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&u64` implements `Mul<u64>`
[INFO] [stdout]               `&u64` implements `Mul`
[INFO] [stdout]               `u64` implements `Mul<&u64>`
[INFO] [stdout]               `u64` implements `Mul<zerocopy::byteorder::U64<O>>`
[INFO] [stdout]               `u64` implements `Mul`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:215:40
[INFO] [stdout]     |
[INFO] [stdout] 215 |         account_changes.update_account(recipient, recipient_account);
[INFO] [stdout]     |                         -------------- ^^^^^^^^^ expected `Address`, found `Option<Address>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Address`
[INFO] [stdout]                  found enum `std::option::Option<Address>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> chain-vm/src/account.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub fn update_account(&mut self, address: Address, account: Account) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^            ----------------
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<chain_core::Address>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 215 |         account_changes.update_account(recipient.expect("REASON"), recipient_account);
[INFO] [stdout]     |                                                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::VmError`
[INFO] [stdout]    --> chain-vm/src/executor.rs:326:34
[INFO] [stdout]     |
[INFO] [stdout] 326 |         if !tx.verify_signature()? {
[INFO] [stdout]     |                ------------------^ the trait `From<CoreError>` is not implemented for `error::VmError`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, CoreError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `error::VmError` needs to implement `From<CoreError>`
[INFO] [stdout]    --> chain-vm/src/error.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub enum VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: `error::VmError` implements trait `From<T>`
[INFO] [stdout]    --> chain-vm/src/error.rs:45:1
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl From<bincode::Error> for VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<Box<bincode::ErrorKind>>`
[INFO] [stdout] ...
[INFO] [stdout]  51 | impl From<anyhow::Error> for VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for reference `&chain_core::Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:331:25
[INFO] [stdout]     |
[INFO] [stdout] 331 |         let sender = tx.from()?;
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 331 -         let sender = tx.from()?;
[INFO] [stdout] 331 +         let sender = chain_core::Transaction::from()?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:53
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `u64` by `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:51
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                                   ^ no implementation for `u64 * u128`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<u128>` is not implemented for `u64`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&u64` implements `Mul<u64>`
[INFO] [stdout]               `&u64` implements `Mul`
[INFO] [stdout]               `u64` implements `Mul<&u64>`
[INFO] [stdout]               `u64` implements `Mul<zerocopy::byteorder::U64<O>>`
[INFO] [stdout]               `u64` implements `Mul`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:37
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u128`, found `u64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot add `u64` to `u128`
[INFO] [stdout]    --> chain-vm/src/executor.rs:343:35
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let total_cost = tx.value + (tx.gas_limit * tx.gas_price);
[INFO] [stdout]     |                                   ^ no implementation for `u128 + u64`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Add<u64>` is not implemented for `u128`
[INFO] [stdout]     = help: the following other types implement trait `Add<Rhs>`:
[INFO] [stdout]               `&u128` implements `Add<u128>`
[INFO] [stdout]               `&u128` implements `Add`
[INFO] [stdout]               `u128` implements `Add<&u128>`
[INFO] [stdout]               `u128` implements `Add<zerocopy::byteorder::U128<O>>`
[INFO] [stdout]               `u128` implements `Add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:344:37
[INFO] [stdout]     |
[INFO] [stdout] 344 |         if sender_account.balance < total_cost {
[INFO] [stdout]     |            ----------------------   ^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            expected because this is `u64`
[INFO] [stdout]     |
[INFO] [stdout] help: you can convert `sender_account.balance` from `u64` to `u128`, matching the type of `total_cost`
[INFO] [stdout]     |
[INFO] [stdout] 344 |         if u128::from(sender_account.balance) < total_cost {
[INFO] [stdout]     |            +++++++++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> chain-vm/src/executor.rs:346:27
[INFO] [stdout]     |
[INFO] [stdout] 346 |                 required: total_cost,
[INFO] [stdout]     |                           ^^^^^^^^^^ expected `u64`, found `u128`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/executor.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let recipient = Address([2u8; 20]);
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 363 -         let recipient = Address([2u8; 20]);
[INFO] [stdout] 363 +         let recipient = Address::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 363 -         let recipient = Address([2u8; 20]);
[INFO] [stdout] 363 +         let recipient = Address::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 363 -         let recipient = Address([2u8; 20]);
[INFO] [stdout] 363 +         let recipient = Address::zero();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::VmError`
[INFO] [stdout]    --> chain-vm/src/executor.rs:375:30
[INFO] [stdout]     |
[INFO] [stdout] 360 |     fn create_test_transaction() -> VmResult<Transaction> {
[INFO] [stdout]     |                                     --------------------- expected `error::VmError` because of this
[INFO] [stdout] ...
[INFO] [stdout] 375 |         tx.sign(&private_key)?;
[INFO] [stdout]     |            ------------------^ the trait `From<CoreError>` is not implemented for `error::VmError`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            this can't be annotated with `?` because it has type `Result<_, CoreError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `error::VmError` needs to implement `From<CoreError>`
[INFO] [stdout]    --> chain-vm/src/error.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub enum VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: `error::VmError` implements trait `From<T>`
[INFO] [stdout]    --> chain-vm/src/error.rs:45:1
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl From<bincode::Error> for VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<Box<bincode::ErrorKind>>`
[INFO] [stdout] ...
[INFO] [stdout]  51 | impl From<anyhow::Error> for VmError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for struct `chain_core::Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:386:25
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let sender = tx.from().unwrap();
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 386 -         let sender = tx.from().unwrap();
[INFO] [stdout] 386 +         let sender = chain_core::Transaction::from().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/executor.rs:397:23
[INFO] [stdout]     |
[INFO] [stdout] 397 |             coinbase: Address([3u8; 20]),
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 397 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 397 +             coinbase: Address::new(_),
[INFO] [stdout]     |
[INFO] [stdout] 397 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 397 +             coinbase: Address::from_slice(_),
[INFO] [stdout]     |
[INFO] [stdout] 397 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 397 +             coinbase: Address::zero(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for struct `chain_core::Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:413:25
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let sender = tx.from().unwrap();
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 413 -         let sender = tx.from().unwrap();
[INFO] [stdout] 413 +         let sender = chain_core::Transaction::from().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/executor.rs:424:23
[INFO] [stdout]     |
[INFO] [stdout] 424 |             coinbase: Address([3u8; 20]),
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 424 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 424 +             coinbase: Address::new(_),
[INFO] [stdout]     |
[INFO] [stdout] 424 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 424 +             coinbase: Address::from_slice(_),
[INFO] [stdout]     |
[INFO] [stdout] 424 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 424 +             coinbase: Address::zero(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for struct `chain_core::Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:446:25
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let sender = tx.from().unwrap();
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 446 -         let sender = tx.from().unwrap();
[INFO] [stdout] 446 +         let sender = chain_core::Transaction::from().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/executor.rs:457:23
[INFO] [stdout]     |
[INFO] [stdout] 457 |             coinbase: Address([3u8; 20]),
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 457 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 457 +             coinbase: Address::new(_),
[INFO] [stdout]     |
[INFO] [stdout] 457 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 457 +             coinbase: Address::from_slice(_),
[INFO] [stdout]     |
[INFO] [stdout] 457 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 457 +             coinbase: Address::zero(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from` found for struct `chain_core::Transaction` in the current scope
[INFO] [stdout]    --> chain-vm/src/executor.rs:474:25
[INFO] [stdout]     |
[INFO] [stdout] 474 |         let sender = tx.from().unwrap();
[INFO] [stdout]     |                         ^^^^ this is an associated function, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `From`
[INFO] [stdout]    --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/core/src/convert/mod.rs:594:4
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]     |
[INFO] [stdout] 474 -         let sender = tx.from().unwrap();
[INFO] [stdout] 474 +         let sender = chain_core::Transaction::from().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/executor.rs:485:23
[INFO] [stdout]     |
[INFO] [stdout] 485 |             coinbase: Address([3u8; 20]),
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 485 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 485 +             coinbase: Address::new(_),
[INFO] [stdout]     |
[INFO] [stdout] 485 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 485 +             coinbase: Address::from_slice(_),
[INFO] [stdout]     |
[INFO] [stdout] 485 -             coinbase: Address([3u8; 20]),
[INFO] [stdout] 485 +             coinbase: Address::zero(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&chain_core::Address: Ord` is not satisfied
[INFO] [stdout]   --> chain-vm/src/state.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         sorted_accounts.sort_by_key(|(addr, _)| *addr);
[INFO] [stdout]    |                         ^^^^^^^^^^^ the trait `Ord` is not implemented for `&chain_core::Address`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `std::slice::<impl [T]>::sort_by_key`
[INFO] [stdout]   --> /rustc/e4d5758286bf2cf6f415802f2cf861747a7c6c8c/library/alloc/src/slice.rs:247:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `chain_core::Address` is private
[INFO] [stdout]   --> chain-vm/src/state.rs:94:36
[INFO] [stdout]    |
[INFO] [stdout] 94 |             hasher.update(&address.0);
[INFO] [stdout]    |                                    ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `chain_core::Hash` is private
[INFO] [stdout]   --> chain-vm/src/state.rs:97:46
[INFO] [stdout]    |
[INFO] [stdout] 97 |             hasher.update(&account.code_hash.0);
[INFO] [stdout]    |                                              ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `chain_core::Hash` is private
[INFO] [stdout]   --> chain-vm/src/state.rs:98:49
[INFO] [stdout]    |
[INFO] [stdout] 98 |             hasher.update(&account.storage_root.0);
[INFO] [stdout]    |                                                 ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_any_mut` found for mutable reference `&mut dyn state::StateDB` in the current scope
[INFO] [stdout]    --> chain-vm/src/state.rs:258:43
[INFO] [stdout]     |
[INFO] [stdout] 258 |         if let Some(memory_state) = state.as_any_mut().downcast_mut::<MemoryStateDB>() {
[INFO] [stdout]     |                                           ^^^^^^^^^^ method not found in `&mut dyn state::StateDB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/state.rs:346:23
[INFO] [stdout]     |
[INFO] [stdout] 346 |         let address = Address([1u8; 20]);
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 346 -         let address = Address([1u8; 20]);
[INFO] [stdout] 346 +         let address = Address::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 346 -         let address = Address([1u8; 20]);
[INFO] [stdout] 346 +         let address = Address::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 346 -         let address = Address([1u8; 20]);
[INFO] [stdout] 346 +         let address = Address::zero();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_data` found for struct `chain_core::Hash` in the current scope
[INFO] [stdout]    --> chain-vm/src/state.rs:358:25
[INFO] [stdout]     |
[INFO] [stdout] 358 |         let key = Hash::from_data(b"test_key");
[INFO] [stdout]     |                         ^^^^^^^^^ associated function or constant not found in `chain_core::Hash`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `chain_core::Hash` consider using one of the following associated functions:
[INFO] [stdout]       chain_core::Hash::new
[INFO] [stdout]       chain_core::Hash::from_slice
[INFO] [stdout]       chain_core::Hash::from_hex
[INFO] [stdout]       chain_core::Hash::zero
[INFO] [stdout]    --> chain-core/src/types.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn new(bytes: [u8; 32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_slice(slice: &[u8]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_hex(hex: &str) -> Result<Self, hex::FromHexError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn zero() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/state.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let address = Address([1u8; 20]);
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 375 -         let address = Address([1u8; 20]);
[INFO] [stdout] 375 +         let address = Address::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 375 -         let address = Address([1u8; 20]);
[INFO] [stdout] 375 +         let address = Address::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 375 -         let address = Address([1u8; 20]);
[INFO] [stdout] 375 +         let address = Address::zero();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_data` found for struct `chain_core::Hash` in the current scope
[INFO] [stdout]    --> chain-vm/src/state.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let key = Hash::from_data(b"key");
[INFO] [stdout]     |                         ^^^^^^^^^ associated function or constant not found in `chain_core::Hash`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `chain_core::Hash` consider using one of the following associated functions:
[INFO] [stdout]       chain_core::Hash::new
[INFO] [stdout]       chain_core::Hash::from_slice
[INFO] [stdout]       chain_core::Hash::from_hex
[INFO] [stdout]       chain_core::Hash::zero
[INFO] [stdout]    --> chain-core/src/types.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout]  18 |     pub fn new(bytes: [u8; 32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_slice(slice: &[u8]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_hex(hex: &str) -> Result<Self, hex::FromHexError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn zero() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/state.rs:395:23
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let address = Address([1u8; 20]);
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 395 -         let address = Address([1u8; 20]);
[INFO] [stdout] 395 +         let address = Address::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 395 -         let address = Address([1u8; 20]);
[INFO] [stdout] 395 +         let address = Address::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 395 -         let address = Address([1u8; 20]);
[INFO] [stdout] 395 +         let address = Address::zero();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> chain-vm/src/state.rs:413:23
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let address = Address([1u8; 20]);
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: a struct named `Address` exists in another namespace
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> chain-core/src/types.rs:80:20
[INFO] [stdout]     |
[INFO] [stdout]  80 | pub struct Address([u8; 20]);
[INFO] [stdout]     |                    ^^^^^^^^ private field
[INFO] [stdout] help: you might have meant to use an associated function to build this type
[INFO] [stdout]     |
[INFO] [stdout] 413 -         let address = Address([1u8; 20]);
[INFO] [stdout] 413 +         let address = Address::new(_);
[INFO] [stdout]     |
[INFO] [stdout] 413 -         let address = Address([1u8; 20]);
[INFO] [stdout] 413 +         let address = Address::from_slice(_);
[INFO] [stdout]     |
[INFO] [stdout] 413 -         let address = Address([1u8; 20]);
[INFO] [stdout] 413 +         let address = Address::zero();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateDB`
[INFO] [stdout]  --> chain-vm/src/executor.rs:5:35
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::state::{SharedStateDB, StateDB};
[INFO] [stdout]   |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0423, E0432, E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chain-vm` (lib test) due to 52 previous errors; 4 warnings emitted
[INFO] [stderr] warning: unused dependency `chrono`
[INFO] [stderr]   --> chain-consensus/Cargo.toml:34:1
[INFO] [stderr]    |
[INFO] [stderr] 34 | chrono = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `chrono`
[INFO] [stderr] warning: `chain-consensus` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]   --> chain-core/Cargo.toml:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | anyhow = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: unused dependency `blake3`
[INFO] [stderr]   --> chain-core/Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | blake3 = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `blake3`
[INFO] [stderr] warning: unused dependency `bytes`
[INFO] [stderr]   --> chain-core/Cargo.toml:27:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | bytes = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `bytes`
[INFO] [stderr] warning: `chain-core` (manifest) generated 3 warnings
[INFO] [stderr] warning: unused dependency `tokio-util`
[INFO] [stderr]   --> chain-network/Cargo.toml:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | tokio-util = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tokio-util`
[INFO] [stderr] warning: `chain-network` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `tokio`
[INFO] [stderr]   --> chain-vm/Cargo.toml:19:1
[INFO] [stderr]    |
[INFO] [stderr] 19 | tokio = { workspace = true }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tokio`
[INFO] [stderr] warning: `chain-vm` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56", kill_on_drop: false }`
[INFO] [stdout] 105ced30923d3a6fe97312ab1b2bdfff093c9e267edf20415c4e1a1ffc924e56
