Closed jrainville closed 21 hours ago
Status : draft
Reviewers : cammellos@ MishkaRogachev@
Status is building a Browser plugin
that serves as a cryptocurrency wallet and gateway to blockchain applications. It primarily interacts with the Ethereum blockchain but supports other networks as well. To achieve the creation of the Browser plugin, Desktop core team will be involved in creating a Connector
that will connect Status-go and the Browser plugin by exposing the Wallet API’s. Here are proposals for implementing the solution.
sequenceDiagram
participant User
participant BrowserPlugin
participant Connector
participant StatusApp
User->>BrowserPlugin: Connect Wallet to dApp
BrowserPlugin->>Connector: Send RPC request
alt Connector crash
BrowserPlugin->>Connector: Retry Policy Send RPC request + publicKey
end
Connector->>StatusApp: Trigger user authentication popup
StatusApp->>User: Show authentication popup
User->>StatusApp: Authenticate
alt Connector crash
BrowserPlugin->>Connector: Retry Policy Establish WebSocket connection with token
end
BrowserPlugin->>Connector: Establish WebSocket connection
BrowserPlugin->>Connector: Send API calls over WebSocket
Connector->>StatusApp: forward API calls to StatusApp
alt Connector crash
BrowserPlugin->>Connector: Retry Policy Establish WebSocket connection with token
end
StatusApp->>StatusApp: Lost network connection
StatusApp->>Connector: Status App offline
Connector->>BrowserPlugin: Status App offline
In this proposal the flow looks like the following
From there :
pros:
cons:
Obsolete tracker
Using IPC instead of websocket This was a proposal from Browser plugin team, however, this solution is considered low level and avoided as of now since it requires some analysis for different platforms. Using IPC sholdn't be a problem for Status desktop app, but rather Browser plugin
Using websocket without Goeth This was discussed with Andrea during the meeting. Current it's better to use go etherium enabled Websocket since there is no additional development needed.
I think we can close this issue with https://github.com/status-im/status-desktop/pull/15168
Description
Spike to investigate the different ways that we can connect the Status app and a browser plugin.
Acceptance Criteria