Home / Input Output / atala-prism
Mar 05, 5-6 PM (0)
Mar 05, 6-7 PM (0)
Mar 05, 7-8 PM (0)
Mar 05, 8-9 PM (0)
Mar 05, 9-10 PM (0)
Mar 05, 10-11 PM (0)
Mar 05, 11-12 AM (0)
Mar 06, 12-1 AM (0)
Mar 06, 1-2 AM (0)
Mar 06, 2-3 AM (0)
Mar 06, 3-4 AM (0)
Mar 06, 4-5 AM (0)
Mar 06, 5-6 AM (0)
Mar 06, 6-7 AM (0)
Mar 06, 7-8 AM (0)
Mar 06, 8-9 AM (0)
Mar 06, 9-10 AM (0)
Mar 06, 10-11 AM (0)
Mar 06, 11-12 PM (0)
Mar 06, 12-1 PM (0)
Mar 06, 1-2 PM (0)
Mar 06, 2-3 PM (0)
Mar 06, 3-4 PM (0)
Mar 06, 4-5 PM (0)
Mar 06, 5-6 PM (0)
Mar 06, 6-7 PM (0)
Mar 06, 7-8 PM (0)
Mar 06, 8-9 PM (0)
Mar 06, 9-10 PM (0)
Mar 06, 10-11 PM (0)
Mar 06, 11-12 AM (0)
Mar 07, 12-1 AM (0)
Mar 07, 1-2 AM (0)
Mar 07, 2-3 AM (0)
Mar 07, 3-4 AM (0)
Mar 07, 4-5 AM (0)
Mar 07, 5-6 AM (0)
Mar 07, 6-7 AM (0)
Mar 07, 7-8 AM (0)
Mar 07, 8-9 AM (0)
Mar 07, 9-10 AM (0)
Mar 07, 10-11 AM (0)
Mar 07, 11-12 PM (0)
Mar 07, 12-1 PM (0)
Mar 07, 1-2 PM (0)
Mar 07, 2-3 PM (0)
Mar 07, 3-4 PM (0)
Mar 07, 4-5 PM (0)
Mar 07, 5-6 PM (0)
Mar 07, 6-7 PM (0)
Mar 07, 7-8 PM (0)
Mar 07, 8-9 PM (0)
Mar 07, 9-10 PM (0)
Mar 07, 10-11 PM (0)
Mar 07, 11-12 AM (0)
Mar 08, 12-1 AM (0)
Mar 08, 1-2 AM (0)
Mar 08, 2-3 AM (0)
Mar 08, 3-4 AM (0)
Mar 08, 4-5 AM (0)
Mar 08, 5-6 AM (0)
Mar 08, 6-7 AM (0)
Mar 08, 7-8 AM (0)
Mar 08, 8-9 AM (0)
Mar 08, 9-10 AM (0)
Mar 08, 10-11 AM (0)
Mar 08, 11-12 PM (0)
Mar 08, 12-1 PM (0)
Mar 08, 1-2 PM (0)
Mar 08, 2-3 PM (0)
Mar 08, 3-4 PM (0)
Mar 08, 4-5 PM (0)
Mar 08, 5-6 PM (0)
Mar 08, 6-7 PM (0)
Mar 08, 7-8 PM (0)
Mar 08, 8-9 PM (0)
Mar 08, 9-10 PM (0)
Mar 08, 10-11 PM (0)
Mar 08, 11-12 AM (0)
Mar 09, 12-1 AM (0)
Mar 09, 1-2 AM (0)
Mar 09, 2-3 AM (0)
Mar 09, 3-4 AM (0)
Mar 09, 4-5 AM (0)
Mar 09, 5-6 AM (0)
Mar 09, 6-7 AM (0)
Mar 09, 7-8 AM (0)
Mar 09, 8-9 AM (0)
Mar 09, 9-10 AM (0)
Mar 09, 10-11 AM (0)
Mar 09, 11-12 PM (0)
Mar 09, 12-1 PM (0)
Mar 09, 1-2 PM (0)
Mar 09, 2-3 PM (0)
Mar 09, 3-4 PM (0)
Mar 09, 4-5 PM (0)
Mar 09, 5-6 PM (0)
Mar 09, 6-7 PM (0)
Mar 09, 7-8 PM (0)
Mar 09, 8-9 PM (0)
Mar 09, 9-10 PM (0)
Mar 09, 10-11 PM (0)
Mar 09, 11-12 AM (0)
Mar 10, 12-1 AM (0)
Mar 10, 1-2 AM (0)
Mar 10, 2-3 AM (0)
Mar 10, 3-4 AM (0)
Mar 10, 4-5 AM (0)
Mar 10, 5-6 AM (0)
Mar 10, 6-7 AM (0)
Mar 10, 7-8 AM (0)
Mar 10, 8-9 AM (0)
Mar 10, 9-10 AM (0)
Mar 10, 10-11 AM (0)
Mar 10, 11-12 PM (0)
Mar 10, 12-1 PM (1)
Mar 10, 1-2 PM (0)
Mar 10, 2-3 PM (0)
Mar 10, 3-4 PM (0)
Mar 10, 4-5 PM (0)
Mar 10, 5-6 PM (0)
Mar 10, 6-7 PM (0)
Mar 10, 7-8 PM (0)
Mar 10, 8-9 PM (0)
Mar 10, 9-10 PM (0)
Mar 10, 10-11 PM (0)
Mar 10, 11-12 AM (0)
Mar 11, 12-1 AM (0)
Mar 11, 1-2 AM (0)
Mar 11, 2-3 AM (0)
Mar 11, 3-4 AM (0)
Mar 11, 4-5 AM (0)
Mar 11, 5-6 AM (0)
Mar 11, 6-7 AM (0)
Mar 11, 7-8 AM (0)
Mar 11, 8-9 AM (0)
Mar 11, 9-10 AM (0)
Mar 11, 10-11 AM (0)
Mar 11, 11-12 PM (0)
Mar 11, 12-1 PM (0)
Mar 11, 1-2 PM (0)
Mar 11, 2-3 PM (0)
Mar 11, 3-4 PM (0)
Mar 11, 4-5 PM (0)
Mar 11, 5-6 PM (0)
Mar 11, 6-7 PM (0)
Mar 11, 7-8 PM (0)
Mar 11, 8-9 PM (0)
Mar 11, 9-10 PM (0)
Mar 11, 10-11 PM (0)
Mar 11, 11-12 AM (0)
Mar 12, 12-1 AM (0)
Mar 12, 1-2 AM (0)
Mar 12, 2-3 AM (0)
Mar 12, 3-4 AM (0)
Mar 12, 4-5 AM (0)
Mar 12, 5-6 AM (0)
Mar 12, 6-7 AM (0)
Mar 12, 7-8 AM (0)
Mar 12, 8-9 AM (0)
Mar 12, 9-10 AM (0)
Mar 12, 10-11 AM (0)
Mar 12, 11-12 PM (0)
Mar 12, 12-1 PM (0)
Mar 12, 1-2 PM (0)
Mar 12, 2-3 PM (0)
Mar 12, 3-4 PM (0)
Mar 12, 4-5 PM (0)
Mar 12, 5-6 PM (0)
1 commits this week Mar 05, 2026 - Mar 12, 2026
fix(vdr): reject VDR operations containing unknown protobuf fields (#890)
VDR storage operations (CreateStorageEntry, UpdateStorageEntry,
DeactivateStorageEntry) that carry unknown protobuf fields are now
rejected with a ValidationError during parsing.

Unknown fields indicate a schema mismatch or a malformed/tampered
message. Accepting them silently could cause two nodes running
different protocol versions to diverge on stored VDR state.

SSI operations (CreateDID, UpdateDID, DeactivateDID) are intentionally
left lenient so future protocol extensions remain forward-compatible.

The guard is implemented as a private helper
`ensureNoVdrUnknownFields(outer, inner)` that checks both the outer
AtalaOperation wrapper and the inner storage operation message using
ScalaPB's `unknownFields: UnknownFieldSet` field present on every
generated message.

Four new tests cover:
- parseCreate rejects unknown fields on the inner message
- parseCreate rejects unknown fields on the outer AtalaOperation wrapper
- parseUpdate rejects unknown fields on the inner message
- parseDeactivate rejects unknown fields on the inner message

Signed-off-by: Yurii Shynbuiev <[email protected]>