Giter VIP home page Giter VIP logo

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

View Code? Open in Web Editor NEW
135.0 19.0 130.0 91.29 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

JavaScript 2.27% Starlark 0.14% Java 0.86% Ruby 0.50% Objective-C 0.49% TypeScript 94.58% C 0.02% Swift 0.02% Shell 0.02% Kotlin 0.36% Objective-C++ 0.75%
indy

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

Bifold README.md

Summary

The Bifold Wallet is an open-source project designed to enhance the way we interact with digital identities, making the process both secure and user-friendly. It is based on React Native, which lets it run smoothly on different devices and platforms, such as iOS, and Android. It is a leading example of digital wallets, with a focus on making verifiable credentials (VCs) simple and convenient for everyone. Our mission is to create a collaborative community that enhances the way digital credentials are handled, making them accessible and straightforward for all.

Key Features and Benefits:

  • Unified Digital Identity Management: Emphasizing security and user-friendliness, Bifold excels in consolidating and managing digital identities across various standards like AnonCreds and W3C VC Data Model. This capability positions Bifold as a pivotal resource for secure and private handling of digital identities, accessible to all.

  • Seamless Multi-Platform Use: Thanks to its React Native architecture, Bifold delivers a smooth experience on any device, enabling users to manage their digital identities whether they are using a phone or a tablet. This cross-platform flexibility means that developers can create applications once and deploy them on both iOS and Android, ensuring a consistent and accessible user experience.

  • Community-Driven Development: Bifold is more than a tool; it's a community initiative aimed at fostering collaboration and sharing innovations. By bringing together diverse groups, from organizations to individuals, Bifold encourages the pooling of resources and knowledge to facilitate the broader adoption and understanding of verifiable credentials.

  • Widespread Adoption and Trust: With a growing list of users around the globe, including governmental bodies in Canada and teams in Brazil, Bifold has proven its reliability and relevance. Its international use showcases the platform's adaptability to various needs and its role in advancing digital identity management on a global scale.

  • Adaptability to Diverse Needs: Bifold's design caters to a wide range of project types and complexities, offering tailored solutions for managing digital identities. This adaptability ensures that users can streamline their processes related to verifiable credentials, improving efficiency and simplification in digital identity initiatives.

Current Status

Currently, we're updating Bifold's architecture to make it easier to maintain and customize for various use cases. Check out our design roadmap issue for more information, and we welcome your feedback.

Contributing

We warmly welcome contributions to the Bifold project! If you're interested in joining our community, please start by reading our Contributor's Guide.

Community

Joining the Bifold community on OpenWallet Foundation Discord is a breeze:

  1. Head to https://discord.gg/openwalletfoundation
  2. Click on 'Accept the invite'
  3. Dive into the various channels!

#bifold is our main discussion channel for everything Bifold wallet related. And since Bifold uses Credo (formerly Aries Framework Javascript) extensively, you might also want to join the #credo channel for deeper technical conversations. We can't wait to see you there!

Additionally, we hold a bi-weekly user group meeting. You can find the updated schedule, past agendas, and meeting recordings on this wiki page.

Please note, being part of the OpenWallet Foundation, we expect all interactions to adhere to the Antitrust Policy and Code of Conduct.

Development

To better understand the technical aspects of the Bifold project including how to set it up and run it please see the following documents:

  1. Developer's Guide

Success Stories

The organizations or jurisdictions listed below have either deployed a project based on Bifold, are currently assessing the technology, or are actively developing a solution. If you want your organization to be included in this list, please submit a Pull Request against this README.md.

  • BC Wallet The BC Wallet is a digital wallet app developed by the Government of British Columbia.

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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

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

unable to get the mediator work on docker

i'm getting an error message when i'm trying to run the below command on docker playground

command

docker-compose -f docker/docker-compose-mediators.yml -f docker/docker-compose-mediators-ngrok.yml up --build

error message

ERROR: The Compose file './docker/docker-compose-mediators.yml' is invalid because:
Unsupported config option for services.mediator: 'platform'

Any experience managing proof requests with the verifier agent?

Hello,

After receiving credentials from the issuer agent, I have established a connection with the verifier agent, and am now trying to send a proof request. After the connection is established my backend sends a present-proof id message to the established connection. And after this I am supposed to 'present the proof' from the mobile side. I was just wondering if this area has already been covered in the app, or if its something that i will have to implement myself! Thanks in advance.

ERR when invitation

1、run Bob/Ailice agent from "aries-acapy-plugin-toolbox " project,it seems nothing wrong :

D9C4A6AC-046E-4b87-AD92-64EFD0E7AB8E

2、set the “event.data” param in the QRCodeScanner interface。

E975CF7F-6C18-4d1b-A308-DCA965B0EE9C

3、run the mobile agent ,error occured :
74BD40D3-768F-42ea-AADA-6B46617A2304

So what's the problem,and give some suggestion。
Thank you!

Demo website to use this app for credentials storing and proof verifications?

I managed to run build and run the app in IOS with the following:

Now, I want to get credentials stored in my wallet app and later to present this to any party.

Are there public demo websites/endpoints that I can use to demo credentials storing and proof verification using this app?

or are there steps where I can run my Issuer and Verifier demo website?

Thanks

Refactor alert notifications to work better with long running tasks

May VC related workflows are asynchronous. As such, an operation like making an offer, for example, can take some time causing the UI to time out and the workflow to get lost. This makes the UI/UX a little unfriendly as one looses track of where one is in the process, what is being waited on, and if there are any actions the user should preform.

As part of this issue I propose to rework alert style notifications (pending, processing, etc) to better be asynchronous and to use something like a toast for displaying them.

Error: Connection record is not ready to be used

I am trying to get Bifold to accept an invitation sent by a DTS issuer running on my local machine
I cannot get pass this error after scanning the barcode of the credential invitation
[javascript] Possible Unhandled Promise Rejection (id: 0):
Error: Connection record is not ready to be used. Expected responded or complete, found invalid state requested
Error: Connection record is not ready to be used. Expected responded or complete, found invalid state requested

Steps:

  • Run bifold
  • Connected to mediator success
  • Run dts local issuer
    https://github.com/bcgov/dts-vc-issuer-service
  • Generate vaccination credential
  • Scan credential with bifold
  • The wallet switches to 'connecting'
  • Nothing happens from there

Just to make things easier
this is the last message received from issuer right before the exception happens

{
"@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/issue-credential/1.0/offer-credential",
"@id": "cfb0d143-0705-41ec-8d1d-74ae3945f934",
"thread": {},
"offers
attach": [
{
"@id": "libindy-cred-offer-0",
"mime-type": "application/json",
"data": {
"base64": "[Base 64 data]"
}
}
],
"credential_preview": {
"@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/issue-credential/1.0/credential-preview",
"attributes": [
{
"name": "name",
"value": "Vaccination Certificate"
},
{
"name": "description",
"value": "Vaccination Certificate"
},
{
"name": "expirationDate",
"value": "2022-06-30T04:46:57.6417668+00:00"
},
{
"name": "credential_type",
"value": "VaccinationEvent"
},
{
"name": "countryOfVaccination",
"value": "CA"
},
{
"name": "recipient_type",
"value": "VaccineRecipient"
},
{
"name": "recipient_fullName",
"value": "SCHITT, Roland Ethan"
},
{
"name": "recipient_birthDate",
"value": "01/14/1952"
},
{
"name": "vaccine_type",
"value": "Vaccine"
},
{
"name": "vaccine_disease",
"value": "Influenza"
},
{
"name": "vaccine_medicinalProductName",
"value": "Fluzone High-Dose"
},
{
"name": "vaccine_marketingAuthorizationHolder",
"value": "SANOFI PASTEUR LIMITED"
},
{
"name": "vaccine_dateOfVaccination",
"value": "09/22/2020"
}
]
},
"comment": "create automated credential exchange"
}

I attached the log from both the issuer and the bifold terminal

agent_invitee.txt
issuer_log.txt

I also can't seem to find where I should add breakpoints in the code to dive deep in the process
It seems like the last event I can get to is

components>GRCodeScanner>index.js

`const connectionRecord = await agentContext.agent.connections.receiveInvitation(decodedInvitation, {
autoAcceptConnection: true,
})

//that's the last point I could reach
console.log('New Connection Record', connectionRecord)`

I don't seem to be able to reach with the debugger breakpoints to this line though

Workflows>index.js
const handleCredentialStateChange = async (event) => { console.info(Credentials State Change, new state: "${event.credentialRecord.state}", event) ..... }

Which I believe runs if there was to be a successful connection attempt

Any more thoughts?

After accepting credential offer, blank screen displayed

Occurs when there is a notification present on the Home Screen to accept/reject a credential offer. Upon accepting the offer, a modal is displayed indicating success/failure of acceptance. When the modal is dismissed, a blank screen is displayed. No errors are logged to the console.

"aries-framework-javascript-v1.0.0.tgz seems to be corrupted" when running "npm install"

Hi, when I tried to run "npm install" () according to "Running the App" for aries-mobile-agent-reacy-native on MacOS BigSur, I got the following error:

npm WARN tarball tarball data for aries-framework-javascript@file:/Users/myself/aries-mobile-agent-react-native/aries-framework-javascript-v1.0.0.tgz (sha512-yu8/bKnMmXzZ6/PGNWGrWfByWXmIxsfYE3Tn+RmW2i5fS2LD7qX4hyklGv5WVJGAGzxekXothOCgIK6eHCeHvg==) seems to be corrupted. Trying again. npm WARN tarball tarball data for aries-framework-javascript@file:/Users/myself/aries-mobile-agent-react-native/aries-framework-javascript-v1.0.0.tgz (sha512-yu8/bKnMmXzZ6/PGNWGrWfByWXmIxsfYE3Tn+RmW2i5fS2LD7qX4hyklGv5WVJGAGzxekXothOCgIK6eHCeHvg==) seems to be corrupted. Trying again. npm ERR! code EINTEGRITY npm ERR! sha512-yu8/bKnMmXzZ6/PGNWGrWfByWXmIxsfYE3Tn+RmW2i5fS2LD7qX4hyklGv5WVJGAGzxekXothOCgIK6eHCeHvg== integrity checksum failed when using sha512: wanted sha512-yu8/bKnMmXzZ6/PGNWGrWfByWXmIxsfYE3Tn+RmW2i5fS2LD7qX4hyklGv5WVJGAGzxekXothOCgIK6eHCeHvg== but got sha512-85/KPHodPLGFhDGbWZ9rEHl+VhsKXAaxT1JXNrOHdTp1N6cpyLT0RvItzg9HuhY2sgkt+kiucFF151gD1kNhFg==. (215984 bytes)

I've reinstalled npm using brew. Here is the version information:
npm: 7.7.6
node: 15.14.0
watchman: 4.9.0
pod: 1.10.1
MacOS: 11.2.3

Is there anything that I'm missing? Thanks in advance.

Cheers,
Jason

Support for AIP 2.0

is support for the new Aries Interop Profile 2.0 planned for this project?

Add support for revocation notification

As a developer I want to be able to identify when a credential has been revoked and be able to display a notification to the user or a warning prior to creating a presentation proof.

Instructions for MEDIATOR for .env outdated

I might be wrong, but is the README outdated ? - the value of the MEDIATOR should be the invitation url

MEDIATOR_URL=https://somewhere.mediatorx.io?c_i=ewogICJAdHlwZSI6ICJodHRwczovL2RpZGNvbW0ub3JnL2Nvbm5lY3Rpb25zLzEuMC9pbnZpdGF0aW9uIiwKICAiQGlkIjogIjE1NTZmMzZjLTRjZmUtNGQ1OS05YTliLTNmNmQ0MWFiZmVkMCIsCiAgImxhYmVsIjogIkF3ZXNvbWUuTWVkaWF0b3IiLAogICJyZWNpcGllbnRLZXlzIjogWwogICAgIjltdmVoZ3BzckNrNWcxdWlWNDNVQUhOSkVjemdCZEVMVHdEZXk2U3ZXRkgyIgogIF0sCiAgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwczovL3NvbWV3aGVyZS5tZWRpYXRvcnguaW8iCn0=
GENESIS_URL=http://......./genesis

Provisioning error

I received the following error while provisioning.

DEBUG  DEBUG: Provision record with id 'UNIQUE_PROVISIONING_ID' not found. {
  "indyError": "WalletItemNotFound"
}
 INFO  INFO: No provision record found.

Is there a publicly available mediatorUrl i can use?

Hello,

Is there a publicly available mediatorUrl i can use to test the app? The one i am hosting locally doesnt seem to be working as the connection with the mediator stays on requested.

Just as a background, I am demoing this app with the aca-py demo faber agent to create a connection and issue credentials, I am able to establish a connection with the mediator and faber agent, but when i issue credentials from the faber agent and go to the credentials page on the app i get an Mediation error.

Mediation Error: 503 ngrok gateway error
The server returned an invalid or incomplete HTTP response.

Ignace Loomans

No provision record found

B954E8AB-CFD7-41f4-957B-67CA111D9C93

when run the android app, throw an indyError, walletItemNotFound。

so how to solve, thanks。

Add Componentization / State Management

As a developer I want the capability to use aries-mobile-agent-react-native in an existing project and to be able to receive new updates and push additions back. We need to add componentization or state management to enable this functionality.

The intent is to create a set of core components or state to allow a developer to use default UI components or have the necessary tools to display and interact with the framework and data.

App throwing navigations errors

After the latest updates the application is throwing navigation errors when a notification is received:

Couldn't find a navigation object. Is your component inside NavigationContainer?

Since the NavigationContainer wraps <App /> in index.js its a root level component and definitely exists. Adding an additional one causes additional errors.

Add support for multiple languages (l18n)

This requested project improvement is to add support for multiple languages (l18n). When people can interact with a VC in a language they easily understand it will help erase barriers to adoption. To make this happen I've implemented a the basic mechanics for internationalization (i8n) using two basic npm packages. One to help select the prefers language and another to manage translations. The implementation is not complete as all strings are not moved to the translations file but is good enough to start the conversation.

When done, I would expect the application to determine the current language and, if a matching translation is available, use it throughout the application. The base implementation will remain en and others will be added pending community contributions.

Got "Message is undeliverable to connection" error in iphone

Hi,

When scanning the Trinsic invitation qrcode in iphone, I got the Message is undeliverable to connection.

I have already added the mediator3.test.indiciotech.io and api.portal.streetcred.id in exception domains, anything else is missing? Thanks.

 DEBUG  DEBUG: Sending outbound message to service with id 233aa91a-e8ee-4bcf-941c-0449349d5188-invitation failed with the following error: {
  "message": "Error packing message",
  "error": {}
}

 ERROR  ERROR: Message is undeliverable to connection 17a5ee4c-c88b-4314-b5c2-170f6cc0a0af (indi-test) {
  "message": {
    "@type": "https://didcomm.org/connections/1.0/request",
    "@id": "5c3471e3-9616-4ba5-b871-a706d73527d3",
    "label": "Topcoder Wallet",
    "connection": {
      "DID": "VJwzoQG9J4vgR9n4Wiz9Cb",
      "DIDDoc": {
        "@context": "https://w3id.org/did/v1",
        "publicKey": [
          {
            "id": "VJwzoQG9J4vgR9n4Wiz9Cb#1",
            "controller": "VJwzoQG9J4vgR9n4Wiz9Cb",
            "type": "Ed25519VerificationKey2018",
            "publicKeyBase58": "GRvDmCaNYSzppHTaCTEvi6F6V6PRur8vGw6iJa7hzS63"
          }
        ],
        "service": [
          {
            "id": "VJwzoQG9J4vgR9n4Wiz9Cb#IndyAgentService",
            "serviceEndpoint": "http://mediator3.test.indiciotech.io:3000",
            "type": "IndyAgent",
            "priority": 0,
            "recipientKeys": [
              "GRvDmCaNYSzppHTaCTEvi6F6V6PRur8vGw6iJa7hzS63"
            ],
            "routingKeys": [
              "DGYY31KpABLT4ydNHw11rRneEL8a41X4s6xqre2cAEbn"
            ]
          }
        ],
        "authentication": [
          {
            "publicKey": "VJwzoQG9J4vgR9n4Wiz9Cb#1",
            "type": "Ed25519SignatureAuthentication2018"
          }
        ],
        "id": "VJwzoQG9J4vgR9n4Wiz9Cb"
      }
    }
  },
  "connection": {
    "_tags": {
      "state": "invited",
      "invitationKey": "A4uAkGcKNaQv5wgmtrgNttv5FBumk6z9dKNLnx2B7Aq7",
      "role": "invitee",
      "verkey": "GRvDmCaNYSzppHTaCTEvi6F6V6PRur8vGw6iJa7hzS63"
    },
    "id": "17a5ee4c-c88b-4314-b5c2-170f6cc0a0af",
    "createdAt": "2021-11-04T02:13:42.178Z",
    "did": "VJwzoQG9J4vgR9n4Wiz9Cb",
    "didDoc": {
      "@context": "https://w3id.org/did/v1",
      "publicKey": [
        {
          "id": "VJwzoQG9J4vgR9n4Wiz9Cb#1",
          "controller": "VJwzoQG9J4vgR9n4Wiz9Cb",
          "type": "Ed25519VerificationKey2018",
          "publicKeyBase58": "GRvDmCaNYSzppHTaCTEvi6F6V6PRur8vGw6iJa7hzS63"
        }
      ],
      "service": [
        {
          "id": "VJwzoQG9J4vgR9n4Wiz9Cb#IndyAgentService",
          "serviceEndpoint": "http://mediator3.test.indiciotech.io:3000",
          "type": "IndyAgent",
          "priority": 0,
          "recipientKeys": [
            "GRvDmCaNYSzppHTaCTEvi6F6V6PRur8vGw6iJa7hzS63"
          ],
          "routingKeys": [
            "DGYY31KpABLT4ydNHw11rRneEL8a41X4s6xqre2cAEbn"
          ]
        }
      ],
      "authentication": [
        {
          "publicKey": "VJwzoQG9J4vgR9n4Wiz9Cb#1",
          "type": "Ed25519SignatureAuthentication2018"
        }
      ],
      "id": "VJwzoQG9J4vgR9n4Wiz9Cb"
    },
    "verkey": "GRvDmCaNYSzppHTaCTEvi6F6V6PRur8vGw6iJa7hzS63",
    "theirLabel": "indi-test",
    "state": "requested",
    "role": "invitee",
    "invitation": {
      "@type": "https://didcomm.org/connections/1.0/invitation",
      "label": "indi-test",
      "imageUrl": "https://trinsicapiassets.azureedge.net/files/e240f026-7673-48a3-a86b-08c3e4390eab_6f012535-89c8-4052-b678-279a1a8fa7a0.png",
      "serviceEndpoint": "https://api.portal.streetcred.id/agent/f1hh3tE1gCGT3tgoXBfX6W3yQQbrzVoJ",
      "routingKeys": [
        "F2HitoRST9NDdft8WCFtRAyPBBHhtQU87WyxUuJQwfCK"
      ],
      "recipientKeys": [
        "A4uAkGcKNaQv5wgmtrgNttv5FBumk6z9dKNLnx2B7Aq7"
      ],
      "@id": "ce2f273f-e853-4f1e-98f2-9d97abf99f6b"
    }
  }
}
 WARN  Possible Unhandled Promise Rejection (id: 0):
[AriesFrameworkError: Message is undeliverable to connection 17a5ee4c-c88b-4314-b5c2-170f6cc0a0af (indi-test)]

Add mediation interoperability with ACA-Py

As a developer, I would like to as a recipient utilize ACA-Py as a mediator. The additions here are to allow environment configuration of an ACA-Py mediator. This requires updates in Aries Framework Javascript, being tracked here.

Add background message processing

As a developer, I want to be able to fetch messages queued with a mediator while the app is in a background state. Ideally message processing can occur to determine if a notification is relevant to show to an end user.

There needs to be investigation into the allowed processing time in iOS (and Android) to determine how viable this is.

Add support for displaying who issued a credential

This proposal is to first add support to AFJ to allow looking up the alias of the issuer in the ledger then pulling trough the functionality so that we can display that in the applications credentials. When credentials don't contain any information on who issued a credential the Alias can be used as a convention.

Feedback and comments welcome.

Update to latest Indy SDK

In AFJ the indy sdk reference (in package.json) is:

"indy-sdk": "^1.16.0-dev-1636",

Bifold looks like it's still on 1.14.0, can we update to the latest Indy SDK?

Demo, error and aca-py

Hello, first I would like to know if there is any document / video of the project execution, demonstrating how to execute, establish a connection and receive credentials using the test networks indicated in the readme (Indicio TestNet / Sovrin StagingNet)?

Second, I am trying to execute the project, however I am having problems in responding to the AFJ mediator, as in the image below.
error

The ngrok address shown is correct in relation to that displayed by the AFJ when I run the mediator.

Thirdly, is it possible to carry out the project with aca-py as the issuing agent? before the error pointed out above, I couldn't connect to aca-py!

Finally, congratulations on the project!

Proposed improvements to QRScanner

Thinking of a few minor tweaks to help improve the QR Scanner:

  1. Would it be beneficial to have a toggle-able torch light?
  2. Should we provide additional user feedback when a QR code is identified via haptic feedback?
  3. Can we remove the timeout to re-activate the camera (I might be misunderstanding the use case for the timeout)?
  4. Add connection/credential offer hints on camera screen? <- Since camera is used for both Credential Offer and Proof Requests wording cannot be static

Propose adding the requirement for semicolon in code

This requested project improvement is to add back eslint/prettier rules to require the use of semicolons.

While Automatic Semicolon Insertion (ASI) is great and pretty reliable I find its more common in ECMAscript based languages to add semicolon in rather than rely on the implementations in the JS interpreter (which are quite day in most implementations). Also, I believe they are require by the ECMAscript standard but as a convenience they are permitted to be omitted so longs as ASI is implemented in the interpreter.

How could I get offered credentials?

Im finding the listener for the state changing in credentials to be a bit unreliable at the moment. I would like to add a refresh button to find new offered credentials. Does anyone by chance know how I could fetch all offered credentials for my agent?

So instead of using this
agentContext.agent.credentials.events.removeAllListeners(CredentialEventType.StateChanged) agentContext.agent.credentials.events.on(CredentialEventType.StateChanged, handleCredentialStateChange)

Have a button that onPress I can fetch the offered credentials for my existing connections.

Thanks allot!

Got pool time out

Already followed the instruction.
Mediator and genesis are already set.
But still received the following error:
Object { "indyBacktrace": "", "indyCode": 307, "indyMessage": "Error: Pool timeout Caused by: Pool timeout ", "indyName": "PoolLedgerTimeout", "message": "PoolLedgerTimeout", "name": "IndyError", }

Am I missing something?

ERROR when npm run ios on MacOS BigSur

Hi, when I tried to run "npm run ios" on MacOS BigSur, I got the following error:

error: No signing certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID "8GUD26WFN3" with a private key was found. (in target 'AriesBifoldTests' from project 'AriesBifold')
error: Signing for "AriesBifold" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'AriesBifold' from project 'AriesBifold')

** BUILD FAILED **

Here is the version information:
npm: 7.23.0
node: 12.16.2
pod: 1.11.2
MacOS: 11.5.2

Thanks in advance.

Yoshiyuki Karezaki

The VirtualizedLists component should not be embedded in a SafeAreaScrollView

As per the error message the app is throwing a VirtualizedLists should not be embedded in a SafeAreaScrollView.

VirtualizedLists should never be nested inside plain ScrollViews with the same orientation
because it can break windowing and other functionality - use another
VirtualizedList-backed container instead.

rename to aries-mobile-agent-react-native

This is really nit-picky but I'd like to propose to change the name from aries-mobileagent-react-native to aries-mobile-agent-react-native. It looks a lot cleaner IMO. This is also what we did for our mobile agent.

It are two separate words and I'm not sure why all other aries projects do it.

If people disagree I'm fine with keeping it as is, I just wanted to have made my case.

Add multi-ledger support

AFJ has been updated with multi-ledger support. Bifold AFJ dependencies should be updated and Agent initialization should include multiple ledger configurations.

Invitation from aca-py agent with aca-py mediator between

Hey.

I'm trying to make a connection with another agent with a mediator between.
I can connect from react native app (using code from this repo) to aca-py mediator, but had to move the invitation to another server (/invitation path does not exist in aca-py admin). I don't know if it's good, but it works.

The issue is when I want to connect with another aca-py agent with mediator between. When I try to receive invitation on mobile I'm getting message in react native app:

New Connection Record
{
    "_didDoc":
    {
        "@context": "https://w3id.org/did/v1",
        "authentication":
        [
            [
                undefined
            ]
        ],
        "id": "Cv5XNG6AW7bQNSz49M3a8h",
        "publicKey":
        [
            [
                undefined
            ]
        ],
        "service":
        [
            [
                undefined
            ]
        ]
    },
    "_invitation":
    {
        "@id": "859fec9e-ad20-4fe1-bc5b-2585e52636cc",
        "@type": "https://didcomm.org/connections/1.0/invitation",
        "label": "label",
        "recipientKeys":
        [
            "G9JytRnX8tx6uSetjPyYuSkwwVrDFm23LB8GGK7ifB4k"
        ],
        "routingKeys":
        [
            "8zNjW3SZt9Tc94dmHjpGdm5qGL8EFQNPMXVCHqJR88ff"
        ],
        "serviceEndpoint": "http://x:3006/"
    },
    "_theirDidDoc": undefined,
    "alias": undefined,
    "autoAcceptConnection": true,
    "createdAt": 1618056938615,
    "did": "Cv5XNG6AW7bQNSz49M3a8h",
    "endpoint": undefined,
    "id": "d12851bc-f05c-46af-8c7a-721023b1a960",
    "role": "INVITEE",
    "state": "requested",
    "tags":
    {
        "invitationKey": "G9JytRnX8tx6uSetjPyYuSkwwVrDFm23LB8GGK7ifB4k",
        "verkey": "7VfLb6mWcLz3apc3Z1dQxcytAghm4E4c2iKppVYdLXB3"
    },
    "theirDid": undefined,
    "type": "ConnectionRecord",
    "verkey": "7VfLb6mWcLz3apc3Z1dQxcytAghm4E4c2iKppVYdLXB3"
}

But I'm getting an error on edge agent (mediator looks good - it shows messages regarding forwarded messages):

2021-04-10 07:17:57,143 aries_cloudagent.core.conductor WARNING Cannot queue message for delivery, no supported transport

Invitation created by edge agent looks like this:

{
  "connection_id": "1281a500-aa9b-49ba-b8b8-7dba030772ba",
  "invitation": {
    "@type": "https://didcomm.org/connections/1.0/invitation",
    "@id": "16be3a5c-4cc7-4c2f-a182-6defe6665930",
    "recipientKeys": [
      "4hxjdd6u3iHyi9WnPfesh9nDvwAKmGZiskw1NiriWMNr"
    ],
    "label": "Edge",
    "serviceEndpoint": "http://x:3006/",
    "routingKeys": [
      "8zNjW3SZt9Tc94dmHjpGdm5qGL8EFQNPMXVCHqJR88ff"
    ]
  },
  "invitation_url": "http://x:3006/?c_i=invitation base 64"
}

I copy invitation url, then paste it to qr generator and scan it.

Mediator config:

aca-py start --wallet-type indy \
--seed 00000000000000000000000001Mediat \
--wallet-key mediatorkey \
--wallet-name mediator \
--label "Mediator" \
--open-mediation \
--genesis-url http://genesishost/genesis \
--inbound-transport http 0.0.0.0 3006 \
--inbound-transport ws 0.0.0.0 3008 \
--outbound-transport http \
--outbound-transport ws \
--admin 0.0.0.0 3007 \
--admin-insecure-mode --auto-accept-invites --auto-accept-requests --auto-ping-connection \
--log-level info \
-e http://x:3006/ \
--emit-new-didcomm-prefix 

Edge agent config:

aca-py start --wallet-type indy \
--seed 00000000000000000000000001Issuer \
--wallet-key issuerkey \
--wallet-name issuer \
--label "Edge" \
--inbound-transport http 0.0.0.0 3001 \
--inbound-transport ws 0.0.0.0 3003 \
--outbound-transport http \
--outbound-transport ws \
-e http://x:3001/ \
--admin 0.0.0.0 3002 \
--admin-insecure-mode --auto-accept-invites --auto-accept-requests --auto-ping-connection \
--log-level debug \
--genesis-url http://genesishost/genesis \
--emit-new-didcomm-prefix 

Mobile config:

      const agentConfig = new AgentConfig({
        mediatorUrl: Config.MEDIATOR_URL,
        label: 'Holder',
        walletConfig: {id: 'holder-wallet'},
        walletCredentials: {key: 'holderkey'},
        autoAcceptConnections: true,
        genesisPath,
        logger: new ConsoleLogger(LogLevel.debug),
        indy,
      })

Has anyone experienced an issue like this?

Allow the user to select the language the application presents

Based on feedback from PR #109 it would be worthwhile allowing the user to override the automatic language selection. A few considerations are how to make it easy to do if the application is set in the wrong language. If you can't read the screens it will be difficult to navigate to where one needs to make the change.

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.