Skip to content

Commit 0d75396

Browse files
authored
feat(wallet): add Base to preloaded EVM networks (uplift to 1.74.x) (#27097)
Uplift of #27013 (squashed) to beta
1 parent 1090ab6 commit 0d75396

11 files changed

+91
-50
lines changed

components/brave_wallet/browser/blockchain_list_parser.cc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -675,9 +675,6 @@ std::optional<DappListMap> ParseDappLists(const std::string& json) {
675675
AddDappListToMap(
676676
GetTokenListKey(mojom::CoinType::ETH, mojom::kOptimismMainnetChainId),
677677
dapp_lists_from_component->optimism, &dapp_lists);
678-
AddDappListToMap(
679-
GetTokenListKey(mojom::CoinType::ETH, mojom::kAuroraMainnetChainId),
680-
dapp_lists_from_component->aurora, &dapp_lists);
681678
AddDappListToMap(
682679
GetTokenListKey(mojom::CoinType::ETH, mojom::kAvalancheMainnetChainId),
683680
dapp_lists_from_component->avalanche, &dapp_lists);

components/brave_wallet/browser/blockchain_list_parser_unittest.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -440,9 +440,9 @@ TEST(BlockchainListParseUnitTest, ParseDappLists) {
440440
std::optional<DappListMap> dapp_list_map = ParseDappLists(dapp_list);
441441
ASSERT_TRUE(dapp_list_map);
442442

443-
// There should be eight lists, for Ethereum, Solana, Polygon, Binance Smart
444-
// Chain, Optimism, Aurora, Avalanche, and Fantom
445-
ASSERT_EQ(8u, dapp_list_map->size());
443+
// There should be seven lists, for Ethereum, Solana, Polygon, Binance Smart
444+
// Chain, Optimism, Avalanche, and Fantom
445+
ASSERT_EQ(7u, dapp_list_map->size());
446446

447447
// There should be one dapp in the Ethereum list
448448
auto it = dapp_list_map->find(

components/brave_wallet/browser/brave_wallet_p3a_unittest.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -601,14 +601,14 @@ TEST_F(BraveWalletP3AUnitTest, EthTransactionSentObservation) {
601601
std::string tx_meta_id;
602602
EXPECT_TRUE(AddUnapprovedEvmTransaction(
603603
mojom::NewEvmTransactionParams::New(
604-
mojom::kAuroraMainnetChainId, eth_from(),
604+
mojom::kBnbSmartChainMainnetChainId, eth_from(),
605605
"0xbe862ad9abfe6f22bcb087716c7d89a26051f74c", "0x016345785d8a0000",
606606
"0x0974", std::vector<uint8_t>()),
607607
&tx_meta_id));
608608

609609
// Approve the ETH transaction
610-
EXPECT_TRUE(ApproveTransaction(mojom::CoinType::ETH,
611-
mojom::kAuroraMainnetChainId, tx_meta_id));
610+
EXPECT_TRUE(ApproveTransaction(
611+
mojom::CoinType::ETH, mojom::kBnbSmartChainMainnetChainId, tx_meta_id));
612612

613613
// Verify EthTransactionSent
614614
histogram_tester_->ExpectUniqueSample(kEthTransactionSentHistogramName, 1, 1);

components/brave_wallet/browser/brave_wallet_prefs.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,9 @@ void RegisterProfilePrefsForMigration(
297297

298298
// Added 08/2024
299299
registry->RegisterBooleanPref(kBraveWalletIsSPLTokenProgramMigrated, false);
300+
301+
// Added 11/2024
302+
registry->RegisterBooleanPref(kBraveWalletAuroraMainnetMigrated, false);
300303
}
301304

302305
void ClearJsonRpcServiceProfilePrefs(PrefService* prefs) {
@@ -359,6 +362,10 @@ void MigrateObsoleteProfilePrefs(PrefService* prefs) {
359362

360363
// Added 07/2024 to set active ETH chain to Sepolia if Goerli is selected.
361364
BraveWalletService::MigrateGoerliNetwork(prefs);
365+
366+
// Added 11/2024 to set active ETH chain to Aurora mainnet if Aurora is
367+
// selected.
368+
BraveWalletService::MigrateAuroraMainnetAsCustomNetwork(prefs);
362369
}
363370

364371
} // namespace brave_wallet

components/brave_wallet/browser/brave_wallet_service.cc

Lines changed: 55 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -791,52 +791,54 @@ bool ShouldMigrateRemovedPreloadedNetwork(PrefService* prefs,
791791
base::ToLowerASCII(*selected_chain_id) == chain_id;
792792
}
793793

794-
void BraveWalletService::MigrateFantomMainnetAsCustomNetwork(
795-
PrefService* prefs) {
796-
if (prefs->GetBoolean(kBraveWalletCustomNetworksFantomMainnetMigrated)) {
794+
// Migrate preloaded network to custom network.
795+
void BraveWalletService::MigrateAsCustomNetwork(
796+
PrefService* prefs,
797+
const mojom::NetworkInfo& network,
798+
bool is_eip1559,
799+
std::string_view pref_key) {
800+
if (prefs->GetBoolean(pref_key)) {
797801
return;
798802
}
799803

800-
if (ShouldMigrateRemovedPreloadedNetwork(prefs, mojom::CoinType::ETH,
801-
mojom::kFantomMainnetChainId)) {
804+
if (ShouldMigrateRemovedPreloadedNetwork(prefs, network.coin,
805+
network.chain_id)) {
802806
NetworkManager network_manager(prefs);
803-
mojom::NetworkInfo network(
804-
mojom::kFantomMainnetChainId, "Fantom Opera", {"https://ftmscan.com"},
805-
{}, 0, {GURL("https://rpc.ftm.tools")}, "FTM", "Fantom", 18,
806-
mojom::CoinType::ETH,
807-
GetSupportedKeyringsForNetwork(mojom::CoinType::ETH,
808-
mojom::kFantomMainnetChainId));
809807
network_manager.AddCustomNetwork(network);
810-
network_manager.SetEip1559ForCustomChain(mojom::kFantomMainnetChainId,
811-
true);
808+
network_manager.SetEip1559ForCustomChain(network.chain_id, is_eip1559);
812809
EnsureNativeTokenForNetwork(prefs, network);
813810
}
814811

815-
prefs->SetBoolean(kBraveWalletCustomNetworksFantomMainnetMigrated, true);
812+
prefs->SetBoolean(pref_key, true);
816813
}
817814

818-
void BraveWalletService::MigrateGoerliNetwork(PrefService* prefs) {
819-
if (prefs->GetBoolean(kBraveWalletGoerliNetworkMigrated)) {
815+
// Migrate dead network to fallback network.
816+
void BraveWalletService::MigrateDeadNetwork(
817+
PrefService* prefs,
818+
const std::string& chain_id,
819+
const std::string& fallback_chain_id,
820+
std::string_view pref_key) {
821+
if (prefs->GetBoolean(pref_key)) {
820822
return;
821823
}
822824

823825
NetworkManager network_manager(prefs);
824826

825-
// Migrate current chain id to Sepolia for default origin.
827+
// Migrate current chain id for default origin
826828
if (network_manager.GetCurrentChainId(mojom::CoinType::ETH, std::nullopt) ==
827-
"0x5") {
829+
chain_id) {
828830
network_manager.SetCurrentChainId(mojom::CoinType::ETH, std::nullopt,
829-
mojom::kSepoliaChainId);
831+
fallback_chain_id);
830832
}
831833

832-
// Migrate current chain id to Sepolia for all origins.
834+
// Migrate current chain id for all origins
833835
const auto& selected_networks =
834836
prefs->GetDict(kBraveWalletSelectedNetworksPerOrigin);
835837

836838
const auto* coin_dict =
837839
selected_networks.FindDict(GetPrefKeyForCoinType(mojom::CoinType::ETH));
838840
if (!coin_dict) {
839-
prefs->SetBoolean(kBraveWalletGoerliNetworkMigrated, true);
841+
prefs->SetBoolean(pref_key, true);
840842
return;
841843
}
842844

@@ -846,14 +848,43 @@ void BraveWalletService::MigrateGoerliNetwork(PrefService* prefs) {
846848
continue;
847849
}
848850

849-
if (base::ToLowerASCII(*chain_id_each) == "0x5") {
851+
if (base::ToLowerASCII(*chain_id_each) == chain_id) {
850852
network_manager.SetCurrentChainId(mojom::CoinType::ETH,
851853
url::Origin::Create(GURL(origin.first)),
852-
mojom::kSepoliaChainId);
854+
fallback_chain_id);
853855
}
854856
}
855857

856-
prefs->SetBoolean(kBraveWalletGoerliNetworkMigrated, true);
858+
prefs->SetBoolean(pref_key, true);
859+
}
860+
861+
void BraveWalletService::MigrateFantomMainnetAsCustomNetwork(
862+
PrefService* prefs) {
863+
mojom::NetworkInfo network(
864+
mojom::kFantomMainnetChainId, "Fantom Opera", {"https://ftmscan.com"}, {},
865+
0, {GURL("https://rpc.ftm.tools")}, "FTM", "Fantom", 18,
866+
mojom::CoinType::ETH,
867+
GetSupportedKeyringsForNetwork(mojom::CoinType::ETH,
868+
mojom::kFantomMainnetChainId));
869+
MigrateAsCustomNetwork(prefs, network, true,
870+
kBraveWalletCustomNetworksFantomMainnetMigrated);
871+
}
872+
873+
void BraveWalletService::MigrateGoerliNetwork(PrefService* prefs) {
874+
MigrateDeadNetwork(prefs, "0x5", mojom::kSepoliaChainId,
875+
kBraveWalletGoerliNetworkMigrated);
876+
}
877+
878+
void BraveWalletService::MigrateAuroraMainnetAsCustomNetwork(
879+
PrefService* prefs) {
880+
mojom::NetworkInfo network(
881+
mojom::kAuroraMainnetChainId, "Aurora Mainnet", {"https://aurora.dev"},
882+
{}, 0, {GURL("https://mainnet.aurora.dev")}, "ETH", "Aurora", 18,
883+
mojom::CoinType::ETH,
884+
GetSupportedKeyringsForNetwork(mojom::CoinType::ETH,
885+
mojom::kAuroraMainnetChainId));
886+
MigrateAsCustomNetwork(prefs, network, false,
887+
kBraveWalletAuroraMainnetMigrated);
857888
}
858889

859890
void BraveWalletService::MigrateAssetsPrefToList(PrefService* prefs) {

components/brave_wallet/browser/brave_wallet_service.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,17 @@ class BraveWalletService : public KeyedService,
8181
void Bind(mojo::PendingReceiver<T> receiver);
8282

8383
static void MigrateHiddenNetworks(PrefService* profile_prefs);
84+
static void MigrateDeadNetwork(PrefService* prefs,
85+
const std::string& chain_id,
86+
const std::string& fallback_chain_id,
87+
std::string_view pref_key);
88+
static void MigrateAsCustomNetwork(PrefService* prefs,
89+
const mojom::NetworkInfo& network,
90+
bool is_eip1559,
91+
std::string_view pref_key);
8492
static void MigrateFantomMainnetAsCustomNetwork(PrefService* prefs);
8593
static void MigrateGoerliNetwork(PrefService* prefs);
94+
static void MigrateAuroraMainnetAsCustomNetwork(PrefService* prefs);
8695
static void MigrateAssetsPrefToList(PrefService* prefs);
8796
static void MigrateEip1559ForCustomNetworks(PrefService* prefs);
8897
void MaybeMigrateCompressedNfts();

components/brave_wallet/browser/eth_tx_manager_unittest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ TEST_F(EthTxManagerUnitTest, AddUnapprovedEvmTransaction) {
541541
// Known non-Eip1559 chain.
542542
{
543543
auto params = mojom::NewEvmTransactionParams::New(
544-
mojom::kAuroraMainnetChainId, from(),
544+
mojom::kBnbSmartChainMainnetChainId, from(),
545545
"0xbe862ad9abfe6f22bcb087716c7d89a26051f74c", "0x016345785d8a0000",
546546
"0x0974", data_);
547547
EXPECT_FALSE(*network_manager_->IsEip1559Chain(params->chain_id));

components/brave_wallet/browser/json_rpc_service_unittest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2116,7 +2116,7 @@ TEST_F(JsonRpcServiceUnitTest, GetKnownNetworks) {
21162116
UpdateCustomNetworks(prefs(), &values);
21172117

21182118
EXPECT_CALL(callback,
2119-
Run(ElementsAreArray({"0x1", "0x4e454152", "0x89", "0x38", "0xa",
2119+
Run(ElementsAreArray({"0x1", "0x2105", "0x89", "0x38", "0xa",
21202120
"0xa86a", "0x13a", "0xe9ac0d6", "0xaa36a7",
21212121
"0x4cb2f", "0x539"})));
21222122
json_rpc_service_->GetKnownNetworks(mojom::CoinType::ETH, callback.Get());

components/brave_wallet/browser/network_manager.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ std::optional<bool> GetEip1559ForKnownChain(const std::string& chain_id_lwr) {
4747
{mojom::kFilecoinEthereumMainnetChainId, true},
4848
{mojom::kFilecoinEthereumTestnetChainId, true},
4949
{mojom::kBnbSmartChainMainnetChainId, false},
50-
{mojom::kAuroraMainnetChainId, false},
50+
{mojom::kBaseMainnetChainId, true},
5151
{mojom::kNeonEVMMainnetChainId, false},
5252
{mojom::kLocalhostChainId, false},
5353
});
@@ -73,7 +73,7 @@ const std::string GetChainSubdomain(const std::string& chain_id) {
7373
{mojom::kSepoliaChainId, "ethereum-sepolia"},
7474
{mojom::kPolygonMainnetChainId, "polygon-mainnet"},
7575
{mojom::kOptimismMainnetChainId, "optimism-mainnet"},
76-
{mojom::kAuroraMainnetChainId, "aurora-mainnet"},
76+
{mojom::kBaseMainnetChainId, "base-mainnet"},
7777
{mojom::kAvalancheMainnetChainId, "avalanche-mainnet"},
7878
{mojom::kBnbSmartChainMainnetChainId, "bsc-mainnet"},
7979

@@ -195,14 +195,14 @@ const mojom::NetworkInfo* GetOptimismMainnet() {
195195
return network_info.get();
196196
}
197197

198-
const mojom::NetworkInfo* GetAuroraMainnet() {
198+
const mojom::NetworkInfo* GetBaseMainnet() {
199199
const auto coin = mojom::CoinType::ETH;
200-
const auto* chain_id = mojom::kAuroraMainnetChainId;
200+
const auto* chain_id = mojom::kBaseMainnetChainId;
201201

202202
static base::NoDestructor<mojom::NetworkInfo> network_info(
203203
{chain_id,
204-
"Aurora Mainnet",
205-
{"https://aurorascan.dev"},
204+
"Base",
205+
{"https://basescan.org"},
206206
{},
207207
0,
208208
{GetURLForKnownChainId(chain_id).value()},
@@ -314,7 +314,7 @@ const std::vector<const mojom::NetworkInfo*>& GetKnownEthNetworks() {
314314
static base::NoDestructor<std::vector<const mojom::NetworkInfo*>> networks({
315315
// clang-format off
316316
GetEthMainnet(),
317-
GetAuroraMainnet(),
317+
GetBaseMainnet(),
318318
GetPolygonMainnet(),
319319
GetBscMainnet(),
320320
GetOptimismMainnet(),

components/brave_wallet/browser/network_manager_unittest.cc

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -417,10 +417,10 @@ TEST_F(NetworkManagerUnitTest, GetNetworkURLForKnownChains) {
417417
// GetNetworkURL for these known chains should resolve to brave subdomain.
418418
base::flat_set<std::string> known_chains = {
419419
brave_wallet::mojom::kMainnetChainId,
420+
brave_wallet::mojom::kBaseMainnetChainId,
420421
brave_wallet::mojom::kPolygonMainnetChainId,
421422
brave_wallet::mojom::kBnbSmartChainMainnetChainId,
422423
brave_wallet::mojom::kOptimismMainnetChainId,
423-
brave_wallet::mojom::kAuroraMainnetChainId,
424424
brave_wallet::mojom::kAvalancheMainnetChainId,
425425
brave_wallet::mojom::kSepoliaChainId};
426426

@@ -472,12 +472,6 @@ TEST_F(NetworkManagerUnitTest, GetZCashSubdomainForKnownChainId) {
472472
}
473473

474474
TEST_F(NetworkManagerUnitTest, GetKnownChain) {
475-
const base::flat_set<std::string> non_eip1559_networks = {
476-
brave_wallet::mojom::kLocalhostChainId,
477-
brave_wallet::mojom::kBnbSmartChainMainnetChainId,
478-
brave_wallet::mojom::kAuroraMainnetChainId,
479-
brave_wallet::mojom::kNeonEVMMainnetChainId};
480-
481475
auto known_chains = NetworkManager::GetAllKnownChains(mojom::CoinType::ETH);
482476
ASSERT_FALSE(known_chains.empty());
483477
for (const auto& chain : known_chains) {
@@ -654,7 +648,7 @@ TEST_F(NetworkManagerUnitTest, Eip1559Chain) {
654648
{mojom::kFilecoinEthereumMainnetChainId, true},
655649
{mojom::kFilecoinEthereumTestnetChainId, true},
656650
{mojom::kBnbSmartChainMainnetChainId, false},
657-
{mojom::kAuroraMainnetChainId, false},
651+
{mojom::kBaseMainnetChainId, true},
658652
{mojom::kNeonEVMMainnetChainId, false},
659653
{mojom::kLocalhostChainId, false}};
660654
for (auto& [chain_id, value] : known_states) {

components/brave_wallet/browser/pref_names.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ inline constexpr char kBraveWalletEip1559ForCustomNetworksMigrated[] =
105105
// 06/2024 to mark existing compressed Solana NFTs as compressed.
106106
inline constexpr char kBraveWalletIsCompressedNftMigrated[] =
107107
"brave.wallet.is_compressed_nft_migrated";
108+
// Added 11/2024 to mark Aurora mainnet as migrated.
109+
inline constexpr char kBraveWalletAuroraMainnetMigrated[] =
110+
"brave.wallet.aurora_mainnet_migrated";
108111

109112
// 08/2024 to mark fix existign SPL tokens marked as unsupported
110113
inline constexpr char kBraveWalletIsSPLTokenProgramMigrated[] =

0 commit comments

Comments
 (0)