@dcentralab/d402-client 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/errors.ts","../src/parser.ts","../src/constants.ts","../src/utils.ts","../src/signer.ts","../src/encoder.ts","../src/selector.ts","../src/client.ts","../src/index.ts","../src/contracts/abis/sepolia.json","../src/contracts/abis/localhost.json","../src/contracts/addresses/proxies.json","../src/contracts/addresses/implementations.json","../src/contracts.ts","../src/wallet.ts"],"names":["PaymentError","PaymentAmountExceededError","MissingRequestConfigError","PaymentAlreadyAttemptedError","UnsupportedSchemeError","PaymentVerificationError","Invalid402ResponseError","UnsupportedNetworkError","isAddress","CHAIN_IDS","NETWORKS","TOKEN_ADDRESSES","DEFAULT_VALIDITY_WINDOW_SECONDS","EIP712_TYPES","parseAllPaymentRequirements","signD402Payment","encodePayment","ContractName","privateKeyToAccount","sepolia","localhost","http","createPublicClient","createWalletClient","decodeEventLog"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Error classes for D402 payment protocol\n */\n\n/**\n * Base error class for all payment-related errors\n */\nexport class PaymentError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'PaymentError'\n Object.setPrototypeOf(this, PaymentError.prototype)\n }\n}\n\n/**\n * Thrown when payment amount exceeds the configured maximum allowed value\n */\nexport class PaymentAmountExceededError extends PaymentError {\n constructor(\n public amount: bigint,\n public maxAmount: bigint,\n public tokenAddress?: string\n ) {\n super(\n `Payment amount ${amount} ${tokenAddress ? `(token: ${tokenAddress})` : ''} exceeds maximum allowed value ${maxAmount} base units. ` +\n `Note: This comparison does not account for token differences or decimals.`\n )\n this.name = 'PaymentAmountExceededError'\n Object.setPrototypeOf(this, PaymentAmountExceededError.prototype)\n }\n}\n\n/**\n * Thrown when request configuration is missing required fields\n */\nexport class MissingRequestConfigError extends PaymentError {\n constructor(message: string) {\n super(message)\n this.name = 'MissingRequestConfigError'\n Object.setPrototypeOf(this, MissingRequestConfigError.prototype)\n }\n}\n\n/**\n * Thrown when payment has already been attempted for a request\n */\nexport class PaymentAlreadyAttemptedError extends PaymentError {\n constructor(message: string = 'Payment has already been attempted for this request') {\n super(message)\n this.name = 'PaymentAlreadyAttemptedError'\n Object.setPrototypeOf(this, PaymentAlreadyAttemptedError.prototype)\n }\n}\n\n/**\n * Thrown when no supported payment scheme is found in payment requirements\n */\nexport class UnsupportedSchemeError extends PaymentError {\n constructor(\n public availableSchemes: string[],\n message: string = 'No supported payment scheme found'\n ) {\n super(`${message}. Available schemes: ${availableSchemes.join(', ')}`)\n this.name = 'UnsupportedSchemeError'\n Object.setPrototypeOf(this, UnsupportedSchemeError.prototype)\n }\n}\n\n/**\n * Thrown when payment verification fails\n */\nexport class PaymentVerificationError extends PaymentError {\n constructor(message: string) {\n super(message)\n this.name = 'PaymentVerificationError'\n Object.setPrototypeOf(this, PaymentVerificationError.prototype)\n }\n}\n\n/**\n * Thrown when HTTP 402 response is malformed\n */\nexport class Invalid402ResponseError extends PaymentError {\n constructor(message: string) {\n super(message)\n this.name = 'Invalid402ResponseError'\n Object.setPrototypeOf(this, Invalid402ResponseError.prototype)\n }\n}\n\n/**\n * Thrown when network is not supported\n */\nexport class UnsupportedNetworkError extends PaymentError {\n constructor(public network: string) {\n super(`Network '${network}' is not supported`)\n this.name = 'UnsupportedNetworkError'\n Object.setPrototypeOf(this, UnsupportedNetworkError.prototype)\n }\n}\n\n","/**\n * Parse 402 payment requirements from HTTP responses\n * \n * Matches Python implementation: IATP/src/traia_iatp/d402/clients/httpx.py lines 64-66\n * Response structure from: IATP/src/traia_iatp/d402/types.py d402PaymentRequiredResponse\n */\n\nimport { isAddress } from 'viem'\nimport type { PaymentRequirement, D402Response } from './types'\nimport { Invalid402ResponseError } from './errors'\n\n/**\n * Validate payment requirement has all required fields.\n * \n * Matches Python: PaymentRequirements model validation\n * \n * @param requirement - Payment requirement to validate\n * @throws {Invalid402ResponseError} If validation fails\n */\nfunction validatePaymentRequirement(requirement: PaymentRequirement): void {\n const requiredFields: (keyof PaymentRequirement)[] = [\n 'scheme',\n 'network',\n 'maxAmountRequired',\n 'payTo',\n 'asset'\n ]\n\n for (const field of requiredFields) {\n if (!requirement[field]) {\n throw new Invalid402ResponseError(\n `Payment requirement missing required field: ${field}`\n )\n }\n }\n\n // Validate maxAmountRequired is numeric string (matches Python validator)\n try {\n BigInt(requirement.maxAmountRequired)\n } catch {\n throw new Invalid402ResponseError(\n 'max_amount_required must be an integer encoded as a string'\n )\n }\n\n // Validate addresses using viem (matches Python Web3.to_checksum_address validation)\n if (!isAddress(requirement.payTo, { strict: false })) {\n throw new Invalid402ResponseError(\n `Invalid payTo address format: ${requirement.payTo}`\n )\n }\n\n if (!isAddress(requirement.asset, { strict: false })) {\n throw new Invalid402ResponseError(\n `Invalid asset address format: ${requirement.asset}`\n )\n }\n}\n\n/**\n * Parse payment requirements from HTTP 402 response.\n * \n * Matches Python: \n * data = response.json()\n * payment_response = d402PaymentRequiredResponse(**data)\n * \n * The 402 response body contains payment requirements in camelCase JSON format.\n * \n * @param response - HTTP Response object with status 402\n * @returns First payment requirement from accepts array\n * @throws {Invalid402ResponseError} If response is not valid 402 or malformed\n * \n * @example\n * ```ts\n * const response = await fetch('http://api.example.com')\n * if (response.status === 402) {\n * const requirement = await parsePaymentRequirement(response)\n * console.log(requirement.maxAmountRequired) // \"10000\"\n * }\n * ```\n */\nexport async function parsePaymentRequirement(response: Response): Promise<PaymentRequirement> {\n if (response.status !== 402) {\n throw new Invalid402ResponseError(\n `Expected 402 response, got ${response.status}`\n )\n }\n\n let data: D402Response\n try {\n data = await response.json() as D402Response\n } catch (error) {\n throw new Invalid402ResponseError(\n `Failed to parse 402 response JSON: ${error instanceof Error ? error.message : 'unknown error'}`\n )\n }\n\n // Validate required fields\n if (!data.d402Version && data.d402Version !== 0) {\n throw new Invalid402ResponseError('Missing d402Version field in 402 response')\n }\n\n // Handle both formats: array (accepts) or single requirement at root\n let requirements: PaymentRequirement[]\n\n if (data.accepts && Array.isArray(data.accepts)) {\n // Standard format with accepts array\n requirements = data.accepts\n } else if (data.scheme && data.network && data.maxAmountRequired) {\n // Legacy format: payment requirement at root level\n requirements = [data as PaymentRequirement]\n } else {\n throw new Invalid402ResponseError(\n 'Invalid 402 response: missing accepts array or payment requirement fields'\n )\n }\n\n if (requirements.length === 0) {\n throw new Invalid402ResponseError('402 response has empty accepts array')\n }\n\n // Return first requirement (Python behavior: client selects from accepts)\n const requirement = requirements[0]\n\n // Validate required fields in payment requirement\n validatePaymentRequirement(requirement)\n\n return requirement\n}\n\n/**\n * Parse all payment requirements from 402 response.\n * \n * Similar to parsePaymentRequirement but returns all options instead of just first.\n * Useful when client needs to choose from multiple payment options.\n * \n * @param response - HTTP Response object with status 402\n * @returns Array of all payment requirements\n * @throws {Invalid402ResponseError} If response is invalid\n * \n * @example\n * ```ts\n * const response = await fetch('http://api.example.com')\n * const allOptions = await parseAllPaymentRequirements(response)\n * // Choose based on network, token, etc.\n * const preferred = allOptions.find(r => r.network === 'base-mainnet')\n * ```\n */\nexport async function parseAllPaymentRequirements(\n response: Response\n): Promise<PaymentRequirement[]> {\n if (response.status !== 402) {\n throw new Invalid402ResponseError(\n `Expected 402 response, got ${response.status}`\n )\n }\n\n let data: D402Response\n try {\n data = await response.json() as D402Response\n } catch (error) {\n throw new Invalid402ResponseError(\n `Failed to parse 402 response JSON: ${error instanceof Error ? error.message : 'unknown error'}`\n )\n }\n\n if (!data.d402Version && data.d402Version !== 0) {\n throw new Invalid402ResponseError('Missing d402Version field in 402 response')\n }\n\n let requirements: PaymentRequirement[]\n\n if (data.accepts && Array.isArray(data.accepts)) {\n requirements = data.accepts\n } else if (data.scheme && data.network && data.maxAmountRequired) {\n requirements = [data as PaymentRequirement]\n } else {\n throw new Invalid402ResponseError(\n 'Invalid 402 response: missing accepts array or payment requirement fields'\n )\n }\n\n // Validate all requirements\n for (const req of requirements) {\n validatePaymentRequirement(req)\n }\n\n return requirements\n}\n\n","/**\n * Network and token constants\n */\n\nimport type { SupportedNetwork } from './types'\n\n/**\n * Chain IDs for supported networks\n */\nexport const CHAIN_IDS: Record<SupportedNetwork, number> = {\n mainnet: 1,\n sepolia: 11155111,\n base: 8453,\n polygon: 137\n} as const\n\n/**\n * Network configuration\n */\nexport const NETWORKS: Record<SupportedNetwork, {\n chainId: number\n name: string\n nativeCurrency: { name: string; symbol: string; decimals: number }\n}> = {\n mainnet: {\n chainId: 1,\n name: 'Ethereum Mainnet',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }\n },\n sepolia: {\n chainId: 11155111,\n name: 'Sepolia Testnet',\n nativeCurrency: { name: 'Sepolia Ether', symbol: 'SEP', decimals: 18 }\n },\n base: {\n chainId: 8453,\n name: 'Base',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }\n },\n polygon: {\n chainId: 137,\n name: 'Polygon',\n nativeCurrency: { name: 'MATIC', symbol: 'MATIC', decimals: 18 }\n }\n} as const\n\n/**\n * Default USDC token addresses per network\n */\nexport const TOKEN_ADDRESSES: Record<SupportedNetwork, `0x${string}`> = {\n mainnet: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n sepolia: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n base: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',\n polygon: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'\n} as const\n\n/**\n * Default payment validity window (5 minutes)\n */\nexport const DEFAULT_VALIDITY_WINDOW_SECONDS = 300\n\n/**\n * EIP-712 type definitions for PullFundsForSettlement\n */\nexport const EIP712_TYPES = {\n PullFundsForSettlement: [\n { name: 'wallet', type: 'address' },\n { name: 'provider', type: 'address' },\n { name: 'token', type: 'address' },\n { name: 'amount', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'requestPath', type: 'string' }\n ]\n} as const\n\n","/**\n * Utility functions for D402 payment processing\n */\n\nimport { TOKEN_ADDRESSES } from './constants'\nimport type { PaymentRequirement, SupportedNetwork } from './types'\nimport { UnsupportedNetworkError } from './errors'\n\n/**\n * Parse a money string or number into atomic units (wei)\n * \n * @param amount - Amount as string (e.g., \"$1.00\", \"1.5\") or number\n * @param decimals - Token decimals (e.g., 6 for USDC, 18 for ETH)\n * @returns Amount in atomic units (wei)\n * \n * @example\n * parseMoney(\"$1.00\", 6) // Returns 1000000n (1 USDC in wei)\n * parseMoney(\"0.5\", 18) // Returns 500000000000000000n (0.5 ETH in wei)\n */\nexport function parseMoney(amount: string | number | bigint, decimals: number): bigint {\n // If already a bigint, return as-is\n if (typeof amount === 'bigint') {\n return amount\n }\n\n // If number, convert to bigint\n if (typeof amount === 'number') {\n return BigInt(Math.floor(amount))\n }\n\n // Handle string\n let amountStr = amount.trim()\n\n // Remove $ prefix if present\n if (amountStr.startsWith('$')) {\n amountStr = amountStr.slice(1)\n }\n\n // Parse the decimal number\n const [whole = '0', fraction = '0'] = amountStr.split('.')\n\n // Pad or truncate fraction to match decimals\n const paddedFraction = fraction.padEnd(decimals, '0').slice(0, decimals)\n\n // Combine whole and fraction\n const atomicAmount = BigInt(whole + paddedFraction)\n\n return atomicAmount\n}\n\n/**\n * Format atomic units back to human-readable format\n * \n * @param amount - Amount in atomic units (wei)\n * @param decimals - Token decimals\n * @returns Formatted string\n * \n * @example\n * formatMoney(1000000n, 6) // Returns \"1.000000\"\n */\nexport function formatMoney(amount: bigint, decimals: number): string {\n const amountStr = amount.toString().padStart(decimals + 1, '0')\n const whole = amountStr.slice(0, -decimals) || '0'\n const fraction = amountStr.slice(-decimals)\n return `${whole}.${fraction}`\n}\n\n/**\n * Get USDC token address for a given network\n * \n * @param network - Network name\n * @returns USDC token address\n * \n * @throws {UnsupportedNetworkError} If network is not supported\n */\nexport function getUsdcAddress(network: SupportedNetwork): `0x${string}` {\n const address = TOKEN_ADDRESSES[network]\n if (!address) {\n throw new UnsupportedNetworkError(network)\n }\n return address\n}\n\n/**\n * Get chain ID for a given network.\n * \n * Matches Python: get_chain_id(network: str) -> str (chains.py lines 10-21)\n * \n * Supports both network names and numeric chain IDs as strings.\n * \n * @param network - Network name or chain ID as string\n * @returns Chain ID as number\n * \n * @throws {UnsupportedNetworkError} If network is not supported\n * \n * @example\n * ```ts\n * getChainId('sepolia') // Returns 11155111\n * getChainId('11155111') // Returns 11155111 (passthrough)\n * getChainId('base') // Returns 8453\n * ```\n */\nexport function getChainId(network: string): number {\n // If network is already a numeric string, return it as number\n // Matches Python lines 14-16\n const parsed = parseInt(network, 10)\n if (!isNaN(parsed) && parsed.toString() === network) {\n return parsed\n }\n\n // Map known network names to chain IDs\n const networkMap: Record<string, number> = {\n 'sepolia': 11155111,\n 'base-sepolia': 84532,\n 'base': 8453,\n 'base-mainnet': 8453,\n 'mainnet': 1,\n 'polygon': 137,\n 'arbitrum-sepolia': 421614,\n 'arbitrum-mainnet': 42161,\n 'avalanche-fuji': 43113,\n 'avalanche': 43114,\n 'localhost': 31337\n }\n\n const chainId = networkMap[network]\n if (!chainId) {\n throw new UnsupportedNetworkError(network)\n }\n\n return chainId\n}\n\n/**\n * Find matching payment requirement from a list\n * \n * @param requirements - List of payment requirements\n * @param scheme - Desired payment scheme (default: \"exact\")\n * @param network - Desired network (optional)\n * @returns Matching payment requirement or undefined\n */\nexport function findMatchingPaymentRequirement(\n requirements: PaymentRequirement[],\n scheme: string = 'exact',\n network?: string\n): PaymentRequirement | undefined {\n return requirements.find(req => {\n const schemeMatches = req.scheme === scheme\n const networkMatches = !network || req.network === network\n return schemeMatches && networkMatches\n })\n}\n\n/**\n * Convert USD amount to USDC atomic units\n * \n * @param usdAmount - Amount in USD (e.g., \"1.00\" or 1.5)\n * @param decimals - USDC decimals (default: 6)\n * @returns Amount in USDC atomic units\n * \n * @example\n * usdToUsdc(\"1.00\") // Returns 1000000n\n * usdToUsdc(1.5) // Returns 1500000n\n */\nexport function usdToUsdc(usdAmount: string | number, decimals: number = 6): bigint {\n return parseMoney(usdAmount, decimals)\n}\n\n/**\n * Generate a random nonce for payment authorization\n * \n * @returns Random 32-byte nonce as hex string\n */\nexport function generateNonce(): `0x${string}` {\n const bytes = new Uint8Array(32)\n crypto.getRandomValues(bytes)\n return `0x${Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('')}`\n}\n\n/**\n * Get current timestamp in seconds\n * \n * @returns Unix timestamp in seconds\n */\nexport function getCurrentTimestamp(): number {\n return Math.floor(Date.now() / 1000)\n}\n\n/**\n * Validate Ethereum address format\n * \n * @param address - Address to validate\n * @returns True if valid Ethereum address\n */\nexport function isValidAddress(address: string): boolean {\n return /^0x[a-fA-F0-9]{40}$/.test(address)\n}\n\n/**\n * Normalize Ethereum address to checksummed format\n * Note: This is a simple lowercase normalization. For full checksum validation, use viem's getAddress()\n * \n * @param address - Address to normalize\n * @returns Normalized address\n */\nexport function normalizeAddress(address: string): `0x${string}` {\n return address.toLowerCase() as `0x${string}`\n}\n\n/**\n * Sleep for specified milliseconds (useful for retries)\n * \n * @param ms - Milliseconds to sleep\n */\nexport function sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\n/**\n * Decode X-PAYMENT-RESPONSE header from server\n * \n * @param header - Base64 encoded payment response\n * @returns Decoded payment response\n * \n * @example\n * const response = decodePaymentResponse(responseHeader)\n * console.log(response.success, response.transaction)\n */\nexport function decodePaymentResponse(header: string): {\n success: boolean\n transaction?: string\n network?: string\n payer?: string\n message?: string\n} {\n try {\n const decoded = Buffer.from(header, 'base64').toString('utf-8')\n return JSON.parse(decoded)\n } catch (error) {\n throw new Error(`Failed to decode payment response: ${error}`)\n }\n}\n\n","/**\n * EIP-712 payment signing utilities\n * \n * Matches Python implementation: IATP/src/traia_iatp/d402/payment_signing.py\n */\n\nimport type { Account } from 'viem/accounts'\nimport type { PaymentRequirement, SignedPayment } from './types'\nimport { generateNonce, getCurrentTimestamp } from './utils'\nimport { getChainId } from './utils'\nimport { EIP712_TYPES } from './constants'\n\n/**\n * Sign a D402 payment using EIP-712 signature.\n * \n * Matches Python: sign_payment_header(operator_account, payment_requirements, header, wallet_address, request_path)\n * (payment_signing.py lines 54-155)\n * \n * This creates a PullFundsForSettlement signature that matches IATPWallet.sol validation.\n * \n * @param params - Signing parameters\n * @param params.operatorAccount - Operator account with private key for signing (EOA)\n * @param params.paymentRequirement - Payment requirements from 402 response\n * @param params.walletAddress - Consumer's IATPWallet contract address (optional, uses operator address if not provided)\n * @param params.requestPath - API request path (optional, uses payment_requirements.resource if not provided)\n * @returns Signed payment ready to encode and send\n * \n * @example\n * ```ts\n * const requirement = await parsePaymentRequirement(response)\n * const signedPayment = await signD402Payment({\n * operatorAccount: account,\n * paymentRequirement: requirement,\n * walletAddress: '0xUserWallet...'\n * })\n * const encoded = encodePayment(signedPayment)\n * ```\n */\nexport async function signD402Payment(params: {\n operatorAccount: Account\n paymentRequirement: PaymentRequirement\n walletAddress?: `0x${string}`\n requestPath?: string\n d402Version?: number\n}): Promise<SignedPayment> {\n const {\n operatorAccount,\n paymentRequirement,\n walletAddress,\n requestPath,\n d402Version = 1\n } = params\n\n // Get wallet address (IATPWallet contract, not EOA)\n // Matches Python line 89: consumer_wallet = wallet_address or auth[\"from\"]\n const consumerWallet = walletAddress || operatorAccount.address\n\n // Get request path from payment_requirements if not provided\n // Matches Python lines 92-100\n let finalRequestPath = requestPath || paymentRequirement.resource || '/mcp'\n\n if (!finalRequestPath || finalRequestPath.trim() === '') {\n finalRequestPath = '/mcp'\n }\n\n // Generate nonce and timestamps\n // Matches Python lines 25-27 in prepare_payment_header\n const nonce = generateNonce()\n const now = getCurrentTimestamp()\n const validAfter = (now - 60).toString() // 60 seconds before\n const validBefore = (now + (paymentRequirement.maxTimeoutSeconds || 300)).toString()\n\n // Get domain info from payment_requirements.extra\n // Matches Python lines 103-105\n const extra = paymentRequirement.extra\n const walletName = extra?.name || 'IATPWallet'\n const walletVersion = extra?.version || '1'\n const chainId = getChainId(paymentRequirement.network)\n\n // Build EIP-712 typed data for PullFundsForSettlement\n // Matches Python lines 109-135\n const domain = {\n name: walletName,\n version: walletVersion,\n chainId: chainId,\n verifyingContract: consumerWallet\n } as const\n\n const message = {\n wallet: consumerWallet,\n provider: paymentRequirement.payTo,\n token: paymentRequirement.asset,\n amount: BigInt(paymentRequirement.maxAmountRequired),\n deadline: BigInt(validBefore),\n requestPath: finalRequestPath\n } as const\n\n // Sign with EIP-712\n // Matches Python lines 137-144\n // Use viem's account.signTypedData method\n if (!operatorAccount.signTypedData) {\n throw new Error('Account does not support signTypedData')\n }\n\n const signature = await operatorAccount.signTypedData({\n domain,\n types: {\n PullFundsForSettlement: EIP712_TYPES.PullFundsForSettlement\n },\n primaryType: 'PullFundsForSettlement',\n message\n })\n\n // Build signed payment structure\n // Matches Python lines 146-150\n const signedPayment: SignedPayment = {\n d402Version,\n scheme: paymentRequirement.scheme,\n network: paymentRequirement.network,\n payload: {\n signature,\n authorization: {\n from: consumerWallet,\n to: paymentRequirement.payTo,\n value: paymentRequirement.maxAmountRequired,\n validAfter,\n validBefore,\n nonce,\n requestPath: finalRequestPath\n }\n }\n }\n\n return signedPayment\n}\n\n","/**\n * Base64 encoding/decoding for payment payloads\n * \n * Matches Python implementation: IATP/src/traia_iatp/d402/encoding.py\n */\n\nimport type { SignedPayment } from './types'\n\n/**\n * Safely encode string or bytes to base64 string.\n * \n * Matches Python: safe_base64_encode(data: Union[str, bytes]) -> str\n * \n * @param data - String or Buffer to encode\n * @returns Base64 encoded string\n * \n * @example\n * ```ts\n * const encoded = safeBase64Encode('{\"foo\": \"bar\"}')\n * // Returns: \"eyJmb28iOiAiYmFyIn0=\"\n * ```\n */\nexport function safeBase64Encode(data: string | Buffer): string {\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data\n return buffer.toString('base64')\n}\n\n/**\n * Safely decode base64 string to utf-8 string.\n * \n * Matches Python: safe_base64_decode(data: str) -> str\n * \n * @param data - Base64 encoded string\n * @returns Decoded utf-8 string\n * \n * @example\n * ```ts\n * const decoded = safeBase64Decode('eyJmb28iOiAiYmFyIn0=')\n * // Returns: '{\"foo\": \"bar\"}'\n * ```\n */\nexport function safeBase64Decode(data: string): string {\n return Buffer.from(data, 'base64').toString('utf-8')\n}\n\n/**\n * Encode a payment object to base64 string.\n * \n * This combines JSON serialization with base64 encoding.\n * Matches Python: encode_payment(payment_payload: Dict[str, Any]) -> str\n * \n * @param payment - Payment object to encode\n * @returns Base64 encoded payment string suitable for X-Payment header\n * \n * @example\n * ```ts\n * const payment = { d402Version: 1, scheme: 'exact', payload: {...} }\n * const encoded = encodePayment(payment)\n * // Use in header: { 'X-Payment': encoded }\n * ```\n */\nexport function encodePayment(payment: SignedPayment): string {\n const jsonString = JSON.stringify(payment)\n return safeBase64Encode(jsonString)\n}\n\n/**\n * Decode a base64 encoded payment string back to payment object.\n * \n * Matches Python: decode_payment(encoded_payment: str) -> Dict[str, Any]\n * \n * @param encodedPayment - Base64 encoded payment string\n * @returns Decoded payment object\n * \n * @example\n * ```ts\n * const payment = decodePayment(encodedString)\n * console.log(payment.d402Version) // 1\n * ```\n */\nexport function decodePayment(encodedPayment: string): SignedPayment {\n const jsonString = safeBase64Decode(encodedPayment)\n return JSON.parse(jsonString) as SignedPayment\n}\n\n","/**\n * Payment requirements selection logic\n */\n\nimport type { PaymentRequirement } from './types'\nimport { PaymentAmountExceededError, UnsupportedSchemeError } from './errors'\n\n/**\n * Options for selecting payment requirements\n */\nexport interface PaymentSelectorOptions {\n /** Filter by network (e.g., \"base-mainnet\") */\n network?: string\n\n /** Filter by payment scheme (default: \"exact\") */\n scheme?: string\n\n /** Maximum allowed payment amount in base units */\n maxAmount?: bigint\n\n /** Preferred network (will try this first) */\n preferredNetwork?: string\n\n /** Preferred token address */\n preferredToken?: string\n}\n\n/**\n * Select payment requirement from a list based on filters and preferences\n * \n * This function implements the same logic as Python's default_payment_requirements_selector\n * \n * @param requirements - List of accepted payment requirements from 402 response\n * @param options - Selection options and filters\n * @returns Selected payment requirement\n * \n * @throws {UnsupportedSchemeError} If no matching scheme found\n * @throws {PaymentAmountExceededError} If payment exceeds max amount\n * \n * @example\n * const selected = selectPaymentRequirement(requirements, {\n * scheme: 'exact',\n * network: 'base-mainnet',\n * maxAmount: 1000000n\n * })\n */\nexport function selectPaymentRequirement(\n requirements: PaymentRequirement[],\n options: PaymentSelectorOptions = {}\n): PaymentRequirement {\n const {\n network: networkFilter,\n scheme: schemeFilter = 'exact',\n maxAmount,\n preferredNetwork,\n preferredToken\n } = options\n\n // First pass: try to find preferred match\n if (preferredNetwork || preferredToken) {\n const preferred = findRequirement(requirements, {\n ...options,\n network: preferredNetwork || networkFilter,\n token: preferredToken\n })\n if (preferred) {\n return preferred\n }\n }\n\n // Second pass: find any matching requirement\n const selected = findRequirement(requirements, {\n scheme: schemeFilter,\n network: networkFilter,\n maxAmount\n })\n\n if (selected) {\n return selected\n }\n\n // No match found\n const availableSchemes = [...new Set(requirements.map(r => r.scheme))]\n throw new UnsupportedSchemeError(\n availableSchemes,\n `No payment requirement found matching filters (scheme: ${schemeFilter}, network: ${networkFilter || 'any'})`\n )\n}\n\n/**\n * Internal helper to find a requirement matching filters\n */\nfunction findRequirement(\n requirements: PaymentRequirement[],\n filters: {\n scheme?: string\n network?: string\n token?: string\n maxAmount?: bigint\n }\n): PaymentRequirement | undefined {\n for (const req of requirements) {\n // Check scheme filter\n if (filters.scheme && req.scheme !== filters.scheme) {\n continue\n }\n\n // Check network filter\n if (filters.network && req.network !== filters.network) {\n continue\n }\n\n // Check token filter\n if (filters.token && req.asset !== filters.token) {\n continue\n }\n\n // Check max amount for \"exact\" scheme\n if (req.scheme === 'exact' && filters.maxAmount !== undefined) {\n const requiredAmount = BigInt(req.maxAmountRequired)\n\n if (requiredAmount > filters.maxAmount) {\n throw new PaymentAmountExceededError(\n requiredAmount,\n filters.maxAmount,\n req.asset\n )\n }\n }\n\n // All filters passed\n return req\n }\n\n return undefined\n}\n\n/**\n * Custom payment selector function type\n */\nexport type PaymentSelector = (\n requirements: PaymentRequirement[],\n options?: PaymentSelectorOptions\n) => PaymentRequirement\n\n/**\n * Create a custom payment selector with default options\n * \n * @param defaultOptions - Default options to apply\n * @returns Custom selector function\n * \n * @example\n * const selector = createPaymentSelector({\n * preferredNetwork: 'base-mainnet',\n * maxAmount: 1000000n\n * })\n * \n * const selected = selector(requirements, { scheme: 'exact' })\n */\nexport function createPaymentSelector(\n defaultOptions: PaymentSelectorOptions\n): PaymentSelector {\n return (requirements, options = {}) => {\n return selectPaymentRequirement(requirements, {\n ...defaultOptions,\n ...options\n })\n }\n}\n\n/**\n * Sort payment requirements by preference\n * Useful for UI display or debugging\n * \n * @param requirements - List of requirements\n * @param preferredNetwork - Preferred network name\n * @returns Sorted list (preferred first)\n */\nexport function sortPaymentRequirements(\n requirements: PaymentRequirement[],\n preferredNetwork?: string\n): PaymentRequirement[] {\n return [...requirements].sort((a, b) => {\n // Prefer \"exact\" scheme over others\n if (a.scheme === 'exact' && b.scheme !== 'exact') return -1\n if (a.scheme !== 'exact' && b.scheme === 'exact') return 1\n\n // Prefer specified network\n if (preferredNetwork) {\n if (a.network === preferredNetwork && b.network !== preferredNetwork) return -1\n if (a.network !== preferredNetwork && b.network === preferredNetwork) return 1\n }\n\n // Sort by amount (lower first)\n const amountA = BigInt(a.maxAmountRequired)\n const amountB = BigInt(b.maxAmountRequired)\n if (amountA < amountB) return -1\n if (amountA > amountB) return 1\n\n return 0\n })\n}\n\n","/**\n * D402 Client - Main client class for handling HTTP 402 payments\n * \n * Matches Python implementation: IATP/src/traia_iatp/d402/clients/base.py d402Client\n */\n\nimport type { Account } from 'viem/accounts'\nimport type { PaymentRequirement } from './types'\nimport { selectPaymentRequirement, type PaymentSelector } from './selector'\n\n/**\n * D402 Client configuration.\n * \n * Matches Python: d402Client.__init__ parameters (base.py lines 66-72)\n */\nexport interface D402ClientConfig {\n /** Operator account with private key for signing payments (EOA) */\n operatorAccount: Account\n\n /** \n * Consumer's IATPWallet contract address.\n * If not provided, uses operator_account.address for testing.\n */\n walletAddress?: `0x${string}`\n\n /**\n * Optional safety limit for maximum payment amount per request in base units.\n * \n * WARNING: This is a simple numeric comparison and does NOT account for:\n * - Different tokens (USDC vs TRAIA vs others) - amounts are compared directly\n * - Token decimals - ensure maxValue uses the same decimals as expected tokens\n * - Exchange rates - this is not a USD limit, it's a token amount limit\n * \n * Each endpoint can have different payment requirements (amount and token),\n * but this limit applies to all requests. Set it based on your most expensive\n * expected payment in the token's base units.\n * \n * If undefined, no limit is enforced (not recommended for production).\n */\n maxValue?: bigint\n\n /**\n * Optional custom selector for payment requirements.\n * If not provided, uses default selector that picks first \"exact\" scheme.\n */\n paymentRequirementsSelector?: PaymentSelector\n\n /**\n * Optional network filter for payment selection.\n * Only select requirements matching this network.\n */\n networkFilter?: string\n\n /**\n * Optional scheme filter for payment selection.\n * Defaults to \"exact\".\n */\n schemeFilter?: string\n}\n\n/**\n * D402 Client for handling HTTP 402 Payment Required responses.\n * \n * Matches Python: d402Client class (base.py lines 63-219)\n * \n * This client automatically:\n * 1. Detects HTTP 402 responses\n * 2. Parses payment requirements\n * 3. Selects appropriate payment option\n * 4. Signs payment with EIP-712\n * 5. Retries request with X-Payment header\n * \n * @example\n * ```ts\n * import { D402Client } from '@iatp/d402-client'\n * import { privateKeyToAccount } from 'viem/accounts'\n * \n * const operatorAccount = privateKeyToAccount('0x...')\n * \n * const client = new D402Client({\n * operatorAccount,\n * walletAddress: '0xUserIATPWallet...',\n * maxValue: 1000000n // 1 USDC max\n * })\n * \n * const response = await client.fetch('http://api.example.com/analyze', {\n * method: 'POST',\n * body: JSON.stringify({ text: 'Analyze this' })\n * })\n * \n * const data = await response.json()\n * ```\n */\nexport class D402Client {\n private readonly operatorAccount: Account\n private readonly walletAddress: `0x${string}`\n private readonly maxValue?: bigint\n private readonly paymentRequirementsSelector: PaymentSelector\n private readonly networkFilter?: string\n private readonly schemeFilter: string\n\n /**\n * Create a new D402 Client.\n * \n * Matches Python: d402Client.__init__ (base.py lines 66-95)\n * \n * @param config - Client configuration\n */\n constructor(config: D402ClientConfig) {\n // Matches Python lines 90-95\n this.operatorAccount = config.operatorAccount\n this.walletAddress = config.walletAddress || config.operatorAccount.address\n this.maxValue = config.maxValue\n this.networkFilter = config.networkFilter\n this.schemeFilter = config.schemeFilter || 'exact'\n\n // Use custom selector or default\n this.paymentRequirementsSelector = config.paymentRequirementsSelector || selectPaymentRequirement\n }\n\n /**\n * Select payment requirement from list of options.\n * \n * Matches Python: select_payment_requirements (base.py lines 152-174)\n * \n * @param requirements - List of payment requirements from 402 response\n * @returns Selected payment requirement\n */\n selectPaymentRequirement(requirements: PaymentRequirement[]): PaymentRequirement {\n return this.paymentRequirementsSelector(requirements, {\n network: this.networkFilter,\n scheme: this.schemeFilter,\n maxAmount: this.maxValue\n })\n }\n\n /**\n * Get the wallet address used for payments.\n * \n * @returns IATPWallet contract address or operator EOA address\n */\n getWalletAddress(): `0x${string}` {\n return this.walletAddress\n }\n\n /**\n * Get the operator account used for signing.\n * \n * @returns Operator account\n */\n getOperatorAccount(): Account {\n return this.operatorAccount\n }\n\n /**\n * Get the maximum payment value limit.\n * \n * @returns Maximum value in base units, or undefined if no limit\n */\n getMaxValue(): bigint | undefined {\n return this.maxValue\n }\n\n /**\n * Fetch with automatic 402 payment handling.\n * \n * Matches Python: HttpxHooks.on_response() (httpx.py lines 33-117)\n * \n * Flow:\n * 1. Make request without payment\n * 2. If 402 response, parse payment requirements\n * 3. Select appropriate payment option\n * 4. Sign payment with EIP-712\n * 5. Retry request with X-Payment header\n * 6. Return final response\n * \n * @param url - URL to fetch\n * @param init - Fetch options (method, headers, body, etc.)\n * @returns Response object (after payment if 402)\n * \n * @example\n * ```ts\n * const client = new D402Client({ operatorAccount, walletAddress })\n * \n * const response = await client.fetch('http://api.example.com/analyze', {\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json' },\n * body: JSON.stringify({ text: 'Analyze this' })\n * })\n * \n * const data = await response.json()\n * ```\n */\n async fetch(url: string, init?: RequestInit): Promise<Response> {\n // Import functions needed for 402 handling\n const { parseAllPaymentRequirements } = await import('./parser')\n const { signD402Payment } = await import('./signer')\n const { encodePayment } = await import('./encoder')\n\n // Make initial request without payment\n // Matches Python: response is passed to on_response hook\n let response = await fetch(url, init)\n\n // If not 402, return immediately\n // Matches Python lines 47-48\n if (response.status !== 402) {\n return response\n }\n\n // Handle 402 Payment Required\n // Matches Python lines 55-110\n try {\n // Parse all payment requirements from 402 response\n // Matches Python lines 64-66 (payment_response.accepts is list)\n const requirements = await parseAllPaymentRequirements(response)\n\n // Select payment requirement (applies filters and maxValue check)\n // Matches Python lines 69-71\n const selectedRequirement = this.selectPaymentRequirement(requirements)\n\n // Sign payment\n // Matches Python lines 78-84\n const signedPayment = await signD402Payment({\n operatorAccount: this.operatorAccount,\n paymentRequirement: selectedRequirement,\n walletAddress: this.walletAddress\n })\n\n // Encode payment for header\n // Matches Python line 80 (create_payment_header returns encoded)\n const paymentHeader = encodePayment(signedPayment)\n\n // Retry request with payment header\n // Matches Python lines 89-104\n response = await fetch(url, {\n ...init,\n headers: {\n ...init?.headers,\n 'X-Payment': paymentHeader,\n 'Access-Control-Expose-Headers': 'X-Payment-Response'\n }\n })\n\n return response\n\n } catch (error) {\n // Re-throw payment errors\n // Matches Python lines 112-117\n throw error\n }\n }\n}\n\n","/**\n * @iatp/d402-client\n * \n * D402 Payment Protocol Client for TypeScript/JavaScript\n * \n * @packageDocumentation\n */\n\n// Main exports\nexport { D402Client } from './client'\nexport type { D402ClientConfig } from './client'\n\n// Low-level utilities\nexport { signD402Payment } from './signer'\nexport { parsePaymentRequirement } from './parser'\nexport { encodePayment, decodePayment } from './encoder'\n\n// Payment selection\nexport {\n selectPaymentRequirement,\n createPaymentSelector,\n sortPaymentRequirements\n} from './selector'\nexport type { PaymentSelector, PaymentSelectorOptions } from './selector'\n\n// Utility functions\nexport {\n parseMoney,\n formatMoney,\n getUsdcAddress,\n getChainId,\n findMatchingPaymentRequirement,\n usdToUsdc,\n generateNonce,\n getCurrentTimestamp,\n isValidAddress,\n normalizeAddress,\n decodePaymentResponse\n} from './utils'\n\n// Error classes\nexport {\n PaymentError,\n PaymentAmountExceededError,\n MissingRequestConfigError,\n PaymentAlreadyAttemptedError,\n UnsupportedSchemeError,\n PaymentVerificationError,\n Invalid402ResponseError,\n UnsupportedNetworkError\n} from './errors'\n\n// Types\nexport type {\n D402Config,\n PaymentRequirement,\n SignedPayment,\n PaymentAuthorization,\n EIP712Domain,\n SupportedNetwork\n} from './types'\n\n// Constants\nexport { NETWORKS, TOKEN_ADDRESSES, CHAIN_IDS, DEFAULT_VALIDITY_WINDOW_SECONDS, EIP712_TYPES } from './constants'\n\n// Contracts\nexport {\n ContractName,\n getContractAddress,\n getContractAbi,\n getContractConfig,\n getAllContractAddresses,\n isContractDeployed\n} from './contracts'\nexport type { SupportedContractNetwork } from './contracts'\n\n// Wallet Management\nexport { createIATPWallet } from './wallet'\nexport type { WalletCreationResult } from './wallet'\n\n","{\n \"sepolia\": {\n \"IATPWallet\": [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ECDSAInvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"length\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureLength\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureS\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InsufficientBalance\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidAmount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidOperatorAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidOwnerAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidProvider\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidSettlementLayerAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidTokenAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotAuthorized\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotSettlementLayer\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"OnlyOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"PendingWithdrawalExists\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SafeERC20FailedOperation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"SignatureExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"TransferFailed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WithdrawalAlreadyExecuted\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WithdrawalLockupNotExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WithdrawalRequestNotFound\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operatorAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"settlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ClientInitialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [],\n \"name\": \"EIP712DomainChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"FundsDeposited\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"signer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"FundsTransferredToSettlement\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oldOperator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOperator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OperatorAddressUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"WithdrawalCancelled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WithdrawalExecuted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"requestedAt\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"unlockTime\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"WithdrawalRequested\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"BONDING_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"PROVIDER_ATTESTATION_TYPEHASH\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"PULL_FUNDS_FOR_SETTLEMENT_TYPEHASH\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"WITHDRAWAL_LOCKUP_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"cancelWithdrawal\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"deposit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"eip712Domain\",\n \"outputs\": [\n {\n \"internalType\": \"bytes1\",\n \"name\": \"fields\",\n \"type\": \"bytes1\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"salt\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"extensions\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"executeWithdrawal\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWithdrawalRequest\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"executed\",\n \"type\": \"bool\"\n }\n ],\n \"internalType\": \"struct IIATPWallet.WithdrawalRequest\",\n \"name\": \"request\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"unlockTime\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_roleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_operatorAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_settlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isMaintainer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"operatorAddress\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"pullFundsForSettlement\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"requestWithdrawal\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"roleManager\",\n \"outputs\": [\n {\n \"internalType\": \"contract IRoleManager\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"settlementLayer\",\n \"outputs\": [\n {\n \"internalType\": \"contract IIATPSettlementLayer\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newOperatorAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"updateOperatorAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"validateConsumerSignature\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"validateProviderAttestation\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawAllFromSettlement\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawEpochFromSettlement\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawalRequests\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"executed\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n }\n ],\n \"RoleManager\": [\n {\n \"inputs\": [],\n \"name\": \"AccessControlBadConfirmation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"neededRole\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"AccessControlUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"previousAdminRole\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"newAdminRole\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"RoleAdminChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleGranted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleRevoked\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAINTAINER_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"maintainer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"addMaintainer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getDefaultAdmin\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"getRoleAdmin\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getRoleMember\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"getRoleMemberCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"getRoleMembers\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"grantRole\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"hasRole\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"congress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address[]\",\n \"name\": \"maintainers\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"maintainer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"removeMaintainer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"callerConfirmation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"renounceRole\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"revokeRole\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes4\",\n \"name\": \"interfaceId\",\n \"type\": \"bytes4\"\n }\n ],\n \"name\": \"supportsInterface\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newAdmin\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferDefaultAdmin\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n }\n ],\n \"IATPSettlementLayer\": [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"AmountMustBePositive\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ArrayLengthMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"CannotReleaseEpochYet\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ConsumerProviderSame\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputeAlreadyFiled\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputeAlreadyResolved\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputeNotFound\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputePeriodExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"EmptyArray\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochMustBeNextOne\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochMustBeOne\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InsufficientBalance\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidConsumer\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidConsumerSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidEpoch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInput\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidProvider\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidProviderSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidTraiaToken\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidUtilityAgentFactory\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NoFundsToRelease\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NoLockedFunds\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotAuthorized\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ProviderNotRegistered\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestAlreadyProcessed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestNotSettled\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SafeERC20FailedOperation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"SignatureAlreadyUsed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"refillAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"previousBalance\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newBalance\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"AutoRefillExecuted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newMaxAutoRefillAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newBalanceThresholdMultiplier\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newAutoRefillMultiplier\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"AutoRefillParametersUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ConsumerDeposit\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ConsumerWithdraw\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"reason\",\n \"type\": \"string\"\n }\n ],\n \"name\": \"DisputeFiled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"consumerWon\",\n \"type\": \"bool\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"resolvedBy\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"DisputeResolved\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [],\n \"name\": \"EIP712DomainChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"epochDurationSeconds\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"maxEpochsToRelease\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"EpochParametersSet\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"EpochReleased\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newFeePercent\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newFeeCollector\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"FeeConfigUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"feeCollector\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"providerAmount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"FeesCollected\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newMaxFacilitatorFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"MaxFacilitatorFeeUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ProviderWithdrawn\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"consumerRequestCount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RequestSettled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes\",\n \"name\": \"reason\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"RequestSettlementFailed\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oldFactory\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newFactory\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"UtilityAgentFactoryUpdated\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"BASIS_POINTS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"BONDING_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochDuration\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochReleaseDelay\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_FEE_PERCENT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestExpirationTime\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"SETTLEMENT_POINTS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest\",\n \"name\": \"req\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"_settleRequest\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"canReleaseEpoch\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"collectFees\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"consumerReputations\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"completed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"failed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faults\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"score\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"firstSettlementAt\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"consumerRequestCounts\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"reason\",\n \"type\": \"string\"\n }\n ],\n \"name\": \"disputeRequest\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"disputes\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"reason\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"filedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"resolved\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"eip712Domain\",\n \"outputs\": [\n {\n \"internalType\": \"bytes1\",\n \"name\": \"fields\",\n \"type\": \"bytes1\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"salt\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"extensions\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"feeBalances\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"feeCollector\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getCurrentEpoch\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getDisputeInProgressAmount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getEpochBalance\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"balance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"disputeInProgressBalance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isWithdrawn\",\n \"type\": \"bool\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.EpochBalance\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getFeeBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getLockedBalanceForProvider\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getProviderReputation\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"completed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"failed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faults\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"score\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"firstSettlementAt\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.Reputation\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getProviderReputationScore\",\n \"outputs\": [\n {\n \"internalType\": \"int256\",\n \"name\": \"\",\n \"type\": \"int256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUnlockedBalanceForProvider\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_roleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_feeCollector\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isMaintainer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"lastWithdrawnEpoch\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"maxFacilitatorFee\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"protocolFee\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"providerEpochBalances\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"balance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"disputeInProgressBalance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isWithdrawn\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"providerReputations\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"completed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"failed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faults\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"score\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"firstSettlementAt\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"consumerWon\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"resolveDispute\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"roleManager\",\n \"outputs\": [\n {\n \"internalType\": \"contract IRoleManager\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_epochDuration\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_epochReleaseDelay\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setEpochParameters\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_protocolFee\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_feeCollector\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setFeeConfig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_maxFacilitatorFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setMaxFacilitatorFee\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_requestExpirationTime\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setRequestExpirationTime\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest\",\n \"name\": \"req\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"settleRequest\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest[]\",\n \"name\": \"serviceRequests\",\n \"type\": \"tuple[]\"\n }\n ],\n \"name\": \"settleRequests\",\n \"outputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"failedIndices\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"settlements\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest\",\n \"name\": \"settlementRequest\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"enum IIATPSettlementLayer.RequestStatus\",\n \"name\": \"status\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"usedSignatures\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawAllAvailableEpochs\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawEpochToken\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n ],\n \"IATPWalletFactory\": [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidParameters\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAddress\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newSettlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SettlementLayerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"wallet\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operatorAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"settlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WalletCreated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WalletImplementationUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WalletRoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"BONDING_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"allWallets\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_operatorAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"createWallet\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"wallet\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_operatorAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"createWalletFor\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"wallet\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getOperatorWalletCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getOwnerWalletCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getTotalWallets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWallet\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_offset\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_limit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getWallets\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"wallets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"total\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWalletsByOperator\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWalletsByOwner\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"hasWallet\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_roleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_walletRoleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_settlementLayer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_walletImplementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isMaintainer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ownerByWallet\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"roleManager\",\n \"outputs\": [\n {\n \"internalType\": \"contract IRoleManager\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newSettlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setSettlementLayer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newWalletImplementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setWalletImplementation\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newWalletRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setWalletRoleManager\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"settlementLayer\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalWallets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"walletImplementation\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"walletRoleManager\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"walletsByOperator\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"walletsByOwner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n ]\n }\n}","{\n \"localhost\": {\n \"IATPWallet\": [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ECDSAInvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"length\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureLength\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureS\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InsufficientBalance\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidAmount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidOperatorAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidOwnerAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidProvider\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidSettlementLayerAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidTokenAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotAuthorized\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotSettlementLayer\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"OnlyOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"PendingWithdrawalExists\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SafeERC20FailedOperation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"SignatureExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"TransferFailed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WithdrawalAlreadyExecuted\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WithdrawalLockupNotExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WithdrawalRequestNotFound\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operatorAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"settlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ClientInitialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [],\n \"name\": \"EIP712DomainChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"FundsDeposited\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"signer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"FundsTransferredToSettlement\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oldOperator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOperator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OperatorAddressUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"WithdrawalCancelled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WithdrawalExecuted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"requestedAt\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"unlockTime\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"WithdrawalRequested\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"BONDING_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"PROVIDER_ATTESTATION_TYPEHASH\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"PULL_FUNDS_FOR_SETTLEMENT_TYPEHASH\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"WITHDRAWAL_LOCKUP_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"cancelWithdrawal\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"deposit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"eip712Domain\",\n \"outputs\": [\n {\n \"internalType\": \"bytes1\",\n \"name\": \"fields\",\n \"type\": \"bytes1\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"salt\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"extensions\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"executeWithdrawal\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWithdrawalRequest\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"executed\",\n \"type\": \"bool\"\n }\n ],\n \"internalType\": \"struct IIATPWallet.WithdrawalRequest\",\n \"name\": \"request\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"unlockTime\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_roleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_operatorAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_settlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isMaintainer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"operatorAddress\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"pullFundsForSettlement\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"requestWithdrawal\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"roleManager\",\n \"outputs\": [\n {\n \"internalType\": \"contract IRoleManager\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"settlementLayer\",\n \"outputs\": [\n {\n \"internalType\": \"contract IIATPSettlementLayer\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newOperatorAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"updateOperatorAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"validateConsumerSignature\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"validateProviderAttestation\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawAllFromSettlement\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawEpochFromSettlement\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawalRequests\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"executed\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n }\n ],\n \"RoleManager\": [\n {\n \"inputs\": [],\n \"name\": \"AccessControlBadConfirmation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"neededRole\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"AccessControlUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"previousAdminRole\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"newAdminRole\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"RoleAdminChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleGranted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleRevoked\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAINTAINER_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"maintainer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"addMaintainer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getDefaultAdmin\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"getRoleAdmin\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getRoleMember\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"getRoleMemberCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"getRoleMembers\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"grantRole\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"hasRole\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"congress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address[]\",\n \"name\": \"maintainers\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"maintainer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"removeMaintainer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"callerConfirmation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"renounceRole\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"role\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"revokeRole\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes4\",\n \"name\": \"interfaceId\",\n \"type\": \"bytes4\"\n }\n ],\n \"name\": \"supportsInterface\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newAdmin\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferDefaultAdmin\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n }\n ],\n \"IATPSettlementLayer\": [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"AmountMustBePositive\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ArrayLengthMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"CannotReleaseEpochYet\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ConsumerProviderSame\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputeAlreadyFiled\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputeAlreadyResolved\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputeNotFound\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DisputePeriodExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"EmptyArray\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochMustBeNextOne\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochMustBeOne\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InsufficientBalance\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidConsumer\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidConsumerSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidEpoch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInput\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidProvider\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidProviderSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidTraiaToken\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidUtilityAgentFactory\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NoFundsToRelease\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NoLockedFunds\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotAuthorized\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ProviderNotRegistered\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestAlreadyProcessed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestNotSettled\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SafeERC20FailedOperation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"SignatureAlreadyUsed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"refillAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"previousBalance\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newBalance\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"AutoRefillExecuted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newMaxAutoRefillAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newBalanceThresholdMultiplier\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newAutoRefillMultiplier\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"AutoRefillParametersUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ConsumerDeposit\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ConsumerWithdraw\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"reason\",\n \"type\": \"string\"\n }\n ],\n \"name\": \"DisputeFiled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"consumerWon\",\n \"type\": \"bool\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"resolvedBy\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"DisputeResolved\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [],\n \"name\": \"EIP712DomainChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"epochDurationSeconds\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"maxEpochsToRelease\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"EpochParametersSet\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"EpochReleased\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newFeePercent\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newFeeCollector\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"FeeConfigUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"feeCollector\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"providerAmount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"FeesCollected\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newMaxFacilitatorFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"MaxFacilitatorFeeUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ProviderWithdrawn\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"consumerRequestCount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RequestSettled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes\",\n \"name\": \"reason\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"RequestSettlementFailed\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oldFactory\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newFactory\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"UtilityAgentFactoryUpdated\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"BASIS_POINTS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"BONDING_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochDuration\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"EpochReleaseDelay\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_FEE_PERCENT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"RequestExpirationTime\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"SETTLEMENT_POINTS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest\",\n \"name\": \"req\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"_settleRequest\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"canReleaseEpoch\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"collectFees\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"consumerReputations\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"completed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"failed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faults\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"score\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"firstSettlementAt\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"consumerRequestCounts\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"reason\",\n \"type\": \"string\"\n }\n ],\n \"name\": \"disputeRequest\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"disputes\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"reason\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"filedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"resolved\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"eip712Domain\",\n \"outputs\": [\n {\n \"internalType\": \"bytes1\",\n \"name\": \"fields\",\n \"type\": \"bytes1\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"salt\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"extensions\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"feeBalances\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"feeCollector\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getCurrentEpoch\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getDisputeInProgressAmount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getEpochBalance\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"balance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"disputeInProgressBalance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isWithdrawn\",\n \"type\": \"bool\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.EpochBalance\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getFeeBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getLockedBalanceForProvider\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getProviderReputation\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"completed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"failed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faults\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"score\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"firstSettlementAt\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.Reputation\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getProviderReputationScore\",\n \"outputs\": [\n {\n \"internalType\": \"int256\",\n \"name\": \"\",\n \"type\": \"int256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUnlockedBalanceForProvider\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_roleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_feeCollector\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isMaintainer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"lastWithdrawnEpoch\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"maxFacilitatorFee\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"protocolFee\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"providerEpochBalances\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"balance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"disputeInProgressBalance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isWithdrawn\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"providerReputations\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"completed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"failed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faults\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"score\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"firstSettlementAt\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"requestId\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"consumerWon\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"resolveDispute\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"roleManager\",\n \"outputs\": [\n {\n \"internalType\": \"contract IRoleManager\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_epochDuration\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_epochReleaseDelay\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setEpochParameters\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_protocolFee\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_feeCollector\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setFeeConfig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_maxFacilitatorFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setMaxFacilitatorFee\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_requestExpirationTime\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setRequestExpirationTime\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest\",\n \"name\": \"req\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"settleRequest\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest[]\",\n \"name\": \"serviceRequests\",\n \"type\": \"tuple[]\"\n }\n ],\n \"name\": \"settleRequests\",\n \"outputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"failedIndices\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"settlements\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"consumer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IIATPWallet\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"requestPath\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"consumerDeadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"timestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"serviceDescription\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"outputHash\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"facilitatorFeePercent\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequestData\",\n \"name\": \"requestData\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"consumerSignature\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"providerSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"internalType\": \"struct IIATPSettlementLayer.SettlementRequest\",\n \"name\": \"settlementRequest\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"enum IIATPSettlementLayer.RequestStatus\",\n \"name\": \"status\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"usedSignatures\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawAllAvailableEpochs\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"epoch\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdrawEpochToken\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n ],\n \"IATPWalletFactory\": [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidParameters\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAddress\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newSettlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SettlementLayerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"wallet\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operatorAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"settlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WalletCreated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WalletImplementationUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"WalletRoleManagerUpdated\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"BONDING_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"allWallets\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_operatorAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"createWallet\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"wallet\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_operatorAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"createWalletFor\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"wallet\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getOperatorWalletCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getOwnerWalletCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getTotalWallets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWallet\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_offset\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"_limit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getWallets\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"wallets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"total\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWalletsByOperator\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getWalletsByOwner\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"hasWallet\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_roleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_walletRoleManager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_settlementLayer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_walletImplementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isMaintainer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ownerByWallet\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"roleManager\",\n \"outputs\": [\n {\n \"internalType\": \"contract IRoleManager\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newSettlementLayer\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setSettlementLayer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newWalletImplementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setWalletImplementation\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_newWalletRoleManager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setWalletRoleManager\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"settlementLayer\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalWallets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"walletImplementation\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"walletRoleManager\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"walletsByOperator\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"walletsByOwner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n ]\n }\n}","{\n \"localhost\": {\n \"RoleManager\": \"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512\",\n \"IATPSettlementLayer\": \"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9\",\n \"IATPWalletFactory\": \"0xa513E6E4b8f2a923D98304ec87F64353C4D5C853\"\n },\n \"sepolia\": {\n \"RoleManager\": \"0x71d388142EA9194e5b51Eee3FEfe3B87D494dd38\",\n \"IATPSettlementLayer\": \"0xAa91081571404d7E2f2B8F12FB2Be092EBe6d2B8\",\n \"IATPWalletFactory\": \"0x0846223D022677C34eea21Bd9aa08f75c8Bd12e1\"\n }\n}","{\n \"localhost\": {\n \"IATPWalletImplementation\": \"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707\",\n \"RoleManagerImplementation\": \"0x5FbDB2315678afecb367f032d93F642f64180aa3\",\n \"Congress\": \"0x94Fc9eddBd1779542b78eb92F0569762603876e2\",\n \"IATPSettlementLayerImplementation\": \"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9\",\n \"IATPWalletFactoryImplementation\": \"0x0165878A594ca255338adfa4d48449f69242Eb8F\"\n },\n \"sepolia\": {\n \"Congress\": \"0x94Fc9eddBd1779542b78eb92F0569762603876e2\",\n \"TraiaCongressMembersRegistry\": \"0x3B685403b195f16D103b42FCf56F848A278d6049\",\n \"IATPWalletImplementation\": \"0xab2Ea0765B9dBCf997Fe7ad2fE826D0dA51cfB69\",\n \"RoleManagerImplementation\": \"0x585AD85FCFBec3B1503E50b46407bF65d4006560\",\n \"IATPSettlementLayerImplementation\": \"0x88Ff3cdb3c8F7cd480DC48E849D5550F9cAeCBb7\",\n \"IATPWalletFactoryImplementation\": \"0xA1E5a53cE5b4e78801d9394EC60D0B53390CA240\"\n }\n}","/**\n * Contract configuration and utilities for IATP.\n * \n * Matches Python implementation: IATP/src/traia_iatp/contracts/config.py\n * \n * Bundles contract ABIs and addresses directly in the package for reliable access.\n */\n\nimport sepoliaAbis from './contracts/abis/sepolia.json'\nimport localhostAbis from './contracts/abis/localhost.json'\nimport proxyAddresses from './contracts/addresses/proxies.json'\nimport implementationAddresses from './contracts/addresses/implementations.json'\n\n/**\n * Supported contract names.\n * \n * Matches Python: ContractName enum (config.py lines 16-21)\n */\nexport enum ContractName {\n IATP_WALLET = 'IATPWallet',\n IATP_WALLET_FACTORY = 'IATPWalletFactory',\n IATP_SETTLEMENT_LAYER = 'IATPSettlementLayer',\n ROLE_MANAGER = 'RoleManager'\n}\n\n/**\n * Supported networks for contract deployments.\n * \n * Matches Python: SUPPORTED_NETWORKS (config.py line 25)\n */\nexport type SupportedContractNetwork = 'sepolia' | 'localhost'\n\n// Type-safe contract addresses and ABIs\ntype NetworkAbis = {\n [network: string]: {\n [contractName: string]: any[]\n }\n}\n\ntype NetworkAddresses = {\n [network: string]: {\n [contractName: string]: string\n }\n}\n\nconst ABIS: NetworkAbis = {\n sepolia: sepoliaAbis.sepolia || {},\n localhost: localhostAbis.localhost || {}\n}\n\nconst PROXY_ADDRESSES: NetworkAddresses = proxyAddresses as NetworkAddresses\nconst IMPL_ADDRESSES: NetworkAddresses = implementationAddresses as NetworkAddresses\n\n/**\n * Get contract address for a given network.\n * \n * Matches Python: get_contract_address(contract_name: str, network: str) -> Optional[str]\n * (config.py lines 77-118)\n * \n * @param contractName - Name of the contract (use ContractName enum)\n * @param network - Network name (default: \"sepolia\")\n * @param useProxy - Use proxy address if true, implementation if false (default: true)\n * @returns Contract address as hex string, or null if not found\n * \n * @example\n * ```ts\n * const factoryAddr = getContractAddress(ContractName.IATP_WALLET_FACTORY, 'sepolia')\n * console.log(factoryAddr) // \"0x15D83638E339a0f29283f6B93dC1bb90b8339078\"\n * ```\n */\nexport function getContractAddress(\n contractName: string | ContractName,\n network: SupportedContractNetwork = 'sepolia',\n useProxy: boolean = true\n): string | null {\n const addresses = useProxy ? PROXY_ADDRESSES : IMPL_ADDRESSES\n const networkAddresses = addresses[network]\n\n if (!networkAddresses) {\n return null\n }\n\n return networkAddresses[contractName] || null\n}\n\n/**\n * Get contract ABI for a given network.\n * \n * Matches Python: get_contract_abi(contract_name: str, network: str) -> Optional[List[dict]]\n * (config.py lines 121-156)\n * \n * @param contractName - Name of the contract (use ContractName enum)\n * @param network - Network name (default: \"sepolia\")\n * @returns Contract ABI as array of objects, or null if not found\n * \n * @example\n * ```ts\n * const factoryAbi = getContractAbi(ContractName.IATP_WALLET_FACTORY, 'sepolia')\n * console.log(factoryAbi.length) // Number of ABI entries\n * ```\n */\nexport function getContractAbi(\n contractName: string | ContractName,\n network: SupportedContractNetwork = 'sepolia'\n): any[] | null {\n const networkAbis = ABIS[network]\n\n if (!networkAbis) {\n return null\n }\n\n return networkAbis[contractName] || null\n}\n\n/**\n * Get contract configuration (address and ABI) for a network.\n * \n * Matches Python: get_contract_config(network: str) from wallet_creator.py\n * \n * @param contractName - Name of the contract\n * @param network - Network name (default: \"sepolia\")\n * @returns Object with address and abi, or null if not found\n * \n * @example\n * ```ts\n * const config = getContractConfig(ContractName.IATP_WALLET_FACTORY, 'sepolia')\n * if (config) {\n * console.log(config.address)\n * console.log(config.abi.length)\n * }\n * ```\n */\nexport function getContractConfig(\n contractName: string | ContractName,\n network: SupportedContractNetwork = 'sepolia'\n): { address: string; abi: any[] } | null {\n const address = getContractAddress(contractName, network)\n const abi = getContractAbi(contractName, network)\n\n if (!address || !abi) {\n return null\n }\n\n return { address, abi }\n}\n\n/**\n * Get all contract addresses for a network.\n * \n * @param network - Network name\n * @returns Object with all contract addresses for the network\n * \n * @example\n * ```ts\n * const addresses = getAllContractAddresses('sepolia')\n * console.log(addresses.IATPWalletFactory)\n * ```\n */\nexport function getAllContractAddresses(\n network: SupportedContractNetwork\n): Record<string, string> {\n return PROXY_ADDRESSES[network] || {}\n}\n\n/**\n * Check if a contract is deployed on a network.\n * \n * @param contractName - Name of the contract\n * @param network - Network name\n * @returns True if contract exists on network\n * \n * @example\n * ```ts\n * if (isContractDeployed(ContractName.IATP_WALLET_FACTORY, 'sepolia')) {\n * // Contract is available\n * }\n * ```\n */\nexport function isContractDeployed(\n contractName: string | ContractName,\n network: SupportedContractNetwork\n): boolean {\n const address = getContractAddress(contractName, network)\n const abi = getContractAbi(contractName, network)\n return address !== null && abi !== null\n}\n\n","/**\n * IATPWallet creation and management\n * \n * Matches Python implementation: IATP/src/traia_iatp/scripts/create_wallet.py\n */\n\nimport { createPublicClient, createWalletClient, http, type Hash, decodeEventLog, type Chain } from 'viem'\nimport { sepolia, localhost } from 'viem/chains'\nimport type { Account } from 'viem/accounts'\nimport { privateKeyToAccount } from 'viem/accounts'\nimport { getContractConfig, ContractName } from './contracts'\nimport { generateNonce } from './utils'\n\n/**\n * Result of wallet creation.\n * \n * Matches Python: create_wallet() return type (lines 138-147)\n */\nexport interface WalletCreationResult {\n /** Address of the created IATPWallet contract */\n walletAddress: `0x${string}`\n\n /** Owner address (who created it) */\n ownerAddress: `0x${string}`\n\n /** Operator address (can sign payments) */\n operatorAddress: `0x${string}`\n\n /** Operator private key (store securely!) */\n operatorPrivateKey: `0x${string}`\n\n /** Transaction hash */\n transactionHash: Hash\n\n /** Block number where wallet was created */\n blockNumber: bigint\n\n /** Network where wallet was deployed */\n network: string\n\n /** Chain ID */\n chainId: number\n}\n\n/**\n * Create a new IATPWallet using IATPWalletFactory.\n * \n * Matches Python: create_wallet(owner_private_key, network, wait_confirmations)\n * (create_wallet.py lines 37-149)\n * \n * This function:\n * 1. Generates a new operator keypair\n * 2. Calls IATPWalletFactory.createWallet(operatorAddress)\n * 3. Waits for transaction confirmation\n * 4. Extracts wallet address from WalletCreated event\n * 5. Returns wallet info including operator keys\n * \n * @param params - Creation parameters\n * @param params.ownerAccount - Owner's account (will own the wallet)\n * @param params.network - Network to deploy on (default: \"sepolia\")\n * @param params.rpcUrl - Custom RPC URL (optional)\n * @param params.operatorPrivateKey - Use specific operator key instead of generating (optional)\n * @returns Wallet creation result with addresses and keys\n * \n * @example\n * ```ts\n * import { createIATPWallet } from '@iatp/d402-client'\n * import { privateKeyToAccount } from 'viem/accounts'\n * \n * const ownerAccount = privateKeyToAccount('0x...')\n * \n * const result = await createIATPWallet({\n * ownerAccount,\n * network: 'sepolia'\n * })\n * \n * console.log('Wallet created:', result.walletAddress)\n * console.log('Operator key:', result.operatorPrivateKey) // Store securely!\n * ```\n */\nexport async function createIATPWallet(params: {\n ownerAccount: Account\n network?: 'sepolia' | 'localhost'\n rpcUrl?: string\n operatorPrivateKey?: `0x${string}`\n}): Promise<WalletCreationResult> {\n const { ownerAccount, network = 'sepolia', rpcUrl, operatorPrivateKey } = params\n\n // Get contract configuration\n // Matches Python lines 74-81\n const factoryConfig = getContractConfig(ContractName.IATP_WALLET_FACTORY, network)\n\n if (!factoryConfig) {\n throw new Error(`IATPWalletFactory not found for network: ${network}`)\n }\n\n // Generate operator keypair\n // Matches Python lines 69-72\n const operatorKey = operatorPrivateKey || (generateNonce() as `0x${string}`)\n const operatorAccount = privateKeyToAccount(operatorKey)\n\n // Setup clients\n const chain: Chain = network === 'sepolia' ? sepolia : localhost\n const transport = http(rpcUrl)\n\n const publicClient = createPublicClient({\n chain,\n transport\n })\n\n const walletClient = createWalletClient({\n account: ownerAccount,\n chain,\n transport\n })\n\n // Check owner balance\n // Matches Python lines 84-89\n const balance = await publicClient.getBalance({ address: ownerAccount.address })\n\n if (balance === 0n) {\n throw new Error('Owner has no ETH for gas. Please fund the account.')\n }\n\n // Build transaction to create wallet\n // Matches Python lines 91-102\n const { request } = await publicClient.simulateContract({\n account: ownerAccount,\n address: factoryConfig.address as `0x${string}`,\n abi: factoryConfig.abi,\n functionName: 'createWallet',\n args: [operatorAccount.address]\n })\n\n // Send transaction\n // Matches Python lines 105-110\n const hash = await walletClient.writeContract(request)\n\n // Wait for confirmation\n // Matches Python lines 113-118\n const receipt = await publicClient.waitForTransactionReceipt({\n hash,\n timeout: 300_000 // 5 minutes\n })\n\n if (receipt.status !== 'success') {\n throw new Error(`Transaction failed: ${hash}`)\n }\n\n // Parse WalletCreated event to get wallet address\n // Matches Python lines 123-131\n let walletAddress: `0x${string}` | undefined\n\n for (const log of receipt.logs) {\n try {\n const decoded = decodeEventLog({\n abi: factoryConfig.abi,\n data: log.data,\n topics: log.topics,\n eventName: 'WalletCreated'\n })\n\n // Extract wallet address from decoded args\n if (decoded.args && typeof decoded.args === 'object' && 'wallet' in decoded.args) {\n walletAddress = decoded.args.wallet as `0x${string}`\n break\n }\n } catch {\n // Not the event we're looking for, continue\n continue\n }\n }\n\n if (!walletAddress) {\n throw new Error('WalletCreated event not found in transaction logs')\n }\n\n // Return result\n // Matches Python lines 138-147\n return {\n walletAddress,\n ownerAddress: ownerAccount.address,\n operatorAddress: operatorAccount.address,\n operatorPrivateKey: operatorKey,\n transactionHash: hash,\n blockNumber: receipt.blockNumber,\n network,\n chainId: chain.id\n }\n}\n\n"]}