libid-contracts
Typed alloy bindings, embedded forge
artifacts, and deploy/upgrade helpers for the libid identity stack: the
ceremony verification path (NotaryService, CeremonyProofVerifier, and
GoogleJwtRoots, the signing keys the google/v1 verifier trusts), the
naming system (IdentityNames), and the deterministic deployment factory
(LibidFactory).
The compiled artifacts are vendored into the crate, so a consumer can deploy
or upgrade the whole stack against a live network with zero filesystem
dependencies at runtime. They are generated, not committed:
scripts/vendor-artifacts.sh produces artifacts/ from solidity/ and CI
runs it before every build, test and publish. Working in this repo, run it
once after cloning — the crate embeds the directory with include_dir!, so
until it exists cargo build fails at macro expansion. Signing stays on the
consumer's side: every helper is generic over an alloy Provider you have
already wired with a wallet.
Example: deploy the Notary Service and the Google JWT root list
use ;
use ;
async
Other entry points:
deploy::upgrade_uups— deploy a fresh implementation andupgradeToAndCalla UUPS proxy onto it.factory::ensure_factory/factory::factory_deploy— install the canonical cross-network factory where missing and deploy protocol proxies through it at name-derived CREATE3 addresses.deploy::load_linked_bytecode(orArtifacts::linked_bytecode) — deploys and links external libraries before returning the creation bytecode. Nothing covered today links one; the UltraHonk verifiers the ceremony circuits bring will.Artifacts::method_identifiers— selector extraction from the vendoredmethodIdentifiers.
Testing
Unit tests run everywhere; the integration tests in tests/anvil.rs spawn
anvil (foundry) and deploy the stack for real. From rust/: