Commit Graph

152 Commits

Author SHA1 Message Date
oliver-giersch db1870c891
Fix IPC handling of jsonrpc errors (#1123)
* fixes ipc jsonrpc error handling, use json RawValue where sensible

* ran cargo +nightly fmt

Co-authored-by: Oliver Giersch <oliver.giersch@b-tu.de>
2022-04-08 19:11:53 -07:00
Matthias Seitz df855b045e
feat: add TryFrom String reference for http provider (#1084) 2022-03-27 14:37:15 -07:00
Matthias Seitz 916e9a7334
chore(clippy): add some deny lints (#1064)
* feat: add deny lints

* trim ethers core

* trim ethers eip712

* deny ethers contract derive

* deny ethers contract abigen

* deny ethers contract

* deny ethers providers

* chore: add denies and fix unused deps

* doc: fix links

* fix: wasm build

* doc: fix links

* doc: fix links

* doc: fix inline doc links

* docs: fix intra doc links
2022-03-19 10:05:39 -07:00
Meet Mangukiya cde52c7c20
fix(core/TypedTransaction): eip1559 gas price should be max_fee_per_gas (#1062)
* fix(core/TypedTransaction): eip1559 gas price should be max_fee_per_gas

* fix tests

* tests(nonce_manager): reduce flakiness
2022-03-19 09:41:03 -07:00
Georgios Konstantopoulos beffe32f15 fix: feature-gate TestProvider.ws fn 2022-03-13 11:29:11 -07:00
Georgios Konstantopoulos 4f37287859 feat: rotate infura keys for ws 2022-03-13 10:11:27 -07:00
Georgios Konstantopoulos ae125bcfc7
feat: rotating infura keys (#1017)
* feat: add providers which rotate api keys

* test: use rotating key in provider instead of hardcoded

* chore: fmt
2022-03-13 09:04:09 -07:00
oblique 367f3444ec
fix: Export `ethers_providers::IpcError` and `ethers_providers::QuorumError` (#1012) 2022-03-13 13:58:29 +02:00
th4s b05136e173
Fix websocket connection request (#1005)
In tungstenite 0.17 a change was introduced considering the logic of
`IntoClientRequest`. When using this trait on a `HttpRequest` it just
uses the request without any changes to inititate the websocket
connection.

This makes it necessary for the consumer of the api to supply the
correct http headers for initiating a websocket connection when using
`IntoClientRequest` on `HttpRequest`.

This commit adapts the logic in `connect_with_auth` to this new
behavior.
2022-03-10 13:36:42 -08:00
Simon Bihel 1641be7395
Enforce commutativity of reverse resolution (#996)
As specified in https://docs.ens.domains/dapp-developer-guide/resolving-names#reverse-resolution
2022-03-08 06:45:45 -08:00
wolflo a1accbf6ac
fix(providers): Propogate gas limit with access list (#901)
* fix(providers): Propogate gas price with access list

* Update CHANGELOG.md

* Fix clippy lint

* Clarify fill_transaction comments

* Fill tx gas price before gas limit

Updates Provider::fill_transaction() to fill the gas price of a
transaction before filling the gas limit. There are cases where the gas
used by a transaction may be dependent on the gas price. For example,
the following contract bytecode branches based on the result of the GASPRICE
opcode:
GASPRICE PUSH1 0xff GT PUSH1 {label} JUMPI

* Cleanup

* Propogate eth_estimateGas failure
2022-03-01 14:13:06 +02:00
dependabot[bot] a6999f377e
chore(deps): bump tokio-tungstenite from 0.16.1 to 0.17.1 (#945)
* chore(deps): bump tokio-tungstenite from 0.16.1 to 0.17.1

Bumps [tokio-tungstenite](https://github.com/snapview/tokio-tungstenite) from 0.16.1 to 0.17.1.
- [Release notes](https://github.com/snapview/tokio-tungstenite/releases)
- [Changelog](https://github.com/snapview/tokio-tungstenite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/snapview/tokio-tungstenite/compare/v0.16.1...v0.17.1)

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

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

* fix: no-op raw websocket frames

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-28 10:40:42 +02:00
Meet Mangukiya 133c32d64a
feat(ethers-providers): expose pending tx_hash with a getter (#968) 2022-02-26 16:36:29 +02:00
joshieDo 7afde0ca0a
handle case where the data from the resolver is empty (#963)
* handle case where the data from the resolver is empty

* is_empty instead of 0 comparison
2022-02-24 18:42:32 +02:00
Nicolas Trippar f9f466ef07
change visibility of the function request in Provider<JsonRpcClient> to public so one can implement Middleware's with custom call to the node (#919) 2022-02-17 14:30:03 +02:00
Simon Bihel cd8a9b5a97
Add ENS avatar and TXT records resolution (#889)
* Add ENS avatar resolution

As well as arbitrary fields.

* Use try_join

* Improve reqwest's error passing

* Split avatar resolution in ERC token parsing and resolution

* no_run examples

* Rename token to NFT

* A bit more documentation

* Nightly cargo fmt

* Use different ERC-721 test

* Update CHANGELOG

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-16 16:25:41 +02:00
wolflo 14551a90c1
fix(providers): PendingTransaction::log() missing deref (#886) 2022-02-09 08:48:03 +02:00
wolflo b657e47e6b
feat(providers): Log methods for PendingTransaction (#884)
* feat(providers): Log method for PendingTransaction

* feat(poviders): Add PendingTransaction inspect() method

* Apply suggestions from code review

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-09 00:55:35 +02:00
wolflo 885aa9c967
fix(providers): doc test for dev_rpc (#857) 2022-02-02 19:20:01 +02:00
rakita 24e7c471e4
add eth_syncing RPC (#848)
* add eth_syncing RPC

* Changelo updated

* small comments

* Intermediate SyncingStatus
2022-02-01 12:58:45 +02:00
Dan Cline 01544ec4b7
Implement RLP decoding for transactions (#805)
* Implement RLP decoding for transactions

* set chain_id in fill_transaction
2022-01-30 21:21:16 +02:00
th4s a97526d6fe
Add authorization for http and websocket (#829)
* Added  basic and bearer authentication for http and websocket transport

* Improved api for websocket `connect_with_auth`

* Bugfix in doc

* Moved use statement into non-wasm imports

* Adapted changelog

* Fixed doc test

* Added constructors for Authorization

* Improved code quality and implemented feedback

* Made bas64 crate for basic auth encoding non-optional

* Added `Display` for `Authorization` instead of `into_auth_string`
2022-01-27 12:04:53 +02:00
Erwan f9f77e829b
fix(ws): propagate deserialization errors upstream + infura quickfix (#827)
* fix(ws): propagate error when deserialization fails

* fix(ws): tolerate case-insensitive match on the jsonrpc field

Infura streams notifications with jsonrpc all capitalized. This fails to
deserialize on our end because serde expect a precise match ressembling
the Notification jsonrpc field.

Fixes #684.

* chore(fmt): use nightly rustfmt

* chore: fmt

* chore: fix failing celo test

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-01-24 15:38:00 +02:00
Matthias Seitz d2318d285d
chore(deps): bump solang (#796)
* chore(deps): bump solang

* fix: breaking test
2022-01-15 17:53:46 +02:00
Eugene cbfbd6052c
Implement trace_callMany (#792)
* Implement trace_callMany

* cargo fix and ignore flaky test for now

* Update ethers-providers/src/provider.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-01-15 12:41:43 +02:00
Matthias Seitz d2b59d7097
chore: silence unused ws macro (#788) 2022-01-13 02:59:02 +02:00
georgewhewell bb0cd7acdd
mark TransactionFut as Send (#723)
* mark TransactionFut as Send

* no send when wasm32
2021-12-23 16:29:51 +02:00
Matthias Seitz e24117a1e1
chore(clippy): make clippy happy (#705) 2021-12-19 06:28:38 +02:00
James Prestwich 060dd6033d
refactor: move fill_transaction impl to provider rather than default (#697)
* refactor: move fill_transaction impl to provider rather than default

* chore: changelog and docstring for fill_transaction
2021-12-16 01:09:09 +02:00
James Prestwich 3338cdead1
feature: set nonce in fill transaction (#687)
* feature: set nonce in fill transaction

* chore: update changelog

* refactor: remove nonce_setting in fill_transaction

* refactor: set nonce in send_escalating
2021-12-14 00:50:13 +02:00
James Prestwich 47e9e7d3c7
refactor: move FeeHistory to core types (#688) 2021-12-14 00:49:49 +02:00
Matthias Seitz f4c89c6cb1
ci: test on windows targets (#682)
* ci: test on windows targets

* make ipc optional

* fix: only activate ipc on unix families

* add cfg

* only check default members

* no parallel limits

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-12-13 23:25:10 +02:00
Nicholas Rodrigues Lordello 79f2e1d5ef
Serialize block count as quantity 2 (#669)
* Serialize eth_feeHistory block count as QUANTITY

* update changelog

* Make sure to first convert to U256 :face_palm:

* Fix issue with move of `block_count` value.

* fix merge issue

* Revert changelog
2021-12-10 09:16:20 -07:00
Nicholas Rodrigues Lordello 7bd42be0d8
Serialize `eth_feeHistory` block count as `QUANTITY` (#668)
* Serialize eth_feeHistory block count as QUANTITY

* update changelog
2021-12-10 08:49:27 -07:00
Daniil Naumetc fffb965f2f
fix: nonce too low for different providers (#655) 2021-12-07 01:15:51 +02:00
guanqun 8d07610e4a
fix(provider::ws): ignore the websocket response when the request has been cancelled. (#641) 2021-12-03 20:14:13 +02:00
Daniil Naumetc 9fc75ef245
Fix handling of `nonce too low` error (#643)
* fix: nonce too low from error as debug

* chore: cargo fmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-12-03 20:08:53 +02:00
wolflo bccc7b9b5e
Add dev-rpc middleware (#640)
* Add dev-rpc middleware

* Dont run dev-rpc tests with celo

* providers: clean up match statement

* providers: fix clippy lint

* doc(providers) doctest and changelog for DevRpcMiddleware
2021-12-03 19:11:09 +02:00
Georgios Konstantopoulos bb3a2fd27c
release: 0.6.0 (#611)
* release(core): 0.6.0

* release(providers): 0.6.0

* release(contract-abigen): 0.6.0

* release(contract-derive): 0.6.0

* release(derive-eip712): 0.2.0

* release(ethers-solc): 0.1.0

* release(contract): 0.6.0

* release(etherscan): 0.2.0

* release(signers): 0.6.0

* release(middleware): 0.6.0

* chore: update dev deps

* refactor(core): move docs to readme

* refactor(contract): move docs to readme

* refactor(providers): move docs to readme

* chore: bump ethers cargo toml

* refactor(signers): move docs to readme

* refactor(middleware): move docs to readme

* fix(ethers): adjust re-exports to allow searching internal packages

* docs: fix broken links

we cannot use relative crate imports because the readmes
are also imported by the parent crate

* alias readmes to be accessible to ethers crate
2021-11-23 21:23:12 +02:00
univerz ec00325aa2
revert: unify get_block_receipts for eth/parity RPCs (#601) 2021-11-21 18:14:35 +02:00
Georgios Konstantopoulos a28476dccc
fix: lowercase node client type (#600) 2021-11-21 18:12:40 +02:00
Rohit Narurkar ab60a5e738
add net_version call (#595)
* add net_version call

* add change log
2021-11-18 20:56:31 +02:00
Eduard S 8493451917
Fix/providers (#590)
* ethers-providers: Fix http Provider request id data race

* ethers-providers: Remove Serialize from JsonRpcClient Response

* Update changelog
2021-11-18 11:59:29 +02:00
James Prestwich 0f22afeb49
Prestwich/escalator fixes (#581)
* refactor: handle nonce-too-low cases indicating previous conf.

* feature: add sign_transaction to Middleware trait and fix escalation signing
2021-11-14 14:26:02 +02:00
James Prestwich 203b2e8ea3
Prestwich/super pending (#566)
* feature: pending_escalator

* feature: send_escalating in Middleware

* bug: don't drop unready futures in escalator.poll

* chore: docs and must_use

* chores: lints, clippies, wasm fixes, dedup pinboxfut

* chore: more lints

* refactor: use Delay in polling interval to ensure re-waking

* refactor: simplify Sleeping state transition as last will never be None again

* bug: properly set last when broadcasts resolve

* feature: debug implementation for EscalatingPending

* refactor: with_ setters and escalations argument

* refactor: use FuturesUnOrdered instead of a vec of futures

* chore: update CHANGELOG with recent PR info

* chore: update all comments on pending escalator

* chore: run rustfmt
2021-11-12 03:23:46 +02:00
James Prestwich e9d40120a7
chore: re-export http client error in providers transports (#570)
* chore: re-export http client error in providers transports

* chore: re-export we client error in providers transports
2021-11-10 18:53:07 +02:00
Matthias Seitz c08f8ba876
fix: failing test and check --all-targets in ci (#560)
* fix: update failing example

* ci: check all targets
2021-11-05 19:58:03 +02:00
Matthias Seitz 6bf45a0b5d
fix: send error back (#556) 2021-11-05 03:21:23 +02:00
Alexey Shekhirin dc3ac427f4
feat(providers): unify get_block_receipts for eth/parity RPCs (#541)
* feat(providers): unify get_block_receipts for eth/parity RPCs

* add besu

* impl tryfrom for nodeclient

* better node client storage

* fix lint

* tryfrom<&str> -> fromstr

* fix: remove nested Option

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-10-30 16:50:46 +03:00
Matthias Seitz dcf20022c6
chore: add rustfmt.toml (#537)
* chore: add rustfmt.toml

* rustfmt

* chore: Update readme with fmt info

* ci: update ci

* chore: rustfmt

* rustfmt

* rustfmt

* ci: install libudev

* chore(clippy): make clippy happy

* chore(clippy): make clippy happy

* revert ci

* ci: install libudev
2021-10-29 14:29:35 +02:00