fix: add tamper check for all blockchain functions#21
Conversation
ℹ️ Recent review infoConfiguration used: defaults Review profile: CHILL Plan: Free 📒 Files selected for processing (42)
📝 WalkthroughWalkthroughA new document signature verification function is introduced and integrated across 14 command modules. The Changes
Sequence DiagramsequenceDiagram
participant Client as Command Handler
participant promptInputs as promptForInputs()
participant verifyDS as verifyDocumentSignature()
participant trustvc as `@trustvc` library
Client->>promptInputs: invoke with document path
promptInputs->>promptInputs: read document
promptInputs->>verifyDS: call verifyDocumentSignature(document)
alt is OpenAttestation document
verifyDS->>trustvc: call verifyOASignature()
trustvc-->>verifyDS: return verification result
else is W3C/TrustVC document
verifyDS->>trustvc: call verifyW3CSignature()
trustvc-->>verifyDS: return { verified, ... }
alt derivation required
verifyDS->>trustvc: call deriveW3C()
trustvc-->>verifyDS: return derived credential
end
end
alt verification successful
verifyDS-->>promptInputs: return (void)
promptInputs->>promptInputs: extract document info
promptInputs-->>Client: continue processing
else verification failed
verifyDS-->>promptInputs: throw error
promptInputs-->>Client: halt with error
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Poem
Tip Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs). 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 📦🚀 |
Overview
Adds document signature verification to all blockchain operations to prevent tampering before executing transactions.
Changes
New File
src/utils/document-verification.ts: ImplementsverifyDocumentSignature()function that validates both OpenAttestation (v2/v3) and W3C credential signaturesUpdated Commands
Document Store (5 files):
issue.ts,revoke.ts,grant-role.ts,revoke-role.ts,transfer-ownership.tsToken Registry (1 file):
mint.tsTitle Escrow (9 files):
accept-return-to-issuer.ts,endorse-transfer-owner.ts,nominate-transfer-owner.tsreject-return-to-issuer.ts,reject-transfer-holder.ts,reject-transfer-owner.ts,reject-transfer-owner-holder.tsreturn-to-issuer.ts,transfer-holder.ts,transfer-owner-holder.tsTest Updates
Updated 26 test files to mock verification functions (
isWrappedV2Document,isWrappedV3Document,verifyOASignature,verifyW3CSignature,deriveW3C,verifyDocumentSignature)Impact
Security Enhancement
Documents are now validated for tampering at the earliest point in each command's execution flow, immediately after reading the document and before any blockchain interactions.
Summary by CodeRabbit
New Features
Tests