Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support multiple wallets #1068

Closed
2 tasks
jonator opened this issue Nov 28, 2022 · 1 comment · Fixed by #1329
Closed
2 tasks

Support multiple wallets #1068

jonator opened this issue Nov 28, 2022 · 1 comment · Fixed by #1329
Assignees

Comments

@jonator
Copy link
Member

jonator commented Nov 28, 2022

Problem

Currently, we use a manual process to generate an encoder mega-object (for protobuf messages that get passed to a keplr-wallet client to be signed and forwarded to the extension (via sendMsgs function). (See #1004 for updating to v13). Every time there is an interface change on chain-side, we need to use the zipped utility in #1004 to generate the encoder. Additionally, the keplr-wallet sendMsgs function requires that we manually compose an amino message in addition to the product of the encoder mega-object that is generated from protobufs. This manual process is error-prone. Last I checked, legacy amino messages are currently necessary for signing with ledger.

Proposed Solution

We should use the tool developed by @pyramation, to make supporting future versions of Osmosis chain a faster and less error-prone process. However, we're currently blocked on having telescope cherry-pick only the messages (from Cosmos SDK and Osmosis) that we need in the frontend, as the generated signer and queryer is quite large and would causes large bundles and thus slower initial load times, despite it's cacheablity). Additionally, since telescope generates the signing client, we can use this issue to start work on creating a proper account abstraction so that we can support wallets besides Keplr (like Leap), and reduce our dependence on keplr-wallet packages (which generate large bundles as well). This would involve creating an account interface that matches the current keplr account, and the ability to switch between implementations of that account in the new account store. Complexity may arise around handling mobile Keplr, and WalletConnect; these may need to be separate implementations of the account interface, or a dynamic Keplr interface implementation.

  • Add cherry-picked telescope client product
  • Create new account abstraction to support arbitrary number of wallet abstractions.
@jonator jonator changed the title Use telescope 🔭, refactor account Support multiple wallets Feb 16, 2023
@JoseRFelix JoseRFelix linked a pull request Mar 10, 2023 that will close this issue
17 tasks
@jonator
Copy link
Member Author

jonator commented Apr 28, 2023

Closing in favor of tracking on ClickUp

@jonator jonator closed this as completed Apr 28, 2023
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 a pull request may close this issue.

2 participants