[INFO] cloning repository https://github.com/CleanPegasus/evm-from-scratch-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CleanPegasus/evm-from-scratch-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCleanPegasus%2Fevm-from-scratch-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCleanPegasus%2Fevm-from-scratch-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 32b5b9ae45d42b6bb9873a282d0e9356ebadf1cc [INFO] building CleanPegasus/evm-from-scratch-rust against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCleanPegasus%2Fevm-from-scratch-rust" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/CleanPegasus/evm-from-scratch-rust on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/CleanPegasus/evm-from-scratch-rust [INFO] finished tweaking git repo https://github.com/CleanPegasus/evm-from-scratch-rust [INFO] tweaked toml for git repo https://github.com/CleanPegasus/evm-from-scratch-rust written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/CleanPegasus/evm-from-scratch-rust 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 64d8a6ec37aa438bdc960bf81bcb57742190c6bac0fc1112d2c7133a9c53215c [INFO] running `Command { std: "docker" "start" "-a" "64d8a6ec37aa438bdc960bf81bcb57742190c6bac0fc1112d2c7133a9c53215c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "64d8a6ec37aa438bdc960bf81bcb57742190c6bac0fc1112d2c7133a9c53215c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "64d8a6ec37aa438bdc960bf81bcb57742190c6bac0fc1112d2c7133a9c53215c", kill_on_drop: false }` [INFO] [stdout] 64d8a6ec37aa438bdc960bf81bcb57742190c6bac0fc1112d2c7133a9c53215c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d25386d1a90c491d3a47cd2aec259c0d3559fd3c57f98e2226a3b1b74457dee9 [INFO] running `Command { std: "docker" "start" "-a" "d25386d1a90c491d3a47cd2aec259c0d3559fd3c57f98e2226a3b1b74457dee9", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling rustc-hex v2.1.0 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling uint v0.9.5 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling fixed-hash v0.8.0 [INFO] [stderr] Compiling primitive-types v0.12.2 [INFO] [stderr] Compiling evm-from-scratch-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/storage.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let mut storage = HashMap::new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/storage.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut cache = Vec::new(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut pc = 0; [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut stop_flag = false; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | let mut revert_flag = false; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | let mut return_data = Vec::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let mut logs = Vec::new(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/state.rs:13:3 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct EvmState { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | memory: Memory, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | storage: Storage, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | sender: EthereumAddress, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | value: U256, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | calldata: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | return_data: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 23 | logs: Vec [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/opcodes.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum OPCODE { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | DIV = 0x4, [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | SDIV = 0x5, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | MOD = 0x6, [INFO] [stdout] | ^^^ [INFO] [stdout] 13 | SMOD = 0x7, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | ADDMOD = 0x8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | MULMOD = 0x9, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | EXP = 0xA, [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | SIGNEXTEND = 0xB, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | // comparisons [INFO] [stdout] 19 | LT = 0x10, [INFO] [stdout] | ^^ [INFO] [stdout] 20 | GT = 0x11, [INFO] [stdout] | ^^ [INFO] [stdout] 21 | SLT = 0x12, [INFO] [stdout] | ^^^ [INFO] [stdout] 22 | SGT = 0x13, [INFO] [stdout] | ^^^ [INFO] [stdout] 23 | EQ = 0x14, [INFO] [stdout] | ^^ [INFO] [stdout] 24 | ISZERO = 0x15, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | // logic [INFO] [stdout] 26 | AND = 0x16, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | OR = 0x17, [INFO] [stdout] | ^^ [INFO] [stdout] 28 | XOR = 0x18, [INFO] [stdout] | ^^^ [INFO] [stdout] 29 | NOT = 0x19, [INFO] [stdout] | ^^^ [INFO] [stdout] 30 | // Bitops [INFO] [stdout] 31 | BYTE = 0x1A, [INFO] [stdout] | ^^^^ [INFO] [stdout] 32 | SHL = 0x1B, [INFO] [stdout] | ^^^ [INFO] [stdout] 33 | SHR = 0x1C, [INFO] [stdout] | ^^^ [INFO] [stdout] 34 | SAR = 0x1D, [INFO] [stdout] | ^^^ [INFO] [stdout] 35 | // hash [INFO] [stdout] 36 | SHA3 = 0x20, [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | // ethereum state [INFO] [stdout] 38 | ADDRESS = 0x30, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | BALANCE = 0x31, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 40 | ORIGIN = 0x32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 41 | CALLER = 0x33, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 42 | CALLVALUE = 0x34, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 43 | CALLDATALOAD = 0x35, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 44 | CALLDATASIZE = 0x36, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 45 | CALLDATACOPY = 0x37, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 46 | CODESIZE = 0x38, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 47 | CODECOPY = 0x39, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | GASPRICE = 0x3A, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 49 | EXTCODESIZE = 0x3B, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 50 | EXTCODECOPY = 0x3C, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | RETURNDATASIZE = 0x3D, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 52 | RETURNDATACOPY = 0x3E, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 53 | EXTCODEHASH = 0x3F, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 54 | BLOCKHASH = 0x40, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 55 | COINBASE = 0x41, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 56 | TIMESTAMP = 0x42, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 57 | NUMBER = 0x43, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 58 | DIFFICULTY = 0x44, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 59 | GASLIMIT = 0x45, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 60 | CHAINID = 0x46, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 61 | SELFBALANCE = 0x47, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 62 | BASEFEE = 0x48, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 63 | // pop [INFO] [stdout] 64 | POP = 0x50, [INFO] [stdout] | ^^^ [INFO] [stdout] 65 | // memory [INFO] [stdout] 66 | MLOAD = 0x51, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 67 | MSTORE = 0x52, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 68 | MSTORE8 = 0x53, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 69 | // storage [INFO] [stdout] 70 | SLOAD = 0x54, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 71 | SSTORE = 0x55, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 72 | // jump [INFO] [stdout] 73 | JUMP = 0x56, [INFO] [stdout] | ^^^^ [INFO] [stdout] 74 | JUMPI = 0x57, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 75 | PC = 0x58, [INFO] [stdout] | ^^ [INFO] [stdout] 76 | JUMPDEST = 0x5B, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 77 | // transient storage [INFO] [stdout] 78 | TLOAD = 0x5c, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 79 | TSTORE = 0x5d, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | PUSH2 = 0x61, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 83 | PUSH3 = 0x62, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 84 | PUSH4 = 0x63, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | PUSH5 = 0x64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | PUSH6 = 0x65, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 87 | PUSH7 = 0x66, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | PUSH8 = 0x67, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 89 | PUSH9 = 0x68, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 90 | PUSH10 = 0x69, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 91 | PUSH11 = 0x6A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 92 | PUSH12 = 0x6B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 93 | PUSH13 = 0x6C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 94 | PUSH14 = 0x6D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 95 | PUSH15 = 0x6E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 96 | PUSH16 = 0x6F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 97 | PUSH17 = 0x70, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 98 | PUSH18 = 0x71, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 99 | PUSH19 = 0x72, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 100 | PUSH20 = 0x73, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 101 | PUSH21 = 0x74, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 102 | PUSH22 = 0x75, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 103 | PUSH23 = 0x76, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 104 | PUSH24 = 0x77, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 105 | PUSH25 = 0x78, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 106 | PUSH26 = 0x79, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 107 | PUSH27 = 0x7A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 108 | PUSH28 = 0x7B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 109 | PUSH29 = 0x7C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 110 | PUSH30 = 0x7D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 111 | PUSH31 = 0x7E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 112 | PUSH32 = 0x7F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 113 | // dup [INFO] [stdout] 114 | DUP1 = 0x80, [INFO] [stdout] | ^^^^ [INFO] [stdout] 115 | DUP2 = 0x81, [INFO] [stdout] | ^^^^ [INFO] [stdout] 116 | DUP3 = 0x82, [INFO] [stdout] | ^^^^ [INFO] [stdout] 117 | DUP4 = 0x83, [INFO] [stdout] | ^^^^ [INFO] [stdout] 118 | DUP5 = 0x84, [INFO] [stdout] | ^^^^ [INFO] [stdout] 119 | DUP6 = 0x85, [INFO] [stdout] | ^^^^ [INFO] [stdout] 120 | DUP7 = 0x86, [INFO] [stdout] | ^^^^ [INFO] [stdout] 121 | DUP8 = 0x87, [INFO] [stdout] | ^^^^ [INFO] [stdout] 122 | DUP9 = 0x88, [INFO] [stdout] | ^^^^ [INFO] [stdout] 123 | DUP10 = 0x89, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 124 | DUP11 = 0x8A, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 125 | DUP12 = 0x8B, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 126 | DUP13 = 0x8C, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 127 | DUP14 = 0x8D, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 128 | DUP15 = 0x8E, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 129 | DUP16 = 0x8F, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 130 | // swap [INFO] [stdout] 131 | SWAP1 = 0x90, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 132 | SWAP2 = 0x91, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 133 | SWAP3 = 0x92, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 134 | SWAP4 = 0x93, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 135 | SWAP5 = 0x94, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 136 | SWAP6 = 0x95, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | SWAP7 = 0x96, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 138 | SWAP8 = 0x97, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 139 | SWAP9 = 0x98, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 140 | SWAP10 = 0x99, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 141 | SWAP11 = 0x9A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 142 | SWAP12 = 0x9B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 143 | SWAP13 = 0x9C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 144 | SWAP14 = 0x9D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 145 | SWAP15 = 0x9E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 146 | SWAP16 = 0x9F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 147 | // log [INFO] [stdout] 148 | LOG0 = 0xA0, [INFO] [stdout] | ^^^^ [INFO] [stdout] 149 | LOG1 = 0xA1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 150 | LOG2 = 0xA2, [INFO] [stdout] | ^^^^ [INFO] [stdout] 151 | LOG3 = 0xA3, [INFO] [stdout] | ^^^^ [INFO] [stdout] 152 | LOG4 = 0xA4, [INFO] [stdout] | ^^^^ [INFO] [stdout] 153 | // contract [INFO] [stdout] 154 | CREATE = 0xF0, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 155 | CALL = 0xF1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 156 | RETURN = 0xF3, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 157 | DELEGATECALL = 0xF4, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 158 | CREATE2 = 0xF5, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 159 | STATICCALL = 0xFA, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 160 | REVERT = 0xFD, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 161 | INVALID = 0xFE, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 162 | SELFDESTRUCT = 0xFF, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OPCODE` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.07s [INFO] running `Command { std: "docker" "inspect" "d25386d1a90c491d3a47cd2aec259c0d3559fd3c57f98e2226a3b1b74457dee9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d25386d1a90c491d3a47cd2aec259c0d3559fd3c57f98e2226a3b1b74457dee9", kill_on_drop: false }` [INFO] [stdout] d25386d1a90c491d3a47cd2aec259c0d3559fd3c57f98e2226a3b1b74457dee9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e8898f6e6783af1a01e9e8fb84ef3c3f386a6a12fd9e42a45bdeccfc13b9a2a1 [INFO] running `Command { std: "docker" "start" "-a" "e8898f6e6783af1a01e9e8fb84ef3c3f386a6a12fd9e42a45bdeccfc13b9a2a1", kill_on_drop: false }` [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/storage.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let mut storage = HashMap::new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/storage.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut cache = Vec::new(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut pc = 0; [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut stop_flag = false; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | let mut revert_flag = false; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | let mut return_data = Vec::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let mut logs = Vec::new(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/state.rs:13:3 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct EvmState { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | memory: Memory, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | storage: Storage, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | sender: EthereumAddress, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | value: U256, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | calldata: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | return_data: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 23 | logs: Vec [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling evm-from-scratch-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/opcodes.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum OPCODE { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | DIV = 0x4, [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | SDIV = 0x5, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | MOD = 0x6, [INFO] [stdout] | ^^^ [INFO] [stdout] 13 | SMOD = 0x7, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | ADDMOD = 0x8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | MULMOD = 0x9, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | EXP = 0xA, [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | SIGNEXTEND = 0xB, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | // comparisons [INFO] [stdout] 19 | LT = 0x10, [INFO] [stdout] | ^^ [INFO] [stdout] 20 | GT = 0x11, [INFO] [stdout] | ^^ [INFO] [stdout] 21 | SLT = 0x12, [INFO] [stdout] | ^^^ [INFO] [stdout] 22 | SGT = 0x13, [INFO] [stdout] | ^^^ [INFO] [stdout] 23 | EQ = 0x14, [INFO] [stdout] | ^^ [INFO] [stdout] 24 | ISZERO = 0x15, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | // logic [INFO] [stdout] 26 | AND = 0x16, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | OR = 0x17, [INFO] [stdout] | ^^ [INFO] [stdout] 28 | XOR = 0x18, [INFO] [stdout] | ^^^ [INFO] [stdout] 29 | NOT = 0x19, [INFO] [stdout] | ^^^ [INFO] [stdout] 30 | // Bitops [INFO] [stdout] 31 | BYTE = 0x1A, [INFO] [stdout] | ^^^^ [INFO] [stdout] 32 | SHL = 0x1B, [INFO] [stdout] | ^^^ [INFO] [stdout] 33 | SHR = 0x1C, [INFO] [stdout] | ^^^ [INFO] [stdout] 34 | SAR = 0x1D, [INFO] [stdout] | ^^^ [INFO] [stdout] 35 | // hash [INFO] [stdout] 36 | SHA3 = 0x20, [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | // ethereum state [INFO] [stdout] 38 | ADDRESS = 0x30, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | BALANCE = 0x31, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 40 | ORIGIN = 0x32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 41 | CALLER = 0x33, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 42 | CALLVALUE = 0x34, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 43 | CALLDATALOAD = 0x35, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 44 | CALLDATASIZE = 0x36, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 45 | CALLDATACOPY = 0x37, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 46 | CODESIZE = 0x38, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 47 | CODECOPY = 0x39, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | GASPRICE = 0x3A, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 49 | EXTCODESIZE = 0x3B, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 50 | EXTCODECOPY = 0x3C, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | RETURNDATASIZE = 0x3D, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 52 | RETURNDATACOPY = 0x3E, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 53 | EXTCODEHASH = 0x3F, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 54 | BLOCKHASH = 0x40, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 55 | COINBASE = 0x41, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 56 | TIMESTAMP = 0x42, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 57 | NUMBER = 0x43, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 58 | DIFFICULTY = 0x44, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 59 | GASLIMIT = 0x45, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 60 | CHAINID = 0x46, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 61 | SELFBALANCE = 0x47, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 62 | BASEFEE = 0x48, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 63 | // pop [INFO] [stdout] 64 | POP = 0x50, [INFO] [stdout] | ^^^ [INFO] [stdout] 65 | // memory [INFO] [stdout] 66 | MLOAD = 0x51, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 67 | MSTORE = 0x52, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 68 | MSTORE8 = 0x53, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 69 | // storage [INFO] [stdout] 70 | SLOAD = 0x54, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 71 | SSTORE = 0x55, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 72 | // jump [INFO] [stdout] 73 | JUMP = 0x56, [INFO] [stdout] | ^^^^ [INFO] [stdout] 74 | JUMPI = 0x57, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 75 | PC = 0x58, [INFO] [stdout] | ^^ [INFO] [stdout] 76 | JUMPDEST = 0x5B, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 77 | // transient storage [INFO] [stdout] 78 | TLOAD = 0x5c, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 79 | TSTORE = 0x5d, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | PUSH2 = 0x61, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 83 | PUSH3 = 0x62, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 84 | PUSH4 = 0x63, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | PUSH5 = 0x64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | PUSH6 = 0x65, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 87 | PUSH7 = 0x66, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | PUSH8 = 0x67, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 89 | PUSH9 = 0x68, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 90 | PUSH10 = 0x69, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 91 | PUSH11 = 0x6A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 92 | PUSH12 = 0x6B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 93 | PUSH13 = 0x6C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 94 | PUSH14 = 0x6D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 95 | PUSH15 = 0x6E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 96 | PUSH16 = 0x6F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 97 | PUSH17 = 0x70, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 98 | PUSH18 = 0x71, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 99 | PUSH19 = 0x72, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 100 | PUSH20 = 0x73, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 101 | PUSH21 = 0x74, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 102 | PUSH22 = 0x75, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 103 | PUSH23 = 0x76, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 104 | PUSH24 = 0x77, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 105 | PUSH25 = 0x78, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 106 | PUSH26 = 0x79, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 107 | PUSH27 = 0x7A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 108 | PUSH28 = 0x7B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 109 | PUSH29 = 0x7C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 110 | PUSH30 = 0x7D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 111 | PUSH31 = 0x7E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 112 | PUSH32 = 0x7F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 113 | // dup [INFO] [stdout] 114 | DUP1 = 0x80, [INFO] [stdout] | ^^^^ [INFO] [stdout] 115 | DUP2 = 0x81, [INFO] [stdout] | ^^^^ [INFO] [stdout] 116 | DUP3 = 0x82, [INFO] [stdout] | ^^^^ [INFO] [stdout] 117 | DUP4 = 0x83, [INFO] [stdout] | ^^^^ [INFO] [stdout] 118 | DUP5 = 0x84, [INFO] [stdout] | ^^^^ [INFO] [stdout] 119 | DUP6 = 0x85, [INFO] [stdout] | ^^^^ [INFO] [stdout] 120 | DUP7 = 0x86, [INFO] [stdout] | ^^^^ [INFO] [stdout] 121 | DUP8 = 0x87, [INFO] [stdout] | ^^^^ [INFO] [stdout] 122 | DUP9 = 0x88, [INFO] [stdout] | ^^^^ [INFO] [stdout] 123 | DUP10 = 0x89, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 124 | DUP11 = 0x8A, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 125 | DUP12 = 0x8B, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 126 | DUP13 = 0x8C, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 127 | DUP14 = 0x8D, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 128 | DUP15 = 0x8E, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 129 | DUP16 = 0x8F, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 130 | // swap [INFO] [stdout] 131 | SWAP1 = 0x90, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 132 | SWAP2 = 0x91, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 133 | SWAP3 = 0x92, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 134 | SWAP4 = 0x93, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 135 | SWAP5 = 0x94, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 136 | SWAP6 = 0x95, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | SWAP7 = 0x96, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 138 | SWAP8 = 0x97, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 139 | SWAP9 = 0x98, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 140 | SWAP10 = 0x99, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 141 | SWAP11 = 0x9A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 142 | SWAP12 = 0x9B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 143 | SWAP13 = 0x9C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 144 | SWAP14 = 0x9D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 145 | SWAP15 = 0x9E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 146 | SWAP16 = 0x9F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 147 | // log [INFO] [stdout] 148 | LOG0 = 0xA0, [INFO] [stdout] | ^^^^ [INFO] [stdout] 149 | LOG1 = 0xA1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 150 | LOG2 = 0xA2, [INFO] [stdout] | ^^^^ [INFO] [stdout] 151 | LOG3 = 0xA3, [INFO] [stdout] | ^^^^ [INFO] [stdout] 152 | LOG4 = 0xA4, [INFO] [stdout] | ^^^^ [INFO] [stdout] 153 | // contract [INFO] [stdout] 154 | CREATE = 0xF0, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 155 | CALL = 0xF1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 156 | RETURN = 0xF3, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 157 | DELEGATECALL = 0xF4, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 158 | CREATE2 = 0xF5, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 159 | STATICCALL = 0xFA, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 160 | REVERT = 0xFD, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 161 | INVALID = 0xFE, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 162 | SELFDESTRUCT = 0xFF, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OPCODE` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `evm_from_scratch_rust` [INFO] [stdout] --> tests/evm_state_test.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use evm_from_scratch_rust; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Memory`, `Stack`, and `Storage` [INFO] [stdout] --> tests/evm_state_test.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use evm_from_scratch_rust::{Stack, Memory, Storage, EvmState}; [INFO] [stdout] | ^^^^^ ^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/storage.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let mut storage = HashMap::new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/storage.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut cache = Vec::new(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut pc = 0; [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut stop_flag = false; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | let mut revert_flag = false; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | let mut return_data = Vec::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let mut logs = Vec::new(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/state.rs:13:3 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct EvmState { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | memory: Memory, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | storage: Storage, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | sender: EthereumAddress, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | value: U256, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | calldata: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | return_data: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 23 | logs: Vec [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/opcodes.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum OPCODE { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | DIV = 0x4, [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | SDIV = 0x5, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | MOD = 0x6, [INFO] [stdout] | ^^^ [INFO] [stdout] 13 | SMOD = 0x7, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | ADDMOD = 0x8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | MULMOD = 0x9, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | EXP = 0xA, [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | SIGNEXTEND = 0xB, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | // comparisons [INFO] [stdout] 19 | LT = 0x10, [INFO] [stdout] | ^^ [INFO] [stdout] 20 | GT = 0x11, [INFO] [stdout] | ^^ [INFO] [stdout] 21 | SLT = 0x12, [INFO] [stdout] | ^^^ [INFO] [stdout] 22 | SGT = 0x13, [INFO] [stdout] | ^^^ [INFO] [stdout] 23 | EQ = 0x14, [INFO] [stdout] | ^^ [INFO] [stdout] 24 | ISZERO = 0x15, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | // logic [INFO] [stdout] 26 | AND = 0x16, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | OR = 0x17, [INFO] [stdout] | ^^ [INFO] [stdout] 28 | XOR = 0x18, [INFO] [stdout] | ^^^ [INFO] [stdout] 29 | NOT = 0x19, [INFO] [stdout] | ^^^ [INFO] [stdout] 30 | // Bitops [INFO] [stdout] 31 | BYTE = 0x1A, [INFO] [stdout] | ^^^^ [INFO] [stdout] 32 | SHL = 0x1B, [INFO] [stdout] | ^^^ [INFO] [stdout] 33 | SHR = 0x1C, [INFO] [stdout] | ^^^ [INFO] [stdout] 34 | SAR = 0x1D, [INFO] [stdout] | ^^^ [INFO] [stdout] 35 | // hash [INFO] [stdout] 36 | SHA3 = 0x20, [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | // ethereum state [INFO] [stdout] 38 | ADDRESS = 0x30, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | BALANCE = 0x31, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 40 | ORIGIN = 0x32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 41 | CALLER = 0x33, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 42 | CALLVALUE = 0x34, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 43 | CALLDATALOAD = 0x35, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 44 | CALLDATASIZE = 0x36, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 45 | CALLDATACOPY = 0x37, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 46 | CODESIZE = 0x38, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 47 | CODECOPY = 0x39, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | GASPRICE = 0x3A, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 49 | EXTCODESIZE = 0x3B, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 50 | EXTCODECOPY = 0x3C, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | RETURNDATASIZE = 0x3D, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 52 | RETURNDATACOPY = 0x3E, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 53 | EXTCODEHASH = 0x3F, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 54 | BLOCKHASH = 0x40, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 55 | COINBASE = 0x41, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 56 | TIMESTAMP = 0x42, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 57 | NUMBER = 0x43, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 58 | DIFFICULTY = 0x44, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 59 | GASLIMIT = 0x45, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 60 | CHAINID = 0x46, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 61 | SELFBALANCE = 0x47, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 62 | BASEFEE = 0x48, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 63 | // pop [INFO] [stdout] 64 | POP = 0x50, [INFO] [stdout] | ^^^ [INFO] [stdout] 65 | // memory [INFO] [stdout] 66 | MLOAD = 0x51, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 67 | MSTORE = 0x52, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 68 | MSTORE8 = 0x53, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 69 | // storage [INFO] [stdout] 70 | SLOAD = 0x54, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 71 | SSTORE = 0x55, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 72 | // jump [INFO] [stdout] 73 | JUMP = 0x56, [INFO] [stdout] | ^^^^ [INFO] [stdout] 74 | JUMPI = 0x57, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 75 | PC = 0x58, [INFO] [stdout] | ^^ [INFO] [stdout] 76 | JUMPDEST = 0x5B, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 77 | // transient storage [INFO] [stdout] 78 | TLOAD = 0x5c, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 79 | TSTORE = 0x5d, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | PUSH2 = 0x61, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 83 | PUSH3 = 0x62, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 84 | PUSH4 = 0x63, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | PUSH5 = 0x64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | PUSH6 = 0x65, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 87 | PUSH7 = 0x66, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | PUSH8 = 0x67, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 89 | PUSH9 = 0x68, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 90 | PUSH10 = 0x69, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 91 | PUSH11 = 0x6A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 92 | PUSH12 = 0x6B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 93 | PUSH13 = 0x6C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 94 | PUSH14 = 0x6D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 95 | PUSH15 = 0x6E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 96 | PUSH16 = 0x6F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 97 | PUSH17 = 0x70, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 98 | PUSH18 = 0x71, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 99 | PUSH19 = 0x72, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 100 | PUSH20 = 0x73, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 101 | PUSH21 = 0x74, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 102 | PUSH22 = 0x75, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 103 | PUSH23 = 0x76, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 104 | PUSH24 = 0x77, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 105 | PUSH25 = 0x78, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 106 | PUSH26 = 0x79, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 107 | PUSH27 = 0x7A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 108 | PUSH28 = 0x7B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 109 | PUSH29 = 0x7C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 110 | PUSH30 = 0x7D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 111 | PUSH31 = 0x7E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 112 | PUSH32 = 0x7F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 113 | // dup [INFO] [stdout] 114 | DUP1 = 0x80, [INFO] [stdout] | ^^^^ [INFO] [stdout] 115 | DUP2 = 0x81, [INFO] [stdout] | ^^^^ [INFO] [stdout] 116 | DUP3 = 0x82, [INFO] [stdout] | ^^^^ [INFO] [stdout] 117 | DUP4 = 0x83, [INFO] [stdout] | ^^^^ [INFO] [stdout] 118 | DUP5 = 0x84, [INFO] [stdout] | ^^^^ [INFO] [stdout] 119 | DUP6 = 0x85, [INFO] [stdout] | ^^^^ [INFO] [stdout] 120 | DUP7 = 0x86, [INFO] [stdout] | ^^^^ [INFO] [stdout] 121 | DUP8 = 0x87, [INFO] [stdout] | ^^^^ [INFO] [stdout] 122 | DUP9 = 0x88, [INFO] [stdout] | ^^^^ [INFO] [stdout] 123 | DUP10 = 0x89, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 124 | DUP11 = 0x8A, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 125 | DUP12 = 0x8B, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 126 | DUP13 = 0x8C, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 127 | DUP14 = 0x8D, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 128 | DUP15 = 0x8E, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 129 | DUP16 = 0x8F, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 130 | // swap [INFO] [stdout] 131 | SWAP1 = 0x90, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 132 | SWAP2 = 0x91, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 133 | SWAP3 = 0x92, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 134 | SWAP4 = 0x93, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 135 | SWAP5 = 0x94, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 136 | SWAP6 = 0x95, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | SWAP7 = 0x96, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 138 | SWAP8 = 0x97, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 139 | SWAP9 = 0x98, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 140 | SWAP10 = 0x99, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 141 | SWAP11 = 0x9A, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 142 | SWAP12 = 0x9B, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 143 | SWAP13 = 0x9C, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 144 | SWAP14 = 0x9D, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 145 | SWAP15 = 0x9E, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 146 | SWAP16 = 0x9F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 147 | // log [INFO] [stdout] 148 | LOG0 = 0xA0, [INFO] [stdout] | ^^^^ [INFO] [stdout] 149 | LOG1 = 0xA1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 150 | LOG2 = 0xA2, [INFO] [stdout] | ^^^^ [INFO] [stdout] 151 | LOG3 = 0xA3, [INFO] [stdout] | ^^^^ [INFO] [stdout] 152 | LOG4 = 0xA4, [INFO] [stdout] | ^^^^ [INFO] [stdout] 153 | // contract [INFO] [stdout] 154 | CREATE = 0xF0, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 155 | CALL = 0xF1, [INFO] [stdout] | ^^^^ [INFO] [stdout] 156 | RETURN = 0xF3, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 157 | DELEGATECALL = 0xF4, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 158 | CREATE2 = 0xF5, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 159 | STATICCALL = 0xFA, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 160 | REVERT = 0xFD, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 161 | INVALID = 0xFE, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 162 | SELFDESTRUCT = 0xFF, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OPCODE` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s [INFO] running `Command { std: "docker" "inspect" "e8898f6e6783af1a01e9e8fb84ef3c3f386a6a12fd9e42a45bdeccfc13b9a2a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e8898f6e6783af1a01e9e8fb84ef3c3f386a6a12fd9e42a45bdeccfc13b9a2a1", kill_on_drop: false }` [INFO] [stdout] e8898f6e6783af1a01e9e8fb84ef3c3f386a6a12fd9e42a45bdeccfc13b9a2a1