Merge pull request #13920 from brave/GetCustonAndKnownNetworks
Added GetCustomNetworks and GetKnownNetworks
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include "base/environment.h"
|
||||
#include "base/json/json_writer.h"
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/notreached.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "brave/components/brave_wallet/browser/brave_wallet_prefs.h"
|
||||
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
|
||||
@@ -492,6 +493,36 @@ void JsonRpcService::GetAllNetworks(mojom::CoinType coin,
|
||||
std::move(callback).Run(GetAllChains(prefs_, coin));
|
||||
}
|
||||
|
||||
void JsonRpcService::GetCustomNetworks(mojom::CoinType coin,
|
||||
GetCustomNetworksCallback callback) {
|
||||
if (coin != mojom::CoinType::ETH) {
|
||||
NOTREACHED();
|
||||
std::move(callback).Run({});
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<std::string> chain_ids;
|
||||
for (const auto& it : brave_wallet::GetAllEthCustomChains(prefs_)) {
|
||||
chain_ids.push_back(it->chain_id);
|
||||
}
|
||||
std::move(callback).Run(std::move(chain_ids));
|
||||
}
|
||||
|
||||
void JsonRpcService::GetKnownNetworks(mojom::CoinType coin,
|
||||
GetKnownNetworksCallback callback) {
|
||||
if (coin != mojom::CoinType::ETH) {
|
||||
NOTREACHED();
|
||||
std::move(callback).Run({});
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<std::string> chain_ids;
|
||||
for (const auto& it : brave_wallet::GetAllKnownEthChains(prefs_)) {
|
||||
chain_ids.push_back(it->chain_id);
|
||||
}
|
||||
std::move(callback).Run(std::move(chain_ids));
|
||||
}
|
||||
|
||||
void JsonRpcService::GetHiddenNetworks(mojom::CoinType coin,
|
||||
GetHiddenNetworksCallback callback) {
|
||||
std::move(callback).Run(GetAllHiddenNetworks(prefs_, coin));
|
||||
|
||||
@@ -197,6 +197,10 @@ class JsonRpcService : public KeyedService, public mojom::JsonRpcService {
|
||||
const url::Origin& origin) override;
|
||||
void GetAllNetworks(mojom::CoinType coin,
|
||||
GetAllNetworksCallback callback) override;
|
||||
void GetCustomNetworks(mojom::CoinType coin,
|
||||
GetCustomNetworksCallback callback) override;
|
||||
void GetKnownNetworks(mojom::CoinType coin,
|
||||
GetKnownNetworksCallback callback) override;
|
||||
void GetHiddenNetworks(mojom::CoinType coin,
|
||||
GetHiddenNetworksCallback callback) override;
|
||||
std::string GetNetworkUrl(mojom::CoinType coin) const;
|
||||
|
||||
@@ -1106,6 +1106,51 @@ TEST_F(JsonRpcServiceUnitTest, GetAllNetworks) {
|
||||
ASSERT_TRUE(callback_is_called);
|
||||
}
|
||||
|
||||
TEST_F(JsonRpcServiceUnitTest, GetCustomNetworks) {
|
||||
base::MockCallback<mojom::JsonRpcService::GetCustomNetworksCallback> callback;
|
||||
std::vector<base::Value> values;
|
||||
mojom::NetworkInfo chain1(mojom::kMainnetChainId, "chain_name",
|
||||
{"https://url1.com"}, {"https://url1.com"},
|
||||
{"https://url1.com"}, "symbol_name", "symbol", 11,
|
||||
mojom::CoinType::ETH,
|
||||
mojom::NetworkInfoData::NewEthData(
|
||||
mojom::NetworkInfoDataETH::New(false)));
|
||||
values.push_back(EthNetworkInfoToValue(chain1));
|
||||
|
||||
mojom::NetworkInfo chain2(
|
||||
"0x123456", "chain_name2", {"https://url2.com"}, {"https://url2.com"},
|
||||
{"https://url2.com"}, "symbol_name2", "symbol2", 22, mojom::CoinType::ETH,
|
||||
mojom::NetworkInfoData::NewEthData(mojom::NetworkInfoDataETH::New(true)));
|
||||
values.push_back(EthNetworkInfoToValue(chain2));
|
||||
EXPECT_CALL(callback, Run(ElementsAreArray(std::vector<std::string>{})));
|
||||
json_rpc_service_->GetCustomNetworks(mojom::CoinType::ETH, callback.Get());
|
||||
testing::Mock::VerifyAndClearExpectations(&callback);
|
||||
UpdateCustomNetworks(prefs(), &values);
|
||||
|
||||
EXPECT_CALL(callback, Run(ElementsAreArray({"0x1", "0x123456"})));
|
||||
json_rpc_service_->GetCustomNetworks(mojom::CoinType::ETH, callback.Get());
|
||||
testing::Mock::VerifyAndClearExpectations(&callback);
|
||||
}
|
||||
|
||||
TEST_F(JsonRpcServiceUnitTest, GetKnownNetworks) {
|
||||
base::MockCallback<mojom::JsonRpcService::GetKnownNetworksCallback> callback;
|
||||
std::vector<base::Value> values;
|
||||
mojom::NetworkInfo chain1(mojom::kMainnetChainId, "chain_name",
|
||||
{"https://url1.com"}, {"https://url1.com"},
|
||||
{"https://url1.com"}, "symbol_name", "symbol", 11,
|
||||
mojom::CoinType::ETH,
|
||||
mojom::NetworkInfoData::NewEthData(
|
||||
mojom::NetworkInfoDataETH::New(false)));
|
||||
values.push_back(EthNetworkInfoToValue(chain1));
|
||||
UpdateCustomNetworks(prefs(), &values);
|
||||
|
||||
EXPECT_CALL(callback, Run(ElementsAreArray({"0x1", "0x89", "0x38", "0xa4ec",
|
||||
"0xa86a", "0xfa", "0xa", "0x4",
|
||||
"0x3", "0x5", "0x2a", "0x539"})));
|
||||
json_rpc_service_->GetKnownNetworks(mojom::CoinType::ETH, callback.Get());
|
||||
testing::Mock::VerifyAndClearExpectations(&callback);
|
||||
}
|
||||
|
||||
TEST_F(JsonRpcServiceUnitTest, GetHiddenNetworks) {
|
||||
base::MockCallback<mojom::JsonRpcService::GetHiddenNetworksCallback> callback;
|
||||
|
||||
|
||||
@@ -739,6 +739,8 @@ interface JsonRpcService {
|
||||
SetNetwork(string chain_id, CoinType coin) => (bool success);
|
||||
GetNetwork(CoinType coin) => (NetworkInfo network);
|
||||
GetAllNetworks(CoinType coin) => (array<NetworkInfo> networks);
|
||||
GetCustomNetworks(CoinType coin) => (array<string> chain_ids);
|
||||
GetKnownNetworks(CoinType coin) => (array<string> chain_ids);
|
||||
GetHiddenNetworks(CoinType coin) => (array<string> chain_ids);
|
||||
|
||||
// Obtains the current network's chain ID
|
||||
|
||||
Reference in New Issue
Block a user