Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cardano account balance #27843

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 6 additions & 12 deletions components/brave_wallet/browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@ static_library("browser") {
"brave_wallet_service_delegate.cc",
"brave_wallet_service_delegate.h",
"brave_wallet_service_observer_base.h",
"cardano/cardano_get_utxos_task.cc",
"cardano/cardano_get_utxos_task.h",
"cardano/cardano_rpc.cc",
"cardano/cardano_rpc.h",
"cardano/cardano_wallet_service.cc",
"cardano/cardano_wallet_service.h",
"ens_resolver_task.cc",
Expand Down Expand Up @@ -267,7 +271,6 @@ static_library("browser") {
]
deps = [
":constants",
":generated_bitcoin_rpc_responses",
":generated_blockchain_list_schemas",
":generated_json_rpc_responses",
":generated_simulation_responses",
Expand All @@ -281,6 +284,8 @@ static_library("browser") {
"//brave/components/brave_component_updater/browser",
"//brave/components/brave_stats/browser",
"//brave/components/brave_wallet/api",
"//brave/components/brave_wallet/browser/bitcoin:generated_bitcoin_rpc_responses",
"//brave/components/brave_wallet/browser/cardano:generated_cardano_rpc_responses",
"//brave/components/brave_wallet/browser/internal:hd_key_common",
"//brave/components/brave_wallet/common",
"//brave/components/brave_wallet/common:buildflags",
Expand Down Expand Up @@ -517,17 +522,6 @@ generated_types("generated_blockchain_list_schemas") {
]
}

generated_types("generated_bitcoin_rpc_responses") {
sources = [ "bitcoin_rpc_responses.idl" ]
root_namespace = "brave_wallet::%(namespace)s"
deps = [ "//base" ]
visibility = [
":browser",
"test:brave_wallet_unit_tests",
"//brave/components/brave_wallet/browser/test:test_support",
]
}

generated_types("generated_json_rpc_responses") {
sources = [ "json_rpc_responses.idl" ]
root_namespace = "brave_wallet::%(namespace)s"
Expand Down
17 changes: 17 additions & 0 deletions components/brave_wallet/browser/bitcoin/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright (c) 2025 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 https://mozilla.org/MPL/2.0/.

import("//tools/json_schema_compiler/json_schema_api.gni")

generated_types("generated_bitcoin_rpc_responses") {
sources = [ "bitcoin_rpc_responses.idl" ]
root_namespace = "brave_wallet::%(namespace)s"
deps = [ "//base" ]
visibility = [
"//brave/components/brave_wallet/browser",
"//brave/components/brave_wallet/browser/test:brave_wallet_unit_tests",
"//brave/components/brave_wallet/browser/test:test_support",
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,27 +21,18 @@
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_import_keyring.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_task_utils.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_wallet_service.h"
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
#include "brave/components/brave_wallet/browser/internal/hd_key_common.h"
#include "brave/components/brave_wallet/browser/keyring_service.h"
#include "brave/components/brave_wallet/common/bitcoin_utils.h"
#include "brave/components/brave_wallet/common/common_utils.h"
#include "components/grit/brave_components_strings.h"
#include "ui/base/l10n/l10n_util.h"

namespace brave_wallet {

namespace {

const uint32_t kAddressDiscoveryGapLimit = 20;

std::string InternalErrorString() {
return l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR);
}

std::string ParsingErrorString() {
return l10n_util::GetStringUTF8(IDS_WALLET_PARSING_ERROR);
}

} // namespace

DiscoverAccountTaskBase::State::State() = default;
Expand Down Expand Up @@ -139,7 +130,7 @@ void DiscoverAccountTaskBase::WorkOnTask() {
}
}
if (queue_requests_failed) {
error_ = InternalErrorString();
error_ = WalletInternalErrorMessage();
ScheduleWorkOnTask();
return;
}
Expand Down Expand Up @@ -187,7 +178,7 @@ void DiscoverAccountTaskBase::OnGetAddressStats(
if (!base::StringToUint(stats->chain_stats.tx_count, &chain_stats_tx_count) ||
!base::StringToUint(stats->mempool_stats.tx_count,
&mempool_stats_tx_count)) {
error_ = ParsingErrorString();
error_ = WalletParsingErrorMessage();
WorkOnTask();
return;
}
Expand Down
9 changes: 3 additions & 6 deletions components/brave_wallet/browser/bitcoin/bitcoin_rpc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,14 @@
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "brave/components/brave_wallet/browser/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/browser/brave_wallet_constants.h"
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
#include "brave/components/brave_wallet/browser/json_rpc_response_parser.h"
#include "brave/components/brave_wallet/browser/network_manager.h"
#include "brave/components/brave_wallet/common/features.h"
#include "brave/components/json/json_helper.h"
#include "components/grit/brave_components_strings.h"
#include "net/http/http_request_headers.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "ui/base/l10n/l10n_util.h"

namespace {

Expand Down Expand Up @@ -202,13 +199,13 @@ std::optional<std::string> ConvertPlainStringToJsonArray(
template <class TCallback>
void ReplyWithInvalidJsonError(TCallback callback) {
std::move(callback).Run(
base::unexpected(l10n_util::GetStringUTF8(IDS_WALLET_PARSING_ERROR)));
base::unexpected(brave_wallet::WalletParsingErrorMessage()));
}

template <class TCallback>
void ReplyWithInternalError(TCallback callback) {
std::move(callback).Run(
base::unexpected(l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR)));
base::unexpected(brave_wallet::WalletInternalErrorMessage()));
}

} // namespace
Expand Down
2 changes: 1 addition & 1 deletion components/brave_wallet/browser/bitcoin/bitcoin_rpc.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#include "base/memory/weak_ptr.h"
#include "base/types/expected.h"
#include "brave/components/api_request_helper/api_request_helper.h"
#include "brave/components/brave_wallet/browser/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_rpc_responses.h"

namespace brave_wallet {
class NetworkManager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* 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/. */

// Bitcoin RPC structres.
// Bitcoin RPC structures.
namespace bitcoin_rpc {
dictionary TransactionStatus {
boolean confirmed;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,12 @@
#include "brave/components/brave_wallet/browser/network_manager.h"
#include "brave/components/brave_wallet/common/brave_wallet.mojom.h"
#include "brave/components/brave_wallet/common/features.h"
#include "components/grit/brave_components_strings.h"
#include "components/sync_preferences/testing_pref_service_syncable.h"
#include "services/data_decoder/public/cpp/test_support/in_process_data_decoder.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#include "services/network/test/test_url_loader_factory.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/l10n/l10n_util.h"

using testing::Truly;

Expand All @@ -36,11 +34,11 @@ auto MatchError(const std::string& error) {
}

std::string InternalError() {
return l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR);
return WalletInternalErrorMessage();
}

std::string ParsingError() {
return l10n_util::GetStringUTF8(IDS_WALLET_PARSING_ERROR);
return WalletParsingErrorMessage();
}

} // namespace
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#ifndef BRAVE_COMPONENTS_BRAVE_WALLET_BROWSER_BITCOIN_BITCOIN_TASK_UTILS_H_
#define BRAVE_COMPONENTS_BRAVE_WALLET_BROWSER_BITCOIN_BITCOIN_TASK_UTILS_H_

#include "brave/components/brave_wallet/browser/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/common/brave_wallet.mojom.h"

namespace brave_wallet {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@

#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_hd_keyring.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_rpc.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_wallet_service.h"
#include "brave/components/brave_wallet/browser/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/common/brave_wallet.mojom.h"
#include "services/network/test/test_url_loader_factory.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include <string>
#include <vector>

#include "brave/components/brave_wallet/browser/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/common/hash_utils.h"

namespace brave_wallet {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

#include "base/strings/string_number_conversions.h"
#include "base/test/values_test_util.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_rpc_responses.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_serializer.h"
#include "brave/components/brave_wallet/browser/bitcoin_rpc_responses.h"
#include "brave/components/json/json_helper.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
Expand Down
39 changes: 15 additions & 24 deletions components/brave_wallet/browser/bitcoin/bitcoin_wallet_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,13 @@
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_serializer.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_task_utils.h"
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_transaction.h"
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
#include "brave/components/brave_wallet/browser/keyring_service.h"
#include "brave/components/brave_wallet/common/bitcoin_utils.h"
#include "brave/components/brave_wallet/common/brave_wallet.mojom.h"
#include "brave/components/brave_wallet/common/common_utils.h"
#include "brave/components/brave_wallet/common/hash_utils.h"
#include "components/grit/brave_components_strings.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "ui/base/l10n/l10n_util.h"

namespace brave_wallet {

Expand Down Expand Up @@ -79,15 +78,6 @@ std::string MakeHwPath(const mojom::AccountIdPtr& account,
}
NOTREACHED();
}

std::string InternalErrorString() {
return l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR);
}

std::string ParsingErrorString() {
return l10n_util::GetStringUTF8(IDS_WALLET_PARSING_ERROR);
}

} // namespace

class GetBalanceTask : public base::RefCountedThreadSafe<GetBalanceTask> {
Expand Down Expand Up @@ -171,7 +161,7 @@ void GetBalanceTask::WorkOnTask() {
return;
}
if (!bitcoin_wallet_service_) {
std::move(callback_).Run(nullptr, InternalErrorString());
std::move(callback_).Run(nullptr, WalletInternalErrorMessage());
return;
}

Expand Down Expand Up @@ -298,7 +288,7 @@ void GetUtxosTask::WorkOnTask() {
return;
}
if (!bitcoin_wallet_service_) {
std::move(callback_).Run(base::unexpected(InternalErrorString()));
std::move(callback_).Run(base::unexpected(WalletInternalErrorMessage()));
return;
}

Expand Down Expand Up @@ -438,7 +428,7 @@ void CreateTransactionTask::WorkOnTask() {

if (BitcoinSerializer::AddressToScriptPubkey(transaction_.to(), IsTestnet())
.empty()) {
SetError(ParsingErrorString());
SetError(WalletParsingErrorMessage());
ScheduleWorkOnTask();
return;
}
Expand Down Expand Up @@ -685,7 +675,7 @@ void DiscoverNextUnusedAddressTask::WorkOnTask() {
}

if (!bitcoin_wallet_service_) {
std::move(callback_).Run(base::unexpected(InternalErrorString()));
std::move(callback_).Run(base::unexpected(WalletInternalErrorMessage()));
return;
}

Expand All @@ -706,7 +696,7 @@ void DiscoverNextUnusedAddressTask::WorkOnTask() {
}

if (!current_address_) {
error_ = InternalErrorString();
error_ = WalletInternalErrorMessage();
ScheduleWorkOnTask();
return;
}
Expand All @@ -730,7 +720,7 @@ void DiscoverNextUnusedAddressTask::OnGetAddressStats(
if (!base::StringToUint(stats->chain_stats.tx_count, &chain_stats_tx_count) ||
!base::StringToUint(stats->mempool_stats.tx_count,
&mempool_stats_tx_count)) {
error_ = ParsingErrorString();
error_ = WalletParsingErrorMessage();
WorkOnTask();
return;
}
Expand Down Expand Up @@ -769,7 +759,7 @@ void BitcoinWalletService::GetBalance(mojom::AccountIdPtr account_id,

auto addresses = keyring_service().GetBitcoinAddresses(account_id);
if (!addresses) {
std::move(callback).Run(nullptr, InternalErrorString());
std::move(callback).Run(nullptr, WalletInternalErrorMessage());
return;
}

Expand Down Expand Up @@ -803,7 +793,7 @@ void BitcoinWalletService::OnGetExtendedKeyAccountBalanceDone(
[task](auto& item) { return item.get() == task; }));

if (!result.has_value()) {
std::move(callback).Run(nullptr, InternalErrorString());
std::move(callback).Run(nullptr, WalletInternalErrorMessage());
return;
}
std::move(callback).Run(std::move(result.value().balance), std::nullopt);
Expand Down Expand Up @@ -897,7 +887,7 @@ void BitcoinWalletService::GetUtxos(mojom::AccountIdPtr account_id,

auto addresses = keyring_service().GetBitcoinAddresses(account_id);
if (!addresses) {
std::move(callback).Run(base::unexpected(InternalErrorString()));
std::move(callback).Run(base::unexpected(WalletInternalErrorMessage()));
return;
}

Expand Down Expand Up @@ -939,7 +929,7 @@ void BitcoinWalletService::SignAndPostTransaction(

if (!SignTransactionInternal(bitcoin_transaction, account_id)) {
std::move(callback).Run("", std::move(bitcoin_transaction),
InternalErrorString());
WalletInternalErrorMessage());
return;
}

Expand All @@ -962,7 +952,7 @@ void BitcoinWalletService::PostHwSignedTransaction(

if (!ApplyHwSignatureInternal(bitcoin_transaction, hw_signature)) {
std::move(callback).Run("", std::move(bitcoin_transaction),
InternalErrorString());
WalletInternalErrorMessage());
return;
}

Expand Down Expand Up @@ -1009,7 +999,7 @@ void BitcoinWalletService::OnGetTransaction(
}

if (transaction.value().txid != txid) {
std::move(callback).Run(base::unexpected(InternalErrorString()));
std::move(callback).Run(base::unexpected(WalletInternalErrorMessage()));
return;
}

Expand Down Expand Up @@ -1049,7 +1039,8 @@ void BitcoinWalletService::DiscoverNextUnusedAddress(

auto account_info = keyring_service().GetBitcoinAccountInfo(account_id);
if (!account_info) {
return std::move(callback).Run(base::unexpected(InternalErrorString()));
return std::move(callback).Run(
base::unexpected(WalletInternalErrorMessage()));
}
auto start_address = change ? account_info->next_change_address.Clone()
: account_info->next_receive_address.Clone();
Expand Down
4 changes: 4 additions & 0 deletions components/brave_wallet/browser/brave_wallet_utils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,10 @@ std::string WalletInternalErrorMessage() {
return l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR);
}

std::string WalletParsingErrorMessage() {
return l10n_util::GetStringUTF8(IDS_WALLET_PARSING_ERROR);
}

mojom::BlockchainTokenPtr GetBitcoinNativeToken(std::string_view chain_id) {
auto network = NetworkManager::GetKnownChain(chain_id, mojom::CoinType::BTC);
CHECK(network);
Expand Down
1 change: 1 addition & 0 deletions components/brave_wallet/browser/brave_wallet_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ mojom::OriginInfoPtr MakeOriginInfo(const url::Origin& origin);
std::string GenerateRandomHexString();

std::string WalletInternalErrorMessage();
std::string WalletParsingErrorMessage();

mojom::BlockchainTokenPtr GetBitcoinNativeToken(std::string_view chain_id);
mojom::BlockchainTokenPtr GetZcashNativeToken(std::string_view chain_id);
Expand Down
Loading
Loading