crytic-compile
crytic-compile copied to clipboard
Abstraction layer for smart contract build systems
I have only tested this using hardhat. How to reproduce: * Set up a working echidna fuzzing campaign * Add a syntax error to one of the contracts. Ex. `echo...
If a `KeyError` is raised in `get_line_from_offset`, there is a likelihood that the compilation artifacts are not properly cleaned, we could recommend, based on the platform to do `hardhat clean`...
Currently the compilation warnings are not saved by crytic-compile, and they are just being emitted through log: https://github.com/crytic/crytic-compile/blob/35d95d6cb7716290ff4bf21ba9dcc8e582c6ee04/crytic_compile/platform/solc.py#L534-L541 https://github.com/crytic/crytic-compile/blob/35d95d6cb7716290ff4bf21ba9dcc8e582c6ee04/crytic_compile/platform/truffle.py#L178-L189 etc.. We could save the log, and make them available for...
A lot of users issues are related to errors like `crytic_compile.platform.exceptions.InvalidCompilation: Unknown file: @openzeppelin/...` Which is usually a sign that `npm install`/`yarn install` had an issue, or the files where...
Currently, when executing some tools via `subprocess.Popen`, the error message that shows up when the tool (e.g. npx) is not available is not very user friendly -- e.g. see crytic/slither#1103...
Since we moved to github action for the CI, we should now add Windows tests to our CI It would catch bugs like https://github.com/crytic/crytic-compile/pull/191
If the etherscan download results in a multi-file response then currently crytic-compile will compile them all, and download and save them all. This will then result in slither also analyzing...
The `CryticCompile.filename_looup` crashes when resolving import directives. Reproducer: [test-filename-lookup-error.zip](https://github.com/crytic/crytic-compile/files/8182615/test-filename-lookup-error.zip) Contents: ``` . └── subdir ├── contracts │ ├── Context.sol │ └── Test.sol └── truffle-config.js ``` Since `filename_looup` is used only...
I'm trying to use Slither to analyze a SimpleStorage.sol contract with OZ library (see code below), but unable to do so. I'm new to this web3 space and I've looking...
Using crytic-compile with of contract that requires to link libraries, like this one: ```solidity library Test { struct Storage{ bool flag; } function set(Storage storage st) public{ st.flag = true;...