Commit Graph

573 Commits

Author SHA1 Message Date
DaniPopes f59153ba66
fix(core): i256 docs (#2187)
* fix(core): i256 docs

* add doc
2023-02-24 16:44:47 -08:00
DaniPopes 7e12f3ba36
feat(core): improve I256 implementation (#2180)
* feat(core): improve I256 implementation

* chore: reorganize impls

* chore: update docs, add attributes, use Self

* fix: signum

* chore: use inline(always), update implementations

* fix: use usize for shifting, add more shift ops

* feat: make arithmetic ops generic to match U256

* chore: clippy

* chore: return
2023-02-23 16:21:41 -08:00
dependabot[bot] 48dc4b1ee2
chore(deps): bump syn from 1.0.107 to 1.0.108 (#2178) 2023-02-23 13:15:40 -08:00
James Prestwich 2090bf560e
Expose contract revert errors in the ContractError struct (#2172)
* feature: spelunk for revert errors

* feature: bubble up revert to contract error

* feature: bubble up reverts to multicall

* fix: correctly remove signature when deserializing EthErrors

* chore: remove redundant test

* chore: clippy

* fix: allow empty revert string

* docs: add all missing rustdoc for ethers-contract

* chore: rustfmt

* chore: Changelog

* fix: danipope test comment
2023-02-22 14:52:25 -08:00
James Prestwich ee5e3e52c0
fmt: run rustfmt (#2176) 2023-02-21 16:52:20 -08:00
DaniPopes e55b8116f3
feat(contract): improve Multicall result handling (#2164)
* nits

* clippy

* ordering

* move

* chore: edition 2021

* chore: detokenize nit

* feat(contract): improve Multicall result handling

* docs: update CHANGELOG.md

* feat: make fields public

* chore: clippy
2023-02-20 18:50:28 -08:00
DaniPopes 3732de844c
fix(abigen): builtin trait derives (#2170)
* fix(abigen): builtin trait derives

* refactor: EthDisplay

* feat(derive): improve type detection

* chore: cleanup

* chore: edition 2021

* chore: clippy

* chore: use unreachable
2023-02-20 16:27:43 -08:00
dependabot[bot] 2f85e73049
chore(deps): bump num_enum from 0.5.9 to 0.5.10 (#2168)
Bumps [num_enum](https://github.com/illicitonion/num_enum) from 0.5.9 to 0.5.10.
- [Release notes](https://github.com/illicitonion/num_enum/releases)
- [Commits](https://github.com/illicitonion/num_enum/compare/0.5.9...0.5.10)

---
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-02-20 16:17:32 -08:00
Muhammad Syahrul Nizam 33ed94851c
chore: added canto network (#2171) 2023-02-20 13:51:06 -08:00
Dan Cline 228f944726
use Option for CliqueConfig fields (#2162) 2023-02-17 12:01:12 -08:00
dependabot[bot] 69edf3b49e
chore(deps): bump once_cell from 1.17.0 to 1.17.1 (#2156)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.17.0 to 1.17.1.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.17.0...v1.17.1)

---
updated-dependencies:
- dependency-name: once_cell
  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-02-15 10:55:04 -08:00
WillQ fd83e203b4
feat: add debug for geth default api (#2140) 2023-02-15 10:54:58 -08:00
DaniPopes a69036f07b
fix(core): block FromStr implementation (#2155) 2023-02-14 13:15:58 -08:00
Dan Cline a064657234
fix(core): test hive genesis parsing (#2145)
* add genesis tests from hive

* add another genesis from hive

* add execution-apis genesis

* add correct u64 hex decoding in GenesisAccount

* use default chainid of 1 without config

* add genesis test field asserts

* use better serde(default) settings
2023-02-13 17:06:57 -08:00
Matthias Seitz a474a95cc5
chore: use arbiscan urls for arbitrum goerli (#2127) 2023-02-10 11:51:32 -08:00
dependabot[bot] 2c2ecd917c
chore(deps): bump proc-macro2 from 1.0.50 to 1.0.51 (#2117)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.50 to 1.0.51.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.50...1.0.51)

---
updated-dependencies:
- dependency-name: proc-macro2
  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-02-07 11:03:54 -08:00
YuFei Wang 14be402f40
feat: add support for Geth built-in tracer and config (#2121)
* feat: add 4byteTracer

* feat: add prestateTracer

* feat: add noopTracer

* refactor: geth tracer layout

* feat: call tracer config

* fix: compatible with legacy call trace

* feat: pre state tracer config

* test: serialize/deserialize tracer

* refactor: deserialize type

* style: update refs

* chore: update CHANGELOG.md

* style: json string to object
2023-02-07 10:50:44 -08:00
James Prestwich e5e4da07c5
feature: allow signature to recover typed_data payloads (#2120)
* feature: allow signature to recover typed_data payloads

* fix: under feature flag and Changelog

* fix: undo accidental doc mangling
2023-02-06 13:27:35 -08:00
Matthias Seitz 0bb6f51082
chore: add convenient from impls (#2112) 2023-02-05 17:33:25 -08:00
DaniPopes cabb15e346
feat(abi): packed encoding (#2104)
* feat(abi): packed encoding

* clippy

* fix: use least number of bits for int/uint

* docs: update CHANGELOG.md

* fix: doctest
2023-02-04 19:23:27 -08:00
Matthias Seitz a544d4076c
feat: add DerefMut for OtherFields (#2109) 2023-02-02 11:12:52 -08:00
dependabot[bot] 1b4b35d44d
chore(deps): bump cargo_metadata from 0.15.2 to 0.15.3 (#2101)
Bumps [cargo_metadata](https://github.com/oli-obk/cargo_metadata) from 0.15.2 to 0.15.3.
- [Release notes](https://github.com/oli-obk/cargo_metadata/releases)
- [Changelog](https://github.com/oli-obk/cargo_metadata/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oli-obk/cargo_metadata/compare/v0.15.2...0.15.3)

---
updated-dependencies:
- dependency-name: cargo_metadata
  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-02-01 15:32:41 -08:00
dependabot[bot] 7e11f54ab0
chore(deps): bump bytes from 1.3.0 to 1.4.0 (#2100)
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.3.0...v1.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 15:32:32 -08:00
Vid Kersic 7e7f9041b3
feat: add support for js tracer to geth trace, fix different return types (#2064)
* feat: add support for js tracer to geth trace, fix different return types

* chore: fix clippy

* chore: update geth structs
2023-01-31 09:58:06 -08:00
DaniPopes 9b7d184fd6
feat(core): more type parsing (#2095)
* feat(core): more type parsing

* c

* doc
2023-01-31 09:37:33 -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
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
Matthias Seitz ff05a8762b
fix: add getrandom with js feature for wasm (#2076) 2023-01-27 13:14:26 -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
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
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
Georgios Konstantopoulos 27761d7acc chore: derive default for enums 2023-01-13 11:07:52 -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
Will Smith 2eb56e69b7
fix: revert to old version (#2048) 2023-01-12 17:53:28 -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
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
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
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
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
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
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
dependabot[bot] a42cc9f63f
chore(deps): bump once_cell from 1.16.0 to 1.17.0 (#1987)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.16.0...v1.17.0)

---
updated-dependencies:
- dependency-name: once_cell
  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>
2022-12-30 14:43:05 +02:00