@@ -884,6 +884,29 @@ static void GetWalletBalances(UniValue& result)
884
884
result.pushKV (" balances" , balances);
885
885
}
886
886
887
+ /* *
888
+ * GetProgressBar contructs a progress bar with 5% intervals.
889
+ *
890
+ * @param[in] progress The proportion of the progress bar to be filled between 0 and 1.
891
+ * @param[out] progress_bar String representation of the progress bar.
892
+ */
893
+ static void GetProgressBar (double progress, std::string& progress_bar)
894
+ {
895
+ if (progress < 0 || progress > 1 ) return ;
896
+
897
+ static constexpr double INCREMENT{0.05 };
898
+ static const std::string COMPLETE_BAR{" \u2592 " };
899
+ static const std::string INCOMPLETE_BAR{" \u2591 " };
900
+
901
+ for (int i = 0 ; i < progress / INCREMENT; ++i) {
902
+ progress_bar += COMPLETE_BAR;
903
+ }
904
+
905
+ for (int i = 0 ; i < (1 - progress) / INCREMENT; ++i) {
906
+ progress_bar += INCOMPLETE_BAR;
907
+ }
908
+ }
909
+
887
910
/* *
888
911
* ParseGetInfoResult takes in -getinfo result in UniValue object and parses it
889
912
* into a user friendly UniValue string to be printed on the console.
@@ -926,7 +949,17 @@ static void ParseGetInfoResult(UniValue& result)
926
949
std::string result_string = strprintf (" %sChain: %s%s\n " , BLUE, result[" chain" ].getValStr (), RESET);
927
950
result_string += strprintf (" Blocks: %s\n " , result[" blocks" ].getValStr ());
928
951
result_string += strprintf (" Headers: %s\n " , result[" headers" ].getValStr ());
929
- result_string += strprintf (" Verification progress: %.4f%%\n " , result[" verificationprogress" ].get_real () * 100 );
952
+
953
+ const double ibd_progress{result[" verificationprogress" ].get_real ()};
954
+ std::string ibd_progress_bar;
955
+ // Display the progress bar only if IBD progress is less than 99%
956
+ if (ibd_progress < 0.99 ) {
957
+ GetProgressBar (ibd_progress, ibd_progress_bar);
958
+ // Add padding between progress bar and IBD progress
959
+ ibd_progress_bar += " " ;
960
+ }
961
+
962
+ result_string += strprintf (" Verification progress: %s%.4f%%\n " , ibd_progress_bar, ibd_progress * 100 );
930
963
result_string += strprintf (" Difficulty: %s\n\n " , result[" difficulty" ].getValStr ());
931
964
932
965
result_string += strprintf (
0 commit comments