feat(walletconnect): initial code organization

Closes #14395
This commit is contained in:
Sale Djenic 2024-04-10 22:56:10 +02:00 committed by Stefan Dunca
parent 0146db8da8
commit dd104960ba
51 changed files with 991 additions and 305 deletions

View File

@ -1,49 +1,50 @@
import NimQml, sequtils, sugar, chronicles, uuids import NimQml, sequtils, sugar, chronicles, uuids
import ../../app_service/service/general/service as general_service import app_service/service/general/service as general_service
import ../../app_service/service/keychain/service as keychain_service import app_service/service/keychain/service as keychain_service
import ../../app_service/service/keycard/service as keycard_service import app_service/service/keycard/service as keycard_service
import ../../app_service/service/accounts/service as accounts_service import app_service/service/accounts/service as accounts_service
import ../../app_service/service/contacts/service as contacts_service import app_service/service/contacts/service as contacts_service
import ../../app_service/service/language/service as language_service import app_service/service/language/service as language_service
import ../../app_service/service/chat/service as chat_service import app_service/service/chat/service as chat_service
import ../../app_service/service/community/service as community_service import app_service/service/community/service as community_service
import ../../app_service/service/message/service as message_service import app_service/service/message/service as message_service
import ../../app_service/service/token/service as token_service import app_service/service/token/service as token_service
import ../../app_service/service/collectible/service as collectible_service import app_service/service/collectible/service as collectible_service
import ../../app_service/service/currency/service as currency_service import app_service/service/currency/service as currency_service
import ../../app_service/service/transaction/service as transaction_service import app_service/service/transaction/service as transaction_service
import ../../app_service/service/wallet_account/service as wallet_account_service import app_service/service/wallet_account/service as wallet_account_service
import ../../app_service/service/bookmarks/service as bookmark_service import app_service/service/wallet_connect/service as wallet_connect_service
import ../../app_service/service/dapp_permissions/service as dapp_permissions_service import app_service/service/bookmarks/service as bookmark_service
import ../../app_service/service/privacy/service as privacy_service import app_service/service/dapp_permissions/service as dapp_permissions_service
import ../../app_service/service/provider/service as provider_service import app_service/service/privacy/service as privacy_service
import ../../app_service/service/node/service as node_service import app_service/service/provider/service as provider_service
import ../../app_service/service/profile/service as profile_service import app_service/service/node/service as node_service
import ../../app_service/service/settings/service as settings_service import app_service/service/profile/service as profile_service
import ../../app_service/service/stickers/service as stickers_service import app_service/service/settings/service as settings_service
import ../../app_service/service/about/service as about_service import app_service/service/stickers/service as stickers_service
import ../../app_service/service/node_configuration/service as node_configuration_service import app_service/service/about/service as about_service
import ../../app_service/service/network/service as network_service import app_service/service/node_configuration/service as node_configuration_service
import ../../app_service/service/activity_center/service as activity_center_service import app_service/service/network/service as network_service
import ../../app_service/service/saved_address/service as saved_address_service import app_service/service/activity_center/service as activity_center_service
import ../../app_service/service/devices/service as devices_service import app_service/service/saved_address/service as saved_address_service
import ../../app_service/service/mailservers/service as mailservers_service import app_service/service/devices/service as devices_service
import ../../app_service/service/gif/service as gif_service import app_service/service/mailservers/service as mailservers_service
import ../../app_service/service/ens/service as ens_service import app_service/service/gif/service as gif_service
import ../../app_service/service/community_tokens/service as tokens_service import app_service/service/ens/service as ens_service
import ../../app_service/service/network_connection/service as network_connection_service import app_service/service/community_tokens/service as tokens_service
import ../../app_service/service/shared_urls/service as shared_urls_service import app_service/service/network_connection/service as network_connection_service
import app_service/service/shared_urls/service as shared_urls_service
import ../modules/shared_modules/keycard_popup/module as keycard_shared_module import app/modules/shared_modules/keycard_popup/module as keycard_shared_module
import ../modules/startup/module as startup_module import app/modules/startup/module as startup_module
import ../modules/main/module as main_module import app/modules/main/module as main_module
import ../core/notifications/notifications_manager import app/core/notifications/notifications_manager
import ../../constants as main_constants
import app/global/global_singleton import app/global/global_singleton
import app/global/app_signals import app/global/app_signals
import app/core/[main]
import ../core/[main] import constants as main_constants
logScope: logScope:
topics = "app-controller" topics = "app-controller"
@ -80,6 +81,7 @@ type
currencyService: currency_service.Service currencyService: currency_service.Service
transactionService: transaction_service.Service transactionService: transaction_service.Service
walletAccountService: wallet_account_service.Service walletAccountService: wallet_account_service.Service
walletConnectService: wallet_connect_service.Service
bookmarkService: bookmark_service.Service bookmarkService: bookmark_service.Service
dappPermissionsService: dapp_permissions_service.Service dappPermissionsService: dapp_permissions_service.Service
providerService: provider_service.Service providerService: provider_service.Service
@ -190,6 +192,7 @@ proc newAppController*(statusFoundation: StatusFoundation): AppController =
statusFoundation.events, statusFoundation.threadpool, result.settingsService, result.accountsService, statusFoundation.events, statusFoundation.threadpool, result.settingsService, result.accountsService,
result.tokenService, result.networkService, result.currencyService result.tokenService, result.networkService, result.currencyService
) )
result.walletConnectService = wallet_connect_service.newService(statusFoundation.events, statusFoundation.threadpool)
result.messageService = message_service.newService( result.messageService = message_service.newService(
statusFoundation.events, statusFoundation.events,
statusFoundation.threadpool, statusFoundation.threadpool,
@ -324,6 +327,7 @@ proc delete*(self: AppController) =
self.tokenService.delete self.tokenService.delete
self.transactionService.delete self.transactionService.delete
self.walletAccountService.delete self.walletAccountService.delete
self.walletConnectService.delete
self.aboutService.delete self.aboutService.delete
self.networkService.delete self.networkService.delete
self.activityCenterService.delete self.activityCenterService.delete
@ -451,6 +455,7 @@ proc load(self: AppController) =
self.collectibleService.init() self.collectibleService.init()
self.currencyService.init() self.currencyService.init()
self.walletAccountService.init() self.walletAccountService.init()
self.walletConnectService.init()
# Apply runtime log level settings # Apply runtime log level settings
if not main_constants.runtimeLogLevelSet(): if not main_constants.runtimeLogLevelSet():

View File

@ -16,7 +16,7 @@ import ./send/module as send_module
import ./activity/controller as activityc import ./activity/controller as activityc
import ./activity/details_controller as activity_detailsc import ./activity/details_controller as activity_detailsc
import ./wallet_connect/controller as wcc import ./poc_wallet_connect/controller as wcc
import app/modules/shared_modules/collectible_details/controller as collectible_detailsc import app/modules/shared_modules/collectible_details/controller as collectible_detailsc

View File

@ -1,7 +1,11 @@
################################################################################
# WalletConnect POC - to remove this file
################################################################################
import NimQml, strutils, json, chronicles import NimQml, strutils, json, chronicles
import backend/wallet as backend_wallet import backend/wallet as backend_wallet
import backend/wallet_connect as backend_wallet_connect import backend/poc_wallet_connect as backend_wallet_connect
import app/global/global_singleton import app/global/global_singleton
import app/global/app_signals import app/global/app_signals

View File

@ -1,3 +1,7 @@
################################################################################
# WalletConnect POC - to remove this file
################################################################################
import json, strutils import json, strutils
import uri import uri

View File

@ -1,3 +1,7 @@
################################################################################
# WalletConnect POC - to remove this file
################################################################################
import json import json
include app_service/common/json_utils include app_service/common/json_utils

View File

@ -5,7 +5,7 @@ import ./activity/details_controller as activity_detailsc
import app/modules/shared_modules/collectible_details/controller as collectible_detailsc import app/modules/shared_modules/collectible_details/controller as collectible_detailsc
import ./io_interface import ./io_interface
import ../../shared_models/currency_amount import ../../shared_models/currency_amount
import ./wallet_connect/controller as wcc import ./poc_wallet_connect/controller as wcc
type type
ActivityControllerArray* = array[2, activityc.Controller] ActivityControllerArray* = array[2, activityc.Controller]

View File

@ -0,0 +1,32 @@
import chronicles
import io_interface
import app/core/eventemitter
import app_service/service/wallet_account/service as wallet_account_service
import app_service/service/wallet_connect/service as wallet_connect_service
logScope:
topics = "wallet-connect-controller"
type
Controller* = ref object of RootObj
delegate: io_interface.AccessInterface
events: EventEmitter
walletAccountService: wallet_account_service.Service
walletConnectService: wallet_connect_service.Service
proc newController*(delegate: io_interface.AccessInterface,
events: EventEmitter,
walletAccountService: wallet_account_service.Service,
walletConnectService: wallet_connect_service.Service): Controller =
result = Controller()
result.delegate = delegate
result.events = events
result.walletAccountService = walletAccountService
result.walletConnectService = walletConnectService
proc delete*(self: Controller) =
self.disconnectAll()
proc init*(self: Controller) =
discard

View File

@ -0,0 +1,14 @@
import NimQml
type
AccessInterface* {.pure inheritable.} = ref object of RootObj
method delete*(self: AccessInterface) {.base.} =
raise newException(ValueError, "No implementation available")
method getModuleAsVariant*(self: AccessInterface): QVariant {.base.} =
raise newException(ValueError, "No implementation available")
type
DelegateInterface* = concept c

View File

@ -0,0 +1,49 @@
import NimQml, chronicles
import io_interface
import view, controller
import app/core/eventemitter
import app_service/service/wallet_account/service as wallet_account_service
import app_service/service/wallet_connect/service as wallet_connect_service
import app_service/service/keychain/service as keychain_service
export io_interface
logScope:
topics = "wallet-connect-module"
type
Module*[T: io_interface.DelegateInterface] = ref object of io_interface.AccessInterface
delegate: T
view: View
viewVariant: QVariant
controller: Controller
proc newModule*[T](delegate: T,
uniqueIdentifier: string,
events: EventEmitter,
walletAccountService: wallet_account_service.Service,
walletConnectService: wallet_connect_service.Service):
Module[T] =
result = Module[T]()
result.delegate = delegate
result.view = view.newView(result)
result.viewVariant = newQVariant(result.view)
result.controller = controller.newController(result, walletAccountService, walletConnectService)
{.push warning[Deprecated]: off.}
method delete*[T](self: Module[T]) =
self.view.delete
self.viewVariant.delete
self.controller.delete
proc init[T](self: Module[T], fullConnect = true) =
self.controller.init()
method getModuleAsVariant*[T](self: Module[T]): QVariant =
return self.viewVariant
{.pop.}

View File

@ -0,0 +1,15 @@
import NimQml
import io_interface
QtObject:
type
View* = ref object of QObject
delegate: io_interface.AccessInterface
proc delete*(self: View) =
self.QObject.delete
proc newView*(delegate: io_interface.AccessInterface): View =
new(result, delete)
result.QObject.setup
result.delegate = delegate

View File

@ -0,0 +1,3 @@
#################################################
# Async
#################################################

View File

@ -0,0 +1,34 @@
import NimQml, chronicles
# import backend/wallet_connect as status_go_wallet_connect
import app/global/global_singleton
import app/core/eventemitter
import app/core/signals/types
import app/core/tasks/[threadpool]
logScope:
topics = "wallet-connect-service"
# include async_tasks
QtObject:
type Service* = ref object of QObject
events: EventEmitter
threadpool: ThreadPool
proc delete*(self: Service) =
self.QObject.delete
proc newService*(
events: EventEmitter,
threadpool: ThreadPool,
): Service =
new(result, delete)
result.QObject.setup
result.events = events
result.threadpool = threadpool
proc init*(self: Service) =
discard

View File

@ -0,0 +1,97 @@
################################################################################
# WalletConnect POC - to remove this file
################################################################################
import options, logging
import json
import core, response_type
from gen import rpc
import backend
# Declared in services/wallet/walletconnect/walletconnect.go
const eventWCProposeUserPair*: string = "WalletConnectProposeUserPair"
# Declared in services/wallet/walletconnect/walletconnect.go
const ErrorChainsNotSupported*: string = "chains not supported"
rpc(wCSignMessage, "wallet"):
message: string
address: string
password: string
rpc(wCBuildRawTransaction, "wallet"):
signature: string
rpc(wCSendTransactionWithSignature, "wallet"):
signature: string
rpc(wCPairSessionProposal, "wallet"):
sessionProposalJson: string
rpc(wCSaveOrUpdateSession, "wallet"):
sessionJson: string
rpc(wCChangeSessionState, "wallet"):
topic: string
active: bool
rpc(wCSessionRequest, "wallet"):
sessionRequestJson: string
rpc(wCAuthRequest, "wallet"):
address: string
message: string
proc isErrorResponse(rpcResponse: RpcResponse[JsonNode]): bool =
return not rpcResponse.error.isNil
proc prepareResponse(res: var JsonNode, rpcResponse: RpcResponse[JsonNode]): string =
if isErrorResponse(rpcResponse):
return rpcResponse.error.message
if rpcResponse.result.isNil:
return "no result"
res = rpcResponse.result
# TODO #12434: async answer
proc pair*(res: var JsonNode, sessionProposalJson: string): string =
try:
let response = wCPairSessionProposal(sessionProposalJson)
return prepareResponse(res, response)
except Exception as e:
warn e.msg
return e.msg
proc saveOrUpdateSession*(sessionJson: string): bool =
try:
let response = wCSaveOrUpdateSession(sessionJson)
return not isErrorResponse(response)
except Exception as e:
warn e.msg
return false
proc deleteSession*(topic: string): bool =
try:
let response = wCChangeSessionState(topic, false)
return not isErrorResponse(response)
except Exception as e:
warn e.msg
return false
proc sessionRequest*(res: var JsonNode, sessionRequestJson: string): string =
try:
let response = wCSessionRequest(sessionRequestJson)
return prepareResponse(res, response)
except Exception as e:
warn e.msg
return e.msg
proc authRequest*(res: var JsonNode, address: string, authMessage: string): string =
try:
let response = wCAuthRequest(address, authMessage)
return prepareResponse(res, response)
except Exception as e:
warn e.msg
return e.msg

View File

@ -1,93 +1,2 @@
import options, logging
import json import json
import core, response_type import core, response_type
from gen import rpc
import backend
# Declared in services/wallet/walletconnect/walletconnect.go
const eventWCProposeUserPair*: string = "WalletConnectProposeUserPair"
# Declared in services/wallet/walletconnect/walletconnect.go
const ErrorChainsNotSupported*: string = "chains not supported"
rpc(wCSignMessage, "wallet"):
message: string
address: string
password: string
rpc(wCBuildRawTransaction, "wallet"):
signature: string
rpc(wCSendTransactionWithSignature, "wallet"):
signature: string
rpc(wCPairSessionProposal, "wallet"):
sessionProposalJson: string
rpc(wCSaveOrUpdateSession, "wallet"):
sessionJson: string
rpc(wCChangeSessionState, "wallet"):
topic: string
active: bool
rpc(wCSessionRequest, "wallet"):
sessionRequestJson: string
rpc(wCAuthRequest, "wallet"):
address: string
message: string
proc isErrorResponse(rpcResponse: RpcResponse[JsonNode]): bool =
return not rpcResponse.error.isNil
proc prepareResponse(res: var JsonNode, rpcResponse: RpcResponse[JsonNode]): string =
if isErrorResponse(rpcResponse):
return rpcResponse.error.message
if rpcResponse.result.isNil:
return "no result"
res = rpcResponse.result
# TODO #12434: async answer
proc pair*(res: var JsonNode, sessionProposalJson: string): string =
try:
let response = wCPairSessionProposal(sessionProposalJson)
return prepareResponse(res, response)
except Exception as e:
warn e.msg
return e.msg
proc saveOrUpdateSession*(sessionJson: string): bool =
try:
let response = wCSaveOrUpdateSession(sessionJson)
return not isErrorResponse(response)
except Exception as e:
warn e.msg
return false
proc deleteSession*(topic: string): bool =
try:
let response = wCChangeSessionState(topic, false)
return not isErrorResponse(response)
except Exception as e:
warn e.msg
return false
proc sessionRequest*(res: var JsonNode, sessionRequestJson: string): string =
try:
let response = wCSessionRequest(sessionRequestJson)
return prepareResponse(res, response)
except Exception as e:
warn e.msg
return e.msg
proc authRequest*(res: var JsonNode, address: string, authMessage: string): string =
try:
let response = wCAuthRequest(address, authMessage)
return prepareResponse(res, response)
except Exception as e:
warn e.msg
return e.msg

View File

@ -4,7 +4,7 @@
<head> <head>
<script src="qrc:/StatusQ/Components/private/qwebchannel/qwebchannel.js" defer></script> <script src="qrc:/StatusQ/Components/private/qwebchannel/qwebchannel.js" defer></script>
<script src="qrc:/StatusQ/Components/private/qwebchannel/helpers.js" defer></script> <script src="qrc:/StatusQ/Components/private/qwebchannel/helpers.js" defer></script>
<script src="../../../../../../../ui/app/AppLayouts/Wallet/views/walletconnect/sdk/generated/bundle.js" defer></script> <script src="../../../../../../../ui/imports/shared/popups/walletconnect/sdk/generated/bundle.js" defer></script>
</head> </head>
<body></body> <body></body>
</html> </html>

View File

@ -1,6 +1,6 @@
import unittest import unittest
import app/modules/main/wallet_section/wallet_connect/helpers import app/modules/main/wallet_section/poc_wallet_connect/helpers
suite "wallet connect": suite "wallet connect":

View File

@ -65,6 +65,9 @@ StatusSectionLayout {
case Constants.settingsSubsection.keycard: case Constants.settingsSubsection.keycard:
keycardView.item.handleBackAction() keycardView.item.handleBackAction()
break; break;
case Constants.settingsSubsection.dapps:
dappsView.item.handleBackAction()
break;
} }
Global.settingsSubSubsection = -1 Global.settingsSubSubsection = -1
} }
@ -130,6 +133,8 @@ StatusSectionLayout {
walletView.item.resetStack() walletView.item.resetStack()
} else if (currentIndex === Constants.settingsSubsection.keycard) { } else if (currentIndex === Constants.settingsSubsection.keycard) {
keycardView.item.handleBackAction() keycardView.item.handleBackAction()
} else if (currentIndex === Constants.settingsSubsection.dapps) {
dappsView.item.handleBackAction()
} }
} }
@ -257,6 +262,21 @@ StatusSectionLayout {
onLoaded: root.store.backButtonName = "" onLoaded: root.store.backButtonName = ""
} }
Loader {
id: dappsView
active: false
asynchronous: true
sourceComponent: DappsView {
implicitWidth: parent.width
implicitHeight: parent.height
profileSectionStore: root.store
sectionTitle: root.store.getNameForSubsection(Constants.settingsSubsection.dapps)
mainSectionTitle: root.store.getNameForSubsection(Constants.settingsSubsection.dapps)
contentWidth: d.contentWidth
}
onLoaded: root.store.backButtonName = ""
}
Loader { Loader {
active: false active: false
asynchronous: true asynchronous: true

View File

@ -122,6 +122,9 @@ QtObject {
append({subsection: Constants.settingsSubsection.wallet, append({subsection: Constants.settingsSubsection.wallet,
text: qsTr("Wallet"), text: qsTr("Wallet"),
icon: "wallet"}) icon: "wallet"})
append({subsection: Constants.settingsSubsection.dapps,
text: qsTr("dApps"),
icon: "dapp"})
append({subsection: Constants.settingsSubsection.browserSettings, append({subsection: Constants.settingsSubsection.browserSettings,
text: qsTr("Browser"), text: qsTr("Browser"),
icon: "browser"}) icon: "browser"})

View File

@ -24,10 +24,10 @@ import "../controls"
import "../popups" import "../popups"
import "../panels" import "../panels"
// TODO: remove DEV import /////////////////////////////////////////////////////
import AppLayouts.Wallet.stores 1.0 as WalletStores // WalletConnect POC - to remove
import AppLayouts.Wallet.views.walletconnect 1.0 import AppLayouts.Wallet.views.pocwalletconnect 1.0
// TODO end /////////////////////////////////////////////////////
SettingsContentBase { SettingsContentBase {
id: root id: root
@ -171,16 +171,19 @@ SettingsContentBase {
} }
} }
/////////////////////////////////////////////////////
// WalletConnect POC - to remove
StatusSettingsLineButton { StatusSettingsLineButton {
anchors.leftMargin: 0 anchors.leftMargin: 0
anchors.rightMargin: 0 anchors.rightMargin: 0
text: qsTr("Debug Wallet Connect") text: qsTr("POC Wallet Connect")
visible: root.advancedStore.isDebugEnabled visible: root.advancedStore.isDebugEnabled
onClicked: { onClicked: {
Global.popupWalletConnect() Global.popupWalletConnect()
} }
} }
/////////////////////////////////////////////////////
Separator { Separator {
width: parent.width width: parent.width

View File

@ -0,0 +1,88 @@
import QtQuick 2.14
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.14
import QtQml.Models 2.14
import StatusQ.Core 0.1
import StatusQ.Controls 0.1
import StatusQ.Core.Theme 0.1
import utils 1.0
import "../stores"
import "./dapps"
SettingsContentBase {
id: root
required property ProfileSectionStore profileSectionStore
required property string mainSectionTitle
titleRowComponentLoader.sourceComponent: stackLayout.currentIndex === d.mainViewIndex ||
stackLayout.currentIndex === d.connectedDappsIndex?
d.headerButton : undefined
function handleBackAction() {
if (stackLayout.currentIndex !== d.mainViewIndex) {
root.profileSectionStore.backButtonName = ""
root.sectionTitle = root.mainSectionTitle
stackLayout.currentIndex = d.mainViewIndex
}
}
StackLayout {
id: stackLayout
currentIndex: d.mainViewIndex
QtObject {
id: d
readonly property int mainViewIndex: 0
readonly property int connectedDappsIndex: 1
readonly property int approvalsIndex: 2
readonly property int trustLevelsIndex: 3
readonly property int securityIndex: 4
function changeSubsection(title, index) {
root.profileSectionStore.backButtonName = root.mainSectionTitle
root.sectionTitle = title
stackLayout.currentIndex = index
}
property Component headerButton: Component {
StatusButton {
text: qsTr("Connect a dApp via WalletConnect")
onClicked: {
console.warn("TODO: run wallet connect popup...")
}
}
}
}
Main {
Layout.preferredWidth: root.contentWidth
onDisplayConnectedDapps: d.changeSubsection(title, d.connectedDappsIndex)
onDisplayApprovals: d.changeSubsection(title, d.approvalsIndex)
onDisplayTrustLevels: d.changeSubsection(title, d.trustLevelsIndex)
onDisplaySecurity: d.changeSubsection(title, d.securityIndex)
}
ConnectedDapps {
Layout.preferredWidth: root.contentWidth
}
Approvals {
Layout.preferredWidth: root.contentWidth
}
TrustLevels {
Layout.preferredWidth: root.contentWidth
}
Security {
Layout.preferredWidth: root.contentWidth
}
}
}

View File

@ -0,0 +1,44 @@
import QtQuick 2.14
import QtQuick.Layouts 1.14
import StatusQ.Controls 0.1
import utils 1.0
import shared.controls 1.0
ColumnLayout {
id: root
spacing: Constants.settingsSection.itemSpacing
QtObject {
id: d
}
StatusTabBar {
id: walletTabBar
Layout.fillWidth: true
StatusTabButton {
leftPadding: 0
width: implicitWidth
text: qsTr("By dApp")
}
StatusTabButton {
width: implicitWidth
text: qsTr("By token")
}
StatusTabButton {
width: implicitWidth
text: qsTr("By account")
}
}
ShapeRectangle {
Layout.fillWidth: true
Layout.preferredHeight: implicitHeight
text: qsTr("Your dApp approvals will appear here")
}
}

View File

@ -0,0 +1,39 @@
import QtQuick 2.14
import QtQuick.Layouts 1.14
import StatusQ.Controls 0.1
import utils 1.0
import shared.controls 1.0
ColumnLayout {
id: root
spacing: Constants.settingsSection.itemSpacing
QtObject {
id: d
}
StatusTabBar {
id: walletTabBar
Layout.fillWidth: true
StatusTabButton {
leftPadding: 0
width: implicitWidth
text: qsTr("By dApp")
}
StatusTabButton {
width: implicitWidth
text: qsTr("By account")
}
}
ShapeRectangle {
Layout.fillWidth: true
Layout.preferredHeight: implicitHeight
text: qsTr("Your connected dApps will appear here")
}
}

View File

@ -0,0 +1,79 @@
import QtQuick 2.14
import QtQuick.Layouts 1.14
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Components 0.1
import utils 1.0
ColumnLayout {
id: root
signal displayConnectedDapps(string title)
signal displayApprovals(string title)
signal displayTrustLevels(string title)
signal displaySecurity(string title)
spacing: Constants.settingsSection.itemSpacing
QtObject {
id: d
}
StatusListItem {
Layout.fillWidth: true
title: qsTr("Connected")
components: [
StatusIcon {
icon: "next"
color: Theme.palette.baseColor1
}
]
onClicked: {
root.displayConnectedDapps(title)
}
}
StatusListItem {
Layout.fillWidth: true
title: qsTr("Approvals")
components: [
StatusIcon {
icon: "next"
color: Theme.palette.baseColor1
}
]
onClicked: {
root.displayApprovals(title)
}
}
StatusListItem {
Layout.fillWidth: true
title: qsTr("Trust levels")
components: [
StatusIcon {
icon: "next"
color: Theme.palette.baseColor1
}
]
onClicked: {
root.displayTrustLevels(title)
}
}
StatusListItem {
Layout.fillWidth: true
title: qsTr("Security")
components: [
StatusIcon {
icon: "next"
color: Theme.palette.baseColor1
}
]
onClicked: {
root.displaySecurity(title)
}
}
}

View File

@ -0,0 +1,14 @@
import QtQuick 2.14
import QtQuick.Layouts 1.14
import utils 1.0
ColumnLayout {
id: root
spacing: Constants.settingsSection.itemSpacing
QtObject {
id: d
}
}

View File

@ -0,0 +1,23 @@
import QtQuick 2.14
import QtQuick.Layouts 1.14
import StatusQ.Controls 0.1
import utils 1.0
import shared.controls 1.0
ColumnLayout {
id: root
spacing: Constants.settingsSection.itemSpacing
QtObject {
id: d
}
ShapeRectangle {
Layout.fillWidth: true
Layout.preferredHeight: implicitHeight
text: qsTr("Your trust level for dApps you have interacted with will appear here")
}
}

View File

@ -0,0 +1,90 @@
import QtQuick 2.15
import QtGraphicalEffects 1.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import shared.controls 1.0
import StatusQ.Core.Theme 0.1
import StatusQ.Controls 0.1
StatusButton {
id: root
property int menuWidth: 312
signal connectDapp()
borderColor: Theme.palette.directColor7
normalColor: Theme.palette.transparent
hoverColor: Theme.palette.baseColor2
textPosition: StatusBaseButton.TextPosition.Left
textColor: Theme.palette.baseColor1
icon.name: "dapp"
icon.height: 16
icon.width: 16
icon.color: hovered ? Theme.palette.directColor1 : Theme.palette.baseColor1
highlighted: popup.opened
onClicked: {
if (popup.opened) {
popup.close()
return
}
popup.x = width - root.menuWidth - 2 * popup.padding
popup.y = height + 4
popup.open()
}
Popup {
id: popup
contentWidth: root.menuWidth
contentHeight: list.height
modal: false
padding: 8
closePolicy: Popup.CloseOnEscape | Popup.CloseOnOutsideClick | Popup.CloseOnPressOutside
background: Rectangle {
id: bckgContent
color: Theme.palette.statusMenu.backgroundColor
radius: 8
layer.enabled: true
layer.effect: DropShadow {
anchors.fill: parent
source: bckgContent
horizontalOffset: 0
verticalOffset: 4
radius: 12
samples: 25
spread: 0.2
color: Theme.palette.dropShadow
}
}
ColumnLayout {
id: list
anchors.left: parent.left
anchors.right: parent.right
width: parent.width
spacing: 8
ShapeRectangle {
Layout.fillWidth: true
Layout.preferredHeight: implicitHeight
text: qsTr("Connected dApps will appear here")
}
StatusButton {
Layout.fillWidth: true
Layout.preferredHeight: implicitHeight
text: qsTr("Connect a dApp via WalletConnect")
onClicked: {
root.connectDapp()
}
}
}
}
}

View File

@ -13,3 +13,4 @@ ManageTokensGroupDelegate 1.0 ManageTokensGroupDelegate.qml
InformationTileAssetDetails 1.0 InformationTileAssetDetails.qml InformationTileAssetDetails 1.0 InformationTileAssetDetails.qml
StatusNetworkListItemTag 1.0 StatusNetworkListItemTag.qml StatusNetworkListItemTag 1.0 StatusNetworkListItemTag.qml
CollectibleBalanceTag 1.0 CollectibleBalanceTag.qml CollectibleBalanceTag 1.0 CollectibleBalanceTag.qml
ConnectedDappsButton 1.0 ConnectedDappsButton.qml

View File

@ -7,6 +7,7 @@ import StatusQ.Controls 0.1
import StatusQ.Components 0.1 import StatusQ.Components 0.1
import StatusQ.Core.Theme 0.1 import StatusQ.Core.Theme 0.1
import StatusQ.Core.Utils 0.1 as StatusQUtils import StatusQ.Core.Utils 0.1 as StatusQUtils
import StatusQ.Popups 0.1
import SortFilterProxyModel 0.2 import SortFilterProxyModel 0.2
@ -73,6 +74,19 @@ Item {
Layout.alignment: Qt.AlignTrailing Layout.alignment: Qt.AlignTrailing
Layout.topMargin: 5 Layout.topMargin: 5
ConnectedDappsButton {
Layout.preferredHeight: 38
Layout.alignment: Qt.AlignTop
spacing: 8
size: StatusBaseButton.Size.Small
visible: !root.walletStore.showSavedAddresses
onConnectDapp: {
console.warn("TODO: run ConnectDappPopup...")
}
}
StatusButton { StatusButton {
id: headerButton id: headerButton
objectName: "walletHeaderButton" objectName: "walletHeaderButton"

View File

@ -56,7 +56,6 @@ QtObject {
property var activityDetailsController: walletSectionInst.activityDetailsController property var activityDetailsController: walletSectionInst.activityDetailsController
property string signingPhrase: walletSectionInst.signingPhrase property string signingPhrase: walletSectionInst.signingPhrase
property string mnemonicBackedUp: walletSectionInst.isMnemonicBackedUp property string mnemonicBackedUp: walletSectionInst.isMnemonicBackedUp
property var walletConnectController: walletSectionInst.walletConnectController
property CollectiblesStore collectiblesStore: CollectiblesStore {} property CollectiblesStore collectiblesStore: CollectiblesStore {}

View File

@ -1,3 +1,7 @@
/////////////////////////////////////////////////////
// WalletConnect POC - to remove this file
/////////////////////////////////////////////////////
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15

View File

@ -1,3 +1,7 @@
/////////////////////////////////////////////////////
// WalletConnect POC - to remove this file
/////////////////////////////////////////////////////
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15

View File

@ -1,3 +1,7 @@
/////////////////////////////////////////////////////
// WalletConnect POC - to remove this file
/////////////////////////////////////////////////////
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15

View File

@ -1,7 +1,13 @@
/////////////////////////////////////////////////////
// WalletConnect POC - to remove this file
/////////////////////////////////////////////////////
import QtQuick 2.15 import QtQuick 2.15
import AppLayouts.Wallet.stores 1.0 as WalletStores import AppLayouts.Wallet.stores 1.0 as WalletStores
import shared.popups.walletconnect 1.0
Item { Item {
id: root id: root
@ -11,7 +17,7 @@ Item {
property alias sdk: sdk property alias sdk: sdk
property alias url: sdk.url property alias url: sdk.url
WalletConnectModal { POCWalletConnectModal {
id: modal id: modal
controller: root.controller controller: root.controller

View File

@ -1,3 +1,7 @@
/////////////////////////////////////////////////////
// WalletConnect POC - to remove this file
/////////////////////////////////////////////////////
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
@ -6,6 +10,8 @@ import StatusQ.Controls 0.1
import StatusQ.Core 0.1 import StatusQ.Core 0.1
import StatusQ.Popups 0.1 import StatusQ.Popups 0.1
import shared.popups.walletconnect 1.0
Popup { Popup {
id: root id: root
@ -147,7 +153,7 @@ Popup {
id: selAccBtnGroup id: selAccBtnGroup
} }
SelectAccount { POCSelectAccount {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: contentHeight Layout.preferredHeight: contentHeight
@ -201,7 +207,7 @@ Popup {
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
Sessions { POCSessions {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: contentHeight Layout.preferredHeight: contentHeight
@ -220,7 +226,7 @@ Popup {
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
Pairings { POCPairings {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: contentHeight Layout.preferredHeight: contentHeight

View File

@ -0,0 +1,3 @@
POCWalletConnect 1.0 POCWalletConnect.qml
POCWalletConnectModal 1.0 POCWalletConnectModal.qml
POCPairings 1.0 POCPairings.qml

View File

@ -1,4 +0,0 @@
WalletConnect 1.0 WalletConnect.qml
WalletConnectModal 1.0 WalletConnectModal.qml
WalletConnectSDK 1.0 WalletConnectSDK.qml
Pairings 1.0 Pairings.qml

File diff suppressed because one or more lines are too long

View File

@ -42,7 +42,11 @@ import AppLayouts.Chat.stores 1.0 as ChatStores
import AppLayouts.Communities.stores 1.0 import AppLayouts.Communities.stores 1.0
import AppLayouts.Wallet.stores 1.0 as WalletStore import AppLayouts.Wallet.stores 1.0 as WalletStore
import AppLayouts.Wallet.popups 1.0 as WalletPopups import AppLayouts.Wallet.popups 1.0 as WalletPopups
import AppLayouts.Wallet.views.walletconnect 1.0
/////////////////////////////////////////////////////
// WalletConnect POC - to remove
import AppLayouts.Wallet.views.pocwalletconnect 1.0
/////////////////////////////////////////////////////
import mainui.activitycenter.stores 1.0 import mainui.activitycenter.stores 1.0
import mainui.activitycenter.popups 1.0 import mainui.activitycenter.popups 1.0
@ -2029,13 +2033,15 @@ Item {
} }
} }
WalletConnect { /////////////////////////////////////////////////////
// WalletConnect POC - to remove
POCWalletConnect {
id: walletConnect id: walletConnect
anchors.top: parent.bottom anchors.top: parent.bottom
width: 100 width: 100
height: 100 height: 100
controller: WalletStore.RootStore.walletConnectController controller: WalletStore.RootStore.walletSectionInst.walletConnectController
Connections { Connections {
target: Global target: Global
@ -2044,4 +2050,5 @@ Item {
} }
} }
} }
/////////////////////////////////////////////////////
} }

View File

@ -0,0 +1,57 @@
import QtQuick 2.15
import StatusQ.Core 0.1
import StatusQ.Popups 0.1
import StatusQ.Controls 0.1
import utils 1.0
StatusModal {
id: root
width: Constants.dapps.connectDappPopupWidth
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
headerSettings.title: qsTr("Connect a Dapp via WalletConnect")
StatusScrollView {
id: scrollView
anchors.fill: parent
padding: 0
contentWidth: availableWidth
Item {
id: content
implicitWidth: loader.implicitWidth
implicitHeight: loader.implicitHeight
width: scrollView.availableWidth
Loader {
id: loader
width: parent.width
sourceComponent: {
// TODO
return undefined
}
}
}
}
rightButtons: [
StatusButton {
id: primaryButton
height: Constants.dapps.footerButtonsHeight
text: qsTr("Done")
visible: text !== ""
enabled: root.store.primaryPopupButtonEnabled
onClicked: {
console.warn("TODO: done...")
}
}
]
}

View File

@ -537,7 +537,7 @@ Item {
anchors.fill: parent anchors.fill: parent
url: "qrc:/app/AppLayouts/Wallet/views/walletconnect/sdk/src/index.html" url: "qrc:/imports/shared/popups/walletconnect/sdk/src/index.html"
webChannelObjects: [ statusObject ] webChannelObjects: [ statusObject ]
onPageLoaded: function() { onPageLoaded: function() {

View File

@ -0,0 +1,2 @@
WalletConnectSDK 1.0 WalletConnectSDK.qml
ConnectDappPopup 1.0 ConnectDappPopup.qml

File diff suppressed because one or more lines are too long

View File

@ -9,12 +9,12 @@
"version": "0.1.0", "version": "0.1.0",
"license": "MPL-2.0", "license": "MPL-2.0",
"dependencies": { "dependencies": {
"@walletconnect/web3wallet": "^1.9.0" "@walletconnect/web3wallet": "^1.11.2"
}, },
"devDependencies": { "devDependencies": {
"webpack": "^5.88.2", "webpack": "^5.91.0",
"webpack-cli": "^5.1.4", "webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1" "webpack-dev-server": "^4.15.2"
} }
}, },
"node_modules/@discoveryjs/json-ext": { "node_modules/@discoveryjs/json-ext": {
@ -380,45 +380,45 @@
"integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg=="
}, },
"node_modules/@jridgewell/gen-mapping": { "node_modules/@jridgewell/gen-mapping": {
"version": "0.3.3", "version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@jridgewell/set-array": "^1.0.1", "@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9" "@jridgewell/trace-mapping": "^0.3.24"
}, },
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/@jridgewell/resolve-uri": { "node_modules/@jridgewell/resolve-uri": {
"version": "3.1.1", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/@jridgewell/set-array": { "node_modules/@jridgewell/set-array": {
"version": "1.1.2", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/@jridgewell/source-map": { "node_modules/@jridgewell/source-map": {
"version": "0.3.5", "version": "0.3.6",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
"integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.9" "@jridgewell/trace-mapping": "^0.3.25"
} }
}, },
"node_modules/@jridgewell/sourcemap-codec": { "node_modules/@jridgewell/sourcemap-codec": {
@ -428,9 +428,9 @@
"dev": true "dev": true
}, },
"node_modules/@jridgewell/trace-mapping": { "node_modules/@jridgewell/trace-mapping": {
"version": "0.3.20", "version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/resolve-uri": "^3.1.0",
@ -1098,9 +1098,9 @@
} }
}, },
"node_modules/@walletconnect/core": { "node_modules/@walletconnect/core": {
"version": "2.10.5", "version": "2.12.2",
"resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.10.5.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.12.2.tgz",
"integrity": "sha512-QnGHkA05KzJrtqExPqXm/TsstM1uTDI8tQT0x86/DuR6LdiYEntzSpVjnv7kKK6Mo9UxlXfud431dNRfOW5uJg==", "integrity": "sha512-7Adv/b3pp9F42BkvReaaM4KS8NEvlkS7AMtwO3uF/o6aRMKtcfTJq9/jgWdKJh4RP8pPRTRFjCw6XQ/RZtT4aQ==",
"dependencies": { "dependencies": {
"@walletconnect/heartbeat": "1.2.1", "@walletconnect/heartbeat": "1.2.1",
"@walletconnect/jsonrpc-provider": "1.0.13", "@walletconnect/jsonrpc-provider": "1.0.13",
@ -1108,14 +1108,15 @@
"@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/jsonrpc-utils": "1.0.8",
"@walletconnect/jsonrpc-ws-connection": "1.0.14", "@walletconnect/jsonrpc-ws-connection": "1.0.14",
"@walletconnect/keyvaluestorage": "^1.1.1", "@walletconnect/keyvaluestorage": "^1.1.1",
"@walletconnect/logger": "^2.0.1", "@walletconnect/logger": "^2.1.2",
"@walletconnect/relay-api": "^1.0.9", "@walletconnect/relay-api": "^1.0.9",
"@walletconnect/relay-auth": "^1.0.4", "@walletconnect/relay-auth": "^1.0.4",
"@walletconnect/safe-json": "^1.0.2", "@walletconnect/safe-json": "^1.0.2",
"@walletconnect/time": "^1.0.2", "@walletconnect/time": "^1.0.2",
"@walletconnect/types": "2.10.5", "@walletconnect/types": "2.12.2",
"@walletconnect/utils": "2.10.5", "@walletconnect/utils": "2.12.2",
"events": "^3.3.0", "events": "^3.3.0",
"isomorphic-unfetch": "3.1.0",
"lodash.isequal": "4.5.0", "lodash.isequal": "4.5.0",
"uint8arrays": "^3.1.0" "uint8arrays": "^3.1.0"
} }
@ -1206,12 +1207,12 @@
} }
}, },
"node_modules/@walletconnect/logger": { "node_modules/@walletconnect/logger": {
"version": "2.0.1", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz",
"integrity": "sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==", "integrity": "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==",
"dependencies": { "dependencies": {
"pino": "7.11.0", "@walletconnect/safe-json": "^1.0.2",
"tslib": "1.14.1" "pino": "7.11.0"
} }
}, },
"node_modules/@walletconnect/relay-api": { "node_modules/@walletconnect/relay-api": {
@ -1245,18 +1246,18 @@
} }
}, },
"node_modules/@walletconnect/sign-client": { "node_modules/@walletconnect/sign-client": {
"version": "2.10.5", "version": "2.12.2",
"resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.10.5.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.12.2.tgz",
"integrity": "sha512-HEYsoeGC6fGplQy0NIZSRNHgOwZwQ892UWG1Ahkcasf2R35QaBgnTVQkSCisl1PAAOKXZG7yB1YDoAAZBF+g5Q==", "integrity": "sha512-cM0ualXj6nVvLqS4BDNRk+ZWR+lubcsz/IHreH+3wYrQ2sV+C0fN6ctrd7MMGZss0C0qacWCx0pm62ZBuoKvqA==",
"dependencies": { "dependencies": {
"@walletconnect/core": "2.10.5", "@walletconnect/core": "2.12.2",
"@walletconnect/events": "^1.0.1", "@walletconnect/events": "^1.0.1",
"@walletconnect/heartbeat": "1.2.1", "@walletconnect/heartbeat": "1.2.1",
"@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/jsonrpc-utils": "1.0.8",
"@walletconnect/logger": "^2.0.1", "@walletconnect/logger": "^2.1.2",
"@walletconnect/time": "^1.0.2", "@walletconnect/time": "^1.0.2",
"@walletconnect/types": "2.10.5", "@walletconnect/types": "2.12.2",
"@walletconnect/utils": "2.10.5", "@walletconnect/utils": "2.12.2",
"events": "^3.3.0" "events": "^3.3.0"
} }
}, },
@ -1269,9 +1270,9 @@
} }
}, },
"node_modules/@walletconnect/types": { "node_modules/@walletconnect/types": {
"version": "2.10.5", "version": "2.12.2",
"resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.10.5.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.12.2.tgz",
"integrity": "sha512-N8xaN7/Kob93rKxKDaT6oy6symgIkAwyLqq0/dLJEhXfv7S/gyNvDka4SosjVVTc4oTvE1+OmxNIR8pB1DuwJw==", "integrity": "sha512-9CmwTlPbrFTzayTL9q7xM7s3KTJkS6kYFtH2m1/fHFgALs6pIUjf1qAx1TF2E4tv7SEzLAIzU4NqgYUt2vWXTg==",
"dependencies": { "dependencies": {
"@walletconnect/events": "^1.0.1", "@walletconnect/events": "^1.0.1",
"@walletconnect/heartbeat": "1.2.1", "@walletconnect/heartbeat": "1.2.1",
@ -1282,9 +1283,9 @@
} }
}, },
"node_modules/@walletconnect/utils": { "node_modules/@walletconnect/utils": {
"version": "2.10.5", "version": "2.12.2",
"resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.10.5.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.12.2.tgz",
"integrity": "sha512-3yeclD9/AlPEIHBqBVzrHUO/KRAEIXVK0ViIQ5oUH+zT3TpdsDGDiW1Z0TsAQ1EiYoiiz8dOQzd80a3eZVwnrg==", "integrity": "sha512-zf50HeS3SfoLv1N9GPl2IXTZ9TsXfet4usVAsZmX9P6/Xzq7d/7QakjVQCHH/Wk1O9XkcsfeoZoUhRxoMJ5uJw==",
"dependencies": { "dependencies": {
"@stablelib/chacha20poly1305": "1.0.1", "@stablelib/chacha20poly1305": "1.0.1",
"@stablelib/hkdf": "1.0.1", "@stablelib/hkdf": "1.0.1",
@ -1294,7 +1295,7 @@
"@walletconnect/relay-api": "^1.0.9", "@walletconnect/relay-api": "^1.0.9",
"@walletconnect/safe-json": "^1.0.2", "@walletconnect/safe-json": "^1.0.2",
"@walletconnect/time": "^1.0.2", "@walletconnect/time": "^1.0.2",
"@walletconnect/types": "2.10.5", "@walletconnect/types": "2.12.2",
"@walletconnect/window-getters": "^1.0.1", "@walletconnect/window-getters": "^1.0.1",
"@walletconnect/window-metadata": "^1.0.1", "@walletconnect/window-metadata": "^1.0.1",
"detect-browser": "5.3.0", "detect-browser": "5.3.0",
@ -1303,18 +1304,18 @@
} }
}, },
"node_modules/@walletconnect/web3wallet": { "node_modules/@walletconnect/web3wallet": {
"version": "1.9.4", "version": "1.11.2",
"resolved": "https://registry.npmjs.org/@walletconnect/web3wallet/-/web3wallet-1.9.4.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/web3wallet/-/web3wallet-1.11.2.tgz",
"integrity": "sha512-daoISghTC4693wExQN1X7arUBNF9jZuHERRTYCbEokMz2y/AmocMsanFx6g6MlIJumcBX6moYResygWltYI6mg==", "integrity": "sha512-jrxXmZyg+czkHXg4d0jdhxajjfbgPvS9dW4UzdGdz12dXsX7CFgZxz+LWc/oakhLyngUtwHtyBlgaFWxamS3AQ==",
"dependencies": { "dependencies": {
"@walletconnect/auth-client": "2.1.2", "@walletconnect/auth-client": "2.1.2",
"@walletconnect/core": "2.10.5", "@walletconnect/core": "2.12.2",
"@walletconnect/jsonrpc-provider": "1.0.13", "@walletconnect/jsonrpc-provider": "1.0.13",
"@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/jsonrpc-utils": "1.0.8",
"@walletconnect/logger": "2.0.1", "@walletconnect/logger": "2.1.2",
"@walletconnect/sign-client": "2.10.5", "@walletconnect/sign-client": "2.12.2",
"@walletconnect/types": "2.10.5", "@walletconnect/types": "2.12.2",
"@walletconnect/utils": "2.10.5" "@walletconnect/utils": "2.12.2"
} }
}, },
"node_modules/@walletconnect/window-getters": { "node_modules/@walletconnect/window-getters": {
@ -1335,9 +1336,9 @@
} }
}, },
"node_modules/@webassemblyjs/ast": { "node_modules/@webassemblyjs/ast": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
"integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-numbers": "1.11.6",
@ -1357,9 +1358,9 @@
"dev": true "dev": true
}, },
"node_modules/@webassemblyjs/helper-buffer": { "node_modules/@webassemblyjs/helper-buffer": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
"integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
"dev": true "dev": true
}, },
"node_modules/@webassemblyjs/helper-numbers": { "node_modules/@webassemblyjs/helper-numbers": {
@ -1380,15 +1381,15 @@
"dev": true "dev": true
}, },
"node_modules/@webassemblyjs/helper-wasm-section": { "node_modules/@webassemblyjs/helper-wasm-section": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
"integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.11.6", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/helper-buffer": "1.12.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
"@webassemblyjs/wasm-gen": "1.11.6" "@webassemblyjs/wasm-gen": "1.12.1"
} }
}, },
"node_modules/@webassemblyjs/ieee754": { "node_modules/@webassemblyjs/ieee754": {
@ -1416,28 +1417,28 @@
"dev": true "dev": true
}, },
"node_modules/@webassemblyjs/wasm-edit": { "node_modules/@webassemblyjs/wasm-edit": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
"integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.11.6", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/helper-buffer": "1.12.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
"@webassemblyjs/helper-wasm-section": "1.11.6", "@webassemblyjs/helper-wasm-section": "1.12.1",
"@webassemblyjs/wasm-gen": "1.11.6", "@webassemblyjs/wasm-gen": "1.12.1",
"@webassemblyjs/wasm-opt": "1.11.6", "@webassemblyjs/wasm-opt": "1.12.1",
"@webassemblyjs/wasm-parser": "1.11.6", "@webassemblyjs/wasm-parser": "1.12.1",
"@webassemblyjs/wast-printer": "1.11.6" "@webassemblyjs/wast-printer": "1.12.1"
} }
}, },
"node_modules/@webassemblyjs/wasm-gen": { "node_modules/@webassemblyjs/wasm-gen": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
"integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.11.6", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
"@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/ieee754": "1.11.6",
"@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/leb128": "1.11.6",
@ -1445,24 +1446,24 @@
} }
}, },
"node_modules/@webassemblyjs/wasm-opt": { "node_modules/@webassemblyjs/wasm-opt": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
"integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.11.6", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/helper-buffer": "1.12.1",
"@webassemblyjs/wasm-gen": "1.11.6", "@webassemblyjs/wasm-gen": "1.12.1",
"@webassemblyjs/wasm-parser": "1.11.6" "@webassemblyjs/wasm-parser": "1.12.1"
} }
}, },
"node_modules/@webassemblyjs/wasm-parser": { "node_modules/@webassemblyjs/wasm-parser": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
"integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.11.6", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
"@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/ieee754": "1.11.6",
@ -1471,12 +1472,12 @@
} }
}, },
"node_modules/@webassemblyjs/wast-printer": { "node_modules/@webassemblyjs/wast-printer": {
"version": "1.11.6", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
"integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.11.6", "@webassemblyjs/ast": "1.12.1",
"@xtuc/long": "4.2.2" "@xtuc/long": "4.2.2"
} }
}, },
@ -2305,9 +2306,9 @@
} }
}, },
"node_modules/enhanced-resolve": { "node_modules/enhanced-resolve": {
"version": "5.15.0", "version": "5.16.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz",
"integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"graceful-fs": "^4.2.4", "graceful-fs": "^4.2.4",
@ -4284,9 +4285,9 @@
"dev": true "dev": true
}, },
"node_modules/serialize-javascript": { "node_modules/serialize-javascript": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
"integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"randombytes": "^2.1.0" "randombytes": "^2.1.0"
@ -4634,9 +4635,9 @@
} }
}, },
"node_modules/terser": { "node_modules/terser": {
"version": "5.24.0", "version": "5.30.3",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz",
"integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@jridgewell/source-map": "^0.3.3", "@jridgewell/source-map": "^0.3.3",
@ -4652,16 +4653,16 @@
} }
}, },
"node_modules/terser-webpack-plugin": { "node_modules/terser-webpack-plugin": {
"version": "5.3.9", "version": "5.3.10",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
"integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@jridgewell/trace-mapping": "^0.3.17", "@jridgewell/trace-mapping": "^0.3.20",
"jest-worker": "^27.4.5", "jest-worker": "^27.4.5",
"schema-utils": "^3.1.1", "schema-utils": "^3.1.1",
"serialize-javascript": "^6.0.1", "serialize-javascript": "^6.0.1",
"terser": "^5.16.8" "terser": "^5.26.0"
}, },
"engines": { "engines": {
"node": ">= 10.13.0" "node": ">= 10.13.0"
@ -4952,9 +4953,9 @@
} }
}, },
"node_modules/watchpack": { "node_modules/watchpack": {
"version": "2.4.0", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz",
"integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"glob-to-regexp": "^0.4.1", "glob-to-regexp": "^0.4.1",
@ -4979,34 +4980,34 @@
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.89.0", "version": "5.91.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz",
"integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.3", "@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.0", "@types/estree": "^1.0.5",
"@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/ast": "^1.12.1",
"@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.12.1",
"@webassemblyjs/wasm-parser": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.12.1",
"acorn": "^8.7.1", "acorn": "^8.7.1",
"acorn-import-assertions": "^1.9.0", "acorn-import-assertions": "^1.9.0",
"browserslist": "^4.14.5", "browserslist": "^4.21.10",
"chrome-trace-event": "^1.0.2", "chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.15.0", "enhanced-resolve": "^5.16.0",
"es-module-lexer": "^1.2.1", "es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1", "eslint-scope": "5.1.1",
"events": "^3.2.0", "events": "^3.2.0",
"glob-to-regexp": "^0.4.1", "glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.2.9", "graceful-fs": "^4.2.11",
"json-parse-even-better-errors": "^2.3.1", "json-parse-even-better-errors": "^2.3.1",
"loader-runner": "^4.2.0", "loader-runner": "^4.2.0",
"mime-types": "^2.1.27", "mime-types": "^2.1.27",
"neo-async": "^2.6.2", "neo-async": "^2.6.2",
"schema-utils": "^3.2.0", "schema-utils": "^3.2.0",
"tapable": "^2.1.1", "tapable": "^2.1.1",
"terser-webpack-plugin": "^5.3.7", "terser-webpack-plugin": "^5.3.10",
"watchpack": "^2.4.0", "watchpack": "^2.4.1",
"webpack-sources": "^3.2.3" "webpack-sources": "^3.2.3"
}, },
"bin": { "bin": {
@ -5080,9 +5081,9 @@
} }
}, },
"node_modules/webpack-dev-middleware": { "node_modules/webpack-dev-middleware": {
"version": "5.3.3", "version": "5.3.4",
"resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
"integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"colorette": "^2.0.10", "colorette": "^2.0.10",
@ -5156,9 +5157,9 @@
} }
}, },
"node_modules/webpack-dev-server": { "node_modules/webpack-dev-server": {
"version": "4.15.1", "version": "4.15.2",
"resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
"integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/bonjour": "^3.5.9", "@types/bonjour": "^3.5.9",
@ -5189,7 +5190,7 @@
"serve-index": "^1.9.1", "serve-index": "^1.9.1",
"sockjs": "^0.3.24", "sockjs": "^0.3.24",
"spdy": "^4.0.2", "spdy": "^4.0.2",
"webpack-dev-middleware": "^5.3.1", "webpack-dev-middleware": "^5.3.4",
"ws": "^8.13.0" "ws": "^8.13.0"
}, },
"bin": { "bin": {

View File

@ -4,9 +4,9 @@
"description": "Wallet Connect integration for status-desktop", "description": "Wallet Connect integration for status-desktop",
"private": true, "private": true,
"devDependencies": { "devDependencies": {
"webpack": "^5.89.0", "webpack": "^5.91.0",
"webpack-cli": "^5.1.4", "webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1" "webpack-dev-server": "^4.15.2"
}, },
"license": "MPL-2.0", "license": "MPL-2.0",
"scripts": { "scripts": {
@ -16,6 +16,6 @@
"start": "webpack serve --mode development --open" "start": "webpack serve --mode development --open"
}, },
"dependencies": { "dependencies": {
"@walletconnect/web3wallet": "^1.9.4" "@walletconnect/web3wallet": "^1.11.2"
} }
} }

View File

@ -3,7 +3,7 @@
<head> <head>
<script src="qrc:/StatusQ/Components/private/qwebchannel/qwebchannel.js" defer></script> <script src="qrc:/StatusQ/Components/private/qwebchannel/qwebchannel.js" defer></script>
<script src="qrc:/StatusQ/Components/private/qwebchannel/helpers.js" defer></script> <script src="qrc:/StatusQ/Components/private/qwebchannel/helpers.js" defer></script>
<script src="qrc:/app/AppLayouts/Wallet/views/walletconnect/sdk/generated/bundle.js" defer></script> <script src="qrc:/imports/shared/popups/walletconnect/sdk/generated/bundle.js" defer></script>
</head> </head>
<body> <body>
</body> </body>

View File

@ -337,21 +337,22 @@ QtObject {
readonly property int ensUsernames: 3 readonly property int ensUsernames: 3
readonly property int messaging: 4 readonly property int messaging: 4
readonly property int wallet:5 readonly property int wallet:5
readonly property int appearance: 6 readonly property int dapps: 6
readonly property int language: 7 readonly property int appearance: 7
readonly property int notifications: 8 readonly property int language: 8
readonly property int syncingSettings: 9 readonly property int notifications: 9
readonly property int browserSettings: 10 readonly property int syncingSettings: 10
readonly property int advanced: 11 readonly property int browserSettings: 11
readonly property int about: 12 readonly property int advanced: 12
readonly property int communitiesSettings: 13 readonly property int about: 13
readonly property int keycard: 14 readonly property int communitiesSettings: 14
readonly property int about_terms: 15 // a subpage under "About" readonly property int keycard: 15
readonly property int about_privacy: 16 // a subpage under "About" readonly property int about_terms: 16 // a subpage under "About"
readonly property int about_privacy: 17 // a subpage under "About"
// special treatment; these do not participate in the main settings' StackLayout // special treatment; these do not participate in the main settings' StackLayout
readonly property int signout: 17 readonly property int signout: 18
readonly property int backUpSeed: 18 readonly property int backUpSeed: 19
} }
readonly property QtObject walletSettingsSubsection: QtObject { readonly property QtObject walletSettingsSubsection: QtObject {
@ -788,6 +789,11 @@ QtObject {
} }
} }
readonly property QtObject dapps: QtObject {
readonly property int connectDappPopupWidth: 480
readonly property int footerButtonsHeight: 44
}
readonly property QtObject localPairingAction: QtObject { readonly property QtObject localPairingAction: QtObject {
readonly property int actionUnknown: 0 readonly property int actionUnknown: 0
readonly property int actionConnect: 1 readonly property int actionConnect: 1

View File

@ -97,7 +97,10 @@ QtObject {
signal openTestnetPopup() signal openTestnetPopup()
/////////////////////////////////////////////////////
// WalletConnect POC - to remove
signal popupWalletConnect() signal popupWalletConnect()
/////////////////////////////////////////////////////
signal openAddEditSavedAddressesPopup(var params) signal openAddEditSavedAddressesPopup(var params)
signal openDeleteSavedAddressesPopup(var params) signal openDeleteSavedAddressesPopup(var params)