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
Matthias Seitz
1ac0b49ac3
feat(solc): add scoped reporter ( #1000 )
...
* feat(solc): add scoped reporter
* fix: race in tests
2022-03-09 12:00:16 -08: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
e1ec4b5ecd
fix(solc): remove unnecessary indent ( #999 )
...
* fix(solc): remove unnecessary indent
* Update ethers-solc/src/resolver/tree.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-03-09 09:44:02 -08:00
Matthias Seitz
fab30887a2
test: add unique flatten test ( #995 )
2022-03-08 06:46:04 -08:00
Georgios Konstantopoulos
de275db56a
fix: bump solang and adjust breaking change
...
fixes https://github.com/gakonst/ethers-rs/issues/985
2022-03-03 16:47:09 -08:00
Georgios Konstantopoulos
556367ecbd
chore(solc): make on_solc_success a no-op to avoid duplicate logs
2022-03-01 14:24:08 +02:00
Matthias Seitz
601cb1b75e
test(solc): add capture test for curly bracket imports ( #956 )
...
* test(solc): add capture test for curly bracket imports
* chore: rustfmt
2022-02-24 18:43:35 +02:00
Matthias Seitz
184cffaca3
fix(abigen/solc): make abigen work with ethers-solc and abiencoderv2 ( #952 )
...
* feat(solc): add lossless abi
* fix(abigen): make abigen work with ethers-solc and abiencoderv2
* chore: update CHANGELOG
2022-02-23 12:46:52 +02:00
Matthias Seitz
60515d9404
fix(solc): consistent serde for linked and unlinked bytecode ( #948 )
2022-02-22 16:23:23 +02:00
Roman Krasiuk
1f822e47e6
fix(solc): flatten import loc ( #946 )
...
* protograva test-data
* revert import parsing change
* compare flatten results against full strings
2022-02-22 16:22:24 +02: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
5b2c1fa6f8
fix(solc): mimic hardhat import resolver when in node_modules ( #928 )
...
* fix: treat node_modules differently
* test: update hardhat test
* chore(clippy): make clippy happy
2022-02-18 19:54:23 +02:00
Matthias Seitz
f2796cc001
test: add curly bracket import test ( #929 )
2022-02-18 19:24:41 +02:00
Matthias Seitz
28df48b530
fix(solc): off by one error finding version intersection ( #930 )
...
* fix: off by one error while finding intersection
* test: enable test
2022-02-18 19:24:02 +02:00
Matthew Wiriyathananon-Smith
d8e5e536cc
Artifact ids ( #882 )
...
* Added ArtifactId
* Added ArtifactId impl and updated into_artifacts to return id
* Formatting
* Fixed warning
* Added versioned slug method to ArtifactId
* Added Ord/Eq derives to ArtifactId
* Fixed broken tests and doc tests
* Added failing test for versioned link references
* chore: ignore linkrefs test - to be fixed in followup
* test(solc): remove artifact json
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-18 17:48:56 +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
Georgios Konstantopoulos
f97a8ca541
fix(abigen): do not panic when run on non-cargo projects ( #918 )
...
* fix(abigen): do not panic when run on non-cargo projects
* chore: bump solidity test to 0.8.12
2022-02-16 17:46:25 +02:00
Mark Tyneway
faba6e014d
feat: add getter to `ProjectCompileOutput` ( #908 )
...
* feat: add getter to `ProjectCompileOutput`
Add a function `compiled_contracts_by_compiler_version`
to the `ProjectCompileOutput` that returns a `BTreeMap`
that maps the compiler version to a vector of the contract
names and contract structs.
* changelog: update
* chore(solc): remove &mut
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-13 21:47:00 +02:00
Matthias Seitz
27a4454ac0
feat(solc): report on unresolved imports ( #905 )
...
* chore: fix unused import warning
* feat: add additional report message
2022-02-13 01:05:43 +02:00
Matthias Seitz
c8d8b66d0a
feat(solc): use svm blocking feature ( #904 )
...
* feat(solc): use svm blocking feature
* chore: bump ethers
* fix: enable svm blocking feature
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-12 18:40:09 +02:00
Matthias Seitz
cdaac16f0a
feat(solc): more options for output selection ( #898 )
...
* refactor: make artifacts a sub mod
* feat: more options for output selection
* chore: use tostring instead
2022-02-11 17:46:44 +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
8aeeaa83b0
feat(solc): better metadata support ( #894 )
2022-02-10 19:53:26 +02:00