Releases: crytic/crytic-compile
0.3.11
This release adds support for additional networks in the Etherscan platform, and improves support for partial Foundry compilations as well as Foundry projects with custom out directory configurations.
What's Changed
- platform: foundry: improve targeted compilations, skips by @elopez in #606
- Auto-detect Foundry
outdirectory by @elopez in #610 - added monad testnet support in etherscan.py by @Jayakumar2812 in #609
- ci: improve scripts, update Windows runners, add Python 3.13 by @elopez in #613
- Update etherscan platforms by @elopez in #625
New Contributors
- @Jayakumar2812 made their first contribution in #609
Full Changelog: 0.3.10...0.3.11
0.3.10
This release has a minor bug fix to stop removing whitespaces from a contract's ABI. This used to break compatibility with tools like medusa.
What's Changed
- Stop removing whitespaces in ABI by @samalws-tob in #597
New Contributors
- @anishnaik made their first contribution in #598
Full Changelog: 0.3.9...v0.3.10
0.3.9
This release adds new Etherscan like platforms and for Foundry considers files as dependencies if node_modules appears in the path.
What's Changed
- Add etherscan like platforms by @smonicas in #588
- Update is_dependency() in foundry.py to add node_modules by @nisedo in #590
- tests: sort contractDependencies by @elopez in #596
New Contributors
Full Changelog: 0.3.8...0.3.9
0.3.8
This release adds support for the v2 Etherscan API and fixes a bug with a recent foundry version.
What's Changed
- platform: etherscan: add support for v2 API by @elopez in #574
- Fix foundry optimizer key by @smonicas in #582
- SolcStandardJson: pass solc_env and solc_working_dir through to compilation by @garythung in #514
- Fix some comments by @pullmerge in #559
New Contributors
- @garythung made their first contribution in #514
- @pullmerge made their first contribution in #559
Full Changelog: 0.3.7...0.3.8
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.solwill 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:
- @ale-coinbase
- @karmacoma-eth
- @sidarth16
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
legactASTin 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