Skip to content

btcli v11 UX, wallet compat, and alpha-fee runtime fixes (combines #3046–#3051) #10067

btcli v11 UX, wallet compat, and alpha-fee runtime fixes (combines #3046–#3051)

btcli v11 UX, wallet compat, and alpha-fee runtime fixes (combines #3046–#3051) #10067

Workflow file for this run

name: Cargo Audit
on:
pull_request:
types: [labeled, unlabeled, synchronize, opened]
concurrency:
group: cargo-audit-${{ github.ref }}
cancel-in-progress: true
jobs:
trusted-pr:
name: Trusted PR source (non-fork)
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false
runs-on: ubuntu-latest
steps:
- run: echo "Non-fork PR; self-hosted runners may execute checkout."
cargo-audit:
name: cargo audit
needs: trusted-pr
runs-on: [self-hosted, fireactions-turbo-8]
environment:
name: sccache-writer
deployment: false
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/rust-setup
with:
cache-key: cargo-audit
sccache-credential-mode: auto
sccache-writer-access-key-id: ${{ secrets.SCCACHE_R2_WRITE_ACCESS_KEY_ID }}
sccache-writer-secret-access-key: ${{ secrets.SCCACHE_R2_WRITE_SECRET_ACCESS_KEY }}
- name: Ensure cargo-audit
run: |
# The pinned runner image provides this exact binary. Old images and
# hosted runners keep the normal Cargo install fallback.
contract=/etc/fireactions-runner-image/image-contract.env
system_bin=/usr/local/bin/cargo-audit
if [[ -r "$contract" ]] && \
grep -Fxq 'CARGO_AUDIT_VERSION=0.22.2' "$contract" && \
[[ -x "$system_bin" ]] && \
"$system_bin" --version 2>/dev/null | grep -Fq 'cargo-audit 0.22.2'; then
# rust-cache restores $HOME/.cargo/bin ahead of /usr/local/bin.
# Replace any cached copy with the verified image binary.
install -m 0755 "$system_bin" "$HOME/.cargo/bin/cargo-audit"
echo "Using verified runner-image cargo-audit 0.22.2"
else
cargo install --force --locked cargo-audit --version 0.22.2
fi
- name: cargo audit
# Each ignore is a known, accepted advisory; revisit when bumping
# polkadot-sdk since most originate in the patched fork's tree.
run: |
# RUSTSEC-2026-0020/0021/0085..0096/0222: wasmtime 8.0.1, pinned by
# the polkadot-sdk fork's sc-executor; fixed only by a major SDK bump.
# RUSTSEC-2026-0098/0099/0104: rustls-webpki 0.101 via the fork's
# libp2p networking stack.
# RUSTSEC-2026-0118/0119: hickory-proto via libp2p-dns (fork tree).
# RUSTSEC-2026-0204: crossbeam-epoch via the fork tree.
# RUSTSEC-2025-0137 / RUSTSEC-2026-0220: ruint via the frontier/EVM
# fork tree; 0220 needs >=1.20.0, pinned below that by frontier.
# RUSTSEC-2025-0020 / RUSTSEC-2026-0177: pyo3 0.23 in
# bittensor-core-py; ours — revisit when pyo3 >=0.29 is adopted.
# RUSTSEC-2026-0235: rkyv 0.7.x OOB via Rc/Arc metadata; 0.7 unsupported
# upstream (fix is >=0.8.17). Pinned by the polkadot-sdk / wasmtime
# tree — revisit on the next major SDK bump.
cargo audit --ignore RUSTSEC-2023-0091 \
--ignore RUSTSEC-2024-0438 \
--ignore RUSTSEC-2025-0009 \
--ignore RUSTSEC-2025-0055 \
--ignore RUSTSEC-2025-0073 \
--ignore RUSTSEC-2025-0118 \
--ignore RUSTSEC-2026-0020 \
--ignore RUSTSEC-2026-0021 \
--ignore RUSTSEC-2026-0085 \
--ignore RUSTSEC-2026-0086 \
--ignore RUSTSEC-2026-0087 \
--ignore RUSTSEC-2026-0088 \
--ignore RUSTSEC-2026-0089 \
--ignore RUSTSEC-2026-0091 \
--ignore RUSTSEC-2026-0092 \
--ignore RUSTSEC-2026-0093 \
--ignore RUSTSEC-2026-0094 \
--ignore RUSTSEC-2026-0095 \
--ignore RUSTSEC-2026-0096 \
--ignore RUSTSEC-2026-0098 \
--ignore RUSTSEC-2026-0099 \
--ignore RUSTSEC-2026-0104 \
--ignore RUSTSEC-2026-0118 \
--ignore RUSTSEC-2026-0119 \
--ignore RUSTSEC-2026-0204 \
--ignore RUSTSEC-2026-0220 \
--ignore RUSTSEC-2026-0222 \
--ignore RUSTSEC-2025-0137 \
--ignore RUSTSEC-2025-0020 \
--ignore RUSTSEC-2026-0177 \
--ignore RUSTSEC-2026-0235