Recent Releases of crytic-compile
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/597
New Contributors
- @anishnaik made their first contribution in https://github.com/crytic/crytic-compile/pull/598
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.9...v0.3.10
- Python
Published by anishnaik about 1 year ago
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/588
- Update isdependency() in foundry.py to add nodemodules by @nisedo in https://github.com/crytic/crytic-compile/pull/590
- tests: sort contractDependencies by @elopez in https://github.com/crytic/crytic-compile/pull/596
New Contributors
- @nisedo made their first contribution in https://github.com/crytic/crytic-compile/pull/590
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.8...0.3.9
- Python
Published by smonicas about 1 year ago
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/574
- Fix foundry optimizer key by @smonicas in https://github.com/crytic/crytic-compile/pull/582
- SolcStandardJson: pass solcenv and solcworking_dir through to compilation by @garythung in https://github.com/crytic/crytic-compile/pull/514
- Fix some comments by @pullmerge in https://github.com/crytic/crytic-compile/pull/559
New Contributors
- @garythung made their first contribution in https://github.com/crytic/crytic-compile/pull/514
- @pullmerge made their first contribution in https://github.com/crytic/crytic-compile/pull/559
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.7...0.3.8
- Python
Published by smonicas over 1 year ago
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): - @shortdoom
What's Changed
- Improve handling of "version" string from Etherscan by @ggrieco-tob in https://github.com/crytic/crytic-compile/pull/545
- Allow library users to use a custom current working directory by @frabert in https://github.com/crytic/crytic-compile/pull/551
- feat: automatically handle solc configuration for Etherscan Platform by @shortdoom in https://github.com/crytic/crytic-compile/pull/544
- fix: normalize windows path to handle solc >=0.8.8 filename lookup by @0xalpharush in https://github.com/crytic/crytic-compile/pull/554
- Add Blast support by @smonicas in https://github.com/crytic/crytic-compile/pull/556
New Contributors
- @frabert made their first contribution in https://github.com/crytic/crytic-compile/pull/551
- @shortdoom made their first contribution in https://github.com/crytic/crytic-compile/pull/544
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.6...0.3.7
- Python
Published by 0xalpharush over 2 years ago
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/517
- fix(vyper): only raise InvalidCompilation on hard errors by @0xalpharush in https://github.com/crytic/crytic-compile/pull/532
- Fix Python 3.12 compatibility by @elopez in https://github.com/crytic/crytic-compile/pull/516
- fix(ci): guard brownie on Py3.10,3.11 by @0xalpharush in https://github.com/crytic/crytic-compile/pull/533
- fix: use target to get config, drop toml for json by @0xalpharush in https://github.com/crytic/crytic-compile/pull/515
- ci: re-enable testing on Windows with Python 3.12 by @elopez in https://github.com/crytic/crytic-compile/pull/535
- fix: raise error when target is not file/directory by @0xalpharush in https://github.com/crytic/crytic-compile/pull/539
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.5...0.3.6
- Python
Published by 0xalpharush over 2 years ago
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/488
- Add support for base, gnosis and zkevm chain by @vikramarun in https://github.com/crytic/crytic-compile/pull/487
- Add vyper 0.3.7 standard json support by @0xalpharush in https://github.com/crytic/crytic-compile/pull/492
- Add CompilationUnit.implementation_address for proxy contracts by @SheldonHolmgren in https://github.com/crytic/crytic-compile/pull/452
- Tests for file ordering by @samalws-tob in https://github.com/crytic/crytic-compile/pull/499
- Deprecate support for kovan and ropsten networks https://github.com/crytic/crytic-compile/pull/502
CI
- Bump sigstore/gh-action-sigstore-python from 2.0.1 to 2.1.0 by @dependabot in https://github.com/crytic/crytic-compile/pull/498
- Bump sigstore/gh-action-sigstore-python from 2.0.0 to 2.0.1 by @dependabot in https://github.com/crytic/crytic-compile/pull/490
- Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 by @dependabot in https://github.com/crytic/crytic-compile/pull/489
- Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/crytic/crytic-compile/pull/497
- Bump cachix/install-nix-action from 20 to 23 by @dependabot in https://github.com/crytic/crytic-compile/pull/496
- Add more delay on the etherscan CI test by @montyly in https://github.com/crytic/crytic-compile/pull/500
New Contributors
- @vikramarun made their first contribution in https://github.com/crytic/crytic-compile/pull/487
- @SheldonHolmgren made their first contribution in https://github.com/crytic/crytic-compile/pull/452
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.4...0.3.5
- Python
Published by montyly over 2 years ago
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/478
- add library names and placeholder to solc export format by @0xalpharush in https://github.com/crytic/crytic-compile/pull/479
- allow 20 byte address for --compile-libraries and raise error if argument is invalid by @0xalpharush in https://github.com/crytic/crytic-compile/pull/477
- fix: unhandled invalid api key by @vovikhangcdv in https://github.com/crytic/crytic-compile/pull/475
New Contributors
- @vovikhangcdv made their first contribution in https://github.com/crytic/crytic-compile/pull/475
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.3...0.3.4
- Python
Published by 0xalpharush almost 3 years ago
crytic-compile - 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
- Add support for Hardhat CommonJS config, clean up platform ordering by @elopez in https://github.com/crytic/crytic-compile/pull/468
New Contributors
- @dependabot made their first contribution in https://github.com/crytic/crytic-compile/pull/459
- @oldsj made their first contribution in https://github.com/crytic/crytic-compile/pull/463
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.2...0.3.3
- Python
Published by 0xalpharush about 3 years ago
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/419
- improve error message if target does not exist by @0xalpharush in https://github.com/crytic/crytic-compile/pull/442
- create release action with sigstore by @0xalpharush in https://github.com/crytic/crytic-compile/pull/446
- increase observability and provide suggestions/clearer errors by @0xalpharush in https://github.com/crytic/crytic-compile/pull/444
- platform: etherscan: add support for solc remaps, evm version by @elopez in https://github.com/crytic/crytic-compile/pull/447
- handle when AST json is
legactASTin hardhat by @0xalpharush in https://github.com/crytic/crytic-compile/pull/455
Changed
- [Breaking API Change] Use list instead of set for filenames and contracts_names; change filename ordering by @montyly, @samalws-tob in https://github.com/crytic/crytic-compile/pull/436
- Do not explicitly pass --force to forge build by @karmacoma-eth in https://github.com/crytic/crytic-compile/pull/429
- use hash of relative path to make filename key more reliable by @0xalpharush in https://github.com/crytic/crytic-compile/pull/450
- Update dependabot.yml by @0xalpharush in https://github.com/crytic/crytic-compile/pull/454
Fixed
- platform: hardhat: explicitly terminate console after querying paths by @elopez in https://github.com/crytic/crytic-compile/pull/417
- handle relpath when path and start on different drives by @0xalpharush in https://github.com/crytic/crytic-compile/pull/413
- use foundry action in integration test by @0xalpharush in https://github.com/crytic/crytic-compile/pull/428
- prevent possible path traversal for etherscan platform by @0xalpharush in https://github.com/crytic/crytic-compile/pull/425
- add more logging for subprocess calls by @0xalpharush in https://github.com/crytic/crytic-compile/pull/431
- improve error message for solc platform if file is dir by @0xalpharush in https://github.com/crytic/crytic-compile/pull/427
- typo by @sidarth16 in https://github.com/crytic/crytic-compile/pull/412
- Fix etherscan rate limit check by @smonicas in https://github.com/crytic/crytic-compile/pull/426
- add makefile by @0xalpharush in https://github.com/crytic/crytic-compile/pull/441
- Doc site by @0xalpharush in https://github.com/crytic/crytic-compile/pull/445
- Fix --allow-paths argument in solc.py by @samalws-tob in https://github.com/crytic/crytic-compile/pull/433
New Contributors
- @ale-coinbase made their first contribution in https://github.com/crytic/crytic-compile/pull/419
- @karmacoma-eth made their first contribution in https://github.com/crytic/crytic-compile/pull/429
- @sidarth16 made their first contribution in https://github.com/crytic/crytic-compile/pull/412
- @samalws-tob made their first contribution in https://github.com/crytic/crytic-compile/pull/433
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.1...0.3.2
- Python
Published by 0xalpharush about 3 years ago
crytic-compile - 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: - @UsmannK - @wakiyamap - @zhiqiangxu
Added
- Add support Sepolia by @wakiyamap in https://github.com/crytic/crytic-compile/pull/388
- Add dev dependencies by @bohendo in https://github.com/crytic/crytic-compile/pull/376
- add solc-select as required dep by @0xalpharush in https://github.com/crytic/crytic-compile/pull/407
- Enable custom build output directories with Brownie by @UsmannK in https://github.com/crytic/crytic-compile/pull/366
- Codeowners by @montyly in https://github.com/crytic/crytic-compile/pull/406
Removed
- Remove support for rinkeby by @montyly in https://github.com/crytic/crytic-compile/pull/403
Changed
- hardhat: consider hardhat console might not execute successfully by @elopez in https://github.com/crytic/crytic-compile/pull/364
- pass kwargs to is_supported by @zhiqiangxu in https://github.com/crytic/crytic-compile/pull/299
- removed etherlime from CI by @damilolaedwards in https://github.com/crytic/crytic-compile/pull/378
- upgrade nix installation to fix CI installation by @0xalpharush in https://github.com/crytic/crytic-compile/pull/399
- CI improvements by @montyly in https://github.com/crytic/crytic-compile/pull/404
- Improve libraries support by @montyly in https://github.com/crytic/crytic-compile/pull/390
- Normalize abs paths by @bohendo in https://github.com/crytic/crytic-compile/pull/370
- support compact format for solc 0.4.12 by @0xalpharush in https://github.com/crytic/crytic-compile/pull/398
Fixed
- dapp: fix compilations with
targetdifferent fromcwdby @elopez in https://github.com/crytic/crytic-compile/pull/365 - URL wiki fix by @ahpaleus in https://github.com/crytic/crytic-compile/pull/356
- Fix Vyper type to str by @smonicas in https://github.com/crytic/crytic-compile/pull/401
- fix typo by @technovision99 in https://github.com/crytic/crytic-compile/pull/409
New Contributors
- @ahpaleus made their first contribution in https://github.com/crytic/crytic-compile/pull/356
- @zhiqiangxu made their first contribution in https://github.com/crytic/crytic-compile/pull/299
- @damilolaedwards made their first contribution in https://github.com/crytic/crytic-compile/pull/378
- @wakiyamap made their first contribution in https://github.com/crytic/crytic-compile/pull/388
- @UsmannK made their first contribution in https://github.com/crytic/crytic-compile/pull/366
- @smonicas made their first contribution in https://github.com/crytic/crytic-compile/pull/401
- @technovision99 made their first contribution in https://github.com/crytic/crytic-compile/pull/409
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.3.0...0.3.1
- Python
Published by montyly over 3 years ago
crytic-compile - 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 https://github.com/crytic/crytic-compile/pull/348
- CI: update Actions versions and enable dependabot by @elopez in https://github.com/crytic/crytic-compile/pull/322
- Hardhat: auto-detect paths by @elopez in https://github.com/crytic/crytic-compile/pull/311
- Add missing command-line arguments by @elopez in https://github.com/crytic/crytic-compile/pull/323
- Node module resolution by @bohendo in https://github.com/crytic/crytic-compile/pull/324
- Add metadata parsing + removal from bytecode by @rmi7 in https://github.com/crytic/crytic-compile/pull/304
- Auto-clean projects before compiling by @elopez in https://github.com/crytic/crytic-compile/pull/312
Changed
- Replace pysha3 with pycryptodome by @elopez in https://github.com/crytic/crytic-compile/pull/309
- Move to python 3.8 by @montyly in https://github.com/crytic/crytic-compile/pull/317
- Split CompilationUnit into CompilationUnit + SourceUnit by @montyly in https://github.com/crytic/crytic-compile/pull/316, https://github.com/crytic/crytic-compile/pull/349 BREAKING CHANGE
- Refactor filenames/filenames_lookup by @montyly in https://github.com/crytic/crytic-compile/pull/336 BREAKING CHANGE
- Improve etherscan and brownie tests by @elopez in https://github.com/crytic/crytic-compile/pull/342
- Change priority hardhat <> foundry by @montyly in https://github.com/crytic/crytic-compile/pull/350
Fixed
- Fix optimizations not applied in solc-standard-json mode by @clems4ever in https://github.com/crytic/crytic-compile/pull/306
- Resolve path before passing it to solc by @elopez in https://github.com/crytic/crytic-compile/pull/302
- Fix dapp CI by @montyly in https://github.com/crytic/crytic-compile/pull/320
- Fix brownie version detection by @0xalpharush in https://github.com/crytic/crytic-compile/pull/303
- Clean up deprecation warnings in workflows by @elopez in https://github.com/crytic/crytic-compile/pull/337
- Fix import 0.0.2 by @montyly in https://github.com/crytic/crytic-compile/pull/340
- Contracts file path must be first for transform by @bohendo in https://github.com/crytic/crytic-compile/pull/345
- Fix for redundant compiles and incorrect version selection when running with solcsolcsselect flag by @bohendo in https://github.com/crytic/crytic-compile/pull/346
- Decode debugging and error output with backslashreplace by @elopez in https://github.com/crytic/crytic-compile/pull/351
- Surface stderr/ errors from solc-select by @0xalpharush in https://github.com/crytic/crytic-compile/pull/353
New Contributors
- @clems4ever made their first contribution in https://github.com/crytic/crytic-compile/pull/306
- @japerk made their first contribution in https://github.com/crytic/crytic-compile/pull/345
- @indigo-eth-sec made their first contribution in https://github.com/crytic/crytic-compile/pull/346
- @bohendo made their first contribution in https://github.com/crytic/crytic-compile/pull/324
Full Changelog: https://github.com/crytic/crytic-compile/compare/0.2.4...0.3.0
- Python
Published by montyly over 3 years ago
crytic-compile - 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 https://github.com/foundry-rs/foundry/issues/3450).
We want to thanks our external contributors:
Added
- Support for optimistic (https://github.com/crytic/crytic-compile/pull/277)
- Support for polygon testnet (https://github.com/crytic/crytic-compile/pull/294)
Fixed
- Support for ehterscan with relative path (https://github.com/crytic/crytic-compile/pull/260)
- Foundry test (https://github.com/crytic/crytic-compile/pull/274)
- Base64 Zip import (https://github.com/crytic/crytic-compile/pull/287)
- Issues in foundry support (https://github.com/crytic/crytic-compile/pull/273, https://github.com/crytic/crytic-compile/pull/282)
- Python
Published by montyly almost 4 years ago
crytic-compile - v0.2.3
0.2.3 - 2022-04-21
This release adds the support for Foundry and improves Windows & brownie support
We would like to thanks @sjkelleyjr for its contributions
Added
- Foundry support (https://github.com/crytic/crytic-compile/pull/251)
Improved
- Windows support (https://github.com/crytic/crytic-compile/pull/248, https://github.com/crytic/crytic-compile/pull/249)
- Brownie support (https://github.com/crytic/crytic-compile/pull/259)
- Update to gh super linter 4.9.2 (https://github.com/crytic/crytic-compile/pull/235, https://github.com/crytic/crytic-compile/pull/252)
- Python
Published by montyly about 4 years ago
crytic-compile - v0.2.2
0.2.2 - 2021-12-10
This release adds the support for solc 0.8.10 and significantly improves the support for etherscan-like platforms
Added
- Support for solc 0.8.10 (https://github.com/crytic/crytic-compile/pull/221)
- Add native support for arbiscan (mainet, testnet), polygoscan, Snowtrace (mainet, testnet), ftmscam (https://github.com/crytic/crytic-compile/pull/216, https://github.com/crytic/crytic-compile/pull/222)
Changed
- Remove the unique contract name per compilation unit restriction. This leads to breaking changes in crytic-compile API (https://github.com/crytic/crytic-compile/pull/223)
- Refactor the solc standard json platform to allow standalone function calls (https://github.com/crytic/crytic-compile/pull/226)
- Refactor the etherscan platform to use the solc standard json (https://github.com/crytic/crytic-compile/pull/226)
- Add solc-select detection for the etherscan platform (https://github.com/crytic/crytic-compile/pull/226)
- Create a
CompilerVersionobject, and addoptimize-runsinfo (only on etherscan for now) (https://github.com/crytic/crytic-compile/pull/226)
Fixed
- Invalid unicode characters (https://github.com/crytic/crytic-compile/pull/227)
- Improve filename lookup for truffle (https://github.com/crytic/crytic-compile/pull/224)
- Python
Published by montyly over 4 years ago
crytic-compile - v0.2.1
0.2.1 - 2021-08-16
This release adds support for BSC, improves truffle and waffle support, and improves the overall code quality through type hints and documentation.
Added
- BSC support (https://github.com/crytic/crytic-compile/pull/189, https://github.com/crytic/crytic-compile/pull/194)
- API:
- Filenames at the compilation unit level (https://github.com/crytic/crytic-compile/pull/205)
get_global_offset_from_line(https://github.com/crytic/crytic-compile/pull/193)
- Waffle: Support for
.waffle.jsonconfig filename (https://github.com/crytic/crytic-compile/pull/198) - Truffle: Support for truffle >= 5.3.14 (https://github.com/crytic/crytic-compile/pull/204)
- Documentation for all functions/modules (https://github.com/crytic/crytic-compile/pull/207). The documentation follows the google style. The CI checks the documentation accuracy with
dargling(see CONTRIBUTING.md) - Reach 100% type hints coverage (https://github.com/crytic/crytic-compile/pull/195). The CI checks the accuracy of the type with
mypy(see CONTRIBUTING.md)
Fixed
- Bug in the Zip output (https://github.com/crytic/crytic-compile)
- Typo in test (https://github.com/crytic/crytic-compile/pull/200)
- Python
Published by montyly almost 5 years ago
crytic-compile - v0.2.0
0.2.0 - 2021-05-07
This release adds the support for multiple compilation units and contains breaking changes required for its support. Additionally, it improves the support for Vyper, Brownie, and Etherscan.
Added
- Add vyper source mapping (https://github.com/crytic/crytic-compile/pull/171)
Changed
- Add support for multiple compilation units (https://github.com/crytic/crytic-compile/pull/167, https://github.com/crytic/crytic-compile/pull/176). See https://github.com/crytic/crytic-compile/pull/167 for the breaking changes.
- Use
--forceby default with hardhat (https://github.com/crytic/crytic-compile/pull/173) - Use pylint 2.8.2 (https://github.com/crytic/crytic-compile/pull/180)
Fixed
- Improve Etherscan support (for Solidity >= 0.8) (https://github.com/crytic/crytic-compile/pull/172)
- Improve Brownie support (https://github.com/crytic/crytic-compile/pull/166)
- Python
Published by montyly about 5 years ago
crytic-compile - v0.1.13
0.1.13 - 2021-03-29
This release improves the support of solc 0.8, as well as hardhat and Etherscan support.
We are currently investigating issues with the hardhat support (crytic/crytic-compile#164), in the meantime, hardhat should be considered as partially supported.
Added
- Support for solc 0.8 (direct compilation) (https://github.com/crytic/crytic-compile/pull/147)
Changed
- Improvements to Etherscan export directory (https://github.com/crytic/crytic-compile/pull/144, https://github.com/crytic/crytic-compile/pull/148)
- Improve Etherscan error message (https://github.com/crytic/crytic-compile/pull/159)
- Clean up solc platform (https://github.com/crytic/crytic-compile/pull/149)
- Use pylint
2.7.2and black20.8b1, and improve CI (https://github.com/crytic/crytic-compile/pull/162)
Fixed
- Fix hardhat source mapping (https://github.com/crytic/crytic-compile/pull/154)
- Python
Published by montyly over 5 years ago
crytic-compile - v0.1.12
0.1.12 - 2020-12-18
This release adds the support for multi-files on Etherscan adds a new API for Slither
Added
- Support for multi-files on Etherscan (https://github.com/crytic/crytic-compile/pull/142, https://github.com/crytic/crytic-compile/pull/143)
get_code_from_lineAPI (https://github.com/crytic/crytic-compile/pull/141)
- Python
Published by montyly over 5 years ago
crytic-compile - v0.1.11
0.1.11 - 2020-12-07
This release improves hardhat and dapp support, and contains optimizations for Slither.
We would like to thanks @elopez for its contributions.
Added
- Support for typescript configuration with hardhat (https://github.com/crytic/crytic-compile/pull/131)
- Latest dapp support (https://github.com/crytic/crytic-compile/pull/137)
- Hardhat custom configuration (
--hardhat-ignore-compile,--hardhat-cache-directory,--hardhat-artifacts-directory) (https://github.com/crytic/crytic-compile/pull/136) - Add memorization for
filename_lookup, and cache foris_dependencyresults (https://github.com/crytic/crytic-compile/pull/129, https://github.com/crytic/crytic-compile/pull/135). This result in significant speed improvements for Slither for codebase with several files (up to 30% speed gain from an initial benchmark) - Add
get_line_from_offsetAPI (https://github.com/crytic/crytic-compile/pull/130). This is an optimized version of the original Slither'ssource_mapping._compute_line(https://github.com/crytic/slither/pull/702)
Fixed
- Incorrect source mapping in buidler (https://github.com/crytic/crytic-compile/pull/133)
- solc version detection for
--solc-solcs-(select|bin)(https://github.com/crytic/crytic-compile/pull/138) - solc version regex guessing (https://github.com/crytic/crytic-compile/pull/139)
- Python
Published by montyly over 5 years ago
crytic-compile - v0.1.10
0.1.10 - 2020-11-12
This release introduces the support for hardhat, and improves Waffle and Buidler support.
We would like to thanks @PaulRBerg, for helping us debugging the buidler directory name bug (https://github.com/crytic/crytic-compile/issues/116).
Added
- Hardhat support (https://github.com/crytic/crytic-compile/pull/126)
--solc-force-legacy-jsonflag (https://github.com/crytic/crytic-compile/pull/111)- Support for builder directory name bug (https://github.com/crytic/crytic-compile/issues/116, https://github.com/crytic/crytic-compile/pull/127). The fix can be disabled with
--buidler-skip-directory-name-fix
Changed
- Solc output: sort the source list (https://github.com/crytic/crytic-compile/pull/125)
- Multiple improvements on the waffle support (https://github.com/crytic/crytic-compile/pull/119)
- Use black
19.10b0instead of latest for github super linter compatibility (https://github.com/crytic/crytic-compile/pull/124)
- Python
Published by montyly over 5 years ago
crytic-compile - v0.1.9
0.1.9 - 2020-09-08
This release adds two new flags to improve truffle support, and improves etherlime, waffle and buidler support. Additionally, slither now runs GitHub super-linter (see CONTRIBUTING.md#linters).
We also want to thanks @alphastorm and @tomlinton for their contributions.
Added
--truffle-overwrite-configand--truffle-overwrite-versionto ease the compilation on complex setup (https://github.com/crytic/crytic-compile/pull/88) Changed- Remove case sensitivity in
--compile-force-framework(https://github.com/crytic/crytic-compile/pull/100) - Improve waffle and etherlime support (https://github.com/crytic/crytic-compile/pull/101
- Github super linter (https://github.com/crytic/crytic-compile/pull/107)
Fixed
- Improve buidler detection (https://github.com/crytic/crytic-compile/pull/97)
- Fix natspec parsing in buidler (https://github.com/crytic/crytic-compile/pull/105)
- All pylint issues (https://github.com/crytic/crytic-compile/pull/107)
- Python
Published by montyly almost 6 years ago
crytic-compile - v0.1.8
0.1.8 - 2020-04-24
This release adds the support for buidler, the events information, and improves the zip export.
Added
- Support for buidler (https://github.com/crytic/crytic-compile/pull/82)
- Parsing of events topics (https://github.com/crytic/crytic-compile/pull/81)
-export-zip-typeflag (https://github.com/crytic/crytic-compile/pull/84)
Changed
- Zip export will now use lzma for compression (https://github.com/crytic/crytic-compile/pull/84)
Fixed
- Archive platform support (https://github.com/crytic/crytic-compile/pull/80)
- Python
Published by montyly about 6 years ago
crytic-compile - v0.1.7
0.1.7 - 2020-03-23
This release includes a large refactor of the platforms leading to a simpler and cleaner API, the documentation is now on readthedocs. crytic-compile will try to guess the unit-tests command according to the platform. Additionally, this release allows third-parties tools to get the natpsec documentation.
Added
- Guessing of the unit test commands (https://github.com/crytic/crytic-compile/pull/69)
- Natpsec parsing (https://github.com/crytic/crytic-compile/pull/66)
- Add documentation to https://crytic-compile.readthedocs.io/en/latest/ (https://github.com/crytic/crytic-compile/pull/77)
--etherscan-apikeyflag (https://github.com/crytic/crytic-compile/pull/64)- Use npx for embark/etherlime (https://github.com/crytic/crytic-compile/pull/74)
Changed
- The platform architecture was refactored. All the platforms inherit from
AbstractPlatform. As a result, it will be easier to interact with a custom platform from a script, and the code was cleaned. (https://github.com/crytic/crytic-compile/pull/68) - Truffle: get the compiler version from the json objects. This will speed up all truffle usage by avoiding one call to the platform (https://github.com/crytic/crytic-compile/pull/67)
- Import the output in case of errors (https://github.com/crytic/crytic-compile/issues/45)
- The default filename is now
crytic_compile.config.json(https://github.com/crytic/crytic-compile/pull/76) [BREAKING CHANGE] - Use
deleteCompiledFilesfor etherlime (https://github.com/crytic/crytic-compile/pull/75)
- Python
Published by montyly over 6 years ago
crytic-compile - v0.1.6
0.1.6 - 2019-12-20
This release improves the overall code quality through the use of python type annotation, and a significant increase in the documentation coverage. Additionally, a new flag was added --ignore-compile and we moved from travis to GitHub actions.
Thanks to our external contributor: - @karansinghgit
Added
- Python type annotation (https://github.com/crytic/crytic-compile/pull/54)
--ignore-compileflag, which disables the compilation for any platform (shortcut for--truffle-ignore-compile --embark-ignore-compile ....) (https://github.com/crytic/crytic-compile/pull/55)
Changed
- Increase documentation coverage (https://github.com/crytic/crytic-compile/pull/54)
cryticparser.defaults_flag_in_configis renamedDEFAULTS_FLAG_IN_CONFIG(https://github.com/crytic/crytic-compile/pull/54, breaking change)- Use GitHub action instead of travis (https://github.com/crytic/crytic-compile/pull/57, https://github.com/crytic/crytic-compile/pull/58)
Fixed
- Many pylint issues (https://github.com/crytic/crytic-compile/pull/54)
- Python
Published by montyly over 6 years ago
crytic-compile - v0.1.5
0.1.5 - 2019-11-22
This release adds support for Waffle and bytecode-only contracts from Etherscan. It also fixes minor bugs.
Thanks to our external contributor: - @NicsTr
Added
- Waffle support (https://github.com/crytic/crytic-compile/pull/44)
- Support for bytecode-only contracts from Etherscan (https://github.com/crytic/crytic-compile/pull/52)
Fixed
- Minor standard export bug (https://github.com/crytic/crytic-compile/pull/46)
- Node version in the regression tests (https://github.com/crytic/crytic-compile/pull/48)
- Python
Published by montyly over 6 years ago
crytic-compile - v0.1.4
0.1.4 - 2019-10-04
This release adds the support for Brownie, integrates minor improvements and fixes several bugs.
Thanks to our external contributor: - @arcz
Added
- Brownie support (https://github.com/crytic/crytic-compile/pull/41)
- Solc standard json support (https://github.com/crytic/crytic-compile/pull/29)
--npx-disableflag (https://github.com/crytic/crytic-compile/issues/35)
Changed
- Truffle: naive solc version deduction form the config file (https://github.com/crytic/crytic-compile/pull/38) (speed up truffle platform)
- Dapp: use cache for travis test (https://github.com/crytic/crytic-compile/pull/42)
Fixed
- Allow self-referencing package (https://github.com/crytic/crytic-compile/issues/30)
- Embark: incorrect compiler version (https://github.com/crytic/crytic-compile/commit/c130376eb66b58a4dc876054f33487353604c47a)
- Standard: Incorrect dependencies (https://github.com/crytic/crytic-compile/pull/33)
- Truffle: prevent crash if incorrect json artifacts are present (https://github.com/crytic/crytic-compile/pull/36)
- Python
Published by montyly almost 7 years ago
crytic-compile - v0.1.3
0.1.3 - 2019-08-16
This release adds support for Vyper, an archive mode to simplify codebase export, improves the API, and fixes multiple bugs.
The Vyper support allows Manticore to work natively on Vyper codebase.
Added
- Vyper support (https://github.com/crytic/crytic-compile/pull/25)
- Archive mode (https://github.com/crytic/crytic-compile/pull/24)
- Library detection (https://github.com/crytic/crytic-compile/pull/26)
- Provide source code content (https://github.com/crytic/crytic-compile/commit/d9846f2bb4bd8803c7f920fdbd5c952ea2c6f3b2)
Fixed
- Incorrect solc-remaps argument (https://github.com/crytic/crytic-compile/commit/8f83ddd91d7dee886ff3568566c60050d59b4c73)
- Incorrect solc-args argument (https://github.com/crytic/crytic-compile/commit/5ab85e142a5a086958b84f2258862b7629049f55)
- Python
Published by montyly almost 7 years ago
crytic-compile - 0.1.2 - 2019-06-05
0.1.2 - 2019-06-05
This release extends crytic-compile capacities and fixes a bug related to the file encoding.
Added
- Support for native
solcin truffle (https://github.com/crytic/crytic-compile/pull/20) - Add etherlime> 2.0.0 support (https://github.com/crytic/crytic-compile/issues/19)
- Add support for a list of different
solcversions (https://github.com/crytic/crytic-compile/pull/18)
Changed
- Cli: return -1 if the compilation failed (https://github.com/crytic/crytic-compile/issues/21)
Fixed
- Fix utf8 related bugs (https://github.com/crytic/crytic-compile/commit/95a0b1a6b934d2e1674e6310f7ca71db459cfb42, https://github.com/crytic/crytic-compile/commit/5901c747c53c6546bc73d9dd90caf84b76b76457)
- Python
Published by montyly about 7 years ago
crytic-compile - v0.1.1
0.1.1 - 2019-05-14
This release fixes minor bugs and extends crytic-compile capacities
Added
is_dependencyAPI to determine if a file is from a library (https://github.com/crytic/crytic-compile/commit/3ed5160924d08a4d3c86d7cddf9f1e17dfe51808)- Allow compilation of relative and absolute paths for truffle/embark/dapp https://github.com/crytic/crytic-compile/pull/14
Changed
- Improve support for old solc version (https://github.com/crytic/crytic-compile/commit/5bf2527a2b7e7b90a36a53ac18d439be7067a9bb)
- Improve custom version of truffle (https://github.com/crytic/crytic-compile/commit/dbf3a1686c39a27ba247f9d5592a36b150bf4b38)
- Use
truffle compile --allto prevent incorrect json update (https://github.com/crytic/crytic-compile/commit/e74f659353cd1080c6d035f115b3520b5ce04c67) - Change filename of saved etherscan files https://github.com/crytic/crytic-compile/pull/15
Fixed
- Fix error when compiling empty contract (https://github.com/crytic/crytic-compile/pull/13)
- Fix collision if a filename is named as an etherscan address (https://github.com/crytic/crytic-compile/pull/10)
- Python
Published by montyly about 7 years ago
crytic-compile - v0.1.0
0.1.0 - 2019-04-24
First public release of crytic-compile. The library standardizes the smart contract compilation. It can be used as a command line or through the Python API.
Features
- ASTs
- ABIs
- Init and runtime bytecode
- Init and runtime source map
- Compiler version and optimization
- Standardization of the paths
- Standardization of the compilation options
Platforms supported
- Truffle
- Embark
- Dapp
- Etherlime
- Etherscan
See the Configuration documentation for advanced usages.
Tools integration
- Slither https://github.com/crytic/slither/pull/199
- Echidna https://github.com/crytic/echidna/pull/204
- Manticore https://github.com/trailofbits/manticore/pull/1406
- evm-cfg-builder https://github.com/crytic/evmcfgbuilder/pull/19
- Python
Published by montyly about 7 years ago