From 615134ed04b9385f417c47dd34c94ce33153ae16 Mon Sep 17 00:00:00 2001 From: brave-builds Date: Wed, 11 Dec 2019 07:10:26 +0000 Subject: [PATCH] Uplift of #4201 (squashed) to dev --- .../src/bat/ledger/internal/uphold/uphold.cc | 30 +++++++++----- .../src/bat/ledger/internal/uphold/uphold.h | 6 +++ .../ledger/internal/uphold/uphold_transfer.cc | 26 ++++++------ .../ledger/internal/uphold/uphold_transfer.h | 41 ++++++++++--------- 4 files changed, 61 insertions(+), 42 deletions(-) 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 5dda8cedfa2..c5670c4858c 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 @@ -25,6 +25,11 @@ using std::placeholders::_1; using std::placeholders::_2; using std::placeholders::_3; +namespace { + const char kFeeMessage[] = + "5% transaction fee collected by Brave Software International"; +} // namespace + namespace braveledger_uphold { Uphold::Uphold(bat_ledger::LedgerImpl* ledger) : @@ -71,10 +76,11 @@ void Uphold::StartContribution( fee, *wallet); - transfer_->Start(reconcile_amount, - address, - std::move(wallet), - contribution_callback); + Transaction transaction; + transaction.address = address; + transaction.amount = reconcile_amount; + + transfer_->Start(transaction, std::move(wallet), contribution_callback); } void Uphold::ContributionCompleted( @@ -179,7 +185,10 @@ void Uphold::TransferFunds(double amount, const std::string& address, ledger::ExternalWalletPtr wallet, TransactionCallback callback) { - transfer_->Start(amount, address, std::move(wallet), callback); + Transaction transaction; + transaction.address = address; + transaction.amount = amount; + transfer_->Start(transaction, std::move(wallet), callback); } void Uphold::WalletAuthorization( @@ -315,11 +324,12 @@ void Uphold::TransferFee( _2, transfer_fee); - transfer_->Start( - transfer_fee.amount, - GetFeeAddress(), - std::move(wallet), - callback); + Transaction transaction; + transaction.address = GetFeeAddress(); + transaction.amount = transfer_fee.amount; + transaction.message = kFeeMessage; + + transfer_->Start(transaction, std::move(wallet), callback); } void Uphold::TransferFeeOnTimer(const uint32_t timer_id) { diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.h b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.h index 463813f8a98..51f1dba9aeb 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold.h @@ -21,6 +21,12 @@ class LedgerImpl; namespace braveledger_uphold { +struct Transaction { + std::string address; + double amount; + std::string message; +}; + class UpholdTransfer; class UpholdCard; class UpholdAuthorization; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.cc index 07dc503865e..f420b8692e8 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.cc @@ -26,22 +26,22 @@ UpholdTransfer::UpholdTransfer(bat_ledger::LedgerImpl* ledger, Uphold* uphold) : UpholdTransfer::~UpholdTransfer() { } -void UpholdTransfer::Start(double amount, - const std::string& address, - ledger::ExternalWalletPtr wallet, - TransactionCallback callback) { +void UpholdTransfer::Start( + const Transaction& transaction, + ledger::ExternalWalletPtr wallet, + TransactionCallback callback) { if (!wallet) { callback(ledger::Result::LEDGER_ERROR, false); return; } - CreateTransaction(amount, address, std::move(wallet), callback); + CreateTransaction(transaction, std::move(wallet), callback); } -void UpholdTransfer::CreateTransaction(double amount, - const std::string& address, - ledger::ExternalWalletPtr wallet, - TransactionCallback callback) { +void UpholdTransfer::CreateTransaction( + const Transaction& transaction, + ledger::ExternalWalletPtr wallet, + TransactionCallback callback) { auto headers = RequestAuthorization(wallet->token); const std::string path = base::StringPrintf( @@ -51,10 +51,12 @@ void UpholdTransfer::CreateTransaction(double amount, const std::string payload = base::StringPrintf( "{ " " \"denomination\": { \"amount\": %f, \"currency\": \"BAT\" }, " - " \"destination\": \"%s\" " + " \"destination\": \"%s\", " + " \"message\": \"%s\" " "}", - amount, - address.c_str()); + transaction.amount, + transaction.address.c_str(), + transaction.message.c_str()); auto create_callback = std::bind(&UpholdTransfer::OnCreateTransaction, this, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.h b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.h index dae20e5ae5b..2868eda9f03 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_transfer.h @@ -24,33 +24,34 @@ class UpholdTransfer { ~UpholdTransfer(); - void Start(double amount, - const std::string& address, - ledger::ExternalWalletPtr wallet, - TransactionCallback callback); + void Start( + const Transaction& transaction, + ledger::ExternalWalletPtr wallet, + TransactionCallback callback); private: - void CreateTransaction(double amount, - const std::string& address, - ledger::ExternalWalletPtr wallet, - TransactionCallback callback); + void CreateTransaction( + const Transaction& transaction, + ledger::ExternalWalletPtr wallet, + TransactionCallback callback); void OnCreateTransaction( - int response_status_code, - const std::string& response, - const std::map& headers, - const ledger::ExternalWallet& wallet, - TransactionCallback callback); + int response_status_code, + const std::string& response, + const std::map& headers, + const ledger::ExternalWallet& wallet, + TransactionCallback callback); - void CommitTransaction(const std::string& transaction_id, - const ledger::ExternalWallet& wallet, - TransactionCallback callback); + void CommitTransaction( + const std::string& transaction_id, + const ledger::ExternalWallet& wallet, + TransactionCallback callback); void OnCommitTransaction( - int response_status_code, - const std::string& response, - const std::map& headers, - TransactionCallback callback); + int response_status_code, + const std::string& response, + const std::map& headers, + TransactionCallback callback); bat_ledger::LedgerImpl* ledger_; // NOT OWNED Uphold* uphold_; // NOT OWNED