Commit Graph

579 Commits

Author SHA1 Message Date
Dan Cline 537d0a9deb
fix(core): properly parse genesis alloc storage (#2205)
* fix(core): properly parse genesis alloc storage

 * Previously we were not properly parsing the storage field of
   GenesisAlloc. The first issue was in using serde(flatten), which is
   just incorrect because storage is not encoded flattened. The second
   issue was in the parsing of H256 keys and values. Some of the storage
   values in hive genesis examples were encoded in less than 64 hex
   characters, such as the string `0x12`. This would not succeed normal
   H256 parsing.
 * Introduce from_unformatted_hex_map to properly deserialize the
   storage map.
 * Modify existing genesis parsing tests to check parsed storage and
   code values against expected values.
 * Introduce new genesis parsing test from the hive smoke tests,
   checking full struct equality.

* remove unused from_unformatted hex

* make clippy happy
2023-02-27 15:22:01 -07:00
DaniPopes 1861b98896
chore: move etherscan api key env var matching to Chain enum (#2204)
* fix: mainnet, optimism blocktimes

* chore: move etherscan api key env var matching to Chain enum

* docs: missing exhaustiveness comment
2023-02-27 13:14:36 -07:00
dependabot[bot] 59781a4e62
chore(deps): bump tempfile from 3.3.0 to 3.4.0 (#2200)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/Stebalien/tempfile/releases)
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/NEWS)
- [Commits](https://github.com/Stebalien/tempfile/commits)

---
updated-dependencies:
- dependency-name: tempfile
  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-27 13:03:47 -07:00
dependabot[bot] f577751615
chore(deps): bump syn from 1.0.108 to 1.0.109 (#2202)
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.108 to 1.0.109.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.108...1.0.109)

---
updated-dependencies:
- dependency-name: syn
  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-27 13:03:34 -07:00
DaniPopes 203e350940
docs: fix broken links, update documentation (#2203)
* docs: fix broken links

* docs: update READMEs and module-level documentation
2023-02-27 13:03:17 -07:00
dependabot[bot] 7d54e3099c
chore(deps): bump num_enum from 0.5.10 to 0.5.11 (#2184)
Bumps [num_enum](https://github.com/illicitonion/num_enum) from 0.5.10 to 0.5.11.
- [Release notes](https://github.com/illicitonion/num_enum/releases)
- [Commits](https://github.com/illicitonion/num_enum/compare/0.5.10...0.5.11)

---
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-24 16:45:22 -08:00
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