From 7d3cd0a703c58ee718a7ae472de7cef3b68a41c0 Mon Sep 17 00:00:00 2001 From: Miraland Labs Date: Sat, 10 Aug 2024 22:33:38 +0800 Subject: [PATCH] retry to get config account --- src/dynamic_fee.rs | 2 +- src/utils.rs | 24 ++++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/dynamic_fee.rs b/src/dynamic_fee.rs index 45150fa..f3ecb64 100644 --- a/src/dynamic_fee.rs +++ b/src/dynamic_fee.rs @@ -94,7 +94,7 @@ impl Miner { } }; - // // Send request in one steop + // // Send request in one step // let response: Value = client // .post(rpc_url) // .json(&body) diff --git a/src/utils.rs b/src/utils.rs index 2a1b511..d2b09d5 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -25,10 +25,26 @@ pub async fn _get_treasury(client: &RpcClient) -> Treasury { } pub async fn get_config(client: &RpcClient) -> Config { - let data = client - .get_account_data(&CONFIG_ADDRESS) - .await - .expect("Failed to get config account"); + // MI: vanilla + // let data = client + // .get_account_data(&CONFIG_ADDRESS) + // .await + // .expect("Failed to get config account"); + + let data: Vec; + loop { + match client.get_account_data(&CONFIG_ADDRESS).await { + Ok(d) => { + data = d; + break; + } + Err(e) => { + println!("get config account error: {:?}", e); + println!("retry to get config account..."); + } + } + } + *Config::try_from_bytes(&data).expect("Failed to parse config account") }