Commit Graph

271 Commits

Author SHA1 Message Date
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
Matthias Seitz 24236997a9
refactor(solc): bump svm-rs and use returned install path (#1034)
* chore(deps): bump svm-rs

* refactor: use solc install path directly

* style: use if elese over option
2022-03-15 02:16:22 -07:00
Matthias Seitz f6d123241e
feat: add solc install error report (#1027) 2022-03-14 04:47:11 -07:00
Matthias Seitz 26de793698
chore(solc): provide remappings on unresolved import message (#1026) 2022-03-14 13:29:00 +02: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 1b1cde0ee3
fix(solc): use correct types (#1004) 2022-03-10 10:46:47 -08: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 b7f278faf4
feat(solc): remapping helper functions (#1003) 2022-03-10 06:40:58 -08:00
Matthias Seitz f55f02476c
fix(solc): respect offline mode (#1002) 2022-03-10 06:40:35 -08:00