Skip to content
This repository has been archived by the owner on Dec 12, 2018. It is now read-only.

Rewards should now respect main enable and autocontribute toggles #87

Merged
merged 1 commit into from
Sep 7, 2018
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
2 changes: 2 additions & 0 deletions include/bat/ledger/ledger.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ class LEDGER_EXPORT Ledger {
const ledger::PublisherInfoFilter& filter,
GetPublisherInfoListCallback callback) = 0;

virtual void SetRewardsMainEnabled(bool enabled) = 0;
virtual void SetPublisherMinVisitTime(uint64_t duration_in_seconds) = 0;
virtual void SetPublisherMinVisits(unsigned int visits) = 0;
virtual void SetPublisherAllowNonVerified(bool allow) = 0;
Expand All @@ -141,6 +142,7 @@ class LEDGER_EXPORT Ledger {
virtual const std::string& GetETHAddress() const = 0;
virtual const std::string& GetLTCAddress() const = 0;
virtual uint64_t GetReconcileStamp() const = 0;
virtual bool GetRewardsMainEnabled() const = 0;
virtual uint64_t GetPublisherMinVisitTime() const = 0; // In milliseconds
virtual unsigned int GetPublisherMinVisits() const = 0;
virtual bool GetPublisherAllowNonVerified() const = 0;
Expand Down
9 changes: 9 additions & 0 deletions src/bat_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,15 @@ double BatClient::getContributionAmount() const {
return state_->fee_amount_;
}

void BatClient::setRewardsMainEnabled(const bool& enabled) {
state_->rewards_enabled_ = enabled;
saveState();
}

bool BatClient::getRewardsMainEnabled() const {
return state_->rewards_enabled_;
}

void BatClient::setAutoContribute(const bool& enabled) {
state_->auto_contribute_ = enabled;
saveState();
Expand Down
2 changes: 2 additions & 0 deletions src/bat_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ class BatClient {
explicit BatClient(bat_ledger::LedgerImpl* ledger);
~BatClient();

void setRewardsMainEnabled(const bool& enabled);
bool getRewardsMainEnabled() const;
bool loadState(const std::string& data);
void registerPersona();
void requestCredentialsCallback(bool result, const std::string& response);
Expand Down
11 changes: 9 additions & 2 deletions src/bat_helper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,8 @@ static bool ignore_ = false;
settings_(AD_FREE_SETTINGS),
fee_amount_(0),
days_(0),
auto_contribute_(true) {}
auto_contribute_(true),
rewards_enabled_(true) {}

CLIENT_STATE_ST::CLIENT_STATE_ST(const CLIENT_STATE_ST& other) {
walletInfo_ = other.walletInfo_;
Expand All @@ -529,6 +530,7 @@ static bool ignore_ = false;
rulesetV2_ = other.rulesetV2_;
batch_ = other.batch_;
auto_contribute_ = other.auto_contribute_;
rewards_enabled_ = other.rewards_enabled_;
}

CLIENT_STATE_ST::~CLIENT_STATE_ST() {}
Expand Down Expand Up @@ -557,7 +559,8 @@ static bool ignore_ = false;
d.HasMember("ruleset") && d["ruleset"].IsString() &&
d.HasMember("rulesetV2") && d["rulesetV2"].IsString() &&
d.HasMember("batch") && d["batch"].IsArray() &&
d.HasMember("auto_contribute") && d["auto_contribute"].IsBool()
d.HasMember("auto_contribute") && d["auto_contribute"].IsBool() &&
d.HasMember("rewards_enabled") && d["rewards_enabled"].IsBool()
);
}

Expand All @@ -582,6 +585,7 @@ static bool ignore_ = false;
fee_amount_ = d["fee_amount"].GetDouble();
days_ = d["days"].GetUint();
auto_contribute_ = d["auto_contribute"].GetBool();
rewards_enabled_ = d["rewards_enabled"].GetBool();

for (const auto & i : d["transactions"].GetArray()) {
rapidjson::StringBuffer sb;
Expand Down Expand Up @@ -659,6 +663,9 @@ static bool ignore_ = false;
writer.String("days");
writer.Uint(data.days_);

writer.String("rewards_enabled");
writer.Bool(data.rewards_enabled_);

writer.String("auto_contribute");
writer.Bool(data.auto_contribute_);

Expand Down
1 change: 1 addition & 0 deletions src/bat_helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ namespace braveledger_bat_helper {
std::vector<BATCH_VOTES_ST> batch_;
GRANT grant_;
bool auto_contribute_ = true;
bool rewards_enabled_ = true;
};

struct REPORT_BALANCE_ST {
Expand Down
24 changes: 13 additions & 11 deletions src/bat_publishers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -91,17 +91,19 @@ void BatPublishers::MakePayment(const ledger::PaymentData& payment_data) {
void BatPublishers::saveVisit(const std::string& publisher_id,
const ledger::VisitData& visit_data,
const uint64_t& duration) {
if (publisher_id.empty() || (!ignoreMinTime(publisher_id) &&
duration < state_->min_pubslisher_duration_))
return;

auto filter = CreatePublisherFilter(publisher_id,
ledger::PUBLISHER_CATEGORY::AUTO_CONTRIBUTE,
visit_data.local_month,
visit_data.local_year);
ledger_->GetPublisherInfo(filter,
std::bind(&BatPublishers::saveVisitInternal, this,
publisher_id, visit_data, duration, _1, _2));
if (ledger_->GetRewardsMainEnabled() && ledger_->GetAutoContribute()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: we could just return if either of them are false, so that we don't have this big wrap @jasonrsadler

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#94 puts this in separate function

if (publisher_id.empty() || (!ignoreMinTime(publisher_id) &&
duration < state_->min_pubslisher_duration_))
return;

auto filter = CreatePublisherFilter(publisher_id,
ledger::PUBLISHER_CATEGORY::AUTO_CONTRIBUTE,
visit_data.local_month,
visit_data.local_year);
ledger_->GetPublisherInfo(filter,
std::bind(&BatPublishers::saveVisitInternal, this,
publisher_id, visit_data, duration, _1, _2));
}
}

ledger::PublisherInfoFilter BatPublishers::CreatePublisherFilter(
Expand Down
8 changes: 8 additions & 0 deletions src/ledger_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,10 @@ void LedgerImpl::GetPublisherInfoList(uint32_t start, uint32_t limit,
ledger_client_->LoadPublisherInfoList(start, limit, filter, callback);
}

void LedgerImpl::SetRewardsMainEnabled(bool enabled) {
bat_client_->setRewardsMainEnabled(enabled);
}

void LedgerImpl::SetPublisherMinVisitTime(uint64_t duration) { // In seconds
bat_publishers_->setPublisherMinVisitTime(duration);
}
Expand All @@ -338,6 +342,10 @@ void LedgerImpl::SetAutoContribute(bool enabled) {
bat_client_->setAutoContribute(enabled);
}

bool LedgerImpl::GetRewardsMainEnabled() const {
return bat_client_->getRewardsMainEnabled();
}

uint64_t LedgerImpl::GetPublisherMinVisitTime() const {
return bat_publishers_->getPublisherMinVisitTime();
}
Expand Down
2 changes: 2 additions & 0 deletions src/ledger_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class LedgerImpl : public ledger::Ledger,
const ledger::PublisherInfoFilter& filter,
ledger::GetPublisherInfoListCallback callback) override;

void SetRewardsMainEnabled(bool enabled) override;
void SetPublisherMinVisitTime(uint64_t duration_in_seconds) override;
void SetPublisherMinVisits(unsigned int visits) override;
void SetPublisherAllowNonVerified(bool allow) override;
Expand All @@ -76,6 +77,7 @@ class LedgerImpl : public ledger::Ledger,
const std::string& GetETHAddress() const override;
const std::string& GetLTCAddress() const override;
uint64_t GetReconcileStamp() const override;
bool GetRewardsMainEnabled() const override;
uint64_t GetPublisherMinVisitTime() const override; // In milliseconds
unsigned int GetPublisherMinVisits() const override;
bool GetPublisherAllowNonVerified() const override;
Expand Down