UNPKG

@human-0/posh-sdk

Version:

TypeScript SDK for Proof of Sustainable Humanity (PoSH) identity management

1 lines 65.4 kB
{"version":3,"sources":["../src/contracts/registry.ts","../src/utils/errors.ts","../src/utils/validation.ts","../src/utils/cache.ts","../src/contracts/abis.ts","../src/core/IdentityManager.ts","../src/core/ProofManager.ts","../src/core/ScoreManager.ts","../src/core/EventManager.ts","../src/core/PoshClient.ts","../src/types/proof.ts","../src/providers/ViemProvider.ts","../src/index.ts","../src/contracts/addresses.ts","../src/utils/formatting.ts"],"names":["KNOWN_DEPLOYMENTS","ErrorCode","getDeployment","ProofTier"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Contract Registry - Support for multiple contract deployments\n * \n * This allows the SDK to work with any PoSH-compatible contract deployment,\n * not just a single authority's contracts.\n */\n\nimport type { Address } from '../types';\nimport type { ContractAddresses } from './addresses';\n\nexport interface ContractDeployment {\n name: string;\n description: string;\n chainId: number;\n addresses: ContractAddresses;\n deployer?: Address;\n deployedAt?: Date;\n verified?: boolean;\n}\n\n/**\n * Registry of known PoSH contract deployments\n * Anyone can add their deployment here or use custom addresses\n */\nexport const KNOWN_DEPLOYMENTS: Record<string, ContractDeployment> = {\n // Official HUMAN-0 deployment on Base Sepolia (testnet)\n 'human0-base-sepolia': {\n name: 'HUMAN-0 Base Sepolia',\n description: 'Official HUMAN-0 testnet deployment',\n chainId: 84532,\n addresses: {\n humanIdentity: '0x00000000000000000000000000000000000000001' as Address,\n proofRegistry: '0x00000000000000000000000000000000000000002' as Address,\n poshNFT: '0x00000000000000000000000000000000000000003' as Address,\n humanScore: '0x00000000000000000000000000000000000000004' as Address,\n },\n verified: false, // Will be true once deployed and verified\n },\n\n // Official HUMAN-0 deployment on Base Mainnet\n 'human0-base-mainnet': {\n name: 'HUMAN-0 Base Mainnet',\n description: 'Official HUMAN-0 mainnet deployment',\n chainId: 8453,\n addresses: {\n humanIdentity: '0x00000000000000000000000000000000000000011' as Address,\n proofRegistry: '0x00000000000000000000000000000000000000012' as Address,\n poshNFT: '0x00000000000000000000000000000000000000013' as Address,\n humanScore: '0x00000000000000000000000000000000000000014' as Address,\n },\n verified: false,\n },\n\n // Example: Community deployment\n // 'community-optimism': {\n // name: 'Community PoSH on Optimism',\n // description: 'Community-run PoSH deployment',\n // chainId: 10,\n // addresses: { ... },\n // },\n};\n\n/**\n * Get a known deployment by name\n */\nexport function getDeployment(name: string): ContractDeployment | null {\n return KNOWN_DEPLOYMENTS[name] || null;\n}\n\n/**\n * Register a new deployment (for community use)\n */\nexport function registerDeployment(\n name: string,\n deployment: ContractDeployment\n): void {\n KNOWN_DEPLOYMENTS[name] = deployment;\n}\n\n/**\n * List all known deployments\n */\nexport function listDeployments(): ContractDeployment[] {\n return Object.values(KNOWN_DEPLOYMENTS);\n}\n\n/**\n * Find deployments by chain ID\n */\nexport function getDeploymentsByChain(chainId: number): ContractDeployment[] {\n return Object.values(KNOWN_DEPLOYMENTS).filter(d => d.chainId === chainId);\n}\n","/**\n * Error classes and error handling utilities\n */\n\nexport class PoshSDKError extends Error {\n code: string;\n details?: unknown;\n remediation?: string;\n\n constructor(message: string, code: string, details?: unknown, remediation?: string) {\n super(message);\n this.name = 'PoshSDKError';\n this.code = code;\n this.details = details;\n this.remediation = remediation;\n }\n}\n\nexport class ValidationError extends PoshSDKError {\n constructor(message: string, details?: unknown, remediation?: string) {\n super(message, 'VALIDATION_ERROR', details, remediation);\n this.name = 'ValidationError';\n }\n}\n\nexport class ContractError extends PoshSDKError {\n contractName: string;\n functionName: string;\n revertReason?: string;\n\n constructor(\n message: string,\n contractName: string,\n functionName: string,\n revertReason?: string,\n details?: unknown,\n remediation?: string\n ) {\n super(message, 'CONTRACT_ERROR', details, remediation);\n this.name = 'ContractError';\n this.contractName = contractName;\n this.functionName = functionName;\n this.revertReason = revertReason;\n }\n}\n\nexport class NetworkError extends PoshSDKError {\n chainId: number;\n rpcUrl: string;\n\n constructor(\n message: string,\n chainId: number,\n rpcUrl: string,\n details?: unknown,\n remediation?: string\n ) {\n super(message, 'NETWORK_ERROR', details, remediation);\n this.name = 'NetworkError';\n this.chainId = chainId;\n this.rpcUrl = rpcUrl;\n }\n}\n\nexport class ConfigurationError extends PoshSDKError {\n constructor(message: string, details?: unknown, remediation?: string) {\n super(message, 'CONFIGURATION_ERROR', details, remediation);\n this.name = 'ConfigurationError';\n }\n}\n\nexport enum ErrorCode {\n // Validation errors\n INVALID_ADDRESS = 'INVALID_ADDRESS',\n INVALID_HUMAN_ID = 'INVALID_HUMAN_ID',\n INVALID_CONFIG = 'INVALID_CONFIG',\n\n // Contract errors\n ALREADY_REGISTERED = 'ALREADY_REGISTERED',\n NOT_REGISTERED = 'NOT_REGISTERED',\n HUMAN_NOT_FOUND = 'HUMAN_NOT_FOUND',\n PROOF_NOT_FOUND = 'PROOF_NOT_FOUND',\n\n // Network errors\n RPC_ERROR = 'RPC_ERROR',\n NETWORK_TIMEOUT = 'NETWORK_TIMEOUT',\n RATE_LIMITED = 'RATE_LIMITED',\n\n // Transaction errors\n TRANSACTION_FAILED = 'TRANSACTION_FAILED',\n GAS_ESTIMATION_FAILED = 'GAS_ESTIMATION_FAILED',\n INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS',\n\n // Provider errors\n PROVIDER_NOT_CONNECTED = 'PROVIDER_NOT_CONNECTED',\n UNSUPPORTED_PROVIDER = 'UNSUPPORTED_PROVIDER',\n WALLET_DISCONNECTED = 'WALLET_DISCONNECTED',\n}\n","/**\n * Validation utilities for SDK inputs\n */\n\nimport type { PoshConfig, Address, HumanId } from '../types';\nimport { ValidationError } from './errors';\n\n/**\n * Validates an Ethereum address format\n */\nexport function isValidAddress(address: string): address is Address {\n return /^0x[a-fA-F0-9]{40}$/.test(address);\n}\n\n/**\n * Validates a humanId format (bytes32)\n */\nexport function isValidHumanId(_humanId: string): _humanId is HumanId {\n return /^0x[a-fA-F0-9]{64}$/.test(_humanId);\n}\n\n/**\n * Validates SDK configuration\n */\nexport function validateConfig(config: PoshConfig): void {\n // Validate chainId\n if (typeof config.chainId !== 'number' || config.chainId <= 0 || Number.isNaN(config.chainId)) {\n throw new ValidationError(\n 'Invalid chainId: must be a positive number',\n { chainId: config.chainId },\n 'Provide a valid chainId (e.g., 84532 for Base Sepolia, 8453 for Base Mainnet)'\n );\n }\n\n // Validate contract addresses\n if (!config.contracts) {\n throw new ValidationError(\n 'Missing contracts configuration',\n undefined,\n 'Provide contract addresses for humanIdentity, proofRegistry, poshNFT, and humanScore'\n );\n }\n\n const requiredContracts = ['humanIdentity', 'proofRegistry', 'poshNFT', 'humanScore'] as const;\n for (const contractName of requiredContracts) {\n const address = config.contracts[contractName];\n if (!address) {\n throw new ValidationError(\n `Missing contract address: ${contractName}`,\n { contractName },\n `Provide a valid address for ${contractName} contract`\n );\n }\n if (!isValidAddress(address)) {\n throw new ValidationError(\n `Invalid contract address for ${contractName}: ${address}`,\n { contractName, address },\n 'Provide a valid Ethereum address (0x followed by 40 hexadecimal characters)'\n );\n }\n }\n\n // Validate RPC URL if provided\n if (config.rpcUrl !== undefined) {\n if (typeof config.rpcUrl !== 'string' || config.rpcUrl.trim() === '') {\n throw new ValidationError(\n 'Invalid rpcUrl: must be a non-empty string',\n { rpcUrl: config.rpcUrl },\n 'Provide a valid RPC URL (e.g., https://sepolia.base.org)'\n );\n }\n try {\n new URL(config.rpcUrl);\n } catch {\n throw new ValidationError(\n `Invalid rpcUrl format: ${config.rpcUrl}`,\n { rpcUrl: config.rpcUrl },\n 'Provide a valid URL for the RPC endpoint'\n );\n }\n }\n\n // Validate cache configuration if provided\n if (config.cache !== undefined) {\n if (typeof config.cache.enabled !== 'boolean') {\n throw new ValidationError(\n 'Invalid cache.enabled: must be a boolean',\n { enabled: config.cache.enabled },\n 'Set cache.enabled to true or false'\n );\n }\n if (typeof config.cache.ttl !== 'number' || config.cache.ttl < 0) {\n throw new ValidationError(\n 'Invalid cache.ttl: must be a non-negative number',\n { ttl: config.cache.ttl },\n 'Set cache.ttl to a positive number in milliseconds (e.g., 60000 for 1 minute)'\n );\n }\n if (typeof config.cache.maxSize !== 'number' || config.cache.maxSize <= 0) {\n throw new ValidationError(\n 'Invalid cache.maxSize: must be a positive number',\n { maxSize: config.cache.maxSize },\n 'Set cache.maxSize to a positive number (e.g., 1000)'\n );\n }\n }\n\n // Validate retry configuration if provided\n if (config.retry !== undefined) {\n if (typeof config.retry.enabled !== 'boolean') {\n throw new ValidationError(\n 'Invalid retry.enabled: must be a boolean',\n { enabled: config.retry.enabled },\n 'Set retry.enabled to true or false'\n );\n }\n if (typeof config.retry.maxAttempts !== 'number' || config.retry.maxAttempts < 1) {\n throw new ValidationError(\n 'Invalid retry.maxAttempts: must be at least 1',\n { maxAttempts: config.retry.maxAttempts },\n 'Set retry.maxAttempts to a positive number (e.g., 3)'\n );\n }\n if (config.retry.backoff !== 'linear' && config.retry.backoff !== 'exponential') {\n throw new ValidationError(\n 'Invalid retry.backoff: must be \"linear\" or \"exponential\"',\n { backoff: config.retry.backoff },\n 'Set retry.backoff to either \"linear\" or \"exponential\"'\n );\n }\n if (typeof config.retry.initialDelay !== 'number' || config.retry.initialDelay < 0) {\n throw new ValidationError(\n 'Invalid retry.initialDelay: must be a non-negative number',\n { initialDelay: config.retry.initialDelay },\n 'Set retry.initialDelay to a positive number in milliseconds (e.g., 1000 for 1 second)'\n );\n }\n }\n}\n\n/**\n * Creates default configuration for Base Sepolia testnet\n */\nexport function createDefaultConfig(overrides?: Partial<PoshConfig>): PoshConfig {\n const defaultConfig: PoshConfig = {\n chainId: 84532, // Base Sepolia\n contracts: {\n // These are placeholder addresses - should be replaced with actual deployed addresses\n humanIdentity: '0x0000000000000000000000000000000000000001' as Address,\n proofRegistry: '0x0000000000000000000000000000000000000002' as Address,\n poshNFT: '0x0000000000000000000000000000000000000003' as Address,\n humanScore: '0x0000000000000000000000000000000000000004' as Address,\n },\n cache: {\n enabled: true,\n ttl: 60000, // 1 minute\n maxSize: 1000,\n },\n retry: {\n enabled: true,\n maxAttempts: 3,\n backoff: 'exponential',\n initialDelay: 1000, // 1 second\n },\n };\n\n return {\n ...defaultConfig,\n ...overrides,\n contracts: {\n ...defaultConfig.contracts,\n ...overrides?.contracts,\n },\n cache: overrides?.cache ? {\n ...defaultConfig.cache,\n ...overrides.cache,\n } : defaultConfig.cache,\n retry: overrides?.retry ? {\n ...defaultConfig.retry,\n ...overrides.retry,\n } : defaultConfig.retry,\n };\n}\n\n/**\n * Create configuration from a deployment name\n * This allows using pre-registered deployments\n */\nexport async function createConfigFromDeployment(\n deploymentName: string,\n overrides?: Partial<PoshConfig>\n): Promise<PoshConfig> {\n // Import dynamically to avoid circular dependency\n const { getDeployment } = await import('../contracts/registry');\n const deployment = getDeployment(deploymentName);\n \n if (!deployment) {\n throw new ValidationError(\n `Unknown deployment: ${deploymentName}`,\n { deploymentName },\n 'Use a known deployment name or provide custom contract addresses'\n );\n }\n\n return createDefaultConfig({\n chainId: deployment.chainId,\n contracts: deployment.addresses,\n ...overrides,\n });\n}\n\n/**\n * Validates an address and throws if invalid\n */\nexport function validateAddress(address: string, paramName: string = 'address'): Address {\n if (!isValidAddress(address)) {\n throw new ValidationError(\n `Invalid ${paramName}: ${address}`,\n { [paramName]: address },\n 'Provide a valid Ethereum address (0x followed by 40 hexadecimal characters)'\n );\n }\n return address;\n}\n\n/**\n * Validates a humanId and throws if invalid\n */\nexport function validateHumanId(_humanId: string, _paramName: string = 'humanId'): HumanId {\n if (!isValidHumanId(_humanId)) {\n throw new ValidationError(\n `Invalid ${_paramName}: ${_humanId}`,\n { [_paramName]: _humanId },\n 'Provide a valid humanId (0x followed by 64 hexadecimal characters)'\n );\n }\n return _humanId;\n}\n","/**\n * Simple in-memory cache with TTL support\n */\n\ninterface CacheEntry<T> {\n value: T;\n expiresAt: number;\n}\n\nexport class Cache<T = unknown> {\n private cache: Map<string, CacheEntry<T>> = new Map();\n private ttl: number;\n private maxSize: number;\n\n constructor(ttl: number = 60000, maxSize: number = 1000) {\n this.ttl = ttl;\n this.maxSize = maxSize;\n }\n\n set(key: string, value: T): void {\n // Evict oldest entries if cache is full\n if (this.cache.size >= this.maxSize) {\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n\n this.cache.set(key, {\n value,\n expiresAt: Date.now() + this.ttl,\n });\n }\n\n get(key: string): T | null {\n const entry = this.cache.get(key);\n \n if (!entry) {\n return null;\n }\n\n // Check if expired\n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return null;\n }\n\n return entry.value;\n }\n\n has(key: string): boolean {\n return this.get(key) !== null;\n }\n\n delete(key: string): void {\n this.cache.delete(key);\n }\n\n clear(): void {\n this.cache.clear();\n }\n\n size(): number {\n return this.cache.size;\n }\n}\n","/**\n * Contract ABIs\n * \n * Note: These are minimal placeholder ABIs until actual contracts are available\n */\n\n// Minimal HumanIdentity ABI\nexport const HUMAN_IDENTITY_ABI = [\n {\n type: 'function',\n name: 'register',\n inputs: [],\n outputs: [{ name: 'humanId', type: 'bytes32' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'isRegistered',\n inputs: [{ name: 'wallet', type: 'address' }],\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getHumanId',\n inputs: [{ name: 'wallet', type: 'address' }],\n outputs: [{ name: '', type: 'bytes32' }],\n stateMutability: 'view',\n },\n {\n type: 'event',\n name: 'HumanRegistered',\n inputs: [\n { name: 'humanId', type: 'bytes32', indexed: true },\n { name: 'wallet', type: 'address', indexed: true },\n { name: 'timestamp', type: 'uint256', indexed: false },\n ],\n },\n] as const;\n\n// Minimal ProofRegistry ABI\nexport const PROOF_REGISTRY_ABI = [\n {\n type: 'function',\n name: 'getProofCount',\n inputs: [{ name: 'humanId', type: 'bytes32' }],\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getProof',\n inputs: [{ name: 'proofId', type: 'bytes32' }],\n outputs: [\n { name: 'humanId', type: 'bytes32' },\n { name: 'impactType', type: 'uint8' },\n { name: 'impactValue', type: 'uint256' },\n { name: 'tier', type: 'uint8' },\n { name: 'timestamp', type: 'uint256' },\n ],\n stateMutability: 'view',\n },\n {\n type: 'event',\n name: 'ProofRegistered',\n inputs: [\n { name: 'proofId', type: 'bytes32', indexed: true },\n { name: 'humanId', type: 'bytes32', indexed: true },\n { name: 'impactType', type: 'uint8', indexed: false },\n { name: 'impactValue', type: 'uint256', indexed: false },\n { name: 'tier', type: 'uint8', indexed: false },\n ],\n },\n] as const;\n\n// Minimal HumanScore ABI\nexport const HUMAN_SCORE_ABI = [\n {\n type: 'function',\n name: 'getScore',\n inputs: [{ name: 'humanId', type: 'bytes32' }],\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getLevel',\n inputs: [{ name: 'humanId', type: 'bytes32' }],\n outputs: [{ name: '', type: 'uint8' }],\n stateMutability: 'view',\n },\n] as const;\n\n// Minimal PoSHNFT ABI\nexport const POSH_NFT_ABI = [\n {\n type: 'function',\n name: 'balanceOf',\n inputs: [{ name: 'owner', type: 'address' }],\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n },\n] as const;\n","/**\n * IdentityManager - handles identity operations\n */\n\nimport type { Address, HumanId, PoshConfig } from '../types';\nimport type { BaseProvider } from '../providers';\nimport { Cache } from '../utils/cache';\nimport { validateAddress } from '../utils/validation';\nimport { HUMAN_IDENTITY_ABI } from '../contracts/abis';\nimport { PoshSDKError } from '../utils/errors';\nimport type { Hash } from 'viem';\n\nexport interface RegisterResult {\n hash: Hash;\n humanId: HumanId;\n}\n\nexport interface TransactionResult {\n hash: Hash;\n}\n\nexport class IdentityManager {\n private config: PoshConfig;\n private cache: Cache;\n private provider?: BaseProvider;\n\n constructor(config: PoshConfig, provider?: BaseProvider) {\n this.config = config;\n this.provider = provider;\n this.cache = new Cache(\n config.cache?.ttl || 60000,\n config.cache?.maxSize || 1000\n );\n }\n\n /**\n * Check if an address is registered\n * Note: Mock implementation - returns false until contracts are deployed\n */\n async isRegistered(address: Address): Promise<boolean> {\n validateAddress(address);\n \n const cacheKey = `isRegistered:${address}`;\n const cached = this.cache.get(cacheKey);\n if (cached !== null) {\n return cached as boolean;\n }\n\n // Mock: Always return false for now\n const result = false;\n \n if (this.config.cache?.enabled) {\n this.cache.set(cacheKey, result);\n }\n\n return result;\n }\n\n /**\n * Get humanId for an address\n * Note: Mock implementation - returns null until contracts are deployed\n */\n async getHumanId(address: Address): Promise<HumanId | null> {\n validateAddress(address);\n \n const cacheKey = `humanId:${address}`;\n const cached = this.cache.get(cacheKey);\n if (cached !== null) {\n return cached as HumanId | null;\n }\n\n // Mock: Always return null for now\n const result = null;\n \n if (this.config.cache?.enabled) {\n this.cache.set(cacheKey, result);\n }\n\n return result;\n }\n\n /**\n * Get wallet address for a humanId\n * Note: Mock implementation\n */\n async getWallet(_humanId: HumanId): Promise<Address> {\n // Mock: Return zero address\n return '0x0000000000000000000000000000000000000000' as Address;\n }\n\n /**\n * Get registration time for a humanId\n * Note: Mock implementation\n */\n async getRegistrationTime(_humanId: HumanId): Promise<Date> {\n // Mock: Return current date\n return new Date();\n }\n\n /**\n * Register a new identity\n * Requires a provider with write capabilities\n */\n async register(): Promise<RegisterResult> {\n if (!this.provider) {\n throw new PoshSDKError(\n 'Provider required for write operations',\n 'PROVIDER_REQUIRED',\n 'Initialize PoshClient with a provider that supports write operations'\n );\n }\n\n try {\n // Call register function on HumanIdentity contract\n const hash = await this.provider.writeContract({\n address: this.config.contracts.humanIdentity,\n abi: HUMAN_IDENTITY_ABI as unknown as any[],\n functionName: 'register',\n args: [],\n });\n\n // Wait for transaction confirmation\n const receipt = await this.provider.waitForTransaction(hash);\n\n if (receipt.status !== 'success') {\n throw new PoshSDKError(\n 'Registration transaction failed',\n 'TRANSACTION_FAILED',\n 'The registration transaction was reverted. Please try again.'\n );\n }\n\n // Parse humanId from logs\n // In a real implementation, we'd parse the HumanRegistered event\n // For now, we'll return a placeholder\n const humanId = '0x0000000000000000000000000000000000000000000000000000000000000000' as HumanId;\n\n // Invalidate cache\n this.cache.clear();\n\n return {\n hash,\n humanId,\n };\n } catch (error) {\n if (error instanceof PoshSDKError) {\n throw error;\n }\n throw new PoshSDKError(\n 'Failed to register identity',\n 'REGISTRATION_FAILED',\n error instanceof Error ? error.message : 'Unknown error occurred'\n );\n }\n }\n\n /**\n * Link an external proof to identity\n * Requires a provider with write capabilities\n */\n async linkExternalProof(\n _proofHash: string,\n _provider: string\n ): Promise<TransactionResult> {\n if (!this.provider) {\n throw new PoshSDKError(\n 'Provider required for write operations',\n 'PROVIDER_REQUIRED',\n 'Initialize PoshClient with a provider that supports write operations'\n );\n }\n\n try {\n // This would call linkExternalProof on the contract\n // For now, throw not implemented\n throw new PoshSDKError(\n 'External proof linking not yet implemented',\n 'NOT_IMPLEMENTED',\n 'This feature will be available in a future version'\n );\n } catch (error) {\n if (error instanceof PoshSDKError) {\n throw error;\n }\n throw new PoshSDKError(\n 'Failed to link external proof',\n 'LINK_PROOF_FAILED',\n error instanceof Error ? error.message : 'Unknown error occurred'\n );\n }\n }\n\n /**\n * Estimate gas for registration\n */\n async estimateRegisterGas(): Promise<bigint> {\n if (!this.provider) {\n throw new PoshSDKError(\n 'Provider required for gas estimation',\n 'PROVIDER_REQUIRED',\n 'Initialize PoshClient with a provider'\n );\n }\n\n try {\n const gas = await this.provider.estimateGas({\n address: this.config.contracts.humanIdentity,\n abi: HUMAN_IDENTITY_ABI as unknown as any[],\n functionName: 'register',\n args: [],\n });\n\n return gas;\n } catch (error) {\n throw new PoshSDKError(\n 'Failed to estimate gas',\n 'GAS_ESTIMATION_FAILED',\n error instanceof Error ? error.message : 'Unknown error occurred'\n );\n }\n }\n\n /**\n * Estimate gas for linking external proof\n */\n async estimateLinkProofGas(): Promise<bigint> {\n if (!this.provider) {\n throw new PoshSDKError(\n 'Provider required for gas estimation',\n 'PROVIDER_REQUIRED',\n 'Initialize PoshClient with a provider'\n );\n }\n\n // Placeholder - would estimate actual linkExternalProof call\n return 150000n;\n }\n}\n","/**\n * ProofManager - handles proof queries and aggregations\n */\n\nimport type { HumanId, Proof, ProofQueryOptions, ImpactType, PoshConfig } from '../types';\nimport type { BaseProvider } from '../providers';\nimport { Cache } from '../utils/cache';\n\nexport class ProofManager {\n private config: PoshConfig;\n private cache: Cache;\n\n constructor(config: PoshConfig, _provider?: BaseProvider) {\n this.config = config;\n // Provider will be used for future write operations\n this.cache = new Cache(\n config.cache?.ttl || 60000,\n config.cache?.maxSize || 1000\n );\n }\n\n /**\n * Get all proofs for a humanId\n * Note: Mock implementation - returns empty array until contracts are deployed\n */\n async getHumanProofs(\n humanId: HumanId,\n options?: ProofQueryOptions\n ): Promise<Proof[]> {\n const cacheKey = `proofs:${humanId}:${JSON.stringify(options || {})}`;\n const cached = this.cache.get(cacheKey);\n if (cached !== null) {\n return cached as Proof[];\n }\n\n // Mock: Return empty array\n const result: Proof[] = [];\n \n if (this.config.cache?.enabled) {\n this.cache.set(cacheKey, result);\n }\n\n return result;\n }\n\n /**\n * Get proof count for a humanId\n * Note: Mock implementation\n */\n async getProofCount(humanId: HumanId): Promise<number> {\n const proofs = await this.getHumanProofs(humanId);\n return proofs.length;\n }\n\n /**\n * Get total impact for a humanId\n * Note: Mock implementation - returns 0 until contracts are deployed\n */\n async getTotalImpact(\n humanId: HumanId,\n impactType?: ImpactType\n ): Promise<bigint> {\n const proofs = await this.getHumanProofs(humanId);\n \n if (impactType) {\n return proofs\n .filter(p => p.impactType === impactType)\n .reduce((sum, p) => sum