Matthias Seitz
7b87c44a54
chore(solc): create artifacts folder on output ( #1772 )
2022-10-07 10:03:38 -07:00
Matthias Seitz
7888aaecde
test: add create_parent_dir_all_test ( #1741 )
2022-09-26 10:33:54 -07:00
Matthias Seitz
6a86d4ff22
chore(clippy): make clippy happy ( #1659 )
2022-09-04 10:57:52 -07:00
Matthias Seitz
2c33acb3ad
feat(solc): resolve absolute imports in libraries ( #1590 )
...
* feat(solc): resolve absolute imports in libraries
* feat(solc): support --include-path
* update test
* only add base path if not empty
* simplify solc config
* include root in include paths
* test: add test for absolute imports
* fix: bad predicate
* cleanup
* fix: use base-path directly
* fix: exclude root from include set
2022-08-12 12:11:08 -07:00
Matthias Seitz
e62c84d650
fix(solc): convert source paths on windows ( #1540 )
...
* fix(solc): convert source paths on windows
* refactor: slash all paths
* fix: use correct import
* feat: slash compiler output
* add util function
* slash by default
* slash artifact id
* typo
* updat cfg
* unify cfg
* update changelog
2022-08-01 09:47:41 -07:00
Matthias Seitz
cca3fcec93
perf(solc): add iterator function for finding sol files ( #1480 )
2022-07-14 10:57:10 -07:00
Matthias Seitz
4047613259
fix(solc): follow symlinks in source files ( #1277 )
2022-05-17 10:26:51 -07:00
Roman Krasiuk
f3699d08bf
fix(solc): add `RuntimeOrHandle` & fix solc blocking installation ( #1260 )
...
* rt wrapper for solc install
* fix
* uncomment feat flag
* feature deps & comment
* async it tests
* use svm::block_install for wasm
* hide rt or handle for wasm
* hide import for wasm
2022-05-14 16:29:45 -07:00
Roman Krasiuk
135bca4680
update & lock solang ( #1256 )
2022-05-13 12:59:47 -07:00
Roman Krasiuk
a656830790
fix(solc): flatten import aliases ( #1192 )
...
* import aliases
* fix solang alias parsing
* fix token replacement
* minor
* remove log
* remove log
* address pr comments
* rollback
2022-05-03 22:33:25 -07:00
Roman Krasiuk
8dd553a5eb
fix extra spacing ( #1149 )
2022-04-16 13:09:00 -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
AlexK
e1d66b8cd3
feat(solc): yul compilation ( #994 )
...
* added yul compilation
* fix doctest
* fixes
* changelog
* cleanup
* fmt
* test update
* lint
* ci fix
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-03-10 10:42:02 -08:00
Matthias Seitz
f2796cc001
test: add curly bracket import test ( #929 )
2022-02-18 19:24:41 +02:00
Matthias Seitz
331caf9418
fix(solc): resolver and remapping auto detection bugs ( #893 )
...
* fix(solc): support single quote imports
* feat: better error message
* fix: nfmt
* feat: handle additional remappings edge case
* fix(solc): treat nested remappings differently depending on src and contracts
* fix test
* chore(clippy): make clippy happy
2022-02-10 19:56:25 +02:00
Matthias Seitz
3fa6653471
fix(solc): support remapping autodetection edge case ( #888 )
...
* fix(solc): support remapping autodetection edge case
* Update ethers-solc/src/remappings.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-09 16:39:38 +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
Matthias Seitz
5da2eb1eb9
fix(solc): duplicate contracts segments ( #832 )
...
* chore: simplify touch
* forge install: ds-test
* fix: fix duplicate contracts segments
* fix: typos
2022-01-27 12:04:14 +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
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
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
2ca8f99e87
feat(solc): add path auto detection ( #761 )
2022-01-05 19:33:56 +02:00
Matthias Seitz
47e188793b
chore(solc): more verbose traces ( #738 )
2021-12-25 18:18:57 +02:00
Matthias Seitz
8db70cead9
fix(solc): handle more remapping edge cases ( #719 )
...
* feat: ancestor finding
* feat: better remapping scanning
* fix(solc): handle more remapping edge cases
* fix: handle deeply nested libs
* chore: cleanup
2021-12-20 22:16:59 +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
0b1f3b1dcf
feat(solc): add support for library linking ( #656 )
...
* feat(solc): add support for library linking
* chore: update changelog
* fixbreaking compactref api
* rm check
* return Bytes instead
* revert changes
* simplify resolve
* test: add lost tests
2021-12-08 02:38:29 +02:00
Matthias Seitz
0464ac9d46
feat(solc): improve solc detection and reduce install effort ( #648 )
2021-12-04 09:13:58 -08:00
Matthias Seitz
133382d034
fix: check all import styles ( #634 )
2021-11-29 23:45:07 +02: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