reconnect needs to clear more state
This commit is contained in:
parent
dc30bdcef3
commit
519c312e8d
@ -259,9 +259,24 @@ impl Web3Connection {
|
|||||||
{
|
{
|
||||||
let mut provider = self.provider.write().await;
|
let mut provider = self.provider.write().await;
|
||||||
|
|
||||||
|
// our provider doesn't work anymore
|
||||||
*provider = None;
|
*provider = None;
|
||||||
|
|
||||||
// TODO: if this fails, keep retrying
|
// reset sync status
|
||||||
|
{
|
||||||
|
let mut head_block_id = self.head_block_id.write();
|
||||||
|
*head_block_id = None;
|
||||||
|
}
|
||||||
|
|
||||||
|
// tell the block subscriber that we don't have any blocks
|
||||||
|
if let Some(block_sender) = &block_sender {
|
||||||
|
block_sender
|
||||||
|
.send_async((None, self.clone()))
|
||||||
|
.await
|
||||||
|
.context("block_sender during reconnect clear")?;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: if this fails, keep retrying! otherwise it crashes and doesn't try again!
|
||||||
let new_provider = Web3Provider::from_str(&self.url, http_client)
|
let new_provider = Web3Provider::from_str(&self.url, http_client)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
@ -299,6 +314,7 @@ impl Web3Connection {
|
|||||||
) -> anyhow::Result<()> {
|
) -> anyhow::Result<()> {
|
||||||
match new_head_block {
|
match new_head_block {
|
||||||
Ok(None) => {
|
Ok(None) => {
|
||||||
|
// TODO: i think this should clear the local block and then update over the block sender
|
||||||
todo!("handle no block")
|
todo!("handle no block")
|
||||||
}
|
}
|
||||||
Ok(Some(mut new_head_block)) => {
|
Ok(Some(mut new_head_block)) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user