Fix/providers (#590)
* ethers-providers: Fix http Provider request id data race * ethers-providers: Remove Serialize from JsonRpcClient Response * Update changelog
This commit is contained in:
parent
8eac1997f4
commit
8493451917
|
@ -19,6 +19,8 @@
|
||||||
- add the missing constructor for `Timelag` middleware via [#568](https://github.com/gakonst/ethers-rs/pull/568)
|
- add the missing constructor for `Timelag` middleware via [#568](https://github.com/gakonst/ethers-rs/pull/568)
|
||||||
- re-export error types for `Http` and `Ws` providers in [#570](https://github.com/gakonst/ethers-rs/pull/570)
|
- re-export error types for `Http` and `Ws` providers in [#570](https://github.com/gakonst/ethers-rs/pull/570)
|
||||||
- add a method on the `Middleware` to broadcast a tx with a series of escalating gas prices via [#566](https://github.com/gakonst/ethers-rs/pull/566)
|
- add a method on the `Middleware` to broadcast a tx with a series of escalating gas prices via [#566](https://github.com/gakonst/ethers-rs/pull/566)
|
||||||
|
- Remove unnecessary `Serialize` constraint to `R` (the Response type) in the `request` method of `JsonRpcClient`.
|
||||||
|
- Fix `http Provider` data race when generating new request `id`s.
|
||||||
|
|
||||||
### 0.5.3
|
### 0.5.3
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ pub trait JsonRpcClient: Debug + Send + Sync {
|
||||||
async fn request<T, R>(&self, method: &str, params: T) -> Result<R, Self::Error>
|
async fn request<T, R>(&self, method: &str, params: T) -> Result<R, Self::Error>
|
||||||
where
|
where
|
||||||
T: Debug + Serialize + Send + Sync,
|
T: Debug + Serialize + Send + Sync,
|
||||||
R: Serialize + DeserializeOwned;
|
R: DeserializeOwned;
|
||||||
}
|
}
|
||||||
|
|
||||||
use ethers_core::types::*;
|
use ethers_core::types::*;
|
||||||
|
|
|
@ -68,8 +68,7 @@ impl JsonRpcClient for Provider {
|
||||||
method: &str,
|
method: &str,
|
||||||
params: T,
|
params: T,
|
||||||
) -> Result<R, ClientError> {
|
) -> Result<R, ClientError> {
|
||||||
let next_id = self.id.load(Ordering::SeqCst) + 1;
|
let next_id = self.id.fetch_add(1, Ordering::SeqCst);
|
||||||
self.id.store(next_id, Ordering::SeqCst);
|
|
||||||
|
|
||||||
let payload = Request::new(next_id, method, params);
|
let payload = Request::new(next_id, method, params);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue