mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-13 07:06:58 +00:00
This PR is refactoring the dapps service to avoid code duplication between SDKs and also to avoid overlapping requests/responses. It brings Browser Connect inline with Wallet Connect in terms of session management and sign transactions. New architecture: WalletConnectService becomes DAppsService. Its responsibility is to provide dapp access to the app. This is the component currently used by the UI What does it do: 1. Provide dapp APIs line connect, disconnect, session requests etc 2. Spawn app notifications on dapp events 3. Timeout requests if the dapp does not respons DAppsRequestHandler becomes DAppsModule. This component is consumed by the DAppService. Its responsibility is to aggregate all the building blocks for the dapps, but does not control any of the dapp features or consume the SDKs requests. What does it do: 1. Aggregate all the building blocks for dapps (currently known as plugins) DAppConnectionsPlugin - This component provides the session management features line connect, disconnect and provide a model with the connected dapps. SignRequestPlugin - This component provides the sign request management. It receives the sign request from the dapp, translates it to what Status understands and manages the lifecycle of the request.
91 lines
3.4 KiB
QML
91 lines
3.4 KiB
QML
import QtQuick 2.15
|
|
|
|
/// SDK requires a visible parent to embed WebEngineView
|
|
Item {
|
|
required property string projectId
|
|
property bool enabled: true
|
|
|
|
signal statusChanged(string message)
|
|
signal sdkInit(bool success, var result)
|
|
signal pairResponse(bool success)
|
|
signal sessionProposal(var sessionProposal)
|
|
signal sessionProposalExpired()
|
|
signal buildApprovedNamespacesResult(string id, var session, string error)
|
|
signal approveSessionResult(string proposalId, var approvedNamespaces, string error)
|
|
signal rejectSessionResult(string proposalId, string error)
|
|
signal sessionRequestExpired(string id)
|
|
signal sessionRequestEvent(var sessionRequest)
|
|
signal sessionRequestUserAnswerResult(string topic, string id, bool accept /* not reject */, string error)
|
|
signal sessionAuthenticateRequest(var sessionData)
|
|
signal populateAuthPayloadResult(string id, var authPayload, string error)
|
|
signal formatAuthMessageResult(string id, var request, string error)
|
|
signal acceptSessionAuthenticateResult(string id, var result, string error)
|
|
signal rejectSessionAuthenticateResult(string id, var result, string error)
|
|
signal buildAuthObjectResult(string id, var authObject, string error)
|
|
|
|
signal sessionDelete(var topic, string error)
|
|
|
|
property var pair: function(pairLink) {
|
|
console.error("pair not implemented")
|
|
}
|
|
property var getPairings: function(callback) {
|
|
console.error("getPairings not implemented")
|
|
}
|
|
property var getActiveSessions: function(callback) {
|
|
console.error("getActiveSessions not implemented")
|
|
}
|
|
property var disconnectSession: function(topic) {
|
|
console.error("disconnectSession not implemented")
|
|
}
|
|
property var disconnectPairing: function(topic) {
|
|
console.error("disconnectPairing not implemented")
|
|
}
|
|
|
|
property var ping: function(topic) {
|
|
console.error("ping not implemented")
|
|
}
|
|
|
|
property var buildApprovedNamespaces: function(id, params, supportedNamespaces) {
|
|
console.error("buildApprovedNamespaces not implemented")
|
|
}
|
|
property var approveSession: function(sessionProposal, supportedNamespaces) {
|
|
console.error("approveSession not implemented")
|
|
}
|
|
|
|
property var rejectSession: function(id) {
|
|
console.error("rejectSession not implemented")
|
|
}
|
|
|
|
property var acceptSessionRequest: function(topic, id, signature) {
|
|
console.error("acceptSessionRequest not implemented")
|
|
}
|
|
|
|
property var rejectSessionRequest: function(topic, id, error) {
|
|
console.error("rejectSessionRequest not implemented")
|
|
}
|
|
|
|
property var populateAuthPayload: function (id, authPayload, chains, methods) {
|
|
console.error("populateAuthPayload not implemented")
|
|
}
|
|
|
|
property var formatAuthMessage: function(id, request, iss) {
|
|
console.error("formatAuthMessage not implemented")
|
|
}
|
|
|
|
property var buildAuthObject: function(id, authPayload, signature, iss) {
|
|
console.error("buildAuthObject not implemented")
|
|
}
|
|
|
|
property var acceptSessionAuthenticate: function(id, auths) {
|
|
console.error("acceptSessionAuthenticate not implemented")
|
|
}
|
|
|
|
property var rejectSessionAuthenticate: function(id, error) {
|
|
console.error("rejectSessionAuthenticate not implemented")
|
|
}
|
|
|
|
property var emitSessionEvent: function(topic, event, chainId) {
|
|
console.error("emitSessionEvent not implemented")
|
|
}
|
|
}
|