From ce8e72c1b2b6e0509590eca3ec083778c40ea1e4 Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Thu, 21 Nov 2019 10:24:06 +0100 Subject: [PATCH 1/4] Adds recurring tip struct --- components/brave_rewards/browser/BUILD.gn | 2 - .../database/publisher_info_database.cc | 11 +++--- .../database/publisher_info_database.h | 4 +- .../browser/recurring_donation.cc | 21 ---------- .../browser/recurring_donation.h | 27 ------------- .../browser/rewards_service_impl.cc | 39 ++++++++----------- .../browser/rewards_service_impl.h | 2 +- .../bat_ledger_client_mojo_proxy.cc | 2 +- .../bat_ledger/bat_ledger_client_mojo_proxy.h | 2 +- .../services/bat_ledger/bat_ledger_impl.cc | 2 +- .../services/bat_ledger/bat_ledger_impl.h | 2 +- .../public/cpp/ledger_client_mojo_proxy.cc | 2 +- .../public/cpp/ledger_client_mojo_proxy.h | 2 +- .../public/interfaces/bat_ledger.mojom | 4 +- .../internal/confirmations_client_mock.h | 2 +- .../include/bat/ledger/ledger.h | 2 +- .../include/bat/ledger/ledger_client.h | 2 +- .../include/bat/ledger/mojom_structs.h | 3 ++ .../bat/ledger/public/interfaces/ledger.mojom | 6 +++ .../src/bat/ledger/internal/ledger_impl.cc | 7 ++-- .../src/bat/ledger/internal/ledger_impl.h | 2 +- vendor/brave-ios/Ledger/BATBraveLedger.mm | 16 ++++---- .../Ledger/Generated/NativeLedgerClient.h | 2 +- .../Ledger/Generated/NativeLedgerClient.mm | 2 +- .../Generated/NativeLedgerClientBridge.h | 2 +- 25 files changed, 60 insertions(+), 108 deletions(-) delete mode 100644 components/brave_rewards/browser/recurring_donation.cc delete mode 100644 components/brave_rewards/browser/recurring_donation.h diff --git a/components/brave_rewards/browser/BUILD.gn b/components/brave_rewards/browser/BUILD.gn index 3f6a4f1a4e94..64cd2c9675ab 100644 --- a/components/brave_rewards/browser/BUILD.gn +++ b/components/brave_rewards/browser/BUILD.gn @@ -39,8 +39,6 @@ source_set("browser") { "contribution_info.h", "reconcile_info.cc", "reconcile_info.h", - "recurring_donation.cc", - "recurring_donation.h", "rewards_internals_info.cc", "rewards_internals_info.h", "balance.cc", diff --git a/components/brave_rewards/browser/database/publisher_info_database.cc b/components/brave_rewards/browser/database/publisher_info_database.cc index d626d1780849..92a1cdf21534 100644 --- a/components/brave_rewards/browser/database/publisher_info_database.cc +++ b/components/brave_rewards/browser/database/publisher_info_database.cc @@ -16,7 +16,6 @@ #include "sql/statement.h" #include "sql/transaction.h" #include "brave/components/brave_rewards/browser/content_site.h" -#include "brave/components/brave_rewards/browser/recurring_donation.h" #include "brave/components/brave_rewards/browser/rewards_p3a.h" #include "brave/components/brave_rewards/browser/database/publisher_info_database.h" #include "brave/components/brave_rewards/browser/database/database_util.h" @@ -792,13 +791,13 @@ bool PublisherInfoDatabase::CreateRecurringTipsIndex() { } bool PublisherInfoDatabase::InsertOrUpdateRecurringTip( - const brave_rewards::RecurringDonation& info) { + ledger::RecurringTipPtr info) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); bool initialized = Init(); DCHECK(initialized); - if (!initialized || info.publisher_key.empty()) { + if (!initialized || !info || info->publisher_key.empty()) { return false; } @@ -808,9 +807,9 @@ bool PublisherInfoDatabase::InsertOrUpdateRecurringTip( "(publisher_id, amount, added_date) " "VALUES (?, ?, ?)")); - statement.BindString(0, info.publisher_key); - statement.BindDouble(1, info.amount); - statement.BindInt64(2, info.added_date); + statement.BindString(0, info->publisher_key); + statement.BindDouble(1, info->amount); + statement.BindInt64(2, info->created_at); return statement.Run(); } diff --git a/components/brave_rewards/browser/database/publisher_info_database.h b/components/brave_rewards/browser/database/publisher_info_database.h index 4a6ba4b0a336..58bded4fdde3 100644 --- a/components/brave_rewards/browser/database/publisher_info_database.h +++ b/components/brave_rewards/browser/database/publisher_info_database.h @@ -26,7 +26,6 @@ #include "brave/components/brave_rewards/browser/database/database_server_publisher_info.h" #include "brave/components/brave_rewards/browser/database/database_unblinded_token.h" #include "brave/components/brave_rewards/browser/pending_contribution.h" -#include "brave/components/brave_rewards/browser/recurring_donation.h" #include "build/build_config.h" #include "sql/database.h" #include "sql/init_status.h" @@ -82,8 +81,7 @@ class PublisherInfoDatabase { ledger::PublisherInfoPtr GetMediaPublisherInfo( const std::string& media_key); - bool InsertOrUpdateRecurringTip( - const brave_rewards::RecurringDonation& info); + bool InsertOrUpdateRecurringTip(ledger::RecurringTipPtr info); void GetRecurringTips(ledger::PublisherInfoList* list); diff --git a/components/brave_rewards/browser/recurring_donation.cc b/components/brave_rewards/browser/recurring_donation.cc deleted file mode 100644 index c40d6edc6b4b..000000000000 --- a/components/brave_rewards/browser/recurring_donation.cc +++ /dev/null @@ -1,21 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include "brave/components/brave_rewards/browser/recurring_donation.h" - -namespace brave_rewards { - - RecurringDonation::RecurringDonation() : - amount(0), - added_date(0) { - } - - RecurringDonation::~RecurringDonation() { } - - RecurringDonation::RecurringDonation(const RecurringDonation &data) { - publisher_key = data.publisher_key; - amount = data.amount; - added_date = data.added_date; - } - -} // namespace brave_rewards diff --git a/components/brave_rewards/browser/recurring_donation.h b/components/brave_rewards/browser/recurring_donation.h deleted file mode 100644 index 176fdf59a172..000000000000 --- a/components/brave_rewards/browser/recurring_donation.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2019 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_RECURRING_DONATION_H_ -#define BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_RECURRING_DONATION_H_ - -#include - -// TODO(nejczdovc): Rename to RecurringTip - -namespace brave_rewards { - -struct RecurringDonation { - RecurringDonation(); - ~RecurringDonation(); - RecurringDonation(const RecurringDonation& data); - - std::string publisher_key; - double amount = 0; - uint32_t added_date = 0; -}; - -} // namespace brave_rewards - -#endif // BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_RECURRING_DONATION_H_ diff --git a/components/brave_rewards/browser/rewards_service_impl.cc b/components/brave_rewards/browser/rewards_service_impl.cc index af60fd850a32..94a89701873f 100644 --- a/components/brave_rewards/browser/rewards_service_impl.cc +++ b/components/brave_rewards/browser/rewards_service_impl.cc @@ -2476,15 +2476,6 @@ void RewardsServiceImpl::SaveContributionInfo(const std::string& probi, type)); } -bool SaveRecurringTipOnFileTaskRunner( - const brave_rewards::RecurringDonation info, - PublisherInfoDatabase* backend) { - if (backend && backend->InsertOrUpdateRecurringTip(info)) - return true; - - return false; -} - void RewardsServiceImpl::OnSaveRecurringTipUI( SaveRecurringTipCallback callback, const ledger::Result result) { @@ -2501,10 +2492,10 @@ void RewardsServiceImpl::SaveRecurringTipUI( const std::string& publisher_key, const double amount, SaveRecurringTipCallback callback) { - ledger::ContributionInfoPtr info = ledger::ContributionInfo::New(); - info->publisher = publisher_key; - info->value = amount; - info->date = GetCurrentTimestamp(); + ledger::RecurringTipPtr info = ledger::RecurringTip::New(); + info->publisher_key = publisher_key; + info->amount = amount; + info->created_at = GetCurrentTimestamp(); bat_ledger_->SaveRecurringTip( std::move(info), @@ -2524,24 +2515,28 @@ void RewardsServiceImpl::OnRecurringTipSaved( : ledger::Result::LEDGER_ERROR); } +bool SaveRecurringTipOnFileTaskRunner( + ledger::RecurringTipPtr info, + PublisherInfoDatabase* backend) { + if (backend && backend->InsertOrUpdateRecurringTip(std::move(info))) + return true; + + return false; +} + void RewardsServiceImpl::SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) { if (!info) { callback(ledger::Result::NOT_FOUND); return; } - brave_rewards::RecurringDonation new_info; - new_info.publisher_key = info->publisher; - new_info.amount = info->value; - new_info.added_date = info->date; - base::PostTaskAndReplyWithResult(file_task_runner_.get(), FROM_HERE, - base::Bind(&SaveRecurringTipOnFileTaskRunner, - new_info, + base::BindOnce(&SaveRecurringTipOnFileTaskRunner, + std::move(info), publisher_info_backend_.get()), - base::Bind(&RewardsServiceImpl::OnRecurringTipSaved, + base::BindOnce(&RewardsServiceImpl::OnRecurringTipSaved, AsWeakPtr(), callback)); } diff --git a/components/brave_rewards/browser/rewards_service_impl.h b/components/brave_rewards/browser/rewards_service_impl.h index 3f2aaac89870..1592866f410c 100644 --- a/components/brave_rewards/browser/rewards_service_impl.h +++ b/components/brave_rewards/browser/rewards_service_impl.h @@ -590,7 +590,7 @@ class RewardsServiceImpl : public RewardsService, const std::string& publisher_key, const ledger::RewardsType type) override; void SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) override; void GetRecurringTips( diff --git a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc index 65feb87421a3..18c6a4550879 100644 --- a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc +++ b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc @@ -365,7 +365,7 @@ void OnSaveRecurringTip(const ledger::SaveRecurringTipCallback& callback, } void BatLedgerClientMojoProxy::SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) { if (!Connected()) { callback(ledger::Result::LEDGER_ERROR); diff --git a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h index fb8de04005b1..518f94fbdd94 100644 --- a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h +++ b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h @@ -71,7 +71,7 @@ class BatLedgerClientMojoProxy : public ledger::LedgerClient, const std::string& publisher_key, const ledger::RewardsType type) override; void SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) override; void GetRecurringTips(ledger::PublisherInfoListCallback callback) override; void GetOneTimeTips(ledger::PublisherInfoListCallback callback) override; diff --git a/components/services/bat_ledger/bat_ledger_impl.cc b/components/services/bat_ledger/bat_ledger_impl.cc index 2dfe8f460994..7672f77e40e8 100644 --- a/components/services/bat_ledger/bat_ledger_impl.cc +++ b/components/services/bat_ledger/bat_ledger_impl.cc @@ -557,7 +557,7 @@ void BatLedgerImpl::OnSaveRecurringTip( } void BatLedgerImpl::SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, SaveRecurringTipCallback callback) { // deleted in OnSaveRecurringTip auto* holder = new CallbackHolder( diff --git a/components/services/bat_ledger/bat_ledger_impl.h b/components/services/bat_ledger/bat_ledger_impl.h index d561aaa68348..2229447a05c0 100644 --- a/components/services/bat_ledger/bat_ledger_impl.h +++ b/components/services/bat_ledger/bat_ledger_impl.h @@ -146,7 +146,7 @@ class BatLedgerImpl : public mojom::BatLedger, void StartMonthlyContribution() override; void SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, SaveRecurringTipCallback callback) override; void GetRecurringTips(GetRecurringTipsCallback callback) override; diff --git a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc index 3579906717e1..9b4549ed8121 100644 --- a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc +++ b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc @@ -281,7 +281,7 @@ void LedgerClientMojoProxy::OnSaveRecurringTip( } void LedgerClientMojoProxy::SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, SaveRecurringTipCallback callback) { // deleted in OnSaveRecurringTip auto* holder = new CallbackHolder( diff --git a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h index f89267420744..54a0df6052ad 100644 --- a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h +++ b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h @@ -54,7 +54,7 @@ class LedgerClientMojoProxy : public mojom::BatLedgerClient, void FetchFavIcon(const std::string& url, const std::string& favicon_key, FetchFavIconCallback callback) override; void SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, SaveRecurringTipCallback callback) override; void GetRecurringTips(GetRecurringTipsCallback callback) override; diff --git a/components/services/bat_ledger/public/interfaces/bat_ledger.mojom b/components/services/bat_ledger/public/interfaces/bat_ledger.mojom index d8b5e69dbb6c..bd46e9e27671 100644 --- a/components/services/bat_ledger/public/interfaces/bat_ledger.mojom +++ b/components/services/bat_ledger/public/interfaces/bat_ledger.mojom @@ -110,7 +110,7 @@ interface BatLedger { GetTransactionHistory() => (string transactions); GetRewardsInternalsInfo() => (ledger.mojom.RewardsInternalsInfo info); - SaveRecurringTip(ledger.mojom.ContributionInfo info) => (ledger.mojom.Result result); + SaveRecurringTip(ledger.mojom.RecurringTip info) => (ledger.mojom.Result result); GetRecurringTips() => (array list); GetOneTimeTips() => (array list); @@ -179,7 +179,7 @@ interface BatLedgerClient { uint64 window_id); FetchFavIcon(string url, string favicon_key) => (bool success, string favicon_url); - SaveRecurringTip(ledger.mojom.ContributionInfo info) => (ledger.mojom.Result result); + SaveRecurringTip(ledger.mojom.RecurringTip info) => (ledger.mojom.Result result); GetRecurringTips() => ( array publisher_info_list, uint32 next_record); diff --git a/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h b/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h index c9b62f4496b8..68a7a0c83200 100644 --- a/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h +++ b/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h @@ -148,7 +148,7 @@ class MockConfirmationsClient : public ConfirmationsClient { const ledger::RewardsType type)); MOCK_METHOD2(SaveRecurringTip, void( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback)); MOCK_METHOD1(GetRecurringTips, void( diff --git a/vendor/bat-native-ledger/include/bat/ledger/ledger.h b/vendor/bat-native-ledger/include/bat/ledger/ledger.h index 44a67840083c..dfa7145a7a2a 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/ledger.h +++ b/vendor/bat-native-ledger/include/bat/ledger/ledger.h @@ -280,7 +280,7 @@ class LEDGER_EXPORT Ledger { ledger::RewardsInternalsInfoCallback callback) = 0; virtual void SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) = 0; virtual void GetRecurringTips(ledger::PublisherInfoListCallback callback) = 0; diff --git a/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h b/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h index 262d55b9665a..997f9bde7405 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h +++ b/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h @@ -146,7 +146,7 @@ class LEDGER_EXPORT LedgerClient { const ledger::RewardsType type) = 0; virtual void SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) = 0; virtual void GetRecurringTips( diff --git a/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h b/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h index 8f0bd36d58f9..52fe481f3e3d 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h +++ b/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h @@ -96,6 +96,9 @@ using PublisherExclude = mojom::PublisherExclude; using ReconcileInfo = mojom::ReconcileInfo; using ReconcileInfoPtr = mojom::ReconcileInfoPtr; +using RecurringTip = mojom::RecurringTip; +using RecurringTipPtr = mojom::RecurringTipPtr; + using ReportType = mojom::ReportType; using Result = mojom::Result; diff --git a/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom b/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom index a9108b2eddf9..4d567a9d3f17 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom +++ b/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom @@ -370,3 +370,9 @@ struct ClientInfo { Platform platform; OperatingSystem os; }; + +struct RecurringTip { + string publisher_key; + double amount; + uint64 created_at; +}; \ No newline at end of file diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc index 904fa76d336b..6879cf512f09 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc @@ -714,10 +714,11 @@ void LedgerImpl::OnTimer(uint32_t timer_id) { } void LedgerImpl::SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) { - ledger_client_->SaveRecurringTip(std::move(info), - callback); + ledger_client_->SaveRecurringTip( + std::move(info), + callback); } void LedgerImpl::GetRecurringTips( diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h index 3ec8c02b9740..30261760c26f 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h @@ -285,7 +285,7 @@ class LedgerImpl : public ledger::Ledger, const uint32_t date) override; void SaveRecurringTip( - ledger::ContributionInfoPtr info, + ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) override; void GetRecurringTips(ledger::PublisherInfoListCallback callback) override; diff --git a/vendor/brave-ios/Ledger/BATBraveLedger.mm b/vendor/brave-ios/Ledger/BATBraveLedger.mm index e5b0d639a56f..5e0577b32858 100644 --- a/vendor/brave-ios/Ledger/BATBraveLedger.mm +++ b/vendor/brave-ios/Ledger/BATBraveLedger.mm @@ -516,10 +516,10 @@ - (void)listRecurringTips:(void (NS_NOESCAPE ^)(NSArray *))c - (void)addRecurringTipToPublisherWithId:(NSString *)publisherId amount:(double)amount completion:(void (^)(BOOL success))completion { - ledger::ContributionInfoPtr info = ledger::ContributionInfo::New(); - info->publisher = publisherId.UTF8String; - info->value = amount; - info->date = [[NSDate date] timeIntervalSince1970]; + ledger::RecurringTipPtr info = ledger::RecurringTip::New(); + info->publisher_key = publisherId.UTF8String; + info->amount = amount; + info->created_at = [[NSDate date] timeIntervalSince1970]; ledger->SaveRecurringTip(std::move(info), ^(ledger::Result result){ const auto success = (result == ledger::Result::LEDGER_OK); if (success) { @@ -1557,11 +1557,11 @@ - (void)getOneTimeTips:(ledger::PublisherInfoListCallback)callback [self handlePublisherListing:publishers start:0 limit:0 callback:callback]; } -- (void)saveRecurringTip:(ledger::ContributionInfoPtr)info callback:(ledger::SaveRecurringTipCallback)callback +- (void)saveRecurringTip:(ledger::RecurringTipPtr)info callback:(ledger::SaveRecurringTipCallback)callback { - [BATLedgerDatabase insertOrUpdateRecurringTipWithPublisherID:[NSString stringWithUTF8String:info->publisher.c_str()] - amount:info->value - dateAdded:info->date + [BATLedgerDatabase insertOrUpdateRecurringTipWithPublisherID:[NSString stringWithUTF8String:info->publisher_key.c_str()] + amount:info->amount + dateAdded:info->created_at completion:^(BOOL success) { if (!success) { callback(ledger::Result::LEDGER_ERROR); diff --git a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h index 73ae63b74f47..44b506877f36 100644 --- a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h +++ b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h @@ -22,7 +22,7 @@ class NativeLedgerClient : public ledger::LedgerClient { void GetOneTimeTips(ledger::PublisherInfoListCallback callback) override; void GetPendingContributions(ledger::PendingContributionInfoListCallback callback) override; void GetPendingContributionsTotal(ledger::PendingContributionsTotalCallback callback) override; - void SaveRecurringTip(ledger::ContributionInfoPtr info, ledger::SaveRecurringTipCallback callback) override; + void SaveRecurringTip(ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) override; void GetRecurringTips(ledger::PublisherInfoListCallback callback) override; void KillTimer(const uint32_t timer_id) override; void LoadActivityInfo(ledger::ActivityInfoFilterPtr filter, ledger::PublisherInfoCallback callback) override; diff --git a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm index 559a8e8d5846..9c3a712d4290 100644 --- a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm +++ b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm @@ -32,7 +32,7 @@ void NativeLedgerClient::GetPendingContributionsTotal(ledger::PendingContributionsTotalCallback callback) { [bridge_ getPendingContributionsTotal:callback]; } -void NativeLedgerClient::SaveRecurringTip(ledger::ContributionInfoPtr info, ledger::SaveRecurringTipCallback callback) { +void NativeLedgerClient::SaveRecurringTip(ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) { [bridge_ saveRecurringTip:std::move(info) callback:callback]; } void NativeLedgerClient::GetRecurringTips(ledger::PublisherInfoListCallback callback) { diff --git a/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h b/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h index 8c8fbf8967c9..df20f11b79cf 100644 --- a/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h +++ b/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h @@ -15,7 +15,7 @@ - (void)getOneTimeTips:(ledger::PublisherInfoListCallback)callback; - (void)getPendingContributions:(ledger::PendingContributionInfoListCallback)callback; - (void)getPendingContributionsTotal:(ledger::PendingContributionsTotalCallback)callback; -- (void)saveRecurringTip:(ledger::ContributionInfoPtr)info callback:(ledger::SaveRecurringTipCallback)callback; +- (void)saveRecurringTip:(ledger::RecurringTipPtr)info callback:(ledger::SaveRecurringTipCallback)callback; - (void)getRecurringTips:(ledger::PublisherInfoListCallback)callback; - (void)killTimer:(const uint32_t)timer_id; - (void)loadActivityInfo:(ledger::ActivityInfoFilterPtr)filter callback:(ledger::PublisherInfoCallback)callback; From dcd165b975e7574bed2ec18fd9cb615512f3868e Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Wed, 20 Nov 2019 09:16:46 +0100 Subject: [PATCH 2/4] Expends contribution info table Resolves https://github.com/brave/brave-browser/issues/6942 --- browser/ui/webui/brave_rewards_page_ui.cc | 34 +-- browser/ui/webui/brave_tip_ui.cc | 4 +- components/brave_rewards/browser/BUILD.gn | 4 +- .../browser/contribution_info.cc | 25 -- .../brave_rewards/browser/contribution_info.h | 28 --- .../database/database_contribution_info.cc | 213 +++++++++++++++--- .../database/database_contribution_info.h | 13 +- .../database_contribution_info_publishers.cc | 178 +++++++++++++++ .../database_contribution_info_publishers.h | 54 +++++ .../browser/database/database_util.cc | 15 ++ .../browser/database/database_util.h | 4 + .../database/publisher_info_database.cc | 22 +- .../database/publisher_info_database.h | 6 +- .../publisher_info_database_unittest.cc | 153 +++++++++---- .../extension_rewards_service_observer.cc | 2 +- .../extension_rewards_service_observer.h | 11 +- .../rewards_notification_service_impl.cc | 4 +- .../rewards_notification_service_impl.h | 11 +- .../browser/rewards_service_browsertest.cc | 23 +- .../browser/rewards_service_impl.cc | 69 ++---- .../browser/rewards_service_impl.h | 26 +-- .../browser/rewards_service_impl_unittest.cc | 2 +- .../browser/rewards_service_observer.h | 6 +- .../resources/page/actions/rewards_actions.ts | 5 - .../resources/page/brave_rewards_page.tsx | 9 +- .../resources/page/components/tipsBox.tsx | 4 +- .../resources/page/constants/rewards_types.ts | 1 - .../page/reducers/rewards_reducer.ts | 8 - .../bat_ledger_client_mojo_proxy.cc | 26 +-- .../bat_ledger/bat_ledger_client_mojo_proxy.h | 13 +- .../services/bat_ledger/bat_ledger_impl.cc | 16 -- .../services/bat_ledger/bat_ledger_impl.h | 7 - .../public/cpp/ledger_client_mojo_proxy.cc | 33 +-- .../public/cpp/ledger_client_mojo_proxy.h | 16 +- .../public/interfaces/bat_ledger.mojom | 7 +- .../migration/publisher_info_db_v10 | Bin 0 -> 1343488 bytes .../migration/publisher_info_schema_v11.txt | 42 ++++ .../internal/confirmations_client_mock.h | 12 +- .../include/bat/ledger/ledger.h | 8 - .../include/bat/ledger/ledger_client.h | 17 +- .../include/bat/ledger/mojom_structs.h | 5 + .../bat/ledger/public/interfaces/ledger.mojom | 20 +- .../src/bat/ledger/internal/bat_util.cc | 11 + .../src/bat/ledger/internal/bat_util.h | 2 + .../bat/ledger/internal/bat_util_unittest.cc | 20 ++ .../internal/contribution/contribution.cc | 77 +++---- .../internal/contribution/contribution.h | 10 +- .../contribution/contribution_unblinded.cc | 35 +-- .../ledger/internal/contribution/phase_one.cc | 46 ++-- .../src/bat/ledger/internal/ledger_impl.cc | 51 ++--- .../src/bat/ledger/internal/ledger_impl.h | 26 +-- .../internal/test/mock_ledger_client.cc | 4 - .../ledger/internal/test/mock_ledger_client.h | 2 - .../src/bat/ledger/internal/uphold/uphold.cc | 18 +- vendor/brave-ios/Ledger/BATBraveLedger.mm | 13 +- .../Ledger/Generated/NativeLedgerClient.h | 4 +- .../Ledger/Generated/NativeLedgerClient.mm | 8 +- .../Generated/NativeLedgerClientBridge.h | 4 +- 58 files changed, 925 insertions(+), 562 deletions(-) delete mode 100644 components/brave_rewards/browser/contribution_info.cc delete mode 100644 components/brave_rewards/browser/contribution_info.h create mode 100644 components/brave_rewards/browser/database/database_contribution_info_publishers.cc create mode 100644 components/brave_rewards/browser/database/database_contribution_info_publishers.h create mode 100644 test/data/rewards-data/migration/publisher_info_db_v10 create mode 100644 test/data/rewards-data/migration/publisher_info_schema_v11.txt diff --git a/browser/ui/webui/brave_rewards_page_ui.cc b/browser/ui/webui/brave_rewards_page_ui.cc index a452ff2e7e50..841f33b30c33 100644 --- a/browser/ui/webui/brave_rewards_page_ui.cc +++ b/browser/ui/webui/brave_rewards_page_ui.cc @@ -196,11 +196,12 @@ class RewardsDOMHandler : public WebUIMessageHandler, void OnExcludedSitesChanged(brave_rewards::RewardsService* rewards_service, std::string publisher_id, bool excluded) override; - void OnReconcileComplete(brave_rewards::RewardsService* rewards_service, - unsigned int result, - const std::string& viewing_id, - const std::string& probi, - const int32_t type) override; + void OnReconcileComplete( + brave_rewards::RewardsService* rewards_service, + unsigned int result, + const std::string& viewing_id, + const double amount, + const int32_t type) override; void OnPendingContributionSaved( brave_rewards::RewardsService* rewards_service, int result) override; @@ -222,11 +223,6 @@ class RewardsDOMHandler : public WebUIMessageHandler, void OnRecurringTipRemoved(brave_rewards::RewardsService* rewards_service, bool success) override; - void OnContributionSaved( - brave_rewards::RewardsService* rewards_service, - bool success, - int type) override; - void OnPendingContributionRemoved( brave_rewards::RewardsService* rewards_service, int32_t result) override; @@ -992,7 +988,7 @@ void RewardsDOMHandler::OnReconcileComplete( brave_rewards::RewardsService* rewards_service, unsigned int result, const std::string& viewing_id, - const std::string& probi, + const double amount, const int32_t type) { if (web_ui()->CanCallJavascript()) { base::DictionaryValue complete; @@ -1447,22 +1443,6 @@ void RewardsDOMHandler::OnRecurringTipRemoved( "brave_rewards.recurringTipRemoved", base::Value(success)); } -void RewardsDOMHandler::OnContributionSaved( - brave_rewards::RewardsService* rewards_service, - bool success, - int type) { - if (!web_ui()->CanCallJavascript()) { - return; - } - - base::DictionaryValue result; - result.SetBoolean("success", success); - result.SetInteger("type", type); - - web_ui()->CallJavascriptFunctionUnsafe( - "brave_rewards.onContributionSaved", result); -} - void RewardsDOMHandler::SetInlineTipSetting(const base::ListValue* args) { std::string key; args->GetString(0, &key); diff --git a/browser/ui/webui/brave_tip_ui.cc b/browser/ui/webui/brave_tip_ui.cc index 6a116d222f20..fb56aa79c410 100644 --- a/browser/ui/webui/brave_tip_ui.cc +++ b/browser/ui/webui/brave_tip_ui.cc @@ -95,7 +95,7 @@ class RewardsTipDOMHandler : public WebUIMessageHandler, brave_rewards::RewardsService* rewards_service, unsigned int result, const std::string& viewing_id, - const std::string& probi, + const double amount, const int32_t type) override; brave_rewards::RewardsService* rewards_service_; // NOT OWNED @@ -489,7 +489,7 @@ void RewardsTipDOMHandler::OnReconcileComplete( brave_rewards::RewardsService* rewards_service, unsigned int result, const std::string& viewing_id, - const std::string& probi, + const double amount, const int32_t type) { if (!web_ui()->CanCallJavascript()) { return; diff --git a/components/brave_rewards/browser/BUILD.gn b/components/brave_rewards/browser/BUILD.gn index 64cd2c9675ab..cd50049f7478 100644 --- a/components/brave_rewards/browser/BUILD.gn +++ b/components/brave_rewards/browser/BUILD.gn @@ -35,8 +35,6 @@ source_set("browser") { "pending_contribution.h", "publisher_banner.cc", "publisher_banner.h", - "contribution_info.cc", - "contribution_info.h", "reconcile_info.cc", "reconcile_info.h", "rewards_internals_info.cc", @@ -76,6 +74,8 @@ source_set("browser") { sources += [ "database/database_contribution_info.cc", "database/database_contribution_info.h", + "database/database_contribution_info_publishers.cc", + "database/database_contribution_info_publishers.h", "database/database_contribution_queue.cc", "database/database_contribution_queue.h", "database/database_contribution_queue_publishers.cc", diff --git a/components/brave_rewards/browser/contribution_info.cc b/components/brave_rewards/browser/contribution_info.cc deleted file mode 100644 index 6173e0888cef..000000000000 --- a/components/brave_rewards/browser/contribution_info.cc +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (c) 2019 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "brave/components/brave_rewards/browser/contribution_info.h" - -namespace brave_rewards { - -ContributionInfo::ContributionInfo() : - date(0) { -} - -ContributionInfo::~ContributionInfo() = default; - -ContributionInfo::ContributionInfo(const ContributionInfo& data) { - probi = data.probi; - month = data.month; - year = data.year; - type = data.type; - date = data.date; - publisher_key = data.publisher_key; -} - -} // namespace brave_rewards diff --git a/components/brave_rewards/browser/contribution_info.h b/components/brave_rewards/browser/contribution_info.h deleted file mode 100644 index 4efa881181a1..000000000000 --- a/components/brave_rewards/browser/contribution_info.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2019 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_CONTRIBUTION_INFO_H_ -#define BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_CONTRIBUTION_INFO_H_ - -#include - -namespace brave_rewards { - -struct ContributionInfo { - ContributionInfo(); - ~ContributionInfo(); - ContributionInfo(const ContributionInfo& properties); - - std::string probi; - int month; - int year; - int type; - uint32_t date = 0; - std::string publisher_key; -}; - -} // namespace brave_rewards - -#endif // BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_CONTRIBUTION_INFO_H_ diff --git a/components/brave_rewards/browser/database/database_contribution_info.cc b/components/brave_rewards/browser/database/database_contribution_info.cc index f04bdd4f4059..d5dc1d461c4e 100644 --- a/components/brave_rewards/browser/database/database_contribution_info.cc +++ b/components/brave_rewards/browser/database/database_contribution_info.cc @@ -13,14 +13,29 @@ #include "sql/statement.h" #include "sql/transaction.h" +namespace { + double ProbiToDouble(const std::string& probi) { + const int32_t probi_size = 18; + const size_t size = probi.size(); + std::string amount = "0"; + if (size > probi_size) { + amount = probi; + amount.insert(size - probi_size, "."); + } + + return std::stod(amount); + } +} // namespace + namespace brave_rewards { DatabaseContributionInfo::DatabaseContributionInfo(int current_db_version) : - DatabaseTable(current_db_version) { + DatabaseTable(current_db_version), + publishers_(std::make_unique + (current_db_version)) { } -DatabaseContributionInfo::~DatabaseContributionInfo() { -} +DatabaseContributionInfo::~DatabaseContributionInfo() = default; bool DatabaseContributionInfo::Init(sql::Database* db) { if (GetCurrentDBVersion() < minimum_version_) { @@ -37,7 +52,7 @@ bool DatabaseContributionInfo::Init(sql::Database* db) { return false; } - success = CreateIndex(db); + success = publishers_->Init(db); if (!success) { return false; } @@ -46,18 +61,18 @@ bool DatabaseContributionInfo::Init(sql::Database* db) { } bool DatabaseContributionInfo::CreateTable(sql::Database* db) { - if (db->DoesTableExist(table_name_)) { - return true; - } - - return CreateTableV8(db); + return CreateTableV11(db); } bool DatabaseContributionInfo::CreateIndex(sql::Database* db) { - return CreateIndexV8(db); + return true; } bool DatabaseContributionInfo::CreateTableV8(sql::Database* db) { + if (db->DoesTableExist(table_name_)) { + return true; + } + const std::string query = base::StringPrintf( "CREATE TABLE %s (" "publisher_id LONGVARCHAR," @@ -76,15 +91,38 @@ bool DatabaseContributionInfo::CreateTableV8(sql::Database* db) { return db->Execute(query.c_str()); } +bool DatabaseContributionInfo::CreateTableV11(sql::Database* db) { + if (db->DoesTableExist(table_name_)) { + return true; + } + + const std::string query = base::StringPrintf( + "CREATE TABLE %s (" + "contribution_id TEXT NOT NULL," + "amount DOUBLE NOT NULL," + "type INTEGER NOT NULL," + "step INTEGER NOT NULL DEFAULT -1," + "retry_count INTEGER NOT NULL DEFAULT -1," + "created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP," + "PRIMARY KEY (contribution_id)" + ")", + table_name_); + + return db->Execute(query.c_str()); +} + bool DatabaseContributionInfo::CreateIndexV8(sql::Database* db) { return this->InsertIndex(db, table_name_, "publisher_id"); } -bool DatabaseContributionInfo::Migrate(sql::Database* db, const int to) { - switch (to) { +bool DatabaseContributionInfo::Migrate(sql::Database* db, const int target) { + switch (target) { case 8: { return MigrateToV8(db); } + case 11: { + return MigrateToV11(db); + } default: { NOTREACHED(); return false; @@ -131,27 +169,140 @@ bool DatabaseContributionInfo::MigrateToV8(sql::Database* db) { return true; } +bool DatabaseContributionInfo::MigrateToV11(sql::Database* db) { + const std::string sql = + "DROP INDEX IF EXISTS contribution_info_publisher_id_index;"; + if (!db->Execute(sql.c_str())) { + return false; + } + + const std::string temp_table_name = base::StringPrintf( + "%s_temp", + table_name_); + + if (!RenameDBTable(db, table_name_, temp_table_name)) { + return false; + } + + if (!CreateTableV11(db)) { + return false; + } + + if (!publishers_->Migrate(db, 11)) { + return false; + } + + const std::string query = base::StringPrintf( + "SELECT publisher_id, probi, date, type FROM %s", + temp_table_name.c_str()); + + sql::Statement statement(db->GetUniqueStatement(query.c_str())); + + uint32_t count = 0; + while (statement.Step()) { + const std::string publisher_key = statement.ColumnString(0); + const double amount = ProbiToDouble(statement.ColumnString(1)); + const auto date = statement.ColumnInt64(2); + const int type = statement.ColumnInt(3); + const std::string contribution_id = base::StringPrintf( + "id_%s_%s", + std::to_string(date).c_str(), + std::to_string(count).c_str()); + + std::string query = base::StringPrintf( + "INSERT INTO %s " + "(contribution_id, amount, type, step, " + "retry_count, created_at) " + "VALUES (?, ?, ?, ?, ?, ?)", + table_name_); + + sql::Statement contribution( + db->GetCachedStatement(SQL_FROM_HERE, query.c_str())); + + contribution.BindString(0, contribution_id); + contribution.BindDouble(1, amount); + contribution.BindInt(2, static_cast(type)); + contribution.BindInt(3, -1); + contribution.BindInt(4, -1); + contribution.BindInt64(5, date); + + if (!contribution.Run()) { + return false; + } + count++; + + if (publisher_key.empty()) { + continue; + } + + query = + "INSERT INTO contribution_info_publishers " + "(contribution_id, publisher_key, total_amount, contributed_amount) " + "VALUES (?, ?, ?, ?)"; + + sql::Statement publisher( + db->GetCachedStatement(SQL_FROM_HERE, query.c_str())); + + publisher.BindString(0, contribution_id); + publisher.BindString(1, publisher_key); + publisher.BindDouble(2, amount); + publisher.BindDouble(3, amount); + + if (!publisher.Run()) { + return false; + } + } + + if (!DropTable(db, temp_table_name)) { + return false; + } + + return true; +} + bool DatabaseContributionInfo::InsertOrUpdate( sql::Database* db, - const brave_rewards::ContributionInfo& info) { + ledger::ContributionInfoPtr info) { + if (!info) { + return false; + } + + sql::Transaction transaction(db); + if (!transaction.Begin()) { + return false; + } + const std::string query = base::StringPrintf( "INSERT OR REPLACE INTO %s " - "(publisher_id, probi, date, type, month, year) " + "(contribution_id, amount, type, step, " + "retry_count, created_at) " "VALUES (?, ?, ?, ?, ?, ?)", table_name_); sql::Statement statement( db->GetCachedStatement(SQL_FROM_HERE, query.c_str())); - statement.BindString(0, info.publisher_key); - statement.BindString(1, info.probi); - statement.BindInt64(2, info.date); - statement.BindInt(3, info.type); - statement.BindInt(4, info.month); - statement.BindInt(5, info.year); + statement.BindString(0, info->contribution_id); + statement.BindDouble(1, info->amount); + statement.BindInt(2, static_cast(info->type)); + statement.BindInt(3, info->step); + statement.BindInt(4, info->retry_count); + if (info->created_at == 0) { + statement.BindNull(5); + } else { + statement.BindInt64(5, info->created_at); + } + + if (!statement.Run()) { + return false; + } - return statement.Run(); + if (!publishers_->InsertOrUpdate(db, info->Clone())) { + return false; + } + + return transaction.Commit(); } bool DatabaseContributionInfo::GetOneTimeTips( @@ -163,20 +314,24 @@ bool DatabaseContributionInfo::GetOneTimeTips( return false; } - const std::string query = base::StringPrintf( + const std::string query = "SELECT pi.publisher_id, pi.name, pi.url, pi.favIcon, " - "ci.probi, ci.date, spi.status, pi.provider " - "FROM %s as ci " - "INNER JOIN publisher_info AS pi ON ci.publisher_id = pi.publisher_id " + "ci.amount, ci.created_at, spi.status, pi.provider " + "FROM contribution_info as ci " + "INNER JOIN contribution_info_publishers AS cp " + "ON cp.contribution_id = ci.contribution_id " + "INNER JOIN publisher_info AS pi ON cp.publisher_key = pi.publisher_id " "LEFT JOIN server_publisher_info AS spi " "ON spi.publisher_key = pi.publisher_id " - "WHERE ci.month = ? AND ci.year = ? AND ci.type = ?", - table_name_); + "WHERE strftime('%m', datetime(ci.created_at, 'unixepoch')) = ? AND " + "strftime('%Y', datetime(ci.created_at, 'unixepoch')) = ? AND ci.type = ?"; sql::Statement statement(db->GetUniqueStatement(query.c_str())); - statement.BindInt(0, static_cast(month)); - statement.BindInt(1, year); + const std::string formatted_month = base::StringPrintf("%02d", month); + + statement.BindString(0, formatted_month); + statement.BindString(1, std::to_string(year)); statement.BindInt(2, static_cast(ledger::RewardsType::ONE_TIME_TIP)); while (statement.Step()) { diff --git a/components/brave_rewards/browser/database/database_contribution_info.h b/components/brave_rewards/browser/database/database_contribution_info.h index 05fc684d5e74..923aa3ea387e 100644 --- a/components/brave_rewards/browser/database/database_contribution_info.h +++ b/components/brave_rewards/browser/database/database_contribution_info.h @@ -12,7 +12,7 @@ #include #include "bat/ledger/mojom_structs.h" -#include "brave/components/brave_rewards/browser/contribution_info.h" +#include "brave/components/brave_rewards/browser/database/database_contribution_info_publishers.h" #include "brave/components/brave_rewards/browser/database/database_table.h" namespace brave_rewards { @@ -28,11 +28,9 @@ class DatabaseContributionInfo: public DatabaseTable { bool CreateIndex(sql::Database* db) override; - bool Migrate(sql::Database* db, const int to); + bool Migrate(sql::Database* db, const int target); - bool InsertOrUpdate( - sql::Database* db, - const brave_rewards::ContributionInfo& info); + bool InsertOrUpdate(sql::Database* db, ledger::ContributionInfoPtr info); bool GetOneTimeTips( sql::Database* db, @@ -43,12 +41,17 @@ class DatabaseContributionInfo: public DatabaseTable { private: const char* table_name_ = "contribution_info"; const int minimum_version_ = 2; + std::unique_ptr publishers_; bool CreateTableV8(sql::Database* db); + bool CreateTableV11(sql::Database* db); + bool CreateIndexV8(sql::Database* db); bool MigrateToV8(sql::Database* db); + + bool MigrateToV11(sql::Database* db); }; } // namespace brave_rewards diff --git a/components/brave_rewards/browser/database/database_contribution_info_publishers.cc b/components/brave_rewards/browser/database/database_contribution_info_publishers.cc new file mode 100644 index 000000000000..7ee351ee290c --- /dev/null +++ b/components/brave_rewards/browser/database/database_contribution_info_publishers.cc @@ -0,0 +1,178 @@ +/* Copyright (c) 2019 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include +#include + +#include "base/bind.h" +#include "base/strings/stringprintf.h" +#include "brave/components/brave_rewards/browser/database/database_contribution_info_publishers.h" +#include "brave/components/brave_rewards/browser/database/database_util.h" +#include "sql/statement.h" +#include "sql/transaction.h" + +namespace brave_rewards { + +DatabaseContributionInfoPublishers::DatabaseContributionInfoPublishers + (int current_db_version) : DatabaseTable(current_db_version) { +} + +DatabaseContributionInfoPublishers:: +~DatabaseContributionInfoPublishers()= default; + +bool DatabaseContributionInfoPublishers::Init(sql::Database* db) { + if (GetCurrentDBVersion() < minimum_version_) { + return true; + } + + sql::Transaction transaction(db); + if (!transaction.Begin()) { + return false; + } + + bool success = CreateTable(db); + if (!success) { + return false; + } + + success = CreateIndex(db); + if (!success) { + return false; + } + + return transaction.Commit(); +} +bool DatabaseContributionInfoPublishers::CreateTable(sql::Database* db) { + return CreateTable11(db); +} + +bool DatabaseContributionInfoPublishers::CreateTable11(sql::Database* db) { + if (db->DoesTableExist(table_name_)) { + return true; + } + + const std::string query = base::StringPrintf( + "CREATE TABLE %s (" + "contribution_id TEXT NOT NULL," + "publisher_key TEXT NOT NULL," + "total_amount DOUBLE NOT NULL," + "contributed_amount DOUBLE," + "CONSTRAINT fk_contribution_info_publishers_contribution_id " + " FOREIGN KEY (contribution_id) " + " REFERENCES contribution_info (contribution_id) " + " ON DELETE CASCADE," + "CONSTRAINT fk_contribution_info_publishers_publisher_id " + " FOREIGN KEY (publisher_key) " + " REFERENCES publisher_info (publisher_id)" + ")", + table_name_); + + return db->Execute(query.c_str()); +} + +bool DatabaseContributionInfoPublishers::CreateIndex(sql::Database* db) { + return CreateIndex11(db); +} + +bool DatabaseContributionInfoPublishers::CreateIndex11(sql::Database* db) { + bool success = this->InsertIndex(db, table_name_, "contribution_id"); + + if (!success) { + return false; + } + + return this->InsertIndex(db, table_name_, "publisher_key"); +} + +bool DatabaseContributionInfoPublishers::Migrate( + sql::Database* db, + const int target) { + switch (target) { + case 11: { + return MigrateToV11(db); + } + default: { + NOTREACHED(); + return false; + } + } +} + +bool DatabaseContributionInfoPublishers::MigrateToV11(sql::Database* db) { + if (!CreateTable11(db)) { + return false; + } + + if (!CreateIndex11(db)) { + return false; + } + + return true; +} + +bool DatabaseContributionInfoPublishers::InsertOrUpdate( + sql::Database* db, + ledger::ContributionInfoPtr info) { + if (!info) { + return false; + } + + const std::string query = base::StringPrintf( + "INSERT OR REPLACE INTO %s " + "(contribution_id, publisher_key, total_amount, contributed_amount) " + "VALUES (?, ?, ?, ?)", + table_name_); + + sql::Transaction transaction(db); + if (!transaction.Begin()) { + return false; + } + + for (const auto& publisher : info->publishers) { + sql::Statement statement( + db->GetCachedStatement(SQL_FROM_HERE, query.c_str())); + + statement.BindString(0, publisher->contribution_id); + statement.BindString(1, publisher->publisher_key); + statement.BindDouble(2, publisher->total_amount); + statement.BindDouble(3, publisher->contributed_amount); + statement.Run(); + } + + return transaction.Commit(); +} + +bool DatabaseContributionInfoPublishers::GetRecords( + sql::Database* db, + const std::string& contribution_id, + ledger::ContributionPublisherList* list) { + if (contribution_id.empty() || !list) { + return false; + } + + const std::string query = base::StringPrintf( + "SELECT contribution_id, publisher_key, total_amount, contributed_amount " + "FROM %s WHERE contribution_id = ?", + table_name_); + + sql::Statement statement(db->GetUniqueStatement(query.c_str())); + + statement.BindString(0, contribution_id); + + while (statement.Step()) { + auto publisher = ledger::ContributionPublisher::New(); + + publisher->contribution_id = statement.ColumnString(0); + publisher->publisher_key = statement.ColumnString(1); + publisher->total_amount = statement.ColumnDouble(2); + publisher->contributed_amount = statement.ColumnDouble(3); + + list->push_back(std::move(publisher)); + } + + return true; +} + +} // namespace brave_rewards diff --git a/components/brave_rewards/browser/database/database_contribution_info_publishers.h b/components/brave_rewards/browser/database/database_contribution_info_publishers.h new file mode 100644 index 000000000000..2b89942c579d --- /dev/null +++ b/components/brave_rewards/browser/database/database_contribution_info_publishers.h @@ -0,0 +1,54 @@ +/* Copyright (c) 2019 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_DATABASE_DATABASE_CONTRIBUTION_INFO_PUBLISHERS_H_ +#define BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_DATABASE_DATABASE_CONTRIBUTION_INFO_PUBLISHERS_H_ + +#include + +#include +#include + +#include "bat/ledger/mojom_structs.h" +#include "brave/components/brave_rewards/browser/database/database_table.h" + +namespace brave_rewards { + +class DatabaseContributionInfoPublishers: public DatabaseTable { + public: + explicit DatabaseContributionInfoPublishers(int current_db_version); + ~DatabaseContributionInfoPublishers() override; + + bool Init(sql::Database* db) override; + + bool CreateTable(sql::Database* db) override; + + bool CreateIndex(sql::Database* db) override; + + bool Migrate(sql::Database* db, const int target); + + bool InsertOrUpdate( + sql::Database* db, + ledger::ContributionInfoPtr info); + + bool GetRecords( + sql::Database* db, + const std::string& contribution_id, + ledger::ContributionPublisherList* list); + + private: + const char* table_name_ = "contribution_info_publishers"; + const int minimum_version_ = 11; + + bool MigrateToV11(sql::Database* db); + + bool CreateTable11(sql::Database* db); + + bool CreateIndex11(sql::Database* db); +}; + +} // namespace brave_rewards + +#endif // BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_DATABASE_DATABASE_CONTRIBUTION_INFO_PUBLISHERS_H_ diff --git a/components/brave_rewards/browser/database/database_util.cc b/components/brave_rewards/browser/database/database_util.cc index b2e53a575f98..5ca8ff76c7a4 100644 --- a/components/brave_rewards/browser/database/database_util.cc +++ b/components/brave_rewards/browser/database/database_util.cc @@ -9,6 +9,21 @@ namespace brave_rewards { +bool DropTable( + sql::Database* db, + const std::string& table_name) { + DCHECK(!table_name.empty()); + if (!db) { + return false; + } + + std::string sql = "PRAGMA foreign_keys = off;"; + sql.append(base::StringPrintf("DROP TABLE %s;", table_name.c_str())); + sql.append("PRAGMA foreign_keys = on;"); + + return db->Execute(sql.c_str()); +} + std::string GenerateDBInsertQuery( sql::Database* db, const std::string& from, diff --git a/components/brave_rewards/browser/database/database_util.h b/components/brave_rewards/browser/database/database_util.h index f8b842969ee0..4104caeaeb57 100644 --- a/components/brave_rewards/browser/database/database_util.h +++ b/components/brave_rewards/browser/database/database_util.h @@ -39,6 +39,10 @@ bool RenameDBTable( const std::string& from, const std::string& to); +bool DropTable( + sql::Database* db, + const std::string& table_name); + } // namespace brave_rewards #endif // BRAVE_COMPONENTS_BRAVE_REWARDS_BROWSER_DATABASE_DATABASE_UTIL_H_ diff --git a/components/brave_rewards/browser/database/publisher_info_database.cc b/components/brave_rewards/browser/database/publisher_info_database.cc index 92a1cdf21534..91e550609631 100644 --- a/components/brave_rewards/browser/database/publisher_info_database.cc +++ b/components/brave_rewards/browser/database/publisher_info_database.cc @@ -24,7 +24,7 @@ namespace brave_rewards { namespace { -const int kCurrentVersionNumber = 10; +const int kCurrentVersionNumber = 11; const int kCompatibleVersionNumber = 1; } // namespace @@ -133,7 +133,7 @@ bool PublisherInfoDatabase::Init() { * */ bool PublisherInfoDatabase::InsertOrUpdateContributionInfo( - const brave_rewards::ContributionInfo& info) { + ledger::ContributionInfoPtr info) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); bool initialized = Init(); @@ -143,7 +143,7 @@ bool PublisherInfoDatabase::InsertOrUpdateContributionInfo( return false; } - return contribution_info_->InsertOrUpdate(&GetDB(), info); + return contribution_info_->InsertOrUpdate(&GetDB(), std::move(info)); } void PublisherInfoDatabase::GetOneTimeTips( @@ -1750,6 +1750,19 @@ bool PublisherInfoDatabase::MigrateV9toV10() { return true; } +bool PublisherInfoDatabase::MigrateV10toV11() { + sql::Transaction transaction(&GetDB()); + if (!transaction.Begin()) { + return false; + } + + if (!contribution_info_->Migrate(&GetDB(), 11)) { + return false; + } + + return transaction.Commit(); +} + bool PublisherInfoDatabase::Migrate(int version) { switch (version) { case 2: { @@ -1779,6 +1792,9 @@ bool PublisherInfoDatabase::Migrate(int version) { case 10: { return MigrateV9toV10(); } + case 11: { + return MigrateV10toV11(); + } default: return false; } diff --git a/components/brave_rewards/browser/database/publisher_info_database.h b/components/brave_rewards/browser/database/publisher_info_database.h index 58bded4fdde3..6d6262af7184 100644 --- a/components/brave_rewards/browser/database/publisher_info_database.h +++ b/components/brave_rewards/browser/database/publisher_info_database.h @@ -19,7 +19,6 @@ #include "base/memory/memory_pressure_listener.h" #include "base/sequence_checker.h" #include "bat/ledger/mojom_structs.h" -#include "brave/components/brave_rewards/browser/contribution_info.h" #include "brave/components/brave_rewards/browser/database/database_contribution_info.h" #include "brave/components/brave_rewards/browser/database/database_contribution_queue.h" #include "brave/components/brave_rewards/browser/database/database_promotion.h" @@ -46,8 +45,7 @@ class PublisherInfoDatabase { db_.set_error_callback(error_callback); } - bool InsertOrUpdateContributionInfo( - const brave_rewards::ContributionInfo& info); + bool InsertOrUpdateContributionInfo(ledger::ContributionInfoPtr info); void GetOneTimeTips( ledger::PublisherInfoList* list, @@ -193,6 +191,8 @@ class PublisherInfoDatabase { bool MigrateV9toV10(); + bool MigrateV10toV11(); + bool Migrate(int version); sql::InitStatus EnsureCurrentVersion(); diff --git a/components/brave_rewards/browser/database/publisher_info_database_unittest.cc b/components/brave_rewards/browser/database/publisher_info_database_unittest.cc index ad9652fb2c28..2a595939b39d 100644 --- a/components/brave_rewards/browser/database/publisher_info_database_unittest.cc +++ b/components/brave_rewards/browser/database/publisher_info_database_unittest.cc @@ -16,6 +16,7 @@ #include "base/path_service.h" #include "base/strings/string_util.h" #include "base/strings/string_split.h" +#include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "brave/common/brave_paths.h" #include "bat/ledger/global_constants.h" @@ -146,30 +147,31 @@ TEST_F(PublisherInfoDatabaseTest, InsertOrUpdateContributionInfo) { base::FilePath db_file; CreateTempDatabase(&temp_dir, &db_file); - ContributionInfo info; - info.probi = "12345678901234567890123456789012345678901234"; - info.month = static_cast(ledger::ActivityMonth::JANUARY); - info.year = 1970; - info.type = static_cast(ledger::RewardsType::AUTO_CONTRIBUTE); - info.date = base::Time::Now().ToJsTime(); - info.publisher_key = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + auto info = ledger::ContributionInfo::New(); + info->contribution_id = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + info->amount = 5.0; + info->type = ledger::RewardsType::AUTO_CONTRIBUTE; + info->step = -1; + info->retry_count = -1; + info->created_at = base::Time::Now().ToJsTime(); - bool success = publisher_info_database_->InsertOrUpdateContributionInfo(info); + bool success = + publisher_info_database_->InsertOrUpdateContributionInfo(info->Clone()); EXPECT_TRUE(success); - std::string query = "SELECT * FROM contribution_info WHERE publisher_id=?"; + std::string query = "SELECT * FROM contribution_info WHERE contribution_id=?"; sql::Statement info_sql(GetDB().GetUniqueStatement(query.c_str())); - info_sql.BindString(0, info.publisher_key); + info_sql.BindString(0, info->contribution_id); EXPECT_TRUE(info_sql.Step()); EXPECT_EQ(CountTableRows("contribution_info"), 1); - EXPECT_EQ(info_sql.ColumnString(0), info.publisher_key); - EXPECT_EQ(info_sql.ColumnString(1), info.probi); - EXPECT_EQ(info_sql.ColumnInt64(2), info.date); - EXPECT_EQ(info_sql.ColumnInt(3), info.type); - EXPECT_EQ(info_sql.ColumnInt(4), info.month); - EXPECT_EQ(info_sql.ColumnInt(5), info.year); + EXPECT_EQ(info_sql.ColumnString(0), info->contribution_id); + EXPECT_EQ(info_sql.ColumnDouble(1), info->amount); + EXPECT_EQ(info_sql.ColumnInt(2), static_cast(info->type)); + EXPECT_EQ(info_sql.ColumnInt(3), info->step); + EXPECT_EQ(info_sql.ColumnInt(4), info->retry_count); + EXPECT_EQ(info_sql.ColumnInt64(5), static_cast(info->created_at)); } TEST_F(PublisherInfoDatabaseTest, InsertOrUpdatePublisherInfo) { @@ -572,56 +574,56 @@ TEST_F(PublisherInfoDatabaseTest, InsertOrUpdateRecurringTip) { base::FilePath db_file; CreateTempDatabase(&temp_dir, &db_file); - brave_rewards::RecurringDonation info; - info.publisher_key = "key"; - info.amount = 20; - info.added_date = base::Time::Now().ToJsTime(); + auto info = ledger::RecurringTip::New(); + info->publisher_key = "key"; + info->amount = 20; + info->created_at = base::Time::Now().ToJsTime(); bool success = publisher_info_database_->InsertOrUpdateRecurringTip( - info); + info->Clone()); EXPECT_TRUE(success); std::string query = "SELECT * FROM recurring_donation WHERE publisher_id=?"; sql::Statement info_sql(GetDB().GetUniqueStatement(query.c_str())); - info_sql.BindString(0, info.publisher_key); + info_sql.BindString(0, info->publisher_key); EXPECT_TRUE(info_sql.Step()); EXPECT_EQ(CountTableRows("recurring_donation"), 1); - EXPECT_EQ(info_sql.ColumnString(0), info.publisher_key); - EXPECT_EQ(info_sql.ColumnDouble(1), info.amount); - EXPECT_EQ(info_sql.ColumnInt64(2), info.added_date); + EXPECT_EQ(info_sql.ColumnString(0), info->publisher_key); + EXPECT_EQ(info_sql.ColumnDouble(1), info->amount); + EXPECT_EQ(info_sql.ColumnInt64(2), static_cast(info->created_at)); /** * Make sure that second insert is update and not insert */ - info.amount = 30; + info->amount = 30; - success = publisher_info_database_->InsertOrUpdateRecurringTip(info); + success = publisher_info_database_->InsertOrUpdateRecurringTip(info->Clone()); EXPECT_TRUE(success); query ="SELECT * FROM recurring_donation WHERE publisher_id=?"; sql::Statement info_sql_1(GetDB().GetUniqueStatement(query.c_str())); - info_sql_1.BindString(0, info.publisher_key); + info_sql_1.BindString(0, info->publisher_key); EXPECT_TRUE(info_sql_1.Step()); EXPECT_EQ(CountTableRows("recurring_donation"), 1); - EXPECT_EQ(info_sql_1.ColumnString(0), info.publisher_key); - EXPECT_EQ(info_sql_1.ColumnDouble(1), info.amount); - EXPECT_EQ(info_sql_1.ColumnInt64(2), info.added_date); + EXPECT_EQ(info_sql_1.ColumnString(0), info->publisher_key); + EXPECT_EQ(info_sql_1.ColumnDouble(1), info->amount); + EXPECT_EQ(info_sql_1.ColumnInt64(2), static_cast(info->created_at)); /** * Publisher key is missing */ - info.publisher_key = ""; - success = publisher_info_database_->InsertOrUpdateRecurringTip(info); + info->publisher_key = ""; + success = publisher_info_database_->InsertOrUpdateRecurringTip(info->Clone()); EXPECT_FALSE(success); query = "SELECT * FROM recurring_donation WHERE publisher_id=?"; sql::Statement info_sql_2(GetDB().GetUniqueStatement(query.c_str())); - info_sql_2.BindString(0, info.publisher_key); + info_sql_2.BindString(0, info->publisher_key); EXPECT_FALSE(info_sql_2.Step()); } @@ -1106,27 +1108,23 @@ TEST_F(PublisherInfoDatabaseTest, Migrationv7tov8_ContributionInfo) { CreateMigrationDatabase(&temp_dir, &db_file, 7, 8); EXPECT_TRUE(publisher_info_database_->Init()); - ContributionInfo contribution; - contribution.probi = "1000000000000000000"; - contribution.month = static_cast(ledger::ActivityMonth::OCTOBER); - contribution.year = 2019; - contribution.type = static_cast(ledger::RewardsType::ONE_TIME_TIP); - contribution.date = 1570614352; - contribution.publisher_key = "3zsistemi.si"; + const std::string publisher_key = "3zsistemi.si"; std::string query = "SELECT * FROM contribution_info WHERE publisher_id=?"; sql::Statement info_sql(GetDB().GetUniqueStatement(query.c_str())); - info_sql.BindString(0, contribution.publisher_key); + info_sql.BindString(0, publisher_key); EXPECT_TRUE(info_sql.Step()); EXPECT_EQ(CountTableRows("contribution_info"), 1); - EXPECT_EQ(info_sql.ColumnString(0), contribution.publisher_key); - EXPECT_EQ(info_sql.ColumnString(1), contribution.probi); - EXPECT_EQ(info_sql.ColumnInt64(2), contribution.date); - EXPECT_EQ(info_sql.ColumnInt(3), contribution.type); - EXPECT_EQ(info_sql.ColumnInt(4), contribution.month); - EXPECT_EQ(info_sql.ColumnInt(5), contribution.year); + EXPECT_EQ(info_sql.ColumnString(0), publisher_key); + EXPECT_EQ(info_sql.ColumnString(1), "1000000000000000000"); + EXPECT_EQ(info_sql.ColumnInt64(2), 1570614352); + EXPECT_EQ(info_sql.ColumnInt(3), + static_cast(ledger::RewardsType::ONE_TIME_TIP)); + EXPECT_EQ(info_sql.ColumnInt(4), + static_cast(ledger::ActivityMonth::OCTOBER)); + EXPECT_EQ(info_sql.ColumnInt(5), 2019); } TEST_F(PublisherInfoDatabaseTest, Migrationv7tov8_PendingContribution) { @@ -1182,6 +1180,65 @@ TEST_F(PublisherInfoDatabaseTest, Migrationv9tov10) { EXPECT_EQ(schema, GetSchemaString(10)); } +TEST_F(PublisherInfoDatabaseTest, Migrationv10tov11) { + base::ScopedTempDir temp_dir; + base::FilePath db_file; + CreateMigrationDatabase(&temp_dir, &db_file, 10, 11); + EXPECT_TRUE(publisher_info_database_->Init()); + + EXPECT_EQ(publisher_info_database_->GetTableVersionNumber(), 11); + + const std::string schema = publisher_info_database_->GetSchema(); + EXPECT_EQ(schema, GetSchemaString(11)); +} + +TEST_F(PublisherInfoDatabaseTest, Migrationv10tov11_ContributionInfo) { + base::ScopedTempDir temp_dir; + base::FilePath db_file; + CreateMigrationDatabase(&temp_dir, &db_file, 10, 11); + EXPECT_TRUE(publisher_info_database_->Init()); + EXPECT_EQ(CountTableRows("contribution_info"), 5); + EXPECT_EQ(CountTableRows("contribution_info_publishers"), 4); + + const std::string query = + "SELECT ci.contribution_id, ci.amount, ci.type, ci.created_at, " + "cip.publisher_key, cip.total_amount, cip.contributed_amount " + "FROM contribution_info as ci " + "LEFT JOIN contribution_info_publishers AS cip " + "ON ci.contribution_id = cip.contribution_id " + "WHERE ci.contribution_id = ?"; + + // one time tip + const std::string tip_id = "id_1570614352_0"; + sql::Statement tip_sql(GetDB().GetUniqueStatement(query.c_str())); + tip_sql.BindString(0, tip_id); + + ASSERT_TRUE(tip_sql.Step()); + EXPECT_EQ(tip_sql.ColumnString(0), tip_id); + EXPECT_EQ(tip_sql.ColumnDouble(1), 1.0); + EXPECT_EQ(tip_sql.ColumnInt(2), + static_cast(ledger::RewardsType::ONE_TIME_TIP));; + EXPECT_EQ(tip_sql.ColumnInt64(3), 1570614352); + EXPECT_EQ(tip_sql.ColumnString(4), "3zsistemi.si"); + EXPECT_EQ(tip_sql.ColumnDouble(5), 1.0); + EXPECT_EQ(tip_sql.ColumnDouble(6), 1.0); + + // Auto contribute + const std::string ac_id = "id_1574671381_4"; + sql::Statement ac_sql(GetDB().GetUniqueStatement(query.c_str())); + ac_sql.BindString(0, ac_id); + + ASSERT_TRUE(ac_sql.Step()); + EXPECT_EQ(ac_sql.ColumnString(0), ac_id); + EXPECT_EQ(ac_sql.ColumnDouble(1), 10.0); + EXPECT_EQ(ac_sql.ColumnInt(2), + static_cast(ledger::RewardsType::AUTO_CONTRIBUTE));; + EXPECT_EQ(ac_sql.ColumnInt64(3), 1574671381); + EXPECT_EQ(ac_sql.ColumnString(4), ""); + EXPECT_EQ(ac_sql.ColumnDouble(5), 0.0); + EXPECT_EQ(ac_sql.ColumnDouble(6), 0.0); +} + TEST_F(PublisherInfoDatabaseTest, DeleteActivityInfo) { base::ScopedTempDir temp_dir; base::FilePath db_file; diff --git a/components/brave_rewards/browser/extension_rewards_service_observer.cc b/components/brave_rewards/browser/extension_rewards_service_observer.cc index 0d36a923f080..1b9468f3b89f 100644 --- a/components/brave_rewards/browser/extension_rewards_service_observer.cc +++ b/components/brave_rewards/browser/extension_rewards_service_observer.cc @@ -358,7 +358,7 @@ void ExtensionRewardsServiceObserver::OnReconcileComplete( RewardsService* rewards_service, unsigned int result, const std::string& viewing_id, - const std::string& probi, + const double amount, const int32_t type) { auto* event_router = extensions::EventRouter::Get(profile_); if (!event_router) { diff --git a/components/brave_rewards/browser/extension_rewards_service_observer.h b/components/brave_rewards/browser/extension_rewards_service_observer.h index c00b2d9ccd41..278d9c60bad1 100644 --- a/components/brave_rewards/browser/extension_rewards_service_observer.h +++ b/components/brave_rewards/browser/extension_rewards_service_observer.h @@ -50,11 +50,12 @@ class ExtensionRewardsServiceObserver : public RewardsServiceObserver, void OnPendingContributionRemoved(RewardsService* rewards_service, int32_t result) override; - void OnReconcileComplete(RewardsService* rewards_service, - unsigned int result, - const std::string& viewing_id, - const std::string& probi, - const int32_t type) override; + void OnReconcileComplete( + RewardsService* rewards_service, + unsigned int result, + const std::string& viewing_id, + const double amount, + const int32_t type) override; void OnDisconnectWallet( brave_rewards::RewardsService* rewards_service, diff --git a/components/brave_rewards/browser/rewards_notification_service_impl.cc b/components/brave_rewards/browser/rewards_notification_service_impl.cc index bed8e510aa78..01ad2764599b 100644 --- a/components/brave_rewards/browser/rewards_notification_service_impl.cc +++ b/components/brave_rewards/browser/rewards_notification_service_impl.cc @@ -370,7 +370,7 @@ void RewardsNotificationServiceImpl::OnReconcileComplete( RewardsService* rewards_service, unsigned int result, const std::string& viewing_id, - const std::string& probi, + const double amount, const int32_t type) { auto converted_result = static_cast(result); auto converted_type = static_cast(type); @@ -383,7 +383,7 @@ void RewardsNotificationServiceImpl::OnReconcileComplete( args.push_back(viewing_id); args.push_back(std::to_string(result)); args.push_back(std::to_string(type)); - args.push_back(probi); + args.push_back(std::to_string(amount)); AddNotification( RewardsNotificationService::REWARDS_NOTIFICATION_AUTO_CONTRIBUTE, diff --git a/components/brave_rewards/browser/rewards_notification_service_impl.h b/components/brave_rewards/browser/rewards_notification_service_impl.h index 51c290224b1d..11294d740cb3 100644 --- a/components/brave_rewards/browser/rewards_notification_service_impl.h +++ b/components/brave_rewards/browser/rewards_notification_service_impl.h @@ -58,11 +58,12 @@ class RewardsNotificationServiceImpl RewardsService* rewards_service, const uint32_t result, Promotion promotion) override; - void OnReconcileComplete(RewardsService* rewards_service, - unsigned int result, - const std::string& viewing_id, - const std::string& probi, - const int32_t type) override; + void OnReconcileComplete( + RewardsService* rewards_service, + unsigned int result, + const std::string& viewing_id, + const double amount, + const int32_t type) override; void TriggerOnNotificationAdded( const RewardsNotification& rewards_notification); diff --git a/components/brave_rewards/browser/rewards_service_browsertest.cc b/components/brave_rewards/browser/rewards_service_browsertest.cc index 756529abaa21..d8408a578ebe 100644 --- a/components/brave_rewards/browser/rewards_service_browsertest.cc +++ b/components/brave_rewards/browser/rewards_service_browsertest.cc @@ -1432,20 +1432,13 @@ class BraveRewardsBrowserTest wait_for_publisher_list_normalized_loop_->Quit(); } - void OnReconcileComplete(brave_rewards::RewardsService* rewards_service, - unsigned int result, - const std::string& viewing_id, - const std::string& probi, - const int32_t type) { - const size_t size = probi.size(); - std::string amount = "0"; - if (size > 18) { - amount = probi; - amount.insert(size - 18, "."); - } - - double amount_double = std::stod(amount); - UpdateContributionBalance(amount_double, true); + void OnReconcileComplete( + brave_rewards::RewardsService* rewards_service, + unsigned int result, + const std::string& viewing_id, + const double amount, + const int32_t type) { + UpdateContributionBalance(amount, true); const auto converted_result = static_cast(result); const auto converted_type = @@ -1461,7 +1454,7 @@ class BraveRewardsBrowserTest if (converted_type == ledger::RewardsType::ONE_TIME_TIP || converted_type == ledger::RewardsType::RECURRING_TIP) { - reconciled_tip_total_ += amount_double; + reconciled_tip_total_ += amount; // Single tip tracking tip_reconcile_completed_ = true; diff --git a/components/brave_rewards/browser/rewards_service_impl.cc b/components/brave_rewards/browser/rewards_service_impl.cc index 94a89701873f..a9a045896443 100644 --- a/components/brave_rewards/browser/rewards_service_impl.cc +++ b/components/brave_rewards/browser/rewards_service_impl.cc @@ -1025,25 +1025,13 @@ void RewardsServiceImpl::OnRecoverWallet( } void RewardsServiceImpl::OnReconcileComplete( - ledger::Result result, + const ledger::Result result, const std::string& viewing_id, - const std::string& probi, + const double amount, const ledger::RewardsType type) { - if (result == ledger::Result::LEDGER_OK) { - auto now = base::Time::Now(); - if (!Connected()) - return; - - if (type == ledger::RewardsType::RECURRING_TIP) { - MaybeShowNotificationTipsPaid(); - } - - bat_ledger_->OnReconcileCompleteSuccess(viewing_id, - type, - probi, - GetPublisherMonth(now), - GetPublisherYear(now), - GetCurrentTimestamp()); + if (result == ledger::Result::LEDGER_OK && + type == ledger::RewardsType::RECURRING_TIP) { + MaybeShowNotificationTipsPaid(); } GetCurrentBalanceReport(); @@ -1051,7 +1039,7 @@ void RewardsServiceImpl::OnReconcileComplete( observer.OnReconcileComplete(this, static_cast(result), viewing_id, - probi, + amount, static_cast(type)); } @@ -2436,44 +2424,31 @@ void RewardsServiceImpl::OnTip(const std::string& publisher_key, bat_ledger_->DoDirectTip(publisher_key, amount, "BAT", base::DoNothing()); } -bool SaveContributionInfoOnFileTaskRunner( - const brave_rewards::ContributionInfo info, - PublisherInfoDatabase* backend) { - if (backend && backend->InsertOrUpdateContributionInfo(info)) - return true; +ledger::Result SaveContributionInfoOnFileTaskRunner( + ledger::ContributionInfoPtr info, + PublisherInfoDatabase* backend) { + const bool result = + backend && backend->InsertOrUpdateContributionInfo(std::move(info)); - return false; + return result ? ledger::Result::LEDGER_OK : ledger::Result::LEDGER_ERROR; } void RewardsServiceImpl::OnContributionInfoSaved( - const ledger::RewardsType type, - bool success) { - for (auto& observer : observers_) { - observer.OnContributionSaved(this, success, static_cast(type)); - } + ledger::ResultCallback callback, + const ledger::Result result) { + callback(result); } -void RewardsServiceImpl::SaveContributionInfo(const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) { - brave_rewards::ContributionInfo info; - info.probi = probi; - info.month = static_cast(month); - info.year = year; - info.date = date; - info.publisher_key = publisher_key; - info.type = static_cast(type); - +void RewardsServiceImpl::SaveContributionInfo( + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback) { base::PostTaskAndReplyWithResult(file_task_runner_.get(), FROM_HERE, - base::Bind(&SaveContributionInfoOnFileTaskRunner, - info, + base::BindOnce(&SaveContributionInfoOnFileTaskRunner, + std::move(info), publisher_info_backend_.get()), - base::Bind(&RewardsServiceImpl::OnContributionInfoSaved, + base::BindOnce(&RewardsServiceImpl::OnContributionInfoSaved, AsWeakPtr(), - type)); + callback)); } void RewardsServiceImpl::OnSaveRecurringTipUI( diff --git a/components/brave_rewards/browser/rewards_service_impl.h b/components/brave_rewards/browser/rewards_service_impl.h index 1592866f410c..117f0a422923 100644 --- a/components/brave_rewards/browser/rewards_service_impl.h +++ b/components/brave_rewards/browser/rewards_service_impl.h @@ -28,7 +28,6 @@ #include "mojo/public/cpp/bindings/associated_binding.h" #include "brave/components/brave_rewards/browser/balance_report.h" #include "brave/components/brave_rewards/browser/content_site.h" -#include "brave/components/brave_rewards/browser/contribution_info.h" #include "ui/gfx/image/image.h" #include "brave/components/brave_rewards/browser/publisher_banner.h" #include "brave/components/brave_rewards/browser/rewards_service_private_observer.h" @@ -365,8 +364,10 @@ class RewardsServiceImpl : public RewardsService, ledger::PublisherInfoPtr publisher_info); void OnResetTheWholeState(base::Callback callback, bool success); - void OnContributionInfoSaved(const ledger::RewardsType type, - bool success); + void OnContributionInfoSaved( + ledger::ResultCallback callback, + const ledger::Result result); + void OnRecurringTipSaved( ledger::SaveRecurringTipCallback callback, const bool success); @@ -518,10 +519,11 @@ class RewardsServiceImpl : public RewardsService, void OnRecoverWallet( ledger::Result result, double balance); - void OnReconcileComplete(ledger::Result result, - const std::string& viewing_id, - const std::string& probi, - const ledger::RewardsType type) override; + void OnReconcileComplete( + const ledger::Result result, + const std::string& viewing_id, + const double amount, + const ledger::RewardsType type) override; void OnAttestPromotion( AttestPromotionCallback callback, const ledger::Result result, @@ -583,12 +585,10 @@ class RewardsServiceImpl : public RewardsService, void OnSetOnDemandFaviconComplete(const std::string& favicon_url, ledger::FetchIconCallback callback, bool success); - void SaveContributionInfo(const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) override; + void SaveContributionInfo( + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback) override; + void SaveRecurringTip( ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) override; diff --git a/components/brave_rewards/browser/rewards_service_impl_unittest.cc b/components/brave_rewards/browser/rewards_service_impl_unittest.cc index a08c5d95a485..17a4660ac858 100644 --- a/components/brave_rewards/browser/rewards_service_impl_unittest.cc +++ b/components/brave_rewards/browser/rewards_service_impl_unittest.cc @@ -42,7 +42,7 @@ class MockRewardsServiceObserver : public RewardsServiceObserver { MOCK_METHOD5(OnReconcileComplete, void(RewardsService*, unsigned int, const std::string&, - const std::string&, + const double, const int32_t)); MOCK_METHOD2(OnGetRecurringTips, void(RewardsService*, const brave_rewards::ContentSiteList&)); diff --git a/components/brave_rewards/browser/rewards_service_observer.h b/components/brave_rewards/browser/rewards_service_observer.h index dbb2a8b68e16..79da205907fb 100644 --- a/components/brave_rewards/browser/rewards_service_observer.h +++ b/components/brave_rewards/browser/rewards_service_observer.h @@ -54,7 +54,7 @@ class RewardsServiceObserver : public base::CheckedObserver { RewardsService* rewards_service, unsigned int result, const std::string& viewing_id, - const std::string& probi, + const double amount, const int32_t type) {} virtual void OnAdsEnabled( brave_rewards::RewardsService* rewards_service, @@ -76,10 +76,6 @@ class RewardsServiceObserver : public base::CheckedObserver { virtual void OnRecurringTipRemoved( brave_rewards::RewardsService* rewards_service, bool success) {} - virtual void OnContributionSaved( - brave_rewards::RewardsService* rewards_service, - bool success, - int type) {} virtual void OnPendingContributionRemoved( brave_rewards::RewardsService* rewards_service, int32_t result) {} diff --git a/components/brave_rewards/resources/page/actions/rewards_actions.ts b/components/brave_rewards/resources/page/actions/rewards_actions.ts index dd89aa07401b..fc1a9a724930 100644 --- a/components/brave_rewards/resources/page/actions/rewards_actions.ts +++ b/components/brave_rewards/resources/page/actions/rewards_actions.ts @@ -248,11 +248,6 @@ export const onRecurringTipRemoved = (success: boolean) => action(types.ON_RECUR success }) -export const onContributionSaved = (properties: Rewards.ContributionSaved) => - action(types.ON_CONTRIBUTION_SAVED, { - properties - }) - export const onInlineTipSettingChange = (key: string, value: boolean) => action(types.ON_INLINE_TIP_SETTINGS_CHANGE, { key, value diff --git a/components/brave_rewards/resources/page/brave_rewards_page.tsx b/components/brave_rewards/resources/page/brave_rewards_page.tsx index 4d1cd9ee233a..e52aee27eb26 100644 --- a/components/brave_rewards/resources/page/brave_rewards_page.tsx +++ b/components/brave_rewards/resources/page/brave_rewards_page.tsx @@ -179,10 +179,6 @@ window.cr.define('brave_rewards', function () { getActions().onRecurringTipRemoved(success) } - function onContributionSaved (properties: Rewards.ContributionSaved) { - getActions().onContributionSaved(properties) - } - function pendingContributions (list: Rewards.PendingContribution[]) { getActions().onPendingContributions(list) } @@ -208,6 +204,10 @@ window.cr.define('brave_rewards', function () { getActions().getBalance() getActions().getWalletProperties() + if (properties.type === 8) { // Rewards.RewardsType.ONE_TIME_TIP + chrome.send('brave_rewards.getOneTimeTips') + } + // EXPIRED TOKEN if (properties.result === 24) { getActions().getExternalWallet('uphold') @@ -272,7 +272,6 @@ window.cr.define('brave_rewards', function () { transactionHistoryChanged, recurringTipSaved, recurringTipRemoved, - onContributionSaved, onRemovePendingContribution, excludedSiteChanged, balance, diff --git a/components/brave_rewards/resources/page/components/tipsBox.tsx b/components/brave_rewards/resources/page/components/tipsBox.tsx index 4416da0b9f46..50a028f42022 100644 --- a/components/brave_rewards/resources/page/components/tipsBox.tsx +++ b/components/brave_rewards/resources/page/components/tipsBox.tsx @@ -72,7 +72,7 @@ class TipBox extends React.Component { faviconUrl = `chrome://favicon/size/48@1x/${item.favIcon}` } - const token = utils.convertProbiToFixed(item.percentage.toString()) + const token = item.percentage.toFixed(1) return { profile: { @@ -183,7 +183,7 @@ class TipBox extends React.Component { const topRows = tipRows.slice(0, 5) const numRows = tipRows && tipRows.length const allSites = !(numRows > 5) - const total = utils.tipsListTotal(tipsList, true) + const total = utils.tipsListTotal(tipsList) const converted = utils.convertBalance(total, balance.rates) const { onlyAnonWallet } = ui diff --git a/components/brave_rewards/resources/page/constants/rewards_types.ts b/components/brave_rewards/resources/page/constants/rewards_types.ts index d9b5444cf14f..104bdf150761 100644 --- a/components/brave_rewards/resources/page/constants/rewards_types.ts +++ b/components/brave_rewards/resources/page/constants/rewards_types.ts @@ -70,7 +70,6 @@ export const enum types { GET_REWARDS_MAIN_ENABLED = '@@rewards/GET_REWARDS_MAIN_ENABLED', ON_RECURRING_TIP_SAVED = '@@rewards/ON_RECURRING_TIP_SAVED', ON_RECURRING_TIP_REMOVED = '@@rewards/ON_RECURRING_TIP_REMOVED', - ON_CONTRIBUTION_SAVED = '@@rewards/ON_CONTRIBUTION_SAVED', ON_INLINE_TIP_SETTINGS_CHANGE = '@@rewards/ON_INLINE_TIP_SETTINGS_CHANGE', REMOVE_PENDING_CONTRIBUTION = '@@rewards/REMOVE_PENDING_CONTRIBUTION', REMOVE_ALL_PENDING_CONTRIBUTION = '@@rewards/REMOVE_ALL_PENDING_CONTRIBUTION', diff --git a/components/brave_rewards/resources/page/reducers/rewards_reducer.ts b/components/brave_rewards/resources/page/reducers/rewards_reducer.ts index cfe9281bb7da..3d006e963017 100644 --- a/components/brave_rewards/resources/page/reducers/rewards_reducer.ts +++ b/components/brave_rewards/resources/page/reducers/rewards_reducer.ts @@ -246,14 +246,6 @@ const rewardsReducer: Reducer = (state: Rewards.State chrome.send('brave_rewards.getRewardsMainEnabled', []) break } - case types.ON_CONTRIBUTION_SAVED: { - const properties = action.payload.properties - console.log(properties) - if (properties && properties.success && properties.type === 8) { - chrome.send('brave_rewards.getOneTimeTips') - } - break - } case types.ON_INLINE_TIP_SETTINGS_CHANGE: { if (!state.inlineTip) { state.inlineTip = { diff --git a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc index 18c6a4550879..a7d2db592b7d 100644 --- a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc +++ b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.cc @@ -136,7 +136,7 @@ void BatLedgerClientMojoProxy::OnWalletProperties( void BatLedgerClientMojoProxy::OnReconcileComplete( ledger::Result result, const std::string& viewing_id, - const std::string& probi, + const double amount, const ledger::RewardsType type) { if (!Connected()) return; @@ -144,7 +144,7 @@ void BatLedgerClientMojoProxy::OnReconcileComplete( bat_ledger_client_->OnReconcileComplete( result, viewing_id, - probi, + amount, type); } @@ -447,23 +447,21 @@ void BatLedgerClientMojoProxy::RemoveRecurringTip( base::BindOnce(&OnRemoveRecurringTip, std::move(callback))); } +void OnSaveContributionInfo( + const ledger::ResultCallback& callback, + const ledger::Result result) { + callback(result); +} + void BatLedgerClientMojoProxy::SaveContributionInfo( - const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) { + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback) { if (!Connected()) return; bat_ledger_client_->SaveContributionInfo( - probi, - month, - year, - date, - publisher_key, - type); + std::move(info), + base::BindOnce(&OnSaveContributionInfo, std::move(callback))); } void BatLedgerClientMojoProxy::SaveMediaPublisherInfo( diff --git a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h index 518f94fbdd94..ed4840496bb0 100644 --- a/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h +++ b/components/services/bat_ledger/bat_ledger_client_mojo_proxy.h @@ -33,7 +33,7 @@ class BatLedgerClientMojoProxy : public ledger::LedgerClient, ledger::WalletPropertiesPtr properties) override; void OnReconcileComplete(ledger::Result result, const std::string& viewing_id, - const std::string& probi, + const double amount, const ledger::RewardsType type) override; void LoadLedgerState(ledger::OnLoadCallback callback) override; void LoadPublisherState(ledger::OnLoadCallback callback) override; @@ -64,12 +64,11 @@ class BatLedgerClientMojoProxy : public ledger::LedgerClient, void FetchFavIcon(const std::string& url, const std::string& favicon_key, ledger::FetchIconCallback callback) override; - void SaveContributionInfo(const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) override; + + void SaveContributionInfo( + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback) override; + void SaveRecurringTip( ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) override; diff --git a/components/services/bat_ledger/bat_ledger_impl.cc b/components/services/bat_ledger/bat_ledger_impl.cc index 7672f77e40e8..9beea90c10e2 100644 --- a/components/services/bat_ledger/bat_ledger_impl.cc +++ b/components/services/bat_ledger/bat_ledger_impl.cc @@ -214,22 +214,6 @@ void BatLedgerImpl::SetBalanceReportItem( ledger_->SetBalanceReportItem(month, year, type, probi); } -void BatLedgerImpl::OnReconcileCompleteSuccess( - const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi, - ledger::ActivityMonth month, - int32_t year, - uint32_t data) { - ledger_->OnReconcileCompleteSuccess( - viewing_id, - type, - probi, - month, - year, - data); -} - void BatLedgerImpl::OnFetchPromotions( CallbackHolder* holder, const ledger::Result result, diff --git a/components/services/bat_ledger/bat_ledger_impl.h b/components/services/bat_ledger/bat_ledger_impl.h index 2229447a05c0..e8c8447ff3a3 100644 --- a/components/services/bat_ledger/bat_ledger_impl.h +++ b/components/services/bat_ledger/bat_ledger_impl.h @@ -73,13 +73,6 @@ class BatLedgerImpl : public mojom::BatLedger, int32_t year, ledger::ReportType type, const std::string& probi) override; - void OnReconcileCompleteSuccess( - const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi, - ledger::ActivityMonth month, - int32_t year, - uint32_t data) override; void FetchPromotions(FetchPromotionsCallback callback) override; void ClaimPromotion( diff --git a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc index 9b4549ed8121..7c3b98c16623 100644 --- a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc +++ b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.cc @@ -135,12 +135,12 @@ void LedgerClientMojoProxy::CallbackHolder< void LedgerClientMojoProxy::OnReconcileComplete( const ledger::Result result, const std::string& viewing_id, - const std::string& probi, + const double amount, const ledger::RewardsType type) { ledger_client_->OnReconcileComplete( result, viewing_id, - probi, + amount, type); } @@ -356,20 +356,25 @@ void LedgerClientMojoProxy::RemoveRecurringTip(const std::string& publisher_key, std::bind(LedgerClientMojoProxy::OnRemoveRecurringTip, holder, _1)); } +// static +void LedgerClientMojoProxy::OnSaveContributionInfo( + CallbackHolder* holder, + const ledger::Result result) { + DCHECK(holder); + if (holder->is_valid()) + std::move(holder->get()).Run(result); + delete holder; +} + void LedgerClientMojoProxy::SaveContributionInfo( - const std::string& probi, - ledger::ActivityMonth month, - int32_t year, - uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) { + ledger::ContributionInfoPtr info, + SaveContributionInfoCallback callback) { + // deleted in OnSaveContributionInfo + auto* holder = new CallbackHolder( + AsWeakPtr(), std::move(callback)); ledger_client_->SaveContributionInfo( - probi, - month, - year, - date, - publisher_key, - type); + std::move(info), + std::bind(LedgerClientMojoProxy::OnSaveContributionInfo, holder, _1)); } void LedgerClientMojoProxy::SaveMediaPublisherInfo( diff --git a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h index 54a0df6052ad..894aa714e1d7 100644 --- a/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h +++ b/components/services/bat_ledger/public/cpp/ledger_client_mojo_proxy.h @@ -33,7 +33,7 @@ class LedgerClientMojoProxy : public mojom::BatLedgerClient, void OnReconcileComplete( const ledger::Result result, const std::string& viewing_id, - const std::string& probi, + const double amount, const ledger::RewardsType type) override; void LoadPublisherState(LoadPublisherStateCallback callback) override; @@ -71,13 +71,11 @@ class LedgerClientMojoProxy : public mojom::BatLedgerClient, const ledger::Result result, ledger::PublisherInfoPtr info, uint64_t window_id) override; + void SaveContributionInfo( - const std::string& probi, - ledger::ActivityMonth month, - int32_t year, - uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) override; + ledger::ContributionInfoPtr info, + SaveContributionInfoCallback callback) override; + void SaveMediaPublisherInfo(const std::string& media_key, const std::string& publisher_id) override; @@ -336,6 +334,10 @@ class LedgerClientMojoProxy : public mojom::BatLedgerClient, CallbackHolder* holder, const ledger::Result result); + static void OnSaveContributionInfo( + CallbackHolder* holder, + const ledger::Result result); + static void OnLoadURL( CallbackHolder* holder, int32_t response_code, const std::string& response, diff --git a/components/services/bat_ledger/public/interfaces/bat_ledger.mojom b/components/services/bat_ledger/public/interfaces/bat_ledger.mojom index bd46e9e27671..b28b6d9ad4c0 100644 --- a/components/services/bat_ledger/public/interfaces/bat_ledger.mojom +++ b/components/services/bat_ledger/public/interfaces/bat_ledger.mojom @@ -59,8 +59,6 @@ interface BatLedger { RestorePublishers() => (ledger.mojom.Result result); SetBalanceReportItem(ledger.mojom.ActivityMonth month, int32 year, ledger.mojom.ReportType type, string probi); - OnReconcileCompleteSuccess(string viewing_id, ledger.mojom.RewardsType type, string probi, - ledger.mojom.ActivityMonth month, int32 year, uint32 data); FetchPromotions() => (ledger.mojom.Result result, array promotion); ClaimPromotion(string payload) => (ledger.mojom.Result result, string response); @@ -163,7 +161,7 @@ interface BatLedgerClient { OnWalletProperties(ledger.mojom.Result result, ledger.mojom.WalletProperties? properties); OnReconcileComplete(ledger.mojom.Result result, string viewing_id, - string probi, ledger.mojom.RewardsType type); + double amount, ledger.mojom.RewardsType type); SavePublisherInfo(ledger.mojom.PublisherInfo publisher_info) => (ledger.mojom.Result result, ledger.mojom.PublisherInfo? publisher_info); @@ -197,8 +195,7 @@ interface BatLedgerClient { [Sync] SetTimer(uint64 time_offset) => (uint32 timer_id); KillTimer(uint32 timer_id); - SaveContributionInfo(string probi, ledger.mojom.ActivityMonth month, int32 year, uint32 date, - string publisher_key, ledger.mojom.RewardsType type); + SaveContributionInfo(ledger.mojom.ContributionInfo info) => (ledger.mojom.Result result); SaveMediaPublisherInfo(string media_key, string publisher_id); [Sync] diff --git a/test/data/rewards-data/migration/publisher_info_db_v10 b/test/data/rewards-data/migration/publisher_info_db_v10 new file mode 100644 index 0000000000000000000000000000000000000000..e5ec62f65937290d29bc0aeec08c2ad6fbeabaec GIT binary patch literal 1343488 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 HZ=YBdw=G=3@Cx8d&j+| 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
qYWme%1 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%0D;7MV#$v1O1vSeh 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

7gBtpzkawO1Aat% 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⁢`}45&FSuXf-s8Rw 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­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 E19jF;t^fc4 literal 0 HcmV?d00001 diff --git a/test/data/rewards-data/migration/publisher_info_schema_v11.txt b/test/data/rewards-data/migration/publisher_info_schema_v11.txt new file mode 100644 index 000000000000..a09e565fdb8e --- /dev/null +++ b/test/data/rewards-data/migration/publisher_info_schema_v11.txt @@ -0,0 +1,42 @@ +index|activity_info_publisher_id_index|activity_info|CREATE INDEX activity_info_publisher_id_index ON activity_info (publisher_id) +index|contribution_info_publishers_contribution_id_index|contribution_info_publishers|CREATE INDEX contribution_info_publishers_contribution_id_index ON contribution_info_publishers (contribution_id) +index|contribution_info_publishers_publisher_key_index|contribution_info_publishers|CREATE INDEX contribution_info_publishers_publisher_key_index ON contribution_info_publishers (publisher_key) +index|pending_contribution_publisher_id_index|pending_contribution|CREATE INDEX pending_contribution_publisher_id_index ON pending_contribution (publisher_id) +index|promotion_creds_promotion_id_index|promotion_creds|CREATE INDEX promotion_creds_promotion_id_index ON promotion_creds (promotion_id) +index|promotion_promotion_id_index|promotion|CREATE INDEX promotion_promotion_id_index ON promotion (promotion_id) +index|recurring_donation_publisher_id_index|recurring_donation|CREATE INDEX recurring_donation_publisher_id_index ON recurring_donation (publisher_id) +index|server_publisher_amounts_publisher_key_index|server_publisher_amounts|CREATE INDEX server_publisher_amounts_publisher_key_index ON server_publisher_amounts (publisher_key) +index|server_publisher_banner_publisher_key_index|server_publisher_banner|CREATE INDEX server_publisher_banner_publisher_key_index ON server_publisher_banner (publisher_key) +index|server_publisher_info_publisher_key_index|server_publisher_info|CREATE INDEX server_publisher_info_publisher_key_index ON server_publisher_info (publisher_key) +index|server_publisher_links_publisher_key_index|server_publisher_links|CREATE INDEX server_publisher_links_publisher_key_index ON server_publisher_links (publisher_key) +index|sqlite_autoindex_activity_info_1|activity_info| +index|sqlite_autoindex_contribution_info_1|contribution_info| +index|sqlite_autoindex_media_publisher_info_1|media_publisher_info| +index|sqlite_autoindex_meta_1|meta| +index|sqlite_autoindex_promotion_1|promotion| +index|sqlite_autoindex_promotion_creds_1|promotion_creds| +index|sqlite_autoindex_publisher_info_1|publisher_info| +index|sqlite_autoindex_recurring_donation_1|recurring_donation| +index|sqlite_autoindex_server_publisher_amounts_1|server_publisher_amounts| +index|sqlite_autoindex_server_publisher_banner_1|server_publisher_banner| +index|sqlite_autoindex_server_publisher_info_1|server_publisher_info| +index|sqlite_autoindex_server_publisher_links_1|server_publisher_links| +index|unblinded_tokens_token_id_index|unblinded_tokens|CREATE INDEX unblinded_tokens_token_id_index ON unblinded_tokens (token_id) +table|activity_info|activity_info|CREATE TABLE activity_info(publisher_id LONGVARCHAR NOT NULL,duration INTEGER DEFAULT 0 NOT NULL,visits INTEGER DEFAULT 0 NOT NULL,score DOUBLE DEFAULT 0 NOT NULL,percent INTEGER DEFAULT 0 NOT NULL,weight DOUBLE DEFAULT 0 NOT NULL,reconcile_stamp INTEGER DEFAULT 0 NOT NULL,CONSTRAINT activity_unique UNIQUE (publisher_id, reconcile_stamp) CONSTRAINT fk_activity_info_publisher_id FOREIGN KEY (publisher_id) REFERENCES "publisher_info_old" (publisher_id) ON DELETE CASCADE) +table|contribution_info|contribution_info|CREATE TABLE contribution_info (contribution_id TEXT NOT NULL,amount DOUBLE NOT NULL,type INTEGER NOT NULL,step INTEGER NOT NULL DEFAULT -1,retry_count INTEGER NOT NULL DEFAULT -1,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (contribution_id)) +table|contribution_info_publishers|contribution_info_publishers|CREATE TABLE contribution_info_publishers (contribution_id TEXT NOT NULL,publisher_key TEXT NOT NULL,total_amount DOUBLE NOT NULL,contributed_amount DOUBLE,CONSTRAINT fk_contribution_info_publishers_contribution_id FOREIGN KEY (contribution_id) REFERENCES "contribution_info_temp" (contribution_id) ON DELETE CASCADE,CONSTRAINT fk_contribution_info_publishers_publisher_id FOREIGN KEY (publisher_key) REFERENCES publisher_info (publisher_id)) +table|contribution_queue|contribution_queue|CREATE TABLE contribution_queue (contribution_queue_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,type INTEGER NOT NULL,amount DOUBLE NOT NULL,partial INTEGER NOT NULL DEFAULT 0,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL) +table|contribution_queue_publishers|contribution_queue_publishers|CREATE TABLE contribution_queue_publishers (contribution_queue_id INTEGER NOT NULL,publisher_key TEXT NOT NULL,amount_percent DOUBLE NOT NULL,CONSTRAINT fk_contribution_queue_publishers_publisher_key FOREIGN KEY (publisher_key) REFERENCES publisher_info (publisher_id),CONSTRAINT fk_contribution_queue_publishers_id FOREIGN KEY (contribution_queue_id) REFERENCES contribution_queue (contribution_queue_id) ON DELETE CASCADE) +table|media_publisher_info|media_publisher_info|CREATE TABLE media_publisher_info(media_key TEXT NOT NULL PRIMARY KEY UNIQUE,publisher_id LONGVARCHAR NOT NULL,CONSTRAINT fk_media_publisher_info_publisher_id FOREIGN KEY (publisher_id) REFERENCES "publisher_info_old" (publisher_id) ON DELETE CASCADE) +table|meta|meta|CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR) +table|pending_contribution|pending_contribution|CREATE TABLE pending_contribution(publisher_id LONGVARCHAR NOT NULL,amount DOUBLE DEFAULT 0 NOT NULL,added_date INTEGER DEFAULT 0 NOT NULL,viewing_id LONGVARCHAR NOT NULL,type INTEGER NOT NULL,CONSTRAINT fk_pending_contribution_publisher_id FOREIGN KEY (publisher_id) REFERENCES publisher_info (publisher_id) ON DELETE CASCADE) +table|promotion|promotion|CREATE TABLE promotion (promotion_id TEXT NOT NULL,version INTEGER NOT NULL,type INTEGER NOT NULL,public_keys TEXT NOT NULL,suggestions INTEGER NOT NULL DEFAULT 0,approximate_value DOUBLE NOT NULL DEFAULT 0,status INTEGER NOT NULL DEFAULT 0,expires_at TIMESTAMP NOT NULL,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (promotion_id)) +table|promotion_creds|promotion_creds|CREATE TABLE promotion_creds (promotion_id TEXT UNIQUE NOT NULL,tokens TEXT NOT NULL,blinded_creds TEXT NOT NULL,signed_creds TEXT,public_key TEXT,batch_proof TEXT,claim_id TEXT,CONSTRAINT fk_promotion_creds_promotion_id FOREIGN KEY (promotion_id) REFERENCES promotion (promotion_id) ON DELETE CASCADE) +table|publisher_info|publisher_info|CREATE TABLE publisher_info(publisher_id LONGVARCHAR PRIMARY KEY NOT NULL UNIQUE,excluded INTEGER DEFAULT 0 NOT NULL,name TEXT NOT NULL,favIcon TEXT NOT NULL,url TEXT NOT NULL,provider TEXT NOT NULL) +table|recurring_donation|recurring_donation|CREATE TABLE recurring_donation(publisher_id LONGVARCHAR NOT NULL PRIMARY KEY UNIQUE,amount DOUBLE DEFAULT 0 NOT NULL,added_date INTEGER DEFAULT 0 NOT NULL,CONSTRAINT fk_recurring_donation_publisher_id FOREIGN KEY (publisher_id) REFERENCES "publisher_info_old" (publisher_id) ON DELETE CASCADE) +table|server_publisher_amounts|server_publisher_amounts|CREATE TABLE server_publisher_amounts (publisher_key LONGVARCHAR NOT NULL,amount DOUBLE DEFAULT 0 NOT NULL,CONSTRAINT server_publisher_amounts_unique UNIQUE (publisher_key, amount) CONSTRAINT fk_server_publisher_amounts_publisher_key FOREIGN KEY (publisher_key) REFERENCES server_publisher_info (publisher_key) ON DELETE CASCADE) +table|server_publisher_banner|server_publisher_banner|CREATE TABLE server_publisher_banner (publisher_key LONGVARCHAR PRIMARY KEY NOT NULL UNIQUE,title TEXT,description TEXT,background TEXT,logo TEXT,CONSTRAINT fk_server_publisher_banner_publisher_key FOREIGN KEY (publisher_key) REFERENCES server_publisher_info (publisher_key) ON DELETE CASCADE) +table|server_publisher_info|server_publisher_info|CREATE TABLE server_publisher_info (publisher_key LONGVARCHAR PRIMARY KEY NOT NULL UNIQUE,status INTEGER DEFAULT 0 NOT NULL,excluded INTEGER DEFAULT 0 NOT NULL,address TEXT NOT NULL) +table|server_publisher_links|server_publisher_links|CREATE TABLE server_publisher_links (publisher_key LONGVARCHAR NOT NULL,provider TEXT,link TEXT,CONSTRAINT server_publisher_links_unique UNIQUE (publisher_key, provider) CONSTRAINT fk_server_publisher_links_publisher_key FOREIGN KEY (publisher_key) REFERENCES server_publisher_info (publisher_key) ON DELETE CASCADE) +table|sqlite_sequence|sqlite_sequence|CREATE TABLE sqlite_sequence(name,seq) +table|unblinded_tokens|unblinded_tokens|CREATE TABLE unblinded_tokens (token_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,token_value TEXT,public_key TEXT,value DOUBLE NOT NULL DEFAULT 0,promotion_id TEXT,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,CONSTRAINT fk_unblinded_tokens_promotion_id FOREIGN KEY (promotion_id) REFERENCES promotion (promotion_id) ON DELETE CASCADE) diff --git a/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h b/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h index 68a7a0c83200..ceefaa64bb9e 100644 --- a/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h +++ b/vendor/bat-native-confirmations/src/bat/confirmations/internal/confirmations_client_mock.h @@ -67,7 +67,7 @@ class MockConfirmationsClient : public ConfirmationsClient { MOCK_METHOD4(OnReconcileComplete, void( Result result, const std::string& viewing_id, - const std::string& probi, + const double amount, const ledger::RewardsType type)); MOCK_METHOD1(LoadLedgerState, void( @@ -139,13 +139,9 @@ class MockConfirmationsClient : public ConfirmationsClient { const std::string& favicon_key, ledger::FetchIconCallback callback)); - MOCK_METHOD6(SaveContributionInfo, void( - const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type)); + MOCK_METHOD2(SaveContributionInfo, void( + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback)); MOCK_METHOD2(SaveRecurringTip, void( ledger::RecurringTipPtr info, diff --git a/vendor/bat-native-ledger/include/bat/ledger/ledger.h b/vendor/bat-native-ledger/include/bat/ledger/ledger.h index dfa7145a7a2a..4eb1325c6ffe 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/ledger.h +++ b/vendor/bat-native-ledger/include/bat/ledger/ledger.h @@ -246,14 +246,6 @@ class LEDGER_EXPORT Ledger { const std::string& publisher_id, ledger::PublisherBannerCallback callback) = 0; - virtual void OnReconcileCompleteSuccess( - const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date) = 0; - virtual void RemoveRecurringTip( const std::string& publisher_key, RemoveRecurringTipCallback callback) = 0; diff --git a/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h b/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h index 997f9bde7405..6dd5df1bd69c 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h +++ b/vendor/bat-native-ledger/include/bat/ledger/ledger_client.h @@ -87,10 +87,11 @@ class LEDGER_EXPORT LedgerClient { Result result, ledger::WalletPropertiesPtr properties) = 0; - virtual void OnReconcileComplete(Result result, - const std::string& viewing_id, - const std::string& probi, - const ledger::RewardsType type) = 0; + virtual void OnReconcileComplete( + const Result result, + const std::string& viewing_id, + const double amount, + const ledger::RewardsType type) = 0; virtual void LoadLedgerState(OnLoadCallback callback) = 0; @@ -138,12 +139,8 @@ class LEDGER_EXPORT LedgerClient { FetchIconCallback callback) = 0; virtual void SaveContributionInfo( - const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) = 0; + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback) = 0; virtual void SaveRecurringTip( ledger::RecurringTipPtr info, diff --git a/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h b/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h index 52fe481f3e3d..37b6ceca79ec 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h +++ b/vendor/bat-native-ledger/include/bat/ledger/mojom_structs.h @@ -37,6 +37,11 @@ using ClientInfoPtr = mojom::ClientInfoPtr; using ContributionInfo = mojom::ContributionInfo; using ContributionInfoPtr = mojom::ContributionInfoPtr; +using ContributionPublisher = mojom::ContributionPublisher; +using ContributionPublisherPtr = mojom::ContributionPublisherPtr; +using ContributionPublisherList = + std::vector; + using ContributionQueue = ledger::mojom::ContributionQueue; using ContributionQueuePtr = ledger::mojom::ContributionQueuePtr; using ContributionQueueList = std::vector; diff --git a/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom b/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom index 4d567a9d3f17..a93235b21808 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom +++ b/vendor/bat-native-ledger/include/bat/ledger/public/interfaces/ledger.mojom @@ -4,9 +4,21 @@ module ledger.mojom; struct ContributionInfo { - string publisher; // Filled only for recurrent tips - double value; - uint64 date; + string contribution_id; + double amount; + RewardsType type; + int32 step; + int32 retry_count; + uint64 created_at; + + array publishers; +}; + +struct ContributionPublisher { + string contribution_id; + string publisher_key; + double total_amount; + double contributed_amount; }; struct PublisherInfo { @@ -24,8 +36,6 @@ struct PublisherInfo { string url; string provider; string favicon_url; - - array contributions; }; struct PublisherBanner { diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.cc index 7c8cc9db560f..eb850cd48523 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.cc @@ -29,4 +29,15 @@ std::string ConvertToProbi(const std::string& amount) { return before_dot + after_dot + rest_probi; } +double ProbiToDouble(const std::string& probi) { + const size_t size = probi.size(); + std::string amount = "0"; + if (size > 18) { + amount = probi; + amount.insert(size - 18, "."); + } + + return std::stod(amount); +} + } // namespace braveledger_bat_util diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.h b/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.h index 23c239af7dc3..33b764e4f2c7 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util.h @@ -12,6 +12,8 @@ namespace braveledger_bat_util { std::string ConvertToProbi(const std::string& amount); +double ProbiToDouble(const std::string& probi); + } // namespace braveledger_bat_util #endif // BRAVELEDGER_BAT_UTIL_H_ diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util_unittest.cc index 46ea4582ad6a..2f0f5990a3d9 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/bat_util_unittest.cc @@ -32,3 +32,23 @@ TEST(BatUtilTest, ConvertToProbi) { result = braveledger_bat_util::ConvertToProbi("5.45"); ASSERT_EQ(result, "5450000000000000000"); } + +TEST(BatUtilTest, ProbiToDouble) { + // empty string + double result = braveledger_bat_util::ProbiToDouble(""); + ASSERT_EQ(result, 0); + + // wrong probi + result = braveledger_bat_util::ProbiToDouble("10"); + ASSERT_EQ(result, 0); + + // full number probi + result = + braveledger_bat_util::ProbiToDouble("5000000000000000000"); + ASSERT_EQ(result, 5.0); + + // full number probi + result = + braveledger_bat_util::ProbiToDouble("1125600000000000000000"); + ASSERT_EQ(result, 1125.6); +} diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc index b8deda370220..883101c57976 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc @@ -15,6 +15,7 @@ #include "bat/ledger/global_constants.h" #include "bat/ledger/internal/bat_util.h" #include "bat/ledger/internal/common/bind_util.h" +#include "bat/ledger/internal/common/time_util.h" #include "bat/ledger/internal/contribution/contribution.h" #include "bat/ledger/internal/contribution/contribution_unblinded.h" #include "bat/ledger/internal/contribution/contribution_util.h" @@ -392,42 +393,44 @@ void Contribution::SetTimer(uint32_t* timer_id, uint64_t start_timer_in) { ledger_->SetTimer(start_timer_in, timer_id); } -void Contribution::OnReconcileCompleteSuccess( +void Contribution::ReconcileSuccess( const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi, - ledger::ActivityMonth month, - int year, - uint32_t date) { - if (type == ledger::RewardsType::AUTO_CONTRIBUTE) { - ledger_->SetBalanceReportItem( - month, - year, - GetReportTypeFromRewardsType(type), + const double amount, + const bool delete_reconcile) { + const auto reconcile = ledger_->GetReconcileById(viewing_id); + const std::string probi = + braveledger_bat_util::ConvertToProbi(std::to_string(amount)); + + ledger_->SetBalanceReportItem( + braveledger_time_util::GetCurrentMonth(), + braveledger_time_util::GetCurrentYear(), + GetReportTypeFromRewardsType(reconcile.type_), probi); - ledger_->SaveContributionInfo(probi, month, year, date, "", type); - return; + + ledger::ContributionPublisherList publisher_list; + for (auto& item : reconcile.directions_) { + auto publisher = ledger::ContributionPublisher::New(); + publisher->contribution_id = viewing_id; + publisher->publisher_key = item.publisher_key_; + publisher->total_amount = (item.amount_percent_ * amount) / 100; + publisher->contributed_amount = publisher->total_amount; + publisher_list.push_back(std::move(publisher)); } - if (type == ledger::RewardsType::ONE_TIME_TIP || - type == ledger::RewardsType::RECURRING_TIP) { - ledger_->SetBalanceReportItem( - month, - year, - GetReportTypeFromRewardsType(type), - probi); - const auto reconcile = ledger_->GetReconcileById(viewing_id); - const auto donations = reconcile.directions_; - if (donations.size() > 0) { - std::string publisher_key = donations[0].publisher_key_; - ledger_->SaveContributionInfo(probi, - month, - year, - date, - publisher_key, - type); - } - return; + const uint64_t now = static_cast(base::Time::Now().ToDoubleT()); + auto info = ledger::ContributionInfo::New(); + info->contribution_id = viewing_id; + info->amount = amount; + info->type = reconcile.type_; + info->step = -1; + info->retry_count = -1; + info->created_at = now; + info->publishers = std::move(publisher_list); + + ledger_->SaveContributionInfo(std::move(info), [](ledger::Result _){}); + + if (!viewing_id.empty() && delete_reconcile) { + ledger_->RemoveReconcileById(viewing_id); } } @@ -997,17 +1000,11 @@ void Contribution::OnExternalWalletServerPublisherInfo( const ledger::ExternalWallet& wallet) { const auto reconcile = ledger_->GetReconcileById(viewing_id); if (!info) { - const auto probi = - braveledger_bat_util::ConvertToProbi(std::to_string(amount)); - ledger_->OnReconcileComplete( + ledger_->ReconcileComplete( ledger::Result::LEDGER_ERROR, + amount, viewing_id, - probi, reconcile.type_); - - if (!viewing_id.empty()) { - ledger_->RemoveReconcileById(viewing_id); - } return; } diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.h b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.h index 492579f35947..f0eceda255bf 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.h @@ -137,13 +137,11 @@ class Contribution { // Does final stage in contribution // Sets reports and contribution info - void OnReconcileCompleteSuccess( + void ReconcileSuccess( const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi, - ledger::ActivityMonth month, - int year, - uint32_t date); + const double amount, + const bool delete_reconcile); + void HasSufficientBalance( ledger::HasSufficientBalanceToReconcileCallback callback); diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_unblinded.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_unblinded.cc index 5ae9fb0fd22d..d81bb6d47116 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_unblinded.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_unblinded.cc @@ -222,20 +222,27 @@ void Unblinded::PrepareAutoContribution( const std::string& viewing_id, ledger::UnblindedTokenList list) { if (list.size() == 0) { - ContributionCompleted(ledger::Result::LEDGER_ERROR, viewing_id); + ContributionCompleted(ledger::Result::AC_TABLE_EMPTY, viewing_id); return; } - const auto reconcile = ledger_->GetReconcileById(viewing_id); + auto reconcile = ledger_->GetReconcileById(viewing_id); + const double total_votes = static_cast(list.size()); Winners winners; - GetStatisticalVotingWinners(list.size(), reconcile.directions_, &winners); + GetStatisticalVotingWinners(total_votes, reconcile.directions_, &winners); + braveledger_bat_helper::Directions new_directions; uint32_t current_position = 0; for (auto & winner : winners) { if (winner.second == 0) { continue; } + braveledger_bat_helper::RECONCILE_DIRECTION direction; + direction.publisher_key_ = winner.first; + direction.amount_percent_ = (winner.second / total_votes) * 100; + new_directions.push_back(direction); + const uint32_t new_position = current_position + winner.second; ledger::UnblindedTokenList new_list; for (size_t i = current_position; i < new_position; i++) { @@ -250,6 +257,9 @@ void Unblinded::PrepareAutoContribution( [](const ledger::Result _){}); } + reconcile.directions_ = new_directions; + ledger_->UpdateReconcile(reconcile); + ContributionCompleted(ledger::Result::LEDGER_OK, viewing_id); } @@ -312,20 +322,11 @@ void Unblinded::ContributionCompleted( const ledger::Result result, const std::string& viewing_id) { const auto reconcile = ledger_->GetReconcileById(viewing_id); - const auto amount = - braveledger_bat_util::ConvertToProbi(std::to_string(reconcile.fee_)); - - ledger_->OnReconcileComplete(result, - viewing_id, - amount, - reconcile.type_); - - if (result != ledger::Result::LEDGER_OK) { - if (!viewing_id.empty()) { - ledger_->RemoveReconcileById(viewing_id); - } - return; - } + ledger_->ReconcileComplete( + result, + reconcile.fee_, + viewing_id, + reconcile.type_); } } // namespace braveledger_contribution diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/phase_one.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/phase_one.cc index e4c2a7f9183c..89dceb539201 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/phase_one.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/phase_one.cc @@ -76,9 +76,7 @@ void PhaseOne::ReconcileCallback( success = ledger_->UpdateReconcile(reconcile); if (!success) { - Complete(ledger::Result::LEDGER_ERROR, - viewing_id, - reconcile.type_); + Complete(ledger::Result::LEDGER_ERROR, viewing_id, reconcile.type_); return; } @@ -170,9 +168,7 @@ void PhaseOne::CurrentReconcileCallback( success = ledger_->UpdateReconcile(reconcile); if (!success) { - Complete(ledger::Result::LEDGER_ERROR, - viewing_id, - reconcile.type_); + Complete(ledger::Result::LEDGER_ERROR, viewing_id, reconcile.type_); return; } @@ -260,9 +256,10 @@ void PhaseOne::ReconcilePayloadCallback( if (response_status_code != net::HTTP_OK) { if (response_status_code == net::HTTP_REQUESTED_RANGE_NOT_SATISFIABLE) { - Complete(ledger::Result::CONTRIBUTION_AMOUNT_TOO_LOW, - viewing_id, - reconcile.type_); + Complete( + ledger::Result::CONTRIBUTION_AMOUNT_TOO_LOW, + viewing_id, + reconcile.type_); } else { contribution_->AddRetry(ledger::ContributionRetry::STEP_PAYLOAD, viewing_id); @@ -352,9 +349,7 @@ void PhaseOne::RegisterViewingCallback( success = ledger_->UpdateReconcile(reconcile); if (!success) { - Complete(ledger::Result::LEDGER_ERROR, - viewing_id, - reconcile.type_); + Complete(ledger::Result::LEDGER_ERROR, viewing_id, reconcile.type_); return; } @@ -460,9 +455,7 @@ void PhaseOne::ViewingCredentialsCallback( success = ledger_->UpdateReconcile(reconcile); if (!success) { - Complete(ledger::Result::LEDGER_ERROR, - viewing_id, - reconcile.type_); + Complete(ledger::Result::LEDGER_ERROR, viewing_id, reconcile.type_); return; } @@ -500,21 +493,22 @@ void PhaseOne::ViewingCredentialsCallback( probi); } -void PhaseOne::Complete(ledger::Result result, - const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi) { - ledger_->OnReconcileComplete(result, viewing_id, probi, type); +void PhaseOne::Complete( + ledger::Result result, + const std::string& viewing_id, + const ledger::RewardsType type, + const std::string& probi) { + const bool error = result != ledger::Result::LEDGER_OK; + const double amount = braveledger_bat_util::ProbiToDouble(probi); + ledger_->ReconcileComplete(result, amount, viewing_id, type, error); - if (result != ledger::Result::LEDGER_OK) { - if (!viewing_id.empty()) { - ledger_->RemoveReconcileById(viewing_id); - } + if (error) { return; } - ledger_->AddReconcileStep(viewing_id, - ledger::ContributionRetry::STEP_WINNERS); + ledger_->AddReconcileStep( + viewing_id, + ledger::ContributionRetry::STEP_WINNERS); contribution_->StartPhaseTwo(viewing_id); } diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc index 6879cf512f09..9797eb5777ba 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc @@ -607,14 +607,25 @@ uint64_t LedgerImpl::GetReconcileStamp() const { return bat_state_->GetReconcileStamp(); } -void LedgerImpl::OnReconcileComplete(ledger::Result result, - const std::string& viewing_id, - const std::string& probi, - const ledger::RewardsType type) { +void LedgerImpl::ReconcileComplete( + const ledger::Result result, + const double amount, + const std::string& viewing_id, + const ledger::RewardsType type, + const bool delete_reconcile) { + const auto reconcile = GetReconcileById(viewing_id); + + if (result == ledger::Result::LEDGER_OK) { + bat_contribution_->ReconcileSuccess( + viewing_id, + amount, + delete_reconcile); + } + ledger_client_->OnReconcileComplete( result, viewing_id, - probi, + amount, type); } @@ -781,21 +792,6 @@ void LedgerImpl::GetPublisherBanner(const std::string& publisher_id, bat_publisher_->GetPublisherBanner(publisher_id, callback); } -void LedgerImpl::OnReconcileCompleteSuccess( - const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date) { - bat_contribution_->OnReconcileCompleteSuccess(viewing_id, - type, - probi, - month, - year, - date); -} - void LedgerImpl::RemoveRecurringTip( const std::string& publisher_key, ledger::RemoveRecurringTipCallback callback) { @@ -1084,18 +1080,9 @@ bool LedgerImpl::ReconcileExists(const std::string& viewingId) { } void LedgerImpl::SaveContributionInfo( - const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type) { - ledger_client_->SaveContributionInfo(probi, - month, - year, - date, - publisher_key, - type); + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback) { + ledger_client_->SaveContributionInfo(std::move(info), callback); } void LedgerImpl::NormalizeContributeWinners( diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h index 30261760c26f..ba1993b60a93 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.h @@ -212,10 +212,12 @@ class LedgerImpl : public ledger::Ledger, const ledger::UrlMethod method, ledger::LoadURLCallback callback); - void OnReconcileComplete(ledger::Result result, - const std::string& viewing_id, - const std::string& probi, - const ledger::RewardsType type); + void ReconcileComplete( + const ledger::Result result, + const double amount, + const std::string& viewing_id, + const ledger::RewardsType type, + const bool delete_reconcile = true); std::string URIEncode(const std::string& value) override; @@ -277,13 +279,6 @@ class LedgerImpl : public ledger::Ledger, void GetPublisherBanner(const std::string& publisher_id, ledger::PublisherBannerCallback callback) override; - void OnReconcileCompleteSuccess(const std::string& viewing_id, - const ledger::RewardsType type, - const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date) override; - void SaveRecurringTip( ledger::RecurringTipPtr info, ledger::SaveRecurringTipCallback callback) override; @@ -383,12 +378,9 @@ class LedgerImpl : public ledger::Ledger, bool ReconcileExists(const std::string& viewingId); - void SaveContributionInfo(const std::string& probi, - const ledger::ActivityMonth month, - const int year, - const uint32_t date, - const std::string& publisher_key, - const ledger::RewardsType type); + void SaveContributionInfo( + ledger::ContributionInfoPtr info, + ledger::ResultCallback callback); void NormalizeContributeWinners( ledger::PublisherInfoList* newList, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.cc index 6906e7a3dd4d..6c8c485d095c 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.cc @@ -33,10 +33,6 @@ void MockLedgerClient::Shutdown() { ledger_.reset(); } -void MockLedgerClient::OnReconcileComplete(ledger::Result result, - const std::string& viewing_id) { -} - void MockLedgerClient::LoadLedgerState(ledger::LedgerCallbackHandler* handler) { handler->OnLedgerStateLoaded(ledger::Result::OK, ledger_state_); } diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.h b/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.h index d0c78e36f681..a905b8350eb1 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/test/mock_ledger_client.h @@ -32,8 +32,6 @@ class MockLedgerClient : public ledger::LedgerClient { protected: // ledger::LedgerClient std::string GenerateGUID() const override; - void OnReconcileComplete(ledger::Result result, - const std::string& viewing_id) override; void LoadLedgerState(ledger::LedgerCallbackHandler* handler) override; void LoadPublisherState(ledger::LedgerCallbackHandler* handler) override; void SaveLedgerState(const std::string& ledger_state, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.cc index b3f9d9205ac7..32655f28ce27 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.cc @@ -84,8 +84,6 @@ void Uphold::ContributionCompleted( const double fee, const ledger::ExternalWallet& wallet) { const auto reconcile = ledger_->GetReconcileById(viewing_id); - const auto amount = - braveledger_bat_util::ConvertToProbi(std::to_string(reconcile.fee_)); if (result == ledger::Result::LEDGER_OK) { const auto current_time_seconds = base::Time::Now().ToDoubleT(); @@ -97,17 +95,11 @@ void Uphold::ContributionCompleted( SaveTransferFee(std::move(transfer_fee)); } - ledger_->OnReconcileComplete(result, - viewing_id, - amount, - reconcile.type_); - - if (result != ledger::Result::LEDGER_OK) { - if (!viewing_id.empty()) { - ledger_->RemoveReconcileById(viewing_id); - } - return; - } + ledger_->ReconcileComplete( + result, + reconcile.fee_, + viewing_id, + reconcile.type_); } void Uphold::FetchBalance( diff --git a/vendor/brave-ios/Ledger/BATBraveLedger.mm b/vendor/brave-ios/Ledger/BATBraveLedger.mm index 5e0577b32858..f6aa73cc4352 100644 --- a/vendor/brave-ios/Ledger/BATBraveLedger.mm +++ b/vendor/brave-ios/Ledger/BATBraveLedger.mm @@ -715,8 +715,9 @@ - (BATAutoContributeProps *)autoContributeProps #pragma mark - Reconcile -- (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string &)viewing_id type:(const ledger::RewardsType)type probi:(const std::string &)probi +- (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string &)viewing_id type:(const ledger::RewardsType)type amount:(const double)amount { + // TODO we changed from probi to amount, so from string to double if (result == ledger::Result::LEDGER_OK) { const auto now = [NSDate date]; const auto nowTimestamp = [now timeIntervalSince1970]; @@ -725,13 +726,6 @@ - (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string [self showTipsProcessedNotificationIfNeccessary]; } [self fetchBalance:nil]; - - ledger->OnReconcileCompleteSuccess(viewing_id, - type, - probi, - BATGetPublisherMonth(now), - BATGetPublisherYear(now), - nowTimestamp); } if ((result == ledger::Result::LEDGER_OK && type == ledger::RewardsType::AUTO_CONTRIBUTE) || @@ -1675,8 +1669,9 @@ - (void)saveActivityInfo:(ledger::PublisherInfoPtr)publisher_info callback:(ledg } } -- (void)saveContributionInfo:(const std::string &)probi month:(const ledger::ActivityMonth)month year:(const int)year date:(const uint32_t)date publisherKey:(const std::string &)publisher_key type:(const ledger::RewardsType)type +- (void)saveContributionInfo:(ledger::ContributionInfoPtr)info callback:(ledger::ResultCallback)callback { + // TODO please insert as we changed DB structure [BATLedgerDatabase insertContributionInfo:[NSString stringWithUTF8String:probi.c_str()] month:(BATActivityMonth)month year:year diff --git a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h index 44b506877f36..72773248016e 100644 --- a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h +++ b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.h @@ -36,7 +36,7 @@ class NativeLedgerClient : public ledger::LedgerClient { void LoadURL(const std::string & url, const std::vector & headers, const std::string & content, const std::string & contentType, const ledger::UrlMethod method, ledger::LoadURLCallback callback) override; std::unique_ptr Log(const char * file, int line, const ledger::LogLevel log_level) const override; void OnPanelPublisherInfo(ledger::Result result, ledger::PublisherInfoPtr publisher_info, uint64_t windowId) override; - void OnReconcileComplete(ledger::Result result, const std::string & viewing_id, const std::string & probi, const ledger::RewardsType type) override; + void OnReconcileComplete(ledger::Result result, const std::string & viewing_id, const double amount, const ledger::RewardsType type) override; void RemoveRecurringTip(const std::string & publisher_key, ledger::RemoveRecurringTipCallback callback) override; void RestorePublishers(ledger::RestorePublishersCallback callback) override; void OnWalletProperties(ledger::Result result, ledger::WalletPropertiesPtr arg1) override; @@ -44,7 +44,7 @@ class NativeLedgerClient : public ledger::LedgerClient { void RemovePendingContribution(const std::string & publisher_key, const std::string & viewing_id, uint64_t added_date, ledger::RemovePendingContributionCallback callback) override; void ResetState(const std::string & name, ledger::OnResetCallback callback) override; void SaveActivityInfo(ledger::PublisherInfoPtr publisher_info, ledger::PublisherInfoCallback callback) override; - void SaveContributionInfo(const std::string & probi, const ledger::ActivityMonth month, const int year, const uint32_t date, const std::string & publisher_key, const ledger::RewardsType type) override; + void SaveContributionInfo(ledger::ContributionInfoPtr info, ledger::ResultCallback callback) override; void SaveLedgerState(const std::string & ledger_state, ledger::LedgerCallbackHandler * handler) override; void SaveMediaPublisherInfo(const std::string & media_key, const std::string & publisher_id) override; void SaveNormalizedPublisherList(ledger::PublisherInfoList normalized_list) override; diff --git a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm index 9c3a712d4290..d24af3480853 100644 --- a/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm +++ b/vendor/brave-ios/Ledger/Generated/NativeLedgerClient.mm @@ -74,8 +74,8 @@ void NativeLedgerClient::OnPanelPublisherInfo(ledger::Result result, ledger::PublisherInfoPtr publisher_info, uint64_t windowId) { [bridge_ onPanelPublisherInfo:result publisherInfo:std::move(publisher_info) windowId:windowId]; } -void NativeLedgerClient::OnReconcileComplete(ledger::Result result, const std::string & viewing_id, const std::string & probi, const ledger::RewardsType type) { - [bridge_ onReconcileComplete:result viewingId:viewing_id type:type probi:probi]; +void NativeLedgerClient::OnReconcileComplete(ledger::Result result, const std::string & viewing_id, const double amount, const ledger::RewardsType type) { + [bridge_ onReconcileComplete:result viewingId:viewing_id type:type amount:amount]; } void NativeLedgerClient::RemoveRecurringTip(const std::string & publisher_key, ledger::RemoveRecurringTipCallback callback) { [bridge_ removeRecurringTip:publisher_key callback:callback]; @@ -99,8 +99,8 @@ void NativeLedgerClient::SaveActivityInfo(ledger::PublisherInfoPtr publisher_info, ledger::PublisherInfoCallback callback) { [bridge_ saveActivityInfo:std::move(publisher_info) callback:callback]; } -void NativeLedgerClient::SaveContributionInfo(const std::string & probi, const ledger::ActivityMonth month, const int year, const uint32_t date, const std::string & publisher_key, const ledger::RewardsType type) { - [bridge_ saveContributionInfo:probi month:month year:year date:date publisherKey:publisher_key type:type]; +void NativeLedgerClient::SaveContributionInfo(ledger::ContributionInfoPtr info, ledger::ResultCallback callback) { + [bridge_ saveContributionInfo:std::move(info) callback:callback]; } void NativeLedgerClient::SaveLedgerState(const std::string & ledger_state, ledger::LedgerCallbackHandler * handler) { [bridge_ saveLedgerState:ledger_state handler:handler]; diff --git a/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h b/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h index df20f11b79cf..f484770f3532 100644 --- a/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h +++ b/vendor/brave-ios/Ledger/Generated/NativeLedgerClientBridge.h @@ -29,7 +29,7 @@ - (void)loadURL:(const std::string &)url headers:(const std::vector &)headers content:(const std::string &)content contentType:(const std::string &)contentType method:(const ledger::UrlMethod)method callback:(ledger::LoadURLCallback)callback; - (std::unique_ptr)log:(const char *)file line:(int)line logLevel:(const ledger::LogLevel)log_level; - (void)onPanelPublisherInfo:(ledger::Result)result publisherInfo:(ledger::PublisherInfoPtr)publisher_info windowId:(uint64_t)windowId; -- (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string &)viewing_id type:(const ledger::RewardsType)type probi:(const std::string &)probi; +- (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string &)viewing_id type:(const ledger::RewardsType)type amount:(const double)amount; - (void)removeRecurringTip:(const std::string &)publisher_key callback:(ledger::RemoveRecurringTipCallback)callback; - (void)restorePublishers:(ledger::RestorePublishersCallback)callback; - (void)onWalletProperties:(ledger::Result)result arg1:(ledger::WalletPropertiesPtr)arg1; @@ -37,7 +37,7 @@ - (void)removePendingContribution:(const std::string &)publisher_key viewingId:(const std::string &)viewing_id addedDate:(uint64_t)added_date callback:(ledger::RemovePendingContributionCallback )callback; - (void)resetState:(const std::string &)name callback:(ledger::OnResetCallback)callback; - (void)saveActivityInfo:(ledger::PublisherInfoPtr)publisher_info callback:(ledger::PublisherInfoCallback)callback; -- (void)saveContributionInfo:(const std::string &)probi month:(const ledger::ActivityMonth)month year:(const int)year date:(const uint32_t)date publisherKey:(const std::string &)publisher_key type:(const ledger::RewardsType)type; +- (void)saveContributionInfo:(ledger::ContributionInfoPtr)info callback:(ledger::ResultCallback)callback; - (void)saveLedgerState:(const std::string &)ledger_state handler:(ledger::LedgerCallbackHandler *)handler; - (void)saveMediaPublisherInfo:(const std::string &)media_key publisherId:(const std::string &)publisher_id; - (void)saveNormalizedPublisherList:(ledger::PublisherInfoList)normalized_list; From edfc5c114fe473f161a8a8f1a4bc830a6e36460c Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Mon, 25 Nov 2019 12:30:15 +0100 Subject: [PATCH 3/4] Fixes v7 table that was not created correctly in https://github.com/brave/brave-core/pull/3630 --- .../migration/publisher_info_db_v7 | Bin 1232896 -> 1236992 bytes .../migration/publisher_info_schema_v8.txt | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/test/data/rewards-data/migration/publisher_info_db_v7 b/test/data/rewards-data/migration/publisher_info_db_v7 index 26353db00cc01efa4a854f071cf7aaaf32135743..119717e1b09466d27b240b584b758f8b999e9fc4 100644 GIT binary patch delta 871 zcmZoz;N5V*dxEr}J_7@z9s>gd8xS)BvHCFfSSR8|K(=EhWq@@FXOkrjAxWk zFkxwB;AhZg;M3(f$Wz3%fJc>MCzn454|_PchK?eBwhbZ`k`uHfgxVkxp`h+ML=ztWZ zq@9=wu&PU`RMS20J^txN>PW zv#79(>+3VMnogH%W>l|d)I$v`fQ%uCD17EnI^e(qt8LCzkIK_IUb6y+ynDshIm zMgW~_pac&EkR0~#fd@b&t`Jbl1x8i|*1%D!Oie7pDuWViznd8qi3m1TqJnL^LnEUB zBMV;zW5#xgX2uvs4mMR#(q~}UUem(Z$HCaqUem`2#7scU48$xz%nHP8K+F!r96-zo h#9Tnk4a7V^%nQVPK+F%s0zfRdy{1p7#c`2=005)8_cj0k delta 263 zcmZoT;N7smdxEr}Dgy(fE&~E6PSi1GRb|k#;MkbbDbHxJ`JKFkz;?C^LcjPIIS6br zxWGSI!9cS4W&HM+@r)7*hD-$v{EQ9^JbSnUxEVS1xwf!-aNJ{?&H9Yhl%CA1uRXeO6=P^TNq;)r_1&*a%_Lw z%Gk%jSh!ixAeWJ)nN^v+y{3;5h?#(x8Hibcm=%cGfEXml0mPg@%mu{UK+FTgyg Date: Wed, 27 Nov 2019 12:18:08 -0500 Subject: [PATCH 4/4] Fix iOS build This change allows CI to pass but no longer supports one-time tips. --- vendor/brave-ios/Ledger/BATBraveLedger.mm | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/vendor/brave-ios/Ledger/BATBraveLedger.mm b/vendor/brave-ios/Ledger/BATBraveLedger.mm index f6aa73cc4352..760d9f4ee92f 100644 --- a/vendor/brave-ios/Ledger/BATBraveLedger.mm +++ b/vendor/brave-ios/Ledger/BATBraveLedger.mm @@ -719,9 +719,6 @@ - (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string { // TODO we changed from probi to amount, so from string to double if (result == ledger::Result::LEDGER_OK) { - const auto now = [NSDate date]; - const auto nowTimestamp = [now timeIntervalSince1970]; - if (type == ledger::RewardsType::RECURRING_TIP) { [self showTipsProcessedNotificationIfNeccessary]; } @@ -736,7 +733,7 @@ - (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string const auto info = @{ @"viewingId": viewingId, @"result": @((BATResult)result), @"type": @((BATRewardsType)type), - @"amount": [NSString stringWithUTF8String:probi.c_str()] }; + @"amount": [@(amount) stringValue] }; [self addNotificationOfKind:BATRewardsNotificationKindAutoContribute userInfo:info @@ -751,7 +748,7 @@ - (void)onReconcileComplete:(ledger::Result)result viewingId:(const std::string observer.reconcileCompleted(static_cast(result), [NSString stringWithUTF8String:viewing_id.c_str()], static_cast(type), - [NSString stringWithUTF8String:probi.c_str()]); + [@(amount) stringValue]); } } } @@ -1671,20 +1668,8 @@ - (void)saveActivityInfo:(ledger::PublisherInfoPtr)publisher_info callback:(ledg - (void)saveContributionInfo:(ledger::ContributionInfoPtr)info callback:(ledger::ResultCallback)callback { - // TODO please insert as we changed DB structure - [BATLedgerDatabase insertContributionInfo:[NSString stringWithUTF8String:probi.c_str()] - month:(BATActivityMonth)month - year:year - date:date - publisherKey:[NSString stringWithUTF8String:publisher_key.c_str()] - type:(BATRewardsType)type - completion:^(BOOL success) { - for (BATBraveLedgerObserver *observer in [self.observers copy]) { - if (observer.contributionAdded) { - observer.contributionAdded(success, static_cast(type)); - } - } - }]; + BLOG(ledger::LogLevel::LOG_ERROR) << "Cannot save contribution info; Neccessary DB update not available" << std::endl; + callback(ledger::Result::LEDGER_ERROR); } - (void)saveMediaPublisherInfo:(const std::string &)media_key publisherId:(const std::string &)publisher_id

b#{ff~UPG6GObd?n0Q{oU;{$)Ii5uZe-Kq}Ixj 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