Skip to content

Commit ea76bb7

Browse files
authored
feat(wallet): hide zero balance assets under account (#24135)
1 parent 4597537 commit ea76bb7

File tree

2 files changed

+32
-16
lines changed

2 files changed

+32
-16
lines changed

ios/brave-ios/Sources/BraveWallet/Crypto/Stores/AccountActivityStore.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,10 @@ class AccountActivityStore: ObservableObject, WalletObserverStore {
393393
)
394394
)
395395
} else {
396+
guard (tokenBalances[token.id] ?? 0) > 0 else {
397+
// only show assets belonging to this account
398+
continue
399+
}
396400
updatedUserAssets.append(
397401
AssetViewModel(
398402
groupType: .none,

ios/brave-ios/Tests/BraveWalletTests/AccountActivityStoreTests.swift

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class AccountActivityStoreTests: XCTestCase {
4242
assetTimeframeChange: "-57.23"
4343
),
4444
]
45+
let solTestnetBalance: UInt64 = 1_000_000_000 // 1 SOL
46+
let solTestnetDecimalBalance: Double = 1 // 1 SOL
4547

4648
private func setupServices(
4749
mockEthBalanceWei: String = "",
@@ -93,7 +95,7 @@ class AccountActivityStoreTests: XCTestCase {
9395
if chainId == BraveWallet.SolanaMainnet {
9496
completion(mockLamportBalance, .success, "")
9597
} else { // testnet balance
96-
completion(0, .success, "")
98+
completion(self.solTestnetBalance, .success, "")
9799
}
98100
}
99101
rpcService._splTokenAccountBalance = { _, tokenMintAddress, _, completion in
@@ -281,7 +283,7 @@ class AccountActivityStoreTests: XCTestCase {
281283
XCTFail("Unexpected test result")
282284
return
283285
}
284-
XCTAssertEqual(lastUpdatedAssets.count, 3)
286+
XCTAssertEqual(lastUpdatedAssets.count, 2)
285287

286288
XCTAssertEqual(
287289
lastUpdatedAssets[0].token.symbol,
@@ -299,13 +301,8 @@ class AccountActivityStoreTests: XCTestCase {
299301
XCTAssertEqual(lastUpdatedAssets[1].totalBalance, mockERC20DecimalBalance)
300302
XCTAssertEqual(lastUpdatedAssets[1].price, self.mockAssetPrices[safe: 1]?.price ?? "")
301303

302-
XCTAssertEqual(
303-
lastUpdatedAssets[2].token.symbol,
304-
BraveWallet.NetworkInfo.mockGoerli.nativeToken.symbol
305-
)
306-
XCTAssertEqual(lastUpdatedAssets[2].network, BraveWallet.NetworkInfo.mockGoerli)
307-
XCTAssertEqual(lastUpdatedAssets[2].totalBalance, 0)
308-
XCTAssertEqual(lastUpdatedAssets[2].price, self.mockAssetPrices[safe: 0]?.price ?? "")
304+
// 0 balance asset is hidden
305+
XCTAssertNil(lastUpdatedAssets[safe: 2])
309306

310307
// Verify brave/brave-browser#36806
311308
let daiTokenVisible = lastUpdatedAssets.contains(where: {
@@ -384,7 +381,8 @@ class AccountActivityStoreTests: XCTestCase {
384381
let mockLamportBalance: UInt64 = 3_876_535_000 // ~3.8765 SOL
385382
let mockSolDecimalBalance: Double = 3.8765 // rounded
386383

387-
let mockSpdTokenBalance: Double = 0
384+
let mockSpdTokenBalance: Double = 1_000_000_000 // 1000
385+
let mockSpdTokenDecimalBalance: Double = 1000
388386
let mockSolanaNFTTokenBalance: Double = 1
389387

390388
let mockSplTokenBalances: [String: String] = [
@@ -473,24 +471,38 @@ class AccountActivityStoreTests: XCTestCase {
473471

474472
XCTAssertEqual(
475473
lastUpdatedAssets[safe: 0]?.token.symbol,
476-
BraveWallet.NetworkInfo.mockSolana.nativeToken.symbol
474+
BraveWallet.BlockchainToken.mockSpdToken.symbol
477475
)
478476
XCTAssertEqual(lastUpdatedAssets[safe: 0]?.network, BraveWallet.NetworkInfo.mockSolana)
479-
XCTAssertEqual(lastUpdatedAssets[safe: 0]?.totalBalance, mockSolDecimalBalance)
477+
XCTAssertEqual(lastUpdatedAssets[safe: 0]?.totalBalance, mockSpdTokenDecimalBalance)
480478
XCTAssertEqual(
481479
lastUpdatedAssets[safe: 0]?.price,
482-
self.mockAssetPrices[safe: 2]?.price ?? ""
480+
self.mockAssetPrices[safe: 3]?.price ?? ""
483481
)
484482

485483
XCTAssertEqual(
486484
lastUpdatedAssets[safe: 1]?.token.symbol,
487-
BraveWallet.BlockchainToken.mockSpdToken.symbol
485+
BraveWallet.NetworkInfo.mockSolana.nativeToken.symbol
488486
)
489487
XCTAssertEqual(lastUpdatedAssets[safe: 1]?.network, BraveWallet.NetworkInfo.mockSolana)
490-
XCTAssertEqual(lastUpdatedAssets[safe: 1]?.totalBalance, mockSpdTokenBalance)
488+
XCTAssertEqual(lastUpdatedAssets[safe: 1]?.totalBalance, mockSolDecimalBalance)
491489
XCTAssertEqual(
492490
lastUpdatedAssets[safe: 1]?.price,
493-
self.mockAssetPrices[safe: 3]?.price ?? ""
491+
self.mockAssetPrices[safe: 2]?.price ?? ""
492+
)
493+
494+
XCTAssertEqual(
495+
lastUpdatedAssets[safe: 2]?.token.symbol,
496+
BraveWallet.NetworkInfo.mockSolana.nativeToken.symbol
497+
)
498+
XCTAssertEqual(
499+
lastUpdatedAssets[safe: 2]?.network,
500+
BraveWallet.NetworkInfo.mockSolanaTestnet
501+
)
502+
XCTAssertEqual(lastUpdatedAssets[safe: 2]?.totalBalance, self.solTestnetDecimalBalance)
503+
XCTAssertEqual(
504+
lastUpdatedAssets[safe: 2]?.price,
505+
self.mockAssetPrices[safe: 2]?.price ?? ""
494506
)
495507
}
496508
.store(in: &cancellables)

0 commit comments

Comments
 (0)