Giter Site home page Giter Site logo

karimstekelenburg / aries-mobile-agent-react-native Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openwallet-foundation/bifold-wallet

0.0 0.0 0.0 89.05 MB

Aries Mobile Agent React Native - Part of the Aries Bifold effort to provide SSI capabilities in a production ready app.

License: Apache License 2.0

Shell 0.04% JavaScript 2.33% Ruby 0.28% C 0.02% Objective-C 0.92% Java 1.10% TypeScript 94.95% Swift 0.03% Starlark 0.33%

aries-mobile-agent-react-native's Introduction

Aries Mobile Agent React Native

Aries Mobile Agent React Native is an open source Aries mobile agent app. This is a project that has been created to focus the community's efforts towards a central open source project. Various different organizations and people have expressed interest in a open source community project to help focus efforts to help prevent duplication of work between projects. Aries Bifold is also intended to help get complex or specific use-case projects started faster by cloning and having a basis of an Aries agent.

Code

This project utilizes Aries Framework Javascript (AFJ) and indy-sdk-react-native.

Community

The Bifold User Group call takes place every other week on Tuesdays, 16:00 UTC via Zoom. This meeting is for contributors to discuss issues and plan work items. Meeting agendas and recordings can be found here. Everybody is welcome to attend and contribute!

Project State

Platform

Aries Bifold currently is built on React Native 0.64.1

As of now Aries Bifold targets Android API 29.0.3, with plans to support API 30 soon.

iOS targets iOS 10.0+. Aries Bifold can only be run on physical devices as of right now.

Testing

Aries Bifold utilizes the Aries Agent Test Harness (AATH) to test for Aries Agent compatibility and interoperability.

Aries Bifold also utilizes the Aries Toolbox & aries-acapy-plugin-toolbox for issuer and verifier roles.

Install

You can watch a recording of setting up and running the mobile wallet and receiving a credential using the ACA-Py demo. Watch the video here (thanks @xtrycatchx).

Compatible Node Version

  • Node: 16.15.0
  • Npm: 8.5.5
  1. React Native Setup:
    • React Native installation instructions are documented here.
    • (iOS) Install Cocoa Pods
  2. Clone the Bifold repo and install its dependencies:
    git clone https://github.com/hyperledger/aries-mobile-agent-react-native
    cd aries-mobile-agent-react-native
    npm install
  3. (iOS) iOS specific install:
    • Install iOS Pods:
      cd app/ios
      pod install
    • In the /ios directory, open the project workspace file in Xcode. Once the project is open, navigate to the project's Signing & Capabilities tab and apply your personal Apple Developer Account or your organization's team to target AriesBifold and target AriesBifoldTests.
    • Adjust the bundle identifier if needed.

Configure

In the app directory add an .env file containing:

MEDIATOR_URL=https://public.mediator.indiciotech.io?c_i=eyJAdHlwZSI6ICJkaWQ6c292OkJ6Q2JzTlloTXJqSGlxWkRUVUFTSGc7c3BlYy9jb25uZWN0aW9ucy8xLjAvaW52aXRhdGlvbiIsICJAaWQiOiAiMDVlYzM5NDItYTEyOS00YWE3LWEzZDQtYTJmNDgwYzNjZThhIiwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwczovL3B1YmxpYy5tZWRpYXRvci5pbmRpY2lvdGVjaC5pbyIsICJyZWNpcGllbnRLZXlzIjogWyJDc2dIQVpxSktuWlRmc3h0MmRIR3JjN3U2M3ljeFlEZ25RdEZMeFhpeDIzYiJdLCAibGFiZWwiOiAiSW5kaWNpbyBQdWJsaWMgTWVkaWF0b3IifQ==
GENESIS_URL=https://raw.githubusercontent.com/Indicio-tech/indicio-network/main/genesis_files/pool_transactions_testnet_genesis

Note - To run your own mediator or use a different network, go here for advanced configuration.

Run

  • Launch the metro bundler:
    cd app
    npm run start
  • Open a second terminal and run:
    • (Android)
      cd app
      npm run android
    • (iOS)
      cd app
      npm run ios
    • (iOS) Via Xcode: Open app\ios\AriesBifold.xcworkspace Choose your physical iOS device as the destination. Click the "Play" button to Build and Run.

NOTE: Bifold does not work on iOS simulators -- use a physical device instead.

Advanced Configuration

Mediator

In order to use Aries Bifold, you must have a mediator to use with the app. Bifold is configured to use 'Implicit' mediation and requires a mediator that supports the coordinate-mediation protocol. Bifold by default utilizes the Indicio Public Mediator, which utilizes ACA-Py. For running your own ACA-Py mediator more details can be found here.

Network

Aries Bifold as of right now is tied to one ledger with the intention of adding multi-ledger support in the future. You must provide a genesis url for your chosen network, such as:

Troubleshooting

Hot Reloading

Hot reloading may not work correctly with instantiated Agent objects. Reloading (r) or reopening the app may work. Any changes made to native modules require you to re-run the compile step.

Dependency Issues, Native Module Linking Issues, or Usage Issues

If you end up changing dependencies or structures, you may need to perform the following steps:

Android

rm -rf app/node_modules
rm -rf core/node_modules
npm install

Clean the Android build:

cd app/android
./gradlew clean
cd ..

Start and clean the Metro cache:

cd app
npm run start

In your second terminal, you can now run:

cd app
npm run android

License

Apache License Version 2.0

aries-mobile-agent-react-native's People

Contributors

amanji avatar berendsliedrecht avatar bryce-mcmath avatar cvarjao avatar darrellodonnell avatar davidclawson avatar dependabot[bot] avatar garretaserra avatar jameskebert avatar jcdrouin21 avatar jleach avatar karimstekelenburg avatar lynnbendixsen avatar moscd3 avatar nbamit avatar neilsmyers avatar patstlouis avatar realabbas avatar reflectivedevelopment avatar ryanindicio avatar ryankoch13 avatar ryjones avatar sabejensen avatar swcurran avatar thetreek avatar thiagoromanos avatar timoglastra avatar wadeking98 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.