Commit Graph
5064 Commits
Author SHA1 Message Date
Dan Guido e17adca38b Merge branch 'master' into features/exclude-location
Resolve conflicts combining:
- PR's exclude_location feature (first_part extraction)
- Master's !s format specifier style
2026-01-16 02:24:33 -05:00
Dan GuidoandClaude Opus 4.5 d6f924397f fix: add fasttext as optional dependency for slither-simil (#2899)
Add `[project.optional-dependencies]` section with `simil` extra so users
can install with `pip install slither-analyzer[simil]` instead of manually
installing fasttext.

Update error message to show the new installation method.

Fixes #2621

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-16 02:01:10 -05:00
Dan GuidoandClaude Opus 4.5 e7a323b34b chore: enable 34 additional ruff lint rules (#2898)
Enable ruff rules that were previously ignored and apply auto-fixes:

Code style (E7xx):
- E713: not-in-test (`not x in y` → `x not in y`)
- E714: not-is-test (`not x is y` → `x is not y`)
- E721: type-comparison (use isinstance())
- E722: bare-except (`except:` → `except Exception:`)

Comprehensions (C4xx):
- C414: unnecessary-double-cast-or-process (`sorted(list(...))` → `sorted(...)`)
- C416: unnecessary-comprehension (`[x for x in y]` → `list(y)`)
- C417: unnecessary-map (`map(lambda x: ..., y)` → list comprehension)

Pyupgrade (UPxxx):
- UP008: super-call-with-parameters (`super(Cls, self)` → `super()`)
- UP015: redundant-open-modes (`open(f, "r")` → `open(f)`)
- UP018: native-literals (`str("x")` → `"x"`)
- UP022: replace-stdout-stderr (subprocess capture_output=True)
- UP028: yield-in-for-loop (`for x in y: yield x` → `yield from y`)
- UP030: format-literals (remove unnecessary indices)
- UP031: printf-string-formatting (`%` → f-strings)
- UP032: f-string (`"".format()` → f-strings)
- UP034: extraneous-parentheses (remove extra parens)
- UP039: unnecessary-class-parentheses (`class Foo():` → `class Foo:`)

Simplify (SIM1xx):
- SIM113: enumerate-for-loop (use enumerate())
- SIM115: open-file-with-context-handler (use with statement)
- SIM118: in-dict-keys (`key in d.keys()` → `key in d`)
- SIM201: negate-equal-op (`not x == y` → `x != y`)
- SIM202: negate-not-equal-op (`not x != y` → `x == y`)
- SIM208: double-negation (`not not x` → `x`)
- SIM210: if-expr-with-true-false (`True if cond else False` → `cond`)
- SIM212: if-expr-with-twisted-arms (fix ternary order)
- SIM220: expr-and-not-expr (`x and not x` → `False`)
- SIM221: expr-or-not-expr (`x or not x` → `True`)
- SIM222: expr-or-true (`x or True` → `True`)
- SIM223: expr-and-false (`x and False` → `False`)
- SIM300: yoda-conditions (`"x" == val` → `val == "x"`)
- SIM910: dict-get-with-none-default (`d.get(k, None)` → `d.get(k)`)
- SIM911: zip-dict-keys-and-values (`zip(d.keys(), d.values())` → `d.items()`)

Ruff-specific (RUFxxx):
- RUF100: unused-noqa (remove unused suppressions)

Also adds per-file ignore for slither/detectors/source/rtlo.py (E101)
as this file intentionally contains mixed indentation for RTLO exploit
detection test scenarios.

92 files modified. All tests pass (environment-only failures for
missing vyper/ganache binaries are unrelated to these changes).

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-16 02:00:49 -05:00
Dan GuidoandClaude Opus 4.5 6d4b7361be fix: correct ERC conformance JSON key and document evm-cfg-builder dep (#2896)
* fix: correct ERC conformance JSON key and document evm-cfg-builder dep

- Fix copy-paste error in slither-check-erc: JSON output key was
  incorrectly set to "upgradeability-check" instead of "erc-conformance"
- Add note to EVM printer docs about evm-cfg-builder dependency

Fixes #2629, fixes #2733

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* fix: add blank line before fenced code block in blockquote

Co-Authored-By: Claude Opus 4.5 <[email protected]>

---------

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-16 01:39:43 -05:00
dependabot[bot] 490998b4ea Bump pytest-insta from 0.1.11 to 0.2.0 in the all group (#2892)
Bumps the all group with 1 update: [pytest-insta](https://github.com/vberlier/pytest-insta).


Updates `pytest-insta` from 0.1.11 to 0.2.0
- [Release notes](https://github.com/vberlier/pytest-insta/releases)
- [Changelog](https://github.com/vberlier/pytest-insta/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vberlier/pytest-insta/compare/v0.1.11...v0.2.0)

---
updated-dependencies:
- dependency-name: pytest-insta
  dependency-version: 0.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-16 01:08:53 -05:00
Dan GuidoandClaude Opus 4.5 4b49724746 chore: modernize Makefile to use uv-native workflow (#2895)
- Replace manual venv creation with `uv sync`
- Replace `. activate &&` pattern with `uv run`
- Remove VENV/VENV_BIN variables and Windows logic
- Remove unused ALL_PY_SRCS, BUMP_ARGS, SLITHER_EXTRA, COV_ARGS
- Remove unused `edit` target
- Fix actionlint invocation (auto-discovers .github/workflows)
- Update docs to reflect new uv workflow

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-16 01:07:26 -05:00
Dan GuidoandClaude Opus 4.5 a68c3ab2a0 chore: modernize pre-commit hooks with prek (#2894)
- Replace pre-commit with prek (Rust-based, faster)
- Add shellcheck and shfmt for shell script linting
- Add actionlint for GitHub Actions validation
- Add actionlint.yaml config for ubuntu-slim runner label
- Update Makefile: lint target adds actionlint/zizmor, reformat adds ruff format
- Update make dev to auto-install hooks
- Update CLAUDE.md and CONTRIBUTING.md to document prek
- Remove redundant hooks (debug-statements, check-yaml, mixed-line-ending)
- Auto-fix formatting issues caught by new hooks

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-16 00:57:56 -05:00
dependabot[bot] 62093999e3 Bump the all group with 4 updates (#2893)
Bumps the all group with 4 updates: [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv), [cachix/install-nix-action](https://github.com/cachix/install-nix-action), [astral-sh/ruff-action](https://github.com/astral-sh/ruff-action) and [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish).


Updates `astral-sh/setup-uv` from f06b870e0a91d23284a3013acc55e6f88ab4b904 to 61cb8a9741eeb8a550a1b8544337180c0fc8476b
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](https://github.com/astral-sh/setup-uv/compare/f06b870e0a91d23284a3013acc55e6f88ab4b904...61cb8a9741eeb8a550a1b8544337180c0fc8476b)

Updates `cachix/install-nix-action` from bec50b45a8bb06017c42af46702a3f502adcfa9e to 4e002c8ec80594ecd40e759629461e26c8abed15
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Changelog](https://github.com/cachix/install-nix-action/blob/master/RELEASE.md)
- [Commits](https://github.com/cachix/install-nix-action/compare/bec50b45a8bb06017c42af46702a3f502adcfa9e...4e002c8ec80594ecd40e759629461e26c8abed15)

Updates `astral-sh/ruff-action` from 2b984f020b2806c04b79876e6911b787fa3e4a48 to 57714a7c8a2e59f32539362ba31877a1957dded1
- [Release notes](https://github.com/astral-sh/ruff-action/releases)
- [Commits](https://github.com/astral-sh/ruff-action/compare/2b984f020b2806c04b79876e6911b787fa3e4a48...57714a7c8a2e59f32539362ba31877a1957dded1)

Updates `pypa/gh-action-pypi-publish` from 106e0b0b7c337fa67ed433972f777c6357f78598 to ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/106e0b0b7c337fa67ed433972f777c6357f78598...ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 61cb8a9741eeb8a550a1b8544337180c0fc8476b
  dependency-type: direct:production
  dependency-group: all
- dependency-name: cachix/install-nix-action
  dependency-version: 4e002c8ec80594ecd40e759629461e26c8abed15
  dependency-type: direct:production
  dependency-group: all
- dependency-name: astral-sh/ruff-action
  dependency-version: 57714a7c8a2e59f32539362ba31877a1957dded1
  dependency-type: direct:production
  dependency-group: all
- dependency-name: pypa/gh-action-pypi-publish
  dependency-version: ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e
  dependency-type: direct:production
  dependency-group: all
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-16 00:48:28 -05:00
Dan GuidoandClaude Opus 4.5 96e2f25bb8 ci: Harden and optimize GitHub Actions workflows (#2891)
* ci: Harden and optimize GitHub Actions workflows

Security improvements:
- Pin all 23 actions to SHA hashes with version comments
- Add persist-credentials: false to all checkout actions
- Add explicit permissions blocks to all workflows
- Remove unnecessary daily scheduled triggers from ci.yml and test.yml
- Fix script injection in test.yml by using environment variables

Performance optimizations:
- Enable uv dependency caching across all workflows (30-60s savings per job)
- Add path filtering to ci.yml and test.yml (skip CI on docs-only changes)
- Remove redundant setup-python from doctor.yml (setup-uv handles Python)
- Optimize yamllint job to use uvx directly without full Python environment
- Fix lint.yml workflow self-reference path

Verification:
- All workflows pass zizmor security audit (0 findings)
- All workflows pass actionlint validation

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* fix(ci): Restore setup-python for doctor.yml system-wide tests

The doctor workflow tests system-wide Python installation using
`uv pip install --system`, which requires actions/setup-python
to provide a real system Python. The setup-uv action installs
Python in uv's managed directory, not as a system Python.

Also adds Dependabot cooldown and grouping per CLAUDE.md standards.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* fix(ci): Test slither-doctor on actual project, not root filesystem

The doctor workflow was running `slither-doctor .` after `cd /`,
which tested the tool against `/` (root filesystem) instead of a
real Solidity project. This only verified "doesn't crash" rather
than "correctly diagnoses".

Changed to use `$GITHUB_WORKSPACE` so the tool analyzes the Slither
repository, which has test contracts and exercises all 4 diagnostic
checks meaningfully.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* ci(pip-audit): Fix step name, add path filtering for PRs

- Renamed misleading "Install Slither" step to "Export dependencies"
- Added path filtering for PRs (pyproject.toml, uv.lock, workflow file)
- Weekly schedule and push to master still run unconditionally

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* ci: Remove monthly issue metrics workflow

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* ci(doctor): Reduce matrix from 12 to 4 jobs

Test only Python 3.9 (min) and 3.14 (max) since the doctor tool
has no version-specific code. Combined with path filtering, this
workflow now runs rarely and quickly.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* ci: Use ubuntu-slim for simpler workflows

Switch pip-audit, publish, and docs workflows from ubuntu-latest
to ubuntu-slim for faster startup (~10s savings per job).

These workflows have simple requirements and don't need the extra
RAM/software of ubuntu-latest.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

---------

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-16 00:19:53 -05:00
Dan GuidoandClaude Opus 4.5 fe7590f0e7 fix: remove Etherscan API dependency from CI tests (#2890)
Replace live Etherscan API calls with cached local contract sources.
The contracts are immutable on-chain, so testing against cached source
still validates the analysis logic.

This fixes intermittent CI failures from Etherscan API rate limits when
multiple jobs run in parallel. The Etherscan platform integration is
already tested by crytic-compile's own CI.

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-15 23:30:47 -05:00
Dan GuidoandClaude Opus 4.5 9277defc3b docs: Add comprehensive CLAUDE.md for AI-assisted development (#2889)
* Add .worktrees/ to .gitignore

Prevent git worktree directories from being tracked.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* docs: Add comprehensive CLAUDE.md for AI-assisted development

Add project-specific coding standards and Slither internals documentation
to help developers using Claude Code (or similar AI tools) work effectively
on the codebase.

CLAUDE.md includes:
- Architecture overview and development setup
- Code standards (philosophy, quality, hard limits)
- Working on code (incremental improvement, git conventions)
- Testing guidelines
- Slither internals (APIs, traversal patterns, SlithIR/SSA, detector quality)

CONTRIBUTING.md additions:
- PR description guidelines
- Commit message conventions
- Markdown documentation standards

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* docs: Condense CONTRIBUTING.md and improve readability

- Code section: Remove verbose PR model explanation, fork link, "work from master"
- Testing section: Tighten test categories to scannable list
- Tips: Condense while adding coverage commands
- crytic-compile section: Rename and simplify to numbered steps with example
- CLAUDE.md: Add analyses/ to architecture, alphabetize directories

Co-Authored-By: Claude Opus 4.5 <[email protected]>

---------

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-15 23:11:44 -05:00
dependabot[bot] 3e1d67e015 Bump pytest from 7.4.4 to 8.4.2 (#2888)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.4 to 8.4.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.4...8.4.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 8.4.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 22:45:37 -05:00
dependabot[bot] 08408d5688 Bump ruff from 0.14.10 to 0.14.13 (#2887)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.10 to 0.14.13.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.10...0.14.13)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.14.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 22:45:15 -05:00
Emilio López 87c97d981c dependabot: update python dependencies 2026-01-16 00:13:54 -03:00
e29654419a #2688 fix markdown linter (#2722)
* enable markdown linter

* add .markdownlint.yaml base config

* Update and fix Usage.md based on markdownlint

* Update and fix Data-dependency.md based on markdownlint

* fix fenced code blocks on docs/src/tutorials

* fix markdown on Upgradeability-Checks.md

* fix first-line-heading issue on tools/README.md and tools/Slither-format.md

* fix markdown on tools/Property-generation.md

* fix markdown on tools/Path-Finding-Utility.md

* fix markdown on tools/ERC-Conformance.md

* fix remaining docs/src/tools/

* fix docs/src/printers/

* fix docs/src/detectors/

* fix docs/src/api/

* allow html tag img for custom image size and fix SUMMARY.md

* set MARKDOWN_CONFIG_FILE name for superlinter

* move .markdownlint.yaml to .github/linters/.markdown-lint.yaml

* fix markdown related issue outside docs/src

* fix: remove orphaned stub sections and unnecessary escape

- Remove unnecessary backslash escape before hyphen in README.md
- Remove orphaned "AST File", "Options", and "IDE integrations" stub
  sections from Usage.md that had no TOC links

Co-Authored-By: Claude Opus 4.5 <[email protected]>

---------

Co-authored-by: Dan Guido <[email protected]>
Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-15 19:23:10 -05:00
Dan GuidoandClaude Opus 4.5 da369c0ea7 fix: update snapshots for typo fix in uninitialized detector (#2886)
PR #2723 fixed the typo 'unintialized' -> 'uninitialized' in the
detector code but the test snapshots weren't updated.

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-15 19:14:04 -05:00
omahsandDan Guido b77f172ffb chore: fix typos (#2723)
Co-authored-by: Dan Guido <[email protected]>
2026-01-15 18:22:45 -05:00
780cb20b4b Add paths to inheritance printer (#2732)
* Update inheritance.py

* fix: fix linting and formatting issues

Co-Authored-By: Claude Opus 4.5 <[email protected]>

---------

Co-authored-by: Dan Guido <[email protected]>
Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-01-15 18:18:00 -05:00
Shushanik TovmasyanandDan Guido 5b68304a66 fixed consistency (#2556)
Made Identifier::expression property.

Co-authored-by: Dan Guido <[email protected]>
2026-01-15 16:51:59 -05:00
714266a1d1 slither-doctor: paths: follow symlinks (#1608)
Sometimes installed binaries are a symlink to some other path
(e.g., in Homebrew packages) and we should not warn users if
that is the case. Follow symlinks to find the real underlying
paths and compare those instead.

Co-authored-by: Josselin Feist <[email protected]>
Co-authored-by: Dan Guido <[email protected]>
2026-01-15 16:49:44 -05:00
4bf7e08dfa Fix markdown lint on docs/ (#2870)
* Fix markdown lint on docs/

- Add .markdownlint.json config to disable overly strict rules
  (line length, duplicate headings, inline HTML, etc.)
- Remove temporary docs/src/ exclusion from linter workflow
- Auto-fix formatting issues (tabs to spaces, trailing punctuation)
- Fix broken link fragments in Usage.md table of contents

Fixes #2688

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* ci: add markdownlint job

* Fix duplicate 'Triage mode' heading in Usage.md

Rename the first 'Triage mode' section to 'Suppressing findings'
since it documents comment-based result suppression, not the
--triage-mode CLI feature. Also add TOC entry for the new section.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

---------

Co-authored-by: Claude Opus 4.5 <[email protected]>
Co-authored-by: Emilio López <[email protected]>
2026-01-15 16:33:25 -05:00
Dan Guido 54f7fb0267 Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	tests/e2e/detectors/test_detectors.py
2026-01-15 15:59:07 -05:00
Simone fd71cabd07 Merge pull request #2885 from crytic/fix-docker-armv7-build-tools
Fix Docker armv7 build: add build tools for pip wheel compilation
0.11.4
2026-01-15 19:35:09 +01:00
Dan GuidoandClaude Opus 4.5 1460245031 Fix Docker armv7 build: add build tools for pip wheel compilation
The armv7 pip fallback fails because packages like pycryptodome,
bitarray, and regex need C compilation but gcc/python3-dev weren't
installed.

This adds build-essential and python3-dev conditionally only on armv7,
keeping amd64/arm64 images lean (they use uv with pre-built wheels).

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-01-15 13:34:14 -05:00
Simone bb4e8d0241 Merge pull request #2884 from crytic/fix-docker-armv7
Fix Docker build for armv7: use curl to install uv with pip fallback
2026-01-15 19:22:56 +01:00
Dan GuidoandClaude Opus 4.5 3dcdfd1936 Fix Docker build for armv7: use curl to install uv with pip fallback
The previous change used `COPY --from=ghcr.io/astral-sh/uv:latest` which
fails on armv7 because uv doesn't publish armv7 images.

This fix:
- Uses curl to install uv (works on amd64/arm64)
- Falls back to pip for armv7 where uv isn't available
- Adds ca-certificates and curl to apt dependencies
- Re-adds python3-pip for the fallback path

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-01-15 13:21:00 -05:00
Simone f4568192bd Merge pull request #2883 from crytic/optimize-dockerfile
Optimize Dockerfile: migrate to uv, reduce build context
2026-01-15 19:14:46 +01:00
Dan GuidoandClaude Opus 4.5 770f566b5b Optimize Dockerfile: migrate to uv, reduce build context
- Replace pip with uv for faster dependency installation
- Use uv.lock for reproducible builds with `uv sync --frozen`
- Expand .dockerignore to reduce build context from 937MB to ~9MB
- Remove multi-stage build (no longer needed with uv)
- Optimize layer caching by copying lockfile before source
- Consolidate LABEL instructions into single layer
- Use JSON notation for CMD (proper signal handling)
- Update syntax directive to 1.12

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-01-15 13:10:00 -05:00
Emilio López 42b79491ea dependabot: disable on test artifacts #4 2026-01-15 15:05:27 -03:00
Emilio López f0cf31495b dependabot: disable on test artifacts #3 2026-01-15 14:59:02 -03:00
Emilio López 04da9b0fdd dependabot: disable on test artifacts #2 2026-01-15 14:55:41 -03:00
Emilio López 351c8cb182 dependabot: disable on test artifacts 2026-01-15 14:50:31 -03:00
Simone 6968b2ab1f Update version 2026-01-15 18:43:30 +01:00
Simone 10b3e54af8 Merge pull request #2875 from crytic/dev
Sync Dev <> Master
2026-01-15 18:40:53 +01:00
Simone 734c4ca878 Merge pull request #2866 from crytic/dev-unindexed-events
Add unindexed-event-address detector
2026-01-15 18:33:56 +01:00
Simone 8b80ed236f Target master branch for development (#2874) 2026-01-15 12:32:52 -05:00
Simone adcc2d9cf0 Merge pull request #2873 from crytic/uv-lock
`uv lock --upgrade`
2026-01-15 18:04:10 +01:00
Emilio López f8ec63153e uv lock --upgrade 2026-01-15 10:44:43 -03:00
Emilio López bed4803f4d Merge pull request #2869 from crytic/fix/modernize-plugin-example
Modernize plugin_example to use pyproject.toml
2026-01-15 09:57:15 -03:00
Emilio López bae7114c11 Merge remote-tracking branch 'origin/dev' into fix/modernize-plugin-example 2026-01-15 09:43:46 -03:00
Dan GuidoandClaude Opus 4.5 94ea114cee Modernize plugin_example to use pyproject.toml
Replace legacy setup.py with modern pyproject.toml using hatchling
build backend. Update README with current installation instructions.

Fixes #2854

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-01-15 02:18:22 -05:00
Simone a4480ab5fd Remove unused imports 2026-01-10 01:42:57 +01:00
Simone 8216de9707 Fix wiki link 2026-01-10 01:41:43 +01:00
Simone 22a72c3ceb Update README.md 2026-01-10 01:35:37 +01:00
Simone 68f0e10dae Add unindexed-event-address detector 2026-01-10 01:33:02 +01:00
Simone 50035b53fa Merge pull request #2865 from crytic/dev-fix-duplicates-vars-auth
Remove iterating modifiers as they are already present from all_internal_calls()
2026-01-10 01:18:16 +01:00
Simone bbca15a2d6 Merge pull request #2860 from crytic/dev-fix-modifier-parsing
Fix parsing of modifiers
2026-01-10 01:15:18 +01:00
Simone 53ac84c21e Merge pull request #2861 from crytic/fix-expression-parsing-aliasing
Fix aliasing of member access with Vyper's builtins when parsing an expression
2026-01-10 01:14:59 +01:00
Simone fc2f656be5 Merge pull request #2863 from crytic/dev-support-custom-storage-layout
Support custom storage layout
2026-01-10 01:14:32 +01:00
Simone 2ec6033e17 Merge pull request #2864 from crytic/dev-output-detector-name
Add detector's name in the output
2026-01-10 01:14:18 +01:00