Commit Graph

1774 Commits

Author SHA1 Message Date
DaniPopes fd02bbc418
refactor(abigen): inline docs (#2090)
* refactor: abigen docs

* chore: doc

* refactor: final doc

* mergings

* fix: unremove Default
2023-01-30 21:28:57 -08:00
DaniPopes 93e1850646
refactor/feat(abigen,types): add bytes::Bytes static methods, refactor struct declaration (#2089)
* refactor: final struct expansion

* feat(types): implement bytes::Bytes static methods

* feat: use static Bytes for bytecode

* chore: add rustfmt skip directive

* clippy
2023-01-30 12:12:35 -08:00
Matthias Seitz 71c6fd4928
feat: add convenience impl From Log (#2087) 2023-01-30 12:06:46 -08:00
Matthias Seitz 60e1779626
fix: add cfg to IntoFuture preventing Send (#2086) 2023-01-30 12:06:34 -08:00
Dan Cline 9ebc5b378c
feat(core): expose genesis and private key in Geth (#2091)
* feat(core): expose genesis and private key in Geth

 * expose the genesis and clique_private_key fields in GethInstance
 * add tests which initialize geth with clique_private_key, making sure
   the genesis and clique_private_key fields are exposed on the
   GethInstance

* add clique p2p port test

* refactor tests to clean up properly
2023-01-30 11:57:34 -08:00
Dan Cline 08514ea986
fix(providers): use middleware associated err type (#2093) 2023-01-30 11:57:03 -08:00
wigy 7da559bbed
fix(provider): Add Send bound to return type of JsonRpcClient::request (#2072) 2023-01-27 16:57:08 -05:00
Guillaume Malette 83b12a80e3
Make ContractCall IntoFuture implement Send (#2083)
* fix(contracts): Add a failing test showing that ContractCall IntoFuture is not Send

* fix(contracts): Add Send bound for IntoFuture implementation of ContractCall

* chore: update CHAGELOG

* chore: fmt

---------

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-27 14:54:49 -05:00
Matthias Seitz f86bc2483f
feat(solc): support emitting bytecode as extra files (#2074) 2023-01-27 13:15:03 -05:00
Matthias Seitz ff05a8762b
fix: add getrandom with js feature for wasm (#2076) 2023-01-27 13:14:26 -05:00
dependabot[bot] 8ed95f1363
chore(deps): bump reqwest from 0.11.13 to 0.11.14 (#2065)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.13 to 0.11.14.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.13...v0.11.14)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-27 13:13:10 -05:00
dependabot[bot] 0077da5ba5
chore(deps): bump num_enum from 0.5.7 to 0.5.9 (#2073)
Bumps [num_enum](https://github.com/illicitonion/num_enum) from 0.5.7 to 0.5.9.
- [Release notes](https://github.com/illicitonion/num_enum/releases)
- [Commits](https://github.com/illicitonion/num_enum/commits/0.5.9)

---
updated-dependencies:
- dependency-name: num_enum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-27 13:12:46 -05:00
Matthias Seitz d3ad5478ae
feat(abi): add helper functions to access solidity types (#2081) 2023-01-27 13:12:32 -05:00
Matthias Seitz 8ecd566930
fix: add missing pub for tuple structs (#2080) 2023-01-27 13:07:27 -05:00
Ames 0116130b87
Fix to round-trip serialize and deserialize optional address (#2057)
* Test serde round-trip address

* Fix serde round-trip address

* fix fmt lint

Co-authored-by: Ames <git@sys.cornishes.net>
2023-01-22 13:08:43 -08:00
Yiannis M 50ef8a78f9
feat(etherscan): Allow `ClientBuilder` to create `Client` without API key (#2067)
Etherscan allows 1 request per 5 seconds if the API key is not defined
2023-01-22 13:08:33 -08:00
Matthias Seitz ea8c231834
fix: ensure urls have trailing / (#2069)
* fix: ensure urls have trailing /

* chore: rustfmt
2023-01-22 13:08:17 -08:00
Dan Cline e9a808e84f
fix(core): fix geth --init temp dir race condition (#2068)
* fix(core): fix geth --init temp dir race condition

 * previously, if multiple instances of geth were spawned concurrently,
   only one directory would be used to populate geth's genesis.json.
   this can lead to a race condition where the genesis.json would be
   re-written by a second instance, before the first instance reads the
   genesis.json for populating its db and genesis block with the geth
   --init command. this was possible because directory returned by
   std::env::temp_dir() is often shared
 * fixes the race condition by using tempfile::tempdir(), which creates
   a unique directory per call to tempdir()

* only use tempfile on non-wasm32
2023-01-21 18:13:40 -08:00
Georgios Konstantopoulos b8fa524e8e
feat(core/geth): enable Clique mode (#2063)
* feat(core/geth): add method for initing Clique genesis

* feat(core/geth): add Clique mode

this is ported from https://github.com/paradigmxyz/reth/pull/623/files\#diff-99e7bcdfb85c75ffe5fb2ccfbc5fd8234fced6704c34b622fbf24289b8522515R228-R245

* feat(core/geth): disable discovery in clique mode

* examples: add Geth Clique example
2023-01-19 10:49:47 -08:00
0xKitsune eaaa01a7d6
Book - Providers Chapter (#2023)
* started building out providers chapter for the book, updated the intro for the chapter as well as the Http section. Added advanced usage section.

* Updated WS and Ipc chapter, working on usage, furthering descriptions

* updated ipc section, added code snippets

* updating the ws section, adding code snippet for example using the subscribe_pending_tx method

* Updated the provider section to include info on the ens and _node_client fields, udpated the advanced usage section to include CallBuilder and raw_call.

* added examples to ipc and ws chapters, cleared todos

* added note about windows ipc named pipes

* added spaces to comments

* fixed comment, removed all usage of unwrap()

* updated Http provider to initialize without ::<Http::

* updated the Ipc provider to initialize without setting the polling interval

* Update book/providers/providers.md

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-17 11:19:34 -08:00
WillQ c60990d7b6
remove EthAbiType derive generated unwrap (#2056)
* remove EthAbiType derive generated unwrap

* use simply expect
2023-01-17 11:15:59 -08:00
dependabot[bot] 43dad6a705
chore(deps): bump proc-macro2 from 1.0.49 to 1.0.50 (#2061)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.49 to 1.0.50.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.49...1.0.50)

---
updated-dependencies:
- dependency-name: proc-macro2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-17 11:15:20 -08:00
Sean Young 09f8e3b511
chore(deps): bump solang-parser 0.2.1 (#2054) 2023-01-17 10:36:31 -08:00
Georgios Konstantopoulos 72e94f02dd
fix(solc/resolver): default to Ascii for windows / Utf8 otherwise (#2060) 2023-01-16 18:14:38 -08:00
Georgios Konstantopoulos f2099a8eaa
chore: fix clippy (#2059) 2023-01-16 18:11:27 -08:00
Matthias Seitz 5330a688ea
fix(solc): add missing ir option (#2055) 2023-01-16 16:35:47 -08:00
Georgios Konstantopoulos 10b18e0d58 chore: do not expose util module 2023-01-13 11:10:31 -08:00
Georgios Konstantopoulos 219004efcb fix(abigen): add back mod util 2023-01-13 11:09:13 -08:00
Georgios Konstantopoulos 27761d7acc chore: derive default for enums 2023-01-13 11:07:52 -08:00
DaniPopes c2d7b8321f
refactor(abigen): source (#2016)
* rm parse_address

* refactor: sources

* add comments, support <chain>:<address>

* fix doc

* chore: clippy

* fmt

* fix

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-13 10:59:44 -08:00
Elizabeth Dinella 0841e9b53e
fixed issue#2004 parsing solc verison with trailing newlines (#2005)
* fixed issue#2004 parsing solc verison with trailing newlines

* suggested changes
2023-01-13 10:45:26 -08:00
Andrea Simeoni 08f8e8771a
Book - Middleware Chapter (#2033)
* docs: added middleware intro page + diagram

* docs: added middleware sections + embed examples

* docs: simplified diagram

* docs: added `quorum` transport to diagram

* Removed duplicate style

* mermaid style file in the book root dir

* typo

Co-authored-by: Andrea Simeoni <>
2023-01-13 10:25:32 -08:00
DaniPopes d1e934791d
refactor(abigen): Abigen, ContractBindings (#2019)
* use format_ident

* lib.rs

* refactor: ContractBindings

* refactor: from_file

* add write_fmt

* mv

* error msg

* revert mod docs
2023-01-13 10:23:59 -08:00
Agost Biro da0039aaea
fix: failing can_autodetect_dirs solc test (#1895) (#2052)
The test was failing for two reasons on macOS:

1. The build info directory was not created during the test.
2. Temporary directories are created with symbolic links on macOS and
the path canonicalization returns the given path if it doesn't exist.

This lead to a mismatch between the project root's canonical path (which
did exist and thus was a real path after canonicalization) and the build
info directory's canonical path (which did not exist and was a symbolic
link after canonicalization).

The fix is to create the build info directory to make sure its canonical
path matches the project root's canonical path.
2023-01-13 10:20:26 -08:00
Agost Biro 19a740db52
chore(deps): bump svm-rs (#2051)
* chore(deps): bump svm-rs

Earlier versions of `svm-rs` have transitive dependencies that conflict
with newer Rust Crypto packages.

* chore: update changelog
2023-01-13 10:19:47 -08:00
dependabot[bot] dbef3c4ff9
chore(deps): bump criterion from 0.3.6 to 0.4.0 (#2050)
Bumps [criterion](https://github.com/bheisler/criterion.rs) from 0.3.6 to 0.4.0.
- [Release notes](https://github.com/bheisler/criterion.rs/releases)
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.3.6...0.4.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-13 10:19:36 -08:00
Dan Cline 3a01682edf
feat(core): switch shanghaiBlock to shanghaiTime (#2049)
* geth switched to time-based forking in
   https://github.com/ethereum/go-ethereum/pull/25878, this changes the
   name of the `shanghai_block` field to `shanghaiTime` so it is
   compatible with geth.
2023-01-13 10:19:25 -08:00
DaniPopes 5edcd3765c
feat(contract): use u64 and add more chains to multicall (#2042)
* feat: add new chains and use u64

* chore: manually implement Clone and Debug to avoid trait bounds.

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-13 10:18:55 -08:00
Nick 9e559aefeb
fix(abigen): ensure correct ABI in `From` impl (#2036)
* fix(abigen): ensure correct ABI in `From` impl

`new` creates a `Contract` with the correct ABI, but the `From` impl
simply wraps the source `Contract`, which could have a completely
different ABI. In effect this was an unsafe cast, and indeed was
observed to trigger a "method not found (this should never happen)"
panic for subsequent method lookups. Implementing `From` in terms of
`new` fixes this, at the cost of an extra `Arc::clone()` (which I can't
see how to eliminate without piercing the `ethers::contract::Contract`
public API).

* Remove unnecessary `async` from test

Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>

Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2023-01-13 10:18:17 -08:00
DaniPopes 79f27e2366
docs(abigen): rename `event_derives` to `derives` (#2018)
* chore: rename event_derives to derives

Misleading name, `event_derives` implies that only Solidity events'
structs would apply, while this is not true

* last derive

* mv

* docs

* docs

* last doc
2023-01-13 10:17:32 -08:00
Will Smith 2eb56e69b7
fix: revert to old version (#2048) 2023-01-12 17:53:28 -08:00
Yiannis M 0a7e7423e2
feat(signers): Allow parsing of private key that has `0x` prefix (#2037) 2023-01-11 19:41:41 -08:00
dependabot[bot] 927d960829
chore(deps): bump regex from 1.7.0 to 1.7.1 (#2034)
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.7.0...1.7.1)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-11 19:33:16 -08:00
dependabot[bot] 5a4646f292
chore(deps): bump num_enum from 0.5.7 to 0.5.8 (#2035)
Bumps [num_enum](https://github.com/illicitonion/num_enum) from 0.5.7 to 0.5.8.
- [Release notes](https://github.com/illicitonion/num_enum/releases)
- [Commits](https://github.com/illicitonion/num_enum/commits/0.5.8)

---
updated-dependencies:
- dependency-name: num_enum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-11 19:32:49 -08:00
dependabot[bot] df720d4e00
chore(deps): bump bzip2 from 0.4.3 to 0.4.4 (#2040)
Bumps [bzip2](https://github.com/alexcrichton/bzip2-rs) from 0.4.3 to 0.4.4.
- [Release notes](https://github.com/alexcrichton/bzip2-rs/releases)
- [Commits](https://github.com/alexcrichton/bzip2-rs/commits/0.4.4)

---
updated-dependencies:
- dependency-name: bzip2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-11 19:32:35 -08:00
DaniPopes 015eeabea8
feat(contract): return multicall pending transaction (#2044)
* feat(contract): return multicall pending transaction

* fix: tests

* docs: update CHANGELOG.md
2023-01-11 19:30:56 -08:00
DaniPopes b4b153a364
perf(utils): avoid unnecessary allocations (#2046)
* perf(utils): avoid unnecessary allocations

* docs: add more to_checksum information

* docs

* use address
2023-01-11 19:20:35 -08:00
joshieDo 3c65997eae
feat(core): add `strum::EnumIter` and `strum::EnumCount` to `Chain` (#2043)
* add strum EnumIter and EnumCount to Chain

* clippy
2023-01-11 19:17:46 -08:00
DaniPopes a1d6b5e3f7
chore: clippy (#2032) 2023-01-11 19:05:39 -08:00
DaniPopes 0187bedd11
feat(abigen): use prettyplease (#2027) 2023-01-09 07:17:22 +02:00