Skip to content

chore(deps): weekly cargo update - #700

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
cargo-update
Open

chore(deps): weekly cargo update#700
github-actions[bot] wants to merge 1 commit into
mainfrom
cargo-update

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Automation to keep dependencies in Cargo.lock current.

cargo update log

info: syncing channel updates for 1.91.0-x86_64-unknown-linux-gnu
info: latest update on 2025-10-30 for version 1.91.0 (f8297e351 2025-10-28)
info: downloading 5 components
     Locking 144 packages to latest compatible versions
    Updating alloy-chains v0.2.34 -> v0.2.36
    Updating alloy-core v1.6.0 -> v1.6.1
    Updating alloy-dyn-abi v1.6.0 -> v1.6.1
    Updating alloy-json-abi v1.6.0 -> v1.6.1
    Updating alloy-primitives v1.6.0 -> v1.6.1
    Updating alloy-rlp v0.3.15 -> v0.3.16
    Updating alloy-rlp-derive v0.3.15 -> v0.3.16
    Updating alloy-sol-macro v1.6.0 -> v1.6.1
    Updating alloy-sol-macro-expander v1.6.0 -> v1.6.1
    Updating alloy-sol-macro-input v1.6.0 -> v1.6.1
    Updating alloy-sol-type-parser v1.6.0 -> v1.6.1
    Updating alloy-sol-types v1.6.0 -> v1.6.1
    Removing anyhow v1.0.102
      Adding ark-ff v0.6.0
      Adding ark-ff-asm v0.6.0
      Adding ark-ff-macros v0.6.0
      Adding ark-serialize v0.6.0
      Adding ark-serialize-derive v0.6.0
      Adding ark-std v0.6.0
    Updating arrayvec v0.7.6 -> v0.7.8
    Updating async-trait v0.1.89 -> v0.1.91
    Updating aws-lc-rs v1.17.0 -> v1.17.3
    Updating aws-lc-sys v0.41.0 -> v0.43.0
    Removing bit-set v0.8.0
    Removing bit-vec v0.8.0
      Adding bitcoin-consensus-encoding v1.1.0
      Adding bitcoin-internals v0.6.0
    Updating bitcoin-io v0.1.100 -> v0.1.101
    Updating bitcoin_hashes v0.14.100 -> v0.14.101
    Updating bitflags v2.13.0 -> v2.13.1
    Updating bitvec v1.0.1 -> v1.1.1
    Updating block-buffer v0.12.0 -> v0.12.1
    Updating blst v0.3.16 -> v0.3.17
    Updating borsh v1.6.1 -> v1.8.0
    Updating borsh-derive v1.6.1 -> v1.8.0
    Updating bytes v1.11.1 -> v1.12.1
    Updating c-kzg v2.1.7 -> v2.1.8
    Updating cc v1.2.63 -> v1.4.0
    Updating cfg_aliases v0.2.1 -> v0.2.2
    Updating chacha20 v0.10.0 -> v0.10.1
    Updating clap v4.6.1 -> v4.6.4
    Updating clap_builder v4.6.0 -> v4.6.2
    Updating clap_derive v4.6.1 -> v4.6.4
    Updating crossbeam-channel v0.5.15 -> v0.5.16
    Updating crossbeam-deque v0.8.6 -> v0.8.7
    Updating crossbeam-epoch v0.9.18 -> v0.9.20
    Updating crossbeam-utils v0.8.21 -> v0.8.22
    Updating either v1.16.0 -> v1.17.0
    Updating enum-ordinalize v4.3.2 -> v4.4.1
    Updating enum-ordinalize-derive v4.3.2 -> v4.4.1
    Updating fastrand v2.4.1 -> v2.5.0
      Adding fixed-cache v0.1.10
    Removing foldhash v0.1.5
    Updating futures v0.3.32 -> v0.3.33
    Updating futures-channel v0.3.32 -> v0.3.33
    Updating futures-core v0.3.32 -> v0.3.33
    Updating futures-executor v0.3.32 -> v0.3.33
    Updating futures-io v0.3.32 -> v0.3.33
    Updating futures-macro v0.3.32 -> v0.3.33
    Updating futures-sink v0.3.32 -> v0.3.33
    Updating futures-task v0.3.32 -> v0.3.33
    Updating futures-util v0.3.32 -> v0.3.33
    Updating getrandom v0.4.2 -> v0.4.3
    Updating glob v0.3.3 -> v0.3.4
    Updating h2 v0.4.14 -> v0.4.15
    Removing hashbrown v0.15.5
      Adding hex-conservative v1.2.0
    Updating http v1.4.1 -> v1.4.2
    Updating http-body v1.0.1 -> v1.1.0
    Updating http-body-util v0.1.3 -> v0.1.4
    Updating hybrid-array v0.4.12 -> v0.4.13
    Updating hyper v1.10.1 -> v1.11.0
    Removing id-arena v2.3.0
    Updating jobserver v0.1.34 -> v0.1.35
    Updating js-sys v0.3.99 -> v0.3.103
    Updating keccak-asm v0.1.7 -> v0.1.8
    Removing leb128fmt v0.1.0
    Updating libc v0.2.186 -> v0.2.189
    Updating log v0.4.32 -> v0.4.33
    Updating memchr v2.8.1 -> v2.8.3
    Updating mio v1.2.1 -> v1.2.2
    Updating num-bigint v0.4.6 -> v0.4.8
    Updating openssl v0.10.80 -> v0.10.81
    Updating openssl-sys v0.9.116 -> v0.9.117
    Updating pest v2.8.6 -> v2.8.8
      Adding phf v0.14.0
      Adding phf_shared v0.14.0
    Updating portable-atomic v1.13.1 -> v1.14.0
    Removing prettyplease v0.2.37
    Removing proc-macro-error-attr2 v2.0.0
      Adding proc-macro-error-attr3 v3.0.1 (available: v3.0.3)
    Removing proc-macro-error2 v2.0.1
      Adding proc-macro-error3 v3.0.1 (available: v3.0.3)
    Updating proc-macro2 v1.0.106 -> v1.0.107
    Removing quick-error v1.2.3
    Updating quinn v0.11.9 -> v0.11.11
    Updating quinn-proto v0.11.14 -> v0.11.16
    Updating quinn-udp v0.5.14 -> v0.5.15
    Updating quote v1.0.45 -> v1.0.47
    Removing rand v0.8.6
    Removing rand v0.9.4
    Removing rand v0.10.1
      Adding rand v0.8.7 (available: v0.10.2)
      Adding rand v0.9.5
      Adding rand v0.10.2
      Adding rand_pcg v0.10.2
    Updating rapidhash v4.4.1 -> v4.5.1
    Updating ref-cast v1.0.25 -> v1.0.26
    Updating ref-cast-impl v1.0.25 -> v1.0.26
    Updating regex v1.12.3 -> v1.13.1
    Updating regex-automata v0.4.14 -> v0.4.16
    Updating regex-syntax v0.8.10 -> v0.8.11
    Updating ruint v1.18.0 -> v1.19.0
    Updating rustc-hash v2.1.2 -> v2.1.3
    Updating rustls v0.23.40 -> v0.23.42
    Updating rustls-pki-types v1.14.1 -> v1.15.1
    Updating rustversion v1.0.22 -> v1.0.23
    Removing rusty-fork v0.3.1
    Updating serde v1.0.228 -> v1.0.229
    Updating serde_core v1.0.228 -> v1.0.229
    Updating serde_derive v1.0.228 -> v1.0.229
    Updating serde_json v1.0.150 -> v1.0.151
    Updating sha1 v0.10.6 -> v0.10.7
    Updating sha3-asm v0.1.7 -> v0.1.8
    Updating simd_cesu8 v1.1.1 -> v1.2.0
      Adding siphasher v1.0.3
    Updating smallvec v1.15.1 -> v1.15.2
    Updating socket2 v0.6.4 -> v0.6.5
    Removing syn v2.0.117
      Adding syn v2.0.119
      Adding syn v3.0.3
    Updating syn-solidity v1.6.0 -> v1.6.1
    Updating thiserror v2.0.18 -> v2.0.19
    Updating thiserror-impl v2.0.18 -> v2.0.19
    Updating thread_local v1.1.9 -> v1.1.10
    Updating time v0.3.47 -> v0.3.54
    Updating time-core v0.1.8 -> v0.1.9
    Updating time-macros v0.2.27 -> v0.2.32
    Updating tinyvec v1.11.0 -> v1.12.0
    Updating tokio v1.52.3 -> v1.53.1
    Updating tokio-macros v2.7.0 -> v2.7.1
    Updating tokio-retry v0.3.1 -> v0.3.2
    Updating tokio-stream v0.1.18 -> v0.1.19
    Updating tokio-util v0.7.18 -> v0.7.19
    Updating toml_edit v0.25.12+spec-1.1.0 -> v0.25.13+spec-1.1.0
    Removing wait-timeout v0.2.1
    Updating wasip2 v1.0.3+wasi-0.2.9 -> v1.0.4+wasi-0.2.12
    Removing wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06
    Updating wasm-bindgen v0.2.122 -> v0.2.126
    Updating wasm-bindgen-futures v0.4.72 -> v0.4.76
    Updating wasm-bindgen-macro v0.2.122 -> v0.2.126
    Updating wasm-bindgen-macro-support v0.2.122 -> v0.2.126
    Updating wasm-bindgen-shared v0.2.122 -> v0.2.126
    Removing wasm-encoder v0.244.0
    Removing wasm-metadata v0.244.0
    Removing wasmparser v0.244.0
    Updating web-sys v0.3.99 -> v0.3.103
    Updating webpki-root-certs v1.0.7 -> v1.0.9
    Updating webpki-roots v1.0.7 -> v1.0.9
    Removing windows-sys v0.60.2
    Removing windows-targets v0.53.5
    Removing windows_aarch64_gnullvm v0.53.1
    Removing windows_aarch64_msvc v0.53.1
    Removing windows_i686_gnu v0.53.1
    Removing windows_i686_gnullvm v0.53.1
    Removing windows_i686_msvc v0.53.1
    Removing windows_x86_64_gnu v0.53.1
    Removing windows_x86_64_gnullvm v0.53.1
    Removing windows_x86_64_msvc v0.53.1
    Updating winnow v1.0.3 -> v1.0.4
    Removing wit-bindgen v0.51.0
    Removing wit-bindgen-core v0.51.0
    Removing wit-bindgen-rust v0.51.0
    Removing wit-bindgen-rust-macro v0.51.0
    Removing wit-component v0.244.0
    Removing wit-parser v0.244.0
    Updating zerocopy v0.8.50 -> v0.8.55
    Updating zerocopy-derive v0.8.50 -> v0.8.55
    Updating zeroize v1.8.2 -> v1.9.0
    Updating zeroize_derive v1.4.3 -> v1.5.0
    Updating zmij v1.0.21 -> v1.0.23
note: pass `--verbose` to see 17 unchanged dependencies behind latest

@github-actions

github-actions Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Coverage Report for 6bd9ca5

Metric Value
Base branch 66.26%
PR branch 66.13%
Diff -0.14%

@github-actions
github-actions Bot force-pushed the cargo-update branch 2 times, most recently from 5f074b8 to cbb1b81 Compare July 5, 2026 00:33
@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

❌ Eval Report for 6bd9ca5

Test Case CFG Decompilation
Mapping 100 100
NestedMapping 100 10
NestedMappings 100 42
TransientStorage 100 18
SimpleStorage 100 90
SimpleLoop 92 15
WhileLoop 65 10
WETH9 100 68
NestedLoop 45 10
Events 100 62
Average 90 42
⚠️ 8 eval(s) scoring <70%

NestedMapping (CFG: 100, Decompilation: 10)

Decompilation

{
  "score": 10,
  "summary": "The decompilation fails to capture the core behavior of the contract. Every original function writes to or reads from nested mappings, but all decompiled functions are rendered as 'public pure' no-ops containing only trivial tautological requires (e.g. require(arg0 == arg0)). No storage writes, no storage reads, no return values, and no nested mapping slot computations are preserved.",
  "differences": [
    "All storage write operations are missing: setAllowance, setGrid, and setDeepNested store nothing in the decompiled output (functions marked pure with no SSTORE logic)",
    "Storage read operations are missing: getAllowance and the auto-generated public getters (allowances, grid, deepNested) do not read from storage or return any value",
    "Return values are absent: the getter functions in the original return uint256/bool values, but decompiled functions return nothing",
    "Nested mapping slot computation (keccak256-based hashing of keys) is entirely absent",
    "Function mutability is wrong: original functions are state-mutating (setters) or view (getters), but all are shown as pure",
    "Function bodies are reduced to tautological no-op requires that do not correspond to any original logic"
  ]
}

NestedMappings (CFG: 100, Decompilation: 42)

Decompilation

{
  "score": 42,
  "summary": "The decompilation captures the existence of the three selectors and a single storage write in approve, but loses most of the functional logic: both view/getter functions have no storage reads or return values, and the approve write drops the nested-mapping structure and the msg.sender key component.",
  "differences": [
    "allowance(address,address) (selector 0xdd62ed3e) is decompiled as Unresolved_dd62ed3e(address arg0) with only an argument sanity check; it performs no storage read and returns no value, so the nested-mapping lookup and return are entirely lost.",
    "The public getter allowances(address,address) (selector 0x55b6ed5c) is likewise decompiled with only a require and no storage read or return value.",
    "approve stores into a single-level mapping keyed only on the spender (storage_map_a[address(arg0)] = arg1); the original writes allowances[msg.sender][spender], so both the nested-mapping key derivation and the msg.sender outer key are missing, producing a different storage slot than the original.",
    "The nested mapping (mapping(address => mapping(address => uint256))) is flattened to a single mapping(bytes32 => bytes32), so the two-level slot computation is not represented anywhere."
  ]
}

TransientStorage (CFG: 100, Decompilation: 18)

Decompilation

{
  "score": 18,
  "summary": "The decompilation fails to capture the behavior of nearly all functions. Only setTempOwner is recovered as a real function with a transient-storage write; the other five functions (incrementCounter, lock, unlock, getCounter, isLocked) are collapsed into meaningless constant declarations, losing their transient reads/writes and control flow entirely.",
  "differences": [
    "incrementCounter is not decompiled as a function at all; the transient load, increment (counter + 1), and transient store are completely lost, represented as an empty constant.",
    "lock() logic (transient store of true) is lost; represented as an empty bytes constant with no state change.",
    "unlock() logic (transient store of false) is lost; represented as an empty bytes constant with no state change.",
    "getCounter() returns a hardcoded constant 1 instead of loading and returning the transient counter value; the transient read is not preserved.",
    "isLocked() returns a hardcoded constant true instead of loading and returning the transient locked flag; the transient read is not preserved.",
    "setTempOwner is incorrectly marked as 'pure' although it performs a transient storage write, and it stores into transient slot 0x01 with masking/packing that does not correspond to the original simple assignment tempOwner = owner (original uses slot 1 for tempOwner as a full address, not a packed lower-bytes write)."
  ]
}

SimpleLoop (CFG: 92, Decompilation: 15)

Decompilation

{
  "score": 15,
  "summary": "The decompilation fails to capture the fundamental behavior of the function. The original loop iterates `loops` times, incrementing the storage variable `number` each iteration. The decompiled output contains no loop, no storage write to `number`, and is incorrectly marked as `view` (non-state-changing). The body consists of nonsensical/tautological require statements that do not represent the original arithmetic or control flow.",
  "differences": [
    "The for-loop control flow is completely absent; the decompiled function has no iteration structure.",
    "The storage write (increment of `number`) inside the loop is missing entirely — no SSTORE-equivalent operation is represented.",
    "Function mutability is wrong: decompiled as `view`, but the original modifies contract state.",
    "The require statements (`require(arg0 == arg0)`, `require(!0 < arg0)`, `require(number - 0xff...ff)`) are meaningless artifacts that do not correspond to any original logic.",
    "The increment operation (`number++`) and the loop bound comparison (`i < loops`) are not correctly reconstructed."
  ]
}

WhileLoop (CFG: 65, Decompilation: 10)

Decompilation

{
  "score": 10,
  "summary": "The decompilation fails to capture the fundamental behavior of the contract. The original function runs a while loop that repeatedly increments the storage variable `number`, but the decompiled output contains no loop, no storage write, and no increment logic. It is reduced to three meaningless require statements and is incorrectly marked as `view`.",
  "differences": [
    "The while loop control flow is entirely missing from the decompiled output",
    "The storage write `number = number + 1` is not present; the function is incorrectly marked `view` (non-payable state-changing behavior lost)",
    "The loop counter increment (`i = i + 1`) and loop bound comparison (`i < loops`) are not represented as executable logic",
    "The decompiled body consists of nonsensical require statements (e.g. `require(arg0 == arg0)`, `require(!0 < arg0)`, `require(!number > (number + 0x01))`) that do not correspond to any operation in the original"
  ]
}

CFG

{
  "score": 65,
  "summary": "The CFG captures both function entries (loop and the implicit number getter), the selector dispatch, the while-loop condition check with its true/exit branches, and all revert paths. However, the loop's back-edge is missing: the graph is acyclic, so the actual iteration of the while loop (body continuation, i increment, and jump back to the condition) is not represented. The loop skeleton (entry, condition, exit) is intact but the defining iteration path is absent.",
  "missing_paths": [
    "The while-loop back-edge: after the body executes (node 8), control should continue through the increment (i = i + 1) and jump back to the loop condition header at 0x77 (node 7). This back-edge is entirely absent, making the CFG acyclic and failing to capture that the loop iterates.",
    "The 'no-overflow' continuation block of the safe-add in the loop body (target 0x0193) is not present as a node; node 8 only has an edge to the overflow panic (node 9), omitting the successful add path and everything after it in the body."
  ],
  "extra_paths": [
    "Constructor CALLVALUE (payable) check: node 0 -> node 1 revert (compiler-added).",
    "Calldatasize < 4 dispatch guard: node 2 -> node 14 revert (compiler-added).",
    "Calldata ABI-decode validation for the loops argument: node 4 -> node 11 (SLT check revert) and node 5 -> node 6 (EQ check revert) (compiler-added).",
    "Arithmetic overflow (panic 0x11) check on number = number + 1: node 8 -> node 9 revert (compiler-added safe-math)."
  ],
  "observations": [
    "The selector dispatch (switch-like if-else chain) for both loop() (0x0b7d796e) and number() (0x8381f58a) is fully captured, including the fall-through to the invalid-selector revert (node 14).",
    "The while-loop condition (i < loops via LT/ISZERO at 0x77) correctly branches to the body (node 8) and the exit/STOP (node 10).",
    "Both function exit points are present: STOP for loop() (node 10) and RETURN for the number() getter (node 13).",
    "The missing back-edge is the most significant gap because iteration is the core semantic of a while loop; the contract (WhileLoop) exists specifically to exercise this construct, and the CFG contains no cycle at all."
  ]
}

WETH9 (CFG: 100, Decompilation: 68)

Decompilation

{
  "score": 68,
  "summary": "Core WETH9 behavior is largely recovered: deposit accrues msg.value, withdraw checks balance then calls transfer and emits Withdrawal, totalSupply returns the contract balance, approve/transfer/transferFrom emit the correct events, and balance arithmetic is preserved. However, the storage model is inconsistent (reads vs writes hit different slots), the allowance mapping/logic in transferFrom is garbled, and functions contain unreachable duplicated code.",
  "differences": [
    "Storage slots don't correspond consistently: deposit/withdraw/transfer write balances to storage_map_c, but balanceOf reads from storage_map_d, so the recovered read and write locations for the balance mapping do not match the original single balanceOf mapping.",
    "The allowance nested mapping is not represented correctly: approve writes the allowance value into storage_map_c (the balance-like slot) rather than a two-level allowance[src][spender] structure, and allowance()/reads use storage_map_d.",
    "transferFrom's conditional allowance logic is not faithfully reconstructed: the original 'if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) { require(allowance >= wad); allowance -= wad; }' is replaced by a confused equality check against 0xff..ff on storage_map_c[msg.sender] and the conditional allowance decrement is effectively missing.",
    "transfer() and transferFrom() contain unreachable/duplicated code blocks after the return 0x01 statements, obscuring the actual single execution path.",
    "The require balance-check condition is rendered as '!storage_map_c[var] < arg' which is a malformed/incorrect predicate rather than a clean 'balance >= wad' comparison.",
    "The 'decimals' public variable is typed as bool instead of a uint8 value, changing the represented return semantics of the decimals getter."
  ]
}

NestedLoop (CFG: 45, Decompilation: 10)

Decompilation

{
  "score": 10,
  "summary": "The decompilation fails to capture the fundamental behavior of the original contract. The nested for-loops that increment the storage variable `number` loops*loops times are entirely absent. There are no loop control structures, no storage write to `number`, and the function is incorrectly marked as `view` when it actually mutates state. Only vestigial, meaningless require statements remain.",
  "differences": [
    "Both nested for-loops are missing entirely; no loop control flow (initialization, condition, increment) is present in the decompiled output.",
    "The storage write `number += 1` is not performed; `number` is only read, never written, so the state change is lost.",
    "Function mutability is wrong: decompiled marks `loop` as `view`, but the original mutates the `number` storage variable and is non-view.",
    "The require statements (`require(arg0 == arg0)`, `require(!0 < arg0)`, `require(!number > (number + 0x01))`) do not correspond to any logic in the original and are non-functional/nonsensical.",
    "The core arithmetic (accumulating loops*loops increments into `number`) is not represented at all."
  ]
}

CFG

{
  "score": 45,
  "summary": "The CFG correctly captures the function dispatch, both selectors, the getter, and all revert/panic paths, but fundamentally fails to represent the nested-loop control flow: the extracted graph is a pure DAG with no back-edges, so neither the inner nor the outer for-loop cycle is present. Loop condition checks and body entries exist, but the increment blocks, loop back-edges, and the inner-loop exit path are all absent.",
  "missing_paths": [
    "Inner for-loop back-edge: after 'number += 1', the path that stores the value, increments j, and jumps back to the inner condition check (0x84) is missing — node 9 only edges to the overflow panic (node 10), with no normal continuation, so the inner loop has no cycle.",
    "Inner for-loop exit path: node 8 (inner condition, JUMPI to 0xb1) has only one successor (node 9); the false/exit branch that returns control to the outer loop is not represented in the graph.",
    "Outer for-loop back-edge: after the inner loop completes there is no path that increments i and jumps back to the outer condition check (0x77); node 7 has no incoming back-edge, so the outer loop has no cycle.",
    "Normal (non-panic) continuation of the loop body: the successful arithmetic path (SSTORE of 'number' and loop iteration) after the add is not captured; only the overflow-panic branch is shown."
  ],
  "extra_paths": [
    "Overflow/panic (0x4e487b71) check on 'number += 1' arithmetic (node 10) — compiler-added, does not affect score.",
    "CALLVALUE non-payable check reverting to node 1 — compiler-added.",
    "CALLDATASIZE < 4 selector-length check reverting to node 15 — compiler-added.",
    "Selector-mismatch fallthrough reverts (2->15, 13->15) — compiler dispatch logic.",
    "SLT calldata-bounds check in argument decoding (node 4 -> node 12) — compiler-added."
  ],
  "observations": [
    "The extracted graph contains no cycles at all, which is a fundamental deficiency for a contract whose entire purpose is a nested loop.",
    "Loop condition-check basic blocks (nodes 7 and 8) are correctly identified with their LT/ISZERO/JUMPI comparisons, and the outer loop's exit to STOP (node 7 -> node 11) is present.",
    "Function-level structure (dispatch, both public functions, getter RETURN, function entry/exit) and all require/revert/panic paths are well represented.",
    "The bodies of both loops appear to be inlined into single large basic-block labels, but the JUMP/JUMPI targets that form the loop back-edges and inner-loop exit were not resolved into graph edges."
  ]
}

Events (CFG: 100, Decompilation: 62)

Decompilation

{
  "score": 62,
  "summary": "Five of the seven event-emitting functions are decompiled correctly, capturing the right event with proper arguments (emitDeposit, emitWithdrawal, emitLog, emitLogBytes, and emitMultiple which correctly emits Deposit, Transfer, and Log with the right string constant). However, two functions completely fail: emitTransfer (0x23de6651) and emitApproval (0x5687f2b8) are reduced to a single address argument with only a require and no event emission at all. The Approval event is not even declared in the output, meaning the emitApproval logic is entirely lost.",
  "differences": [
    "emitTransfer (0x23de6651) does not emit the Transfer event and shows only one address argument instead of (address, address, uint256) — the core event emission is completely missing",
    "emitApproval (0x5687f2b8) does not emit the Approval event and shows only one address argument instead of (address, address, uint256) — the entire function logic is lost",
    "The Approval event is not declared anywhere in the decompiled output, so its emission cannot be represented",
    "Functions that emit events are incorrectly labeled 'pure' (emitting logs is not a pure operation), affecting mutability equivalence",
    "The Log/LogBytes emit statements use a malformed/undefined 'var_b' memory-offset expression rather than passing the actual string/bytes payload, though the underlying event and data constant are recognizable"
  ]
}

@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Benchmark for 6bd9ca5

Click to view benchmark
Test Base PR %
heimdall_cfg/complex 15.0±0.89ms 15.2±1.29ms +1.33%
heimdall_cfg/simple 1395.6±48.64µs 1404.3±79.27µs +0.62%
heimdall_decoder/seaport 56.1±2.79µs 59.5±4.07µs +6.06%
heimdall_decoder/transfer 4.0±0.30µs 4.3±0.33µs +7.50%
heimdall_decoder/uniswap 15.7±0.82µs 16.1±0.96µs +2.55%
heimdall_decompiler/abi_complex 57.7±1.00ms 58.1±2.49ms +0.69%
heimdall_decompiler/abi_simple 1482.8±20.63µs 1476.6±26.19µs -0.42%
heimdall_decompiler/sol_complex 80.6±1.30ms 81.0±2.31ms +0.50%
heimdall_decompiler/sol_simple 2.2±0.01ms 2.2±0.02ms 0.00%
heimdall_decompiler/yul_complex 64.4±2.11ms 65.9±1.82ms +2.33%
heimdall_decompiler/yul_simple 1634.5±57.22µs 1622.9±13.35µs -0.71%
heimdall_disassembler/complex 1246.4±45.71µs 1223.6±42.00µs -1.83%
heimdall_disassembler/simple 62.1±5.31µs 60.5±2.29µs -2.58%
heimdall_vm/erc20_transfer 267.8±8.99µs 267.7±9.91µs -0.04%
heimdall_vm/fib 847.3±13.29µs 852.6±28.80µs +0.63%
heimdall_vm/ten_thousand_hashes 708.7±15.35ms 702.8±13.79ms -0.83%

@github-actions
github-actions Bot force-pushed the cargo-update branch 2 times, most recently from cdf1374 to fe1d0a5 Compare July 19, 2026 00:27
info: syncing channel updates for 1.91.0-x86_64-unknown-linux-gnu
info: latest update on 2025-10-30 for version 1.91.0 (f8297e351 2025-10-28)
info: downloading 5 components
     Locking 144 packages to latest compatible versions
    Updating alloy-chains v0.2.34 -> v0.2.36
    Updating alloy-core v1.6.0 -> v1.6.1
    Updating alloy-dyn-abi v1.6.0 -> v1.6.1
    Updating alloy-json-abi v1.6.0 -> v1.6.1
    Updating alloy-primitives v1.6.0 -> v1.6.1
    Updating alloy-rlp v0.3.15 -> v0.3.16
    Updating alloy-rlp-derive v0.3.15 -> v0.3.16
    Updating alloy-sol-macro v1.6.0 -> v1.6.1
    Updating alloy-sol-macro-expander v1.6.0 -> v1.6.1
    Updating alloy-sol-macro-input v1.6.0 -> v1.6.1
    Updating alloy-sol-type-parser v1.6.0 -> v1.6.1
    Updating alloy-sol-types v1.6.0 -> v1.6.1
    Removing anyhow v1.0.102
      Adding ark-ff v0.6.0
      Adding ark-ff-asm v0.6.0
      Adding ark-ff-macros v0.6.0
      Adding ark-serialize v0.6.0
      Adding ark-serialize-derive v0.6.0
      Adding ark-std v0.6.0
    Updating arrayvec v0.7.6 -> v0.7.8
    Updating async-trait v0.1.89 -> v0.1.91
    Updating aws-lc-rs v1.17.0 -> v1.17.3
    Updating aws-lc-sys v0.41.0 -> v0.43.0
    Removing bit-set v0.8.0
    Removing bit-vec v0.8.0
      Adding bitcoin-consensus-encoding v1.1.0
      Adding bitcoin-internals v0.6.0
    Updating bitcoin-io v0.1.100 -> v0.1.101
    Updating bitcoin_hashes v0.14.100 -> v0.14.101
    Updating bitflags v2.13.0 -> v2.13.1
    Updating bitvec v1.0.1 -> v1.1.1
    Updating block-buffer v0.12.0 -> v0.12.1
    Updating blst v0.3.16 -> v0.3.17
    Updating borsh v1.6.1 -> v1.8.0
    Updating borsh-derive v1.6.1 -> v1.8.0
    Updating bytes v1.11.1 -> v1.12.1
    Updating c-kzg v2.1.7 -> v2.1.8
    Updating cc v1.2.63 -> v1.4.0
    Updating cfg_aliases v0.2.1 -> v0.2.2
    Updating chacha20 v0.10.0 -> v0.10.1
    Updating clap v4.6.1 -> v4.6.4
    Updating clap_builder v4.6.0 -> v4.6.2
    Updating clap_derive v4.6.1 -> v4.6.4
    Updating crossbeam-channel v0.5.15 -> v0.5.16
    Updating crossbeam-deque v0.8.6 -> v0.8.7
    Updating crossbeam-epoch v0.9.18 -> v0.9.20
    Updating crossbeam-utils v0.8.21 -> v0.8.22
    Updating either v1.16.0 -> v1.17.0
    Updating enum-ordinalize v4.3.2 -> v4.4.1
    Updating enum-ordinalize-derive v4.3.2 -> v4.4.1
    Updating fastrand v2.4.1 -> v2.5.0
      Adding fixed-cache v0.1.10
    Removing foldhash v0.1.5
    Updating futures v0.3.32 -> v0.3.33
    Updating futures-channel v0.3.32 -> v0.3.33
    Updating futures-core v0.3.32 -> v0.3.33
    Updating futures-executor v0.3.32 -> v0.3.33
    Updating futures-io v0.3.32 -> v0.3.33
    Updating futures-macro v0.3.32 -> v0.3.33
    Updating futures-sink v0.3.32 -> v0.3.33
    Updating futures-task v0.3.32 -> v0.3.33
    Updating futures-util v0.3.32 -> v0.3.33
    Updating getrandom v0.4.2 -> v0.4.3
    Updating glob v0.3.3 -> v0.3.4
    Updating h2 v0.4.14 -> v0.4.15
    Removing hashbrown v0.15.5
      Adding hex-conservative v1.2.0
    Updating http v1.4.1 -> v1.4.2
    Updating http-body v1.0.1 -> v1.1.0
    Updating http-body-util v0.1.3 -> v0.1.4
    Updating hybrid-array v0.4.12 -> v0.4.13
    Updating hyper v1.10.1 -> v1.11.0
    Removing id-arena v2.3.0
    Updating jobserver v0.1.34 -> v0.1.35
    Updating js-sys v0.3.99 -> v0.3.103
    Updating keccak-asm v0.1.7 -> v0.1.8
    Removing leb128fmt v0.1.0
    Updating libc v0.2.186 -> v0.2.189
    Updating log v0.4.32 -> v0.4.33
    Updating memchr v2.8.1 -> v2.8.3
    Updating mio v1.2.1 -> v1.2.2
    Updating num-bigint v0.4.6 -> v0.4.8
    Updating openssl v0.10.80 -> v0.10.81
    Updating openssl-sys v0.9.116 -> v0.9.117
    Updating pest v2.8.6 -> v2.8.8
      Adding phf v0.14.0
      Adding phf_shared v0.14.0
    Updating portable-atomic v1.13.1 -> v1.14.0
    Removing prettyplease v0.2.37
    Removing proc-macro-error-attr2 v2.0.0
      Adding proc-macro-error-attr3 v3.0.1 (available: v3.0.3)
    Removing proc-macro-error2 v2.0.1
      Adding proc-macro-error3 v3.0.1 (available: v3.0.3)
    Updating proc-macro2 v1.0.106 -> v1.0.107
    Removing quick-error v1.2.3
    Updating quinn v0.11.9 -> v0.11.11
    Updating quinn-proto v0.11.14 -> v0.11.16
    Updating quinn-udp v0.5.14 -> v0.5.15
    Updating quote v1.0.45 -> v1.0.47
    Removing rand v0.8.6
    Removing rand v0.9.4
    Removing rand v0.10.1
      Adding rand v0.8.7 (available: v0.10.2)
      Adding rand v0.9.5
      Adding rand v0.10.2
      Adding rand_pcg v0.10.2
    Updating rapidhash v4.4.1 -> v4.5.1
    Updating ref-cast v1.0.25 -> v1.0.26
    Updating ref-cast-impl v1.0.25 -> v1.0.26
    Updating regex v1.12.3 -> v1.13.1
    Updating regex-automata v0.4.14 -> v0.4.16
    Updating regex-syntax v0.8.10 -> v0.8.11
    Updating ruint v1.18.0 -> v1.19.0
    Updating rustc-hash v2.1.2 -> v2.1.3
    Updating rustls v0.23.40 -> v0.23.42
    Updating rustls-pki-types v1.14.1 -> v1.15.1
    Updating rustversion v1.0.22 -> v1.0.23
    Removing rusty-fork v0.3.1
    Updating serde v1.0.228 -> v1.0.229
    Updating serde_core v1.0.228 -> v1.0.229
    Updating serde_derive v1.0.228 -> v1.0.229
    Updating serde_json v1.0.150 -> v1.0.151
    Updating sha1 v0.10.6 -> v0.10.7
    Updating sha3-asm v0.1.7 -> v0.1.8
    Updating simd_cesu8 v1.1.1 -> v1.2.0
      Adding siphasher v1.0.3
    Updating smallvec v1.15.1 -> v1.15.2
    Updating socket2 v0.6.4 -> v0.6.5
    Removing syn v2.0.117
      Adding syn v2.0.119
      Adding syn v3.0.3
    Updating syn-solidity v1.6.0 -> v1.6.1
    Updating thiserror v2.0.18 -> v2.0.19
    Updating thiserror-impl v2.0.18 -> v2.0.19
    Updating thread_local v1.1.9 -> v1.1.10
    Updating time v0.3.47 -> v0.3.54
    Updating time-core v0.1.8 -> v0.1.9
    Updating time-macros v0.2.27 -> v0.2.32
    Updating tinyvec v1.11.0 -> v1.12.0
    Updating tokio v1.52.3 -> v1.53.1
    Updating tokio-macros v2.7.0 -> v2.7.1
    Updating tokio-retry v0.3.1 -> v0.3.2
    Updating tokio-stream v0.1.18 -> v0.1.19
    Updating tokio-util v0.7.18 -> v0.7.19
    Updating toml_edit v0.25.12+spec-1.1.0 -> v0.25.13+spec-1.1.0
    Removing wait-timeout v0.2.1
    Updating wasip2 v1.0.3+wasi-0.2.9 -> v1.0.4+wasi-0.2.12
    Removing wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06
    Updating wasm-bindgen v0.2.122 -> v0.2.126
    Updating wasm-bindgen-futures v0.4.72 -> v0.4.76
    Updating wasm-bindgen-macro v0.2.122 -> v0.2.126
    Updating wasm-bindgen-macro-support v0.2.122 -> v0.2.126
    Updating wasm-bindgen-shared v0.2.122 -> v0.2.126
    Removing wasm-encoder v0.244.0
    Removing wasm-metadata v0.244.0
    Removing wasmparser v0.244.0
    Updating web-sys v0.3.99 -> v0.3.103
    Updating webpki-root-certs v1.0.7 -> v1.0.9
    Updating webpki-roots v1.0.7 -> v1.0.9
    Removing windows-sys v0.60.2
    Removing windows-targets v0.53.5
    Removing windows_aarch64_gnullvm v0.53.1
    Removing windows_aarch64_msvc v0.53.1
    Removing windows_i686_gnu v0.53.1
    Removing windows_i686_gnullvm v0.53.1
    Removing windows_i686_msvc v0.53.1
    Removing windows_x86_64_gnu v0.53.1
    Removing windows_x86_64_gnullvm v0.53.1
    Removing windows_x86_64_msvc v0.53.1
    Updating winnow v1.0.3 -> v1.0.4
    Removing wit-bindgen v0.51.0
    Removing wit-bindgen-core v0.51.0
    Removing wit-bindgen-rust v0.51.0
    Removing wit-bindgen-rust-macro v0.51.0
    Removing wit-component v0.244.0
    Removing wit-parser v0.244.0
    Updating zerocopy v0.8.50 -> v0.8.55
    Updating zerocopy-derive v0.8.50 -> v0.8.55
    Updating zeroize v1.8.2 -> v1.9.0
    Updating zeroize_derive v1.4.3 -> v1.5.0
    Updating zmij v1.0.21 -> v1.0.23
note: pass `--verbose` to see 17 unchanged dependencies behind latest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant