Skip to content

Feature: Refactor integrations #555

@mmv08

Description

@mmv08

As a user, I want to know what wallet provider I can use to use the dApp and also I want to be able to switch between them

Main points:

  • User should be able to change his provider easily
  • User should be able to see list of supported providers
  • Adding a new integration should be easy
  • Interface should be provider-independent (currently we have modals like install metamask, unlock metamask, etc)
  • For a logged in user clicking provider icon would show a list of supported providers
  • User should been able to log out since they may want to use a different provider

Acceptance Criteria:

  • Adding a new provider should require only adding a folder with integration code to src/integrations/, then the integration should be ready to use
  • InstallMetamask, UnlockMetamask modals aren't tied to Metamask anymore, they should show a provider info which is currently the user tries to use
  • For a logged in user clicking provider icon would show a list of supported providers.
  • User should been able to log out since they may want to use a different provider

Technical perspective:

  • Providers shouldn’t have available and loaded anymore, instead a property named status, that can indicate various different cases that can occour with a wallet: REGISTERED (provider is known to the interface), AVAILABLE (is unlocked and can be used), LOCKED (metamask for example), ERROR (provider failure, this happens all the time with metamask, where errors occour during startup, the user needs to know they need to refresh or update metamask)
  • Priority to be removed
  • Move the initGnosis flow to a separate function to determine if we need to make the user choose or if we should just use the best one available

Screenshots/Mockups

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1-SevereHigh Priority💡Type: FeatureIssue that corresponds to a new feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions