Releases: crytic/crytic-compile
0.3.7
0.3.7 - 2024-04-07
This release adds support for retrieving source code from Blast's block explorer (crytic-compile blast:0x
). Crytic-compile will also now automatically configure remappings for Etherscan and derivative block explorers such that it can be compiled from disk without intervention.
We'd like to thank our external contributor(s):
What's Changed
- Improve handling of "version" string from Etherscan by @ggrieco-tob in #545
- Allow library users to use a custom current working directory by @frabert in #551
- feat: automatically handle solc configuration for Etherscan Platform by @shortdoom in #544
- fix: normalize windows path to handle solc >=0.8.8 filename lookup by @0xalpharush in #554
- Add Blast support by @smonicas in #556
New Contributors
- @frabert made their first contribution in #551
- @shortdoom made their first contribution in #544
Full Changelog: 0.3.6...0.3.7
0.3.6
This release fixes an issue related to detecting Foundry projects when the target directory contains a foundry.toml
file, adds support for contract from Etherscan that require via-ir, fixes Python >=3.12.1 compatibility, and fixes a regression in the error message when a target is not a file/directory.
What's Changed
- platform: etherscan: add support for viaIR by @elopez in #517
- fix(vyper): only raise InvalidCompilation on hard errors by @0xalpharush in #532
- Fix Python 3.12 compatibility by @elopez in #516
- fix(ci): guard brownie on Py3.10,3.11 by @0xalpharush in #533
- fix: use target to get config, drop toml for json by @0xalpharush in #515
- ci: re-enable testing on Windows with Python 3.12 by @elopez in #535
- fix: raise error when target is not file/directory by @0xalpharush in #539
Full Changelog: 0.3.5...0.3.6
0.3.5
0.3.5 - 2023-10-18
This release enables building a single file for Foundry projects:
- Running
crytic-compile contracts/file.sol
will automatically resolve the necessary imports and compile only the relevant files. Note, this requires providing the solc version in the project's foundry.toml. - Tests and scripts files are no longer compiled by default. This will impact echidna and medusa users. To include them, use
--foundry-compile-all
, or run the tool on the target file instead of the project directory.
Additionally, this releases improves the support for vyper, and adds three new etherscan-like platform (base, gnosis, and zkevm).
What's Changed
- Improve foundry compilation by @smonicas in #488
- Add support for base, gnosis and zkevm chain by @vikramarun in #487
- Add vyper 0.3.7 standard json support by @0xalpharush in #492
- Add CompilationUnit.implementation_address for proxy contracts by @SheldonHolmgren in #452
- Tests for file ordering by @samalws-tob in #499
- Deprecate support for kovan and ropsten networks #502
CI
- Bump sigstore/gh-action-sigstore-python from 2.0.1 to 2.1.0 by @dependabot in #498
- Bump sigstore/gh-action-sigstore-python from 2.0.0 to 2.0.1 by @dependabot in #490
- Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 by @dependabot in #489
- Bump actions/checkout from 3 to 4 by @dependabot in #497
- Bump cachix/install-nix-action from 20 to 23 by @dependabot in #496
- Add more delay on the etherscan CI test by @montyly in #500
New Contributors
- @vikramarun made their first contribution in #487
- @SheldonHolmgren made their first contribution in #452
Full Changelog: 0.3.4...0.3.5
v0.3.4
This release improves support for libraries, specifically for users of Echidna and Medusa. Please see the usage and accompanying tutorial for more information here.
Thank you @vovikhangcdv for your contribution.
What's Changed
- docs: add useful info like linking and forcing framework to README by @0xalpharush in #478
- add library names and placeholder to solc export format by @0xalpharush in #479
- allow 20 byte address for --compile-libraries and raise error if argument is invalid by @0xalpharush in #477
- fix: unhandled invalid api key by @vovikhangcdv in #475
New Contributors
- @vovikhangcdv made their first contribution in #475
Full Changelog: 0.3.3...0.3.4
v0.3.3
0.3.3 - 2023-07-06
This release adds support for detecting the Hardhat framework when CommonJS config files (hardhat.config.cjs
) are used.
What's Changed
New Contributors
- @dependabot made their first contribution in #459
- @oldsj made their first contribution in #463
Full Changelog: 0.3.2...0.3.3
v0.3.2
0.3.2 - 2023-06-23
This release improves support for verified contracts on Ethercan, improves integration with Echidna's coverage collection, and fixes several bugs. Additionally, this release fixes a potential path traversal responsibly disclosed by Lucas Ma which could potentially overwrite a file if a user ran the crytic-compile on a specific, malicious address.
We would like to thank all of our external contributors:
Added
- Add support for https://goerli.basescan.org (Coinbase Base Goerli Testnet) by @ale-coinbase in #419
- improve error message if target does not exist by @0xalpharush in #442
- create release action with sigstore by @0xalpharush in #446
- increase observability and provide suggestions/clearer errors by @0xalpharush in #444
- platform: etherscan: add support for solc remaps, evm version by @elopez in #447
- handle when AST json is
legactAST
in hardhat by @0xalpharush in #455
Changed
- [Breaking API Change] Use list instead of set for filenames and contracts_names; change filename ordering by @montyly, @samalws-tob in #436
- Do not explicitly pass --force to forge build by @karmacoma-eth in #429
- use hash of relative path to make filename key more reliable by @0xalpharush in #450
- Update dependabot.yml by @0xalpharush in #454
Fixed
- platform: hardhat: explicitly terminate console after querying paths by @elopez in #417
- handle relpath when path and start on different drives by @0xalpharush in #413
- use foundry action in integration test by @0xalpharush in #428
- prevent possible path traversal for etherscan platform by @0xalpharush in #425
- add more logging for subprocess calls by @0xalpharush in #431
- improve error message for solc platform if file is dir by @0xalpharush in #427
- typo by @sidarth16 in #412
- Fix etherscan rate limit check by @smonicas in #426
- add makefile by @0xalpharush in #441
- Doc site by @0xalpharush in #445
- Fix --allow-paths argument in solc.py by @samalws-tob in #433
New Contributors
- @ale-coinbase made their first contribution in #419
- @karmacoma-eth made their first contribution in #429
- @sidarth16 made their first contribution in #412
- @samalws-tob made their first contribution in #433
Full Changelog: 0.3.1...0.3.2
v0.3.1
0.3.1 - 2023-03-20
This releases adds the support for Sepolia, removes the support for rinkeby, adds solc-select as a direct dependency and contains improvements to support linked libraries (to ease Echidna's integration).
We would like to thank all of our external contributors:
Added
- Add support Sepolia by @wakiyamap in #388
- Add dev dependencies by @bohendo in #376
- add solc-select as required dep by @0xalpharush in #407
- Enable custom build output directories with Brownie by @UsmannK in #366
- Codeowners by @montyly in #406
Removed
Changed
- hardhat: consider hardhat console might not execute successfully by @elopez in #364
- pass kwargs to is_supported by @zhiqiangxu in #299
- removed etherlime from CI by @damilolaedwards in #378
- upgrade nix installation to fix CI installation by @0xalpharush in #399
- CI improvements by @montyly in #404
- Improve libraries support by @montyly in #390
- Normalize abs paths by @bohendo in #370
- support compact format for solc 0.4.12 by @0xalpharush in #398
Fixed
- dapp: fix compilations with
target
different fromcwd
by @elopez in #365 - URL wiki fix by @ahpaleus in #356
- Fix Vyper type to str by @smonicas in #401
- fix typo by @technovision99 in #409
New Contributors
- @ahpaleus made their first contribution in #356
- @zhiqiangxu made their first contribution in #299
- @damilolaedwards made their first contribution in #378
- @wakiyamap made their first contribution in #388
- @UsmannK made their first contribution in #366
- @smonicas made their first contribution in #401
- @technovision99 made their first contribution in #409
Full Changelog: 0.3.0...0.3.1
v0.3.0
0.3.0 - 2023-01-11
This releases improves the support for foundry and fixes multiples bugs. The releases contains also two API breaking changes: a refactoring of the compilation unit and the filename lookup.
We would like to thank all of our external contributors:
- @clems4ever
- @japerk
- @indigo-eth-sec
Added
- Support multiple compilation units for foundry by @0xalpharush, @montyly in #348
- CI: update Actions versions and enable dependabot by @elopez in #322
- Hardhat: auto-detect paths by @elopez in #311
- Add missing command-line arguments by @elopez in #323
- Node module resolution by @bohendo in #324
- Add metadata parsing + removal from bytecode by @rmi7 in #304
- Auto-clean projects before compiling by @elopez in #312
Changed
- Replace pysha3 with pycryptodome by @elopez in #309
- Move to python 3.8 by @montyly in #317
- Split CompilationUnit into CompilationUnit + SourceUnit by @montyly in #316, #349 BREAKING CHANGE
- Refactor filenames/filenames_lookup by @montyly in #336 BREAKING CHANGE
- Improve etherscan and brownie tests by @elopez in #342
- Change priority hardhat <> foundry by @montyly in #350
Fixed
- Fix optimizations not applied in solc-standard-json mode by @clems4ever in #306
- Resolve path before passing it to solc by @elopez in #302
- Fix dapp CI by @montyly in #320
- Fix brownie version detection by @0xalpharush in #303
- Clean up deprecation warnings in workflows by @elopez in #337
- Fix import 0.0.2 by @montyly in #340
- Contracts file path must be first for transform by @bohendo in #345
- Fix for redundant compiles and incorrect version selection when running with solc_solcs_select flag by @bohendo in #346
- Decode debugging and error output with backslashreplace by @elopez in #351
- Surface stderr/ errors from solc-select by @0xalpharush in #353
New Contributors
- @clems4ever made their first contribution in #306
- @japerk made their first contribution in #345
- @indigo-eth-sec made their first contribution in #346
- @bohendo made their first contribution in #324
Full Changelog: 0.2.4...0.3.0
v0.2.4
0.2.4 - 2022-10-05
This release adds the support for optimistic and polygon testnets, and fixes multiples bugs.
For foundry users: we do not support setup that use multiple compiler versions at the moment (see foundry-rs/foundry#3450).
We want to thanks our external contributors: