Add pub fn initialize_nonce in NonceMiddleManager (#840)
* Public function added "initialize_nonce" Initialize the nonce manager with the current nonce * Update CHANGELOG.md * return generic * Added current nonce as return value Will now compile. * Load nonce to return, fixes compile. * chore: fmt Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
This commit is contained in:
parent
dd915c99f6
commit
2b178e9cf7
|
@ -182,6 +182,7 @@
|
|||
[#568](https://github.com/gakonst/ethers-rs/pull/568)
|
||||
- Removes GasNow as a gas price oracle
|
||||
[#508](https://github.com/gakonst/ethers-rs/pull/508)
|
||||
- add initialize_nonce public function to initialize NonceMiddleManager
|
||||
|
||||
### 0.5.3
|
||||
|
||||
|
|
|
@ -30,6 +30,24 @@ where
|
|||
nonce.into()
|
||||
}
|
||||
|
||||
pub async fn initialize_nonce(
|
||||
&self,
|
||||
block: Option<BlockId>,
|
||||
) -> Result<U256, NonceManagerError<M>> {
|
||||
// initialize the nonce the first time the manager is called
|
||||
if !self.initialized.load(Ordering::SeqCst) {
|
||||
let nonce = self
|
||||
.inner
|
||||
.get_transaction_count(self.address, block)
|
||||
.await
|
||||
.map_err(FromErr::from)?;
|
||||
self.nonce.store(nonce.as_u64(), Ordering::SeqCst);
|
||||
self.initialized.store(true, Ordering::SeqCst);
|
||||
}
|
||||
// return current nonce
|
||||
Ok(self.nonce.load(Ordering::SeqCst).into())
|
||||
}
|
||||
|
||||
async fn get_transaction_count_with_manager(
|
||||
&self,
|
||||
block: Option<BlockId>,
|
||||
|
|
Loading…
Reference in New Issue