Matthias Seitz
d073930fa3
chore(solc): add more cache traces ( #2248 )
...
* chore(solc): add more cache traces
* simplify bools
2023-03-13 12:43:53 -07:00
DaniPopes
203e350940
docs: fix broken links, update documentation ( #2203 )
...
* docs: fix broken links
* docs: update READMEs and module-level documentation
2023-02-27 13:03:17 -07:00
Matthias Seitz
4e1462423f
perf(solc): read artifacts in parallel ( #1665 )
2022-09-05 09:51:50 -07:00
Matthias Seitz
6a86d4ff22
chore(clippy): make clippy happy ( #1659 )
2022-09-04 10:57:52 -07:00
Matthias Seitz
ff754263a3
fix(solc): use cache context when determining artifact files ( #1621 )
...
* fix(solc): use cache context when determining artifact files
* update changelog
2022-08-19 14:33:28 -07:00
Matthias Seitz
c75608eda1
ci: rm pinned nightly ( #1541 )
...
* ci: rm pinned nightly
* chore(clippy): make clippy happy
2022-07-31 19:00:31 -07:00
Matthias Seitz
030488eca5
fix(solc): invalidate cache on unresolve error ( #1337 )
2022-06-02 10:31:02 -07:00
Matthias Seitz
95862bc62c
feat(solc): make cache entries relative to root dir ( #1307 )
...
* feat(solc): make cache entries relative to root dir
* chore: update CHANGELOG
2022-05-24 07:51:09 -07:00
Matthias Seitz
1271308e06
fix(solc): purge obsolete cached artifacts ( #1273 )
...
* fix(solc): purge obsolete cached artifacts
* fix add cfg
2022-05-16 16:48:47 -07:00
Matthias Seitz
86908bc533
fix(solc): only write cache file if build was successful ( #1177 )
2022-04-27 15:29:09 +03:00
Matthias Seitz
19a2ecd58d
fix(solc): compute content hashes first ( #1142 )
...
* chore: add tracing for missing content hash
* fix: compute content hashes first
2022-04-13 12:59:43 -07:00
Matthias Seitz
38b984c353
fix(solc): extend sparse mode to linked references ( #1107 )
...
* refactor: move sol parsing to separate mod
* refactor: make parse a struct function
* feat: add inline function
* chore: rename sparse filter
* feat: move data to edges type
* refactor: supply graph in compile function
* feat: resolve link references
* test: add sparse mode test
2022-04-04 15:50:10 -07:00
Matthias Seitz
26b6472f9b
feat(solc): include project paths in cache ( #1097 )
...
* feat: add project paths struct
* feat: add project paths to cache file
* chore: bump format version
* update cache creation api
* feat: add cache condition
2022-03-30 12:14:29 -07:00
Matthias Seitz
916e9a7334
chore(clippy): add some deny lints ( #1064 )
...
* feat: add deny lints
* trim ethers core
* trim ethers eip712
* deny ethers contract derive
* deny ethers contract abigen
* deny ethers contract
* deny ethers providers
* chore: add denies and fix unused deps
* doc: fix links
* fix: wasm build
* doc: fix links
* doc: fix links
* doc: fix inline doc links
* docs: fix intra doc links
2022-03-19 10:05:39 -07:00
Matthias Seitz
65b1751cf8
style: split artifacts mod and create contract and bytecode mods ( #1052 )
...
* style: split artifacts mod and create contract and bytecode mods
* chore: rustfmt
2022-03-17 07:51:43 -07:00
Matthias Seitz
2d75f9f1e7
feat(solc): support customized output selection pruning ( #1039 )
...
* feat(solc): support customized output selection pruning
* chore(clippy): make clippy happy
2022-03-16 07:36:35 -07:00
Matthias Seitz
ff29e96380
feat(solc): optimize output selection in cache mode ( #1029 )
...
* feat(solc): add mock project generator
* feat: mock project
* refactor: rename to mock
* feat(solc): mock project support
* refactor: move output selection to new type
* refactor: revert filter implementation
* feat: filter sources
* feat: support filtering
* refactor: update function signatures
* feat: optimize output
* chore: export helper macros
* fix(deps): add required features
* style: allow unused
* feat: also generate artifactless files
* feat: add create function
* chore(clippy): make clippy happy
* feat: add helper function
* test: add state machine test
* test: add more mock tests
2022-03-15 08:58:33 -07:00
Matthias Seitz
fac944be00
fix: don't evict cache entries with no artifacts ( #1035 )
2022-03-15 03:32:03 -07:00
Matthias Seitz
6b0a1f7911
fix(solc): skip artifacts check for files without artifacts ( #1018 )
2022-03-14 00:36:26 +02:00
Matthias Seitz
e5dbeb6b28
revert: use simple change filter again ( #1008 )
...
* chore: rollback dirty detection
* docs: caching docs
2022-03-11 08:43:48 -08:00
Matthias Seitz
0c42c23746
fix(solc): fix cache and allowed paths bug ( #998 )
...
* fix: don't emit on error
* fix: allowed-paths condition
* fix(solc): cache and allowed paths bug
2022-03-09 10:52:40 -08:00
Matthias Seitz
cc5c67ed0a
chore: fix all warnings ( #890 )
2022-02-10 08:54:39 +02:00
Matthias Seitz
7463e2da11
feat(solc): compiler pipeline improvements ( #866 )
...
* feat(solc): try to unify solc versions
* chore: some tracing
* feat: add compile exact
2022-02-05 16:07:37 +02:00
Matthias Seitz
b295d73c4a
refactor(solc): rewrite compiler passes and cache change detection ( #802 )
...
* chore: clippy
* refactor: rewrite compiler passes and cache
* feat: more work on compile pipeline
* feat: add cache constructor
* add artifact filtering
* fine tune api
* feat: prepare version integration
* docs: more docs
* feat: add cacheentry2
* replace cacheentry types
* integrate new api
* docs: more docs
* feat: implement new output handler
* feat: integrate cached files in new compile pipeline
* refactor: more cache refactor
* docs: more docs
* feat: add source name mapping
* feat: implement new parallel solc
* refactor: do a little cleanup
* refactor: even more cleanup
* even more cleanup
* chore: make it compile
* chore: make it compile with all features
* chore: clippy fix
* feat: integrate new compiler pipeline
* docs: more docs
* refactor: move stuff around
* refactor: start deprecating output type
* chore: make it compile again
* chore(deps): bump solc version 0.2.0
* feat: unify output types
* cargo fix
* refactor: add contracts wrapper
* chore: replace ProjectCompileOutput
* docs: add more docs
* feat: add offline mode
* feat: more artifact helpers
* chore: cleanup cache
* chore: streamline types
* fix: better artifacts mapping
* chore: some cleanup
* chore: change artifact
* chore: add configure solc fn
* feat: add artifact reading
* feat: implement retain and extend
* feat: add cache extending
* feat: write to disk
* chore: make clippy happy
* feat: implement path mapping
* chore: nits
* feat: introduce states
* feat: add compiler state machine
* chore: move cache types to cache mod
* chore: make clippy happy
* feat: add debug derives
* fix: use resolved import source unit names
* fix: failing tests
* test: test multiple libs properly
* chore: make clippy happy
* chore: update CHANGELOG
* fix: doc tests
* fix: set offline mode correctly
* chore: make it compile again
* Update ethers-solc/src/artifacts.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* feat: find remappings by default
* typos
* add eth_syncing RPC (#848 )
* add eth_syncing RPC
* Changelo updated
* small comments
* Intermediate SyncingStatus
* fix(core): adjust Ganache for new cli output (#851 )
* fix: review comments
* fix: cache relative path bug
* chore: add cache example
* chore: use absolute paths
* fix: remove overwritten files from cache
* fix: rustfmt
* chore: more helper functions
* chore: export AggregatedOutput
* feat: implement helper functions
* feat: even more helpers
* fix: failing doc tests
* refactor: remove source name map tracking
* fix: determine artifacts in ephemeral mode
* refactor: allowed paths should not fail
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: rakita <rakita@users.noreply.github.com>
Co-authored-by: wolflo <33909953+wolflo@users.noreply.github.com>
2022-02-04 18:20:24 +02:00
Georgios Konstantopoulos
0c949f65bb
chore: lints
2022-01-29 21:19:49 +02:00
Matthias Seitz
6d7875a44c
chore(solc): add more convenience functions ( #810 )
...
* chore(solc): simplify solcconfig
* chore: more helper functions
* chore: copy all
* fix: add trailing slash
* chore: make clippy happy
2022-01-20 21:41:19 +02:00
Roman Krasiuk
afcba9567f
feat(solc): flatten ( #774 )
...
* solc flatten implementation
* upd changelog
* upd docs
* revamp flattening
* clippy
* use resolve_import method
* extract recursive flatenning into a separate func
* change content iteration for flatten
* remove redundant result
* clean up solimport
* add comment to project.flatten
* add support for ver pragma loc
* address pr comments
* uncomment the test
* improve test cov
* add handling of sdpx license identifiers
* change arg name
* match license only at the beginning of the file
* add comments
* lint
* morrre comments
2022-01-17 14:27:40 +02:00
Matthias Seitz
4d2cd83698
fix(solc): invalid cached artifacts ( #783 )
...
* add some docs
* ignore malformed cache file
* more artifacts fixes
* fix(solc): remove quotation marks from tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-01-11 12:02:57 +02:00
Matthias Seitz
e0b6f65359
refactor(solc): more temp project features ( #778 )
...
* chore: replace tempdir with tempfile crate
* update tempproject constructors
* make clippy happy
* add default impl
2022-01-10 21:43:34 +02:00
Matthias Seitz
47e188793b
chore(solc): more verbose traces ( #738 )
2021-12-25 18:18:57 +02:00
Matthias Seitz
e24117a1e1
chore(clippy): make clippy happy ( #705 )
2021-12-19 06:28:38 +02:00
Matthias Seitz
4bb2636b77
fix: remove assert to check cache format ( #689 )
...
* fix: remove assert
* rustmft
2021-12-13 16:37:35 -07:00
Matthias Seitz
5dec757493
refactor(solc): add new io error with path info ( #680 )
...
* refactor(solc): add new io error with path info
* chore: rustfmt
2021-12-12 10:10:40 -07:00
Matthias Seitz
275f7179bf
feat(solc): add hardhat artifact support ( #677 )
...
* feat: add hardhat artifact support
* test: add hh test
* feat: add hh fallback artifact handler
* add format detection
* chore: update changelog
* chore: typos
2021-12-11 19:39:39 +02:00
Matthias Seitz
a9a47a4cd6
feat(solc): add support for compiling solc in parallel ( #652 )
...
* docs: more docs and tracing
* feat: add compile many
* feat: add compile many
* fix: make fields optional
* chore: add num_cpus and criterion
* add compile benchmark
* feat: add job option
* feat: add parallel compilation support
* use ful utilization
* chore: move pathmap to cache
* fix: async write all
* chore: clean up
2021-12-07 01:02:13 +02:00
Matthias Seitz
f10b47e600
docs: more docs and tracing ( #651 )
2021-12-05 15:27:37 +02:00
Georgios Konstantopoulos
d06bfdc15c
solc: add tracing ( #628 )
...
* feat(solc): add tracing
* chore: apply suggestions from code review
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
* chore: fix compilation error
* chore: adjust log
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2021-11-28 19:14:34 +02:00
korboismoe
41f8e295a0
fix: remove changed artifacts from the cache ( #630 )
...
Duplicate artifacts will be returned if there is a
changed artifact that was already present in the
cache
2021-11-28 14:33:24 +02:00
Georgios Konstantopoulos
7bb90935ed
fix(solc): do not overwrite existing cache ( #629 )
...
previously if 1 file changed, it'd overwrite the existing cache on disk with just
that 1 changed file. this change reads the cache from disk and merges it with the new checksums
2021-11-26 21:16:09 +02:00
Matthias Seitz
1da62d65d2
refactor!: make artifactoutput a trait ( #579 )
...
* 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>
2021-11-16 01:29:06 +02:00
Georgios Konstantopoulos
46bedb3282
feat: only compile changed files ( #544 )
2021-10-30 21:27:17 +03:00
Matthias Seitz
5c6ce6b0a1
feat: improved solc management ( #539 )
...
* 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>
2021-10-30 20:59:44 +03:00
Matthias Seitz
dcf20022c6
chore: add rustfmt.toml ( #537 )
...
* chore: add rustfmt.toml
* rustfmt
* chore: Update readme with fmt info
* ci: update ci
* chore: rustfmt
* rustfmt
* rustfmt
* ci: install libudev
* chore(clippy): make clippy happy
* chore(clippy): make clippy happy
* revert ci
* ci: install libudev
2021-10-29 14:29:35 +02:00
Matthias Seitz
241491a237
feat: add ethers-solc crate ( #522 )
...
* feat: initial draft dedicated solc crate
* feat: add sources helper
* feat: more utility functions
* chore: more ergonomics
* chore: more ergonomics
* rustfmt
* feat: add solc error
* feat: replace eyre with thiserror
* fix: use serde default
* fix: compliant semver
* docs: fix comments
2021-10-26 14:28:10 +03:00