* Generate schema for the metadata file
* Groundwork for dyn traits
* Make the ethereum node trait object compatible
* Allow for compilers to be created in the dyn trait
* Add more identifiers to the platform
* Implement the dyn compiler trait for compilers
* Support the dyn compiler in the builder pattern
* Introduce a geth platform
* Provide a common node implementation for substrate chains
* Add all of the platforms that we support
* Add a way to convert platform identifier into a platform
* Replace infra with the dyn infra
* Remoe all references to leader and follower
* Remove the old traits
* Remove an un-needed dependency
* Update the default values for the platforms
* Final set of renames
* Update the default values of the cli
* Update tests
* Add leader and follower node assignment to test
* Update the compilers interface
* Fix Cargo machete
* Add reporting back to the compilers
* Remove the static testing target from the report
* Uncomment instrument macro
* Switch to a for loop when reporting cases
* Update compilers to use interior caching
* Update tests stream func
* Fix tests
* Fix the OS FD error
* Cache the compiler versions
* Allow for auto display impl in declare wrapper type macro
* Better logging and fix concurrency issues
* Fix tests
* Format
* Make the code even more concurrent
* Parallelize over cases
* Rename the state and driver
* Parallelize execution
* Update the default config of the tool
* Make codebase async
* Fix machete
* Fix tests & clear node directories before startup
* Cleanup the cleanup logic
* Rename geth node
* Allow for downloader to use version requirements.
We will soon add support for the compiler version requirement from the
metadata files to be honored. The compiler version is specified in the
solc modes section of the file and its specified as a `VersionReq` and
not as a version.
Therefore, we need to have the ability to honor this version requirement
and find the best version that satisfies the requirement.
* Request `VersionOrRequirement` in compiler interface
* Honor the compiler version requirement in metadata
This commit honors the compiler version requirement listed in the solc
modes of the metadata file. If this version requirement is provided then
it overrides what was passed in the CLI. Otherwise, the CLI version will
be used.
* Make compiler IO completely generic.
Before this commit, the types that were used for the compiler input and
output were the resolc compiler types which was a leaky abstraction as
we have traits to abstract the compilers away but we expose their
internal types out to other crates.
This commit did the following:
1. Made the compiler IO types fully generic so that all of the logic for
constructing the map of compiled contracts is all done by the
compiler implementation and not by the consuming code.
2. Changed the input types used for Solc to be the forge standard JSON
types for Solc instead of resolc.
* Fix machete
* Add resolc to CI
* Add resolc to CI
* Add resolc to CI
* Add resolc to CI