libid_contracts/lib.rs
1//! Typed bindings, embedded forge artifacts, and deploy/upgrade helpers for
2//! the libid identity stack.
3//!
4//! The crate has four layers:
5//!
6//! - [`bindings`] — hand-written `alloy::sol!` interfaces for every contract a
7//! consumer talks to: the ceremony verification path (`NotaryService`,
8//! `CeremonyProofVerifier`, and `GoogleJwtRoots`, the Google signing keys
9//! the `google/v1` verifier trusts), the naming system (`IdentityNames`),
10//! and the deterministic factory. Kept in lockstep with the Solidity
11//! sources in `solidity/contracts`.
12//! - [`artifacts`] — the compiled creation bytecode, link references, and
13//! method identifiers of every deployable contract, embedded at compile time
14//! ([`Artifacts::embedded`]) so deployment needs no filesystem at runtime. A
15//! directory-backed variant ([`Artifacts::from_dir`]) reads a forge `out/`
16//! tree instead.
17//! - [`deploy`] — generic deploy and upgrade primitives over any alloy
18//! [`Provider`](alloy::providers::Provider): plain deploys, constructor
19//! args, ERC1967 proxies, library linking, and UUPS upgrades.
20//! - [`factory`] — the deterministic-factory bootstrap: predict the canonical
21//! cross-network factory address, install it (and the keyless CREATE2
22//! deployer it hangs off) where missing, and deploy protocol proxies
23//! through it at name-derived CREATE3 addresses.
24//!
25//! Signing is the consumer's concern: every helper takes a provider you have
26//! already wired with a wallet.
27
28pub mod artifacts;
29pub mod bindings;
30pub mod deploy;
31mod error;
32pub mod factory;
33
34pub use artifacts::Artifacts;
35pub use error::{
36 Error,
37 Result,
38};