* feat: verify checksum before project compilation
* fix: in case of a corrupt binary, avoid calling it to check version
* fix: cache releases in the global lazy
* chore: fix linting
* fix: replace a loop with straightforward if
* chore: latest svm
* fix: changes based on review comments
* chore: use published version of svm-rs
* chore: use published version of svm-rs
The parameter is not used in any useful way currently, and it prevents us from using clean installations of SVM
which do not have an instantiated /Users/gakonst/.svm directory
* feat: add artifacts trait
* add artifactsoutput trait
* deprecated old artifactoutput
* feat: better artifacts handling
* force update
* feat: update metadata artifacts
* feat: add default to types
* feat: make useliteralcontent optional
* feat: replace ProjectCompilerOutput with struct
* docs
* add output function
* feat: add Artifact trait for reading Abi/Bytes from an artifact
* feat(solc): replace () for empty artifacts with a conditional check
As discussed with @mattsse the abstraction here might not be super clean, so we should revisit this if we do not like it
* chore: fix doctest
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
When running integration tests, the `cfg(test)` is not triggered, so we
added a `tests` feature in the code. However, we did not include it
in the actual features of the crate, so it was not getting triggered
when the `--all-features` tests were running.
* test: ensure that compilation succeeds
* feat: add helper for parsing version req from a source
* feat: detect the latest compatible solc version for a VersionReq
* default to always enabling svm/async
* test: add project with multiple contract versions
* fix: always serde-default solc gas estimates
* fix: normalize evm version in settings before compiling
* feat: auto-detect version and compile if svm+async are on
* chore: warnings
* test: add a lock to ensure that there are no file conflicts when downloading solc
* test: add tests for finding solc installations
* chore: add features to ethers-rs config
* chore: s/first/latest on finding solc version fn docs
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
* feat: add solc svm find support
* feat: add svm install
* feat: add full feature
* make home non wasm32 only
* simplify features
* make compile with wasm target
* fix: doctests
* feat(ethers-solc): deserialize bytecode as bytes
* feat(ethers-solc): add method to fetch compact contract
* feat(ethers-solc): use Abi type instead of Vec<serde_json::Value>
* test(contract): use new Solc bindings
* test(middleware): use new Solc bindings
* chore: remove solc from ethers-core
* chore: remove concurrent setup code from ethers-core
* feat(ethers-solc): add ArtifactOutput::Nothing as a no-op artifact logger
* feat: add ethers-solc to top level crate
* examples: use new solc building pattern
* chore(solc): re-use opt str impl for error code decoding
* fix abigen example
* chore: fix doctests
* chore: remove setup feature
* fix: decode string to bytes correctly
* chore: clippy lints
* feat: improved solc management
* test: add basic test
* rustfmt
* rustfmt
* feat: add support for lib paths
* test: add dapp testing data
* feat: support dapp style libs
* fix: doc test
* use SOLC_path by default
* docs: import readme
* feat: add diagnostics
* chore: cleanup
* docs: update compile docs
* style: use red for error msg
* style: simplifiy error format
* chore: add newline on successful compiler run log
* feat: allow ignoring error codes so that they do not get logged
* chore: use solc 0.6.6 to match CI Version
* fix: make constructor public in hardhat tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>