Skip to content

Reclaim Protocol's InApp React Native SDK for ZK proof generations for requests with an in-app experience of web verification

License

Notifications You must be signed in to change notification settings

reclaimprotocol/reclaim-inapp-reactnative-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

78 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Reclaim InApp React Native SDK

@reclaimprotocol/inapp-rn-sdk

Reclaim React Native SDK Documentation NPM Version

This SDK allows you to integrate Reclaim's in-app verification process into your React Native application.

Refer Reclaim Protocol's official documentation for React Native SDK

Prerequisites

Example

Installation

Choose the appropriate installation guide based on your project setup:

For React Native projects without Expo: πŸ“– Installation Guide for React Native (No Framework)

For React Native Expo projects: πŸ“– Installation Guide for React Native Expo

Usage

To use Reclaim InApp Sdk in your project, follow these steps:

  1. Import the @reclaimprotocol/inapp-rn-sdk package in your project file.
import { ReclaimVerification } from '@reclaimprotocol/inapp-rn-sdk';
  1. Initialize the ReclaimVerification class to create an instance.
const reclaimVerification = new ReclaimVerification();
  1. Start the verification flow by providing the app id, secret and provider id.
const verificationResult = await reclaimVerification.startVerification({
    appId: config.REACT_APP_RECLAIM_APP_ID ?? '',
    secret: config.REACT_APP_RECLAIM_APP_SECRET ?? '',
    providerId: providerId,
});

The returned result is a [ReclaimVerification.Response] object. This object contains a response that has proofs, exception, and the sessionId if the verification is successful.

Exception Handling

If the verification ends with an exception, the exception is thrown as a [ReclaimVerification.ReclaimVerificationException] object.

Following is an example of how to handle the exception using [error.type]:

try {
  // ... start verification
} catch (error) {
  if (error instanceof ReclaimVerification.ReclaimVerificationException) {
    switch (error.type) {
      case ReclaimVerification.ExceptionType.Cancelled:
        Snackbar.show({
          text: 'Verification cancelled',
          duration: Snackbar.LENGTH_LONG,
        });
        break;
      case ReclaimVerification.ExceptionType.Dismissed:
        Snackbar.show({
          text: 'Verification dismissed',
          duration: Snackbar.LENGTH_LONG,
        });
        break;
      case ReclaimVerification.ExceptionType.SessionExpired:
        Snackbar.show({
          text: 'Verification session expired',
          duration: Snackbar.LENGTH_LONG,
        });
        break;
      case ReclaimVerification.ExceptionType.Failed:
      default:
        Snackbar.show({
          text: 'Verification failed',
          duration: Snackbar.LENGTH_LONG,
        });
    }
  } else {
    Snackbar.show({
      text: error instanceof Error ? error.message : 'An unknown verification error occurred',
      duration: Snackbar.LENGTH_LONG,
    });
  }
}

This error also contains sessionId, reason, and innerError that can be used to get more details about the occurred error.

error.sessionId
error.reason
error.innerError

Troubleshooting

iOS build issues

Incase you get errors which say CocoaPods could not find compatible versions for pod "ReclaimInAppSdk", run the following in your project's ios/ directory:

bundle exec pod update ReclaimInAppSdk
# or
pod update ReclaimInAppSdk

Build failures for iOS in 0.7.x

  • An accidental breaking change may cause 0.7.0, 0.7.1, 0.7.2 to fail with build failures for Android and iOS. Update 0.7.3 fixes this issue.

Migration

  • Migration steps for 0.10.0
  • Migration steps for 0.9.2
  • Migration steps for 0.9.1
  • Migration steps for 0.9.0
  • Migration steps for 0.8.3
  • Migration steps for 0.7.3
  • Migration steps for 0.6.0
  • Migration steps for 0.3.1
  • Migration steps for 0.3.0
  • Migration steps for 0.2.1

Advanced Usage

Overriding SDK Config

// Advanced Usage: Use ReclaimVerification.setOverrides for overriding sdk
reclaimVerification.setOverrides({
  appInfo: {
    appName: "Overriden Example",
    appImageUrl: "https://placehold.co/400x400/png"
  }
  // .. other overrides
})

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

About

Reclaim Protocol's InApp React Native SDK for ZK proof generations for requests with an in-app experience of web verification

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •