James Prestwich
9206efa46c
fixes: correct etherscan url address, remove double quotes in solc error ( #1130 )
2022-04-10 09:04:43 -07:00
pyk
247f08f1a9
feat(solc): Add standard-json-input ( #1126 )
...
* Add standard-json-input
* remove debugging
* Update the error message
* Remove unnecessary changes
* Refactor
* make clippy happy
* Return CompilerInput instead of String
2022-04-08 17:18:39 -07:00
Matthias Seitz
2689981782
feat(solc): include source file ast in artifact ( #1081 )
...
* refactor: extend artifactsoutput interface
* add source file to trait
* fix: make it compile again
2022-03-27 09:56:33 -07:00
Matthias Seitz
95a384b121
fix(solc): bundle new svm-solc feature ( #1071 )
...
* fix(solc): bundle new svm-solc feature
* chore: update CHANGELOG
* fix: enabled new feature in full
2022-03-21 01:58:56 -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
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
3effda2804
feat(solc): add helper functions to compile standalone files ( #931 )
2022-02-19 15:56:34 +02:00
Matthias Seitz
7d2d96d761
feat(solc): add tree printer implementation ( #933 )
...
* feat(solc): add tree printer implementation
* test: feature gate windows
* typos
2022-02-19 15:55:21 +02:00
Matthias Seitz
19d2fd1155
feat(solc): add configurable Artifact type ( #907 )
...
* refactor: make artifacts a sub mod
* feat: more options for output selection
* feat(solc): make ArtifactOutput struct functions
* fix: migrate all features
* feat: add configurable artifacts type
* refactor: move configurable to separate file
* feat: impl ArtifactOutput
* refactor: write extras
* simplify write extra
* feat: more helper functions
* feat: implement delegate
* fix: failing doc test
* fix: rustfmt
* chore: update CHANGELOG
* feat: add helper functions
* refactor: remove flatten
* feat: add link function
* feat: replace default type
* fix: doc tests
* feat: more utility functions
* fix: failing tests
* chore: rename types
* chore: bump ethers-solc 0.3.0
* fix: set metadata file extension properly
2022-02-17 17:31:35 +02:00
Matthias Seitz
cc5c67ed0a
chore: fix all warnings ( #890 )
2022-02-10 08:54:39 +02:00
Matthias Seitz
36c3adeec9
feat(solc): add Reporter type ( #883 )
...
* feat(solc): add Reporter type
* chore(clippy): make clippy happy
2022-02-09 01:14:57 +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
brockelmore
24c39bd32a
write `CompactContractBytecode` instead of `CompactContract` ( #833 )
...
* write `CompactContractBytecode` instead of `CompactContract`
* chore: fix doctest
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-01-28 09:23:28 +02:00
Matthias Seitz
f9fadf06c4
chore(solc): also rm cache dir if empty ( #822 )
2022-01-21 03:51:41 +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
Georgios Konstantopoulos
141e2f1807
Revert "Remove entire cache folder, not just contents ( #820 )"
...
This reverts commit 2945104d39
.
2022-01-20 15:49:59 +02:00
Bjerg
2945104d39
Remove entire cache folder, not just contents ( #820 )
2022-01-20 11:01:35 +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
Georgios Konstantopoulos
270fe46d37
feat(solc): expose svm_compile
2022-01-08 22:51:18 +02:00
Bjerg
48bd3f13e2
Ignore SPDX and contract size for tests ( #775 )
...
* Filter for unignored warnings
* Pass compiler output to diagnostics
* Ignore SPDX and contract size warnings for tests
* Fix lint
* Skip lookups if error is not a warning
2022-01-08 22:26:23 +02:00
Bjerg
86044bc0c3
Add `ProjectCompileOutput::has_compiler_warnings` ( #773 )
...
* Add `ProjectCompileOutput::has_compiler_warnings`
* Nits
2022-01-07 17:29:19 +02:00
Matthias Seitz
88b342287a
feat(solc): add source map parser ( #658 )
...
* feat(solc): add source map parser
* merge branch master
* make some types private
* chore: make id an option
* fix: support negative field values
* check parsed element
2022-01-06 13:54:46 +02:00
Matthias Seitz
fc9f66c916
feat(solc): add dependency graph implementation ( #750 )
...
* docs: document public functions
* add mod
* feat(solc): add dependency graph
* detect version
* add into sources
* fix: canonicalize temp paths
* test: add graph tests
* chore(clippy): make clippy happy
* more wasm compat
* chore: update changelog
* wasm compat
* unused
* fix get source fill function
* Update ethers-solc/src/resolver.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* perf: use solang_parser to trim down deps
* resolve graph in compile
* refactor add node function
* docs: clear up comment
* docs: typos
* fix: make all versions unique based on their major minor path version
* prepare test
* docs: add more resolve docs
* test: add lib change detection test
* test: update tests
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-01-05 23:46:57 +02:00
Matthias Seitz
47e188793b
chore(solc): more verbose traces ( #738 )
2021-12-25 18:18:57 +02:00
joshieDo
ade8cd9553
add fn settings on CompilerInput ( #729 )
2021-12-23 17:03:37 +02:00
Georgios Konstantopoulos
8d95f3bf33
fix: use lib for parsing paths correctly in windows ( #712 )
2021-12-19 22:03:16 +02:00
Matthias Seitz
e24117a1e1
chore(clippy): make clippy happy ( #705 )
2021-12-19 06:28:38 +02:00
Matthias Seitz
4c677933ce
feat(solc): add workspace utils ( #678 )
...
* feat(solc): add workspace mocking
* test: add more tests
* test: update tests
* rename to project-utils
* add fs extra error
* clean up functions
* simplify path construction
2021-12-13 01:39:28 +02: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
Rohit Narurkar
991cda3f33
fix: naming and default impl ( #665 )
2021-12-10 10:22:25 -07: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
Matthias Seitz
23c356ce38
feat(solc): add clean up function ( #649 )
2021-12-04 19:27:30 +02:00
Matthias Seitz
0464ac9d46
feat(solc): improve solc detection and reduce install effort ( #648 )
2021-12-04 09:13:58 -08: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
Georgios Konstantopoulos
e1476a1156
fix: remove redundant cache read ( #627 )
2021-11-26 19:02:18 +02:00
korboismoe
d77068e26a
fix: pass partial artifact cache to project compiler output ( #623 )
...
* fix: pass partial artifact cache to project compiler output
If the cache contains some artifacts but not all, the
project compiler output now contains the cached artifacts
in addition to the newly compiled artifacts.
* chore: update changelog
* fix: remove missing cache files before getting changed files
* fix: propagate error if reading cached artifacts fails
2021-11-26 18:49:19 +02:00
Rohit Narurkar
86522e2b9e
feat: verify checksum before project compilation ( #614 )
...
* 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
2021-11-26 12:30:14 +02:00
Matthias Seitz
cd2c9f6dd1
feat: add cargo change detection support ( #599 )
...
* feat: add cargo change detection support
* chore: allow clippy main
* chore: remove doctest main
2021-11-20 16:47:36 +02:00
Georgios Konstantopoulos
8a3ee415b7
feat(solc): allow specifying solc version even if auto-detect enabled ( #594 )
2021-11-18 15:10:41 +02:00
Georgios Konstantopoulos
b3fed152a4
fix(solc): do not unnecessarily query for solc version ( #586 )
...
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
2021-11-17 01:25:39 +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