Commit Graph

309 Commits

Author SHA1 Message Date
Matthias Seitz 4e1462423f
perf(solc): read artifacts in parallel (#1665) 2022-09-05 09:51:50 -07:00
Matthias Seitz fca8f997fa
fix(solc): via-ir should be optional (#1664) 2022-09-04 14:36:31 -07:00
Matthias Seitz e425b55c92
chore(solc): replace colorized with yansi (#1662) 2022-09-04 11:00:11 -07:00
Matthias Seitz 6a86d4ff22
chore(clippy): make clippy happy (#1659) 2022-09-04 10:57:52 -07:00
Roman Krasiuk 083054d4fe
serialize viaIR setting (#1655) 2022-09-04 10:55:57 -07:00
Matthias Seitz 13a0144aba
fix(solc): use correct model for metadata libraries (#1648)
* chore: add spells output

* fix(solc): use correct model for metadata libraries
2022-08-30 10:36:58 -07:00
Matthias Seitz 0707270a05
fix(solc): consider case sensitive conflicting artifact paths (#1625)
* fix(solc): consider case sensitive conflicting artifact paths

* chore: fmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-08-20 15:35:56 -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 6f1d47f3aa
chore(solc): improve file not found error (#1611) 2022-08-19 08:36:51 -07:00
Matthias Seitz bda5a7657f
fix(solc): ensure base-path is not include-path (#1596) 2022-08-13 16:12:30 -07:00
Matthias Seitz ad256997d6
chore(solc): improve io error for bad symlinks (#1594) 2022-08-13 14:03:48 -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 6f8dc93fc6
feat(solc): add missing helper functions (#1592) 2022-08-11 16:42:52 -07:00
Matthias Seitz 47d3333195
fix(solc): strip .sol suffix (#1583) 2022-08-09 14:49:17 -07:00
Matthias Seitz 2f0dbad1fd
feat(solc): add helper to checkout temp projects (#1581)
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-08-09 09:24:54 -07:00
derch28 64ac7d01ab
solc: fix bug in basic lib and basic contract generation (#1580) 2022-08-09 09:21:52 -07:00
Matthias Seitz 0bf9665d98
chore: update max solc version 0.8.16 (#1578) 2022-08-08 13:01:29 -07:00
Matthias Seitz a4ff90a94a
chore(solc): improve remapping errors (#1570)
* chore(solc): improve remapping errors

* fix: update error names

* chore: rename test
2022-08-05 15:13:54 -07:00
Matthias Seitz 9bf1bcb151
feat(solc): add lib inclusion function (#1547)
* feat(solc): add lib inclusion function

* chore(clippy): make clippy happy

* chore(clippy): make clippy happy
2022-08-02 11:04:14 -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 e817073f8e
refactor(solc): improve error message for unresolved imports (#1545)
* refactor(solc): improve error message for unresolved imports

* chore: rustfmt
2022-08-01 09:46:15 -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
Mark Tyneway 16f686df26
ethers-solc: add immutableReferences output selector (#1523)
* ethers-solc: add immutableReferences output selector

It is a property on the deployed bytecode object
on the compiler output. This is the precursor for
`forge inspect <contract-name> immutableReferences`.

* chore: update changelog
2022-07-28 11:07:24 -07:00
Matthias Seitz 1d40d4e049
fix(solc): make StorageLayout json parsing lossless (#1515) 2022-07-26 08:26:19 -07:00
Matthias Seitz fb8ebd8231
feat(solc): handle conflicting artifacts properly (#1491)
* feat(solc): handle conflicting artifacts properly

* refactor(solc): update write extras function

* chore: update CHANGELOG
2022-07-24 14:39:37 -07:00
Matthias Seitz a600acb4f5
docs: fix broken doc links (#1497) 2022-07-24 03:16:55 +02:00
Paul Razvan Berg d7f656c73a
nit(ethers-solc): set URL to binaries.soliditylang.org (#1490)
* nit(ethers-solc): set URL to binaries.soliditylang.org

* Use hyperlink in ethers-solc/src/compile/mod.rs

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-07-22 22:26:39 +02:00
Matthias Seitz cca3fcec93
perf(solc): add iterator function for finding sol files (#1480) 2022-07-14 10:57:10 -07:00
Matthias Seitz ef8d97e05e
fix(solc): serialize metadata as raw string (#1474) 2022-07-12 11:28:29 -07:00
Matthias Seitz 958e0902a0
chore(deps): bump paths-slash (#1462) 2022-07-06 13:23:33 -07:00
Mark Tyneway 1efdadefc0
ethers-solc: fix build info default directory (#1458)
* ethers-solc: fix build info default directory

This commit fixes the default behavior for the `build-info`
directory when it is unconfigured. It should end up in
the configured artifacts directory, taking into account
whatever the config for the artifacts directory is.
If the build info is specifically configured, then that
will take precendence over the default.

* chore: add changelog entry
2022-07-06 11:44:47 -07:00
Matthias Seitz cf1046e1e1
fix(solc): use path slash for remapping display on windows (#1454) 2022-07-05 08:54:42 -07:00
Matthias Seitz 3c1de64240
refactor(solc): unify find/remove api (#1449)
* refactor(solc): unify find/remove api

* fix: update docs
2022-07-04 11:53:49 -07:00
Mark Tyneway 3bafe5b9e4
feat(ethers-solc): configurable build-info output dir (#1433)
* feat(ethers-solc): configurable build-info output dir

* chore: update changelog
2022-06-30 09:21:46 -07:00
Matthias Seitz 13e67aaa4a
feat(solc): add remove_contract utility function (#1436) 2022-06-30 09:19:55 -07:00
Matthias Seitz 9fc55c0aed
fix(solc): apply base path to model checker contracts (#1437) 2022-06-30 09:18:32 -07:00
0xYYY ca34d0c049
feat(solc): add more contract iter helper functions (#1438) 2022-06-30 09:17:56 -07:00
Matthias Seitz 9892756ee4
feat(solc): include opcodes in output (#1435) 2022-06-30 09:16:47 -07:00
Matthias Seitz f6eaa7e551
fix: remove 0x bytecode object prefix for CompilerOutput (#1424)
* fix: remove 0x bytecode object prefix for CompilerOutput

* chore: rustfmt

* chore(clippy): make clippy happy
2022-06-28 15:17:50 -07:00
Matthias Seitz 3d77f44066
feat(solc): add Contract Info structs (#1407) 2022-06-22 22:37:39 -04:00
Matthias Seitz 2ebdef68d2
feat!(solc): add additional remove functions (#1406) 2022-06-22 13:14:02 -04:00
Matthias Seitz d09845e0c5
chore(solc): improve checksum error message (#1394) 2022-06-20 10:52:16 -07:00
Matthias Seitz cced79f22b
chore: update latest solc release test (#1384) 2022-06-16 09:09:24 -07:00
Matthias Seitz e3389f336a
feat(solc): emit build info files if configured (#1338)
* feat(solc): emit build info files if configured

* feat: add content hashing
2022-06-15 12:44:20 -07:00
Matthias Seitz 980649060a
feat(solc): emit additional raw metadata field (#1365)
* feat(solc): emit additional raw metadata field

* chore: update CHANGELOG

* test: updata test

* fix(solc): proper metadata deserialization
2022-06-10 16:49:19 +03:00
joshieDo ea1a87271c
feat(solc): add script/ to project paths (#1359)
* add script to ProjectPaths

* change default ProjectPaths scripts/ tests/ to script/ test/

* fmt

* chore: ignore ens avatar tests

we know we can decode them properly by this point, they are flaky
because people change their info

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-06-08 05:13:03 -07:00
0xYYY 5ee4092bd3
fix(solc): fix fields for `UserDoc` and `DevDoc` (#1355)
* fix(solc): fix fields for UserDoc and DevDoc

* solc: unify userdoc notice fields
2022-06-08 03:30:41 -07:00
Bjerg f56146025a
feat: source map getters for deployed bytecode (#1348)
* feat: source map getters for deployed bytecode

* fix: borrow checker
2022-06-06 06:42:45 -07:00
Matthias Seitz 85a572c9f6
fix(solc): emit empty vec for empty artifacts (#1345) 2022-06-04 11:38:21 -07:00
Matthias Seitz 030488eca5
fix(solc): invalidate cache on unresolve error (#1337) 2022-06-02 10:31:02 -07:00
Matthias Seitz 598c00e55d
fix(solc): improve remappings autodetection (#1335) 2022-06-01 08:25:27 -07:00
Matthias Seitz 86e5af29e5
fix(solc): remove compile_exact restriction (#1329) 2022-05-31 13:28:27 -07:00
Matthias Seitz 8e3529e9b0
fix(solc): emit empty bytecode objects for standalone sol files (#1327) 2022-05-31 09:29:25 -07:00
Matthias Seitz ac0560c252
fix(solc): improve contract metadata bindings (#1326) 2022-05-31 09:28:23 -07:00
Matthias Seitz 299329d8f7
chore: remove redundant call (#1320) 2022-05-28 12:01:28 -04:00
Matthias Seitz 54f1b9dee8
feat(solc): use relative paths and --base-path option (#1317)
* feat(solc): use relative paths and --base-path option

* chore: update CHANGELOG

* strip lib paths
2022-05-27 13:31:11 -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 f874680404
fix(solc): remove viaIR for older versions (#1304) 2022-05-23 13:08:19 -07:00
Matthias Seitz 0656ffcec3
feat(solc): install solc io reporter in basic reporter (#1295) 2022-05-22 15:20:54 -07:00
Matthias Seitz 75835a9280
feat(solc): emit artifacts for standalone source files (#1296)
* feat(solc): emit artifact files for sources with no contracts

* test(solc): add tests for emitting standalone sources

* chore: update CHANGELOG

* style: check ast is some
2022-05-22 15:19:59 -07:00
Matthias Seitz cffcc7bbec
chore(clippy): fix newest nightly lints (#1298) 2022-05-22 15:18:57 -07:00
Roman Krasiuk 592144e308
fix(solc): flatten random statement order (#1292)
* fix random statement order

* linter
2022-05-20 13:00:36 -07:00
Matthias Seitz 809ccbc9ad
feat(solc): include id in artifact (#1284) 2022-05-19 11:02:31 -07:00
Matthias Seitz fb39d36697
fix(solc): support constructor user docs (#1283) 2022-05-19 11:02:10 -07:00
Matthias Seitz d77f92519c
chore: bump latest solc release (#1282) 2022-05-18 07:49:08 -07:00
Matthias Seitz 4047613259
fix(solc): follow symlinks in source files (#1277) 2022-05-17 10:26:51 -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
Meet Mangukiya d7b9c59f00
fix(ethers-solc/ConfigurableArtifacts): output methodIdentifiers by default (#1266)
Related https://github.com/foundry-rs/foundry/issues/1497
2022-05-16 10:28:53 -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
Leo eb94e53d1f
Add basic solc model checker options (#1258)
* Add basic solc model checker options

* Changelog entry

* review 1

* chore: fmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-05-13 13:29:13 -07:00
Roman Krasiuk 135bca4680
update & lock solang (#1256) 2022-05-13 12:59:47 -07:00
Matthias Seitz f5efbbb86a
feat(solc): add strip and join functions to sources and contracts (#1252) 2022-05-12 14:48:16 -07:00
Matthias Seitz 494af08b85
feat(solc): add source map access functions (#1253) 2022-05-12 14:47:45 -07:00
Bjerg 1e2b02920b
fix: make ast node ids optional (#1254) 2022-05-12 14:47:38 -07:00
Bjerg 0a031417d8
feat: remaining AST nodes (#1201)
* feat: remaining AST nodes

* docs: few rustdocs

* feat: add more node fields

* feat: add more ast nodes

* fix: actually deserialize node type

Note: This breaks `NodeType::Other` :/
2022-05-10 10:43:22 -07:00
Matthias Seitz 44cbbc769a
feat(solc): store source files with their solc version (#1231)
* feat(solc): add versioned sources

* feat(solc): support versioned sources
2022-05-06 11:42:01 -07:00
Matthias Seitz ce3ebaefa0
chore(clippy): make clippy happy (#1230) 2022-05-06 08:15:49 -07:00
Matthias Seitz 2768a6b4d7
feat(solc): add missing options for configurable artifact (#1223) 2022-05-05 07:47:52 -07:00
Matthias Seitz 16e17078fd
fix(solc): respect auto detection in additional compile functions (#1226) 2022-05-05 07:31:52 -07:00
Matthias Seitz bc958792af
perf: short circuit remapping detection on recursive symlink (#1225) 2022-05-05 07:21:51 -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
Matthias Seitz 2304ed53ad
fix(solc): make scoped reporter work in parallel (#1214)
* fix(solc): make scoped reporter work in parallel

* typo
2022-05-03 16:39:36 -07:00
Matthias Seitz c8c81b4905
feat(solc): support logging multiple files via io logger (#1216) 2022-05-03 16:38:17 -07:00
Matthias Seitz e7e5abcd0d
fix(solc): ensure std json sources are unique (#1210) 2022-05-02 22:51:28 -07:00
Matthias Seitz c81254a8b6
test(solc): add another link with remapping test (#1191) 2022-04-28 07:07:08 -07:00
Matthias Seitz a978bc98af
fix(solc): remapping aware libraries (#1190)
* feat(solc): add Libraries type

* feat: add lib applied remappings

* test: add lib linking tests

* Update ethers-solc/src/artifacts/mod.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update ethers-solc/src/artifacts/mod.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update ethers-solc/src/artifacts/mod.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* Update ethers-solc/src/artifacts/mod.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

* chore: rustfmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-04-28 05:18:24 -07:00
Matthias Seitz 5de7086ba7
fix(solc): use correct empty output selection (#1185) 2022-04-27 21:27:54 +03:00
Matthias Seitz 8afd670a65
chore(solc): remove async feature requirement (#1181) 2022-04-27 15:37:40 +03:00
joshieDo a0f41c51af
fix(solc): when compiler-out metadata is empty and there's no `internalType` (#1182)
* add another compiler-out with fixes

* update changelog
2022-04-27 15:37:09 +03: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 8dd72723d1
feat: add minimal ast bindings (#1167)
* feat: add minimal ast bindings

* feat: add recursive nodes
2022-04-23 02:20:46 -07:00
Bjerg 6fcde371a3
feat: function debug data in extra output (#1165)
* feat: support function debug data in output

* chore: `ConfigurableArtifacts::output_selection`

* chore: lint
2022-04-23 01:48:39 -07:00
Matthias Seitz f4eb4029b4
chore(solc): include error code in diagnostic (#1171) 2022-04-23 01:41:13 -07:00
YYY 1cba287193
solc: adjust flatten format (#1172) 2022-04-23 01:40:34 -07:00
Bjerg 8444b8ebbe
feat: abi as an extra file (#1166) 2022-04-23 01:40:25 -07:00
Matthias Seitz ac3e12fe8a
feat: add standardjson compiler input type (#1169) 2022-04-23 01:39:31 -07:00
Matthias Seitz 92b1ad8fb1
feat: add debug info bindings (#1161) 2022-04-21 19:29:21 +02:00
Roman Krasiuk 8dd553a5eb
fix extra spacing (#1149) 2022-04-16 13:09:00 -07: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 3d4356f531
fix(solc): strip root path from remappings and sources for standard json (#1136)
* fix(solc): strip root path from remappings and sources for standard json input

* fix: use consistent contract for tests
2022-04-11 13:36:06 -07:00