Skip to content

chore!: remove libid-attestations, the builders for removed contracts - #6

Merged
xgreenx merged 2 commits into
feat/ceremony-constructionsfrom
chore/remove-libid-attestations
Sep 8, 2026
Merged

xgreenx merged 2 commits into
feat/ceremony-constructionsfrom
chore/remove-libid-attestations

Conversation

@xgreenx

@xgreenx xgreenx commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #2 (feat/ceremony-constructions). Two commits.

1. libid-attestations goes

It builds digests for Solidity that is no longer there. libid-contracts#21 removed the legacy login and transfer stack: _verifyNotarySignature, JwksOracle, XZkVerifier and the registry identity hash are all gone from libid-contracts main. The crate's own tests are named token_attest_digest_matches_solidity and me_attest_digest_matches_solidity, and there is no Solidity left for them to match — they now pin one Rust implementation against another Rust expectation.

Nothing in this workspace uses it. The only in-repo mention was a doc line in libid-crypto, which now points at libid-ceremony.

Ordering. Its last consumer is the notary's JWKS path (src/jwks/mock.rs, src/jwks/notary.rs on main, #3 and #6). libid-org/notary#7 removes that usage by making the JWKS reading an ordinary notarized session verified through NotaryService. Those branches pin a fixed revision of this repository, so they keep resolving against a tree that still has the crate; only a pin moved past this commit needs #7 in first.

Consumers outside the stack are unaffected. identity-backend and handles-backend call compute_notary_digest but pin the v0.2.0 and v0.1.0 release tags. Those published versions stay on crates.io — this just means there is no 0.3.0 of the crate.

2. The release surface follows the code

Removing a crate is half of it. The manifests, the README and the publish lists still described a workspace two crates and three types out of date, and nothing checks any of it:

  • libid-transcript kept a ts feature and an optional ts-rs dependency. Every ts_rs::TS derive went with EvmProof, so --features ts compiled ts-rs and derived nothing. No consumer enables it, so this was weight rather than breakage.
  • Its description — the string crates.io shows — still advertised "the EvmProof/NotaryResponse proof types". Both were deleted in feat: the ceremony wire constructions — digest, PKCE, attested data, reveal layouts #2. TlsHandshakeData survives and AttestationWire is new; the description names those.
  • The README had no libid-ceremony row, documented the derive that no longer exists, and its usage sketch built an EvmProof.
  • libid-ceremony carries no publish = false and was in neither publish-crates.sh nor the publish dry-run. A publishable crate nothing publishes is a v0.3.0 that ships an incomplete workspace. It goes after libid-crypto, which it depends on.

libid-ceremony's description also called the record "the section 9.1 types"; §9.1 is attestation verification and its fee, as #7 spells out.

Verification

  • cargo +nightly fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace — 93 passed
  • cargo publish --dry-run -p libid-crypto -p libid-transcript -p libid-ceremony -p libid-signer — all four pack and rebuild from the packaged tarball

Siblings

#7 (requirement citations) and #8 (reveal layouts) sit on the same base and touch different files.

Every digest this crate builds mirrors a Solidity routine that no longer
exists. libid-contracts#21 removed the legacy login and transfer stack, so
`_verifyNotarySignature`, `JwksOracle`, `XZkVerifier` and the registry
identity hash are gone from that repository's main -- and the tests here
named `token_attest_digest_matches_solidity` and
`me_attest_digest_matches_solidity` have no Solidity left to match.

Nothing in this workspace uses it. Its last consumer is the notary's JWKS
path, which libid-org/notary#7 drops by making the JWKS reading an ordinary
notarized session verified through `NotaryService`. The notary branches that
still call it pin a fixed revision of this repository, so they resolve
against a tree that still carries the crate; only a pin moved past this
commit needs #7 first.

The two backends that call `compute_notary_digest` pin the v0.1.0 and v0.2.0
release tags and are untouched. Those published versions stay on crates.io;
there is simply no 0.3.0 of this crate.

`libid-ceremony` now holds the one byte layout a Solidity decoder has to
agree with, and libid-crypto's doc line points there instead.

Assisted-by: Claude Opus 5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
@xgreenx
xgreenx marked this pull request as ready for review September 7, 2026 22:02
@xgreenx xgreenx self-assigned this Sep 7, 2026
Removing a crate is half of it. The manifests, the README and the publish
lists still describe a workspace that is two crates and three types out of
date, and none of that is checked by anything:

  * `libid-transcript` keeps a `ts` feature and an optional `ts-rs`
    dependency. Every `ts_rs::TS` derive went with `EvmProof`, so
    `--features ts` now compiles ts-rs and derives nothing. No consumer
    enables it, so this is weight rather than breakage.
  * Its `description` -- the string crates.io shows -- still advertises "the
    EvmProof/NotaryResponse proof types". Both were deleted. `TlsHandshakeData`
    survives and `AttestationWire` is new, so the description names those.
  * The README table has no `libid-ceremony` row, its feature-flag section
    documents the derive that no longer exists, and its usage sketch builds an
    `EvmProof`.
  * `libid-ceremony` carries no `publish = false`, and was in neither
    `publish-crates.sh` nor the publish dry-run. A publishable crate that
    nothing publishes is a v0.3.0 that ships an incomplete workspace. It goes
    after `libid-crypto`, which it depends on.

Its description also called the record "the section 9.1 types". Section 9.1 is
attestation verification and its fee; the layout is the profile's under
REQ-COMMON-18, as the sibling PR spells out.

Verified with the dry-run in the batch form CI uses -- all four crates pack
and rebuild from the packaged tarball.

Assisted-by: Claude Opus 5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
@xgreenx
xgreenx merged commit 02b3240 into feat/ceremony-constructions Sep 8, 2026
7 checks passed
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.

1 participant