Coder Social home page Coder Social logo

openwallet-foundation / bifold-wallet Goto Github PK

View Code? Open in Web Editor NEW
133.0 133.0 130.0 91.22 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

bifold-wallet's People

Contributors

agueye84 avatar amanji avatar artemkaaas avatar berendsliedrecht avatar bryce-mcmath avatar carolinelca avatar cvarjao avatar davidclawson avatar dependabot[bot] avatar fc-santos avatar jameskebert avatar jamshale avatar jcdrouin21 avatar jleach avatar jp0707 avatar lynnbendixsen avatar makrandshinde avatar moscd3 avatar nbamit avatar neilsmyers avatar patstlouis avatar reflectivedevelopment avatar ryanindicio avatar ryankoch13 avatar ryjones avatar sabejensen avatar sophiasales avatar thiagoromanos avatar timoglastra avatar wadeking98 avatar

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

bifold-wallet's Issues

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.

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?

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

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

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

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?

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.

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?

"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

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.

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.

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!

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.

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

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.

No provision record found

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

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

so how to solve, thanks。

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?

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!

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.

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.

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.

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'

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!

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.

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

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.

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)]

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.

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.

Support for AIP 2.0

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

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.

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.

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.

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.