libid-contracts
Typed alloy bindings, embedded forge
artifacts, and deploy/upgrade helpers for the libid contract stack: the login
contracts (Registry, WebWallet, WalletFactory, verifiers), the Bank
EIP-2535 diamond, and the identity-names contracts.
The compiled artifacts are vendored into the crate
(scripts/vendor-artifacts.sh regenerates them from solidity/), so a
consumer can deploy or upgrade the whole stack against a live network with
zero filesystem dependencies at runtime. 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 login stack
use ;
use ;
async
Other entry points:
diamond::deploy_bank_diamond/diamond::replace_bank_facets— the Bank EIP-2535 deploy and facet upgrade.deploy::load_linked_bytecode(orArtifacts::linked_bytecode) — deploys and links external libraries (ZKTranscriptLibfor the generated UltraHonk verifiers) before returning the creation bytecode.deploy::upgrade_uups— deploy a fresh implementation andupgradeToAndCalla UUPS proxy onto it.Artifacts::facet_selectors/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 every stack for real. From rust/: