8000 refactor!: remove unused DidWebVhLogEntry.toJson() by marat-affinidi · Pull Request #292 · affinidi/affinidi-ssi-dart · GitHub
[go: up one dir, main page]

Skip to content

refactor!: remove unused DidWebVhLogEntry.toJson() - #292

Open
marat-affinidi wants to merge 1 commit into
mainfrom
chore/webvh-log-tojson-cleanup
Open

marat-affinidi wants to merge 1 commit into
mainfrom
chore/webvh-log-tojson-cleanup

Conversation

@marat-affinidi
Copy link
Copy Markdown
Contributor

What

Removes the now-unused DidWebVhLogEntry.toJson() method.

Why

Follow-up to #290. That fix made SCID and entry-hash verification run over the entry's published JSON (_sourceJson) instead of a typed round-trip, because rebuilding from typed fields can change the canonical form (e.g. a single-element service.type array collapsing to a string) and break the recomputed SCID.

After that change, DidWebVhLogEntry.toJson() has no production caller — this is a read/resolve-only library with no log-writing/signing path. Its only remaining use was one date-format unit test. Keeping it around is a footgun: it invites re-serializing the typed model for hashing, which is exactly the bug #290 fixed.

This addresses the review question on #290 about whether toJson() should stay.

Changes

  • Remove DidWebVhLogEntry.toJson().
  • Drop the obsolete entry-level assertion from the "whole-second UTC" test; proof-level serialization coverage (DidWebVhLogEntryProof.toJson()) remains.
  • Tidy two doc comments that referenced the removed method.

Breaking change

DidWebVhLogEntry.toJson() is public (exported via lib/ssi.dart) and has been removed.

Verification

After verifying SCID/entry-hash over the published JSON (#290), the typed
toJson() had no production caller. Removing it prevents reintroducing the
bug where the typed round-trip (e.g. single-element service.type arrays)
diverges from the signed bytes.

BREAKING CHANGE: DidWebVhLogEntry.toJson() has been removed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@marat-affinidi
marat-affinidi requested a review from a team as a code owner July 1, 2026 17:17
@github-actions
github-actions Bot commented Jul 1, 2026
Copy link
Copy Markdown

Coverage after merging chore/webvh-log-tojson-cleanup into main will be

79.14%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
lib/src
   types.dart70.83%100%100%70.83%122, 159–160, 172, 174, 189, 244
   digest_utils.dart100%100%100%100%
   utility.dart100%100%100%100%
lib/src/credentials/jwt
   jwt_data_model_v1.dart100%100%100%100%
   jwt_dm_v1_suite.dart86.27%100%100%86.27%100, 102, 39, 41, 59, 74, 76
lib/src/credentials/linked_data
   ld_base_suite.dart93.44%100%100%93.44%120, 122, 168, 171
   ld_dm_v1_suite.dart100%100%100%100%
   ld_dm_v2_suite.dart100%100%100%100%
lib/src/credentials/models
   sdjwt_signer_adapter.dart100%100%100%100%
lib/src/credentials/models/field_types
   issuer.dart100%100%100%100%
   context.dart85.96%100%100%85.96%171, 173, 206–211
   credential_schema.dart100%100%100%100%
   credential_subject.dart72.97%100%100%72.97%38, 55, 57–58, 61, 64–65, 70–71, 94
   evidence.dart76.47%100%100%76.47%50–52, 54
   holder.dart100%100%100%100%
   terms_of_use.dart75%100%100%75%46–48, 50
lib/src/credentials/models/field_types/credential_status
   revocation_list_2020.dart20.90%100%100%20.90%101–104, 107, 110–112, 114–116, 118–120, 122–124, 14, 171, 173, 175–182, 22–27, 65, 68–75, 81, 84–85, 87–88, 90–91, 93–94, 99
   v1.dart72.73%100%100%72.73%60–61, 71, 73–76, 78, 82–83, 88–89
   v2.dart72.73%100%100%72.73%59–60, 70, 72–75, 77, 81–82, 87–88
lib/src/credentials/models/field_types/refresh_service
   v1.dart76.47%100%100%76.47%46–48, 50
   v2.dart18.18%100%100%18.18%35–36, 38, 55–56, 61, 66–67, 69
lib/src/credentials/models/v1
   mutable_vc_data_model_v1.dart88.14%100%100%88.14%154, 202–203, 209–210, 216, 222
   vc_data_model_v1.dart91.27%100%100%91.27%160, 162–163, 187–189, 212–215, 218
lib/src/credentials/models/v2
   mutable_vc_data_model_v2.dart84.75%100%100%84.75%179, 185–186, 196–197, 204–205, 211, 217
   vc_data_model_v2.dart90.76%100%100%90.76%165–167, 190–193, 196, 316, 322, 326
lib/src/credentials/parsers
   jwt_parser.dart88.89%100%100%88.89%51, 53
   ld_parser.dart85.71%100%100%85.71%26
   sdjwt_parser.dart70%100%100%70%40, 56, 58
lib/src/credentials/presentations/linked_data
   ld_vp_dm_v1_suite.dart100%100%100%100%
   ld_vp_dm_v2_suite.dart100%100%100%100%
lib/src/credentials/presentations/models
   vc_parse_present.dart57.14%100%100%57.14%101, 104, 109–110, 35–37, 62–64, 88–89, 92–97
lib/src/credentials/presentations/models/v1
   mutable_vp_data_model_v1.dart48.15%100%100%48.15%102, 75, 81–82, 84–86, 88, 90, 92, 94–95, 98–99
   vp_data_model_v1.dart88.52%100%100%88.52%111, 113, 138, 143, 84, 86–87
lib/src/credentials/presentations/models/v2
   vp_data_model_v2.dart88.06%100%100%88.06%116, 118, 142, 147, 205, 89, 91–92
   mutable_vp_data_model_v2.dart46.88%100%100%46.88%101–102, 105–106, 109, 111–112, 115, 81, 87–88, 90, 92–93, 95, 97, 99
lib/src/credentials/presentations/suites
   universal_presentation_parser.dart42.86%100%100%42.86%21–22, 24–25
   universal_presentation_verifier.dart90.63%100%100%90.63%106–108
   vp_suites.dart61.54%100%100%61.54%31, 33, 53–55
lib/src/credentials/presentations/verification
   delegation_vc_verifier.dart100%100%100%100%
   holder_binding_verifier.dart94.87%100%100%94.87%64–65
   vp_expiry_verifier.dart100%100%100%100%
   vp_integrity_verifier.dart100%100%100%100%
   vp_domain_challenge_verifier.dart75%100%100%75%36, 53–54, 62–63
lib/src/credentials/proof
   data_integrity_ecdsa_suite.dart77.98%100%100%77.98%143, 152, 155, 158, 161, 164, 171, 174, 181, 268, 272, 274–275, 350, 355, 384, 386, 404, 408, 410–411, 52, 54–55
   data_integrity_eddsa_suite.dart80%100%100%80%137, 146, 149, 152, 155, 158, 165, 168, 175, 181, 49, 51–52
   ecdsa_secp256k1_signature2019_suite.dart75.61%100%100%75.61%125, 130–131, 133, 135–136, 138, 140–141, 143, 145–146, 148, 152–153, 155, 158, 76, 78, 81
   embedded_proof_suite.dart100%100%100%100%
   jcs_utils.dart49.06%100%100%49.06%17, 193, 196, 199–202, 221, 225, 229, 240–241, 249, 252, 42, 44–45, 53, 55, 61, 64, 72–73, 75, 79, 81, 84
   embedded_proof.dart75%100%100%75%107–108, 110, 117, 158–159, 165–167, 169, 183, 191, 197, 199, 91, 96–97
   base_data_integrity_verifier.dart63.50%100%100%63.50%101–102, 116–119, 123–127, 154–159, 183–184, 211, 213, 215–216, 219, 222–223, 227–228, 302, 304–305, 339, 344–345, 347, 349–350, 352, 354–355, 357, 359–360, 362, 365–366, 368, 371, 87–88
   proof_validation_utils.dart100%100%100%100%
   base_jcs_generator.dart100%100%100%100%
   data_integrity_context_util.dart60%100%100%60%14, 23, 25, 31, 35, 37
   base_jcs_verifier.dart72.73%100%100%72.73%101, 103–104, 115, 117–118, 153–154, 184–187, 189,

@ivan-branets-affinidi
Copy link
Copy Markdown
Contributor

This is an interface change, so this is a breaking change. Let's keep it.

This branch has not been deployed

No deployments
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.

2 participants

0