Commit Graph

1793 Commits

Author SHA1 Message Date
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
dependabot[bot] c439566625
chore(deps): bump base64 from 0.20.0 to 0.21.0 (#2030)
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases)
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: base64
  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-09 07:16:11 +02:00
dependabot[bot] a7f48bc6ee
chore(deps): bump glob from 0.3.0 to 0.3.1 (#2031)
Bumps [glob](https://github.com/rust-lang/glob) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/rust-lang/glob/releases)
- [Commits](https://github.com/rust-lang/glob/compare/0.3.0...0.3.1)

---
updated-dependencies:
- dependency-name: glob
  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-09 07:15:48 +02:00
Peter Davies 801a638a89
etherscan: fix deserializing contract creation NormalTransaction objects (#2029)
* etherscan: fix deserializing contract creation NormalTransaction objects

* Improve tests
2023-01-09 07:12:33 +02:00
DaniPopes bab3e97d3b
fix: signer test (#2028) 2023-01-08 18:58:04 +02:00
m0ham3dx b5eddf1985
mx - CI - mdbook addons - admonition(callouts) and mermaid (code driven diagrams) with example implementation (#2025)
* P1 (#1)

* CI trigger test with changes

* CI trigger test with changes - type fix

* Post Trigger Rendering Test

* remove actions triggers on P1 branch used during testing

* mx - P1 Prep PR - with configured md-admonition and md-mermaid   (#2)

* CI trigger test with changes

* CI trigger test with changes - type fix

* Post Trigger Rendering Test

* remove actions triggers on P1 branch used during testing

* Add example callouts (admonitions) and mermaid diagram in intro.md

* Update book/getting-started/intro.md

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-08 04:29:16 +02:00
Matthias Seitz 01d3e4310f
feat: support parsing bytecode from evm object (#2024) 2023-01-07 16:22:07 +02:00
DaniPopes 2aa7bc3b99
chore(core): alias&export error as ParseChainError (#2022)
* chore(core): alias&export error as ParseChainError

`pub use TryFromPrimitiveError as ParseChainError`
for backwards compatibility

* fix: comment

* fully alias
2023-01-07 11:14:25 +02:00
Roman Krasiuk 7ddfd84e20
disable native-tls on rusoto (#2021) 2023-01-06 13:08:26 +02:00
Chris Cordle c684220144
feat: Add arbitrum nova api and chain id 42170 (#2020)
* Add arbitrum nova api and chain id

* chore: fmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-06 11:32:54 +02:00
DaniPopes 96f4723c13
fix(abigen): tests (#2015)
* fix: methods tests

* fix: remaining paths in tests
2023-01-06 11:30:34 +02:00
Andrea Simeoni 5917e842d7
ci: fix nonce manager test (#2014)
* Use Anvil instead of Goerli to test the nonce manager

* restore comment

* fix: explicitly assign `inner.max_priority_fee_per_gas`

Co-authored-by: Andrea Simeoni <>
2023-01-06 11:29:46 +02:00
Andrea Simeoni 7e6c3ba983
docs: mock-provider (#2011)
* MockProvider example + mdbook reference

* review: use eyre::Result

Co-authored-by: Andrea Simeoni <>
2023-01-05 17:55:23 +02:00
Gyuho Lee 3ed83d5dd3
nonce_manager: remove current nonce load when initialized (#2013)
If nonce was just initialized, no need for store and load.
Just return the stored value without load.

Signed-off-by: Gyuho Lee <gyuho.lee@avalabs.org>

Signed-off-by: Gyuho Lee <gyuho.lee@avalabs.org>
2023-01-05 11:47:05 +02:00
WillQ 4a8a6ad259
abigen adopt hardhat generated bytecode (#2012)
* abigen adopt hardhat generated bytecode

* update changelog
2023-01-05 11:46:32 +02:00
Dan Cline c0e607da1e
feat(providers): support personal account apis (#2009)
* feat(providers): add personal key mgmt rpcs

 * add personal_importRawKey and personal_unlockAccount

* expose geth personal api

* do not prefix with 0x

* serialize privkey as string

* add allow-insecure-unlock option to Geth
2023-01-04 23:35:44 +02:00
Dan Cline 9147ee8e63
feat(core): add ability to take geth stderr (#2010)
* makes the geth logs accessible by using take() on the GethInstance
   stderr
2023-01-04 23:31:48 +02:00
Dan Cline 5f2476510b
feat(providers): add mining related apis (#2008)
* feat(providers): add miner_start endpoint

* add other mining related apis

 * add eth_mining
 * add miner_stop

* expose Geth miner rpc api
2023-01-04 23:30:03 +02:00
Georgios Konstantopoulos 578b1c4d2d docs: add rw/quorum provider 2023-01-04 14:11:04 +02:00
DaniPopes 24b9ae2404
fix(contract): doctests (#2007) 2023-01-04 13:29:10 +02:00
Georgios Konstantopoulos 71fbf8c6b6
ci: build/deploy book 2023-01-04 13:26:25 +02:00
Georgios Konstantopoulos 9957e0dec9
Delete book.yml 2023-01-04 13:25:27 +02:00
Andrea Simeoni da0363918b
ci: mdbook (#2003)
* Applied same book structure as Reth

* ci: [WIP] added book workflow

* fix warning mdbook version different from template plugin version

* ci: added deploy step

* Http provider docs

* IPC provider docs

* RetryClient docs

* WebSocket provider docs

Co-authored-by: Andrea Simeoni <>
2023-01-04 12:36:31 +02:00
DaniPopes 4fd742f8ce
feat: windows ipc provider (named pipe) (#1976)
* fmt: imports

* fix: ipc tests

* fmt

* chore: move ws macros

* chore: gate ipc to unix family

* chore: make tokio optional

* feat: initial named_pipe

* feat: windows ipc

* chore: update Provider

* chore: clippy

* chore: use Path instead of OsStr

* chore: clippy

* fix: docs

* lf

* lf

* test: better subscription tests

* docs

* fix: ipc doctest

* chore: make winapi optional

* fix: optional tokio
2023-01-03 16:15:51 +02:00
Gyuho Lee 04e3021dc0
ethers-signers/aws: sighash on the inner/updated tx object (#1977)
Signed-off-by: Gyuho Lee <gyuho.lee@avalabs.org>

Signed-off-by: Gyuho Lee <gyuho.lee@avalabs.org>
2023-01-03 16:09:08 +02:00
Andrea Simeoni 04ed534b72
docs: mdbook (#1994)
* mdbook init + summary

* Getting started section

* intro typos

* intro typos and wording

* intro typos and wording

* Big numbers section

* Big numbers: added section titles + docs refinement

* Removed index prefix from file names

* Update docs/mdbook/book.toml

Co-authored-by: Andrea Simeoni <>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-03 15:18:38 +02:00
Matthias Seitz d1df3417f7
feat(solc): improve error on case mismatch (#1998) 2023-01-03 15:14:01 +02:00
Matthias Seitz 6ac3e75c6a
fix: use full path of i256 (#2000) 2023-01-03 15:12:47 +02:00
DaniPopes 97582cc346
feat(core, contract): improve `determine_ethers_crates` (#1988)
* refactor: determine_ethers_crates

* feat: improve crate resolution

* export new types and functions

* export

* fix: file name check

* fix: invert condition and check CARGO_MANIFEST_DIR

* use abigen macro to generate multicall

* chore: rm debug

* rm unnecessary .replace

* chore: clippy

* chore: clippy

* Revert "chore: clippy"

This reverts commit bd220f308d.

* Revert "chore: clippy"

This reverts commit 5550f4e856.

* add tests

* better tests, docs

* add another test

* fix docs

* refactor: add an environment struct for determining ethers crates

* fix: use fmt::Debug to escape paths

* docs: rename and rm old docs

* feat: use global path for crates

* fix: docs

* chore: move rand impl to tests mod
2023-01-03 15:11:57 +02:00
DaniPopes fd4da49121
tests: use sepolia (#1989)
* tests: use sepolia

* update ci

* update sleep duration

* deprecate ropsten

* use goerli

* fmt

* keys
2022-12-31 12:47:53 +02:00
Dan Cline 228f9607fe
feat(core): expose all genesis related structs (#1975) 2022-12-30 14:48:47 +02:00
DaniPopes d272318483
chore: update all rust editions to 2021 (#1979) 2022-12-30 14:48:29 +02:00