Service Architecture
Service Clients
Section titled “Service Clients”Chain Contract Client
Section titled “Chain Contract Client”Provides cached access to chain configs, RPC URLs, contract ABIs, and registry addresses. The ChainContractClient handles:
- Network configuration with 5-minute cache
- Contract ABI retrieval with 1-minute cache
- Registry address lookup for component registration
- Chain support validation
Compile Service Client
Section titled “Compile Service Client”HTTP client with compile(), verify(), health() methods. Throws on non-2xx responses and handles:
- Source code compilation without bytecode verification
- Contract verification against on-chain bytecode
- Solidity compilation with StandardJsonInput format
EAS Service Client
Section titled “EAS Service Client”Service binding wrapper for EAS worker with tRPC communication and error handling:
- Code verification attestation requests
- Component ID generation using keccak256 hash
- Workflow tracking with process identifiers
Deployer Lookup Service
Section titled “Deployer Lookup Service”Multi-source lookup service using Alchemy API with block explorer fallback for contract deployment data:
- Deployer address discovery
- Creation transaction details
- Block number and timestamp retrieval
Storage Services
Section titled “Storage Services”Pinata IPFS Service
Section titled “Pinata IPFS Service”Pinata IPFS client handling JSON bundle uploads with automatic versioning and CID retrieval:
- Verification bundle storage with metadata
- Enrichment bundle upload with versioning
- Decentralized storage integration
Workflow Submission Client
Section titled “Workflow Submission Client”HTTP client for workflow submission service that validates categories, maps to registry types, and constructs contract calls for blockchain component registration.