Conversation
📝 WalkthroughWalkthroughThis PR introduces a new verify CLI command that validates W3C credentials and OpenAttestation documents. It implements verification orchestration with provider-based fallbacks, result handling utilities, warning capture helpers, a comprehensive test suite, and multiple test fixtures for different credential types and verification scenarios. Changes
Sequence DiagramsequenceDiagram
participant User
participant CLI as Verify Handler
participant Parser as Document Parser
participant Router as Type Router
participant VerifyOA as OA Verification
participant VerifyW3C as W3C Verification
participant Provider as Provider/Network
participant Logger as Result Logger
User->>CLI: invoke verify command
CLI->>CLI: promptQuestions (interactive)
User->>CLI: provide document path
CLI->>Parser: readJsonFile
Parser-->>CLI: SignedVerifiableCredential
CLI->>Router: determine type (OA vs W3C)
alt OpenAttestation Document
Router->>VerifyOA: verifyOpenAttestationDocument
VerifyOA->>VerifyOA: checkExpiration
VerifyOA->>Provider: get ChainId
VerifyOA->>Provider: provider-based verification
alt Provider Available
Provider-->>VerifyOA: verification result
else Provider Unavailable
VerifyOA->>VerifyOA: fallback verification
end
VerifyOA-->>CLI: fragments + warnings
else W3C Document
Router->>VerifyW3C: verifyW3CDocument
VerifyW3C->>Provider: resolveProviderFromNetwork
alt Provider Resolved
VerifyW3C->>Provider: provider-based verification
else Provider Resolution Fails
VerifyW3C->>VerifyW3C: fallback verification
end
VerifyW3C-->>CLI: fragments + warnings
end
CLI->>Logger: getResultFromFragment
CLI->>Logger: logResultStatus
CLI->>Logger: handleExpiredCredentialWarning
Logger-->>User: display verification results
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~40 minutes Poem
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
# 1.0.0 (2026-03-10) ### Bug Fixes * add tamper check for all blockchain functions ([#21](#21)) ([ea64760](ea64760)) * base64 file format removal ([514f18b](514f18b)) * ether signer compatibility ([a3c36de](a3c36de)) * handle network selection and add new fixtures ([#15](#15)) ([62b2031](62b2031)) * one line command and interactive terminal fix ([23fb955](23fb955)) * package lock ([2e40722](2e40722)) * remove test output files ([f63a4b3](f63a4b3)) * remove the base64 encoding for the file encryption ([#23](#23)) ([d4600e4](d4600e4)) * remove unnecessary details in the readme ([6a9b8a2](6a9b8a2)) * update cli process ([#8](#8)) ([472a9e6](472a9e6)) * updated the file handling error and folder creation for outputs ([a07c6a3](a07c6a3)) * wallet creation ([#14](#14)) ([6499276](6499276)) ### Features * add mint function command ([#1](#1)) ([22ea11f](22ea11f)) * add verify command ([#7](#7)) ([da85177](da85177)) * add w3c sign function ([#4](#4)) ([ea31015](ea31015)) * added encrypt/decrypt functions to the OA feature ([6dab3e7](6dab3e7)) * added functionality for transaction cancel ([33d73f2](33d73f2)) * added husky for lint checks ([70f3ea5](70f3ea5)) * added the gracefull error handling ([27ef0cf](27ef0cf)) * credential status command ([fb83698](fb83698)) * deploy document store command ([#16](#16)) ([bee4e7a](bee4e7a)) * document store ownership ([#20](#20)) ([a3906da](a3906da)) * fixed the prettier formats ([661c27e](661c27e)) * issue and revoke command ([#17](#17)) ([1df37ff](1df37ff)) * oa sign command ([6fc14cb](6fc14cb)) * reject commands ([#5](#5)) ([f50ce1b](f50ce1b)) * remove example files ([eecf1fb](eecf1fb)) * return commands ([#6](#6)) ([d999e6c](d999e6c)) * token registry command ([#19](#19)) ([0f5c523](0f5c523)) * transfer commands ([#3](#3)) ([8414130](8414130)) * update command process and tests ([#12](#12)) ([97986f5](97986f5)) * update the transfer commands with new input process ([#10](#10)) ([603e534](603e534)) * updated package version for trustvc ([995b43f](995b43f)) * updated packages ([7f9712c](7f9712c)) * updated the readme ([8fa493a](8fa493a)) * wallet creation encryption ([#13](#13)) ([e4d368c](e4d368c)) * wrap unwrap oa command ([#9](#9)) ([4ca75f0](4ca75f0))
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Implement verify Command for Document Verification (W3C + OA)
Summary
This PR implements a new CLI command, verify, to validate documents. It supports verification for:
The command outputs verification results for the following fragments:
DOCUMENT_INTEGRITYDOCUMENT_STATUSISSUER_IDENTITYand indicates if the document credential has expired.
What’s Included
Verification behaviour
Automatic chain detection / provider resolution
chainIdfrom the VC and resolves the correct provider automatically.network.chainIdfrom the document and resolves the provider accordingly.Could not find blockchain information.Expiration warnings
The document credential has expired.expirationDateand also produces the same warning message.User experience
@inquirer/prompts) and loads it as JSON.successwhen a fragment isVALID, otherwise printswarnwith the failure reason.Tests Added
A total of 10 unit tests were added under tests/commands/verify.test.ts, covering both helper utilities and end-to-end verification flows using real fixtures.
Helper function coverage (6 tests)
SKIPPEDfragment of a given typeSKIPPEDfragment existssuccesswhen status isVALIDwarn(including reason) when status is notVALIDCLI prompt coverage (3 tests)
readJsonFilefails on an invalid pathEnd-to-end fixture verification coverage (1 parameterized test with 8 cases)
Uses actual documents in tests/fixtures/ to validate full verification behavior end-to-end:
DOCUMENT_STATUS)DOCUMENT_STATUS)The test asserts the command produces outputs for:
DOCUMENT_INTEGRITYDOCUMENT_STATUSISSUER_IDENTITYand validates warnings are emitted only for the expected scenarios.
Summary by CodeRabbit
Release Notes
New Features
Tests
✏️ Tip: You can customize this high-level summary in your review settings.