{
    "abi": [
        {
            "inputs": [],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "inputs": [],
            "name": "AggregateVkeyHashIsNotValid",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "AxiomHeaderVerifierAddressIsZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "AxiomProverAddressIsZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "AxiomResultStoreAddressIsZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CallbackExtraDataHashDoesNotMatch",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CallbackHashDoesNotMatchQueryWitness",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CanOnlyIncreaseGasOnActiveQuery",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CannotFulfillFromOffchainIfNotInactive",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CannotFulfillIfNotActive",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CannotRefundBeforeDeadline",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CannotRefundIfNotActive",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "CannotRefundIfNotRefundee",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ComputeResultsHashDoesNotMatch",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ContractIsFrozen",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "DepositTooLarge",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "EscrowAmountExceedsBalance",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "EscrowIsNotActive",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "GuardianAddressIsZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "InsufficientFunds",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NewMaxQueryPriMustBeLargerThanPrevious",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NotAxiomRole",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NotProverRole",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "OnlyCallerCanIncreaseGas",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "OnlyPayeeCanUnescrow",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ProofVerificationFailed",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "QueryHashDoesNotMatchProof",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "QueryIsNotActive",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "QueryIsNotFulfilled",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "QueryIsNotInactive",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "SourceChainIdDoesNotMatch",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "TimelockAddressIsZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "UnescrowAmountExceedsEscrowedAmount",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "UnfreezeAddressIsZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "VerifierAddressIsZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "WithdrawalAmountExceedsFreeBalance",
            "type": "error"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "aggregateVkeyHash",
                    "type": "bytes32"
                }
            ],
            "name": "AddAggregateVkeyHash",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "previousAdmin",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "newAdmin",
                    "type": "address"
                }
            ],
            "name": "AdminChanged",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "beacon",
                    "type": "address"
                }
            ],
            "name": "BeaconUpgraded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "payor",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "Deposit",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "payor",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "Escrow",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "FreezeAll",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                }
            ],
            "name": "OffchainQueryFulfilled",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint32",
                    "name": "deadlineBlockNumber",
                    "type": "uint32"
                },
                {
                    "indexed": false,
                    "internalType": "uint64",
                    "name": "maxFeePerGas",
                    "type": "uint64"
                },
                {
                    "indexed": false,
                    "internalType": "uint32",
                    "name": "callbackGasLimit",
                    "type": "uint32"
                }
            ],
            "name": "QueryFeeInfoRecorded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "payee",
                    "type": "address"
                }
            ],
            "name": "QueryFulfilled",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint64",
                    "name": "maxFeePerGas",
                    "type": "uint64"
                },
                {
                    "indexed": false,
                    "internalType": "uint32",
                    "name": "callbackGasLimit",
                    "type": "uint32"
                }
            ],
            "name": "QueryGasIncreased",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "queryHash",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "userSalt",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "refundee",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "target",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bytes",
                    "name": "extraData",
                    "type": "bytes"
                }
            ],
            "name": "QueryInitiatedOnchain",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "caller",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "queryHash",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "userSalt",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "ipfsHash",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "refundee",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "target",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bytes",
                    "name": "extraData",
                    "type": "bytes"
                }
            ],
            "name": "QueryInitiatedWithIpfsData",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "refundee",
                    "type": "address"
                }
            ],
            "name": "QueryRefunded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "aggregateVkeyHash",
                    "type": "bytes32"
                }
            ],
            "name": "RemoveAggregateVkeyHash",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "previousAdminRole",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "newAdminRole",
                    "type": "bytes32"
                }
            ],
            "name": "RoleAdminChanged",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "RoleGranted",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "RoleRevoked",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "payor",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "payee",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "refundee",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amountUsed",
                    "type": "uint256"
                }
            ],
            "name": "Unescrow",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "UnfreezeAll",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "newAddress",
                    "type": "address"
                }
            ],
            "name": "UpdateAxiomHeaderVerifierAddress",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "newAddress",
                    "type": "address"
                }
            ],
            "name": "UpdateAxiomProverAddress",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "newAxiomQueryFee",
                    "type": "uint256"
                }
            ],
            "name": "UpdateAxiomQueryFee",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "newAddress",
                    "type": "address"
                }
            ],
            "name": "UpdateAxiomResultStoreAddress",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint32",
                    "name": "newProofVerificationGas",
                    "type": "uint32"
                }
            ],
            "name": "UpdateProofVerificationGas",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint32",
                    "name": "newQueryDeadlineInterval",
                    "type": "uint32"
                }
            ],
            "name": "UpdateQueryDeadlineInterval",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "newAddress",
                    "type": "address"
                }
            ],
            "name": "UpdateVerifierAddress",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "implementation",
                    "type": "address"
                }
            ],
            "name": "Upgraded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "payor",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "payee",
                    "type": "address"
                }
            ],
            "name": "Withdraw",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "AXIOM_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "DEFAULT_ADMIN_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "GUARDIAN_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "PROVER_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "TIMELOCK_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "UNFREEZE_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_aggregateVkeyHash",
                    "type": "bytes32"
                }
            ],
            "name": "addAggregateVkeyHash",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "axiomHeaderVerifierAddress",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "axiomProverAddress",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "axiomQueryFee",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "axiomResultStoreAddress",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "balances",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "payor",
                    "type": "address"
                }
            ],
            "name": "deposit",
            "outputs": [],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "freezeAll",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "frozen",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint32",
                            "name": "snapshotPmmrSize",
                            "type": "uint32"
                        },
                        {
                            "internalType": "bytes32[]",
                            "name": "proofMmrPeaks",
                            "type": "bytes32[]"
                        },
                        {
                            "internalType": "bytes32[]",
                            "name": "mmrComplementOrPeaks",
                            "type": "bytes32[]"
                        }
                    ],
                    "internalType": "struct IAxiomV2HeaderVerifier.MmrWitness",
                    "name": "mmrWitness",
                    "type": "tuple"
                },
                {
                    "internalType": "bytes32[]",
                    "name": "computeResults",
                    "type": "bytes32[]"
                },
                {
                    "internalType": "bytes",
                    "name": "proof",
                    "type": "bytes"
                },
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "target",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes",
                            "name": "extraData",
                            "type": "bytes"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2Callback",
                    "name": "callback",
                    "type": "tuple"
                },
                {
                    "internalType": "address",
                    "name": "caller",
                    "type": "address"
                },
                {
                    "internalType": "bytes32",
                    "name": "userSalt",
                    "type": "bytes32"
                }
            ],
            "name": "fulfillOffchainQuery",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint32",
                            "name": "snapshotPmmrSize",
                            "type": "uint32"
                        },
                        {
                            "internalType": "bytes32[]",
                            "name": "proofMmrPeaks",
                            "type": "bytes32[]"
                        },
                        {
                            "internalType": "bytes32[]",
                            "name": "mmrComplementOrPeaks",
                            "type": "bytes32[]"
                        }
                    ],
                    "internalType": "struct IAxiomV2HeaderVerifier.MmrWitness",
                    "name": "mmrWitness",
                    "type": "tuple"
                },
                {
                    "internalType": "bytes32[]",
                    "name": "computeResults",
                    "type": "bytes32[]"
                },
                {
                    "internalType": "bytes",
                    "name": "proof",
                    "type": "bytes"
                },
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "target",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes",
                            "name": "extraData",
                            "type": "bytes"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2Callback",
                    "name": "callback",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "caller",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "userSalt",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "queryHash",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "callbackHash",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "address",
                            "name": "refundee",
                            "type": "address"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2QueryWitness",
                    "name": "queryWitness",
                    "type": "tuple"
                }
            ],
            "name": "fulfillQuery",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                }
            ],
            "name": "getRoleAdmin",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "grantRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "hasRole",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint64",
                    "name": "newMaxFeePerGas",
                    "type": "uint64"
                },
                {
                    "internalType": "uint32",
                    "name": "newCallbackGasLimit",
                    "type": "uint32"
                }
            ],
            "name": "increaseQueryGas",
            "outputs": [],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "axiomHeaderVerifierAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "verifierAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "axiomProverAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "axiomResultStoreAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes32[]",
                            "name": "aggregateVkeyHashes",
                            "type": "bytes32[]"
                        },
                        {
                            "internalType": "uint32",
                            "name": "queryDeadlineInterval",
                            "type": "uint32"
                        },
                        {
                            "internalType": "uint32",
                            "name": "proofVerificationGas",
                            "type": "uint32"
                        },
                        {
                            "internalType": "uint256",
                            "name": "axiomQueryFee",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "timelock",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "guardian",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "unfreeze",
                            "type": "address"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2QueryInit",
                    "name": "init",
                    "type": "tuple"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "proofVerificationGas",
            "outputs": [
                {
                    "internalType": "uint32",
                    "name": "",
                    "type": "uint32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "proxiableUUID",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "queries",
            "outputs": [
                {
                    "internalType": "enum IAxiomV2Query.AxiomQueryState",
                    "name": "state",
                    "type": "uint8"
                },
                {
                    "internalType": "uint32",
                    "name": "deadlineBlockNumber",
                    "type": "uint32"
                },
                {
                    "internalType": "address",
                    "name": "payee",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "payment",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "queryDeadlineInterval",
            "outputs": [
                {
                    "internalType": "uint32",
                    "name": "",
                    "type": "uint32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "caller",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "userSalt",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "queryHash",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "callbackHash",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "address",
                            "name": "refundee",
                            "type": "address"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2QueryWitness",
                    "name": "queryWitness",
                    "type": "tuple"
                }
            ],
            "name": "refundQuery",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_aggregateVkeyHash",
                    "type": "bytes32"
                }
            ],
            "name": "removeAggregateVkeyHash",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "renounceRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "revokeRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint64",
                    "name": "sourceChainId",
                    "type": "uint64"
                },
                {
                    "internalType": "bytes32",
                    "name": "dataQueryHash",
                    "type": "bytes32"
                },
                {
                    "components": [
                        {
                            "internalType": "uint8",
                            "name": "k",
                            "type": "uint8"
                        },
                        {
                            "internalType": "uint16",
                            "name": "resultLen",
                            "type": "uint16"
                        },
                        {
                            "internalType": "bytes32[]",
                            "name": "vkey",
                            "type": "bytes32[]"
                        },
                        {
                            "internalType": "bytes",
                            "name": "computeProof",
                            "type": "bytes"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2ComputeQuery",
                    "name": "computeQuery",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "target",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes",
                            "name": "extraData",
                            "type": "bytes"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2Callback",
                    "name": "callback",
                    "type": "tuple"
                },
                {
                    "internalType": "bytes32",
                    "name": "userSalt",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint64",
                    "name": "maxFeePerGas",
                    "type": "uint64"
                },
                {
                    "internalType": "uint32",
                    "name": "callbackGasLimit",
                    "type": "uint32"
                },
                {
                    "internalType": "address",
                    "name": "refundee",
                    "type": "address"
                },
                {
                    "internalType": "bytes",
                    "name": "dataQuery",
                    "type": "bytes"
                }
            ],
            "name": "sendQuery",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                }
            ],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "queryHash",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "ipfsHash",
                    "type": "bytes32"
                },
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "target",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes",
                            "name": "extraData",
                            "type": "bytes"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2Callback",
                    "name": "callback",
                    "type": "tuple"
                },
                {
                    "internalType": "bytes32",
                    "name": "userSalt",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint64",
                    "name": "maxFeePerGas",
                    "type": "uint64"
                },
                {
                    "internalType": "uint32",
                    "name": "callbackGasLimit",
                    "type": "uint32"
                },
                {
                    "internalType": "address",
                    "name": "refundee",
                    "type": "address"
                }
            ],
            "name": "sendQueryWithIpfsData",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "queryId",
                    "type": "uint256"
                }
            ],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes4",
                    "name": "interfaceId",
                    "type": "bytes4"
                }
            ],
            "name": "supportsInterface",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "caller",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "userSalt",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "queryHash",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "callbackHash",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "address",
                            "name": "refundee",
                            "type": "address"
                        }
                    ],
                    "internalType": "struct IAxiomV2Query.AxiomV2QueryWitness",
                    "name": "queryWitness",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "amountUsed",
                    "type": "uint256"
                }
            ],
            "name": "unescrow",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "unfreezeAll",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_axiomHeaderVerifierAddress",
                    "type": "address"
                }
            ],
            "name": "updateAxiomHeaderVerifierAddress",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_axiomProverAddress",
                    "type": "address"
                }
            ],
            "name": "updateAxiomProverAddress",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_axiomQueryFee",
                    "type": "uint256"
                }
            ],
            "name": "updateAxiomQueryFee",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint32",
                    "name": "_proofVerificationGas",
                    "type": "uint32"
                }
            ],
            "name": "updateProofVerificationGas",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint32",
                    "name": "_queryDeadlineInterval",
                    "type": "uint32"
                }
            ],
            "name": "updateQueryDeadlineInterval",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_verifierAddress",
                    "type": "address"
                }
            ],
            "name": "updateVerifierAddress",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newImplementation",
                    "type": "address"
                }
            ],
            "name": "upgradeTo",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newImplementation",
                    "type": "address"
                },
                {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                }
            ],
            "name": "upgradeToAndCall",
            "outputs": [],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "name": "validAggregateVkeyHashes",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "verifierAddress",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "internalType": "address payable",
                    "name": "payee",
                    "type": "address"
                }
            ],
            "name": "withdraw",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ]
}
