Commit Graph

280 Commits

Author SHA1 Message Date
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
James Prestwich 9206efa46c
fixes: correct etherscan url address, remove double quotes in solc error (#1130) 2022-04-10 09:04:43 -07:00
Matthias Seitz 876a19d636
chore: make ipfs the default bytecodehash again (#1128) 2022-04-09 15:11:46 -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 69bf6ddd0c
fix: only notify about unresolved import once (#1125) 2022-04-08 07:37:43 -07:00
pyk 77931d4c63
feat(solc): Strip experimental pragma from all imported contracts (#1116)
* Parse experimental pragma

* add integration test for experimental pragma

* Fix formatting
2022-04-07 03:12:25 -07:00
Matthias Seitz 23e45e8531
fix: sanitize compilerinput based on version (#1111)
* fix: sanitize compilerinput based on version

* test: add compiler test

* chore: remove unused warnings

* style: make once lazy
2022-04-05 12:00:04 -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 06df7f41cc
feat(solc): add bytecode hash variants (#1104)
* feat(solc): add bytecode hash variants

* make None the Bytecodehash default
2022-04-04 06:57:20 -07:00
Connor Mendenhall 18dda9aa83
feat(solc): pass compile time to reporter (#1098)
* Pass compile time to solc_success/on_solc_success

* Update changelog
2022-04-02 14:37:38 -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 110d1beeed
chore: add some solc checksum traces (#1088)
* chore: add some solc checksum traces

* chore: use qualified path
2022-03-28 16:08:45 -07:00
Bjerg 7842a70803
feat: add `ArtifactId::identifier()` (#1087)
* feat: add `ArtifactId::identifier()`

* docs: note that `slug` is not unique

* chore: remove --all from clippy

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-03-28 09:42:48 -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
Bjerg 919a570237
feat: ability to get artifacts + sources (#1080) 2022-03-27 07:44:23 -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 1788f05ab0
feat(solc): use svm-builds instead of fetching http releases list (#1063)
* feat(solc): use svm-builds instead of fetching http releases list

* use correct features
2022-03-19 07:52:09 -07:00
Matthias Seitz b6b5b09f4a
feat(abigen): add abi object deserializer and generate deploy function (#1030)
* feat(abigen): add abi object deserializer

* chore: rustfmt

* refactor: use enum type for deser abi

* refactor: use enum types for deser

* chore: rustfmt

* feat: add bytecode field

* feat: generate bytecode static

* feat: generate deployment function

* refactor: deploy function

* feat: add contract deployer type

* feat: make 0x prefix optional

* feat: add deploy function

* feat: add deploy example

* chore: update CHANGELOG

* chore(clippy): make clippy happy
2022-03-18 21:23:33 -07:00
Matthias Seitz d1f46f4c2c
feat(solc): more artifact trait functions (#1057)
* style: split artifacts mod and create contract and bytecode mods

* chore: rustfmt

* feat(solc): more artifact trait functions

* feat: add missing impl
2022-03-17 12:48:55 -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 01d4fceaee
feat(solc): support for solc io json output (#1043)
* feat(solc): support for solc io json output

* chore: wording
2022-03-17 04:37:00 -07:00
Matthias Seitz b579dc183a
feat(solc): add viaIR option (#1049) 2022-03-17 04:24:50 -07:00
Matthias Seitz 1e1aba19b1
fix(solc): only modify files that are required to compile the project (#1050) 2022-03-17 03:48:01 -07:00
Matthias Seitz 5314c4e618
fix(solc): use lowercase when comparing paths (#1041)
* fix(solc): use lowercase when comparing paths

* trace keys

* test: add lowercase contract test
2022-03-17 01:27:03 -07:00
Matthias Seitz a2960a847d
chore(solc): new 0.8.13 release (#1045) 2022-03-17 01:26:44 -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 49ed78d685
feat(solc): add mock project generator (#1011)
* feat(solc): add mock project generator

* feat: mock project

* refactor: rename to mock

* feat(solc): mock project support

* chore: export helper macros

* fix(deps): add required features

* style: allow unused
2022-03-15 05:27:49 -07:00
Matthias Seitz fac944be00
fix: don't evict cache entries with no artifacts (#1035) 2022-03-15 03:32:03 -07:00