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

ThreeID Connect for React Native #400

Open
Tracked by #397
youngkidwarrior opened this issue Oct 25, 2021 · 0 comments
Open
Tracked by #397

ThreeID Connect for React Native #400

youngkidwarrior opened this issue Oct 25, 2021 · 0 comments
Assignees

Comments

@youngkidwarrior
Copy link
Member

youngkidwarrior commented Oct 25, 2021

User Story

As a ...

Existing or new user

I want ...

To link my Self.ID to Shenanigan's app

So that ...

I can save my user data on the ceramic network and link it with my Ethereum address

Comments and Outliers

3ID connect relies on an ethereum provider instance to be passed into its EthereumAuthProvider object.

import { EthereumAuthProvider, ThreeIdConnect } from '@3id/connect'

// ethProvider is an Ethereum provider and addresses an array of strings
const authProvider = new EthereumAuthProvider(ethProvider, addresses[0])

const threeIdConnect = new ThreeIdConnect()
await threeIdConnect.connect(authProvider)

WalletConnect doesn't provide an ethereum provider. So, our app only has access to an ethereum provider when using the ethers Burner wallet.

We will need to fork the ceramic blockchain-utils-linking repo and implement a compatible workflow for the walletconnect Client

3ID Connect Repo: https://github.com/ceramicstudio/3id-connect

Authenticate function for EthereumAuthProvider: https://github.com/ceramicnetwork/js-ceramic/blob/809cfc7a7da5780f8ba9eabe1fd447a33896d8cd/packages/blockchain-utils-linking/src/ethereum.ts#L152

WalletConnect Client API: https://docs.walletconnect.com/1.0/quick-start/dapps/client

We might be able to expand the authenticate function to function correctly with the WalletConnect 1.0 client

Acceptance Criteria

Scenario:

Given I am a new user:

When I open the app
When I choose to connect a wallet (Burner or Existing)
Then I should create an instance of an ethereum provider (burner) or WalletConnect Client (existing)
And I should utilize the ThreeId instance to connect to the Self.ID system

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

No branches or pull requests

1 participant