Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add problem report protocol #560

Merged
merged 9 commits into from
Dec 13, 2021

Conversation

nbAmit
Copy link
Contributor

@nbAmit nbAmit commented Dec 2, 2021

Summary of Changes

Implemented the problem report RFC-0035

Problem Report RFC effective for reporting of errors and warnings to other agents. Once this PR is merged agent will be able to report problems occurred in Connection, Issue Credential & Present Proof

Related Issue

#58

Signed-off-by: Amit Padmani <amit@northernblock.io>
Signed-off-by: Amit Padmani <amit@northernblock.io>
…script into feature/problem-report

Signed-off-by: Amit Padmani <amit@northernblock.io>
@nbAmit nbAmit requested a review from a team as a code owner December 2, 2021 13:43
@TimoGlastra TimoGlastra changed the title Feature/problem report feat: add problem report protocol Dec 2, 2021
@codecov-commenter
Copy link

codecov-commenter commented Dec 2, 2021

Codecov Report

Merging #560 (deff98f) into main (29baae7) will decrease coverage by 0.32%.
The diff coverage is 71.48%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #560      +/-   ##
==========================================
- Coverage   86.15%   85.83%   -0.33%     
==========================================
  Files         267      286      +19     
  Lines        5845     6063     +218     
  Branches      876      889      +13     
==========================================
+ Hits         5036     5204     +168     
- Misses        806      856      +50     
  Partials        3        3              
Impacted Files Coverage Δ
...s/credentials/handlers/RequestCredentialHandler.ts 96.00% <ø> (ø)
packages/core/src/types.ts 100.00% <ø> (ø)
packages/core/src/agent/Dispatcher.ts 84.90% <12.50%> (-6.77%) ⬇️
.../modules/connections/services/ConnectionService.ts 90.77% <14.28%> (-5.10%) ⬇️
.../core/src/modules/credentials/CredentialsModule.ts 82.45% <23.07%> (-4.89%) ⬇️
packages/core/src/modules/proofs/ProofsModule.ts 80.55% <23.07%> (-5.71%) ⬇️
...es/proofs/errors/PresentationProblemReportError.ts 50.00% <50.00%> (ø)
packages/core/src/agent/MessageReceiver.ts 81.25% <53.84%> (-7.94%) ⬇️
...s/core/src/modules/proofs/services/ProofService.ts 86.91% <61.53%> (+0.36%) ⬆️
.../modules/credentials/services/CredentialService.ts 95.96% <64.70%> (+0.15%) ⬆️
... and 32 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 29baae7...deff98f. Read the comment docs.

Copy link
Contributor

@TimoGlastra TimoGlastra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @nbAmit this is really great!

I left some comments, but the main overarching points are:

  • Try to avoid non-null assertions, as it bypasses the typescript checks
  • If we try include the problem report message also in the error for connection/credential/proofs we can handle it generically in the dispatcher instead of the separate handler classes

Also I have some questions:

  • Do you think we need to expose this as a seperate module / do we need to expose this on the issue / proofs / connections modules (like aca-py)?
  • Have you tested this with connectionless?
  • Maybe it would be good to also add some e2e tests using problem report messages

Comment on lines 98 to 110
try {
await MessageValidator.validate(message)
} catch (error) {
this.logger.error(`Error validating message ${unpackedMessage.message['@type']}`, {
errors: error,
message: message.toJSON(),
})
this.sendProblemReportMessage(
`Error validating message ${unpackedMessage.message['@type']}`,
connection!,
unpackedMessage
)
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can extract this to a separate method (like transformMessage) so we don't have to nest try/catch statements

errors: error,
message: message.toJSON(),
})
this.sendProblemReportMessage(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
this.sendProblemReportMessage(
await this.sendProblemReportMessage(

await this.dispatcher.dispatch(messageContext)
await this.dispatcher.dispatch(messageContext)
} catch (error) {
this.sendProblemReportMessage(error.message, connection!, unpackedMessage)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should try to avoid non-null assertions. If we don't have a connection, we can't send the message so we shouldn't ignore this I think

@@ -174,12 +190,42 @@ export class MessageReceiver {
const MessageClass = this.dispatcher.getMessageClassForType(messageType)

if (!MessageClass) {
throw new AriesFrameworkError(`No message class found for message type "${messageType}"`)
// throw new AriesFrameworkError(`No message class found for message type "${messageType}"`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// throw new AriesFrameworkError(`No message class found for message type "${messageType}"`)

problemReportMessage.setThread({
threadId: unpackedMessage.message['@id'],
})
const outboundMessage = createOutboundMessage(connection!, problemReportMessage)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, avoid non-null assertions


// Update record
await this.updateState(proofRecord, ProofState.None)
proofRecord.errorMsg = `${presentationProblemReportMessage.description.code} : ${presentationProblemReportMessage.description.en}`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
proofRecord.errorMsg = `${presentationProblemReportMessage.description.code} : ${presentationProblemReportMessage.description.en}`
proofRecord.errorMsg = `${presentationProblemReportMessage.description.code}: ${presentationProblemReportMessage.description.en}`


// Update record
await this.updateState(proofRecord, ProofState.None)
proofRecord.errorMsg = `${presentationProblemReportMessage.description.code} : ${presentationProblemReportMessage.description.en}`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you add the errorMsg assignment to before the updateState call you don't need have to call update again. (the updateState will also store the record)


// Update record
credentialRecord.errorMsg = `${credentialProblemReportMessage.description.code} : ${credentialProblemReportMessage.description.en}`
this.update(credentialRecord)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update not needed if you call updateState

@@ -12,4 +12,5 @@ export enum ProofState {
PresentationReceived = 'presentation-received',
Declined = 'declined',
Done = 'done',
None = 'none',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if state none is a good representation of the state. Shouldn't this be more something like error?

@jakubkoci @JamesKEbert any insights?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, that's a good point. It's a question if we want to update the state at all? If I look at list of states at Aries RFC 0023: DID Exchange Protocol 1.0 for example, there is no error/none state.

It can be convenient to keep the state as it is when an error happens and preserve the information about the error somewhere else (let's say non-empty errorMessage attribute). A developer can see there is an error and in what state the exchange ended.


/**
* @see https://github.com/hyperledger/aries-rfcs/blob/main/features/0035-report-problem/README.md
*/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't find the connection problem report handler.

Copy link
Contributor

@TimoGlastra TimoGlastra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

@nbAmit
Copy link
Contributor Author

nbAmit commented Dec 3, 2021

Thanks @TimoGlastra , I will check and update the code base on your suggestions and also check the e2e testing part as well.

Copy link
Contributor

@TimoGlastra TimoGlastra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great improvements @nbAmit!

I have a few additional comments, but once those are resolved this is good to go I think

Comment on lines 51 to 58
const problemReportMessage = error.problemReport

if (
(problemReportMessage instanceof ConnectionProblemReportMessage ||
problemReportMessage instanceof CredentialProblemReportMessage ||
problemReportMessage instanceof PresentationProblemReportMessage) &&
messageContext.connection
) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we check if the error is an instance of ProblemReportError we can generically handle it for all errors that extend from the ProblemReportError. this way we don't have to check for specific message type in the dispatcher

Suggested change
const problemReportMessage = error.problemReport
if (
(problemReportMessage instanceof ConnectionProblemReportMessage ||
problemReportMessage instanceof CredentialProblemReportMessage ||
problemReportMessage instanceof PresentationProblemReportMessage) &&
messageContext.connection
) {
if (problemReportMessage instanceof ProblemReportError && messageContext.connection) {
const problemReportMessage = error.problemReport

try {
await MessageValidator.validate(message)
message = await this.transformMessage(unpackedMessage)
this.validateMessage(message)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
this.validateMessage(message)
await this.validateMessage(message)

Comment on lines 102 to 105
this.logger.error(`Error validating message ${message.type}`, {
errors: error,
message: message.toJSON(),
})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The validate method also logs an error, I think logging it once is good enough

errors: error,
message: message.toJSON(),
})
throw new ProblemReportError(`No message class found for message type "${message.type}"`, {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error messages is not updated I think?

Comment on lines 239 to 245
if (outboundMessage && isOutboundServiceMessage(outboundMessage)) {
await this.messageSender.sendMessageToService({
message: outboundMessage.payload,
service: outboundMessage.service,
senderKey: outboundMessage.senderKey,
returnRoute: true,
})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If connection is provided (which is always the case in this method) this will never be true, as it used for connectionless exchanges.

you can call messageSender.sendMessage directly

interface ConnectionProblemReportErrorOptions extends ProblemReportErrorOptions {
problemCode: ConnectionProblemReportReason
}
export class ConnectionProblemReportError extends AriesFrameworkError {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should create a generic ProblemReportError where the ConnectionProblemReportError can extend from. This way we can check just for instanceof ProblemReportError in the dispatcher. As the ConectionProblemReportMessage extends the ProblemReportMessage it is also possible to use the connection specific problem report message for the problemReport property


this.logger.debug(`Processing connection problem report for verkey ${recipientVerkey}`)

if (!connection) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a good chance the connection won't be availalbe on the messageContext yet as the connection is not complete yet. If you look at the other methods in the conenction service you can see they often retrieve it from the repository. This is only the case in the connection implementation as before the protocol is finished there is no complete connection yet.

* @param connection connection to send the message to
* @param unpackedMessage received unpackedMessage
*/
private async sendProblemReportMessage(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add an check here whether the received message is of @type == https://didcomm.org/notification/1.0/problem-reportand otherwise throw an error (not a problem report error) that we are not sending a problem report as response to a problem. to prevent accidential problem report loops from happening. We should probably never respond with a problem report to a problem report.

interface CredentialProblemReportErrorOptions extends ProblemReportErrorOptions {
problemCode: CredentialProblemReportReason
}
export class CredentialProblemReportError extends AriesFrameworkError {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same, should extend ProblemReportError

public static readonly type: string = CommonMessageType.ProblemReport

@IsOptional()
public description!: DescriptionOptions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think description is not optional

@TimoGlastra TimoGlastra linked an issue Dec 8, 2021 that may be closed by this pull request
Copy link
Contributor

@TimoGlastra TimoGlastra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work @nbAmit! One comment left

interface ConnectionProblemReportErrorOptions extends ProblemReportErrorOptions {
problemCode: ConnectionProblemReportReason
}
export class ConnectionProblemReportError extends AriesFrameworkError {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't extend problem report error yet

Signed-off-by: Amit Padmani <amit@northernblock.io>
Copy link
Contributor

@TimoGlastra TimoGlastra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@TimoGlastra TimoGlastra merged commit baee5db into openwallet-foundation:main Dec 13, 2021
Copy link
Contributor

@jakubkoci jakubkoci left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job. Just added a few notes. Nothing serious.

throw new AriesFrameworkError('Signature is not valid!')
throw new ConnectionProblemReportError('Signature is not valid', {
problemCode: ConnectionProblemReportReason.RequestProcessingError,
})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it too low-level area to care about a connection here? Throwing Signature is not valid! and handling it at the level above seems reasonable to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

    let connectionJson = null
    try {
      connectionJson = await unpackAndVerifySignatureDecorator(message.connectionSig, this.wallet)
    } catch (error) {
      if(error instanceof AriesFrameworkError) {
        throw new ConnectionProblemReportError(error.message, {
          problemCode: ConnectionProblemReportReason.RequestProcessingError,
        })
      }
    }

Is it the right way to handle it in connection service? or any other suggestion @jakubkoci @TimoGlastra

@@ -12,4 +12,5 @@ export enum ProofState {
PresentationReceived = 'presentation-received',
Declined = 'declined',
Done = 'done',
None = 'none',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, that's a good point. It's a question if we want to update the state at all? If I look at list of states at Aries RFC 0023: DID Exchange Protocol 1.0 for example, there is no error/none state.

It can be convenient to keep the state as it is when an error happens and preserve the information about the error somewhere else (let's say non-empty errorMessage attribute). A developer can see there is an error and in what state the exchange ended.

packages/core/src/agent/MessageReceiver.ts Show resolved Hide resolved
@TimoGlastra
Copy link
Contributor

Sorry @jakubkoci, just merged.....

@TimoGlastra
Copy link
Contributor

@nbAmit could you take a look at Jakubs comments and address those in a follow up PR?

@TimoGlastra
Copy link
Contributor

Also I think we should only allow problem reports to be received for exchanges with connections for now, as with the processProblemReport method now in every service, they are not tied to a specific connection and we also don't check whether this is a valid connectionless exchange (hard to do right now). This is quite a large security flaw, as everyone who nows a thread id can now send a problem report message to it.

Could you add a messageContext.assertReadyConnection to the credential and proof problem report message handlers? For the connection handler we will need to add checks based on where in the protocol we are

@TimoGlastra
Copy link
Contributor

@nbAmit are you going to pick these up? The comments from @jakubkoci have some breaking changes to records so we should try to fix those ASAP before people update to this version. If you don't have the time let me know and I'll pick it up.

@nbAmit
Copy link
Contributor Author

nbAmit commented Dec 15, 2021

Hi @TimoGlastra This week I am on vacation so is it okay if I start working on Monday?

Annelein pushed a commit to animo/aries-framework-javascript that referenced this pull request Jan 28, 2022
Signed-off-by: Amit Padmani <amit@northernblock.io>
Signed-off-by: annelein <anneleinvanreijen@gmail.com>
karimStekelenburg added a commit to animo/aries-framework-javascript that referenced this pull request May 19, 2022
fix(core): expose record metadata types (openwallet-foundation#556)

Signed-off-by: Berend Sliedrecht <berend@animo.id>
Co-authored-by: Timo Glastra <timo@animo.id>
ci: create non-annotated tags (openwallet-foundation#559)

Signed-off-by: Timo Glastra <timo@animo.id>
style: non-null assertions and newline import (openwallet-foundation#561)

Signed-off-by: Timo Glastra <timo@animo.id>
chore: disable unnecessary type check in Dispatcher test (openwallet-foundation#565)

Signed-off-by: Jakub Koci <jakub.koci@gmail.com>
ci: add continuous deployment scripts (openwallet-foundation#552)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: expose wallet API (openwallet-foundation#566)

This commit also contains the following changes:
* Create a master secret when creating a wallet.
* Do not delete wallet when shutdown is called on agent.
* Expose the whole wallet API, which also contains methods that should be used only inside the framework. We need to improve that in the future.

Signed-off-by: Jakub Koci <jakub.koci@gmail.com>

BREAKING CHANGE: The agent’s `shutdown` method does not delete the wallet anymore. If you want to delete the wallet, you can do it via exposed wallet API.
build: add arm test ledger setup (openwallet-foundation#573)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: add problem report protocol (openwallet-foundation#560)

Signed-off-by: Amit Padmani <amit@northernblock.io>
docs: added report problem protocol to README (openwallet-foundation#574)

Signed-off-by: Berend Sliedrecht <berend@animo.id>
fix: support mediation for connectionless exchange (openwallet-foundation#577)

Signed-off-by: Timo Glastra <timo@animo.id>
refactor(core): separate logic for inbound plaintext and encrypted message (openwallet-foundation#581)

* rename wire message to encrypted message

Signed-off-by: Jakub Koci <jakub.koci@gmail.com>
feat: generic attachment handler (openwallet-foundation#578)

Signed-off-by: morrieinmaas <moritz@animo.id>
Co-authored-by: annelein <anneleinvanreijen@gmail.com>
refactor: resolve feedback for problem report (openwallet-foundation#584)

Signed-off-by: Amit Padmani <amit@northernblock.io>
fix(core)!: Improved typing on metadata api (openwallet-foundation#585)

Signed-off-by: Berend Sliedrecht <berend@animo.id>

BREAKING CHANGE: removed the getAll() function.
chore(release): v0.1.0 (openwallet-foundation#571)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
docs(apple-silicon): update OpenSSL instructions (openwallet-foundation#590)

* docs(apple-silicon): update openssl install instructions

Signed-off-by: Karim Stekelenburg <karim@animo.id>

* docs(apple-silicon): add missing 'add to path' commands

Signed-off-by: Karim Stekelenburg <karim@animo.id>

* docs(apple-silicon): run prettier

Signed-off-by: Karim Stekelenburg <karim@animo.id>
feat(core): allow to set auto accept connetion exchange when accepting invitation (openwallet-foundation#589)

Signed-off-by: Jakub Koci <jakub.koci@gmail.com>
feat: ledger connections happen on agent init in background (openwallet-foundation#580)

* Connects to ledger on agent init by default, ledger calls will wait for connections to be complete if so
* Updated version of indy-sdk-react-native to 0.1.16

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>
feat: add generic did resolver (openwallet-foundation#554)

* feat: did:key, did:web, did:sov resolver

Signed-off-by: Timo Glastra <timo@animo.id>
feat: add support for signed attachments (openwallet-foundation#595)

Signed-off-by: Timo Glastra <timo@animo.id>

BREAKING CHANGE: attachment method `getDataAsJson` is now located one level up. So instead of `attachment.data.getDataAsJson()` you should now call `attachment.getDataAsJson()`
build(deps): bump shelljs from 0.8.4 to 0.8.5 (openwallet-foundation#598)

Signed-off-by: dependabot[bot] <support@github.com>
feat: add didcomm message record (openwallet-foundation#593)

Signed-off-by: Timo Glastra <timo@animo.id>
fix: disallow usage of global buffer (openwallet-foundation#601)

fix: verify jws contains at least 1 signature (openwallet-foundation#600)

feat(core): added timeOut to the module level (openwallet-foundation#603)

* fix(core): added timeOut to the module level

Signed-off-by: Berend Sliedrecht <berend@animo.id>
feat: add support for did:peer (openwallet-foundation#608)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: support new did document in didcomm message exchange (openwallet-foundation#609)

* refactor: unify did document services
* feat: integrate did resolver with message sender
* feat: support new did docoument for msg receiver

Signed-off-by: Timo Glastra <timo@animo.id>
docs: proofs (openwallet-foundation#564)

Signed-off-by: Mostafa <mostafa.youssef@ontario.ca>
fix: incorrect encoding of services for did:peer (openwallet-foundation#610)

Signed-off-by: Timo Glastra <timo@animo.id>
ci: get last alpha package version from npm (openwallet-foundation#611)

We currently use the commit number, but this is incorrect as the number will be reset to 0 again when the next minor version is released.

Signed-off-by: Timo Glastra <timo@animo.id>
chore: regenerate yarn.lock for security updates (openwallet-foundation#616)

Signed-off-by: Timo Glastra <timo@animo.id>
ci: prepend v to alpha releases for consistency (openwallet-foundation#617)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: add find and save/update methods to DidCommMessageRepository (openwallet-foundation#620)

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>
feat: update recursive backoff & trust ping record updates (openwallet-foundation#631)

Signed-off-by: James Ebert <jamesebert.k@gmail.com>
fix: leading zeros in credential value encoding (openwallet-foundation#632)

Signed-off-by: James Ebert <jamesebert.k@gmail.com>
feat: indy revocation (prover & verifier) (openwallet-foundation#592)

* Added recepientRevocation for createProof

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* Initial revocation functions for getRequestedCredentialsForProofRequest

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* Added option to check for revocation status in getRequestedCredentials

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* sorted transports

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* broken message sender tests

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* structure fix

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* lint import ordering

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* if(0) does not work.

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* utf-8 decode ws event.data

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* indy wallet friendly bits

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* correct protocal type

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* check invite during init

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* id check

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* keep sockets with mediators open

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* recursive backoff

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* timeout

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* timeout time

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* logger

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* propper recursive backoff

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* multiple socket timeout support

Signed-off-by: Adam Burdett <burdettadam@gmail.com>

* Code cleanup

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* Fix tests and types

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* Formatting and type fixes

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* revocation fixes

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* ran prettier

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

* chore: add ts ignore until types are updated

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* feat: updated tails download to utilize axios and added inline docs

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: fixed formatting

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: removed husky

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* fix: add back husky pre-push

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: formatting

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* fix: fixed error imports

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: resolve dependency loop issues

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: formatting

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* feature: revocation ledger methods & proof get requested credentials revoked status

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* feature: added revocation state creation

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* fix: small tweaks and fixes for revocation

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* feature: takes into account referent revocation intervals

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: cleanup & prettier

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* fix: fixed createrevocationstate types & initial rev reg def caching

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: formatting

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* fix: fixed proofservice test mock

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: minor cleanup

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: rename indyutilitiesservice

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: troubleshooting revocation, added ledger methods for verifying proof of non revocation

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: cleanup & credential storage w/revocation

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* feat: add download to file method to file system

Signed-off-by: Timo Glastra <timo@animo.id>

* refactor: use rnfs for react native

Signed-off-by: Timo Glastra <timo@animo.id>

* chore: cleanup & log adjustments

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: formatting

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* feat: verify proofs containing proof of non_revocation

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: formatting

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: update indy-sdk-react-native & indy-sdk types

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: adjusts names to be consistent & removing abbreviations

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* chore: updated indy-sdk types to fix proof identifier types

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

* fix: indyverifierservice prototype pollution

Signed-off-by: James Ebert <jamesebert.k@gmail.com>

Co-authored-by: Patrick Kenyon <treek.kenyon@gmail.com>
Co-authored-by: Adam Burdett <burdettadam@gmail.com>
Co-authored-by: Timo Glastra <timo@animo.id>
fix: check for "REQNACK" response from indy ledger (openwallet-foundation#626)

Signed-off-by: annelein <anneleinvanreijen@gmail.com>
fix: credential preview attributes mismatch schema attributes (openwallet-foundation#625)

Signed-off-by: annelein <anneleinvanreijen@gmail.com>
docs: add cli demo (openwallet-foundation#619)

Signed-off-by: annelein <anneleinvanreijen@gmail.com>
fix: check proof request group names do not overlap (openwallet-foundation#638)

Signed-off-by: annelein <anneleinvanreijen@gmail.com>
fix(core): error if unpacked message does not match JWE structure (openwallet-foundation#639)

Signed-off-by: annelein <anneleinvanreijen@gmail.com>
feat: filter retrieved credential by revocation state (openwallet-foundation#641)

Signed-off-by: Timo Glastra <timo@animo.id>
docs: cleanup demo (openwallet-foundation#645)

Signed-off-by: Berend Sliedrecht <berend@animo.id>
feat(crypto): add abstract KeyPair class

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

feat(crypto): move Key class to crypto directory

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

feat(crypto): move multiCodecKey to crypto folder

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

feat(crypto): add WalletKeyPair

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

style: fix formatting issues

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

feat: add wallet key derivation method option (openwallet-foundation#650)

Signed-off-by: Timo Glastra <timo@animo.id>
fix: issue where attributes and predicates match (openwallet-foundation#640)

Signed-off-by: annelein <anneleinvanreijen@gmail.com>
fix(basic-message): assert connection is ready (openwallet-foundation#657)

Signed-off-by: Karim <karim@animo.id>
test: minor wallet test changes (openwallet-foundation#660)

Signed-off-by: Niall Shaw <niall.shaw@absa.africa>
feat: add wallet module with import export (openwallet-foundation#652)

Signed-off-by: Timo Glastra <timo@animo.id>
refactor(proofs): remove unused method from service (openwallet-foundation#663)

Signed-off-by: Timo Glastra <timo@animo.id>
fix: agent isinitialized on shutdown (openwallet-foundation#665)

Signed-off-by: Niall Shaw <niall.shaw@absa.africa>
fix(routing): remove sentTime from request message (openwallet-foundation#670)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: add w3c credential models

Signed-off-by: Karim <karim@animo.id>

feat: add mock W3cCredentialService

Signed-off-by: Karim <karim@animo.id>

feat: keyPair record

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: generic wallet interface for key types

Signed-off-by: Timo Glastra <timo@animo.id>

fix: renamed secretKey -> privateKey

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix: dependency cycles

Signed-off-by: Karim <karim@animo.id>

feat: KeyPairRepository

Signed-off-by: Berend Sliedrecht <berend@animo.id>

docs: improved tsdoc for repository

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: restructured wallet api

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: createKey switch

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: added switch to sign and verify

Signed-off-by: Berend Sliedrecht <berend@animo.id>

style: added tsdoc

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix: remove deprecated multibase and multihash (openwallet-foundation#674)

Signed-off-by: Timo Glastra <timo@animo.id>
feat(crypto): add abstract KeyPair class

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

feat(crypto): add WalletKeyPair

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

style: fix formatting issues

Signed-off-by: NB-Karim <karim.northernblock@gmail.com>

feat: add dependency .d.ts files

Signed-off-by: Karim <karim@animo.id>

feat: implemented create key in wallet

Signed-off-by: Berend Sliedrecht <berend@animo.id>

Merge branch 'main' into feat/next-signatures

feat: implemented sign and verify

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: implementation done, still need record retrieval

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix: casing

Signed-off-by: Berend Sliedrecht <berend@animo.id>

refactor: remove keypairrecord and keypairrepository

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix: merge

Merge branch 'feat/Ed25519Signature2018' of github.com:animo/aries-framework-javascript into feat/next-signatures

Merge branch 'feat/next-signatures' of github.com:animo/aries-framework-javascript into feat/next-signatures

feat: finished without test

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix(routing): mediation recipient role for recipient (openwallet-foundation#661)

Signed-off-by: Timo Glastra <timo@animo.id>
refactor(core): renamed BufferEncoder to TypedArrayEncoder (openwallet-foundation#675)

Signed-off-by: Berend Sliedrecht <berend@animo.id>
feat: add Ed25519Signature2018

Signed-off-by: Karim <karim@animo.id>

feat: finished WalletKeyPair implementation

Signed-off-by: Karim <karim@animo.id>

Merge branch 'main' into feat/W3cCredentialService

Merge branch 'main' into feat/next-signatures

Merge branch 'feat/next-signatures' into feat/W3cCredentialService

fix: do not use basic message id as record id (openwallet-foundation#677)

Signed-off-by: Timo Glastra <timo@animo.id>
docs: inline and dev docs added

Signed-off-by: Berend Sliedrecht <berend@animo.id>

Merge remote-tracking branch 'origin' into feat/bbs

fix: cleanup

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix: using typedarrayencoder now

Signed-off-by: Berend Sliedrecht <berend@animo.id>

tests: started on IndyWallet test

Signed-off-by: Berend Sliedrecht <berend@animo.id>

tests: test sign function

Signed-off-by: Berend Sliedrecht <berend@animo.id>

build(deps): bump minimist from 1.2.5 to 1.2.6 (openwallet-foundation#682)

feat: improved tests

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: check if array is typedarray

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: added react native setup

Signed-off-by: Berend Sliedrecht <berend@animo.id>

docs: updated diff syntax

Signed-off-by: Berend Sliedrecht <berend@animo.id>

build(deps): bump plist from 3.0.4 to 3.0.5 (openwallet-foundation#683)

feat(routing): allow to discover mediator pickup strategy (openwallet-foundation#669)

Signed-off-by: Timo Glastra <timo@animo.id>
tests: test isTypedArray

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix: resolved feedback

Signed-off-by: Berend Sliedrecht <berend@animo.id>

build: decremented core build version

Signed-off-by: Berend Sliedrecht <berend@animo.id>

fix: update inbound message validation  (openwallet-foundation#678)

Changed isPlaintextMessage error handling, and removed logic from isEncryptedMessage
Use isValidJweStructure

Signed-off-by: Niall Shaw <niall.shaw@absa.africa>
feat: add sign method

Signed-off-by: Karim <karim@animo.id>

Merge branch 'main' into feat/W3cCredentialService

feat: added w3c record and repository

Signed-off-by: Berend Sliedrecht <berend@animo.id>

feat: working repository and record

Signed-off-by: Berend Sliedrecht <berend@animo.id>

Merge pull request #17 from blu3beri/feat/w3crecord

feat(core): w3cCredentialRecord and w3cCredentialRepository
fix(core): set tags in MediationRecord constructor (openwallet-foundation#686)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Merge branch 'main' into feat/W3cCredentialService

feat: implement verifyCredential

Signed-off-by: Karim <karim@animo.id>

feat: createPresentation

Signed-off-by: Karim <karim@animo.id>

feat: implemented SignatureSuiteRegistry

Signed-off-by: Karim <karim@animo.id>

feat: finish signPres and verifyPres

Signed-off-by: Karim <karim@animo.id>

refactor: clean-up directory structure

Signed-off-by: Karim <karim@animo.id>

feat: add BbsBlsSiganture2020 to sig-registry

Signed-off-by: Karim <karim@animo.id>

Merge branch 'main' into feat/bbs

Merge branch 'feat/bbs' into feat/jsonld-credentials

feat: implement sign for bbs

Signed-off-by: Karim <karim@animo.id>

refactor: clean-up W3cCredentialService options

Signed-off-by: Karim <karim@animo.id>

refactor: switched to mattr jsonld-signatures bbs

Signed-off-by: Karim <karim@animo.id>

feat: regex for schemaVersion, issuerDid, credDefId, schemaId, schemaIssuerDid (openwallet-foundation#679)

Signed-off-by: annelein <anneleinvanreijen@gmail.com>
feat: support wallet key rotation (openwallet-foundation#672)

Signed-off-by: Mostafa <mostafa.youssef@ontario.ca>
feat: add role and method to did record tags (openwallet-foundation#692)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: delete credential from wallet (openwallet-foundation#691)

Signed-off-by: Jan <60812202+janrtvld@users.noreply.github.com>
feat: extension module creation (openwallet-foundation#688)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>
refactor: restructured fixtures and more

Signed-off-by: Karim <karim@animo.id>

Merge branch 'main' into feat/jsonld-credentials

fix: disallow floating promises (openwallet-foundation#704)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: bbs verification

Signed-off-by: Karim <karim@animo.id>

Merge branch 'main' into feat/jsonld-credentials

refactor: start and stop transports in parallel (openwallet-foundation#705)

Signed-off-by: Timo Glastra <timo@animo.id>
ci: add yml for postgres setup (openwallet-foundation#703)

Signed-off-by: Sai Ranjit Tummalapalli <sairanjit.tummalapalli@ayanworks.com>
fix: did sov service type resolving (openwallet-foundation#689)

Signed-off-by: James Ebert <jamesebert.k@gmail.com>
test: add test assets

Signed-off-by: Karim <karim@animo.id>

test(vc): add caching documentLoader for tests

Signed-off-by: Karim <karim@animo.id>

build(deps): bump async from 2.6.3 to 2.6.4 (openwallet-foundation#710)

feat: add update assistant for storage migrations (openwallet-foundation#690)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: support revocation notification messages (openwallet-foundation#579)

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

Co-authored-by: James Ebert <jamesebert.k@gmail.com>
fix: disallow floating promises (openwallet-foundation#704)

Signed-off-by: Timo Glastra <timo@animo.id>
test: add test assets

Signed-off-by: Karim <karim@animo.id>

test(vc): add caching documentLoader for tests

Signed-off-by: Karim <karim@animo.id>

Merge branch 'karim/test' into feat/jsonld-credentials

refactor: start and stop transports in parallel (openwallet-foundation#705)

Signed-off-by: Timo Glastra <timo@animo.id>
ci: add yml for postgres setup (openwallet-foundation#703)

Signed-off-by: Sai Ranjit Tummalapalli <sairanjit.tummalapalli@ayanworks.com>
fix: did sov service type resolving (openwallet-foundation#689)

Signed-off-by: James Ebert <jamesebert.k@gmail.com>
build(deps): bump async from 2.6.3 to 2.6.4 (openwallet-foundation#710)

feat: add update assistant for storage migrations (openwallet-foundation#690)

Signed-off-by: Timo Glastra <timo@animo.id>

feat: support revocation notification messages (openwallet-foundation#579)

Signed-off-by: Patrick Kenyon <treek.kenyon@gmail.com>

Co-authored-by: James Ebert <jamesebert.k@gmail.com>
fix: yarn.lock conflict

Merge branch 'main' into feat/jsonld-credentials

refactor: replace message type constant with string literal (openwallet-foundation#721)

Signed-off-by: Jakub Koci <jakub.koci@gmail.com>
test: add local did fixtures

feat: add credential fetch methods

Signed-off-by: Karim <karim@animo.id>

feat: add react native documentLoader

Signed-off-by: Karim <karim@animo.id>

style: fix styling issues (eslint, ts, etc.)

Signed-off-by: Karim <karim@animo.id>

Merge branch 'main' into feat/jsonld-credentials
fix: allow agent without inbound endpoint to connect when using multi-use invitation (openwallet-foundation#712)

Previously the session is only stored by the connection id, but this is not always enough for the session to be reused. When using a multi-use invitation the connection id will change while processing the message, meaning the session cannot be reused. This also helps with cases where no connection is established. Fixes openwallet-foundation#483

Signed-off-by: Timo Glastra <timo@animo.id>
fix: close session early if no return route (openwallet-foundation#715)

This adds a `close` method to all transport sessions so it can be closed from within the agent. This allows us to close the session early if the message doesn't have return routing enabled

Signed-off-by: Timo Glastra <timo@animo.id>
ci: add node 18 to test matrix (openwallet-foundation#735)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: pickup v2 protocol (openwallet-foundation#711)

Signed-off-by: KolbyRKunz <KolbyKunz@yahoo.com>

BREAKING CHANGE: The mediator pickup strategy enum value `MediatorPickupStrategy.Explicit` has been renamed to `MediatorPickupStrategy.PickUpV1` to better align with the naming of the new `MediatorPickupStrategy.PickUpV2`
Merge branch 'main' into feat/jsonld-credentials

fix: dropped unused dependency

Signed-off-by: Karim <karim@animo.id>

fix: error typo

Co-authored-by: Timo Glastra <timo@animo.id>
fix: simplify keyType declaration

Co-authored-by: Timo Glastra <timo@animo.id>
fix: optional fields in did document (openwallet-foundation#726)

Signed-off-by: Timo Glastra <timo@animo.id>
fix: dropped ed25519 ctx deps

Signed-off-by: Karim <karim@animo.id>

fix: removed unused type def

Signed-off-by: Karim <karim@animo.id>

fix: remove unnecesarry transformer

Signed-off-by: Karim <karim@animo.id>

fix: broken import

Signed-off-by: Karim <karim@animo.id>

fix: remove unnecessary W3cCredentialState

Signed-off-by: Karim <karim@animo.id>

fix: doc typo

Co-authored-by: Timo Glastra <timo@animo.id>

Signed-off-by: Karim Stekelenburg <karim@animo.id>
fix: remove commented code

Signed-off-by: Karim <karim@animo.id>

fix: remove unnecessary comment

Signed-off-by: Karim <karim@animo.id>

fix: rename confusing context vs context url

Signed-off-by: Karim <karim@animo.id>

fix: moved jsonld related types and code to utils file

Signed-off-by: Karim <karim@animo.id>

fix: replaced inline urls with local constants

Signed-off-by: Karim <karim@animo.id>

fix: broken imports

Signed-off-by: Karim <karim@animo.id>

fix: eslint issues

Signed-off-by: Karim <karim@animo.id>

fix: eslint issues

Signed-off-by: Karim <karim@animo.id>

fix: remove unnecessary assignment

Signed-off-by: Karim <karim@animo.id>

fix: replace faulty challenge assignment

Signed-off-by: Karim <karim@animo.id>

fix: inverted statement

Signed-off-by: Karim <karim@animo.id>

fix: remove unused revoked options

Signed-off-by: Karim <karim@animo.id>

fix: uuid challenge and presentation suites

Signed-off-by: Karim <karim@animo.id>

test: add missing test for bbs verify pres

Signed-off-by: Karim <karim@animo.id>

refactor: add custom ed25519 2020 to 2018 impl

Signed-off-by: Karim <karim@animo.id>

fix: unclear variable name

Signed-off-by: Karim <karim@animo.id>

feat: add issue credential v2 (openwallet-foundation#745)

Signed-off-by: Mike Richardson <mike.richardson@northernblock.io>
fix: removed unused props from docs

Signed-off-by: Karim <karim@animo.id>

refactor: rename utilities.ts to bbs-utils.ts

Signed-off-by: Karim <karim@animo.id>

feat: add additional W3cCredentialRecord tags

Signed-off-by: Karim <karim@animo.id>

fix: removed duplicate function

Signed-off-by: Karim <karim@animo.id>

fix: do not import test logger in src (openwallet-foundation#746)

Signed-off-by: Timo Glastra <timo@animo.id>
fix: do not import from src dir (openwallet-foundation#748)

Signed-off-by: Timo Glastra <timo@animo.id>
refactor: rewrite conversion method

Signed-off-by: Karim Stekelenburg <karim@animo.id>

feat: add givenId as W3cCredentialRecord tag

Signed-off-by: Karim Stekelenburg <karim@animo.id>

fix: convert any types

Signed-off-by: Karim Stekelenburg <karim@animo.id>

chore!: update indy-sdk-react-native version to 0.2.0 (openwallet-foundation#754)

Signed-off-by: Amit <amit@northernblock.io>

BREAKING CHANGE: indy-sdk-react-native has been updated to 0.2.0. The new version now depends on libindy version 1.16 and requires you to update the binaries in your react-native application. See the [indy-sdk-react-native](https://github.com/hyperledger/indy-sdk-react-native) repository for instructions on how to get the latest binaries for both iOS and Android.
fix: typings

Signed-off-by: Karim Stekelenburg <karim@animo.id>

fix: typings

Signed-off-by: Karim <karim@animo.id>

fix: typings & drop jsonld bbs dep

Signed-off-by: Karim <karim@animo.id>

fix: remove commented code

Signed-off-by: Karim <karim@animo.id>

fix: typing and faulty context

Signed-off-by: Karim <karim@animo.id>

fix: remove keyAgreement

Signed-off-by: Karim <karim@animo.id>

fix: remove unused typing file

Signed-off-by: Karim <karim@animo.id>

fix: rename map variable

Signed-off-by: Karim <karim@animo.id>

fix: use w3cDate

Signed-off-by: Karim <karim@animo.id>

fix: rename map variable

Signed-off-by: Karim <karim@animo.id>

style: clean map syntax

Signed-off-by: Karim <karim@animo.id>

fix: typo

Signed-off-by: Karim <karim@animo.id>

fix: remove commented code

Signed-off-by: Karim <karim@animo.id>

feat(core): add support for postgres wallet type (openwallet-foundation#699)

Signed-off-by: Sai Ranjit Tummalapalli <sairanjit.tummalapalli@ayanworks.com>

Co-authored-by: Timo Glastra <timo@animo.id>
fix: add g1 and g2 contexts

Signed-off-by: Karim <karim@animo.id>

fix: add X25519  contexts

Signed-off-by: Karim <karim@animo.id>

fix(node): allow to import node package without postgres (openwallet-foundation#757)

Signed-off-by: Timo Glastra <timo@animo.id>
fix: mediation record checks for pickup v2 (openwallet-foundation#736)

Signed-off-by: Timo Glastra <timo@animo.id>
Merge branch 'main' into feat/jsonld-credentials

fix: Key imports

Signed-off-by: Karim <karim@animo.id>

fix: change invalid g1 g2 contexts to bbs

Signed-off-by: Karim <karim@animo.id>

fix: remove invalid contexts

Signed-off-by: Karim <karim@animo.id>

fix: delete credentials (openwallet-foundation#766)

Signed-off-by: Mike Richardson <mike.richardson@northernblock.io>
fix: various

Signed-off-by: Karim <karim@animo.id>

test: do not use indy ledgers in wallet test

Signed-off-by: Timo Glastra <timo@animo.id>

fix: add jsonld.expand typedef

Signed-off-by: Karim <karim@animo.id>

Merge branch 'main' into feat/jsonld-credentials

fix: add additional typedefs

Signed-off-by: Karim <karim@animo.id>

feat: add out-of-band and did exchange (openwallet-foundation#717)

Signed-off-by: Jakub Koci <jakub.koci@gmail.com>
Co-authored-by: Timo Glastra <timo@animo.id>

BREAKING CHANGE: the connections module has been extended with an out of band module and support for the DID Exchange protocol. Some methods have been moved to the out of band module, see [Migrating from AFJ 0.1.0 to 0.2.x](https://github.com/hyperledger/aries-framework-javascript/blob/main/docs/migration/0.1-to-0.2.md) for detailed migration instructions.
feat: support handling messages with different minor version (openwallet-foundation#714)

Signed-off-by: Timo Glastra <timo@animo.id>
fix: relax validation of thread id in revocation notification (openwallet-foundation#768)

Signed-off-by: Blazej Marcinkiewicz <marcinkiewicz@procivis.ch>
fix: typing issues with jsonld

Signed-off-by: Timo Glastra <timo@animo.id>

feat: ability to add generic records (openwallet-foundation#702)

feat: extension module creation (openwallet-foundation#688)

Co-authored-by: Berend Sliedrecht <berend@animo.id>
Co-authored-by: Timo Glastra <timo@animo.id>
Merge pull request #21 from TimoGlastra/fix/jsonld-types-issues

fix: typing issues with jsonld
fix: propose payload attachment in in snake_case JSON format (openwallet-foundation#775)

Signed-off-by: Mike Richardson <mike.richardson@northernblock.io>
fix: typing issues

Signed-off-by: Karim <karim@animo.id>

fix: delete credentials (openwallet-foundation#770)

Signed-off-by: Mike Richardson <mike.richardson@northernblock.io>
fix: type issues

Signed-off-by: Karim <karim@animo.id>

test: use event listener instead of while loop (openwallet-foundation#778)

Signed-off-by: Timo Glastra <timo@animo.id>
feat: bbs createKey, sign and verify (openwallet-foundation#684)

Signed-off-by: Berend Sliedrecht <berend@animo.id>

Merge branch '0.3.0-pre' into feat/jsonld-credentials
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for RFC 0035: Problem Report
4 participants