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: {
extraNodeModules: {
// Polyfills for node libraries
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.
const networkMember = await CommonNetworkMember.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).