@affinityproject/wallet-react-native-sdk
v0.13.2
Published
SDK for affinity DID solution for React Native
Downloads
74
Readme
Affinity SDK for React Native.
React Native SDK extends CORE SDK. Make sure to check the CORE SDK documentation.
How to install:
npm i --save @affinityproject/affinity-react-native-sdk
Mapping
You may need some polyfills as some of the dependencies assume running in a Node environment.
npm install --save vm-browserify stream-browserify @react-native-community/netinfo \
react-native-crypto react-native-randombytes react-native-get-random-values \
amazon-cognito-identity-js assert events
Also need to configure your bundler (webpack, parcel, metro, etc.) with aliases for the modules named ..-browserify in metro.config.js:
module.exports = {
resolver: {
resolverMainFields: ['react-native', 'browser', 'module', 'main'],
extraNodeModules: {
// Polyfills for node libraries
mobileRandomBytes: require.resolve('@affinityproject/wallet-react-native-sdk/mobileRandomBytes'),
crypto: require.resolve('react-native-crypto'),
stream: require.resolve('stream-browserify'),
vm: require.resolve('vm-browserify'),
},
},
}
Add the line below to your index.js
/ App.js
import 'react-native-get-random-values'
Initialize
Initialize from user access token
Returns SDK instance when user is logged in, and throws
COR-9 / UnprocessableEntityError
if user is logged out.
import { AffinityWallet } from '@affinityproject/wallet-browser-sdk'
const affinityWallet = await AffinityWallet.init(options)
options
- optional, if not defined default settings will be used.
Create encrypted message
const encryptedMessage = await commonNetworkMember.createEncryptedMessage(toDid, object)
toDid
- DID, string value of document to be resolved
object
- value to be encrypted by public key
Read encrypted message
const message = await commonNetworkMember.readEncryptedMessage(encryptedMessage)
encryptedMessage
- message to be decrypted
Put credential to VC vault
await wallet.saveCredentials([signedCredential])
accepts array of credentials to store in the vault.
Pull credential from VC vault
const credentials = await wallet.getCredentials(shareRequestToken)
shareRequestToken
- optional parameter (if passed - returns VC,
which match the request, if not - then returns all VCs).
Delete credential by ID
await affinityWallet.deleteCredential(credentialId)
For example:
const credentials = await affinityWallet.getCredentials() // get all credentials
const credentialId = ... // select credential which should be deleted, f.e `claimId:12345678`
await affinityWallet.deleteCredential(credentialId)