Skip to content

Conversation

@vkjr
Copy link
Contributor

@vkjr vkjr commented Nov 26, 2025

What does the PR do

Implements activities list in a browser wallet.

Affected areas

  • Added new instance of activity controller to browser_section/module.nim
  • BrowserActivityStore.qml added for reusing HistoryView.qml and TransactionDelegate.qml
  • In HistoryView.qml and TransactionDelegate.qml propertywalletRootStore was renamed to activityStore, removed wallet-specific imports

Architecture compliance

Screencapture of the functionality

Screenshot 2025-11-26 at 14 47 25 Screenshot 2025-11-26 at 14 47 19

@vkjr vkjr self-assigned this Nov 26, 2025
@vkjr vkjr requested review from a team, alexjba, caybro, micieslak and noeliaSD as code owners November 26, 2025 14:54
@vkjr vkjr requested review from saledjenic and removed request for a team November 26, 2025 14:54
@status-im-auto
Copy link
Member

status-im-auto commented Nov 26, 2025

Jenkins Builds

Click to see older builds (71)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 9474a38 #1 2025-11-26 15:02:28 ~7 min tests/nim 📄log
✔️ 856b50e #2 2025-11-26 15:12:29 ~7 min tests/nim 📄log
✔️ 856b50e #1 2025-11-26 15:13:36 ~8 min android/arm64 🤖apk 📲
856b50e #2 2025-11-26 15:19:54 ~15 min tests/ui 📄log
✔️ 856b50e #2 2025-11-26 15:19:59 ~15 min macos/aarch64 🍎dmg
✔️ 856b50e #2 2025-11-26 15:21:35 ~16 min linux/x86_64 📦tgz
✔️ 856b50e #2 2025-11-26 15:24:40 ~19 min macos/aarch64-nwaku 🍎dmg
✔️ 856b50e #2 2025-11-26 15:27:10 ~22 min linux/x86_64-nwaku 📦tgz
✔️ 856b50e #2 2025-11-26 15:33:26 ~28 min windows/x86_64 💿exe
✔️ 856b50e pr19405 2025-11-26 15:40:57 ~19 min tests/e2e 📊rpt
✖️ 856b50e PR19405 2025-11-26 15:56:00 ~22 min tests/e2e-windows 📊rpt
✔️ c916558f #2 2025-11-26 17:25:29 ~10 min android/arm64 🤖apk 📲
✔️ cd18b9b #3 2025-11-27 13:14:11 ~6 min tests/nim 📄log
✔️ 319b2fc #4 2025-11-27 13:23:27 ~8 min tests/nim 📄log
✔️ 319b2fc #4 2025-11-27 13:23:44 ~8 min android/arm64 🤖apk 📲
✖️ 319b2fc #4 2025-11-27 13:24:36 ~9 min ios/aarch64 📱ipa
✔️ 319b2fc #4 2025-11-27 13:28:37 ~13 min macos/aarch64 🍎dmg
319b2fc #4 2025-11-27 13:30:03 ~15 min tests/ui 📄log
✔️ 319b2fc #4 2025-11-27 13:31:21 ~16 min linux/x86_64 📦tgz
✔️ 319b2fc #4 2025-11-27 13:33:05 ~18 min macos/aarch64-nwaku 🍎dmg
✔️ 319b2fc #4 2025-11-27 13:38:22 ~23 min linux/x86_64-nwaku 📦tgz
✔️ 319b2fc #4 2025-11-27 13:42:32 ~27 min windows/x86_64 💿exe
✔️ 319b2fc pr19405 2025-11-27 13:47:11 ~15 min tests/e2e 📊rpt
✖️ 319b2fc PR19405 2025-11-27 14:02:11 ~19 min tests/e2e-windows 📊rpt
dfd7716 #5 2025-11-27 14:18:36 ~7 min macos/aarch64-nwaku 📄log
✔️ dfd7716 #5 2025-11-27 14:19:11 ~7 min tests/nim 📄log
✔️ dfd7716 #5 2025-11-27 14:22:22 ~11 min android/arm64 🤖apk 📲
✖️ dfd7716 #5 2025-11-27 14:23:18 ~12 min ios/aarch64 📱ipa
✔️ dfd7716 #5 2025-11-27 14:25:27 ~14 min macos/aarch64 🍎dmg
dfd7716 #5 2025-11-27 14:26:04 ~14 min tests/ui 📄log
✔️ dfd7716 #5 2025-11-27 14:28:30 ~17 min linux/x86_64 📦tgz
✔️ dfd7716 #5 2025-11-27 14:31:34 ~20 min linux/x86_64-nwaku 📦tgz
✔️ dfd7716 #5 2025-11-27 14:37:09 ~25 min windows/x86_64 💿exe
✔️ dfd7716 pr19405 2025-11-27 14:47:47 ~19 min tests/e2e 📊rpt
✖️ dfd7716 PR19405 2025-11-27 15:00:54 ~23 min tests/e2e-windows 📊rpt
c9d8cb9 #6 2025-11-27 15:59:04 ~5 min macos/aarch64-nwaku 📄log
✔️ c9d8cb9 #6 2025-11-27 15:59:46 ~6 min tests/nim 📄log
✔️ c9d8cb9 #6 2025-11-27 16:02:43 ~9 min android/arm64 🤖apk 📲
✔️ c9d8cb9 #6 2025-11-27 16:06:03 ~12 min macos/aarch64 🍎dmg
✔️ c9d8cb9 #6 2025-11-27 16:08:24 ~15 min tests/ui 📄log
✔️ c9d8cb9 #6 2025-11-27 16:09:44 ~16 min linux/x86_64 📦tgz
✔️ c9d8cb9 #6 2025-11-27 16:10:09 ~17 min ios/aarch64 📱ipa
✔️ c9d8cb9 #6 2025-11-27 16:10:32 ~17 min linux/x86_64-nwaku 📦tgz
✔️ c9d8cb9 #6 2025-11-27 16:18:27 ~25 min windows/x86_64 💿exe
✔️ c9d8cb9 pr19405 2025-11-27 16:25:36 ~15 min tests/e2e 📊rpt
✖️ c9d8cb9 PR19405 2025-11-27 16:42:17 ~23 min tests/e2e-windows 📊rpt
✔️ 46eb609d #7 2025-11-27 17:00:57 ~15 min android/arm64 🤖apk 📲
✖️ c672022 #7 2025-11-27 17:01:15 ~15 min ios/aarch64 📱ipa
✔️ c672022 #7 2025-11-27 17:01:32 ~15 min tests/nim 📄log
✔️ c672022 #7 2025-11-27 17:03:17 ~17 min macos/aarch64 🍎dmg
✔️ c672022 #7 2025-11-27 17:07:59 ~22 min linux/x86_64-nwaku 📦tgz
✔️ c672022 #7 2025-11-27 17:08:40 ~22 min windows/x86_64 💿exe
✔️ c672022 #7 2025-11-27 17:10:21 ~24 min macos/aarch64-nwaku 🍎dmg
✔️ c672022 #7 2025-11-27 17:10:31 ~24 min tests/ui 📄log
✔️ c672022 #7 2025-11-27 17:11:30 ~25 min linux/x86_64 📦tgz
✔️ c672022 pr19405 2025-11-27 17:29:06 ~17 min tests/e2e 📊rpt
✖️ c672022 PR19405 2025-11-27 17:36:29 ~27 min tests/e2e-windows 📊rpt
✔️ 44a7808e #8 2025-11-28 11:22:38 ~9 min android/arm64 🤖apk 📲
✔️ b4cd6e8 #8 2025-11-28 12:03:31 ~7 min tests/nim 📄log
b4cd6e8 #8 2025-11-28 12:05:32 ~9 min macos/aarch64-nwaku 📄log
✔️ b4cd6e8 #8 2025-11-28 12:08:30 ~12 min ios/aarch64 📱ipa
✔️ b4cd6e8 #8 2025-11-28 12:09:47 ~13 min macos/aarch64 🍎dmg
✔️ b4cd6e8 #8 2025-11-28 12:09:51 ~13 min tests/ui 📄log
✔️ b4cd6e8 #8 2025-11-28 12:13:06 ~17 min linux/x86_64-nwaku 📦tgz
✔️ b4cd6e8 #8 2025-11-28 12:13:11 ~17 min linux/x86_64 📦tgz
✔️ b4cd6e8 #8 2025-11-28 12:16:34 ~20 min windows/x86_64 💿exe
✔️ b4cd6e8 pr19405 2025-11-28 12:28:59 ~15 min tests/e2e 📊rpt
✖️ b4cd6e8 PR19405 2025-11-28 12:39:40 ~22 min tests/e2e-windows 📊rpt
✔️ 62d2aa43 #9 2025-11-28 12:06:47 ~10 min android/arm64 🤖apk 📲
✔️ ca366e41 #10 2025-11-28 17:27:38 ~12 min android/arm64 🤖apk 📲
✔️ 32150f58 #11 2025-11-29 17:27:02 ~11 min android/arm64 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 72dbf829 #12 2025-12-01 17:28:05 ~12 min android/arm64 🤖apk 📲
4948ee7 #9 2025-12-02 16:53:39 ~11 min macos/aarch64-nwaku 📄log
✔️ 4948ee7 #9 2025-12-02 16:57:32 ~14 min macos/aarch64 🍎dmg
✔️ 4948ee7 #9 2025-12-02 16:59:57 ~17 min ios/aarch64 📱ipa
✔️ 4948ee7 #9 2025-12-02 17:01:33 ~18 min tests/nim 📄log
✔️ 4948ee7 #9 2025-12-02 17:08:08 ~25 min tests/ui 📄log
✔️ 4948ee7 #9 2025-12-02 17:09:52 ~27 min linux/x86_64 📦tgz
✔️ 4948ee7 #9 2025-12-02 17:10:53 ~28 min windows/x86_64 💿exe
✔️ 4948ee7 #9 2025-12-02 17:14:48 ~32 min linux/x86_64-nwaku 📦tgz
✖️ 4948ee7 PR19405 2025-12-02 17:32:24 ~21 min tests/e2e-windows 📊rpt
✔️ 4948ee7 pr19405 2025-12-02 17:32:42 ~22 min tests/e2e 📊rpt

@vkjr vkjr force-pushed the feat/browser-account-activity branch from 9474a38 to 856b50e Compare November 26, 2025 15:04
@vkjr vkjr changed the title feat: activities in a browser wallet [WIP]: feat: activities in a browser wallet Nov 26, 2025
@vkjr vkjr force-pushed the feat/browser-account-activity branch from 856b50e to cd18b9b Compare November 27, 2025 13:07
@vkjr vkjr changed the title [WIP]: feat: activities in a browser wallet feat: activities in a browser wallet Nov 27, 2025
@vkjr vkjr requested a review from alaibe November 27, 2025 13:08
@vkjr vkjr force-pushed the feat/browser-account-activity branch 2 times, most recently from c9d8cb9 to c672022 Compare November 27, 2025 16:45
@vkjr vkjr force-pushed the feat/browser-account-activity branch from c672022 to b4cd6e8 Compare November 28, 2025 11:55
Copy link
Member

@caybro caybro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work overall, a bit unsure about the overall architecture, esp. regarding the stores

import StatusQ.Core.Theme
import StatusQ.Core.Utils as SQUtils

import SortFilterProxyModel
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused?

readonly property bool isLightTheme: Theme.palette.name === Constants.lightThemeName
property color animatedBgColor
property int txType: walletRootStore.getTransactionType(root.modelData)
property int txType: activityStore.getTransactionType(root.modelData)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
property int txType: activityStore.getTransactionType(root.modelData)
readonly property int txType: activityStore.getTransactionType(root.modelData)

}

function getDappDetails(chainId, contractAddress) {
return undefined
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The general, currently used approach is to mock stores, it's our cut-off line between ui and nim side.

For details please refer to: https://github.com/status-im/status-desktop/blob/master/guidelines/QML_ARCHITECTURE_GUIDE.md

@vkjr
Copy link
Contributor Author

vkjr commented Dec 2, 2025

Nice work overall, a bit unsure about the overall architecture, esp. regarding the stores

@caybro, could you please elaborate?

@vkjr vkjr requested review from caybro and micieslak December 2, 2025 16:42
@vkjr
Copy link
Contributor Author

vkjr commented Dec 2, 2025

@caybro, @micieslak - please take a look again, review notes fixed.

Copy link
Member

@caybro caybro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise looks good to me

overview: root.browserWalletStore.dappBrowserAccount
communitiesStore: null
currencyStore: SharedStores.CurrenciesStore {}
networksStore: SharedStores.NetworksStore {}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These 2 stores are global, ie you should not recreate them but pass them down all the way from AppMain


readonly property string selectedAddress: browserWalletStore.dappBrowserAccount.address
readonly property bool isNonArchivalNode: false
readonly property bool showAllAccounts: false
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These 2 are always false?


// TODO: https://github.com/status-im/status-desktop/issues/15329
// Get DApp data from the backend
function getDappDetails(chainId, contractAddress) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering if it would make sense to have a specific Utils file for this context?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants