Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 25 additions & 18 deletions src/Makefile.qt.include
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,12 @@ GRIDCOINRESEARCH_QT_CPP = \
qt/winshutdownmonitor.cpp

RES_ICONS = \
qt/res/icons/2tx_cpumined.png \
qt/res/icons/add.png \
qt/res/icons/gridcoin.ico \
qt/res/icons/beacon_green.svg \
qt/res/icons/beacon_grey.svg \
qt/res/icons/beacon_red.svg \
qt/res/icons/beacon_yellow.svg \
qt/res/icons/bitcoin_testnet.ico \
qt/res/icons/block.png \
qt/res/icons/chat.png \
Expand All @@ -240,11 +244,11 @@ RES_ICONS = \
qt/res/icons/clock4.png \
qt/res/icons/clock5.png \
qt/res/icons/configure.png \
qt/res/icons/connect0_16.png \
qt/res/icons/connect1_16.png \
qt/res/icons/connect2_16.png \
qt/res/icons/connect3_16.png \
qt/res/icons/connect4_16.png \
qt/res/icons/connect0.svg \
qt/res/icons/connect1.svg \
qt/res/icons/connect2.svg \
qt/res/icons/connect3.svg \
qt/res/icons/connect4.svg \
qt/res/icons/debugwindow.png \
qt/res/icons/edit.png \
qt/res/icons/editcopy.png \
Expand All @@ -253,33 +257,36 @@ RES_ICONS = \
qt/res/icons/export.png \
qt/res/icons/filesave.png \
qt/res/icons/gold_cpumined.gif \
qt/res/icons/gray_scraper.svg \
qt/res/icons/green_check.svg \
qt/res/icons/green_scraper.svg \
qt/res/icons/gridcoin.ico \
qt/res/icons/key.png \
qt/res/icons/notsynced.svg \
qt/res/icons/overview2.png \
qt/res/icons/qrcode.png \
qt/res/icons/quit.png \
qt/res/icons/remove.png \
qt/res/icons/rsz_chat.png \
qt/res/icons/staking_off.png \
qt/res/icons/staking_on.png \
qt/res/icons/staking_off.svg \
qt/res/icons/staking_on.svg \
qt/res/icons/statistics.png \
qt/res/icons/notsynced.png \
qt/res/icons/synced.png \
qt/res/icons/toolbar.png \
qt/res/icons/transaction_conflicted.png \
qt/res/icons/transaction0.png \
qt/res/icons/transaction2.png \
qt/res/icons/transaction_conflicted.png \
qt/res/icons/tx2.png \
qt/res/icons/2tx_cpumined.png \
qt/res/icons/tx_minedoie_WOEI3ooIzGHI.png \
qt/res/icons/www.png \
qt/res/icons/wwww.png \
qt/res/icons/tx_inout.svg \
qt/res/icons/tx_input.svg \
qt/res/icons/tx_mined_ss.svg \
qt/res/icons/tx_mined.svg \
qt/res/icons/tx_minedoie_WOEI3ooIzGHI.png \
qt/res/icons/tx_output.svg \
qt/res/icons/tx_por.svg \
qt/res/icons/tx_mined_ss.svg \
qt/res/icons/tx_por_ss.svg \
qt/res/icons/tx_por.svg \
qt/res/icons/tx2.png \
qt/res/icons/white_and_red_x.svg \
qt/res/icons/www.png \
qt/res/icons/wwww.png \
qt/res/icons/icons_native/overview.svg \
qt/res/icons/icons_light/overview.svg \
qt/res/icons/icons_dark/overview.svg \
Expand Down
24 changes: 24 additions & 0 deletions src/beacon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
#include "appcache.h"
#include "contract/contract.h"
#include "key.h"
#include "neuralnet/researcher.h"
#include "neuralnet/tally.h"

std::string RetrieveBeaconValueWithMaxAge(const std::string& cpid, int64_t iMaxSeconds);
std::string ExtractXML(const std::string& XMLdata, const std::string& key, const std::string& key_end);
Expand Down Expand Up @@ -316,3 +318,25 @@ BeaconConsensus GetConsensusBeaconList()

return Consensus;
}

// -------------------------- Both In and Out
BeaconStatus GetBeaconStatus(std::string& sCPID)
{
BeaconStatus beacon_status;

LOCK(cs_main);

if (sCPID.empty())
{
sCPID = NN::GetPrimaryCpid();
}

beacon_status.sPubKey = GetBeaconPublicKey(sCPID, false);
beacon_status.iBeaconTimestamp = BeaconTimeStamp(sCPID);
beacon_status.timestamp = TimestampToHRDate(beacon_status.iBeaconTimestamp);
beacon_status.hasBeacon = HasActiveBeacon(sCPID);
beacon_status.dPriorSBMagnitude = NN::Tally::GetMagnitude(NN::MiningId::Parse(sCPID));
beacon_status.is_mine = (sCPID == NN::GetPrimaryCpid());

return beacon_status;
}
18 changes: 18 additions & 0 deletions src/beacon.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,17 @@ struct BeaconConsensus
BeaconMap mBeaconMap;
};

//Note this should be replaced when we redo the beacon structures...
struct BeaconStatus
{
std::string sPubKey;
int64_t iBeaconTimestamp;
std::string timestamp;
bool hasBeacon;
double dPriorSBMagnitude;
bool is_mine;
};

//!
//! \brief Generate beacon key pair.
//!
Expand Down Expand Up @@ -100,3 +111,10 @@ bool ImportBeaconKeysFromConfig(const std::string& cpid, CWallet* wallet);
//! \return A list of active beacons.
//!
BeaconConsensus GetConsensusBeaconList();

//!
//! \brief Get beacon status for a specified CPID.
//!
//! \return Beacon status structure for specific CPID.
//!
BeaconStatus GetBeaconStatus(std::string& sCPID);
45 changes: 19 additions & 26 deletions src/neuralnet/researcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,31 +44,6 @@ std::string LowerUnderscore(std::string data)
return data;
}

//!
//! \brief Determine whether the wallet must run in investor mode before trying
//! to load BOINC CPIDs.
//!
//! \return \c true if the user explicitly configured investor mode or failed
//! to input a valid email address.
//!
bool ConfiguredForInvestorMode()
{
if (GetBoolArg("-investor", false)) {
LogPrintf("Investor mode configured. Skipping CPID import.");
return true;
}

if (Researcher::Email().empty()) {
LogPrintf(
"WARNING: Please set 'email=<your BOINC account email>' in "
"gridcoinresearch.conf. Continuing in investor mode.");

return true;
}

return false;
}

//!
//! \brief Fetch the contents of BOINC's client_state.xml file from disk.
//!
Expand Down Expand Up @@ -507,14 +482,32 @@ std::string Researcher::Email()
return email;
}

bool Researcher::ConfiguredForInvestorMode(bool log)
{
if (GetBoolArg("-investor", false)) {
if (log) LogPrintf("Investor mode configured. Skipping CPID import.");
return true;
}

if (Researcher::Email().empty()) {
if (log) LogPrintf(
"WARNING: Please set 'email=<your BOINC account email>' in "
"gridcoinresearch.conf. Continuing in investor mode.");

return true;
}

return false;
}

ResearcherPtr Researcher::Get()
{
return std::atomic_load(&researcher);
}

void Researcher::Reload()
{
if (ConfiguredForInvestorMode()) {
if (ConfiguredForInvestorMode(true)) {
StoreResearcher(Researcher()); // Investor
return;
}
Expand Down
9 changes: 9 additions & 0 deletions src/neuralnet/researcher.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,15 @@ class Researcher
//!
static std::string Email();

//!
//! \brief Determine whether the wallet must run in investor mode before trying
//! to load BOINC CPIDs.
//!
//! \return \c true if the user explicitly configured investor mode or failed
//! to input a valid email address.
//!
static bool ConfiguredForInvestorMode(bool log = false);

//!
//! \brief Get the current global researcher context.
//!
Expand Down
25 changes: 16 additions & 9 deletions src/qt/bitcoin.qrc
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
<RCC>
<qresource prefix="/icons">
<file alias="quit">res/icons/quit.png</file>
<file alias="connect_0">res/icons/connect0_16.png</file>
<file alias="connect_1">res/icons/connect1_16.png</file>
<file alias="connect_2">res/icons/connect2_16.png</file>
<file alias="connect_3">res/icons/connect3_16.png</file>
<file alias="connect_4">res/icons/connect4_16.png</file>
<file alias="transaction_0">res/icons/transaction0.png</file>
<file alias="transaction_confirmed">res/icons/transaction2.png</file>
<file alias="transaction_conflicted">res/icons/transaction_conflicted.png</file>
Expand All @@ -20,14 +15,11 @@
<file alias="add">res/icons/add.png</file>
<file alias="edit">res/icons/edit.png</file>
<file alias="export">res/icons/export.png</file>
<file alias="synced">res/icons/synced.png</file>
<file alias="remove">res/icons/remove.png</file>
<file alias="key">res/icons/key.png</file>
<file alias="filesave">res/icons/filesave.png</file>
<file alias="qrcode">res/icons/qrcode.png</file>
<file alias="debugwindow">res/icons/debugwindow.png</file>
<file alias="staking_off">res/icons/staking_off.png</file>
<file alias="staking_on">res/icons/staking_on.png</file>
<file alias="block">res/icons/block.png</file>
<file alias="ex">res/icons/ex.png</file>
<file alias="www">res/icons/www.png</file>
Expand Down Expand Up @@ -63,7 +55,22 @@
<file alias="tx_mined_ss">res/icons/tx_mined_ss.svg</file>
<file alias="tx_cpumined">res/icons/tx_por.svg</file>
<file alias="tx_cpumined_ss">res/icons/tx_por_ss.svg</file>
<file alias="notsynced">res/icons/notsynced.png</file>
<file alias="beacon_green">res/icons/beacon_green.svg</file>
<file alias="beacon_grey">res/icons/beacon_grey.svg</file>
<file alias="beacon_red">res/icons/beacon_red.svg</file>
<file alias="beacon_yellow">res/icons/beacon_yellow.svg</file>
<file alias="staking_off">res/icons/staking_off.svg</file>
<file alias="staking_on">res/icons/staking_on.svg</file>
<file alias="gray_scraper">res/icons/gray_scraper.svg</file>
<file alias="green_scraper">res/icons/green_scraper.svg</file>
<file alias="connect_0">res/icons/connect0.svg</file>
<file alias="connect_1">res/icons/connect1.svg</file>
<file alias="connect_2">res/icons/connect2.svg</file>
<file alias="connect_3">res/icons/connect3.svg</file>
<file alias="connect_4">res/icons/connect4.svg</file>
<file alias="notsynced">res/icons/notsynced.svg</file>
<file alias="synced">res/icons/green_check.svg</file>
<file alias="white_and_red_x">res/icons/white_and_red_x.svg</file>
</qresource>
<qresource prefix="/images">
<file alias="splash">res/images/splash3.png</file>
Expand Down
Loading