Skip to content

Conversation

@saledjenic
Copy link
Contributor

Corresponding status-go PR:

Fixes #19518

Changes are backward compatible:

  • Request sent from an old version:
Request-FromOldVersion
  • Request sent from an old version, requesting more that I have:
RequestForMoreThanIHave-FromOldVersion
  • Request sent from an old version, requestion on token which is not among tokens of interest:
RequestOnTokenWhichIsNotInTokensOfInterests-FromOldVersion
  • Sending requests from new version:
Sending2Requests-New
  • Requests sent from new version:
Sent2Requests
  • Open left request:
Sent2RequestsClickOnLeft
  • Open right request:
Sent2RequestsClickOnRight

@saledjenic saledjenic requested review from a team and glitchminer and removed request for a team December 16, 2025 15:26
@saledjenic saledjenic requested review from friofry and removed request for a team December 16, 2025 15:26
@status-im-auto
Copy link
Member

status-im-auto commented Dec 16, 2025

Jenkins Builds

Click to see older builds (44)
Commit #️⃣ Finished (UTC) Duration Platform Result
6b9eea6 #1 2025-12-16 15:35:03 ~8 min android/arm64 📄log
6b9eea6 #1 2025-12-16 15:37:47 ~11 min macos/aarch64-nwaku 📄log
6b9eea6 #1 2025-12-16 15:38:29 ~11 min ios/aarch64 📄log
✔️ 6b9eea6 #1 2025-12-16 15:38:51 ~12 min tests/nim 📄log
6b9eea6 #1 2025-12-16 15:40:02 ~13 min tests/ui 📄log
6b9eea6 #1 2025-12-16 15:41:52 ~15 min windows/x86_64 📄log
✔️ 6b9eea6 #1 2025-12-16 15:44:12 ~17 min macos/aarch64 🍎dmg
✔️ 6b9eea6 #1 2025-12-16 15:48:03 ~21 min linux/x86_64 📦tgz
✔️ 6b9eea6 #1 2025-12-16 15:50:42 ~24 min linux/x86_64-nwaku 📦tgz
✔️ 6b9eea6 pr19599 2025-12-16 16:03:59 ~15 min tests/e2e 📊rpt
9533ebb3 #2 2025-12-17 05:28:07 ~9 min android/arm64 📄log
f623142 #3 2025-12-17 09:12:24 ~8 min android/arm64 📄log
f623142 #2 2025-12-17 09:13:55 ~9 min macos/aarch64-nwaku 📄log
✔️ f623142 #2 2025-12-17 09:14:13 ~10 min tests/nim 📄log
f623142 #2 2025-12-17 09:16:01 ~12 min ios/aarch64 📄log
✔️ f623142 #2 2025-12-17 09:18:10 ~14 min tests/ui 📄log
✔️ f623142 #2 2025-12-17 09:21:14 ~17 min macos/aarch64 🍎dmg
✔️ f623142 #2 2025-12-17 09:24:31 ~20 min linux/x86_64 📦tgz
✔️ f623142 #2 2025-12-17 09:27:37 ~23 min linux/x86_64-nwaku 📦tgz
✔️ f623142 #2 2025-12-17 09:35:45 ~31 min windows/x86_64 💿exe
✔️ f623142 pr19599 2025-12-17 09:40:07 ~15 min tests/e2e 📊rpt
✔️ f623142 PR19599 2025-12-17 10:01:36 ~25 min tests/e2e-windows 📊rpt
f05b508 #4 2025-12-17 15:11:45 ~8 min android/arm64 📄log
f05b508 #3 2025-12-17 15:13:15 ~9 min macos/aarch64-nwaku 📄log
f05b508 #3 2025-12-17 15:15:09 ~11 min ios/aarch64 📄log
✔️ f05b508 #3 2025-12-17 15:15:35 ~12 min tests/nim 📄log
✔️ f05b508 #3 2025-12-17 15:16:36 ~13 min tests/ui 📄log
✔️ f05b508 #3 2025-12-17 15:20:23 ~16 min macos/aarch64 🍎dmg
✔️ f05b508 #3 2025-12-17 15:24:43 ~21 min linux/x86_64 📦tgz
✔️ f05b508 #3 2025-12-17 15:27:36 ~24 min linux/x86_64-nwaku 📦tgz
✔️ f05b508 #3 2025-12-17 15:37:07 ~33 min windows/x86_64 💿exe
f05b508 pr19599 2025-12-17 15:40:21 ~15 min tests/e2e 📄log
✔️ f05b508 PR19599 2025-12-17 16:02:52 ~25 min tests/e2e-windows 📊rpt
759c886 #5 2025-12-22 08:04:46 ~7 min android/arm64 📄log
759c886 #4 2025-12-22 08:07:06 ~9 min macos/aarch64-nwaku 📄log
✔️ 759c886 #4 2025-12-22 08:07:35 ~10 min tests/nim 📄log
759c886 #4 2025-12-22 08:09:08 ~12 min ios/aarch64 📄log
✔️ 759c886 #4 2025-12-22 08:11:49 ~14 min tests/ui 📄log
✔️ 759c886 #4 2025-12-22 08:14:21 ~17 min macos/aarch64 🍎dmg
✔️ 759c886 #4 2025-12-22 08:17:31 ~20 min linux/x86_64-nwaku 📦tgz
✔️ 759c886 #4 2025-12-22 08:17:40 ~20 min linux/x86_64 📦tgz
✔️ 759c886 #4 2025-12-22 08:30:52 ~33 min windows/x86_64 💿exe
✔️ 759c886 pr19599 2025-12-22 08:33:16 ~15 min tests/e2e 📊rpt
✖️ 759c886 PR19599 2025-12-22 08:52:23 ~21 min tests/e2e-windows 📊rpt
Commit #️⃣ Finished (UTC) Duration Platform Result
991f653 #6 2025-12-22 16:29:25 ~8 min android/arm64 📄log
991f653 #5 2025-12-22 16:30:54 ~10 min macos/aarch64-nwaku 📄log
✔️ 991f653 #5 2025-12-22 16:33:12 ~12 min tests/nim 📄log
991f653 #5 2025-12-22 16:33:19 ~12 min ios/aarch64 📄log
✔️ 991f653 #5 2025-12-22 16:33:58 ~13 min tests/ui 📄log
991f653 #5 2025-12-22 16:36:54 ~16 min windows/x86_64 📄log
✔️ 991f653 #5 2025-12-22 16:38:47 ~18 min macos/aarch64 🍎dmg
✔️ 991f653 #5 2025-12-22 16:41:36 ~20 min linux/x86_64 📦tgz
✔️ 991f653 #5 2025-12-22 16:41:46 ~21 min linux/x86_64-nwaku 📦tgz
✔️ 991f653 pr19599 2025-12-22 16:57:58 ~16 min tests/e2e 📊rpt
38ec7f1 #7 2025-12-23 07:26:17 ~8 min android/arm64 📄log
38ec7f1 #6 2025-12-23 07:27:09 ~9 min ios/aarch64 📄log
38ec7f1 #6 2025-12-23 07:27:21 ~9 min macos/aarch64-nwaku 📄log
✔️ 38ec7f1 #6 2025-12-23 07:29:38 ~12 min tests/nim 📄log
✔️ 38ec7f1 #6 2025-12-23 07:30:57 ~13 min tests/ui 📄log
✔️ 38ec7f1 #6 2025-12-23 07:33:12 ~15 min macos/aarch64 🍎dmg
✔️ 38ec7f1 #6 2025-12-23 07:38:50 ~21 min linux/x86_64 📦tgz
✔️ 38ec7f1 #6 2025-12-23 07:38:55 ~21 min linux/x86_64-nwaku 📦tgz
✔️ 38ec7f1 #6 2025-12-23 07:49:21 ~31 min windows/x86_64 💿exe
✖️ 38ec7f1 pr19599 2025-12-23 07:56:41 ~17 min tests/e2e 📊rpt
✖️ 38ec7f1 PR19599 2025-12-23 08:10:49 ~21 min tests/e2e-windows 📊rpt

@saledjenic saledjenic requested review from a team as code owners December 17, 2025 09:03
/** Token groups for chain, loaded on demand, without balances **/
required property var tokenGroupsForChainModel
/** token groups that match the search keyword **/
property var searchResultModel
Copy link
Member

Choose a reason for hiding this comment

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

  1. It would be nice to have some specification what roles/types are expected for that model.
  2. If there are some extra requirements (something not present in QAbstractModelItem by default) it should be also specified and clarified

Copy link
Member

Choose a reason for hiding this comment

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

It would be nice to have also some top-level description what is this adaptor doing.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@micieslak updated.

}

function onIsLoadingMoreChanged() {
root.fullOutputModel.isLoadingMore = root.tokenGroupsForChainModel.isLoadingMore
Copy link
Contributor

Choose a reason for hiding this comment

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

it's root.fullOutputModel and d.fullOutputModel few lines above. Which is correct?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Well spotted!



// output model - lazy loaded full model
readonly property SortFilterProxyModel fullOutputModel: SortFilterProxyModel {
Copy link
Contributor

Choose a reason for hiding this comment

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

There are ~50 identical lines in fullOutputModel and outputSearchResultModel.

Could you extract the common code in a groups model, and make sourceModel and other callbacks dynamic?

        readonly property GroupsModel fullModel: GroupsModel {
            objectName: "PaymentRequestAdaptor_fullModel"
            sourceTokenModel: root.tokenGroupsForChainModel
            flatNetworksModel: root.flatNetworksModel
            selectedNetworkChainId: root.selectedNetworkChainId

            function fetchMore() {
                root.tokenGroupsForChainModel.fetchMore()
            }
        }

        readonly property GroupsModel searchModel: GroupsModel {
            objectName: "PaymentRequestAdaptor_searchModel"
            sourceTokenModel: root.searchResultModel
            flatNetworksModel: root.flatNetworksModel
            selectedNetworkChainId: root.selectedNetworkChainId

            function search(keyword) {
                root.searchResultModel.search(keyword)
            }

            function fetchMore() {
                root.searchResultModel.fetchMore()
            }
        }

Or make a separate qml component that handles everything under the hood:

readonly property var outputModel: !!d.searchKeyword ? d.outputSearchResultModel : d.fullOutputModel
-> 
readonly property var outputModel: d.groupModel

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated.

##
## Itterates over all tokens for the given chain and returns the first token
## that matches the symbol or name (cause some tokens have different symbols for EVM/BSC chains), case insensitive.
proc getTokenBySymbolOnChain*(self: Service, symbol: string, chainId: int): TokenItem =
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we just delete it?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Unfortunatelly we cannot (unless we don't care about backward compatibillity). If we delete it we will break backward compatibility for an already received payment requests in the past.

Copy link
Contributor

@Khushboo-dev-cpp Khushboo-dev-cpp left a comment

Choose a reason for hiding this comment

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

LGTM :)

Also tested on macOS and works well!

@saledjenic saledjenic merged commit 74af445 into master Dec 23, 2025
9 of 13 checks passed
@saledjenic saledjenic deleted the fix/payment-request branch December 23, 2025 13:02
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.

Issues with the in-chat payment request

5 participants