bitshares / beet

Beet is a stand-alone key/identity-manager and signing app for BitShares, heavily influenced by Scatter.
MIT License
27 stars 32 forks source link

Electron based URI / Deeplinks as alternative to websocket communications #212

Closed grctest closed 2 years ago

grctest commented 2 years ago

Is your feature request related to a problem? Please describe. Bidirectional communications between the wallet and 3rd party apps are impeded by some users environmental factors like ISP.

Ideally since we are operating locally we should be able to interact with the Beet wallet directly through URI / deep links.

Describe the solution you'd like Rather than connect, link, broadcast, with 6 back/forth comms over websocket, the user could have a dumb broadcast-only (like UDP) interface which the user is able to interact with the Beet wallet through URI / deep link button clicks.

The user may have to copy/paste the initial identity response into the 3rd party app to store the linked account, as opposed to this occurring through socketio communications.

The 3rd party app could subscribe to the bitshares network to see the end result (if broadcast was successful), rather than get a response that it was.


The user would do the copy/paste identity setup, then could broadcast prompts to the beet wallet one way without needing a direct response from the client.

Describe alternatives you've considered Find some alternative solution for https://github.com/bitshares/beet/issues/166

Not implement URI/Deeplinks.

Additional context

Potential for reducing attack vectors.

Potentially easier to implement as browser extension in the future.

https://www.electronjs.org/docs/latest/api/protocol

https://www.electronjs.org/docs/latest/tutorial/launch-app-from-url-in-another-app

We'd use something like beet://.............. and it'd be as easy as constructing an appropriate hyperlink for the user's blockchain use case.

grctest commented 2 years ago

Addressed in: https://github.com/bitshares/beet/pull/213 Also see: https://github.com/BTS-CM/beet-deeplinks/tree/main/examples/BTS

grctest commented 2 years ago

With #219 merged, this is implemented in the develop branch!