Commit Graph

234 Commits

Author SHA1 Message Date
Matthias Seitz 659ac061b2
refactor(abigen): replace ethabi::Reader (#1417)
* feat: add human readable function parser

* clippy fix

* revert bad clippy

* refactor(abigen): replace ethabi::Reader

* fix: add token to tuple token parsing
2022-06-26 17:26:43 -07:00
h00p30 94c7559ab5
TypedTransaction methods into builder style (#1414) 2022-06-25 20:44:55 -04:00
Matthias Seitz c7e1237a6b
fix: add missing chain id match arms (#1411) 2022-06-23 11:02:52 -04:00
Julian Popescu ec379da527
Use H64 for Block Nonce (#1396)
* Use H64 for Block Nonce

Signed-off-by: Julian Popescu <hi@julian.dev>

* Update changelog

Signed-off-by: Julian Popescu <hi@julian.dev>
2022-06-23 11:02:29 -04:00
Matthias Seitz 1ce2310874
feat: add evmos support (#1398) 2022-06-22 13:09:05 -04:00
Matthias Seitz c2f5a87b63
chore: add moonbase chain id (#1397) 2022-06-21 13:44:42 -04:00
Matthias Seitz 69095c15cf
feat: add eth filter deserialization and matching (#1389)
* feat: add eth filter deserialization and matching

* chore: rustfmt

* extend test

* add missing conversion
2022-06-17 09:34:16 -07:00
Matthias Seitz cce841f21c
test: add tx roundtrip test (#1383) 2022-06-15 11:41:29 -07:00
Georgios Konstantopoulos ae63b57106 fix(core): chainId 31337 corresponds to Anvil/Hardhat not Dev
fixes: https://github.com/foundry-rs/foundry/issues/1866, because
previously we'd read chain id 31337, parse it as Dev, and then when
convert it to the wrong number (1337) which would make the transaction's
chain id not match the signer's
2022-06-14 13:41:47 +03:00
Matthias Seitz c96f6ba616
chore: add blocknumber convenience impls (#1368) 2022-06-10 16:45:46 +03:00
Matthias Seitz 295f86ef89
chore: reexport ethabi module (#1362) 2022-06-08 13:15:55 -07:00
Matthias Seitz c7a8a1ea5a
test: add tx receipt roundtrip test (#1360) 2022-06-08 05:13:36 -07:00
Matthias Seitz 0abc3ca39a
feat: add anvil hardhat chain id (#1356)
* feat: add anvil hardhat chain id

* chore: cover anvil hh
2022-06-08 03:29:00 -07:00
DeGatchi d6d76c6024
fix: `Transfered` -> `Transferred* (#1357) 2022-06-08 03:28:32 -07:00
Matthias Seitz 1dfe6d0cd2
feat: add display impl for BlockNumber (#1346) 2022-06-04 11:37:37 -07:00
Roman Krasiuk f4712fa47c
feat(etherscan): additional chain apis (#1343)
* xdai

* sokol

* poa & rsk

* oasis chains

* fix test

* test
2022-06-03 09:16:35 -07:00
Matthias Seitz 89bc6420bb
test: replace ganache with anvil (#1286)
* ci: install anvil

* test: use anvil instead of ganache

* ci: fix anvil ver

* ci: re-enable example tests

* test: remove unnecessary assertions

* test: enable anvil launch test

* docs: typo

* test: fix anvil chain id

* ci: install ganache

Ganache is needed for the Ganache tests

* chore: remove legacy feature from some examples

* ci: correctly build examples

* test: use correct account balance for anvil

* chore: remove sub_id == 1 check

this was only possible in ganache because it gives serial
sub ids, but in every other reasonable client the ids are generated
randomly, so we cannot test for its value

* test: ensure txs are different

There is a bug in Ganache's mempool which accepts duplicate transactions (here with the same nonce), whereas here we pre-set all the nonces so that they end up having a different transaction hash.

* test: ignore ganache tests

* fix: terzor api changes

* ci(examples): install Anvil, remove geth/ganache

* test(provider): Anvil instead of Geth

some tests start to fail now

* fix: revert usage of Anvil in ipc tests

Anvil does not support IPC yet

* fix: update examples script

* ci: use anvil for wasm example

* replace last ganache usage

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-06-01 08:22:39 -07:00
Matthias Seitz 6a45a93685
fix: use decimal crate for parsing units (#1330) 2022-05-31 09:43:44 -07:00
Dave Belvedere 6b6c511583
Add Arithmetic Shift Right operation for I256 (#1324)
Update the changelog for https://github.com/gakonst/ethers-rs/issues/1323

Format the file correctly
2022-05-29 19:03:03 -04:00
Meet Mangukiya e3e810cef9
feat(abi): impl AbiEncode, AbiDecode for I256 (#1311) 2022-05-27 10:12:24 -04:00
oblique 526f40e88f
feat(core): Add `as_*_mut` methods on `TypedTransaction` (#1310) 2022-05-27 10:11:18 -04:00
Meet Mangukiya a150666d54
feat: add paginated logs (#1285)
* feat: add paginated logs

* docs: add paginated_logs example

* remove unpin
2022-05-23 14:23:35 -07:00
Georgios Konstantopoulos dc107ce892
fix: correctly serialize TxPoolInspectSummary (#1305)
* fix: correctly serialize TxPoolInspectSummary

previously we'd use the default serde derive, now we serialize
it like geth does

* chore: add back removed Eq derive
2022-05-23 14:15:29 -07:00
Matthias Seitz cffcc7bbec
chore(clippy): fix newest nightly lints (#1298) 2022-05-22 15:18:57 -07:00
joshieDo f5ea2bd6e3
feat(core): add helpers to unwrap `TypedTransaction` (#1278)
* add different helpers for type transactions

* remove as_() on TypedTransaction

* specify into_eip2930 when it matches a legacy tx

* remove unused error type

* specify into_legacy when it matches an eip2930 tx
2022-05-17 15:50:14 -07:00
oblique 75ba3f4a9a
fix(core): On pending block `miner` field is always `null` (#1272)
* fix(core): On pending block `miner` field is always `null`

* Fix formatting
2022-05-16 14:10:02 -07:00
Georgios Konstantopoulos 83dc3e226c chore: fmt 2022-05-16 12:33:38 -07:00
Shawn Harmsen ceafcb250b
fix: unify name of supported chains with strum (#1249)
* add strum

* update strum version

* whitespace

* revert strum

* using strum EnumVariantNames

* fix strum serialize kebab case and edge cases
2022-05-16 12:28:35 -07:00
Matthias Seitz 94cf8a8f77
feat: add eip-1898 deserialize for BlockId (#1257) 2022-05-13 12:56:14 -07:00
Remco Bloemen 4ba8adf87c
Add Block::time (#1250)
* Add Block::time

* Doc fixes
2022-05-11 10:19:02 -07:00
Remco Bloemen 98fc8c88e4
impl TryFrom<U256> for Chain (#1247) 2022-05-11 07:35:30 -07:00
Tomas Tauber 0926ead2bc
fix(core): removed Cronos mainnet beta from `is_legacy` (#1246)
it now supports EIP1559 after the network upgrade at the height 2693800
2022-05-10 08:31:28 -07:00
Matthias Seitz 790550c1e5
feat(abi): add human readable tokenizer and parser (#1234)
* feat(abi): add human readable tokenizer and parser

* feat(abi): support nested tuples
2022-05-09 10:46:43 -07:00
Remco Bloemen 18b4ef4e47
Robust gas oracles (#1222)
* Pass reqwest Client to constructors

* Add Median oracle aggregator

* DRY

* Weighted median

* Add cache layer

* Simplify lifetimes

* Add with_client constructors

* Update GasNow urls

* Add u256_from_f64_saturating

* Add polygon oracle

* Fixes

* Fix lints

* Remove dbg statements
2022-05-06 08:16:43 -07:00
Matthias Seitz ce3ebaefa0
chore(clippy): make clippy happy (#1230) 2022-05-06 08:15:49 -07:00
inconspicuous99 f5c5468420
Add: Make Ganache Startup Timeout *Configurable*. (#1224)
* Add: Configurable Ganache Startup TImeout

* fix lint, add docs.
2022-05-05 07:40:48 -07:00
Matthias Seitz 67e3480bdc
chore(core): update moonbeam url (#1228) 2022-05-05 07:31:26 -07:00
CyMule 4d24acdd84
Adds From<H160> trait to ValueOrArray<H160> (#1200)
* Adds From<H160> trait to ValueOrArray<H160>

The trait From<H160> for ValueOrArray<H160> was not implemented which
prevented compilation when using
pub fn address<T: Into<ValueOrArray<Address>>>(self, address: T)
for ethers_core::types::Filter.

Fixes: #1199

* update CHANGELOG.md

* Adds From<Vec<H160>> trait to ValueOrArray<H160> and documentation

The trait From<Vec<H160>> for ValueOrArray<H160> was not implemented which
prevented compilation when passing a Vec<H160> into
pub fn address<T: Into<ValueOrArray<Address>>>(self, address: T)
for ethers_core::types::Filter.

This commit also includes documentation on how to use fn address for
ethers_core::types::Filter.

Fixes: #1199
2022-05-02 12:33:33 -07:00
Matthias Seitz 19f7a93243
feat(core): add block conversion helpers (#1186)
* feat: add full to sparse block conversion

* feat: add sparse to full block conversion
2022-04-27 11:46:06 -07:00
Josh Stevens 82d5741bcc
fix: add to and from into the transaction receipt to follow spec (#1184)
* fix: add to and from into the transaction receipt to follow spec

* update changelog
2022-04-27 15:40:59 +03:00
Dan Cline 3d9fc21ba9
fix(core): decode `from` field for typed transactions (#1180)
* fix(core): add eip1559 prefix for sighash

 - add a test which properly tests the `from` address decoding, which
   was incorrect due to the tx type not being hashed before recovery

* fix(core): decode from for EIP2930 transactions

 - add test which checks signed decoding for an EIP2930 transaction

* ignore decoding tests for celo

* remove type constant and use typed sighash

* update CHANGELOG
2022-04-27 15:39:59 +03:00
Rohit Narurkar 1b044652f0
chore(core): derive default for log (#1168) 2022-04-23 01:40:01 -07:00
Matthias Seitz 48e292021d
feat: add anvil bindings (#1164) 2022-04-21 19:22:52 +02:00
Matthias Seitz 7a098b183f
test: add type check test for abi array tuples (#1143) 2022-04-18 10:02:56 -07:00
Rohit Narurkar 45cce0f4b4
feat: impl rlp encodable for log and receipt (#1153) 2022-04-18 09:55:45 -07:00
Michael Sproul 286f842a2a
fix(core): encode absent tx access_list correctly (#1137)
The optional access list on `Transaction` was being incorrectly encoded
as an empty string (0x80) when omitted, when it should be encoded as an
empty list (0xc0).

Fixes #1134.
2022-04-13 08:26:14 -07:00
Matthias Seitz 7799634479
feat(types): add deserialize support for ValueorArray (#1138)
* feat(types): add deserialize support for ValueorArray

* chore: add hash derive

* chore: add Eq derive
2022-04-13 08:23:12 -07:00
Matthias Seitz 0bbd1e3bca
chore: add as number helper function (#1139) 2022-04-13 08:23:05 -07:00
Matthias Seitz 119956925d
fix: eth_feehistory reward is optional (#1127) 2022-04-09 15:12:05 -07:00
Dan Cline 6e004e7780
feat(core): implemented signed transaction RLP decoding (#1096)
* feat(core): implement signed transaction decoding

* add geth signed transaction test vectors

* add signed tx decoding CHANGELOG entry
2022-04-08 19:05:16 -07:00